Максимальный размер пакета mtu. Оптимальный размер MTU — снижаем нагрузку на сеть

03.03.2019

В компьютерных сетях термин maximum transmission unit (MTU) означает максимальный размер полезного блока данных одного пакета (англ. payload), который может быть передан протоколом без фрагментации. Обычно заголовки протокола не входят в MTU, но в некоторых системах в некоторых протоколах заголовки могут учитываться. Когда говорят об MTU обычно имеют в виду протокол канального уровня сетевой модели OSI.

Однако, этот термин может применяться и для других уровней:

L1 — media mtu (полный L2 кадр);

L2 — mtu, hw mtu, system mtu;

L3 — ip mtu (ip заголовок учитывается), mtu routing;

L4 — tcp mssВнесистемные: tunnel mtu, vlan mtu, mpls mtu.

Ограничение на максимальный размер кадра накладывается по нескольким причинам:

Для уменьшения времени на повторную передачу в случае потери или неисправимого искажения пакета. Вероятность потерь растёт с увеличением длины пакета.

Чтобы при полудуплексном режиме работы хост не занимал долгое время канал (также для этой цели используется межкадровый интервал (англ. Interframe gap)).

Чем больше отправляемый пакет, тем больше ожидание отправления других пакетов, особенно в последовательных интерфейсах. Поэтому маленький MTU был актуален во времена медленных коммутируемых соединений.

Малый размер и быстродействие сетевых буферов входящих и исходящих пакетов. Однако слишком большие буферы тоже ухудшают производительность.

Значение MTU определяется стандартом соответствующего протокола, но может быть переопределено автоматически для определённого потока (протоколом PMTUD) или вручную для нужного интерфейса. На некоторых интерфейсах MTU по умолчанию может быть установлено ниже максимально возможного. Значение MTU ограничено снизу как правило минимально допустимой длиной кадра.

Для высокопроизводительной сети причины, вызвавшие начальные ограничения MTU, устарели. В связи с этим для Ethernet был разработан стандарт Jumbo-кадров с увеличенным MTU.

Хост знает значение MTU для собственного (возможно и своих соседей) интерфейса, но минимальное значение MTU для всех узлов сети обычно неизвестно. Другая потенциальная проблема заключается в том, что протоколы более высокого уровня могут создавать пакеты большего размера, не поддерживаемые другими узлами сети.

Прохождение больших пакетов по сети с фрагментацией. Для устранения этих проблем IP поддерживает фрагментацию, что позволяет разбивать дейтаграмму на меньшие кусочки, каждый из которых будет достаточно мал, чтобы беспрепятственно пройти через узел, из-за которого происходит фрагментация. Фрагменты пакетов маркируются таким образом, чтобы IP целевого хоста мог произвести сборку фрагментов в оригинальную дейтаграмму. Недостатки фрагментации пакетов, заключающиеся в скорости.

Хотя фрагментация решает проблему несоответствия размеров пакетов и значения MTU, она ощутимо снижает производительность сетевых устройств. В связи с этим, в 1988 году была предложена альтернативная технология, названная Path MTU discovery (RFC 1191). Суть технологии заключается в том, что при соединении двух хостов устанавливается параметр DF (don’t fragment — не фрагментировать), который запрещает фрагментацию пакетов. Это приводит к тому, что узел, значение MTU которого меньше размера пакета, отклоняет передачу пакета и отправляет сообщение ICMP «необходима фрагментация, но установлен флаг её запрета (DF)». Хост-отправитель уменьшает размер пакета и отсылает его заново. Такая операция происходит до тех пор, пока пакет не будет достаточно мал, чтобы дойти до хоста-получателя без фрагментации.

Однако, и у этой технологии существуют потенциальные проблемы. Некоторые маршрутизаторы настраиваются администраторами на полное блокирование ICMP пакетов (это не очень грамотно, но может быть самым простым решением нескольких проблем безопасности). В результате, если размер пакета не соответствует значению MTU на определённом участке, пакет отбрасывается, а хост-отправитель не может получить информацию о значении MTU и не отправляет пакет заново. Поэтому соединение между хостами не устанавливается. Проблема получила название MTU Discovery Black Hole (RFC 2923), и протокол был модифицирован для детектирования таких маршрутизаторов.

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

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

где xxx.xxx.xxx.xxx — IP-адрес шлюза вашего провайдера,

F запрещает фрагментацию пакета,

L устанавливает размер пакета.

Если вы получите в ответ что-то типа “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.

