本文已参与「新人创作礼」活动,一起开启掘金创作之路。
“TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报,这是由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的;在首部的固定部分的后面是一些可选字段,其长度是可变的。”
IP数据报格式
1、版本占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。版本号为6(即IPv6)
2、首部长度占4位,可表示的最大十进制数值是15。首部长度字段所表示的单位是32位(4字节,与TCP首部中长度字端单位一致)。因为IP首部的固定长度是20字节,因此首部长度字段的最小值为5(0101)。当首部长度为15(1111)时,表示的长度为60字节当IP分组的首部长度不是4的整数倍时,必须利用最后的填充字段加以填充达到4的整数倍。
3、区分服务占1字节,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。只有在区分服务时,这个字段才起作用。在一般情况下都不使用这个字段。
4、总长度占2字节,指首部和数据之和的长度,单位为字节。能表示的最大长度为65535字节。在IP层下面的链路层协议规定了一个数据帧的数据字段的最大长度,这称为最大传输单元MTU(maximum transfer unit)。当一个IP数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的链路层所规定的的MTU值。
TCP/IP协议栈