我有一个 IP 数据包,其报头长度为 20 字节,数据长度为 4096 字节。网络的最大传输单位只有 1500 字节。根据我对碎片的理解,碎片数据包将如下所示。
FRAGMENT 1 将携带 0-1499 字节的数据。
FRAGMENT 2 将携带 1500-2999 字节的数据
FRAGMENT 3 将携带 3000 - 4096 字节的数据
片段偏移字段值应如下所示。
碎片1——0/8=0;
FRAGMENT 2 - 1500/8 = 187.5(这是否意味着我们将添加 4 个字节的填充并将片段偏移量字段设置为 188?根据我对网络的理解,这应该是显而易见的方法,但我似乎无法在 Google 上找到任何信息来支持这一点。)
碎片 3 = 3000/8 = 375。
任何建议,将不胜感激。
答案1
无法保证碎片边界的确切位置。甚至可以允许一个碎片的尾部和下一个碎片的开头有“相同的字节”(“下一个”是指与未碎片化的原始碎片相比,碎片的位置在增加,不一定是按在线时间顺序排列)。