我目前正在阅读我的网络幻灯片,并想知道是否有人可以帮助我解决碎片概念
所以我理解第一部分直到" 108 Bytes"但我不明白的是这个" 8字节= 13.5 => 13 * 8 字节数= 104字节"
这些额外的字节是多少?
其余的很清楚。
答案 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有效负载大小。