Укрощение @Интернет@

Закладка Utilities и подбор оптимального MTU


Для ручного подбора значения MTU, недурно бы иметь какой-нибудь инструмент, позволяющий количественно оценить влияние размера пактов на производительность Интернет - соединения.

Один из таких инструментов – утилита ping из штатной поставки Windows, способная отправлять по указанному адресу пакет заданного размера с пометкой "Не фрагментировать". Если какой-тонибудь  из промежуточных серверов не в состоянии обрабатывать пакеты такого размера, он возвращает отправителю уведомление о невозможности доставки пакета и ping выдает на экран что-то вроде: "Требуется фрагментация пакета, но установлен запрещающий флаг". Остается опытным путем найти наибольший допустимый размер пакета…

Вовсе не обязательно уменьшать размер пакета каждый раз на единицу – MTU по обыкновению принимает одно из следующих фиксированных значений: 65.535, 32.000, 17.914, 8.166, 4.464, .4352, 2.048, 2.002, 1.536, 1.500, 1.492, 1.006, 576, 544, 512, 508, 296,68, – жирным шрифтом выделены наиболее распространенные значения в Интернет.

Так, тысяча байт – проходит! Полторы тысячи – проходит?! Две тысячи – как, опять, проходит??!! Разумеется, нет! На самом деле сервер кривого провайдера (и попадаются же такие – к примеру, тот же krintel) игнорируя флаг запрета фрагментации, втихую разрезает отправляемый пакет на столько частей, на сколько сочтет нужным. Как же в этом случае определить подходящее значение MTU, разумеется, не меняя провайдера?

Методика подбора оптимального размера пактов в этом случае будет следующей – связавшись с некоторым сервером, отправляем ему пакеты все большего и большего размера, замеряя среднее время их пересылки. До тех пор, пока пакет в процессе своего путешествия не фрагментируется, время доставки увеличивается прямо пропорционально размеру. Но, стоит только превысить некоторую критическую величину, как один пакет разрезается на два и время доставки скачкообразно возрастает (см. рис. 3), поскольку на транспортировку двух пакетов уходит больше времени, чем на транспортировку одного.


Нажатие кнопки " Test MTU Value" запускает консольную утилиту ping в отдельном окне (см. рис. 5). Если окно самопроизвольно закрывается по завершению работы, взведите флажок – "Check this box if the ping windows closes too soon" или измените свойства ярлыка "MS-DOS", сбросив галочку "Закрывать окно по завершению работы".



Рисунок 4 Рис. 0x01C Назначение опций закладки "Utilities"

По умолчанию утилита ping посылает четыре пакета, сообщая время доставки каждого из них. В зависимости от стабильности соединения и степени загрузки канала скорость обмена не остается постоянной, а "плавает", под час настолько значительно, поэтому что время доставки пакетов может отличаться в несколько раз! Это осложняет подбор оптимального размера пактов, поскольку становится неясно чем вызвано изменение производительности – фрагментацией пакетов или тормозами промежуточных серверов.

Для надежности выполните несколько прогонов с одними и теми же значениями размеров пакетов, а затем выберите наименьшее время доставки (не среднее, т.к. на среднее в большей степени влияют тормоза, а наименьшее значение – это скорость доставки без тормозов, она-то и будет истинной скоростью).

У автора увеличение размера пактов с 576 байт до 577 байт (всего лишь на один байт!) снизило скорость обмена данными на 20%! Не бог весть какая величина, но все ж таки – копейка доллар бережет!



Рисунок 5 Рис. 0x019 Подбор MaxMTU при кривом провайдере


Содержание раздела