MTU
1 Мбайт/MSS = 1 048 576/1460 = 718.2, т. е. всего требуется 719 эффективных пакетов, чтобы передать 1 мегабайт данных. Далее, умножаем 719 пакетов на 7.772 мс, получаем 5588.083 мс, или 5.588 секунд задержки на один хоп. Если же мы передаем свой файл через 10 хопов, что встречается чаще, чем один, то получаем 55.88 сек – это время, которое мы (вернее, поставщик услуг, доступа в Интернет, имеющий линию Т1) потратим на передачу файла в 1 Мбайт при идеальной связи. Если же MTU=576, то: 1 Мбайт/MSS = 1 048 576/536 = 1956.300, т. е. при таком MTU нужно 1957 пакетов, чтобы передать 1 Мбайт.
Далее, умножаем количество пакетов на задержку каждого из них: 1957 х 2.984 = 5840.580 мс, или 5.841 секунды на один хоп. Ну и соответственно на 10 хопов придется 58.41 сек. Как видим, из-за того, что при использовании больших пакетов передается меньше заголовков, реальная скорость передачи файла получается выше.
Для того чтобы передать 1 мегабайт при использовании MTU = 1500, нужно переслать "довесок" заголовков из 28 760 байт, тогда как при использовании MTU = 576 получаем аж 1957x40 = 78 280 байт, т. е. дополнительные 49 520 байт заголовков на каждый мегабайт полезной информации. Для нашей 10-хоповой передачи это выливается в лишних 2.52 секунды при передаче каждого мегабайта даже при сверхбыстрой связи.
Эта разница, возможно, будет еще немного выше на практике, т. к. современные реализации TCP/IP стремятся использовать еще большие заголовки (например, дополнительные 12 байтов заголовка для отметок времени). Если же провести аналогичные расчеты для связи по модему на скорости 33 600 Кбит/с, то получим, что на передачу мегабайта информации на расстояние одного хопа, т. е. непосредственно вашему провайдеру, будет потрачено в идеале 256 секунд при MTU=1500 и 268 секунд при MTU=576.
Разница на одном переходе 12 секунд или около 4.5%! Но не следует забывать, что эти цифры получатся при условии отсутствия фрагментации пакетов, т. е. если у вашего провайдера MTU=1500. Если же это не так, то, разумеется, больший, чем нужно, пакет будет фрагментироваться – разбиваться на несколько пакетов и даже разбавляться "воздухом", и связь ухудшится на 10-50%.
Таким образом, логично считать, что большие пакеты в итоге все-таки предпочтительнее. И если ваш провайдер настроил свои серверы и маршрутизаторы на большие пакеты, то надо стремиться использовать это на всю катушку, но не забывать и о том, что в Интернете встречаются серверы с MTU=576 (об этом чуть ниже мы еще поговорим). Тем не менее, если чистая производительность не является окончательной целью, то меньшие пакеты будут более "быстрыми", поскольку они требуют меньше времени для своих путешествий по Сети.
Этот эффект может перевешивать все другие достоинства больших пакетов в некоторых интернет-приложениях и онлайновых играх за счет уменьшения времени отклика удаленного сервера при передаче небольших объемов информации.
В Интернете по пути следования ваших пакетов, вероятно, встретятся самые разные серверы с самыми разными настройками, но для начала все-таки желательно определить наилучшее значение MTU при связи только с вашим провайдером, поскольку именно оно может оказать решающее значение при оптимизации вашего доступа в Сеть.
В Windows 95 разработчиками по умолчанию было выбрано MTU=1500, что якобы не соответствует оптимальному для модемного соединения значению, которое всеми считается равным 576. В Windows 98 корпорация Microsoft уже исправила этот недостаток, и теперь по умолчанию при соединениях ниже 128 килобит в секунду мы имеем МТU=576, что вроде бы должно чаще оказываться наилучшим вариантом. Попробуем разобраться, так ли оно на самом деле.
Итак, есть несколько способов определить значение MTU, оптимальное для связи с вашим интернет-провайдером.
- Послать письмо с вопросом в службу технической поддержки провайдера. Тут в принципе все понятно – если работники провайдера сами в курсе своих собственных настроек, то они дадут вам квалифицированный ответ, который, впрочем, не помешает все-таки и проверить лично на практике.
- Подключиться к Интернету в терминальном режиме – иногда при осуществлении регистрации пользователя в одной из строк появляется рекомендуемое значение MTU. Для этого войдите в папку Удаленный доступ к сети, найдите там значок своего соединения и, щелкнув на нем правой кнопкой мыши, выберите команду Свойства (Properties).
На вкладке Общие (General) открывшегося окна нажмите кнопку Настройка (Settings) возле строки с названием вашего модема. В диалоговом окне Свойства: тип модема (Properties: Modem Type) выберите вкладку Параметры (Options), где установите флажок Открыть окно терминала после набора номера (Show terminal window after connection). Теперь соединяйтесь с провайдером и при появлении окна терминала вводите вручную имя пользователя и пароль по соответствующим запросам. Если после этого вы увидите что-то типа "Entering PPP mode. Your IP address is xxx.xxx.xxx.xxx. MaxMTU is 1524", то вам повезло – вы получили MTU провайдера. Но и тут нелишним будет проверить это значение лично.
- И, наконец, ручное определение MTU.