数据进入协议栈时的封装过程
UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作UDP数据报(UDPdatagram),而且UDP的首部长为8字节。
由于TCP、UDP、ICMP和IGMP都要向IP传送数据,因此IP一定要在生成的IP首部中加入某种标识,以表明数据属于哪一层。为此,IP在首部中存入一个长度为8bit的数值,称作协议域。1表示为ICMP协议,2表示为IGMP协议,6表示为TCP协议,17表示为UDP协议。
类似地,许多利用程序都可使用TCP或UDP来传送数据。运输层协议在生成报文首部时要存入一个利用程序的标识符。TCP和UDP都用一个16bit的端口号来表示不同的利用程序。TCP和UDP把源端口号和目的端口号分别存入报文首部中。
(网络接口分别要发送和接收IP、ARP和RARP数据,因此也一定要在以太网的帧首部中加入利用程序某种情势的标识,以指明生成数据的网络层协议。为此,以太网的帧首部也有一个16bit的帧类型域。)
IP协议数据报文格式
一个IP数据报由首部和数据两部份组成。首部的前一部份长度是固定的20个字节,后脸部分的长度则是可变长度。下面介绍首部各字段的意义。
一个IP数据报由首部和数据两部份组成。首部的前一部份长度是固定的20个字节,后脸部分的长度则是可变长度。