通信基础

  1. 计算机网络的七层结构

OSI的7层结构:从下往上依次是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

TCP/IP的4层结构:(从下往上依次是)网络接口层(包括物理层,数据链路层),网络层,传输层,应用层(会话层,表示层,应用层)

  1. TCP/IP协议

IP是网络层协议,TCP是传输层协议

  1. UDP和TCP的区别

TCPTransmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;主机B向主机A发送同意连接和要求同步(同步就是两台主机一个在发送,一个在接收,协调工作)的数据包:“可以,你什么时候发?”,这是第二次对话;主机A再发出一个数据包确认主机B的要求同步:“我现在就发,你接着吧!”,这是第三次对话。三次“对话”的目的是使数据包的发送和接收同步,经过三次“对话”之后,主机A才向主机B正式发送数据。
详细点说就是:主要是这个人讲解得很到位,的确很容易使人理解!)
TCP三次握手过程
1 主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,
主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.
2 主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:
我已经收到你的请求了,你可以传输数据了;你要用哪佧序列号作为起始数据段来回应我
3 主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了
这样3次握手就完成了,主机A和主机B 就可以传输数据了.
3次握手的特点
没有应用层的数据
SYN这个标志位只有在TCP建产连接时才会被置1
握手完成后SYN标志位被置0
TCP建立连接要进行3次握手,而断开连接要进行4

