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

Размеры фрагментов должны выбираться таким образом, чтобы размеры сформированных фрагментальных пакетов не превышали максимально допустимый размер передаваемой единицы данных для конкретного маршрута доставки до конечного 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-заголовком и собственно самим фрагментом. Относительная позиция каждого фрагмента определяется по значению в поле «Смещение (сдвиг) данного фрагмента».

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

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