IP分段中的额外字节

时间:2017-06-02 20:34:21

标签: networking tcp ip ip-fragmentation

我目前正在阅读我的网络幻灯片,并想知道是否有人可以帮助我解决碎片概念

所以我理解第一部分直到" 108 Bytes"但我不明白的是这个" 8字节= 13.5 => 13 * 8 字节数= 104字节"

这些额外的字节是多少?

其余的很清楚。

2 个答案:

答案 0 :(得分:2)

您必须将数据包有效负载分段为八字节边界。使用128字节MTU,您可以拥有的最大有效负载片段是104字节,这比简单地从MTU中减去IP报头(108字节)要小。文本告诉你从MTU中减去数据包头大小(20字节),下一个可被8整除的较小片段大小是104字节。

RFC 791, Internet Protocol详细描述了IP碎片的工作原理:

  

碎片

     

互联网数据报的碎片化是必要的   在允许大数据包大小并且必须遍历a的本地网络中   本地网络将数据包限制为较小的大小以达到其目的   目的地。

     

互联网数据报可以标记为“不要碎片”。任何互联网   如此标记的数据报不会被互联网支离破碎   情况。如果互联网数据报标记不碎片不能   传送到目的地而不会破坏它,它就是   丢弃了。

     

通过本地网络进行分段,传输和重组   互联网协议模块不可见的内容称为内联网   碎片化,可以使用[6]。

     

互联网碎片和重组程序需要能够   将数据报分成几乎任意数量的碎片   稍后重新组装。片段的接收者使用   识别字段,以确保不同数据报的片段   没有混合。片段偏移字段告诉接收器   片段在原始数据报中的位置。片段偏移   和长度确定所涵盖的原始数据报的部分   这个片段。更多片段标志指示(通过重置)   最后一个片段这些字段提供了足够的信息   重新组装数据报。

     

标识字段用于区分一个片段   来自另一个人的数据报。一个起源协议模块   互联网数据报将标识字段设置为必须的值   对于当时的源 - 目的地对和协议是唯一的   数据报将在互联网系统中处于活动状态。起源   完整数据报的协议模块将更多片段标志设置为   零,片段偏移为零。

     

片段化长互联网数据报,互联网协议模块(for   例如,在网关中),创建两个新的互联网数据报和副本   从长数据报到互联网头字段的内容   两个新的互联网标题。长数据报的数据是分开的   在8个八位位组(64位)边界上的两个部分(第二部分   可能不是8个八位字节的整数倍,但第一个必须是)。   在第一部分NFB中调用8个八位字节块的数量(对于数字   片段块)。数据的第一部分放在   第一个新的互联网数据报,并将总长度字段设置为   第一个数据报的长度。更多片段标志设置为1。   第二部分数据放在第二个新的互联网中   数据报,并将总长度字段设置为长度   第二个数据报。更多片段标志带有相同的值   长数据报。第二个新的片段偏移字段   互联网数据报设置为long中该字段的值   数据报加上NFB。

     

此过程可以推广为n路分割,而不是   双向分裂描述。

     

汇集互联网数据报的片段,互联网   协议模块(例如在目的地主机)组合互联网   数据报对于四个字段都具有相同的值:   识别,来源,目的地和协议。组合是   通过将每个片段的数据部分放在相对片段中来完成   由该片段的互联网中的片段偏移指示的位置   头。第一个片段的片段偏移为零,和   最后一个片段将更多片段标志重置为零。

答案 1 :(得分:2)

根据IP标头中的片段偏移字段的定义:

片段偏移量(13位):对于分段的IP数据报,此字段包含IP数据报开头的偏移量(以8个字节为单位)。同样,该字段用于重新组装分段的IP数据报。

因此,即使有效载荷大小可以是任何值,偏移值也只能是IP报头上8个字节的倍数,因此有效载荷大小为8字节倍数。计算向下舍入IP有效负载大小。