Полученное значение (+28 байт заголовка) необходимо сравнить со значением MTU, используемым системой, которое можно определить с помощью команды, в той же командной строке:

netsh interface ipv4 show subinterfaces

(В результате будет выведено значение MTU для сетевых интерфейсов ipv4).

Изменить значение MTU в ос Windows (XP,7,8) можно с помощью комманды

(Действие по изменению параметров настройки желательно выполнять только опытному пользователю, так как неверное значение повлияет на работу сети в худшую сторону!!!):

netsh interface ipv4 set subinterface “ХХХХХХХХ” mtu=1500 store=persistent

Где ХХХХХХХХ - Название сетевого интерфейса (По умолчанию - "Подключение по локальной сети", для удобства можно переименовать, например в Lan1 в папке "Сетевые подключения" в "Панели управления").

В отличии от ОС Windows большинство роутеров (Wi-Fi Домашних маршрутизаторов) используют статическую настройку MTU, указанную в настройках роутера. По умолчанию значение MTU 1500.

Провайдер "Триолан" обеспечивает передачу пакетов Ethernet максимального полезного размера, которому соответствует настройка MTU 1500.

Есть провайдеры, настройка сети которых ограничивает размер MTU до значений меньше 1500. Зачастую это связано с использованием протоколов дополнительной инкапсуляции (PPPoE,L2P и др.). В таком случае ОС Windows настраивает необходимое значение MTU по протоколу PMTU, но в случае возникновения проблем, могут потребоваться настройки, описанные выше. Чаще проблемы с MTU связанны именно с роутерами, в которых неверно настроено значение MTU.Для сетей "Триолан" это значение составляет 1500, для других сетей - может быть опредено с помощью командной строки, как описано выше.

Для точного определения MTU нужно указать значение по умолчанию - 1500.

Существует огромное количество утилит, которые позволяют это сделать да и не только это. Наиболее распространенные - Internet Tweak 2001 http://www.magellass.com/ , NetBoost 99 http://www.download.ru/ , iSpeed http://www.hms.com/ , MTUSpeed http://www.mjs.u-net.com/ , BlazeNET http://www.indeavour.com/html_about_blazenet.htm . Если же у вас нет. возможности запустить одну из вышеперечисленных программ, сделайте это вручную - с помощью реестра Windows.

В разделе

HKEY_LOCAL_MACHINE\System\CurrentControlSet\ Services\Class \NetTrans\OOOx.

Если там есть параметр MaxMTU - удалите его. Далее, в Панели управления запустите утилиту Сеть, на вкладке Конфигурация выберите элемент списка Контроллер удаленного доступа и нажмите кнопку Свойства. Откроется диалоговое окно Свойства: Контроллер удаленного доступа. На вкладке Дополнительно в группе параметров Свойство выберите элемент списка Размер пакета IP, а в группе параметров Значение - большой (рис. 8.1).

Рис. 8.1. Диалоговое окно Свойства: Контроллер удаленного доступа

Тем самым MTU становится равным 1500. Для того чтобы изменения вступили в силу, перезагрузите компьютер.

Чтобы проверить, будут ли фрагментироваться пакеты, нужно установить соединение с Интернетом. Для этого можно использовать программу Ping, входящую в состав любой операционной системы семейства Windows.

В ней. нужно задать такие параметры:

ping -f -1 1500 ххх.ххх.ххх.ххх

где ххх. ххх. ххх. ххх - IP-адрес тестируемого сервера.

Для тестирования MTU гораздо удобнее использовать современные программы с графическим интерфейсом. Существует огромное количество таких программ. Например, IP Tools. Для начала нужно определить IP-адрес тестируемого сервера, чтобы избежать потери времени, отводимого на запрос DNS.

Для этого воспользуйтесь командой Traceroute. Нажмите кнопку Пуск в левом нижнем углу экрана, выберите команду Выполнить и в появившемся окне наберите и URL веб-сайта. Появится окно приложения MS DOS. Например, введя любой адрес, через некоторое время появится его IP в квадратных скобках. Теперь воспользуйтесь программой Ping. Запустите ее с такими параметрами

ping -f -I 1500 ххх.ххх.ххх.ххх

где ххх.ххх.ххх.ххх - IP-адрес тестируемого сервера. Наиболее благоприятное время для проверки MTU для коммутируемого соединения - ночь. Тогда нагрузка на линии связи наименьшая.

