Дополнительные байты в IP-фрагментации

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

так что я понимаю первую часть до "108 байт", но чего я не понимаю, так это "8 байтов = 13,5 => 13 * 8 байтов = 104 байта"

что это за лишние байты?

остальное понятно.


person elGreato    schedule 02.06.2017    source источник


Ответы (2)


Вы должны фрагментировать полезную нагрузку пакета на восьмибайтовых границах. При 128-байтовом MTU максимальный фрагмент полезной нагрузки, который вы можете иметь, составляет 104 байта, что меньше, чем простое вычитание IP-заголовка из MTU (108 байт). Что текст говорит вам, что вычитая размер заголовка пакета (20 байт) из MTU, следующий меньший размер фрагмента, делящийся на восемь, составляет 104 байта.

RFC 791, Интернет-протокол содержит полное описание фрагментации IP-адресов. работает:

Фрагментация

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

Дейтаграмма Интернета может быть помечена как «не фрагментировать». Любая интернет-датаграмма, помеченная таким образом, ни при каких обстоятельствах не должна подвергаться интернет-фрагментации. Если интернет-датаграмма, помеченная как «не фрагментировать», не может быть доставлена ​​к месту назначения без ее фрагментации, вместо этого она должна быть отброшена.

Фрагментация, передача и повторная сборка по локальной сети, которая невидима для модуля интернет-протокола, называется фрагментацией интрасети и может использоваться [6].

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

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

Чтобы фрагментировать длинную дейтаграмму Интернета, модуль протокола Интернета (например, в шлюзе) создает две новые дейтаграммы Интернета и копирует содержимое полей заголовка Интернета из длинной дейтаграммы в оба новых заголовка Интернета. Данные длинной дейтаграммы делятся на две части на границе 8 октетов (64 бита) (вторая часть может не быть целым числом, кратным 8 октетам, но первая должна быть). Назовите количество блоков из 8 октетов в первой части NFB (для числа блоков фрагментов). Первая часть данных помещается в первую новую интернет-дейтаграмму, а в поле общей длины устанавливается длина первой дейтаграммы. Флаг большего количества фрагментов установлен в единицу. Вторая часть данных помещается во вторую новую интернет-дейтаграмму, а в поле общей длины устанавливается длина второй дейтаграммы. Флаг дополнительных фрагментов имеет то же значение, что и длинная дейтаграмма. Поле смещения фрагмента второй новой интернет-дейтаграммы устанавливается равным значению этого поля в длинной дейтаграмме плюс NFB.

Эта процедура может быть обобщена для n-стороннего разделения, а не для описанного двустороннего разделения.

Чтобы собрать фрагменты интернет-дейтаграммы, модуль интернет-протокола (например, на хосте-получателе) объединяет интернет-дейтаграммы, которые имеют одинаковые значения для четырех полей: идентификатор, источник, место назначения и протокол. Комбинация выполняется путем помещения части данных каждого фрагмента в относительное положение, указанное смещением фрагмента в интернет-заголовке этого фрагмента. Первый фрагмент будет иметь нулевое смещение фрагмента, а последний фрагмент будет иметь сброс флага дополнительных фрагментов в ноль.

person Ron Maupin    schedule 02.06.2017

В соответствии с определением поля смещения фрагмента в заголовке IP:

Смещение фрагмента (13 бит): в случае фрагментированных IP-датаграмм это поле содержит смещение (в пересчете на 8-байтовые единицы) от начала IP-дейтаграммы. Итак, опять же, это поле используется при повторной сборке фрагментированных IP-датаграмм.

Таким образом, несмотря на то, что размеры полезной нагрузки могут быть любыми, значения смещения могут быть кратны только 8 байтам в заголовках IP, поэтому размеры полезной нагрузки кратны 8 байтам. Расчет округляет размер полезной нагрузки IP в меньшую сторону.

person edwinc    schedule 02.06.2017