RFC: 2460
Оригинал: Internet Protocol, Version 6 (IPv6) Specification
Предыдущие версии: RFC 1883
Категория: Проект стандарта
Дата публикации:
Авторы: ,
Перевод: Мельников Дмитрий Анатольевич

RFC 2460, Страница 16 из 31

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

Существуют следующие правила сборки оригинального пакета:

  • Расфрагментированный пакет восстанавливается только из фрагментальных пакетов, которые содержат одинаковые адреса отправителя/получателя и значение идентификатора.

  • Нефрагментируемая часть восстановленного (ранее расфрагментированного) пакета состоит из всех перечисленных прежде заголовков, не включая заголовка фрагментации первого фрагментального пакета (то есть пакета, в котором поле «Смещение (сдвиг) данного фрагмента» содержит нулевое значение), с двумя следующими изменениями:

    • Значение поля «Идентификатор следующего заголовка расширения» в последнем заголовке нефрагментируемой части пакета извлекается из поля «Идентификатор следующего заголовка расширения» заголовка «Фрагментация» первого фрагментального пакета.

    • Значение поля «Размер поля полезной нагрузки» рассчитывается на основе длины нефрагментируемой части пакета и значения длины и значения в поле «Смещение (сдвиг) данного фрагмента» последнего фрагментального пакета. Для примера, может быть использована следующая формула для расчета значение поля «Размер поля полезной нагрузки» восстановленного пакета:

      PL.orig = PL.first - FL.first - 8 + (8 × FO.last) + FL.last

      где, «PL.orig» — значение в поле «Размер поля полезной нагрузки» ранее расфрагментированного (оригинального) пакета, «PL.first» — значение в поле «Размер поля полезной нагрузки» первого фрагментального пакета, «FL.first» — длина фрагмента, следующего сразу после заголовка «Фрагментация» первого фрагментального пакета, «FO.last» — значение в поле «Смещение (сдвиг) данного фрагмента» заголовка «Фрагментация» последнего фрагментального пакета, «FL.last»— длина фрагмента, следующего сразу после заголовка «Фрагментация» последнего фрагментального пакета;

  • Фрагментируемая часть восстанавливаемого IPv6-пакета формируется из фрагментов следующих сразу за заголовками «Фрагментация» каждого фрагментального пакета. Размер каждого фрагмента рассчитывается путём вычитания из значения в поле «Размер поля полезной нагрузки» пакета длины заголовков между IPv6-заголовком и собственно самим фрагментом. Относительная позиция каждого фрагмента определяется по значению в поле «Смещение (сдвиг) данного фрагмента».

  • Заголовок «Фрагментация» из восстановленного пакета изымается.

Страница 16 из 31

2007 - 2022 © Русские переводы RFC, IETF, ISOC.