为什么 Mac OS X 坚持将我的 MTU 更改为 1500?

为什么 Mac OS X 坚持将我的 MTU 更改为 1500?

最近(我想是在更新到 10.6.4 之后)Mac OS X 坚持要将我的 MTU 更改为 1500,即使我的 Mac 直接连接的路由器的 MTU 为 1472。我注意到手动将 MTU 设置为 1472 可以大大提高性能,大概是因为它几乎消除了数据包碎片,但是 Mac OS X 会定期将 MTU 更改回 1500。

有人知道为什么或者怎样阻止它吗?

答案1

您可以关闭自动发现 MTU 大小在 Mac OS X 上这样:

  • 仅限会话:

sudo sysctl -w net.inet.tcp.path_mtu_discovery=0

  • 永恒的 :

    • 编辑该文件/etc/sysctl.conf,例如:

      sudo nano /etc/sysctl.conf

    • 然后添加以下行:

      net.inet.tcp.path_mtu_discovery=0

    • 最后重启

这将阻止 Mac OS X 自动设置 MTU 大小,但您仍然需要手动设置大小。

答案2

一种临时解决方案可能是每次登录时运行以下终端命令(或通过 AppleScript 运行):

sudo networksetup -setMTU en1 1472

这不会解决 MTU 重置的根本问题。我建议通过以下方式向 Apple 报告此错误错误报告器

答案3

不幸的是你没有提到如何您设置了 MTU。您已经尝试过这个了吗?

Mac OS X 10.4 或更高版本:如何更改 MTU 以进行故障排除

这是设置非标准 MTU 的官方方式坚持不懈

答案4

我一直在 osx 10.6.7 上进行一些网络测试,发现 mtu 总是下降到 1500。这里的解决方案是在 osx 中打开自动发现,并确保路由器设置为所需的 mtu 而不是自动。

相关内容