数据报片段偏移量可以是非整数吗?

数据报片段偏移量可以是非整数吗?

我有一个 3600 字节的数据报,一个 800 字节的 MTU,所以我的片段数是 5。

我发现前 4 个片段将是 800 字节(包括 IP 头的 20B),最后一个片段将是 480 字节(包括 IP 头)。

第一个偏移量当然是 0,但是当我计算第二个片段的偏移量时,我得到了这个:

fragment 2 offset = 780 Bytes / 8 = 97.5

我该如何处理非整数?我要取它的上限吗?

答案1

好的,我明白了,您应该选择一个可以被 8 整除的有效载荷大小,并将剩余空间留给标头。

对于我的问题,我得到了 97.5,因为 780 不能被 8 整除,所以我将有效载荷大小降低到 776,除以 8 后得到 97。

然后我使用该值来计算片段偏移量。

如果您的 MTU 为 800 字节,则第二个片段的偏移量当然是 97,其在实际数据包中的工作方式如下:

  • IP 报头 = 20 字节
  • 有效载荷 = 776 字节
  • 未使用空间 = 4 字节

相关内容