1 当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求
2  主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1
3 由B 端再提出反方向的关闭请求,将FIN置1
4 主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束.
由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,大大提高了数据通信的可靠性,使发送数据端
和接收端在数据正式传输前就有了交互,为数据正式传输打下了可靠的基础
名词解释
ACK  TCP报头的控制位之一,对数据进行确认.确认由目的端发出,用它来告诉发送端这个序列号之前的数据段
都收到了.比如,确认号为X,则表示前X-1个数据段都收到了,只有当ACK=1时,确认号才有效,当ACK=0时,确认号无效,这时会要求重传数据,保证数据的完整性.
SYN  同步序列号,TCP建立连接时将这个位置1
FIN  发送端完成发送任务位,当TCP完成数据传输需要断开时,提出断开连接的一方将这位置1
TCP的包头结构:
源端口 16位
目标端口 16位
序列号 32位
回应序号 32位
TCP头长度 4位
reserved 6位
控制代码 6位
窗口大小 16位
偏移量 16位
校验和 16位
选项  32位(可选)
这样我们得出了TCP包头的最小长度,为20字节。
UDPUser Data Protocol,用户数据报协议)
(1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送 端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列 中读一个消息段。
(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
UDP的包头结构:
源端口 16位
目的端口 16位
长度 16位
校验和 16位
小结TCPUDP的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。

4.

时间: 2024-11-09 00:00:54

通信基础的相关文章

软考网络工程师--数据通信基础

软考网络工程师--数据通信基础 数据通信基础在整个网络工程师考试中所占的比例在3~6分(5%~8%). 主要考察知识点包括:1.数据通信基础技术 1.1.信道特性 1.2.传输介质1.3.数字编码1.4.调制与编码2.传输与交换技术    2.1.数据交换技术                             2.2.复用技术                           2.3.差错与控制技术

PHP进程通信基础——shmop 、sem系列函数使用

PHP进程通信基础--shmop .sem系列函数使用 进程通信的原理就是在系统中开辟出一个共享区域,不管是管道也好,还是共享内存,都是这个原理.如果心中有了这个概念,就会很方便去理解代码.由于官网上shmop函数的英语解释稍显复杂,所以一边练习,一边简单翻译了下.信号量的内存扩展函数,比较简单,也非常好理解.所以就没有翻译.这篇博客是通信基础,所以直接就放实例代码了,按照上代码上敲一遍,就能够明白个七七八八了.如果实在不明白,可以复制进去,直接打断点调试,也是一种不错的学习思路. 这篇文章参考

JAVA网络通信基础【转】

        java网络通信编程     首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所以...呵呵..你懂得,昨天又仔细的学习了一遍,感觉其实java网络编程也没想象的那么难,不信,咱一起看看...呵呵.. 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴.在发送和接收数据时,大部分的程序设计语言都设计了专门的API实现这些功能,程序员只需要

第3章 物理层(1)_数据通信基础

1. 物理层的特性 (1)机械特性:指明接口所用接线器的形状和尺寸.引脚数目和排列.固定的锁定装置等. (2)电气特性:指明在接口电缆的各条线上出现的电压范围.如-10V-+10V之间 (3)功能特性:指明某条线上出现的某一电平的电压表示何种意义. (4)过程特性:定义了在信号线上进行二进制比特流传输的一组操作过程,包括信号线的工作顺序和时序,使得比特流传输得以完成. 2. 数据通信基础 2.1 数据通信模型 (1)局域网通信模型:使用集线器或交换机组成的局域网. (2)广域网通信模型:为了对计

通信基础整理

奈奎斯特第一准则 1924年,奈奎斯特(Nyquist)推导出在理想低通信道下最高码元传输速率.对于一个带宽为W(Hz)的理想信道,其最大码元传输速率为2W(Baud).若码元的传输速率超过了奈氏准则所给出的数值,则将出现码元之间的互相干扰,以致在接收端就无法正确判定码元.如果传输的信号包含M种状态,那么带宽为W(Hz)的信道的最大传输速率(信道容量C)是: C = 2×W×log2M 以GSM系统为例,它的某一个频道的中心频率是890.2MHz,它的频率范围为[890.1MHz,890.3MH

物理层的基本概念和数据通信基础

1.物理层的基本概念 物理层定义了与传输媒体的接口有关的一些特性.定义了这些接口的标准,各厂家生产的网络设备接口才能相互连接和通信.比如思科的交换机和华为的交换机使用双绞线就能够连接. 物理层包括以下几方面的定义: (1)机械特性.指明接口所用接线器的形状和尺寸,引脚数目和排列,固定的锁定装置等待,平时常见的各种规格的接插部件都有严格的标准化规定. (2)电气特性.指明在接口电缆的各条线上出现的电压范围. (3)功能特性.指明某条线上出现的某一电平的电压表示何种意义. (4)过程特性.定义了在信

串口通信基础,接收,发送数据

通信接口背景知识 设备之间通信的方式 一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种.它们的区别是: 串行通信的分类 1.按照数据传送方向,分为: 单工:数据传输只支持数据在一个方向上传输:    半双工:允许数据在两个方向上传输.但是,在某一时刻,只允许数据在一个方向上传输,它实际上是一种切换方向的单工通信:它不需要独立的接收端和发送端,两者可以合并一起使用一个端口.    全双工:允许数据同时在两个方向上传输.因此,全双工通信是两个单工通信方式的结合,需要独立的接收端和发送端.

STM32 串口通信基础知识

2.STM32的串口通信原理 串口通信是单片机最基本的功能,很多传感器模块与单片机的连接都会用到串口功能.串口通信,顾名思义就是将一整条的内容,切成一“串”个体来发送或接收.发送的核心思想是:将字符串中的一个字符写到一个寄存器中(此寄存器只能存一个字符),写入后会自动通过串口发送,发送结束再写入下一个字符.接收时会直接装入单片机缓冲区的一个字符型数组中,由程序依次读这个数组. 上图是串口数据发送接收的过程做一个简单的图示.收发控制器根据寄存器配置,对数据存储转移部分的移位寄存器进行控制.当需要发

[转载] Java学习之Hessian通信基础

转载自http://blog.sina.com.cn/s/blog_7f73e06d0100xn9j.html 一.首先先说Hessian是什么?    Hessian:hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能,相比WebService,Hessian更简单.快捷.采用的是二进制RPC协议,因为采用了二进制协议,所以它很适合于发送二进制数据,Hessian主要作面向对象的消息通信.Hessian的初衷就是支持动态类型,格式紧凑,跨语言Hes

数据通信基础

数据传输系统 系统组成 收发器: ? 连接发送端的收发器实现将数据转换成信号的过程 ? 连接接收端的收发器实现将信号还原成数据的过程 信道:信号传播通道 ? 传播光信号信道.传播电信号信道 ? 有线信道.无线信道 ? 单段物理链路信道.多段物理链路组合信道 数据传输系统又主要分为数字信号和模拟信号传输系统. 系统功能 信道连接结点的方式 数据通信方式 单工通信 半双工通信 全双工通信 信号 正弦波信号 用于描述周期性的数字信号和模拟信号 数字信号 只有0和1这两种转换的数字信号为基带信号 模拟信