TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
Шрифт:
22.5.3 Адреса версии 4
В смешанном окружении адресов версий 4 и 6 IP-адреса систем версии 4, которые не поддерживают версию 6, отображаются в адреса версии 6 следующим образом:
0:0:0:0:0:FFFF:a.b.c.d
где a.b.c.d — исходный IP-адрес.
22.5.4 Взаимодействие адресов версии 6 с сетями версии 4
Еще один специальный формат используется узлами версии 6, которые связываются друг с другом через промежуточные сети версии 4 (это называется туннелями IPv4). Как показано на рис. 22.1, интерфейсам на границах должны быть присвоены адреса версии 4. Они будут преобразованы в специальный формат совместимости IPv4 — IPv6:
0:0:0:0:0:0:a.b.c.d
Рис. 22.1.
Таким образом, эти адреса легко отображаются между их представлениями в версиях 4 и 6.
22.6 Формат заголовка IPv6
Основной заголовок очень прост (см. рис. 22.2) и имеет немного полей:
Version | Версия. Равна 6 для IP следующего поколения. |
Priority | Приоритет. Дифференцирует конкретное взаимодействие из общего трафика или определяет последовательность отбрасывания во время перегрузки. |
Payload length | Длина полезной нагрузки. 16 бит. Если длина меньше или равна 64 Кбит, это поле сообщает о длине части пакета, следующей за начальным заголовком IPv6. Если длина больше 64 Кбит, длина полезной нагрузки указывается как нулевая, а фактическая длина будет сообщена Jumbo Payload (гигантская полезная нагрузка) в следующем далее заголовке. |
Hop limit | Предел для попаданий. Уменьшается на 1 в каждом маршрутизаторе. Пакет будет отброшен, когда значение достигнет нуля. |
Next header | Следующий заголовок. Идентифицирует тип следующего далее заголовка протокола (например, 6 для заголовка TCP). |
Flow label | Метка потока. Указывает на трафик со специальными свойствами (например, видео в реальном времени). |
Рис. 22.2. Формат заголовка IP6
22.6.1 Приоритет
Поле Priority выполняет две функции. При управлении нагрузкой для трафика TCP большим номерам соответствуют управляющие пакеты и интерактивный трафик, а меньшим номерам — обычный трафик. Определены следующие значения:
0 Трафик не специфицирован
1 Заполняющий трафик (например, сетевые новости)
2 Неважная пересылка данных (например, электронная почта)
3 Зарезервировано
4 Важный мощный трафик (например, пересылка файлов)
5 Зарезервировано
6 Интерактивный трафик (например, telnet)
7 Управляющий трафик Интернета (например, протоколы маршрутизации)
IPv6 может переносить трафик ISO, DECnet и т.д. Приоритеты от 0 до 7 могут использоваться для любого протокола, который предполагает собственное управление потоком.
Приоритеты от 8 до 15 используются как средство для управления перегрузками, когда протокол (например, UDP или IPX) не имеет собственных возможностей для этого. Когда сеть перегружена, трафик отбрасывается, что может оказать вредное влияние на некоторые типы прикладных данных. Малые значения (8 или 9) подразумевают большую вероятность того, что пакет будет отброшен.
22.6.2 Использование меток потока
Поток — это последовательность пакетов от источника до точки назначения, требующая специального обслуживания. Например, обработка аудио или видео в реальном масштабе времени отличается от обработки обычных данных.
Метка потока идентифицирует трафик со специальным механизмом обработки (например, резервирования определенной полосы пропускания).
Принадлежность пакета потоку обозначается ненулевой меткой потока. Пакеты одного потока имеют одинаковые адреса источника и назначения, приоритеты и метки потока.
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, что означает "дальше данных нет".