какой максимальный мти ю на сети пи ти
Maximum Transmission Unit (MTU). Мифы и рифы
Maximum transmission unit (MTU) это максимальный объём данных, который может быть передан протоколом за одну итерацию. К примеру, Ethernet MTU равняется 1500, что означает, что максимальный объём данных, переносимый Ethernet фреймом не может превышать 1500 байт (без учёта Ethernet заголовка и FCS — Рис. 1).
Рис. 1
Давайте пробежимся с MTU по уровням OSI:
Layer 2.
Ethernet MTU является частным случаем Hardware MTU. Определение Hardware MTU вытекает из общего определения:
Hardware MTU — это максимальный размер пакета, который может быть передан интерфейсом за одну итерацию (по крайней мере значение указано в спецификациях устройства – по факту некоторые чипсеты поддерживают передачу больших размеров пакетов, чем заявлено). Поэтому если взглянуть на рисунок 1 в отрыве от Ethernet, то получим следующее:
Рис. 2
Замечание: Однако и тут не обойтись без оговорки. Как вы видите, HW MTU (Ethernet MTU в частности) не включает заголовок L2 в себя. Однако это справедливо для IOS и IOS XE, но для IOS XR и JunOS заголовок L2 включен в размер HW MTU – Рис. 3. Эта особенность может привезти к проблемам при установке OSPF neighborship между платформами под управлением IOS(XE) и IOS XR (OSPF требует совпадения MTU в Hello пакетах). Поэтому, при конфигурации MTU для Ethernet интерфейсов, на стороне IOS XR MTU должно быть на 14 байт больше (12 байт src mac+dst mac и 2 байт EtherType). К примеру, MTU в 1500 в Cisco IOS эквивалентно MTU в 1514 для IOS XR.
Рис. 3
Конфигурация и проверка.
Для того что бы изменить MTU на маршрутизаторах под управлением Cisco IOS используется команда интерфейс уровня:
Layer3.
IP MTU определяет максимальный размер пакета с IP заголовком, который может быть передан на данном интерфейсе не прибегая к фрагментации. Зависимость между IP MTU и HW MTU описывается следующей формулой:
IP MTU ≤ HW MTU
Соответственно, когда на интерфейс попадает пакет, превосходящий установленное IP MTU, пакет либо подвергается фрагментации, либо, в случае установленного флага DF (DO NOT Fragment) в IP заголовке, дискардится, а устройство может сгенерировать ICMP сообщение Fragmentation Needed, используемое в механизме path MTU discovery (о нём позже), и отправить его назад отправителю исходного пакета.
Конфигурация и проверка.
Для изменения IP MTU на маршрутизаторах под управлением Cisco IOS используется команда интерфейс уровня:
Вот те раз. Команда ip mtu не видна в show run. Да тут есть интересный нюанс – если ip mtu совпадает с hw mtu, то в выводе show run будет отображаться только hw mtu. Если значения разные то отображаются оба.
Layer 4.
TCP Maximum Segment Size (MSS) определяет максимальный размер TCP сегмента (без TCP заголовка!), который может быть использован (отправлен/принят) в ходе TCP сессии. Анонс (именно анонс, не хендшейк) размеров TCP MSS происходит во время установки TCP сессии – принимающая сторона анонсирует стороне отправляющей какой размер TCP сегмент она может принять. Соответственно размер TCP MSS может различаться в рамках одной TCP сессии в зависимости от направления.
Рис. 4
Сторона, производящая анонс, высчитывает значение TCP MSS для себя по следующей формуле:
TCM MSS = (IP MTU – [IPHDR + TCPHDR])
Конфигурация.
Тут у нас возможны два сценария – маршрутизатор является транзитным или участником TCP сессии.
1) Транзитное устройство:
Для предотвращения дропа пакетов промежуточным устройством в случае наличия линка с малым MTU, маршрутизатор будет прослушивать TCP SYN пакеты и подменять значения MSS анонсируемые конечным устройством. Что приведет к отправке пакетов меньшей величины конечным устройством и вуаля – проблема с дропами на линке с малым MTU упреждена.
2) Терминирующее устройство:
Здесь всё просто – маршрутизатор является участником TCP сессии и мы можем установить принудительно, размер MSS который он будет анонсировать.
Кажется всё? Нет, не всё. Вспоминаем про MPLS. Вспоминаем… Закончили вспоминать, переходим к рассмотрению.
Layer 2,5. MPLS.
Рис. 5
MPLS MTU определяет максимальный размер маркированного (кто знает как лучше переводиться Labeled прошу подсказать в комментах) IP пакета. В случае, если размер маркированного пакета превышает MPLS MTU, то пакет либо фрагментируется, либо, при наличии установленного в IP заголовка флага с DF bit, дропается (пока логика как и при превышении IP MTU), с возможной отправкой ICMP сообщения Fragmentation Needed.
Замечание: Вот тут дела обстоят немного по другому, по сравнению c IP MTU. В MPLS сети промежуточный узел может и не иметь маршрута к отправителю пакета, поэтому вместо того что бы слать ICMP сообщение отправителю напрямую, оно инкапсулируется с тем же стеком меток (label stack), что и исходный пакет, и отправляется по его же пути следования. Достигая Egress LSR (конечного MPLS маршрутизатора для данного LSP – за ним уже IP сеть без меток), который знает ip маршруты к узлу отправителя, ICMP сообщение Fragmentation Needed «разворачивается» им, инкапсулируется необходимыми заголовками и отправляется назад в MPLS сеть к отправителю оригинального пакета. Поведение аналогично с TTL Expired, да и в целом скорее относиться к теме MPLS, а не MTU. Поэтому кто не знаком с процессом — www.google.kg/?gws_rd=ssl#q=mpls+ttl+expired
Что здесь ещё интересного? MPLS MTU может быть больше HW MTU (поэтому на Рис. 3 HW MTU частично обозначено пунктиром). При этом IOS выдаст варнинг, но в большинстве случаев будет работать (зависит от чипсета интерфейса) и успешно пропускать по крайней мере baby-giant фреймы. А в иной раз можно получить дроп пакетов, повреждение данных, и сто лет без урожая.
Конфигурация и проверка.
Замечание: MPLS MTU отображается в running конфиге, также как и IP MTU — только в случае, если значение отличается от HW MTU. Но, в отличие от IP MTU, любое изменение HW MTU меняет значение MPLS MTU до значения HW MTU (IP MTU это действие не меняет).
MTU на коммутаторах Cisco.
На заметку администратору.
1) Для того, что бы найти минимальный MTU (забавное сочетание) на сети можно использовать расширенную команду ping, причём как c конечных станций/серверов так и с оборудования Cisco. Пропингуем с маршрутизатора R01 маршрутизатор R02 с выставленным df-bit, c начальным размером пакета в 1000 байт, конечным 1500 байт, и шагом 100 байт. Кол-во повторений 2.
Как видите, проходит только 6 ICMP пакетов размером 1000, 1100, 1200, 1300 байт
Начиная с 1400 байт и выше пакеты не проходят. Следовательно, минимальное MTU между двумя точками — 1300 и 1400, что можно уточнить ещё за несколько циклов, ужимая диапазон и умешьшая шаг.
На этом всё. Есть ещё в закромах старый драфт статьи по размерам фреймов и их эволюции, где описаны понятия Jumbo Frame, Baby-Giant Frame, встречающиеся в этой статье. Если посчитаете нужным, могу доработать и выложить и её.
Размер MTU по умолчанию для различных сетевых топологий
Обзор
Максимальное перемещение блока данных (MTU) определяет максимальный размер интерфейса. Другое значение MTU может быть указан для каждого интерфейса использования. MTU обычно определяется путем согласования с драйвером нижнего уровня. Тем не менее это значение может быть переопределено.
Дополнительные сведения
Каждый тип среды имеет максимальный размер кадра. Канальный уровень отвечает за обнаружение этого MTU и отчетности MTU протоколы уровня связи. Стек протокола может запросить драйверы сетевых драйверов интерфейса спецификации NDIS локальное значение MTU. Протоколы верхнего уровня, например TCP позволяет оптимизировать размер пакетов для каждого носителя интерфейс MTU.
Если драйвер сетевого адаптера, например драйвером асинхронной передачи (ATM) режим использует режим эмуляции локальной сети (LAN), драйвер может сообщить, что его размер MTU больше чем ожидалось для этого типа носителя. Например сетевой адаптер может эмулировать Ethernet, но отчета значение MTU 9180 байт. Windows принимает и использует размер MTU, что адаптер в отчете, даже если размер MTU превышает обычный размер MTU с определенным типом носителя.
В следующей таблице приведены размеры MTU по умолчанию для различных сетевых сред.
Network MTU (bytes)
——————————-
16 Mbps Token Ring 17914
4 Mbps Token Ring 4464
FDDI 4352
Ethernet 1500
IEEE 802.3/802.2 1492
PPPoE (WAN Miniport) 1480
X.25 576
СОДЕРЖАНИЕ
Применимость
Базовые каналы передачи данных и физические уровни обычно добавляют накладные расходы к передаваемым данным сетевого уровня, поэтому для данного максимального размера кадра носителя необходимо вычесть количество накладных расходов, чтобы вычислить MTU этого носителя. Например, для Ethernet максимальный размер кадра составляет 1518 байтов, 18 байтов из которых являются служебными ( заголовок и последовательность проверки кадра ), в результате чего MTU составляет 1500 байтов.
Компромиссы
Больший MTU обеспечивает большую эффективность, поскольку каждый сетевой пакет несет больше пользовательских данных, в то время как служебные данные протокола, такие как заголовки или базовые задержки для каждого пакета, остаются фиксированными; полученная в результате более высокая эффективность означает улучшение пропускной способности массового протокола. Больший MTU также требует обработки меньшего количества пакетов для того же объема данных. В некоторых системах обработка пакетов может быть критическим ограничением производительности.
Большие пакеты также проблематичны при наличии ошибок связи. Если прямое исправление ошибок не используется, повреждение одного бита в пакете требует повторной передачи всего пакета, что может быть дорогостоящим. При заданной частоте ошибок по битам большие пакеты более подвержены повреждению. Их большая полезная нагрузка заставляет повторную передачу больших пакетов занимать больше времени. Несмотря на отрицательное влияние на продолжительность повторной передачи, большие пакеты все же могут иметь чистый положительный эффект на сквозную производительность TCP.
Протокол Интернета
Набор интернет-протоколов был разработан для работы с множеством различных сетевых технологий, каждая из которых может использовать пакеты разного размера. Хотя хост будет знать MTU своего собственного интерфейса и, возможно, своих одноранговых узлов (из начальных рукопожатий), он изначально не будет знать самый низкий MTU в цепочке ссылок на другие одноранговые узлы. Другая потенциальная проблема заключается в том, что протоколы более высокого уровня могут создавать пакеты большего размера, чем поддерживает даже локальный канал.
Чтобы пакет считался принятым, должны прибыть все фрагменты пакета. Если сеть отбрасывает какой-либо фрагмент, весь пакет теряется.
Когда количество пакетов, которые необходимо фрагментировать, или количество фрагментов велико, фрагментация может вызвать необоснованные или ненужные накладные расходы. Например, различные ситуации туннелирования могут очень незначительно превышать MTU, поскольку они добавляют только значение заголовка данных. Добавление небольшое, но теперь каждый пакет нужно отправлять двумя фрагментами, второй из которых несет очень небольшую полезную нагрузку. Перемещается тот же объем полезной нагрузки, но каждый промежуточный маршрутизатор должен переслать вдвое больше пакетов.
Интернет-протокол требует, чтобы хосты могли обрабатывать дейтаграммы IP размером не менее 576 байтов (для IPv4) или 1280 байтов (для IPv6). Однако это не препятствует передаче данных IP канальным уровням с MTU меньше этого минимального MTU. Например, согласно спецификации IPv6, если конкретный канальный уровень не может доставить IP-дейтаграмму размером 1280 байт в одном кадре, то канальный уровень должен предоставить свой собственный механизм фрагментации и повторной сборки, отдельный от механизма фрагментации IP, чтобы гарантировать, что IP-дейтаграмма размером 1280 байт может быть доставлена на уровень IP в неизменном виде.
MTU для обычных носителей
Максимальный размер кадра Ethernet
Поскольку IP-пакет переносится кадром Ethernet, размер кадра Ethernet должен быть больше размера IP-пакета. При обычных непомеченных кадрах Ethernet, составляющих 18 байтов, максимальный размер кадра Ethernet составляет 1518 байтов. Если IP-пакет размером 1500 байт должен передаваться по тегированному соединению Ethernet, максимальный размер кадра Ethernet должен быть 1522 из-за большего размера тегированного кадра 802.1Q. 802.3ac увеличивает стандартный максимальный размер кадра Ethernet, чтобы приспособиться к этому.
Обнаружение MTU пути
Сбой обнаружения MTU пути может привести к тому, что некоторые сайты за плохо настроенными межсетевыми экранами станут недоступными. Соединение с несоответствующим MTU может работать для данных небольшого объема, но терпит неудачу, как только хост отправляет большой блок данных. Например, с помощью Internet Relay Chat подключающийся клиент может видеть начальные сообщения, включая начальный пинг (отправленный сервером в качестве меры защиты от спуфинга), но после этого не получит ответа. Это связано с тем, что большой набор приветственных сообщений, отправленных в этот момент, представляет собой пакеты, превышающие MTU пути. Это можно обойти, в зависимости от того, какую часть сети контролирует; например, можно изменить MSS ( максимальный размер сегмента ) в начальном пакете, который устанавливает TCP- соединение на своем брандмауэре.
В других контекстах
MTU иногда используется для описания максимальных размеров PDU на уровнях связи, отличных от сетевого.
Что такое MTU в настройках роутера
Когда постоянно происходят сбои при подключении к интернету, многие идут на решительные меры. Они меняют роутер, меняют провайдера. Одна из причин возможных неполадок – не корректно выставленное значение MTU. Давайте разберемся, что это такое и как его правильно выставить.
MTU в роутере что это
Значение MTU (Maximum Transmission Unit) указывает, какого максимального размера пакеты отправляет устройство. Измеряется в байтах. То есть, если на роутер пришел блок данных большего размера, то он его нарежет на несколько пакетов (фрагментирует). Эти пакеты будут идти по сети, и если встретится на их пути маршрутизатор, который посчитает их слишком большими, он тоже их нарежет. Когда они достигнут последнего маршрутизатора, он, в свою очередь, перед отправкой на компьютер получателя, будет из фрагментированных пакетов собирать в исходные.
Все эти манипуляции по нарезке и сборке пакетов трудоемки. Соответственно, желательно выставлять оптимальное значение MTU на роутере.
Так как данные в каждом пакете оборачиваются служебными заголовками, то чем более длинные пакеты используются, тем меньше затрат на заголовки. В связи с этим желательно выставлять максимальный размер MTU, при котором пакеты не будут нарезаться на последующих узлах сети.
Какой MTU поставить на роутере
Самый простой способ, это обратиться в службу поддержки провайдера (написать письмо, позвонить). Скорее всего, они подскажут актуальное значение. Но через некоторое время, провайдер может все переконфигурировать. Хотя это случается достаточно редко, но если вдруг начали возникать сбои, вполне вероятно, что следует уточнить правильность выставленного MTU.
Второй вариант, это найти оптимальный размер с помощью команды ping, отправляя пакеты, в которых установлено, что их нельзя фрагментировать. Пинговать следует удаленный ресурс, например, сайт или сервер провайдера.
Можно так же проверить наиболее посещаемые ресурсы в интернете: игровые сервера, сервера с которых смотрите фильмы, используемые 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 на персональном компьютере, требуется воспользоваться командной строкой, запущенной от имени администратора:
После данной установки на компьютере, с него будут отправляться пакеты, у которых максимальный размер на уровне IP будет 1024 байта, но на MAC уровне максимальный отправляемый блок данных будет размером 1038 байт (14 из них для заголовка MAC).
Большего размера пакеты не будут отправляться. То есть, если в настройках роутера рассчитан и правильно выставлен MTU 1024, то точно такой же MTU следует задать в настройках подключенного к нему компьютера.
Автоматическая настройка — PMTU discovery
Существуют режимы работы некоторых устройств, когда размер MTU уточняется во время подключения к удаленному серверу (PMTU discovery). Алгоритм такой же, как и тот, которым пользовались при настройке MTU на роутере. В начале работы устройство отправляет блоки данных разного размера, пытаясь определить максимальный размер пакета, который дойдет без фрагментации.
В этом алгоритме есть одна проблема, называемая «MTU Discovery Black Hole». Она возникает в случае, когда администраторы сетей, чтобы избежать возможных атак на их сервера, запрещая маршрутизаторам передачу ICMP, в частности которые используются при команде ping.
Так конечно не корректно действовать. Устройство, не получив ответа на запрос не может продолжить работать.
Что такое MTU? Как найти оптимальный размер MTU для домашней сети?
Информация в компьютерных сетях передается в виде небольших сформированных блоков данных (иначе говоря, пакетов). Каждый пакет помимо пересылаемой информации содержит еще и служебные данные, составляющие так называемый заголовок (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 и пишем такую команду:
Запомните полученное значение и прибавьте к нему 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, а затем установить значение параметра можно в терминале:
Вы можете указать размер MTU и в настройках маршрутизатора. Во многих моделях роутеров соответствующая настройка находится в разделе WAN. Более подробную информацию можно получить на сайтах производителей сетевого оборудования.
При ручной настройке MTU учитывайте, что слишком маленький размер блока данных устанавливать не рекомендуется, чтобы не создавать дополнительную нагрузку на процессор маршрутизатора. Также напомним еще раз: если ваше сетевое подключение работает нормально, значение MTU менять не стоит. Параметры, установленные провайдером или производителем маршрутизатора, вполне подходят для подавляющего большинства пользователей.