Протоколы TCP-IP

       

Размер дейтаграммы, сетевая МЕП(MTU) и фрагментация


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

Чтобы понять проблему, нам нужно знать одну вещь о сетевом оборудовании: каждая технология коммутации пакетов устанавливает фиксированную верхнюю границу количества данных, которые могут быть переданы в одном физическом кадре. Например, Ethernet ограничивает размер передачи 1500 октетами данных(ограничение в 1500 октетов взято из спецификации Ethernetа; использование заголовка SNAP со стандартом 802.3 ограничивает размер до 1492 октетов. Некоторое оборудование допускает несколько большие кадры), в то время как proNET-10 допускает кадры до 2044 октетов. Мы будем называть такие ограничения МАКСИМАЛЬНАЯ ЕДИНИЦА ПЕРЕДАЧИ(maximum transfer unit - MTU) или МЕП. Величина МЕП может быть довольно маленькой: некоторые аппаратные технологии ограничивают размер передачи до 128 октетов или даже меньше. Ограничение размера дейтаграмм до наименьшего МЕП в интернете делает передачу неэффективной, когда эти дейтаграммы передаются по сети, которая может транспортировать кадры большего размера. Тем не менее, разрешение дейтаграммам иметь размер больший, чем минимальный сетевой МЕП в интернете, означает, что дейтаграммы не всегда будут помещаться в один сетевой кадр.

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


Как показывает рисунок 7.6, фрагментация обычно осуществляется шлюзом где- либо на пути между отправителем дейтаграммы и ее истинным получателем. Шлюз принимает дейтаграмму из сети с большим МЕП и должен передать ее по сети, в которой МЕП меньше, чем размер дейтаграммы.

------- ------- |ГВМ | |ГВМ | | А | | Б | ------- ------- | | Сеть 1| + + Сеть 3| --------------- + + ---------------- МЕП=1500 | ----- + Сеть 2 + ----- | МЕП=1500 --|Ш1 |-- +-----|Ш2 |--- ----- + МЕП=620 + ----- + + + + + +

Рисунок 7.6 Иллюстрация того, где происходит фрагментация. Шлюз Ш1 фрагментирует большие дейтаграммы, посылаемые от А к Б; Ш2 фрагментирует большие дейтаграммы, посылаемые от Б к А.

На рисунке оба ГВМ напрямую присоединения к Ethernetам, которые имеют МЕП в 1500 октетов. Поэтому оба ГВМ могут генерировать и посылать дейтаграммы до 1500 октетов длины. Путь между ними, тем не менее, включает сеть с МЕП, равным 620. Если ГВМ А посылает ГВМ Б дейтаграмму длиннее 620 октетов, шлюз Ш1 будет фрагментировать дейтаграмму. Аналогично, если Б посылает большую дейтаграмму А, шлюз Ш2 будет фрагментировать дейтаграмму. Размер фрагмента выбирается таким, чтобы каждый фрагмент мог транспортироваться в одном кадре. Кроме того, так как IP передает значение смещения данных в восьмерках октетов, размер фрагмента должен быть выбран кратным восьми. Конечно, выбор числа октетов, кратного восьми и наиболее близкого к сетевой МЕП, не обязательно делит дейтаграмму на равные части; последняя часть часто короче, чем остальные. Фрагменты должны собираться для воссоздания полной копии исходной дейтаграммы перед тем, как она будет обрабатываться у получателя.

Протокол IP как не ограничивает дейтаграммы до маленького размера, так и не гарантирует, что большие дейтаграммы будут доставлены без фрагментации. Отправитель может выбрать любой размер дейтаграммы, какой он посчитает уместным; фрагментация и сборка производятся автоматически, не требуя специальных действий от отправителя. Спецификация IP устанавливает, что шлюзы должны принимать дейтаграммы с размерами, не превосходящими МЕП сетей, к которым они присоединены. Кроме того, шлюзы должны всегда обрабатывать дейтаграммы до 576 октетов. (От ГВМ также требуется принимать и собирать при необходимости дейтаграммы не короче 576 октетов).



Фрагментация дейтаграммы означает разделение ее на несколько частей. Вы можете удивиться, когда узнаете, что каждая часть имеет точно такой же формат, как и исходная дейтаграмма. Рисунок 7.7 иллюстрирует результат фрагментации.

------------------------------------------------------------ | заголовок | данные1 \ данные2 \ данные3 | | дейтаграммы | 600 октетов \ 600 октетов \200 октетов | ------------------------------------------------------------ (а) ------------------------------ |заголовок | данные1 | фрагмент 1(смещение 0) |фрагмента 1 | | ------------------------------ ------------------------------ |заголовок | данные2 | фрагмент 2(смещение 600) |фрагмента 2 | | ------------------------------ ------------------------- |заголовок | данные3| фрагмент 3(смещение 1200) |фрагмента 3 | | ------------------------- (б)

Рисунок 7.7 (а) Исходная дейтаграмма. несущая 1400 октетов данных и (б) три фрагмента для сети с МЕП. равной 620. Заголовки 1 и 2 имеют установленный бит ЕЩЕ ФРАГМЕНТЫ. Смещения показаны в октетах, их нужно разделить на 8, чтобы получить значение, хранящееся в заголовках фрагментов.

Каждый фрагмент содержит заголовок дейтаграммы, который дублирует большую часть заголовка исходной дейтаграммы(кроме бита в поле ФЛАГИ, который показывает. что это фрагмент), и столько данных, сколько может содержать фрагмент, чтобы общая длина была меньше, чем МЕП сети, по которой он путешествует.


Содержание раздела