我正在尝试很好地理解 IP 分段和重组过程。我在 Internet 上找到了这个示例,我想这对理解该主题很有用。
假设某台计算机收到以下数据报序列(英文的列是:Source IP address, ID, MF, DF, Offset, Total Length, Protocol):
我相信发送了 5 个原始的未分段数据报:
- ID 454,IP 48.143.25.12(条目 1、2、7)
- ID 630,IP 245.36.22.141(条目 6、11、13)
- ID 43,IP 212.203.92.105(条目 3、4、5、8)
- ID 44,IP 212.203.92.105(条目 10、12)
- ID 43,IP 93.46.25.4(条目 9)
我的分析如下:
- 我认为这个数据报的第二个片段丢失了,所以会被丢弃(偏移量最小的片段的偏移量是368*8 = 2944字节,但是第一个片段只有1472字节的数据,所以中间有东西丢失了)。
- 这个数据报被正确地重新组装,因为所有三个片段都被接收并且偏移量被分类。完整的数据报将按顺序使用片段 6、11 和 13 重新组装。
- 这个数据报也被丢弃了,因为至少有两个分片丢失(没有MF = 0的分片,也没有偏移量= 184的分片,所以第二个也丢失了)。
- 这个按顺序正确地重新组装,使用片段 10 和 12。
- 只收到一个片段,并且它有偏移量,所以第一个片段丢失了,数据报将被丢弃。
所以我有三个问题:
- 上面的分析是否正确?你有什么可以发现的错误吗?
- 我注意到在收到的第 5 个片段中,总长度小于其余片段(并且不是最后一个片段),所以我相信片段发生在路径的中间。在这种情况下,重组过程将如何工作?我不确定偏移字段是什么,因为现在会有子分段数据报,这让我很困惑。
- 计算机的 IP 级别会将收到的信息传递给 UDP 级别。在那些片段丢失的情况下,IP层是负责丢弃与同一个不完整数据报相关的片段,还是将这个信息传递给UDP层而这是丢弃它们的层?
