Установка MTU, проигнорированная Java, снабжает сокетом на обратной петле

У меня есть 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 - я просто должен сделать это.

3
задан 19.05.2011, 21:59

0 ответов

Извините, что были парнем, который по ошибке предполагает, что все подобные 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) все же.

3
ответ дан 08.12.2019, 01:05

Теги

Похожие вопросы