IPv6

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

IPv6 (англ. Internet Protocol version 6) — это новая версия протокола IP, призванная решить проблемы, с которыми столкнулась предыдущая версия (IPv4) при её использовании в Интернете, за счёт использования длины адреса 128 бит вместо 32. В настоящее время протокол IPv6 уже используется в нескольких сотнях сетей по всему миру (более 1600 сетей на март 2009), но пока ещё не получил столь широкого распространения в Интернете, как IPv4. Протокол был разработан IETF.

По прогнозам, после того, как адресное пространство в IPv4 закончится (предположительно 2011-2012 г.), произойдёт ситуация, когда два стека протоколов — IPv6 и IPv4 будут использоваться параллельно (англ. dual stack), с постепенным увеличением доли трафика IPv6 по сравнению с IPv4. Такая ситуация станет возможной из-за наличия огромного количества устройств, в том числе устаревших, не поддерживающих IPv6 и требующих специального преобразования для работы с устройствами, использующими только IPv6.

Содержание

[править] Метки потоков

Введение в протоколе IPv6 поля «Метка потока» позволяет значительно упростить процедуру маршрутизации однородного потока пакетов. Поток - это последовательность пакетов, посылаемых отправителем определённому адресату. При этом предполагается, что все пакеты данного потока должны быть подвергнуты определённой обработке. Характер данной обработки задаётся дополнительными заголовками.

Допускается существование нескольких потоков между отправителем и получателем. Метка потока присваивается узлом-отправителем путём генерации псевдослучайного 20-битного числа. Все пакеты одного потока должны иметь одинаковые заголовки, обрабатываемые маршрутизатором.

При получении первого пакета с меткой потока маршрутизатор анализирует дополнительные заголовки, выполняет предписанные этими заголовками функции и запоминает результаты обработки (адрес следующего узла, опции заголовка переходов, перемещение адресов в заголовке маршрутизации и т. д.) в локальном кэше. Ключом для такой записи является комбинация адреса источника и метки потока. Последующие пакеты с той же комбинацией адреса источника и метки потока обрабатываются с учётом информации кэша без детального анализа всех полей заголовка.

Время жизни записи в кэше составляет не более 6 секунд, даже если пакеты этого потока продолжают поступать. При обнулении записи в кэше и получении следующего пакета потока, пакет обрабатывается в обычном режиме и для него происходит новое формирование записи в кэше. Следует отметить, что указанное время жизни потока может быть явно определено узлом отправителем с помощью протокола управления или опций заголовка переходов, и может превышать 6 секунд.

Приоритезация пакетов обеспечивается маршрутизаторами на основе поля приоритета. Данное 4-битное поле содержит код требуемого приоритета.

Множество значений этого поля разделено на два подмножества:

  • от 0 до 7 — трафик с контролем перегрузки (например, протокол TCP снижает трафик при получении сигнала перегрузки);
  • от 8 до 15 — трафик без контроля перегрузки (приложения реального времени с постоянной скоростью).

Разработчики IPv6 рекомендуют использовать для определённых категорий приложений, управляющих сигналами перегрузки, следующие коды приоритета:

Рекомендованные коды приоритета для определённых видов приложений.

Код приоритета Назначение
0 Нехарактеризованный трафик
1 Заполняющий трафик (сетевые новости)
2 Несущественный информационный трафик (электронная почта)
3 Резерв
4 Существенный трафик (FTP, HTTP, NFS)
5 Резерв
6 Интерактивный трафик (Telnet, X-terminal, SSH)
7 Управляющий трафик (Маршрутная информация, SNMP)

Для приложений, скоростью передачи которых невозможно управлять, разработчики определяют, что большему значению кода соответствует более высокий приоритет. Для кода 8 установлено низшее значение приоритета, и он применяется для трафика, часть данных которого можно отбросить, например, потоковое видео высокого качества. Значение 15 следует применять для трафика с фиксированной скоростью, чувствительного к задержкам и потерям, например, трафик речевых кодеков с минимальной избыточностью.

Следует отметить, что трафик с возможностью управления перегрузками (0—7) и без неё (8—15) обрабатываются маршрутизаторами независимо, то есть не существует взаимного соответствия между приоритетами данных видов трафика. Обеспечение безопасности в протоколе IPv6 осуществляется с использованием протокола IPSec, поддержка которого является обязательной для данной версии протокола.


[править] Основы адресации IPv6

Существуют различные типы адресов IPv6: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast).

Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует.

Адреса типа Anycast синтаксически неотличимы от адресов Unicast, но они адресуют группу интерфейсов. Пакет, направленный такому адресу, попадёт в ближайший (согласно метрике маршрутизатора) интерфейс. Адреса Anycast могут использоваться только маршрутизаторами.

Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания.

Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами многоадресного вещания IPv6.


