Установка правильного значения параметра MTU (Maximum Transmission Unit) в роутере и другом сетевом оборудовании позволяет достичь оптимального использования канала связи и при необходимости решить существующие проблемы с интернетом.
Maximum Transmission Unit – максимальный полезный блок данных, который может быть передан без фрагментации. Под фрагментацией понимается процесс разделения пакета на меньшие части. Если в сети несколько маршрутизаторов и каждый из них будет «разделять» пакет, то это может создать дополнительную нагрузку для конечного маршрутизатора, который будет собирать все фрагментированные пакеты в одно целое (нужно учитывать дополнительную нагрузку, поскольку для каждого фрагмента на всем пути передачи будет создаваться новый заголовок). В сетевой модели OSI процесс преобразования пакета во фрейм соответствующего единице MTU происходит на втором – канальном уровне (L2).
Зачем ограничивать MTU
В идеальном случае установка одинакового максимального размера пакета MTU на всех устройствах позволила бы избежать проблем в сети. Но с учетом различных каналов связи, оборудования и технологий этого достичь невозможно. В современных операционных системах и маршрутизаторах размер MTU в байтах задается и вычисляется автоматически и как правило его нет необходимости менять, но если возникли проблемы со связью, не скачиваются файлы, ухудшилось качество воспроизведения видео, низкая скорость загрузки страниц – необходимо проверить установленное значение. Без необходимости изменять этот параметр не рекомендуется. В целом ограничение необходимо для:
- оптимального использования полосы пропускания различными приложениями;
- сокращения времени передачи информации, снижения нагрузки на канал;
- повышения эффективности сети, минимизации рисков потери данных.
Для различных сетевых топологий параметр MTU может отличаться и стандартное значение задается равным:
- PPPoE = 1480 байт;
- L2TP = 1460 байт;
- Ethernet = 1500 байт;
- FDDI = 4352 байт;
- 4 Mbps Token Ring = 4464 байт;
- 16 Mbps Token Ring = 17914 байт.
Но всегда нужно учитывать особенности провайдера. Поэтому не лишним будет у него получить консультацию по оптимальной настройке. Во многих операционных системах и маршрутизаторах по умолчанию размер пакета Maximum Transmission Unit задается равным 1500.
Как узнать нужное значение
Для измерения значения параметра можно использовать как сторонние программы, так и встроенные компоненты операционной системы. Рекомендуется использовать штатные средства ОС. Например — с помощью утилиты «ping», которая используется для первичной диагностики сети и установлена по умолчанию практически в любой современной операционной системе. Для этого в системе Windows необходимо запустить программу с параметрами – «f» и «l». Где ключ «f» — устанавливает флаг, запрещающий фрагментацию в пакете IP v4, а «l» — размер буфера отправки. Запрещающий флаг позволит найти искомое значение полезного блока данных путем подбора. В качестве диагностического узла лучше задать распространенный сайт, например, www.mail.ru. Для того чтобы воспользоваться этим способом и рассчитать значение необходимо:
- Запустить в командной строке cmd – «ping www.mail.ru -f -l 1450».
- Далее следует увеличивать значение буфера до тех пор, пока не будет получен ответ ICMP — «Требуется фрагментация пакета, но установлен запрещающий флаг».
- Для проверки, найденное значение нужно уменьшить на один байт и если передача пакетов не прервется, то можно рассчитать MTU. Если прервется – тогда повторять итерации, но уже уменьшая буфер отправки.
При получении сообщения «Требуется фрагментация пакета, но установлен запрещающий флаг» пакет будет отброшен, т.к. флаг не позволяет выполнить фрагментацию.
Найденное значение 1464 байта соответствует параметру MSS (Maximum Segment Size) – полезный блок данных пакета TCP. А для расчета Maximum Transmission Unit – нужно к MSS добавить длину заголовка ICMP и IP (28 байт):
1464 + 28 = 1492 байт – оптимальный размер блока
На примере роутера
Для изменения MTU в роутере «Zyxel Keenetic Lite III», необходимо выбрать нужный интерфейс Ethernet (куда подключен интернет), найти в настройках поле «MTU» и задать значение. Эта настройка выполняется аналогично почти во всех роутерах, за исключением профессиональных маршрутизаторов Cisco, Juniper – в них настройка выполняется в консоли.
Интерфейс подключения к интернету:
Размер MTU:
В компьютере
Для изменения параметра в операционной системе Windows, можно воспользоваться утилитой «Netsh» или редактором реестра.
С помощью «Netsh»
Для этого необходимо:
- Запустить в командной строке (лучше сразу запускать «cmd» от имени Администратора) для получения списка интерфейсов:
netsh interface ipv4 show subinterfaces
- Установить расчетное значение:
netsh interface ipv4 set subinterface Ethernet mtu=1492 store=persistent
Здесь:
- set – задать, установить;
- subinterface «Ethernet» — наименование интерфейса;
- store=persistent – сохранить на постоянное время.
- Отключить автоматическую настройку:
netsh int tcp set global autotuninglevel=disabled
- При необходимости вернуть автоматическую настройку можно выполнив команду:
netsh int tcp set global autotuninglevel=normal
С помощью реестра
Всегда перед редактированием реестра рекомендуется делать архив ветки, на случай отката операции. Для настройки MTU необходимо выполнить несколько шагов:
- Открыть редактор реестра «Regedit».
- Найти ветку реестра «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<AdapterID>».
- Вместо «AdapterID» необходимо выбрать свой сетевой интерфейс. Чтобы не запутаться – в настройках нужного интерфейса в реестре будут сетевые настройки IP-адрес, маска, шлюз по умолчанию.
- В поле двоичного параметра необходимо установить значение MTU.