TCP/IP通信数据传输流向
网络中传输的数据由两部分组成:一部分是该层协议需要用到的首部,一部分是上一层传过来的数据。 首部的结构由协议具体规范详细定义。首部明确标明了协议该如何读取数据,从首部中可以了解该协议的必要信息以及所要处理的内容,例如识别上一层协议的域应该从包的哪一位开始取多少个比特等等。比如一个TCP包的数据,其在传输过程中 以太网层的数据、IP网络层的数据以及TCP传输层的数据结构分别如下图:
数据传输时的单位描述有包/帧/数据包/段/消息 5种, 包是全能性术语,帧是数据链路层中包的单位数据报是IP和 UDP等网络层以上的分层包的单位。段则表示TCP数据流中的信息,消息表示应用层协议中数据的单位。
下图中以TCP接收和发送数据为例:
数据包发送处理:
图中对包首部进行了简化,每个包首部中必须包含两个信息:发送端和接收端地址,上一层的协议类型。经过每个协议分层时,都必须要识别包发送端和接收端的信息。以太网会用MAC地址,IP会用IP地址,TCP/UDP会用端口号作为识别两端主机的地址,即使在应用程序中,邮件地址也算地址信息。
数据发送过程中,每一层以上一层的首部+数据作为本层的数据,该数