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

Поле «Размер блока транспортного уровня» в псевдозаголовке содержит значение длины блока транспортного уровня (например, заголовок ТСР-блока плюс поле полезной нагрузки ТСР-блока). Некоторые протоколы транспортного и прикладного уровней размещают в своих сообщениях данные о длине (размере) этих сообщений (например, в заголовке блока UDP-протокола содержится поле «Полная длина дейтаграммы»). В случае применения таких протоколов значение длины протокольного сообщения размещается в поле «Размер блока транспортного уровня» псевдозаголовка. Другие протоколы (например, ТСР-протокол) не размещают в своих сообщениях данные о длине (размере) этих сообщений. В этом случае в поле «Размер блока транспортного уровня» псевдозаголовка указывается значение, равное значению в поле «Размер поля полезной нагрузки» IPv6-заголовка за вычетом длины всех заголовков расширения, размещённых между IPv6-заголовком и заголовком верхнего уровня.

В отличие от IPv4-протокола, когда IPv6-узлом/отправителем передаются UDP-дейтаграммы, вычисление проверочных сумм этих дейтаграмм является обязательным. Другими словами, если, когда бы то ни было, передается UDP-пакет (то есть IPv6-пакет, содержащий UDP-дейтаграмму), то тогда IPv6-узел/отправитель должен вычислить проверочную сумму данного пакета, используя для этого последовательность октетов, в которую входят сам пакет и псевдозаголовок. Если результат вычисления оказался равным нулю, то тогда 16-битовое поле «Контрольная сумма» в заголовке UDP-дейтаграммы должно заполняться единицами. IPv6-узлы/получатели должны уничтожать UDP-пакет, в котором поле «Контрольная сумма» заголовка UDP-дейтаграммы содержит только одни нули, и после этого они должны регистрировать возникновение нештатной ситуации (ошибки).

Шестая версия ICMP-протокола (ICMPv6) включает рассмотренный выше псевдозаголовок в последовательность октетов, по которой вычисляется проверочная сумма (в этом заключается одно из отличий от ICMPv4, которая не предусматривает включение псевдозаголовка при расчёте проверочной суммы). Причина этого заключается в том, что ICMPv6-сообщения необходимо защитить от ошибочной доставки и искажения тех полей IPv6-заголовка, на которые оно ссылается, так как (в отличие от IPv4-протокола) IPv6-заголовок не входит в последовательность октетов, по которой вычисляется проверочная сумма сетевого уровня Internet-архитектуры. Если значение в поле «Идентификатор следующего заголовка» псевдозаголовка для ICMP-протокола равно «58», то это указывает на наличие ICMPv6-сообщения.

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