web-dev-qa-db-ja.com

Mac OS XがMTUを1500に変更することを主張するのはなぜですか?

最近(10.6.4にアップデートした後だと思います)Mac OS Xは、Macが直接接続するルーターのMTUが1472であるにもかかわらず、MTUを1500に変更することを主張しました。手動でMTUを1472に設定していることに気付きました。おそらくパケットの断片化がほとんどなくなるため、パフォーマンスが大幅に向上しますが、Mac OSXは定期的にMTUを1500に戻します。

誰かがそれを止める理由や方法を知っていますか?

6
Ritwik Bose

これにより、Mac OS Xで MTUサイズの自動検出 をオフにすることができます:

  • セッションのみ:

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サイズを自動的に設定できなくなりますが、サイズを手動で設定する必要があります。

5
Studer

残念ながら、MTUを設定する方法については言及していません。すでにこれを試しましたか?

Mac OS X 10.4以降:トラブルシューティングのためにMTUを変更する方法

これは、非標準のMTUを永続的に設定する公式の方法です。

3
knweiss

バンドエイドソリューションは、ログインするたびに次のターミナルコマンドを実行する(またはAppleScriptを介して実行する)ことです。

Sudo networksetup -setMTU en1 1472

これでは、MTUリセットの根本的な問題は修正されません。バグをApple via BugReporter に報告することをお勧めします。

2
Chealion

ifconfigコマンドを使用してMTUを設定しました。

ifconfig en0 mtu=1492 

独自のアダプタIDを使用する必要があります。私のものはen0

これが、設定されたレートを維持する唯一の方法です。 「公式」の方法を試してみましたが、すぐに元に戻りました。

また、上記のコマンドを使用して、自動の使用を停止しました。

net.inet.tcp.path_mtu_discovery=0

私はそれを両方の方法で試しました、そしてこれが機能するために私はマニュアルに行かなければなりませんでした。

2
Paul Krupa

ここでosx10.6.7でネットワークテストを行っていたところ、mtuが常に1500に低下していることがわかりました。ここでの解決策は、osxで自動検出をオンにし、ルーターが自動ではなく目的のmtuに設定されていることを確認することでした。 。

1
tleeuser