Что определяет параметр mtu

Что такое MTU? Как найти оптимальный размер MTU для домашней сети?

Article47 Main

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

MTU – что это?

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

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

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

Article47 1

Рассчитываем значение 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 менять не стоит. Параметры, установленные провайдером или производителем маршрутизатора, вполне подходят для подавляющего большинства пользователей.

Источник

Maximum Transmission Unit (MTU). Мифы и рифы

Maximum transmission unit (MTU) это максимальный объём данных, который может быть передан протоколом за одну итерацию. К примеру, Ethernet MTU равняется 1500, что означает, что максимальный объём данных, переносимый Ethernet фреймом не может превышать 1500 байт (без учёта Ethernet заголовка и FCS — Рис. 1).

727e469b76bd68a38f0671128ed9c6af
Рис. 1

Давайте пробежимся с MTU по уровням OSI:

Layer 2.

Ethernet MTU является частным случаем Hardware MTU. Определение Hardware MTU вытекает из общего определения:
Hardware MTU — это максимальный размер пакета, который может быть передан интерфейсом за одну итерацию (по крайней мере значение указано в спецификациях устройства – по факту некоторые чипсеты поддерживают передачу больших размеров пакетов, чем заявлено). Поэтому если взглянуть на рисунок 1 в отрыве от Ethernet, то получим следующее:
6c16da13526de3dfd0368d31a5f1b6d9
Рис. 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.

6ae76ca4a48f3b7cc0ac4b781ed4a0ae
Рис. 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 сессии в зависимости от направления.

e38d0b43a5bc2c5574a5cdd4f9bdc138
Рис. 4

Сторона, производящая анонс, высчитывает значение TCP MSS для себя по следующей формуле:
TCM MSS = (IP MTU – [IPHDR + TCPHDR])

Конфигурация.

Тут у нас возможны два сценария – маршрутизатор является транзитным или участником TCP сессии.
1) Транзитное устройство:
Для предотвращения дропа пакетов промежуточным устройством в случае наличия линка с малым MTU, маршрутизатор будет прослушивать TCP SYN пакеты и подменять значения MSS анонсируемые конечным устройством. Что приведет к отправке пакетов меньшей величины конечным устройством и вуаля – проблема с дропами на линке с малым MTU упреждена.

2) Терминирующее устройство:
Здесь всё просто – маршрутизатор является участником TCP сессии и мы можем установить принудительно, размер MSS который он будет анонсировать.

Кажется всё? Нет, не всё. Вспоминаем про MPLS. Вспоминаем… Закончили вспоминать, переходим к рассмотрению.

Layer 2,5. MPLS.

10e87fa0133e1841393b38c1ca3b51fd
Рис. 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

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

Мы рекомендуем использовать VPN от Whoer.net, так как в нашем 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» в конфигурации клиента.

Источник

MTU в роутере: что это такое и где взять данные?

IvanBelyaev

Решение проблемы скорости интернета часто не лежит на поверхности. Ниже я расскажу о важном для работы сети показателе: MTU в роутере что это за параметр, зачем его менять и как это грамотно сделать. Зачастую даже профессионалы могут не обратить внимание на этот способ устранения неполадки, когда у вас не работают отдельные сайты или скорость подключения далека от стабильной. «Совместимость» всего вашего оборудования и установленных программ и прошивок – дело случая, как бы странно это не звучало. Особенно если вы используете девайсы и «начинку» разных лет выпуска. Ниже – всё, что вам нужно знать об MTU в роутере.

lazy placeholder

Что такое MTU в роутере

Параметр MTU в роутере (Maximum Transmission Unit) — это максимальный размер пакета данных, который передаёт роутер без дальнейшего фрагментирования (Wifi, интернет или локальная сеть).

lazy placeholder

