数据包碎片混乱

数据包碎片混乱

我正在使用 Python 中的 dpkt 尝试解码 PPPoE - 并且程序运行良好,直到我注意到封装 IP 数据包中的偏移量始终为 0,即使数据包明显碎片化。

捕获

可以看出,服务器正在发送 1492 字节的数据包(我猜是因为 PPPoE 封装),最后一个数据包为 1365。但偏移量始终为 0 - 它不应该增加吗?

当然我怀疑我的程序,但是我用 Wireshark 检查了相同的传输并得到了相同的结果。

我是不是理解错了?

答案1

不,那些不是碎片。您看到来自服务器的 1492 字节数据包和返回服务器的 40 字节数据包(TCP ACK?)。因为​​它们不是碎片,所以偏移量确实始终为 0。

Wireshark 会显示数据包是否为碎片。如果您显示来自 Wireshark 的更详细信息,我们可以为您提供有关每个数据包具体内容的更多信息。

答案2

我建议安装 tracepath(而不是 traceroute)并使用它来检查所有跳数的 MTU。如果您不想要碎片数据包,请将服务器上的 MTU 设置为低于跳数路径上的最低 MTU。

相关内容