1. Сначала проверяется содержимое поля
2. Если флаг 'Не фрагментировать' установлен в 0, то поле данных разделяется на отдельные части в соответствии с MTU следующего участка. Полученные части выравниваются по 8-октетной границе.
3. Каждой части присваивается заголовок IP, подобный заголовку исходной датаграммы, в частности копируются значения полей источника, назначения, протокола и
a. Длина датаграммы будет отражать текущую длину полученной датаграммы.
b. Флаг More из поля
c. Поле
d. Для каждого фрагмента вычисляется собственная контрольная сумма.
Теперь настало время более подробно рассмотреть поля при фрагментации датаграммы.
6.14.1 Поле идентификации
Поле
6.14.2 Поле Флагов
Поле
Бит 0 | Бит 1 | Бит 2 |
---|---|---|
0=Зарезервировано | 0=Можно фрагментировать 1=Нельзя фрагментировать | 0=Последний фрагмент (Last) 1=Есть еще фрагменты (More) |
Бит 0 зарезервирован, но должен иметь значение 0. Отправитель может указать в следующем бите значение 1, и датаграмму нельзя будет фрагментировать. Если ее нельзя будет доставить без фрагментации, а бит фрагментации равен 1, то датаграмма будет отброшена с посылкой сообщения отправителю.
Бит 2 устанавливается в 0 для последней или единственной части датаграммы. Бит 2, установленный в 1, указывает, что датаграмма фрагментирована и имеет следующие далее части.
6.14.3 Поле смещения фрагмента
Фрагмент | Идентификатор | Флаги | Смещение фрагмента |
---|---|---|---|
1 | 348 | Можно фрагментировать, More | 0 блоков от начала |
2 | 348 | Можно фрагментировать, More | 125 блоков (1000 октетов) от начала |
3 | 348 | Можно фрагментировать, Last | 250 блоков (2000 октетов) от начала |
Когда датаграмма доставляется без фрагментации, значения полей будут следующими:
Идентификатор | Флаги | Смещение фрагмента |
---|---|---|
348 | Можно фрагментировать, Last | 0 блоков от начала |