IPv6 (англ. Intenet Protocol version 6) — это новая версия протокола IP, призванная решить проблемы, с которыми столкнулась предыдущая версия (IPv4) при её использовании в Интернете. В настоящее время протокол IPv6 проходит тестирование и ещё не получил широкого распространения в Интернете, где преимущественно используется IPv4. Протокол был разработан исследовательском центре Xerox PARC.
Протокол IP в настоящее время столкнулся с рядом проблем, таких как проблема масштабируемости сети, неприспособленность протокола к передаче мультисервисной информации с поддержкой различных классов обслуживания, включая обеспечение информационной безопасности. Указанные проблемы обусловили развитие классической версии протокола IPv4 в направлении разработки версии IPv6. При этом к проблемам масштабируемости протокола IPv4 следует отнести следующие:
Кроме того масштабируемость IP-сетей следует рассматривать не только с точки зрения увеличения числа узлов, но и с точки зрения повышения скорости передачи и уменьшения задержек при маршрутизации.
В связи с этим было разработано множество версий IP протокола для различных вычислительных платформ и операционных систем. До некоторого момента существовало несколько альтернативных вариантов протокола IP нового поколения: IPv7 (разработчик — Ullman), TUBA (Gallon), ENCAPS (Hinden), SIP (Deering) и PIP (Fracis). В результате развития линии ENCAPS (с промежуточной версией IPAE), SIP и PIP слились в 1993 году в предложение SIPP, которое в июле 1994 года было принято в качестве основы для создания протокола IP нового поколения, получившего название IPv6, где «6» обозначает номер версии протокола. В технической литературе эту версию протокола ещё называют IPng (IP next generation), хотя иногда под IPng понимают все варианты модернизации IP, включая также не вошедшие в проект IPv6, но продолжающие развиваться. Документом, фиксирующим появление IPv6, является спецификация RFC 1752 «The Recommendation for the IP Next Generation Protocol». Базовый набор протоколов IPv6 был принят IETF в сентябре 1995 года и получил статус Proposed Standard.
В спецификации RFC 1726 представлен набор
функций, основными среди них являются:
В результате реализации заявленных функций важнейшие инновации IPv6 состоят в следующем:
При этом в IPv6 все изменения планировались таким образом, чтобы минимизировать изменения на других уровнях протокольного стека TCP/IP. В результате размер IP-адреса увеличен до 128 бит (16 байт). Даже с учётом неэффективности использования адресного пространства, являющейся оборотной стороной эффективной маршрутизации и автоматического конфигурирования, этого достаточно, чтобы обеспечить объединение миллиарда сетей, как того требовали документы IETF. Обеспечена возможность простого и гибкого автоматического конфигурирования адресов для сетей произвольного масштаба и сложности. IPv6 остался расширяемым протоколом, причём поля расширений (дополнительные заголовки) могут добавляться без снижения эффективности маршрутизации.
Введение в протоколе IPv6 поля «Метка потока» позволяет значительно упростить процедуру маршрутизации однородного потока пакетов. Поток это последовательность пакетов, посылаемых отправителем определённому адресату, при этом предполагается, что все пакеты данного потока должны быть подвергнуты определённой обработке. Характер данной обработки задаётся дополнительными заголовками.
Допускается существование нескольких потоков между отправителем и получателем. Метка потока присваивается узлом-отправителем путём генерации псевдослучайного 24-битного числа. Все пакеты одного потока должны иметь одинаковые заголовки, обрабатываемые маршрутизатором.
При получении первого пакета с меткой потока маршрутизатор анализирует дополнительные заголовки, выполняет предписанные этими заголовками функции и запоминает результаты обработки (адрес следующего узла, опции заголовка переходов, перемещение адресов в заголовке маршрутизации и т. д.) в локальном кэше. Ключом для такой записи является комбинация адреса источника и метки потока. Последующие пакеты с той же комбинацией адреса источника и метки потока обрабатываются с учётом информации кэша без детального анализа всех полей заголовка.
Время жизни записи в кэше составляет не более 6 секунд, даже если пакеты этого потока продолжают поступать. При обнулении записи в кэше и получении следующего пакета потока, пакет обрабатывается в обычном режиме и для него происходит новое формирование записи в кэше. Следует отметить, что указанное время жизни потока может быть явно определено узлом отправителем с помощью протокола управления или опций заголовка переходов, и может превышать 6 секунд.
Обеспечение приоритезации пакетов обеспечивается маршрутизаторами на основе поля приоритета. Данное 4-битное поле содержит код требуемого приоритета.
Множество значений этого поля разделено на два подмножества:
Разработчики 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: одноадресные (Unicast), групповые (Anycast) и многоадресные (Multicast).
Адреса типа Unicast хорошо всем известны. Пакет, посланный на такой адрес, достигает в точности интерфейса, который этому адресу соответствует.
Адреса типа Anycast синтаксически неотличимы от адресов Unicast, но они адресуют группу интерфейсов. Пакет, направленный такому адресу, попадёт в ближайший (согласно метрике маршрутизатора) интерфейс. Адреса Anycast могут использоваться только маршрутизаторами.
Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, посланный на такой адрес, достигнет всех интерфейсов, привязанных к группе многоадресного вещания.
Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами многоадресного вещания IPv6.
IPv6 адрес | Длина префикса (биты) | Описание | Заметки |
---|---|---|---|
:: | 128 | - | cf. 0.0.0.0 в IPv4 |
::1 | 128 | loopback адрес | cf. 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 | cf. loopback адрес в IPv4 |
fec0:: - feff:: | 10 | site-local | |
ffxx:: | 8 | широковещательный | |
3 | global unicast | Все global unicast адреса присваиваются из этого пула. Первые три бита 001. |