Warum besteht Mac OS X darauf, meine MTU auf 1500 zu ändern?

13414
Ritwik Bose

Vor kurzem (glaube ich nach dem Update auf 10.6.4) bestand Mac OS X darauf, meine MTU auf 1500 zu ändern, obwohl der Router, mit dem mein Mac direkt verbunden ist, eine MTU von 1472 hat. Ich habe festgestellt, dass die MTU manuell auf 1472 eingestellt wurde Die Leistung wird drastisch erhöht, vermutlich, weil dadurch die Paketfragmentierung fast vollständig beseitigt wird. Mac OS X ändert jedoch die MTU regelmäßig auf 1500.

Weiß jemand warum oder wie kann ich damit aufhören?

6

5 Antworten auf die Frage

4
Studer

Sie können die automatische Ermittlung der MTU-Größe unter Mac OS X folgendermaßen deaktivieren:

  • Nur Sitzung:

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

  • Permanent:

    • Bearbeiten Sie die Datei /etc/sysctl.conf, zum Beispiel:

      sudo nano /etc/sysctl.conf

    • Fügen Sie dann die folgende Zeile hinzu:

      net.inet.tcp.path_mtu_discovery=0

    • Zum Schluss einen Neustart

Dadurch wird verhindert, dass Mac OS X die MTU-Größe automatisch einstellt. Sie müssen die Größe jedoch weiterhin manuell einstellen.

3
knweiss

Leider haben Sie nicht erwähnt, wie Sie die MTU eingestellt haben. Hast du das schon probiert?

Mac OS X 10.4 oder höher: So ändern Sie die MTU zur Fehlerbehebung

Es ist der offizielle Weg, eine nicht standardisierte MTU beharrlich festzulegen .

Genau das habe ich getan. Ich habe dieses Problem nicht vor 10.6.4 gehabt, obwohl ich zur gleichen Zeit aktualisiert habe, dass ich an meinem Router herumgetüftelt habe, also habe ich vielleicht meine MTU nicht mehr gesendet ... Ritwik Bose vor 13 Jahren 0
2
Chealion

Eine Bandhilfe-Lösung könnte darin bestehen, den folgenden Terminalbefehl (oder über AppleScript) bei jeder Anmeldung auszuführen:

sudo networksetup -setMTU en1 1472 

Das zugrunde liegende Problem beim MTU-Reset wird dadurch nicht behoben. Ich empfehle, den Fehler über BugReporter an Apple zu melden .

2
Paul Krupa

Ich habe die MTU mit dem ifconfigBefehl eingestellt.

ifconfig en0 mtu=1492 

Sie müssen Ihre eigene Adapter-ID verwenden, meine ist es en0.

Dies ist die einzige Möglichkeit, um den festgelegten Preis einzuhalten. Ich habe es mit der "offiziellen" Methode versucht und es wurde immer sofort zurückgeworfen.

Ich habe auch den Befehl oben verwendet, um die automatische Verwendung zu beenden:

net.inet.tcp.path_mtu_discovery=0 

Ich habe es auf beide Arten ausprobiert und musste zum Handbuch gehen, damit dies funktioniert.

1
tleeuser

Ich habe hier einige Netzwerktests auf osx 10.6.7 durchgeführt und festgestellt, dass das mtu immer auf 1500 gefallen ist. Die Lösung bestand darin, die automatische Erkennung in osx zu aktivieren und sicherzustellen, dass der Router auf das gewünschte mtu und nicht auf auto eingestellt ist .