Adres IPv6 składa się z 8 hekstetów (po 16 bitów każdy), zapisywanych w postaci czterech cyfr szesnastkowych oddzielonych dwukropkami. "Kompresja" (zapis skrócony) polega na zastosowaniu dwóch niezależnych reguł.
- Usuwanie zer wiodących w każdym hekstecie: można skrócić "0012" do "12", "0AAA" do "AAA", a "000B" do "B". Nie wolno usuwać zer, które nie są wiodące (np. "0A0B" nie staje się "AB").
- Kompresja kolejnych hekstetów równych 0000 poprzez zapis "::". Taki skrót wolno zastosować tylko raz w całym adresie, aby zapis pozostał jednoznaczny. Zastępuje on jeden lub więcej kolejnych hekstetów "0000". Zwykle wybiera się najdłuższy ciąg zer.
Dla adresu: 2001:0012:0000:0000:0AAA:0000:0000:000B wykonujemy kroki:
- Skracamy hekstety z zerami wiodącymi: 0012 → 12, 0AAA → AAA, 000B → B.
- Widzimy ciąg hekstetów 0000: są dwa hekstety 0000 po "12" oraz kolejne dwa hekstety 0000 przed końcowym "B". Najdłuższy ciąg ma długość 2 (występuje dwukrotnie), więc możemy skompresować jeden z nich do "::".
- Po prawidłowej kompresji i zachowaniu jednorazowego "::" otrzymujemy zapis: 2001:12::AAA:0:0:B. Hekstety "0" oznaczają pojedyncze "0000", które nie zostały objęte "::".
Dlaczego pozostałe propozycje są błędne? Takie odpowiedzi zwykle naruszają jedną z zasad: wstawiają "::" więcej niż raz (co jest niejednoznaczne), zmieniają wartości hekstetów (np. pojawia się inny hekstet niż wynika z danych), albo skracają adres w sposób, który nie daje się jednoznacznie rozwinąć do 8 hekstetów.
Wskazówka egzaminacyjna: po skróceniu spróbuj odtworzyć pełny adres do 8 hekstetów. Jeśli nie da się tego zrobić jednoznacznie, zapis jest niepoprawny.