Информационные технологииStfw.Ru 🔍

MTU

MTU параметр, по умолчанию стоит 1500.
🕛 03.07.2009, 19:12
MTU - определяет размер фрейма при передаче блока данных на канальном уровне сети.
Для Ethernet по умолчанию это 1500 байт.
Когда IP хочет отослать блок данных большего размера просисходит его фрагментация (разбиение).
Для разных сетей этот параметр различен, например

Ethernet 1500
FDDI 4352
X.25 576

Соответственно когда IP пакет попадает допустим из Ethernet с МТУ 1500 на РОУТЕР и далее должен пойти по Х.25 сети, РОУТЕР произведет фрагментацию пакета - разбивая его на несколько размером не больше параметра МТУ для сети Х.25

Однако в передаваемом IP пакете может стоять спечиальный бит DontFragment - запрещающи фрагментацию пакета - в связи с этим в вышеописанным случае РОУТЕР просто отбросит пакет например в 1400 байт, так как он не может (без разбивки) быть переданным по Х.25. и выходом их ситуации может быть уменьшение вручную через реестр операционки значение МТУ.
+ к этому может быть проблема к доступу к определенным сайтам определенных провайдеров. Это может касаться сайтов и служб, которые расположены на серверах компании Zenon N.S.P и некоторые других крупных (в основном зарубежных) провайдеров.
Zenon N.S.P. и некоторые другие провайдеры игнорируют (фильтруют) большие пакеты (например, больше чем 1372).

В Windows XP оптимизация MTU потеряла актуальность, так как по умолчанию в этой системе включён режим автоматического определения MTU. Пользователю желательно только проверить этот факт. Для этого откройте раздел реестра HKEY_LOCAL_MACHINE\ SYSTEM\ ControlSet\ Services\ Tcpip\ Parameters и убедитесь в отсутствии в нём параметра "EnablePMTUDiscovery"=dword:00000000.

При установке нулевого значения этого параметра, MTU для всех нелокальных соединений становится равным 576, что в большинстве случаев неоптимально - российские провайдеры чаще всего используют 1500. Раздельно же для каждого сетевого интерфейса можно установить MTU следующим образом.

Щёлкните в области уведомлений панели задач по значку своего соединения и посмотрите используемый в настоящее время IP-адрес. В подразделах реестра HKEY_LOCAL_MACHINE\ SYSTEM\ ControlSet\ Services\ Tcpip\ Parameters\ Interfaces\ ИДЕНТИФИКАТОР_АДАПТЕРА найдите тот, для которого прописан текущий IP выбранного соединения (параметр IPAddress или DhcpIPAddress) - именно здесь и следует указывать необходимый MTU: "MTU"=dword:000005dc (1500).

Поскольку Windows XP автоматически выбирает наилучшее MTU, в нашем случае необходимо просто удостовериться, что для этого соединения не установлено какое-то, отличное от оптимального, фиксированное значение. Кстати, это самое оптимальное значение выяснить довольно легко, проведя несложный эксперимент. Откройте консоль cmd.exe и введите в ней команду:

PING -f -l 1472 xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx - IP-адрес сервера вашего провайдера. Если вы получите в ответ что-то типа “Reply from xxx.xxx.xxx.xxx: bytes=1472 time=144ms TTL=10”, то это будет означать что MTU=1500 (28 байт заголовка не учитываются). Если же ответ будет “Packet needs to be fragmented but DF set”, то уменьшайте значение 1472 до тех пор, пока не получите прохождение пакета - это значение плюс 28 байт заголовка и будет равным искомому MTU.

Гораздо важнее, впрочем, в Windows XP установить оптимальное значение буфера RWIN (Receive Window). Для качественных линий связи и GPRS-соединений рекомендуется выбирать довольно большое значение RWIN - в этом случае мы опять-таки экономим трафик благодаря уменьшению числа данных, подтверждающих приём пакета. К сожалению, изменение этого параметра влияет на все соединения в системе, поэтому при использовании кроме LAN ещё и обычного модема лучше не зарываться и выбрать значение RWIN порядка 14 600 байт (то есть MTU минус 40, умноженное на 10). В реестре это будет соответствовать параметру типа DWORD:

HKEY_LOCAL_MACHINE\ SYSTEM\ ControlSet\ Services\ Tcpip\ Parameters
TcpWindowSize="14600"

Интернет и сети   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