Расшифровка фрагментации и повторная сборка IP-пакетов: сетевой брокер пакетов Mylinking™ идентифицирует фрагментированные IP-пакеты

Введение

Мы все знаем принципы классификации и неклассификации IP-протокола и их применение в сетевых коммуникациях. Фрагментация и повторная сборка IP-протокола являются ключевым механизмом в процессе передачи пакетов. Когда размер пакета превышает максимальный размер передаваемого блока данных (MTU) сетевого соединения, IP-фрагментация разбивает пакет на несколько более мелких фрагментов для передачи. Эти фрагменты передаются по сети независимо и, по прибытии к месту назначения, собираются в полноценные пакеты с помощью механизма повторной сборки IP-протокола. Этот процесс фрагментации и повторной сборки обеспечивает возможность передачи пакетов большого размера по сети, обеспечивая при этом целостность и надежность данных. В этом разделе мы подробнее рассмотрим, как работают фрагментация и повторная сборка IP-протокола.

Фрагментация и повторная сборка IP-адресов

Различные каналы передачи данных имеют разные максимальные единицы передачи (MTU). Например, канал передачи данных FDDI имеет MTU 4352 байта, а Ethernet MTU — 1500 байт. MTU означает максимальный размер передаваемого блока и обозначает максимальный размер пакета, который может быть передан по сети.

FDDI (Fiber Distributed Data Interface) — это стандарт высокоскоростной локальной сети (LAN), использующий оптоволокно в качестве среды передачи данных. Максимальный размер передаваемого блока данных (MTU) — это максимальный размер пакета, который может быть передан протоколом канального уровня. В сетях FDDI размер MTU составляет 4352 байта. Это означает, что максимальный размер пакета, который может быть передан протоколом канального уровня в сети FDDI, составляет 4352 байта. Если размер передаваемого пакета превышает этот размер, его необходимо фрагментировать, чтобы разделить на несколько фрагментов, соответствующих размеру MTU, для передачи и повторной сборки на приёмнике.

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

Мы также говорили о TCP-сегментах, но MSS (Maximum Segment Size) играет важную роль в протоколе TCP. MSS определяет максимальный размер сегмента данных, разрешённого к отправке в TCP-соединении. Подобно MTU, MSS используется для ограничения размера пакетов, но на транспортном уровне, уровне протокола TCP. Протокол TCP передаёт данные прикладного уровня, разделяя их на несколько сегментов, размер каждого из которых ограничен значением MSS.

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

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

 Фрагментация и повторная сборка IP-адресов

При фрагментированной передаче потеря фрагмента делает всю IP-дейтаграмму недействительной. Чтобы избежать этого, TCP ввёл MSS, где фрагментация выполняется на уровне TCP, а не на уровне IP. Преимущество такого подхода заключается в том, что TCP более точно контролирует размер каждого сегмента, что позволяет избежать проблем, связанных с фрагментацией на уровне IP.

При использовании UDP мы стараемся не отправлять пакеты данных, размер которых превышает MTU. Это связано с тем, что UDP — транспортный протокол, ориентированный на работу без установления соединения, который не обеспечивает надёжности и механизмов повторной передачи, подобных TCP. Если мы отправим пакет данных UDP, размер которого превышает MTU, он будет фрагментирован IP-уровнем при передаче. После потери одного из фрагментов протокол UDP не сможет выполнить повторную передачу, что приведёт к потере данных. Поэтому для обеспечения надёжной передачи данных следует контролировать размер UDP-пакетов в пределах MTU и избегать фрагментированной передачи.

Сетевой брокер пакетов Mylinking ™может автоматически идентифицировать различные виды туннельных протоколов VxLAN/NVGRE/IPoverIP/MPLS/GRE и т. д., может быть определен в соответствии с профилем пользователя в соответствии с выходными данными потока туннеля внутренних или внешних характеристик.

○ Может распознавать пакеты меток VLAN, QinQ и MPLS

○ Может идентифицировать внутреннюю и внешнюю VLAN

○ Пакеты IPv4/IPv6 могут быть идентифицированы

○ Может идентифицировать пакеты туннелей VxLAN, NVGRE, GRE, IPoverIP, GENEVE, MPLS

○ Возможность идентификации фрагментированных пакетов IP (поддерживается идентификация фрагментации IP и повторная сборка фрагментации IP для реализации фильтрации функций уровня 4 для всех фрагментированных пакетов IP. Реализация политики вывода трафика).

