我在两台电脑上用“ifconfig ethX mtu 300”修改了MTU。并用netperf测试网络。我用WireShark在SYN数据包中嗅探到MSS=260。但我在数据包中得到了一些大于260的数据。为什么?
xmakbtuz1#
嗅探器捕获内核和设备驱动程序之间的数据包。如果驱动程序对数据包进行了额外的更改,则捕获的内容与网络上的数据包不同。这是TCP分段卸载的情况,其中驱动程序或硬件设备拆分(或组合)数据包以遵守正确的TCP MSS(最大分段大小)。您可以(临时)禁用卸载以查看正确的段:
ethtool -k eth0
ethtool -K eth0 tso off
tcp-segmentation-offload
信息来自问题评论中链接的文章:https://rtodto.net/generic_segmentation_offload_and_wireshark/在Linux上,这种卸载也发生在环回接口上!
1条答案
按热度按时间xmakbtuz1#
嗅探器捕获内核和设备驱动程序之间的数据包。如果驱动程序对数据包进行了额外的更改,则捕获的内容与网络上的数据包不同。
这是TCP分段卸载的情况,其中驱动程序或硬件设备拆分(或组合)数据包以遵守正确的TCP MSS(最大分段大小)。
您可以(临时)禁用卸载以查看正确的段:
ethtool -k eth0
---查看设置ethtool -K eth0 tso off
---禁用tcp-segmentation-offload
信息来自问题评论中链接的文章:https://rtodto.net/generic_segmentation_offload_and_wireshark/
在Linux上,这种卸载也发生在环回接口上!