IP数据包随机分片

IP数据包随机分片

我观察到最奇怪的事情 - 相同的数据包,相同的大小,通过相同的接口发送有时会整个发送,有时会被分段,就好像它超出了接口 MTU...

1472 数据包分段:

10:10:24.537385 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 1008
10:10:24.537589 IP 192.168.56.1.35749 > 192.168.56.101.4444: UDP, length 464

1472 数据包未分段:

10:10:34.168099 IP 192.168.56.1.41252 > 192.168.56.101.44444: UDP, length 1472

这似乎是随机发生的。为什么会发生这种情况?

发送数据包的接口有MTU 1500,足够1472个udp。但同样的情况也发生在较小的数据包上。tracepath还显示该路径的 MTU 1500。

我使用的是 Ubuntu 14.04、3.13.0-46-generic

答案1

我遇到了同样的问题,就我而言,这种现象是由 GSO 引起的。

用于skb_is_gso(skb)检查 GSO 状态,您可以使用 禁用 GSO skb_gso_reset(skb)

答案2

我的问题的正确答案是@Barmar 的评论中的答案,他应该得到支持。

我使用一个命令发送数据包cli,该命令分段刷新它的输出,这就是我奇怪的结果的原因。

相关内容