Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные Сети(Смоленцев С.В., 2002).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
966.66 Кб
Скачать

4.6.Фрагментация ip пакетов

Как указывалось выше, протокол IP разрабатывался как универсальный протокол сетевого уровня, способный работать в интерсети, состоящей из множества сетей с различными технологиями. Однако каждая технология канального уровня имеет свои ограничения. В частности это касается ограничения на размеры кадров, которые могут передаваться в локальной сети. В каждой технологии определен параметр MTU (Maximum Transfer Unit) – максимальный передаваемый блок, который определяет размер максимального кадра, который может быть передан через локальную сеть. Так в технологии Ethernet MTU равно 1500 байт, в сети FDDI – 4096 байт, а в сети Х.25 – 128 байт. Поскольку при создании пакета на узле отправителе заранее не известно через какие сети он будет проходить, то возникает задача разбиения пакетов на несколько частей при передаче их из сетей с большим значением MTU в сети с меньшим значением MTU. Этот процесс называется фрагментацией и выполняется на промежуточных маршрутизаторах, связывающих сети.

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

  • значение поля общей длины изменяется в зависимости от размера данного фрагмента;

  • бит 3 поля флагов устанавливается в 1, указывая, что далее будут еще фрагменты (кроме последнего фрагмента);

  • величина смещения определяет смещение поля данных каждого фрагмента относительно начала исходного пакета.

Фрагментация пакетов может проводиться на разных маршрутизаторах, поэтому в зависимости от количества и характеристик транзитных сетей исходный пакет может неоднократно подвергнуться фрагментации. Сборка пакета из фрагментов проводится только в узле назначения, маршрутизаторы никогда не занимаются восстановлением пакетов из фрагментов, даже если следующая сеть – с большим MTU.

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

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

В случае, если какой либо из фрагментов приходит сбойным, либо таймер истекает ранее прибытия последнего фрагмента пакета, все принятые ранее фрагменты пакета уничтожаются и на узел – источник отправляется сообщение об ошибке с помощью ICMP протокола.