Открыть сервис

MTU

MTU (от англ. Maximum Transmission Unit) — это максимальный размер полезного блока данных в одном пакете (или кадре), который может быть передан по протоколу канального уровня сетевой модели OSI без необходимости фрагментации. Значение MTU измеряется в байтах и является критическим параметром для настройки и функционирования компьютерных сетей, включая локальные сети (LAN), глобальные сети (WAN) и интернет. Корректный выбор MTU влияет на производительность, надежность передачи данных и предотвращает потерю пакетов из-за превышения допустимого размера.

Определение и принцип работы

MTU — это максимальная длина поля данных в кадре (или пакете) протокола канального уровня, как правило, Ethernet, PPPoE, Frame Relay или ATM. В отличие от максимального размера сегмента (MSS) на транспортном уровне (TCP), MTU относится к канальному уровню и учитывает служебные заголовки и трейлеры. Если пакет, поступающий от вышележащего протокола (например, IP), превышает MTU интерфейса, он либо фрагментируется (разбивается на более мелкие части), либо отбрасывается с отправкой сообщения об ошибке (ICMP Type 3, Code 4 — «Fragmentation needed but DF set»).

Фрагментация увеличивает накладные расходы на обработку и передачу данных, а также снижает общую скорость сети. Поэтому значение MTU должно быть выбрано таким образом, чтобы минимизировать фрагментацию при сохранении совместимости с промежуточными устройствами, такими как маршрутизаторы и коммутаторы. В большинстве современных сетей MTU по умолчанию составляет 1500 байт для Ethernet, однако для некоторых технологий, таких как Jumbo Frames (стыковочные кадры), MTU может достигать 9000 байт и более.

История и развитие

Концепция MTU возникла в ранних разработках протоколов сетевого взаимодействия, таких как ARPANET, где размер передаваемых блоков был ограничен возможностями аппаратуры и линий связи. С появлением Ethernet в 1970-х годах, стандартный максимальный размер кадра был установлен в 1518 байт (из которых 1500 приходится на полезную нагрузку), что стало де-факто стандартом для большинства локальных сетей.

С развитием технологий канального уровня, таких как PPPoE (Point-to-Point Protocol over Ethernet), используемый в DSL-подключениях, и VPN-туннели (например, IPSec), стандартный MTU в 1500 байт стал приводить к проблемам. Добавление служебных заголовков туннелирования уменьшало доступное пространство для полезной нагрузки, вызывая фрагментацию на уровне IP. Это привело к необходимости ручной настройки MTU для таких подключений (например, снижение до 1492 или 1460 байт).

В 1990-х годах был разработан механизм Path MTU Discovery (PMTUD) для автоматического определения минимального MTU на всем пути между отправителем и получателем. Однако он зависит от работоспособности протокола ICMP, который иногда блокируется сетевыми экранами, что создает дополнительные сложности.

Типы и значения MTU

Стандартные значения MTU для различных сетевых технологий

Значения MTU варьируются в зависимости от используемого протокола канального уровня. Ниже приведены типичные значения:

Ограничения на уровне IP

Протокол IPv4 сам по себе не накладывает жестких ограничений на размер пакетов, но максимальная длина IP-датаграммы составляет 65 535 байт (поле «Total Length» длиной 16 бит). Однако на практике передача столь больших пакетов требует установки MTU не менее этого значения, что редко встречается в современных сетях. IPv6 ввел обязательное требование о поддержке MTU не менее 1280 байт для всех интерфейсов, чтобы избежать проблем с фрагментацией на промежуточных узлах.

Механизмы работы с MTU

Path MTU Discovery (PMTUD)

PMTUD — это автоматический процесс, при котором отправитель отправляет пакеты с установленным флагом DF (Don’t Fragment) и увеличивает их размер до тех пор, пока не получит ICMP-сообщение об ошибке. Это позволяет определить максимальный размер пакета, который может пройти без фрагментации на всем пути к получателю. PMTUD реализован в стеке TCP/IP как для IPv4 (RFC 1191), так и для IPv6 (RFC 1981).

Фрагментация и сборка

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

Ручная настройка MTU

Администраторы сетей могут вручную задавать MTU для конкретных интерфейсов, особенно в случаях с туннельными подключениями (VPN, GRE, IPSec) или при наличии оборудования, не поддерживающего Jumbo Frames. Например, для подключений PPPoE часто устанавливают MTU 1492, а для VPN-туннелей — 1400 байт и ниже, в зависимости от суммы служебных заголовков.

Современное применение и проблемы

Jumbo Frames (сверхбольшие кадры)

Jumbo Frames — это кадры Ethernet размером от 1501 до 9000 байт (чаще 9000). Они используются в центрах обработки данных (ЦОД), системах хранения данных (NAS, SAN) и высокопроизводительных вычислениях (HPC). Преимущества: снижение количества прерываний процессора, уменьшение накладных расходов на заголовки и более эффективное использование пропускной способности (до 20% выигрыша при передаче больших файлов). Недостатки: несовместимость с устаревшим оборудованием, необходимость поддержки на всех устройствах в цепочке передачи (иначе кадры могут быть отброшены или фрагментированы).

Проблемы с MTU в современных сетях

Одной из частых проблем является неправильное определение MTU при использовании туннелей (например, VPN или MPLS). Если промежуточный маршрутизатор не может доставить сообщение ICMP о необходимости уменьшения MTU (из-за firewall), PMTUD перестает работать, и передача данных может зависнуть (так называемый «MTU black hole»). Эта проблема характерна для протоколов, использующих большие пакеты (например, TLS Handshake с сертификатами).

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

В домашних сетях, использующих PPPoE, стандартный MTU 1500 может вызывать ошибки при загрузке сайтов или работе с файлами. Обычно администраторы устанавливают MTU 1492. Для корпоративных сетей с Jumbo Frames требуется проверка поддержки на всех коммутаторах, маршрутизаторах и сетевых картах. Некоторые серверные приложения (например, iSCSI) могут работать эффективнее при MTU 9000.

Влияние MTU на производительность

Фрагментация пакетов приводит к снижению производительности на 5–10% в среднем, особенно при работе с протоколами реального времени (VoIP, видео). Для TCP-соединений фрагментация может вызывать дополнительную задержку из-за повторной передачи потерянных фрагментов. С другой стороны, слишком низкое значение MTU (например, 576 байт) ведет к увеличению количества пакетов и накладных расходов на заголовки, что снижает эффективность использования полосы пропускания.

Интересные факты

Источники

  1. Стивенс У. Р. «TCP/IP Illustrated, Volume 1: The Protocols» (глава 3 о MTU и фрагментации).
  2. RFC 791 — «Internet Protocol» (определение IP-датаграммы и максимальной длины).
  3. RFC 1191 — «Path MTU Discovery» (описание механизма PMTUD).
  4. RFC 1981 — «Path MTU Discovery for IP version 6».
  5. «Jumbo Frames: Benefits and Pitfalls» — статьи Cisco Systems и других производителей сетевого оборудования.
  6. Документация Microsoft и Linux по настройке MTU для различных интерфейсов.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →