22.7 Дополнительные заголовки IPv6
22.7 Дополнительные заголовки IPv6
Использование дополнительных заголовков (extension header) — это прогрессивная идея, позволяющая последовательно добавлять в IP версии 6 новые функциональные возможности.
Напомним, что в заголовке IP версии 4 поле протокола служит для идентификации типа заголовка (например, TCP или UDP), следующего за заголовком IP. Версия 6 использует более общее поле Next Header. Если следующий заголовок определен как TCP или UDP, значением поля будет 6 или 17.
Между заголовком IPv6 и заголовком верхнего уровня можно вставить несколько дополнительных заголовков для необязательных вариантов, подобных маршрутизации от источника или поддержке безопасности. Фрагментация также может быть перенесена в дополнительные заголовки.
Как показано на рис. 22.3, каждый дополнительный заголовок имеет поле Next Header, что позволяет связать все эти заголовки в цепочку. Протокол следующего уровня идентифицируется включенным в общую последовательность дополнительным заголовком.
Рис. 22.3. Дополнительные заголовки
Такая схема обеспечивает большую гибкость. По мере необходимости могут определяться новые возможности, поскольку нет ограничений на общую длину. Отметим, что заключительный дополнительный заголовок может ссылаться на заголовок полностью независимого протокола, например ISO или DECnet.
Определенные на настоящий момент заголовки представлены в таблице 22.2. Некоторые из них содержат информацию, которую следует обрабатывать на каждом узле по пути следования пакета, в то время как другие заголовки обрабатываются только в точке назначения.
Таблица 22.2 Заголовки IPv6
Заголовок Номер из предыдущего поля Next Header Hop-by-Hop Options (варианты "от попадания к попаданию") 0 Destination Options (варианты для точки назначения) 60 Routing (маршрутизация) 43 Fragment (фрагмент) 44 Authentication (аутентификация) 51 Encapsulating Security Payload (инкапсуляция с обеспечением безопасности полезной нагрузки) 50 No Next Header (следующего заголовка не существует) 59Показанный на рис. 22.3 порядок отражает рекомендации по размещению заголовков. Отметим, что могут присутствовать два заголовка Destination Options. Первый из них стоит перед Routing и применяется к каждому из попаданий, указанных в заголовке Routing. Второй присутствует как последний заголовок и применяется только в точке назначения.
Возможно, потребуется отправить пакет, состоящий из одних заголовков и не несущий полезной информации. В этом случае заключительное поле Next Header будет равно 59, что означает "дальше данных нет".