[править] Формат пакета

[править] Заголовок пакета

Отступ в октетах 0 1 2 3
Отступ в битах 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Version Traffic Class Flow Label
4 32 Payload Length Next Header Hop Limit
8 64 Source Address
C 96
10 128
14 160
18 192 Destination Address
1C 224
20 256
24 288

Описание полей:

  • Version: версия протокола; для IPv6 это значение равно 6 (значение в битах - 0110).
  • Traffic class: приоритет пакета (8 бит).
  • Flow label: метка потока (см. метки потоков).
  • Payload length: в отличие от поля Total length в протоколе IPv4 данное поле не включает заголовок пакета (16 бит). Максимальный размер, определенный размером поля, - 64 Кбайта. При большем размере может использоваться Jumbo payload[1].
  • Next header: является аналогом поля protocol в IPv4. Также определяет заголовок следующего расширения IPv6 (англ. IPv6 extension) (8 бит).
  • Hop limit: аналог поля time to live в IPv4 (8 бит).
  • Source Address и Destination Address: адрес отправителя и получателя соответственно; по 128 бит.

[править] Заголовки расширений

Заголовок Тип Размер Описание RFC
Hop-By-Hop Options 0 - Содержит указания для все устройств на пути следования пакета. RFC 2460
Routing 43 - Позволяет отправителю определять список узлов, которые пакет должен пройти. RFC 2460, RFC 3775, RFC 5095
Fragment 44 64 бита Заголовок содержит информация по фрагментации пакета. RFC 2460
Authentication Header (AH) 51 - см. IPsec RFC 4302
Encapsulating Security Payload (ESP) 50 - см. IPsec RFC 4303
Destination Options 60 - Опции, который должны обрабатываться только получателем. RFC 2460
No Next Header 59 0 Определяет отсутствие следующего заголовка. Данные, следующие за этим заголовком должны игнорироваться и передаваться без изменений (в случае форвардинга). RFC 2460

В случае если используется несколько загловков расширений, RFC 1883 рекомендует следующий порядок их следования:

  • IPv6 заголовок
  • Hop-by-Hop Options
  • Destination Options
  • Routing
  • Fragment
  • Authentication
  • Encapsulating Security Payload
  • Destination Options
  • заголовок более высокого уровня (i.e. TCP)


[править] Нотация

Адреса IPv6 отображаются как 8 групп по 4 шестнадцатеричных цифры, разделенных двоеточием. Пример адреса:

7628:0d18:11a3:09d7:1f34:8a2e:07a0:765d

Если одна или более групп подряд равны 0000, то они могут быть опущены и заменены на двойное двоеточие (::). Например, 7628:0000:0000:0000:0000:0000:ae21:ad12 может быть сокращен до 7628::ae21:ad12, или 0000:0000:0000:0000:0000:0000:ae21:ad12 может быть сокращен до ::ae21:ad12. Сокращению не могут быть подвергнуты 2 разделенные нулевые группы из-за возникновения неоднозначности.

При использовании IPv6 в URL необходимо заключать адрес в квадратные скобки:

http://[7628:0d18:11a3:09d7:1f34:8a2e:07a0:765d]/

Если необходимо указать порт, то он пишется после скобок:

http://[7628:0d18:11a3:09d7:1f34:8a2e:07a0:765d]:8080/


[править] Зарезервированные адреса IPv6

IPv6 адрес Длина префикса (биты) Описание Заметки
 :: 128 - см. 0.0.0.0 в IPv4
 ::1 128 loopback адрес см. 127.0.0.1 в IPv4
 ::xx.xx.xx.xx 96 встроенный IPv4 Нижние 32 бита это адрес IPv4. Также называется IPv4 совместимым IPv6 адресом. Устарел и больше не используется.
 ::ffff:xx.xx.xx.xx 96 Адрес IPv6, отображенный на IPv4 Нижние 32 бита это адрес IPv4. Для хостов, не поддерживающих IPv6.
fe80:: - febf:: 10 link-local см. loopback адрес в IPv4
fec0:: - feff:: 10 site-local Помечен как устаревший в rfc3879
fc00:: 7 Unique Local Unicast Пришёл на смену Site-Local rfc4193
ffxx:: 8 мультикаст  
001 (основание 2) 3 global unicast Все global unicast адреса присваиваются из этого пула. Первые три бита 001.

[2]


[править] Примечания

[править] См. также

  • ICMPv6
  • IPv4
  • Teredo — протокол инкапсуляции IPv6 в IPv4 UDP
  • 6to4 - протокол инкапсуляции IPv6 в IPv4
  • TCP/IP

[править] Ссылки


Источник — «http://ru.wikipedia.org/wiki/IPv6»