为什么我收到的数据包数据大小大于MSS?

问题描述 投票:0回答:1

我在两台电脑上用

ifconfig ethX mtu 300
修改了MTU,并用
netperf
测试了网络。

我用Wireshark嗅探了SYN数据包中的MSS=260,但是我得到了一些大于260的数据包,为什么?

linux tcp
1个回答
0
投票

嗅探器捕获内核和设备驱动程序之间的数据包。如果驱动程序对数据包进行其他更改,您将捕获与线路上的数据包不同的内容。

这是 TCP 分段卸载的情况,其中驱动程序或硬件设备分割(或组合)数据包以遵守正确的 TCP MSS(最大分段大小)。

您可以(暂时)禁用卸载以查看正确的段:

  • ethtool -k eth0
    --- 查看设置
  • ethtool -K eth0 tso off
    --- 禁用
    tcp-segmentation-offload

信息来自问题评论中链接的文章:https://rtodto.net/generic_segmentation_offload_and_wireshark/

在 Linux 上,这种卸载也会发生在环回接口上!

© www.soinside.com 2019 - 2024. All rights reserved.