首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IP碎片在8字节的边界上?

为什么IP碎片在8字节的边界上?
EN

Network Engineering用户
提问于 2014-09-24 06:09:21
回答 2查看 5.7K关注 0票数 6

在Peterson和Davie的“计算机网络第五版”一书中,我发现“IP的设计者决定,碎片应该总是发生在8字节的边界上,这意味着偏移字段计数8字节块,而不是字节”。

为什么偏移字段被设计为8的倍数?我不明白这有什么意义。另外,如果MTU-偏移量不是8的倍数,会发生什么情况?(例如)如果MTU = 1502字节,头部为20个字节,数据为1482字节。在这种情况下,第二个片段中的片段偏移量(如1482年)并不是8的残缺。

EN

回答 2

Network Engineering用户

回答已采纳

发布于 2017-04-23 17:41:10

在我看来,在8字节的边界上进行碎片偏移并不一定是一个主要的设计选择。更确切地说,这是它们在主要设计选择中可以使用的位数的结果,即头应该有多大,以及其他字段需要多少位。

设计人员选择头大小为20字节,在这20字节中,考虑到如何为各个字段分配位,最终只能得到13位的片段偏移。

这就给出了2^13 = 8192个可能的偏移值。同时,总长度字段为16位,因此技术上最大有效载荷大小为2^16-20= 65516字节。

当然,碎片偏移场必须能够跨越所有可能大小的光谱,所以65536 / 8192 = 8。

票数 10
EN

Network Engineering用户

发布于 2014-09-24 07:35:09

我可以想到使用8字节块的两个优点:首先,在均匀边界上对齐数据可能比使用CPU更有效。其次,在您发送的每一个IP数据包上,无论是否碎片,都要从IP报头中保存三位。

问题的第二部分的答案是,如果您发送了1482字节的数据,并且它不是最后一个数据包,那么您就没有正确地分割。相反,您将发送1480字节。

票数 4
EN
页面原文内容由Network Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://networkengineering.stackexchange.com/questions/11126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档