我在两台 PC 上都使用“ifconfig ethX mtu 300”修改了 MTU。并使用 netperf 测试网络。 我用 WireShark 嗅探了 SYN 数据包中的 MSS=260。 但是我得到了一些大于 260 的数据包。为什么?
最佳答案
嗅探器捕获内核和设备驱动程序之间的数据包。如果驱动程序对数据包进行了额外的更改,您将捕获与网络上的数据包不同的内容。
这是 TCP 分段卸载的情况,其中驱动程序或硬件设备拆分(或组合)数据包以遵守正确的 TCP MSS(最大分段大小)。
您可以(暂时)禁用卸载以查看正确的段:
ethtool -k eth0
--- 查看设置ethtool -K eth0 tso off
--- 禁用tcp-segmentation-offload
信息来自问题评论中链接的文章:https://rtodto.net/generic_segmentation_offload_and_wireshark/
在 Linux 上,这种卸载也发生在环回接口(interface)上!
https://stackoverflow.com/questions/17229265/
相关文章:
php - 强制文件下载代码在本地主机上工作,但在 php 中的实际服务器上不工作
ruby-on-rails - rails 和 Heroku : Running a script
android-layout - 在滑动选项卡中水平滚动 : android
nginx - 如何替换 HTTP 请求 URI 中的特殊字符?
database - 是否有任何工具可以从数据库模式的 json 表示自动生成 ERD 图?
python - Selenium:FirefoxProfile 异常无法加载配置文件
macos - 运行 make 时如何修复 ranlib/libtool 错误