Что такое mtu 1500

Что такое mtu 1500

В компьютерных сетях термин 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

Содержание

Описание [ править | править код ]

Таблица основных значений MTU

Интерфейс Значение MTU (байт)
Internet Path MTU для X.25 (RFC 879) 576
Ethernet II (RFC 1191) 1500
Ethernet c LLC и SNAP, PPPoE (RFC 1042) 1492
WLAN 802.11 [1] 2272 [ уточнить ]
802.5 Token ring 4464
FDDI (RFC 1191) 4478 [ уточнить ]

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

  • Для уменьшения времени на повторную передачу в случае потери или неисправимого искажения пакета. Вероятность потерь растёт с увеличением длины пакета.
  • Чтобы при полудуплексном режиме работы хост не занимал долгое время канал (также для этой цели используется межкадровый интервал (англ.Interframe gap )).
  • Чем больше отправляемый пакет, тем дольше ждут отправления другие пакеты, особенно в последовательных интерфейсах. Поэтому маленький MTU был актуален во времена медленных коммутируемых соединений.
  • Малый размер и быстродействие сетевых буферов входящих и исходящих пакетов. Однако слишком большие буферы тоже ухудшают производительность.

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

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

Минимальный размер кадра по стандартам:
Fast Ethernet 100Base-T: 64 байта
Gigabit Ethernet 1000Base-T: 512 байт

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

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

Зависимость скорости от MTU [ править | править код ]

Номинальная скорость — битовая скорость передачи данных, поддерживаемая на интервале передачи одного пакета без различия служебных и пользовательских заголовков. Очевидно, что чем меньше пакет, тем быстрее он передастся.
Эффективная скорость — это средняя скорость передачи пользовательских данных (нагрузки) в потоке. Этот параметр зависит от соотношения длин служебных заголовков к нагрузке. Во многих случаях некоторый объём информации эффективнее передавать большими пакетами из-за меньших накладных расходов. Корректно сравнивать скорости потоков можно только для одного и того же объёма данных, который требуется передать единовременно.

Чем больше полезная нагрузка пакета по отношению к его заголовкам, тем выше скорость передачи полезной информации и процент использования канала (channel utilization). Поскольку MTU — это верхняя граница длины полезной нагрузки, то максимальная скорость достигается, когда нагрузки всех пакетов в потоке имеют длину, равную MTU. Для шейпинга существуют разные методы подсчёта длины Ethernet-кадра (англ. Ethernet frame ) (без jumbo):

  • до 1514 байт (1518 c тегом 802.1Q) на компьютерах общего назначения, где шейпер реализован программно. Заключительные байты (называются trailer[en] или footer) поля FCS обрабатываются сетевым адаптером и в операционную систему передаётся пакет без них.
  • до 1518 байт (1522 c тегом 802.1Q) — Ethernet пакет, включая поле FCS, но не учитывая преамбулу.
  • до 1538 байт (1542 c тегом 802.1Q) на специальных сетевых платформах. [2] Вместе с обычным Ethernet заголовком учитывается преамбула, FCS и межкадровый интервал. Этот способ подсчёта также нужно использовать, когда скорость ограничивается только протоколом передачи (в данном случае Ethernet) и не ограничивается провайдером.

Существуют несколько способов увеличения пропускной способности в контексте длин пакетов:

  • Уменьшение межкадрового интервала. Для Fast Ethernet он по умолчанию равен 0,96 мкс за который могло бы быть передано 12 байт. Некоторые сетевые адаптеры в полнодуплексном режиме могут передавать и получать кадры с уменьшенным межкадровым интервалом.
  • Сжатие заголовков. Пример реализации — Метод сжатия заголовков TCP/IP Якобсона.
  • Сжатие нагрузки низкого уровня. Пример реализации — IP Payload Compression Protocol.
  • Решение проблемы передачи небольших данных (tinygram problem) за счёт придерживания в буфере малых данных, чтобы отправить один большой пакет. Пример реализации — алгоритм Нейгла. Частный случай этой проблемы — «болтливые» протоколы, посылающие множество запросов там, где можно обойтись одним. Существуют программные и аппаратные решения, осуществляющие оптимизацию таких соединений, например у компании Riverbed Technology[en] .
