8. Проблемы протоколов верхних уровней
8.1. Проверочная сумма протоколов транспортного уровня
Любой транспортный или прикладной протоколы, которые включают адреса из IP-заголовка в последовательность данных для вычисления проверочной суммы должны быть модифицированы для «работы» с IPv6-протоколом, и «уметь» включать в обрабатываемую последовательность 128-битовые IPv6-адреса вместо 32-битовых IPv4-адресов. На рис.13 представлен формат «псевдозаголовка» для ТСР- и UDP-протоколов в составе IPv6-заголовка.
32 бита +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Адрес отправителя пакета + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Адрес получателя пакета + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + «Размер блока транспортного уровня» + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | «Идентификатор | | 0 0 0 0 0 0 0 0 0 ... | следующего | | | заголовка» | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Рис.13. Формат «псевдозаголовка» для ТСР- и UDP-протоколов в составе IPv6-заголовка
Если IPv6-пакет содержит заголовок расширения «Маршрутизация», то тогда адрес получателя пакета, используемый в псевдозаголовке, одновременно является и адресом финального получателя пакета. На узле/отправителе этот адрес будет в последнем элементе заголовка расширения «Маршрутизация», а на узле/получателе этот адрес будет в поле «Адрес получателя пакета» IPv6-заголовка.
Значение в поле «Идентификатор следующего заголовка» псевдозаголовка идентифицирует протокол верхнего уровня (для UDP-протокола — «6», для ТСР-протокола — «17»). Это значение будет отличаться от значения в аналогичном поле IPv6-заголовка, если конечно имеют место иные заголовки расширения между IPv6-заголовком и заголовком верхнего уровня.