book1

12.2.1 Структура IPv6-адреса

IPv6-адрес — это 128 бит, записанных в шестнадцатеричном формате (hex).

Адрес делится на 8 групп по 16 бит (каждая группа называется hextet), разделённых двоеточиями:

x:x:x:x:x:x:x:x

Каждый hextet = 4 hex-цифры = 16 бит. Регистр не важен (можно писать и строчными, и заглавными).

Пример полного (preferred) формата:

2001:0db8:0000:1111:0000:0000:0000:0200

12.2.2 Правило 1 — Убираем ведущие нули

В каждом hextete можно убрать нули в начале (leading zeros):

ПолныйСокращённый
01ab1ab
09f09f0
0a00a00
00abab

⚠️ Убирать можно только ведущие нули — нули в конце убирать нельзя! abc — это неоднозначно: 0abc или abc0?

Пример:

2001:0db8:0000:1111:0000:0000:0000:0200
→ 2001:db8:0:1111:0:0:0:200

12.2.3 Правило 2 — Двойное двоеточие ::

Одну непрерывную группу нулевых хекстетов можно заменить на ::.

2001:db8:0:1111:0:0:0:200
→ 2001:db8:0:1111::200

Важные ограничения:

  • :: можно использовать только один раз в адресе — иначе непонятно сколько нулей скрыто
  • Если есть несколько групп нулей — :: ставится на самую длинную группу; если они равные — на первую

Примеры из таблиц:

PreferredCompressed
2001:0db8:0000:1111:0000:0000:0000:02002001:db8:0:1111::200
fe80:0000:0000:0000:0123:4567:89ab:cdeffe80::123:4567:89ab:cdef
fe80:0000:0000:0000:0000:0000:0000:0001fe80::1
0000:0000:0000:0000:0000:0000:0000:0001::1
0000:0000:0000:0000:0000:0000:0000:0000::

::1 — это loopback-адрес IPv6 (аналог 127.0.0.1 в IPv4) :: — это unspecified address (все нули)


Быстрое правило

Шаг = 2^(64 − префикс) в рамках 4-й группы

computernetworks