IP数据报长度为什么总是4字节的整数倍

2025-04-28 18:52:49
推荐回答(2个)
回答1:

首部长度占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。因此数据部分永远在4字节的整数倍开始,这样在实现IP协议时较为方便。首部长度限制为60字节的缺点是有时可能不够用。但这样做是希望用户尽量减少开销。最常用的首部长度就是20字节(即首部长度为0101),这时不使用任何选项。
总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。

回答2:

可以简单的这么理解,首部长度的单位是4B,所以首部长度字段数字每增加1,相应的数据报长度增加4B,所以数据报长度是4B的倍数。
至于,为什么首部长度的单位是4B,IP数据报的首部最少是20B,显然单位是1B,首部长度只能最大表示为15B,不能满足要求
为什么不是2、3B,可能是因为不整齐吧。