В случае если никакого ответа не получено - пакет потерян. Причем потому, что фрагментировать мы его запретили, а размер слишком велик для оборудования провайдера. Начинайте постепенно уменьшать размер пакета. Например, вместо значения MTU 1500 установите 1480 и т. д., до тех пор, пока ответ не будет получен.

Возможно, ваш интернет-провайдер использует меньшее значение. Например, 1524, 1152, 1024, 1006, 576, 568, 560, 552, 548, 536, 528, 520, 512.

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

Скорее всего, вы поймете, что скорость больше при использовании больших

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

И что? Вы можете спросить: "Где же тот самый рекомендуемый MTU, равный 576?" А его, как оказывается на деле, почти нигде и нет. Поэтому лучшим советом может стать - не следовать чужим рекомендациям, проводить собственные исследования, которые могут дать реальные результаты.

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

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

PMTU система сама найдет для ваших пакетов такой путь в Сети, при котором они не будут фрагментироваться.

Кстати, если вы обнаружите, что у провайдера установлено MTU=512 и менее, то есть смысл подумать о его смене - слишком много шлака будет передаваться вместе с вашими данными.

MTU в роутере что это и почему от этого параметра зависит скорость вашего интернет-соединения? Детальное описание сетевого параметра mtu, его особенностей и свойств.

В статье приведена инструкция для правильного определения и изменения настроек mtu в wi-fi роутере.

MTU (максимальный уровень передачи в сети - maximum transmission unit (MTU )) – это протокол канального уровня, который определяет наибольшее количество «полезных» блоков битов в одном сетевом пакете.

Как известно, обмен информацией между сервером и клиентом (провайдером и пользовательским ПК) возможен благодаря трансферу отдельных пакетов данных.

Эти пакеты образуют наборы полезных блоков.

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

Простыми словами, MTU необходим для обеспечения стабильной работы интернета на вашем компьютере.

Благодаря проставлению его правильного значения можно добиться отличной скорости с минимальными сбоями в работе.

Зачем нужно ограничивать MTU?

Этот протокол канального уровня подлежит обязательному ограничению. Это делается путем присвоения mtu определённого цифрового значения.

Такое действие необходимо для достижения следующих целей:

  1. Рационального распределения нагрузки между блоками передачи и приема информации в сети;
  2. Сокращения общей нагрузки. Благодаря этому уменьшится и время передачи информации;
  3. Расширения функций канала передачи. Таким образом, его смогут использовать одновременно несколько приложений, служб и процессов;
  4. Увеличения отклика сети. В результате сеть будет работать эффективнее, а вероятность появления «битых» пакетов данных (которые не оправились) сводится к минимуму.

Находим правильный размер MTU для сети

Зачастую у пользователей роутеров tp-link, d-link, asus и других, в настройках маршрутизатора указано неверное значение mtu. Из-за этого могут возникать:

  • Проблемы с воспроизведением потокового видео;
  • Ошибки во время скачивания файлов;
  • Просроченные сертификаты безопасности для некоторых сайтов;
  • Общая медленная работа Интернета.

Рис. 1 – проблемы с Интернетом

Если вы обнаружили, что в последнее время соединение с сетью стало слишком медленным и привычные сайты больше не открываются или происходит их «вечная» загрузка, необходимо настроить mtu.

Клиентский компьютер не может открыть сайт, если значение mtu больше максимального значения пакета данных, который передается через протокол.

Детальнее о настройке разнообразных роутеров читайте в нашем материале: Как войти в настройки роутера - TP-Link, D-Link, Asus, Zyxel Keenetic, Ростелеком

Каждый маршрутизатор может изменять число mtu автоматически. Иногда такая возможность действует не в пользу скорости сети, поэтому вы можете изменить значение вручную.

Определить «идеальное» число mtu можно с помощью проведения тестирования под названием Ping Test .

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

Вам также может быть интересно:

В процессе пинг теста следует отправлять повторяющиеся запросы, периодически снижая размер пакета данных.

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

Процесс тестирования:

  • Зайдите в командную строку;
  • Введите указанную на рисунке ниже команду для соединения с доменом;

Рис. 2 – подключение к домену тестирования

Заметьте! XХXX – это значение MTU. Во время тестирования изменяйте его в пределах от 1500 до 500 с шагом 10 байт. Успешный результат – это когда процент потерь не превышает 1%.

  • В результате правильно выполнения команды появятся строки со статистикой пинга (количество отправленных и полученных пакетов, приблизительное время их передачи в миллисекундах, процент потерь);

