У меня есть mtu проблема. Я сделал следующее:
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
Как это возможный, что я получаю пакеты как этот: (Используя Wireshark для получения)
15 0.028587 127.0.0.1 127.0.0.1 TCP 10005 > 49152 [ACK]
Seq=4717 Ack=53 Win=14600 Len=1608
Пакеты TCP сгенерированы сокетом Java - если это имеет какую-либо уместность.
Не спрашивайте, почему я хочу изменить MTU на lo - я просто должен сделать это.
Извините, что были парнем, который по ошибке предполагает, что все подобные Unix Ose подобны, но есть ли шанс, Ваше ядро думает, что Ваш петлевой интерфейс поддерживает Сегментацию TCP разгружается (TSO)?
В Mac OS X (думают "BSD"), если Вы делаете захват пакетов на той же машине, это отправляет пакеты, Вы видите, что невозможно большие кадры TCP отправляются вниз в карту, потому что стек знает, что карта сделает TSO, чтобы нарубить его в 1 500-байтовые блоки. На Mac OS X можно отключить его с sudo sysctl -w net.inet.tcp.tso=0
.
На Linux, для интерфейса Ethernet, похоже, что можно сделать sudo ethtool -K eth0 tso off
. Я не знаю, работало ли это над петлевым интерфейсом (вместо ethX) все же.