Когда данные передаются по компьютерным сетям, они не перемещаются непрерывным потоком. Информация упорядоченно делится на отдельные пакеты данных. Роутер проверяет каждый пакет, используя математические вычисления – сверяя «контрольные суммы». Если случается сбой, то роутер запрашивает конкретный пакет данных заново, и повторяет это действие, пока не соберёт целостный блок информации. Всё это происходит практически со скоростью света – поэтому мы не замечаем того, что данные фрагментированы. Но вот процессор, прошивка роутера, браузер и прочее «железо» и «софт» к этому крайне чувствительны.

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

lazy placeholder

Зачем менять MTU

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

lazy placeholder

Какие проблемы прямо указывают на то, что нужно изменить MTU:

Как правильно изменить MTU

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

lazy placeholder

lazy placeholder

Теперь о том, какие цифры можно указать в качестве значения MTU. Это стоит делать грамотно. Для разных типов подключения есть стандарты MTU – максимальные числа, которые нельзя превышать:

Самый лучший вариант для начала – пообщаться с поддержкой провайдера. Спросите оператора по телефону, какой MTU в роутере подходит для вашей ситуации. Возможно, вам нужно будет назвать модель роутера и тип протокола, который вы используете. Он отображён на этой же странице настроек WAN.

lazy placeholder

Но если ответ оператора вам не помог, то вы можете определить размер MTU сами, «опытным путём».

Как узнать параметры?

Шаг 1. Зайдите в командную строку как администратор. Проще всего ввести «cmd» в поиске «Пуска», нажать правой кнопкой на значок «cmd» в результатах поиска и выбрать в меню, которое появилось – «В режиме администратора».

lazy placeholder

Именно это позволит нам опытным путём определить нужное число. Данная операция совершенно безопасна для компьютера.

lazy placeholder

Шаг 3. Вы получили ответ от сайта, на который отправляли команду: сколько пакетов отправлено, получено и потеряно. Нужно менять число в запросе и оправлять его снова и снова.

lazy placeholder

lazy placeholder

Шаг 4. Добавьте к полученному числу 28. Например, если тест был успешен при 996, то мы получим 996 + 28 = 1024 байта. Введите полученное число в поле MTU в открытом ранее окне настроек роутера.

lazy placeholder

Шаг 6. Хорошим вариантом будет дополнительно уменьшить пакет данных на самом компьютере. Этого можно и не делать, однако тогда всё равно возможны «подтормаживания» и ошибки. Для этого проделайте такие действия:

lazy placeholder

lazy placeholder

lazy placeholder

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

Источник

Что определяет параметр mtu

В компьютерных сетях термин Maximum Transmission Unit (MTU) используется для определения максимального размера блока (в байтах), который может быть передан на канальном уровне сетевой модели OSI.

Значение MTU может быть определено стандартом (например для Ethernet), либо может выбираться в момент установки соединения (обычно в случае прямых подключений точка-точка). Чем выше значение MTU, тем меньше заголовков передаётся по сети — а значит, выше пропускная способность. Однако медленные интерфейсы могут передавать большой пакет значительное время, увеличивая время ожидания для других пакетов. К примеру, пакет размером в 1500 байт, максимально допустимый для Ethernet, может «подвесить» 14.4k модем примерно на одну секунду (1500*8=12000 бит, 14.4*1024=14745.6 бит/с, время передачи: 12000/14745.6 = 0.81 сек).

Содержание

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

Интерфейс Значение MTU
Internet Path MTU (RFC 879) 576
Ethernet (RFC 1191) [1] 1500
802.3 (RFC 1191) 1492
802.11 [2] 2272
802.5 Token ring 4464
FDDI (RFC 1191) 4500

IP (Интернет протокол)

40px Emblem important.svg

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

220px Ipfragmentation

magnify clip

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

Технология Path MTU discovery

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

Однако, и у этой технологии существуют потенциальные проблемы. Всё большее число систем настраиваются администраторами на блокирование 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 является предпочтительным.

Источник

Справочник по обустройству дома и дачи
Adblock
detector