MTU

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

Значение MTU может быть определено стандартом (например для Ethernet), либо может выбираться в момент установки соединения (обычно в случае прямых подключений точка-точка). Чем выше значение MTU, тем меньше заголовков передаётся по сети — а значит, выше пропускная способность. Однако медленные интерфейсы могут передавать большой пакет значительное время, увеличивая время ожидания для других пакетов. К примеру, пакет размером в 1500 байт, максимально допустимый для Ethernet, может «подвесить» 14.4k модем примерно на одну секунду.[1]

Содержание

Таблица основных значений MTU [править]

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

IP (Интернет протокол) [править]

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

Ipfragmentation.jpg

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

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

Технология 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 является предпочтительным.

См. также [править]

Примечания [править]

  1. 1500·8=12000 бит, 14,4·1024=14745,6 бит/с, время передачи: 12000/14745,6 = 0,81 сек.
  2. RFC 1191 - Исследование MTU на пути следования сообщения
  3. Structure of the IEEE 802.11 MAC Frames

Ссылки [править]