Adres IPv6 składa się z 8 hekstetów (grup po 16 bitów) zapisywanych w postaci czterech cyfr szesnastkowych oddzielonych dwukropkami. W praktyce bardzo często stosuje się zapis skrócony, ale musi on spełniać określone reguły.
1) Usuwanie zer wiodących
W każdym hekstecie można pominąć zera stojące na początku. Przykłady: 0dc8 → dc8, 0001 → 1, 0000 → 0.
2) Kompresja hekstetów równych 0000 przy użyciu "::"
Jeśli w adresie występuje ciąg kolejnych hekstetów 0000, można zastąpić go podwójnym dwukropkiem "::". Kluczowe zasady są dwie:
- "::" wolno użyć tylko raz w całym adresie (inaczej nie da się jednoznacznie odtworzyć pełnych 8 hekstetów).
- Zazwyczaj wybiera się najdłuższy ciąg 0000 do kompresji, aby zapis był najkrótszy i zgodny z dobrymi praktykami.
Dany adres: 2020:0dc8:0000:0001:0000:0000:0000:0001.
Po usunięciu zer wiodących: 2020:dc8:0:1:0:0:0:1.
Następnie kompresujemy najdłuższy ciąg trzech kolejnych hekstetów 0 (pozycje 5–7) do "::", otrzymując: 2020:dc8:0:1::1.
Dlaczego pozostałe odpowiedzi są błędne?
- "22:dc8::1::1" – zawiera "::" dwa razy, co jest niepoprawne składniowo.
- "2020:0dc8::1" – po "::" byłby tylko jeden hekstet, więc kompresja musiałaby zastąpić aż 5 hekstetów 0000; to nie odpowiada podanemu adresowi, a dodatkowo pozostawiono 0dc8 zamiast dc8.
- "22:dc8:1:1" – ma zbyt mało hekstetów i nie wynika z poprawnej kompresji (brakuje informacji, ile pól zastąpiono), więc nie jest równoważne.