Рис. 3 – результат успешной команды

  • Теперь следует еще раз повторить эту же команду. Выполняйте ее, пропустив одну строку;
  • Повторяйте тест каждый раз с новым значением mtu, пока не получите наилучший результат передачи пакетов с минимальным процентом утрат. Запомните цифры mtu – именно это значение нам понадобится в дальнейшей настройке mtu.

Рис. 4 – найденное в результате тестирования наилучшее значение для MTU

Изменение MTU в маршрутизаторе

Пользователи маршрутизаторов могут самостоятельно изменять все настройки соединения и . Для этого зайдите в меню конфигурации.

Откройте любой установленный на ПК браузер и в его адресной строке введите локальный IP адрес 192.168.0.1, нажмите Ввод.

Если окно авторизации не появилось, в строку следует ввести адрес 192.168.1.1

В открывшемся диалоговом окне появится форма для введения логина и пароля администратора ПК.

В обоих полях пропишите слово admin или другие данные для входа в сеть (их можно прочитать в или спросить у провайдера). Дождитесь авторизации.

Окно настроек каждой модели маршрутизатора может иметь внешнее отличие, однако, структура полей в основном одинаковая. Для начала следует определиться с конечной величиной mtu.

Возьмите результат, полученный в процессе тестирования. В нашем случае это 1458 бит и прибавьте еще 28 байт. Дополнительные байты – это место для заголовков пакета и запроса.

В результате получаем 1458+28 = 1486 байт для mtu.

Для роутеров TP-Link

Чтобы изменить mtu, кликните на пункт меню «Сеть» . Затем в правой части окна найдите поле mtu и пропишите необходимое значение, как указано на рисунке:

Рис. 5 – изменение значения для TP-Link

В тот момент, когда хост должен передавать данные через интерфейс, он ссылается на максимальный размер полезного блока данных для одного пакета Maximum Transmission Unit, чтобы определить, сколько данных он может поместить в каждый пакет. Например, интерфейсы Ethernet имеют MTU по умолчанию 1500 байт, не включая заголовок или трейлер Ethernet. Это означает, что хост, которому необходимо отправить данные по TCP-протоколу, обычно будет использовать первые 20 из этих 1500 байтов для заголовка IP, следующие 20 для заголовка TCP, а оставшиеся 1460 байт для полезной нагрузки. Инкапсуляция данных в пакеты максимального размера, подобные этому, позволяет потреблять полосу пропускания наиболее эффективно, минимизируя использование служебного трафика протокола передачи данных. Оптимальный размер MTU - ключ к эффективному использованию сетевых каналов передачи данных и снижению нагрузки на сетевое оборудование.

К сожалению, не все устройства в сети Интернет имеют одинаковый максимальный размер полезного блока данных MTU. MTU может различаться в зависимости от типа физического носителя или сконфигурированной инкапсуляции (например, туннелирование GRE или шифрование IPsec). Когда маршрутизатор решает переслать IPv4 пакет через интерфейс и определяет, что размер пакета превышает MTU интерфейса, маршрутизатор должен разбить пакет так, чтобы передать его как две (или более) отдельные части, каждая из которых не превышает предельный размер MTU канала между абонентами. Фрагментация довольно дорого стоит, как в ресурсах маршрутизатора, так и в использовании полосы пропускания. Должны быть созданы новые заголовки и прикреплены к каждому фрагменту. В спецификации протокола IPv6 из маршрутизатора полностью удалена фрагментация пакетов, но эта тема для отдельного разговора.

Определение оптимального размера MTU пакета данных

Чтобы использовать канал наиболее эффективным образом, хосты должны определить оптимальный размер MTU - это минимальный MTU среди всех узлов на пути между хостами. Например, для двух хостов, путь между которыми состоит из 3-х маршрутизаторов с различными максимально возможными размерами пакетов: 1500, 800 и 1200 байтов, каждый из конечных хостов должен принять наименьший размер пакета 800 байт, чтобы избежать фрагментации.

Do not Fragment и Destination Unreachable, Fragmentation Needed

Пакеты могут перемещаться по сетям произвольным образом и невозможно заранее просчитать все маршруты и максимальный размер пакетов для каждого подключения. В RFC 1191 прописана методология определения размера MTU. Процесс, посредством которого хост для конкретного подключения может обнаруживать меньший размер MTU, чем поддерживает его собственный сетевой интерфейс. Ключевыми являются два компонента: бит “Не фрагментировать” (Do not Fragment (DF)) заголовка IP и субкод сообщения ICMP-протокола Destination Unreachable, Fragmentation Needed.

