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. |
[править] Примечания
[править] См. также
- ICMPv6
- IPv4
- Teredo — протокол инкапсуляции IPv6 в IPv4 UDP
- 6to4 - протокол инкапсуляции IPv6 в IPv4
- TCP/IP
[править] Ссылки
- Информационная страница о протоколе IPv6
- Европа говорит о переходе на IPv6
- IPv6: вопросы и ответы
- Переход на IPv6 начался!
- Российский Национальный IPv6 форум
|
|
|||||||
|---|---|---|---|---|---|---|---|
| Прикладной |
AODV • BGP • HTTP • DHCP • IRC • SNMP • DNS • NNTP • XMPP • SIP • BitTorrent • IPP • NTP • SNTP
|
||||||
| Представления | XDR • SSL | ||||||
| Транспортный | TCP • UDP • SCTP • DCCP • RTP • RUDP | ||||||
| Сетевой уровень | IPv4 • IPv6 • ICMP • IGMP • RARP | ||||||
| Канальный | ARP • Ethernet • 802.11 WiFi • 802.16 WiMax • Token ring • Arcnet • FDDI • PPP • HDLC • SLIP • ATM • DTM • X.25 • Frame relay • SMDS | ||||||
| Физический | Ethernet • RS-232 • EIA-422 • RS-449 • RS-485 | ||||||