Читайте также:  Как перевести фотографии на карту памяти

Известные проблемы [ править | править код ]

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

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

  • Целевой хост должен получить все фрагменты для того, чтобы собрать пакет. Если хотя бы один фрагмент утерян — весь пакет должен быть отправлен заново.
  • Как правило, фрагментацию выполняют более медленные процессоры, нежели те, что обрабатывают транзитный трафик. В некоторых случаях задержки, которые вызовет фрагментация всех пакетов, могут быть сочтены неприемлемыми.
  • Увеличивается нагрузка на процессоры промежуточных маршрутизаторов и машины адресата.
  • Увеличивается требование к памяти маршрутизатора, т.к. необходимо хранить в буфере все фрагменты IP-пакета.
  • Некоторые межсетевые экраны могут блокировать фрагменты.
  • Из-за копии IP-заголовка для каждого фрагмента неэффективно используется полоса пропускания.
  • Протоколам маршрутизации, например OSPF, требуется согласованный MTU для корректной работы.

Для обозначения кадров, которые имеют ненормативный размер, в сетях Ethernet применяются следующие термины:

  • RUNT — (коротышка) — кадр, размер которого менее 64 байтов (512 бит).
  • LONG — (длинный) — кадр, размер которого лежит в пределах от 1518 до 6000 байтов.
  • GIANT — (гигант) — кадр, размер которого превышает 6000 байтов.

Path MTU discovery [ править | править код ]

Термин Path MTU означает наименьший MTU на пути следования пакета в сети.

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

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

Проблема представляет потенциальную опасность для любого PPPoE соединения, использующего MTU меньше типового (1500 байт).

Существует несколько вариантов решения этой проблемы. Самым простым, безусловно, является отмена фильтрации пакетов ICMP. Однако зачастую подобная операция находится вне компетенции пользователя. Поэтому проблему решают путём ручной настройки размера передаваемого пакета на шлюзе пользователя. Для этого меняют значение MSS (максимальный размер сегмента, то есть величина, меньшая MTU на 40 байт в случае протокола IPv4). При установке соединения хосты обмениваются информацией о максимальном размере сегмента, который каждый из них сможет принять. Поэтому, меняя значение MSS, заставляют оба хоста обмениваться пакетами, которые шлюз пользователя сможет заведомо принять без фрагментации.

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

В маршрутизаторах Cisco реализация PMTUD для туннеля поддерживает только TCP пакеты. [3]

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

MTU в роутере что это

Значение MTU (Maximum Transmission Unit) указывает, какого максимального размера пакеты отправляет устройство. Измеряется в байтах. То есть, если на роутер пришел блок данных большего размера, то он его нарежет на несколько пакетов (фрагментирует). Эти пакеты будут идти по сети, и если встретится на их пути маршрутизатор, который посчитает их слишком большими, он тоже их нарежет. Когда они достигнут последнего маршрутизатора, он, в свою очередь, перед отправкой на компьютер получателя, будет из фрагментированных пакетов собирать в исходные.

Читайте также:  Asus radeon hd 7850 1gb

Все эти манипуляции по нарезке и сборке пакетов трудоемки. Соответственно, желательно выставлять оптимальное значение MTU на роутере.

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

Какой MTU поставить на роутере

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

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

Можно так же проверить наиболее посещаемые ресурсы в интернете: игровые сервера, сервера с которых смотрите фильмы, используемые IP телефоном.

