1.MTU(Maximum Transmission Unit)最大传输单元
以太网的MTU值是1500 bytes。
最大的IP包中IP净荷的长度 =MTU-IP包头长度=1500-20= 1480 bytes
假设发送者的协议高层向IP层发送了长度为3008 bytes的数据报文,则该报文在添加20 bytes的IP包头后IP包的总长度是 3028 bytes,因为3028 > 1500,所以该数据报文将被分片,分片时仅仅对上层的数据进行分片,不对原来的IP首部分片,所以要分片的数据长度只有3008,而不是3028. 这特别容易出错。
2.IP报文首部长度计算
IP报文首部长度最小是20字节,最大是60字节。
- 为什么长度最小20字节?
因为IP首部固定部分是5行,每行32位(4个字节),因此最小20字节。 - 为什么长度最大60字节?
因为IP首部字段有个报文长度选项,是4个bit,最大可以代表十进制的15,也就是15行32位数据,也就是15x4=60个字节。 - 总长度数据项为16位,最大支持65535个字节。
总长度=(4x首部长度)+数据长度。
3.TCP首部长度计算
TCP报文首部最小20字节,最大60字节,和ip报文首部一样。TCP报文首部在不添加任何选项的时候,长度为20字节。
TCP首部有一个数据偏移选项为4bit,最大表示15x4