IP报文格式的位偏移字段中分段长度的值为什么是以8字节为单位?

田园老师的《计算机网络基础》一书2006.6版本,第36页,书上说:“IP分组的最大长度规定为64KB,因此IP协议规定位偏移域以8字节为单位...”这句话我很不理解。IP报文的最大长度应该不是64KB,而是64KB-1KB吧,那书上的这句话怎么理解呢?话里的“因此...”这个因此是怎么因此来的?我实在推导不出。。。求解答。

它是由IP头部格式中的“总长度(16bit)”和“偏移(13bit)”两个字段所决定的。总长度定义了IP包的最大长度为2^16=64KB,偏移说明了IP分片时它最多能表示2^13个偏移单位,这样偏移单位就是2^16/2^13=2^3,即为8B了。如果偏移单位不是8B,如选4B,则13bit的"偏移"就不能表示出IP的最大长度了,而如果选16B,只需要12bit的"偏移"就能表示出IP的最大长度了,即偏移单位小于8B时,“偏移”不能够表示出IP的最大长,偏移单位大于8时,“偏移”不会被完全利用。以8B做为偏移单位正好合适。
我也是在网上找的追问

你说的很对,我想明白了,就是65536(2^16、IP最大字节数)/8192(2^13、分段偏移所占的13位)=8。

了解了,非常感谢!!!!

追答

互相学习

温馨提示:答案为网友推荐,仅供参考