Изменение MTU в Linux или Windows не имеет никакого эффекта
Я исследую проблему с программным обеспечением (клиентом), работающим на вдовах, которое загружает данные на контроллер (сервер), работающий на Linux. Загрузка программного обеспечения 1024
байт за раз, и ожидает прикладного уровня ACK
(send and wait
). Тем не менее, некоторые клиенты столкнулись с некоторыми проблемами при загрузке файлов через модемы, так как TCP packets
быть фрагментированным. Я пытаюсь воспроизвести такое же поведение без модемов. Я пытался установить MTU
контроллера до 500 с использованием:
ifconfig eth0 mtu 500 up
но это не заставило пакеты фрагментироваться (наблюдается в wireshark). То же самое происходит, когда я устанавливаю MTU
в окнах с помощью
netsh interface ipv4 set subinterface <my_interface> mtu=500 store=persistent
Я почти уверен, что выбираю правильные интерфейсы. Любая идея, почему изменение MTU не имеет никакого эффекта?
РЕДАКТИРОВАТЬ: Если я запускаю обнаружение MTU на окнах, я получаю:
MTU path scan to 172.20.35.101, ttl=64, limit=48
# 16 processing - best MSS 1472 (estimated MTU 1500) [pPPPPpPppPpppppp]
#1 MSS IN RANGE 1 <== 1471 ==> 1472
#2 MSS EXCEEDED 1473 <== 14911 ==> 16384
Однако ifconfig контроллера показывает MTU 576!
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 30:18:CF:00:10:CC
inet addr:172.20.35.101 Bcast:172.20.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:576 Metric:1
RX packets:5281739 errors:1 dropped:0 overruns:0 frame:1
TX packets:184845 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:378840649 (361.2 MiB) TX bytes:19017453 (18.1 MiB)