Почему IP- и TCP-протоколы фрагментированы?

Поскольку при сетевой передаче уровень IP автоматически фрагментирует пакет данных, даже если уровень TCP не сегментирует данные, пакет данных будет автоматически фрагментирован уровнем IP и передан нормально. Так зачем же TCP фрагментация? Разве это не излишество?

Предположим, что имеется большой пакет, который не сегментирован на уровне TCP и теряется при передаче. TCP передаст его целиком (хотя уровень IP разбивает данные на более мелкие пакеты, каждый из которых имеет длину MTU). Это связано с тем, что уровень IP не заботится о надёжной передаче данных.

Другими словами, если на транспортном уровне данные фрагментируются на сетевом канале связи между машиной и транспортным уровнем, то на уровне IP фрагментация не выполняется. Если фрагментация не выполняется на транспортном уровне, она возможна на уровне IP.

Проще говоря, TCP сегментирует данные, благодаря чему уровень IP больше не фрагментируется, и при повторной передаче передаются лишь небольшие фрагментированные фрагменты данных. Таким образом, повышается эффективность и надёжность передачи.

Если TCP фрагментирован, не фрагментирован ли уровень IP?

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

Если мы можем определить минимальный MTU по всему каналу и передавать данные с этой длиной, фрагментации не произойдёт, независимо от того, на какой узел передаются данные. Этот минимальный MTU по всему каналу называется MTU пути (PMTU). Когда IP-пакет достигает маршрутизатора, если MTU маршрутизатора меньше длины пакета, а флаг DF (Do not Fragment) установлен в 1, маршрутизатор не сможет фрагментировать пакет и сможет только отбросить его. В этом случае маршрутизатор генерирует сообщение об ошибке ICMP (Internet Control Message Protocol) под названием «Необходима фрагментация, но DF установлен». Это сообщение об ошибке ICMP будет отправлено обратно по адресу источника со значением MTU маршрутизатора. Получив сообщение об ошибке ICMP, отправитель может скорректировать размер пакета на основе значения MTU, чтобы избежать повторной ситуации запрещённой фрагментации.

Фрагментация IP-пакетов необходима и её следует избегать на уровне IP, особенно на промежуточных устройствах в канале связи. Поэтому в IPv6 фрагментация IP-пакетов промежуточными устройствами запрещена, и фрагментация возможна только в начале и конце канала связи.

Базовое понимание IPv6

IPv6 — это версия 6 интернет-протокола, пришедшая на смену IPv4. IPv6 использует 128-битную длину адреса, что позволяет обеспечить больше IP-адресов, чем 32-битная длина адреса IPv4. Это связано с тем, что адресное пространство IPv4 постепенно исчерпывается, в то время как адресное пространство IPv6 очень обширно и может удовлетворить потребности будущего Интернета.

Говоря об IPv6, помимо большего адресного пространства, он также обеспечивает лучшую безопасность и масштабируемость, что означает, что IPv6 может обеспечить лучшую работу в сети по сравнению с IPv4.

Несмотря на то, что IPv6 существует уже давно, его глобальное внедрение всё ещё происходит относительно медленно. Это обусловлено главным образом необходимостью совместимости IPv6 с существующей сетью IPv4, что требует перехода и миграции. Однако, по мере исчерпания адресов IPv4 и растущего спроса на IPv6, всё больше интернет-провайдеров и организаций постепенно переходят на IPv6, реализуя работу в двухстековом режиме — IPv6 и IPv4.

Краткое содержание

В этой главе мы более подробно рассмотрели, как работают фрагментация и повторная сборка IP-пакетов. Разные каналы передачи данных имеют разный максимальный размер передаваемого блока данных (MTU). Когда размер пакета превышает ограничение MTU, IP-фрагментация делит пакет на несколько более мелких фрагментов для передачи и собирает их в полный пакет с помощью механизма повторной сборки IP-пакетов после достижения адресата. Цель TCP-фрагментации — исключить фрагментацию на уровне IP и повторно передавать только небольшие фрагменты данных, которые были фрагментированы при повторной передаче, чтобы повысить эффективность и надежность передачи. Однако на протяжении транспортного канала могут быть другие устройства сетевого уровня, MTU которых может быть меньше, чем у отправителя, поэтому пакет всё равно будет повторно фрагментирован на уровне IP этих устройств. Фрагментации на уровне IP следует максимально избегать, особенно на промежуточных устройствах в канале.


Время публикации: 07 августа 2025 г.