MTU (Maximum Transmission Unit) — это максимальный размер пакета данных в байтах, который сетевой интерфейс может передать за один кадр без фрагментации. Для Ethernet стандартное значение — 1500 байт. Если пакет больше MTU канала, он либо разбивается на части, либо отбрасывается, что вызывает медленную или «зависающую» загрузку.
В этом руководстве разбираем, что такое MTU и MSS, какие значения типичны для Ethernet, PPPoE и VPN, как работает Path MTU Discovery и почему возникают «чёрные дыры MTU», как измерить оптимальный размер пакета командой Ping с флагом DF и как настроить MTU на роутере, Windows и Linux.
Что такое MTU
MTU задаёт верхнюю границу полезной нагрузки одного кадра канального уровня. Пакет IP размером до MTU передаётся целиком; если данные превышают лимит, отправитель или промежуточный маршрутизатор должен фрагментировать IP-пакет на несколько частей, которые собираются обратно на приёмной стороне. Фрагментация увеличивает накладные расходы и снижает надёжность: потеря одного фрагмента означает повтор всего исходного пакета.
Важно различать MTU и MSS. MSS (Maximum Segment Size) — это максимальный объём данных TCP в одном сегменте, без заголовков. На классическом Ethernet MSS = MTU − 40 байт (20 байт заголовка IPv4 + 20 байт заголовка TCP), то есть 1500 − 40 = 1460 байт. Для IPv6 вычитается 60 байт. Хосты согласуют MSS при установке TCP-соединения (в SYN-пакете), поэтому корректный MSS часто снимает проблемы фрагментации ещё до передачи данных.
MTU относится к канальному уровню (L2) и применяется к любому IP-пакету на интерфейсе, независимо от протокола транспортного уровня. MSS — понятие исключительно TCP: UDP-трафик (DNS, QUIC, игровой) не согласует размер сегмента и полагается только на MTU и фрагментацию. Именно поэтому неправильный MTU по-разному влияет на TCP и UDP: TCP-приложения могут «спастись» через MSS clamping, а UDP-приложения — нет, и там фрагментация или потеря пакетов проявляется острее.
Типичные значения MTU
Значение MTU зависит от технологии канала и наличия инкапсуляции. PPPoE (частый вариант для DSL) добавляет 8 байт заголовка, поэтому его MTU снижается до 1492. Туннели VPN добавляют собственные заголовки (шифрование, инкапсуляция), из-за чего эффективный MTU падает ещё сильнее. Jumbo frames применяются в ЦОД и локальных сетях 1/10 Гбит/с для снижения нагрузки на CPU.
| Тип соединения | Типовой MTU (байт) | Рекомендуемый MSS |
|---|---|---|
| Ethernet (стандарт) | 1500 | 1460 |
| PPPoE (DSL) | 1492 | 1452 |
| PPTP VPN | 1400 | 1360 |
| IPsec VPN | 1400–1438 | 1360–1398 |
| WireGuard | 1420 | 1380 |
| OpenVPN (UDP) | 1500 (интерфейс ~1428) | ~1388 |
| Jumbo frames (ЦОД) | 9000 | 8960 |
Значения для VPN ориентировочны: точный overhead зависит от алгоритма шифрования, режима (UDP/TCP) и версии протокола. Всегда проверяйте фактический MTU измерением, а не только теоретическим расчётом.
Path MTU Discovery и чёрные дыры
Path MTU Discovery (PMTUD) — механизм, описанный в RFC 1191, который позволяет хостам определить минимальный MTU на всём пути между отправителем и получателем. Отправитель ставит в IPv4-заголовке флаг DF (Don't Fragment). Если пакет встречает маршрутизатор с меньшим MTU, тот отбрасывает пакет и возвращает ICMP-сообщение «Fragmentation Needed» (тип 3, код 4) с указанием допустимого размера. Отправитель уменьшает размер и повторяет передачу.
Проблема возникает, когда межсетевые экраны или неправильно настроенные маршрутизаторы блокируют весь входящий ICMP. Тогда ICMP-сообщение «Fragmentation Needed» не доходит до отправителя, он продолжает слать пакеты слишком большого размера, а они молча отбрасываются. Это состояние называют «чёрной дырой MTU» (MTU black hole).
Характерные симптомы чёрной дыры и неправильного MTU:
- TCP-соединение устанавливается (handshake проходит), но передача данных «зависает» — страница начинает грузиться и замирает;
- сайты открываются частично: текст есть, картинки не подгружаются;
- маленькие запросы (ping, DNS) работают, а крупные (загрузка файла, POST-формы) обрываются;
- ошибки VPN: туннель поднимается, но приложения за ним не работают;
- SSH подключается, но «падает» при выводе большого объёма текста.
Практическое правило: если мелкий трафик идёт, а крупный — нет, первым делом подозревайте MTU и заблокированный ICMP.
Как определить и настроить MTU
Оптимальный MTU находят методом подбора: отправляют ping с установленным флагом DF и постепенно уменьшают размер полезной нагрузки, пока пакеты не начнут проходить без фрагментации. К найденному размеру данных прибавляют 28 байт (20 байт IP-заголовка + 8 байт ICMP-заголовка) — это и есть искомый MTU.
Измерение размера пакета
В примерах ниже 1472 — это полезная нагрузка; 1472 + 28 = 1500, то есть стандартный Ethernet. Если 1472 не проходит, снижайте до 1464, 1452 и так далее.
# Windows: флаг -f запрещает фрагментацию, -l задаёт размер
ping -f -l 1472 enterno.io
# Linux: -M do ставит DF, -s задаёт размер полезной нагрузки
ping -M do -s 1472 enterno.io
# macOS: -D ставит DF, -s задаёт размер
ping -D -s 1472 enterno.ioСообщение вида «Packet needs to be fragmented but DF set» (Windows) или «Message too long» (Linux) означает, что размер превышает MTU пути — уменьшайте значение.
Настройка MTU
# Windows: узнать имена интерфейсов
netsh interface ipv4 show subinterfaces
# Windows: установить MTU 1492 для нужного интерфейса
netsh interface ipv4 set subinterface "Ethernet" mtu=1492 store=persistent
# Linux: временно (до перезагрузки)
ip link set dev eth0 mtu 1492
# Linux: постоянно через netplan/NetworkManager или /etc/network/interfacesНа роутере MTU задаётся в настройках WAN-интерфейса (для PPPoE обычно 1492). Дополнительно во многих прошивках есть опция MSS Clamping — она автоматически подгоняет MSS в TCP-пакетах под реальный MTU туннеля, что надёжно лечит проблемы фрагментации, даже когда PMTUD сломан.
Порядок действий при диагностике удобно свести к короткому чек-листу:
- убедитесь, что мелкий трафик работает, а крупный — обрывается (симптом MTU);
- найдите максимальную полезную нагрузку тестом ping с DF и прибавьте 28 байт;
- сравните результат с типовым MTU для вашего типа подключения из таблицы выше;
- установите найденный MTU на интерфейсе (роутер, ОС) и повторите тест;
- если проблема повторяется в VPN — включите MSS clamping на шлюзе.
Не задавайте MTU больше, чем поддерживает канал: значение выше физического лимита не ускорит сеть, а спровоцирует фрагментацию и повторные передачи. Оптимальный MTU — это максимальный размер, который проходит по всему пути без фрагментации, а не абстрактно «большое» число.
Как проверить
Быстро оценить доступность узла и время отклика помогает наш бесплатный инструмент Ping и проверка портов: он покажет потери пакетов и задержку, что косвенно указывает на проблемы канала. Для комплексной диагностики заголовков и доступности сайта используйте проверку HTTP-заголовков enterno.io.
Смежные материалы: как исправить высокий пинг и потерю пакетов, тонкая настройка TCP-соединений и устранение ошибки ERR_CONNECTION_CLOSED.
Частые вопросы
Какое значение MTU выбрать по умолчанию?
Для обычного проводного Ethernet-подключения оставляйте стандартные 1500 байт. Если у вас DSL с PPPoE, ставьте 1492. Для VPN уменьшайте MTU до значения, найденного тестом ping с флагом DF. Не меняйте MTU наугад: неверное значение ухудшит, а не улучшит соединение.
Чем MTU отличается от MSS?
MTU — это максимальный размер всего кадра на канальном уровне, включая заголовки IP и TCP. MSS — только объём данных TCP без заголовков. На Ethernet MSS = MTU − 40 байт для IPv4. Хосты согласуют MSS при установке соединения, тогда как MTU задаётся на интерфейсе.
Что такое чёрная дыра MTU?
Это ситуация, когда пакеты с флагом DF превышают MTU пути, а ICMP-сообщение «Fragmentation Needed» блокируется файрволом и не доходит до отправителя. В результате крупные пакеты молча теряются: соединение устанавливается, но передача данных зависает. Лечится уменьшением MTU или включением MSS clamping.
Нужны ли jumbo frames дома?
Обычно нет. Jumbo frames (MTU 9000) полезны в дата-центрах и локальных сетях для передачи больших объёмов данных с меньшей нагрузкой на процессор. Дома их поддержка редко даёт выигрыш и требует, чтобы все устройства в сегменте использовали одинаковый увеличенный MTU, иначе появится фрагментация.
Почему VPN работает медленно или обрывается?
Часто причина — слишком большой MTU туннеля. VPN добавляет заголовки шифрования, снижая эффективный MTU до 1400 и ниже. Если оставить 1500, крупные пакеты фрагментируются или теряются. Уменьшите MTU VPN-интерфейса и при возможности включите MSS clamping на шлюзе.