Пример команды «ping -f -l 1472 yandex.ru», здесь:

  • 1472 – это количество отправляемых байт данных. Следует учитывать, что помимо данных, будет отправлен еще и заголовок, который составляет 28 байт (IP заголовок 20 + ICMP заголовок 8 = 28). Следовательно, в итоге размер пакета будет составлять 1472+28=1500 (байт), стандартный размер максимального стандартного Ethernet пакета. Есть правда пакеты большего размера, называемые jumbo-кадрами.
  • yandex.ru – это доменное имя сервера, на который будем отправлять команды, его можно поменять на IP адрес сервера провайдера. Можно поэкспериментировать с разными IP-адресами.

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

Запускаем командную строку (это классическое приложение Windows, найти его можно, например, в поиске набрав «Командная строка»). И выполняем команды.

Здесь значении данных 997 байт, размер пакета 997+28=1025 байт, пакет не может быть доставлен без фрагментации.

Здесь значении данных 996 байт, размер пакета 996+28=1024 байт, пакет доходит до получателя без фрагментации.

Таким образом, изменяя размер отправляемого блока данных, мы можем вычислить DMTU – максимальный размер блока данных, который доставляется без фрагментации. Например, если команда ping проходит без фрагментации со значением 996. При попытке отправить команду со значением 997 получаем ответ: «Требуется фрагментация пакета, но установлен запрещающий флаг». Тогда мы рассчитываем параметр DMTU следующим образом: 996 байт данных + 28 байт IP заголовка = 1024 байта. Максимальный размер блока данных, который не будет фрагментирован, составит 1024 байта. Это значение и следует задать на маршрутизаторе, как размер MTU.

Как поменять MTU на роутере

Подключаемся к маршрутизатору через интернет браузер. Выставляем новый размер MTU. Затем сохраняем настройки.

Например, при использовании TP-Link, заходим в пункт «Сеть», там подпункт «WAN». Не забываем нажать после этого кнопку «Сохранить».

После изменения значений, можно проверить, насколько изменилась скорость скачивания файлов большого размера из интернета.

Настройка MTU на компьютере

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

  1. Определим текущее значение MTU. В командной строке выполнить команду «netsh interface ipv4 show subinterfaces». В строке ответа напротив Ethernet видим, что текущий параметр MTU, составляет 1500
  2. Установим новое значение. В командной строке следует выполнить команду, например, если необходимо заменить на 1024, то она будет выглядеть следующим образом: «netsh interface ipv4 set subinterface “Ethernet” mtu=1024 store=persistent»
  3. Проверяем, что новое значение установилось

После данной установки на компьютере, с него будут отправляться пакеты, у которых максимальный размер на уровне IP будет 1024 байта, но на MAC уровне максимальный отправляемый блок данных будет размером 1038 байт (14 из них для заголовка MAC).

Большего размера пакеты не будут отправляться. То есть, если в настройках роутера рассчитан и правильно выставлен MTU 1024, то точно такой же MTU следует задать в настройках подключенного к нему компьютера.

Автоматическая настройка – PMTU discovery

Существуют режимы работы некоторых устройств, когда размер MTU уточняется во время подключения к удаленному серверу (PMTU discovery). Алгоритм такой же, как и тот, которым пользовались при настройке MTU на роутере. В начале работы устройство отправляет блоки данных разного размера, пытаясь определить максимальный размер пакета, который дойдет без фрагментации.

В этом алгоритме есть одна проблема, называемая «MTU Discovery Black Hole». Она возникает в случае, когда администраторы сетей, чтобы избежать возможных атак на их сервера, запрещая маршрутизаторам передачу ICMP, в частности которые используются при команде ping.

Так конечно не корректно действовать. Устройство, не получив ответа на запрос не может продолжить работать.

Читайте также:  Как восстановить сообщения в вайбере на компьютере

Информация в компьютерных сетях передается в виде небольших сформированных блоков данных (иначе говоря, пакетов). Каждый пакет помимо пересылаемой информации содержит еще и служебные данные, составляющие так называемый заголовок (header) пакета. Эти служебные данные нужны для определения целостности данных, используемой версии сетевых протоколов и т.д. При этом размер полезного блока данных ограничивается определенным количеством байт. Делается это для того, чтобы снизить вероятность потерь информации и уменьшить время повторной пересылки пакета в случае появления проблем с подключением.

MTU – что это?

MTU (от англ. Maximum transmission unit) – это максимальный объем данных, передаваемый по сети без дальнейшего фрагментирования (одним пакетом). Любая информация, объем которой превышает значение MTU, автоматически разбивается на небольшие блоки данных перед отправкой по сети. Возможные значения MTU зависят от используемого типа подключения к сети. Так, при использовании PPoE (в основном с ADSL и подобными технологиями) максимальное значение параметра MTU составляет 1492 байта (стандартные 1500 байт для Ethernet минус восемь байт заголовков), а при использовании Wi-Fi MTU может достигать 2304 байт.

В современных ОС оптимальное значение MTU зачастую вычисляется самой системой или берется из настроек маршрутизатора (обычно значение MTU задается в разделе WAN сетевых настроек устройства). Если проблем с доступом к Интернету не наблюдается, значение MTU лучше не менять. Однако, если возникли проблемы со связью и вы предполагаете, что они могут быть связаны с фрагментацией сетевых пакетов, попробуйте изменить значение MTU.

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

Рассчитываем значение MTU

Найти оптимальное значение MTU можно с помощью старой-доброй команды ping. Предположим, что мы определяем значение этого параметра для проводного подключения. Открываем командную строку Windows и пишем такую команду:

В Linux команда обычно имеет вид ping -M do -s 1472 www.google.com, а в macOS ping -D -s 1472 www.google.com (в некоторых версиях систем ключи могут отличаться, рекомендуем обратиться к man ping, если команда не работает). В данном случае мы отправляем по адресу www.google.com пакеты размером 1472 байта и запрещаем фрагментировать данные. Если пакеты такого размера не могут быть отправлены, команда сообщит, что необходима фрагментация пакета. Перезапустите эту команду несколько раз, постепенно уменьшая размер пакета на 8–10 байт. В итоге после нескольких попыток вы подберете значение размера, при котором отсылка данных состоится. Помните: если используется беспроводное подключение, размер пакета может быть больше 1500 байт.

Запомните полученное значение и прибавьте к нему 28 байт (длина служебных заголовков). Получившееся значение – это оптимальное (или близкое к оптимальному) значение MTU для вашей сети.

Устанавливаем значение MTU

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

В Windows открываем командную строку с правами администратора и выполняем команду:

netsh interface ipv4 show subinterfaces

На экране появится список всех сетевых подключений, их названия и текущий размер MTU. Запоминаем название нужного нам подключения и пишем следующую команду:

netsh interface ipv4 set subinterface Ethernet mtu=1450 store=persistent

Здесь Ethernet – название интерфейса (может быть другим), 1450 – выбранный размер MTU. Если название состоит из нескольких слов, его надо указывать в кавычках.

Для отключения автоматической настройки MTU можно выполнить команду:

netsh int tcp set global autotuninglevel=disabled

Включить автоматическое определение MTU можно той же командой с параметром autotuninglevel=normal.

Если необходимо сбросить настройки к исходному состоянию, выполняем команду:

В Linux настройка MTU осуществляется с помощью команды ip. Посмотрим текущее значение MTU:

А далее установим желаемое значение:

Здесь eth0 – название интерфейса, оно может быть другим на вашем компьютере. Для того чтобы выбранное значение MTU использовалось постоянно при каждом входе в систему, необходимо прописать значение в файл /etc/network/interfaces, либо создать модуль для systemd. Рекомендуем обратиться к документации используемого дистрибутива для получения более подробной информации.

В macOS посмотреть размер MTU для подключения en0, а затем установить значение параметра можно в терминале:

networksetup -setMTU en0 1450

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

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

Ссылка на основную публикацию
Adblock detector