MTU-Einstellung von Java-Socket bei Loopback ignoriert

1814
Simon Ottenhaus

Ich habe ein MTU-Problem. Ich habe folgendes gemacht:

root@sa-headend:/home/sa# ifconfig lo mtu 1500 root@sa-headend:/home/sa# ifconfig lo lo Link encap:Lokale Schleife  inet Adresse:127.0.0.1 Maske:255.0.0.0 inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine UP LOOPBACK RUNNING MTU:1500 Metrik:1 RX packets:143 errors:0 dropped:0 overruns:0 frame:0 TX packets:143 errors:0 dropped:0 overruns:0 carrier:0 Kollisionen:0 Sendewarteschlangenlänge:0  RX bytes:58028 (58.0 KB) TX bytes:58028 (58.0 KB)  root@sa-headend:/home/sa# ip route flush cache 

Wie ist es möglich, dass ich Pakete wie diese bekomme: (Mit Wireshark erfassen)

15 0.028587 127.0.0.1 127.0.0.1 TCP 10005 > 49152 [ACK] Seq=4717 Ack=53 Win=14600 Len=1608 

Die TCP-Pakete werden von einem Java-Socket generiert - sofern dies von Bedeutung ist.

Bitte fragen Sie nicht, warum ich die MTU wechseln möchte - ich muss das nur tun.

3

1 Antwort auf die Frage

3
Spiff

Tut mir leid, der Kerl zu sein, der fälschlicherweise annimmt, dass alle Unix-ähnlichen Betriebssysteme gleich sind, aber besteht die Möglichkeit, dass Ihr Kernel der Meinung ist, dass Ihre Loopback-Schnittstelle TCP-Segmentierungs-Offload (TSO) unterstützt?

Wenn Sie unter Mac OS X (siehe "BSD") eine Paketerfassung auf derselben Maschine durchführen, auf der die Pakete gesendet werden, können Sie unmöglich große TCP-Frames sehen, die an die Karte gesendet werden, da der Stapel weiß, dass die Karte TSO ausführt um es in 1500-Byte-Brocken zu zerhacken. Unter Mac OS X können Sie es mit deaktivieren sudo sysctl -w net.inet.tcp.tso=0.

Unter Linux für eine Ethernet-Schnittstelle sieht es so aus, als könnten Sie das tun sudo ethtool -K eth0 tso off. Ich weiß nicht, ob das auf der Loopback-Schnittstelle (anstelle von ethX) funktionieren würde.

** Eine Million Dank! ** `ethtool -K lo tso off` arbeitet tatsächlich an meinem Ubuntu und hat das Problem gelöst. Ich brauche das für mein Studentenforschungsprojekt und wir haben versucht, diesen Fehler seit geraumer Zeit aufzudecken. Vielleicht kann ich meine Arbeit veröffentlichen, wenn ich fertig bin. Simon Ottenhaus vor 12 Jahren 0
Ich weiß noch nicht, ob dies das Problem ist, das wir * haben, aber es ist ein verdammt subtiles und gut zu wissen. Dang Mihai Danila vor 10 Jahren 0