Как определить MTU между кабельным модемом и провайдером? - PullRequest
1 голос
/ 15 августа 2011

Я пытаюсь понять «общую картину» MTU. В частности, многие обсуждения MTU сосредоточены на одном прыжке (например, от ноутбука к маршрутизатору), поэтому естественный вопрос заключается в следующем: как определить MTU между кабельным модемом и провайдером или, в более общем смысле, для любого данного прыжка маршрута.

Теперь я могу легко увидеть MTU между моим ноутбуком и его: Wi-Fi роутером, используя ifconfig на Mac OS X:

en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=2b<RXCSUM,TXCSUM,VLAN_HWTAGGING,TSO4>
ether 58:b0:35:f0:14:75 
media: autoselect (none)
status: inactive    
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 58:b0:35:72:64:fa 
inet6 fe80::5ab0:35ff:fe72:64fa%en1 prefixlen 64 scopeid 0x5 
inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect
status: active

1500 - это каноническое значение b / c ограничения wi-fi-кадра (которое, я думаю, было разработано для соответствия с фреймом Ethernet; исправьте меня, если это не так).

Итак, вопрос: Как определить MTU произвольного прыжка в моем маршруте?

Краткое содержание ответа:

Согласно приведенному ниже ответу, лучшая ставка - "tcpdump", "traceroute --mtu" или "tracepath"

1 Ответ

2 голосов
/ 16 августа 2011

Что вам нужно, это Path MTU Discovery . Вы можете увидеть это в действии с tcpdump(1) во время трехстороннего рукопожатия TCP , просмотрев значения опции MSS (вам понадобятся уровень детализации дампа, ааааа -vv делает это).

Оригинал traceroute(8) должен показывать изменения MTU пути, но мне никогда не везло с этим. Linux tracepath(8) дает вам значение MTU прыжка сразу.

...