Всем привет! Начнем, пожалуй, с вопроса – а что же такое MTU? MTU (от английского Maximum transmission unit) – это максимальный объем в пакете, который может передавать в той или иной сетевой среде. Как вы знаете, все данные передаются определенными пакетами – будь это интернет, Wi-Fi или локальная сеть дома. Все как на почте – почтальон не может переносить больше определенного веса.
Конечно, тут идут и некоторые ограничения. Например, в PPPoE обычно используется 1492 байта. При Ethernet подключении 1500 байта, а в беспроводной сети MTU равен 2304. Если же сетевому устройству нужно передать куда больше информации, то все делится как раз на эти MTU блоки.
Размер MTU зачастую определяется самим отправляющим устройством. MTU в настройках роутера также задается по умолчанию значением заданным разработчиками. Если говорить проще, то происходит следующее:
- Отправляющее устройство режет всю информацию на отдельные MTU куски и отправляет их по каналу связи.
- Принимающее устройство собираем все эти куски в целый кусок, отправленной информации.
Также нужно знать, что в размер MTU входит:
- MSS (Maximum Segment Size) – это основной блок данных.
- Заголовок IP.
- Заголовок ICMP
К чему может привести неправильное значение MTU? Если на роутере, который чаще всего является шлюзом между интернетом и локальной сетью, выставлено неправильное значение, то могут наблюдаться проблемы со связью и интернетом. Например, нельзя зайти на какой-то сайт, некоторые службы в локальной сети перестают работать. Но само значение можно выставить вручную в настройках маршрутизатора.
Также вы можете встретить параметр MRU (maximum receive unit) – это максимальный размер пакета, который может принять устройство. Все по аналогии с MTU. Далее я расскажу, как узнать оптимальный размер MTU в вашей сети и как установить это значение в роутере.
ВНИМАНИЕ! Это нужно делать только в том случае, если у вас наблюдаются проблемы с интернетом, сетью или какими-то сетевыми службами. Если у вас все в порядке, то лучше ничего не делать, так как дальнейшие действия могут привести к ухудшению связи.
Определение идеального MTU
Способ достаточно простой – мы будем использовать встроенную утилиту в Windows «ping» с помощью командной строки. Нажмите на клавиши «Win» (находится в нижнем ряду между «Ctrl» и «Alt») и английскую «R».
В окошке введите команду «cmd» и нажмите «ОК». Командную строку также можно запустить через «Пуск», введя в поисковую строку эти три буквы.
Для начала давайте узнаем, какой MTU у нас стоит по умолчанию. Для этого вводим команду:
netsh interface ipv4 show subinterfaces
Я подключен по Wi-Fi, поэтому у меня стоит стандартное значение 1500. Если же вы подключены к кабелю провайдера напрямую, то эта команда может вам помочь.
Далее мы будем использовать стандартную команду ping с определенными параметрами. Наша задача взять за основу какое-то определенное значение MTU и увеличивать его до тех пор, пока система не сообщит нам, что нам нужно установить параметр фрагментации или разбиения пакета.
Если говорить проще, то мы будем увеличивать пакет до тех пор, пока он проходит по нашему соединению в интернете. Для примера мы будем пинговать всем известный «google.com», но вы можете взять любой другой сайт:
ping www.google.com -f -l 1440
В итоге мы видим, что пакеты с размером в 1440 байтов спокойно отправляются в сеть. Поэтому мы увеличим размер MTU на 1. Немного о команде: значение «-f» – запрещает фрагментировать пакет – это нужно для наших тестов. «-l» (маленькая английская буква «L») – задает размер пакета.
Теперь увеличиваем его на один. Чтобы не прописывать команду постоянно, нажмите на клавиатуре на стрелку вверх, сотрите последнюю цифру и увеличьте её на один:
ping www.google.com -f -l 1441
Как видите этот пакет также свободно проходит. В общем проделываем эту процедуру до тех пор, пока вы сами не найдете идеальный параметр для вашей среды. В самом конце вы должны увидеть сообщение:
«Требуется фрагментация пакета, но установлен запрещающий флаг»
В моем случае это 1472, но у вас может быть совершенно другой параметр, так что нужно проводить свои тесты.
Но это не окончательное значение MTU – это мы нашли только MSS. Поэтому к нему нам нужно прибавить IP и ICMP заголовки. Для этого просто прибавляем ещё 28 байта:
1472 + 28 = 1500
Теперь данное значение можно установить в вашем домашнем роутере.
Установка MTU в роутере
Для начала нам нужно зайти в настройки роутера – для этого нужно ввести IP или DNS адрес в адресную строку любого браузера. Можете попробовать популярные адреса:
- 192.168.1.1
- 192.168.0.1
Адрес можно подсмотреть на этикетке под корпусом. Или ввести в консоль команду:
ipconfig
IP маршрутизатора будет в строке 192.168.1.1.
Далее инструкции могут отличаться в зависимости от модели роутера.
Zyxel Keenetic
«Проводной» – «Параметры IP и DNS» (или «Аутентификация у провайдера (PPPoE / PPTP / L2TP)»)
Переходим в раздел «Интернета» – далее на вкладке «Подключение» выбираем активный коннект к интернету.
Ищем строку «Размер MTU».
TP-Link
«Сеть» – «WAN».
«Дополнительные настройки» – «Сеть» – «Интернет» – «Дополнительные настройки».
D-Link
«Сеть» – «WAN».
Из списка выбираем активное подключение (через которое идет интернет).
Далее находим параметр MTU.
ASUS
Переходим в раздел «Интернет».
LinkSys
«Setup» – «Basic Setup» – чуть ниже будет строка «MTU». По умолчанию стоит значение «Auto», которое само высчитывает нужное число. Для установки конкретного параметра нужно установить режим «Manual» и вписать найденные через консоль цифры.
Netis
«Сеть» – «WAN» – нажимаем на кнопку «Расширенные» под вашим подключением.
Tenda
«Системные настройки» – «Настройки WAN».
Кликаем на последний раздел «Administration».
Картина маслом – в общем, также были проблемы с инетом, у меня вообще стоял пакет 1200 – как понял это мало. Щас вроде все норм. Почему такого разрмера? – я так и не понял
Спасибо, все работает
Все вроде норм с инетом и эксперементировать не буду. За разъяснение – спасибо
Почему вы ещё не учитываете 34 байта служебных данных?
Помимо преамбулы в Ethernet в WiFi пакете содержатся дополнительных 34 байта в каждом фрейме.
Попробуйте их приплюсовать к вашему результату, вбить в настройки . Расскажите потом, что получилось
Проверено экспериментально: Автор прав и нужно прибавлять 28 байт
Метод проверки:
В роутере стоит MTU=1300
по команде “ping http://www.google.com /n 1 /f /l 1272″ всё ОК (пинг без ошибки)
по команде “ping http://www.google.com /n 1 /f /l 1273″ пинг выдал “Неверный параметр –f”
Win 10 на максималках.
C:\>ping http://www.google.com –f –l 1440
Неверный параметр –f.
И вся дальнейшая статья сразу же лишается смысловой нагрузки.
А вводили вручную или копированием? Попробуйте ввести вручную. У команды ping точно есть параметр f, запрещающий фрагментацию.
Только что проверил – команда работает.
зачем тебе http://
Словил такую же ошибку: “Неверный параметр –f”
решение: заменить “-” на “/”
ping http://www.google.com /n 1 /f /l 1440