Установка бита DF в IP-пакете не позволяет маршрутизатору выполнять фрагментацию, когда он обнаруживает MTU меньше, чем размер пакета. Вместо этого пакет отбрасывается и по ICMP отправителю приходит сообщение о необходимости фрагментации пакетов. По сути, маршрутизатор указывает, что для отправки далее ему необходимо разбить пакет на части, но флаг Don’t Fragment (DF) не позволяет это сделать. RFC 1191 расширяет ICMP-сообщение, запрашивающее фрагментацию, с включением размера MTU для текущего подключения.

Теперь, когда был обнаружен максимальный размер пакета для подключения, хост может кэшировать это значение и формировать последующие соответствующего размера. Обратите внимание, что обнаружение максимального размера пакетов для конкретного подключения является непрерывным процессом. В случае использования динамической маршрутизации и перестроении маршрута между отправителем и получателем хост периодически продолжает попытки установить флаг DF для обнаружения дальнейшего уменьшения размера пакетов. RFC 1191 также позволяет периодически тестировать возможность увеличения максимального размера пакетов для каждого маршрута, иногда пытаясь передать пакет больше, чем кешированный. Если пакет передается успешно, то значение предельно допустимого размера пакета увеличивается.

Расчет максимального размера MTU пакета с помощью трассировки

Вы можете вычислить максимальный размер пакета MTU для каждого маршрута через с помощью инструмента, такого как трассировка пути. Является частью пакета Linux - IPutils. Или утилита, написанная для Windows - mturoute:

Привожу пример определения MTU для маршрута между двумя хостами через шифрованный GRE-туннель. Видим как утилита последовательно подбирает максимальный размер пакета:

C:\bin>mturoute.exe 192.168.3.1 * ICMP Fragmentation is not permitted. * * Speed optimization is enabled. * * Maximum payload is 10000 bytes. * - ICMP payload of 1472 bytes is too big. + ICMP payload of 92 bytes succeeded. + ICMP payload of 782 bytes succeeded. + ICMP payload of 1127 bytes succeeded. + ICMP payload of 1299 bytes succeeded. - ICMP payload of 1385 bytes is too big. + ICMP payload of 1342 bytes succeeded. + ICMP payload of 1363 bytes succeeded. + ICMP payload of 1374 bytes succeeded. - ICMP payload of 1379 bytes is too big. + ICMP payload of 1376 bytes succeeded. + ICMP payload of 1377 bytes succeeded. + ICMP payload of 1378 bytes succeeded. Path MTU: 1406 bytes.

Класснуть

Кто-то использует VPN для получения доступа к заблокированным сайтам, кто-то просто обходит ограничения по географическому положению. Бывает, что использование VPN может быть определено с помощью анализа TCP-соединения на основе размера MTU. Можно ли избежать этой ситуации? Сразу скажем: с VPN от — можно!

Мы рекомендуем использовать , так как в нашем VPN-клиенте изменение MTU возможно с помощью одного клика. Помимо этого в нашем клиенте ВПН есть и другие плюсы, такие как одновременный доступ с нескольких устройств, надежные каналы связи и отсутствие ограничений по скорости.

Начнём с технических деталей. Как же может быть определено использование VPN?

Значение параметра MTU

Maximum Transmission Unit или сокращено MTU - это максимальный объем передаваемой информации, отправляемой одним пакетом данных. Параметр MTU присваивается сетевым интерфейсам. Стандартным значением MTU для проводного соединения является число 1500. Параметр MTU в значении 1500 обозначает, что объём данных, передаваемый через подключение, не может превышать 1500 байт.

В большинстве случаев значение параметра MTU для VPN равняется 1450. Но, например, для реализации OpenVPN в зависимости от протокола подключения, алгоритма шифрования трафика, алгоритма проверки целостности, а также использования сжатия, MTU устанавливается до нестандартного размера, на основе которого можно получить эти параметры, а также определить и сам факт использования OpenVPN.

Как избежать обнаружения VPN

Для этого необходимо вручную поменять размер MTU. Если вы не желаете, чтобы вас деанонимизировали методом обнаружения нестандартного MTU, можно вручную на сервере выставить «mssfix 0», а на клиенте - «mssfix 0», что установит параметр MTU в значение 1500. Однако, при использовании UDP мы рекомендуем установить «mssfix 1330» в конфигурации клиента.