Фрагментация пакетов в сетях

Почему пакеты, отправленные через Интернет, могут быть фрагментированы?

Я не понимаю, почему граммы данных разбиты на более мелкие части. Когда это сделано, что его использовать?

4 ответа

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

Различные протоколы имеют разные ограничения размера пакета.

Первоначально "интернет" (обратите внимание на строчную букву "i") представлял собой объединение разных сетей, часто с разными технологиями. Пакет "IP" был разработан специально для того, чтобы его было легко обрабатывать на большинстве протоколов, поэтому он был назван "Интернет-протоколом", то есть протоколом для создания интернет-сетей.

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

В настоящее время наиболее распространенным протоколом нижнего уровня является Ethernet; но даже в этом случае может быть 9000-байтовый пакет GigE, который должен быть разделен на несколько 1500-байтовых пакетов для 100 Мбит Ethernet.

Причина, по которой отправляемые вами пакеты фрагментированы:

  • Путь от вашего компьютера и пункта назначения имеет разные MTU и
  • Пакет (фактически кадр, который содержит ваш пакет), который вы отправляете, больше, чем самый маленький MTU на пути и
  • Ваш компьютер не использует PMTUD или PLPMTUD. Смотрите: http://kb.pert.geant.net/PERTKB/PathMTU

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

Хорошим примером того, почему MTU могут отличаться, является PPPoE от HenryS. Поскольку PPPoE инкапсулируется в Ethernet, который обычно имеет MTU 1500. Клиент PPPoE устанавливает свой MTU в 1492, чтобы освободить место для дополнительных данных, необходимых при инкапсуляции каждого пакета, чтобы избежать фрагментации на канальном уровне над ним.

Другие вопросы по тегам