Wszystkie zagadnienia: Teoria
średni sieciIPv4IPv6matura rozszerzona z informatyki

IPv4 i IPv6 – różnice

IPv6 – adres 128-bitowy w ośmiu grupach szesnastkowych: zasady skracania zer, rozpoznawanie błędnego zapisu i różnice względem IPv4.

01

Opis

IPv4 używa adresów 32-bitowych, co daje 2³² = 4 294 967 296, czyli około 4,3 miliarda kombinacji. Gdy projektowano internet, wydawało się to liczbą nie do wyczerpania. Przy dzisiejszej liczbie telefonów, komputerów i urządzeń domowych pula skończyła się w praktyce.

IPv6 rozwiązuje ten problem długością adresu: 128 bitów. To 2¹²⁸ ≈ 3,4 × 10³⁸ możliwych adresów, czyli 2⁹⁶ ≈ 7,9 × 10²⁸ razy więcej niż w IPv4. Każde urządzenie może dostać własny adres publiczny, bez sztuczek z translacją adresów – NAT ma dom w haśle klasy adresów IP, adresy prywatne i NAT.

Zapis też jest inny. IPv4 to cztery liczby dziesiętne rozdzielone kropkami, IPv6 to osiem grup po cztery cyfry szesnastkowe rozdzielonych dwukropkami. Adres pisany w całości jest bardzo długi, więc reguły zapisu pozwalają go skrócić – i to właśnie skracanie jest na maturze najczęściej sprawdzane.

Cztery zasady, które wystarczą do większości pytań:

  • 128 bitów = 8 grup po 16 bitów = 32 cyfry szesnastkowe. Każda cyfra szesnastkowa to 4 bity, więc jedna grupa ma cztery cyfry. Grupa dłuższa niż cztery cyfry albo dziewiąta grupa w adresie to od razu błąd zapisu.
  • W grupie wolno pominąć tylko zera wiodące. 0db8 skraca się do db8, 0000 do 0, ale 1200 zostaje 1200 – zer z końca grupy nie usuwa się nigdy.
  • Podwójny dwukropek zastępuje ciąg całych grup zerowych i można go użyć tylko raz. Gdyby wystąpił dwa razy, nie dałoby się odtworzyć, ile grup kryje się pod którym z nich.
  • Adres IPv6 czyta się znak po znaku, nie liczy się w pamięci. Do rozpoznania błędnego zapisu wystarczy sprawdzić trzy rzeczy: liczbę grup, długość każdej grupy i to, czy wszystkie znaki są cyframi szesnastkowymi.

Budowa adresu IPv4, maska podsieci i poprawność zapisu czterech liczb dziesiętnych to osobny temat – patrz adresowanie IP i maska podsieci. Rozwinięcia ogólnych skrótów sieciowych zbiera słownik skrótów sieciowych.

02

Skróty i rozwinięcia

IPv6
Internet Protocol version 6 szósta wersja protokołu IP; adres ma 128 bitów zamiast 32
SLAAC
Stateless Address Autoconfiguration bezstanowa autokonfiguracja: host sam składa adres z prefiksu ogłoszonego przez router
RA
Router Advertisement komunikat, którym router ogłasza w sieci prefiks; na nim opiera się SLAAC
NDP
Neighbor Discovery Protocol protokół wykrywania sąsiadów; w IPv6 zastępuje ARP i rozgłaszanie
ULA
Unique Local Address adres lokalny z zakresu fc00::/7, nierutowany w internecie
IPv4-mapped
IPv4-mapped IPv6 address adres postaci ::ffff:a.b.c.d, w którym ostatnie 32 bity to adres IPv4
03

Jak to działa

Weź pełny adres 2001:0db8:0000:0000:0000:ff00:0042:8329 i policz, co w nim jest:

  • osiem grup, rozdzielonych dwukropkami – to zawsze osiem, ani mniej, ani więcej;
  • cztery cyfry szesnastkowe w grupie, czyli 4 × 4 = 16 bitów na grupę;
  • razem 8 × 16 = 128 bitów i 8 × 4 = 32 cyfry szesnastkowe.

Dozwolone znaki to 0–9 oraz a–f (wielkość liter nie ma znaczenia, choć zaleca się małe). Jedna cyfra szesnastkowa odpowiada dokładnie czterem bitom, więc przeliczanie grupy na bity sprowadza się do rozpisania czterech cyfr.

Krok 1 – usuń zera wiodące w każdej grupie. Robi się to osobno w każdej z ośmiu grup:

2001 : 0db8 : 0000 : 0000 : 0000 : ff00 : 0042 : 8329 2001 : db8 : 0 : 0 : 0 : ff00 : 42 : 8329

Zwróć uwagę, że ff00 zostało bez zmian. Zero wiodące to zero z lewej strony grupy; ff00 ma zera na końcu i one niosą wartość.

Krok 2 – zwiń najdłuższy ciąg grup zerowych do ::. W przykładzie zerowe są grupy 3, 4 i 5, więc trzy dwukropki zamieniają się w jeden podwójny:

2001:db8::ff00:42:8329

To jest ostateczny, kanoniczny zapis tego adresu. Rozwinięcie działa w drugą stronę: liczysz grupy zapisane jawnie (tu pięć), odejmujesz od ośmiu i wiesz, że :: zastępuje trzy grupy 0000.

Trzy pułapki reguły skracania. Po pierwsze, :: wolno wstawić tylko raz – 2001:db8::1::2 jest błędny, bo nie da się rozstrzygnąć, ile zer schowano z przodu, a ile z tyłu. Po drugie, gdy w adresie są dwa ciągi zer, zwija się dłuższy, a przy równej długości ten bardziej z lewej: adres 2001:0db8:0000:0000:abcd:0000:0000:1234 ma dwa ciągi po dwie grupy, więc kanoniczny skrót to 2001:db8::abcd:0:0:1234. Po trzecie, :: postawione w miejsce jednej grupy zer jest dopuszczalne, ale niezalecane – pojedynczą grupę zostawia się jako 0, czyli pisze się 2001:db8:0:1:1:1:1:1, a nie 2001:db8::1:1:1:1:1.

Prefiks sieci. W IPv6 nie używa się maski w postaci czterech liczb – jest wyłącznie zapis z ukośnikiem. Standardowa podsieć to /64: pierwsze 64 bity opisują sieć, ostatnie 64 identyfikują urządzenie w tej sieci. Jedna taka podsieć mieści 2⁶⁴ = 18 446 744 073 709 551 616 adresów, czyli ponad cztery miliardy razy więcej niż cały internet IPv4.

Typy adresów po prefiksie. Pierwsze bity mówią, do czego adres służy: 2000::/3 to adresy globalne (routowane w internecie), fe80::/10 to adresy link-local używane tylko w obrębie jednego łącza, fc00::/7 to adresy lokalne ULA, ff00::/8 to grupy multicast. Rozgłaszania (broadcast) w IPv6 nie ma w ogóle – jego rolę przejął multicast.

Skąd urządzenie bierze adres IPv6. Najczęściej z SLAAC: router rozsyła komunikat Router Advertisement z prefiksem /64, a host dokleja do niego własną, 64-bitową część i sam sprawdza, czy nikt jej już nie używa. Serwer DHCP też potrafi rozdawać adresy IPv6 (w wersji DHCPv6), ale nie jest do tego konieczny. W praktyce urządzenia pracują w trybie dual stack: mają jednocześnie adres IPv4 i IPv6, a o tym, którym połączyć się z serwerem, decyduje odpowiedź serwera nazw – rekord A dla IPv4 i AAAA dla IPv6, patrz DNS.

Adres IPv6 w adresie strony. Dwukropek w URL-u oddziela numer portu, więc adres IPv6 wpisany do przeglądarki bierze się w nawiasy kwadratowe: http://[2001:db8::1]:8080/index.html.

04

Wizualizacja

Tabela wejściowa
Nr grupyPełny zapis (16 bitów)
12001
20db8
30000
40000
50000
6ff00
70042
88329
→
Wynik
Nr grupyPo skróceniu
12001
2db8 (usunięte zero wiodące)
3-5:: (trzy grupy zer zwinięte)
6ff00 (zera końcowe zostają)
742 (usunięte dwa zera wiodące)
88329
05

Tabela

Zapisy adresów IPv6 – które są poprawne i dlaczego (pełne postacie sprawdzone modułem ipaddress)
ZapisPoprawny?Dlaczego / pełna postać
2001:0db8:0000:0000:0000:ff00:0042:8329takpełny zapis, osiem grup po cztery cyfry; skrót to 2001:db8::ff00:42:8329
2001:db8::ff00:42:8329takskrót powyższego: usunięte zera wiodące, trzy grupy zer zwinięte do ::
2023:0db8:0000:0000:0000:0000:1428:57abtakodpowiedź A z Informatora 2023; skrót to 2023:db8::1428:57ab
2023:0db8:0:0:0:0:11428:57abnieodpowiedź B z Informatora 2023; grupa 11428 ma pięć cyfr, a mieści się najwyżej cztery
2023:0db8:0:0::128:57abtakodpowiedź C; :: zwija dwie grupy zer, pełny zapis to 2023:0db8:0000:0000:0000:0000:0128:57ab
2023:0db8::428:57abtakodpowiedź D; :: zwija cztery grupy zer, pełny zapis 2023:0db8:0000:0000:0000:0000:0428:57ab
2023:db8::28:57abtakodpowiedź E; to samo co wyżej plus usunięte zero wiodące w drugiej grupie
2001:db8::1::2niedwa razy ::, więc nie da się odtworzyć, ile grup zer kryje się pod którym
2001:0db8:0:0:0:0:0:1:2niedziewięć grup; bez :: musi być dokładnie osiem
2001:0gb8::1nielitera g nie jest cyfrą szesnastkową; dozwolone są tylko 0-9 oraz a-f
2001:db8:0:1:1:1:1:1taktylko jedna grupa zerowa; :: byłoby tu dopuszczalne, ale niezalecane
2001:0db8:0000:0000:abcd:0000:0000:1234takdwa równe ciągi zer, więc :: idzie w pierwszy: 2001:db8::abcd:0:0:1234
::1takadres pętli zwrotnej; pełny zapis 0000:0000:0000:0000:0000:0000:0000:0001
::ffff:192.168.1.10takadres IPv4 odwzorowany w IPv6; ostatnie 32 bity zapisane po staremu
192.168.1.10nieto adres IPv4: cztery liczby dziesiętne i kropki, w sumie 32 bity
06

Porównanie

CechaIPv4IPv6
Długość adresu32 bity128 bitów
Zapiscztery liczby dziesiętneosiem grup szesnastkowych
Separatorkropkadwukropek
Liczba adresów4 294 967 296, czyli około 4,3 miliarda2¹²⁸, około 3,4 × 10³⁸
Przykład192.168.1.102001:db8::ac1:1
Adres pętli zwrotnej127.0.0.1::1
Zapis w adresie stronyhttp://192.168.1.10:8080/http://[2001:db8::1]:8080/
Zapis siecimaska 255.255.255.0 lub /24wyłącznie prefiks, zwykle /64
Konfiguracja adresuręczna lub z serwera DHCPręczna, DHCPv6 albo automatyczna przez SLAAC
Rozgłaszanieadres rozgłoszeniowy w każdej siecibrak, zastąpione przez multicast
Potrzeba NATtak, bo adresów brakujenie, adresów publicznych starcza
Rekord w systemie nazwAAAAA
Nazwa angielskaInternet Protocol version 4Internet Protocol version 6
07

Typowe błędy

Podwójny dwukropek użyty dwa razy. To najczęstszy sposób, w jaki układający zadanie psuje adres w odpowiedziach do wyboru. 2001:db8::1::2 wygląda niewinnie, ale jest nie do rozwinięcia: pierwszy :: mógłby zastępować jedną grupę i drugi cztery albo odwrotnie. Reguła jest zerojedynkowa – w adresie może wystąpić najwyżej jeden ::.

Grupa dłuższa niż cztery cyfry. Jedna grupa to 16 bitów, czyli dokładnie cztery cyfry szesnastkowe. Zapis w rodzaju 11428 ma ich pięć i jest błędny niezależnie od tego, co jest wokół. Warto przy każdym adresie z zadania przejechać wzrokiem po grupach i policzyć znaki – to sprawdzenie zajmuje sekundy i wyłapuje większość pułapek.

Usuwanie zer z końca grupy. Skraca się wyłącznie zera wiodące: 0042 to 42, 0db8 to db8, 0000 to 0. Grupy 1200 nie wolno zapisać jako 12, bo to byłaby zupełnie inna wartość. Ten błąd jest zdradliwy, bo powstały zapis wygląda poprawnie i przechodzi „na oko”.

Mylenie liczby bitów: 32, 48, 128. Adres IPv4 ma 32 bity, adres MAC 48, a IPv6 128. Zadania prawda/fałsz podsuwają te trzy liczby wymiennie, dorzucając 64 jako czwartą, fałszywą możliwość. Warto zapamiętać je jako komplet, bo pytanie o jedną prawie zawsze niesie pozostałe jako odpowiedzi-pułapki.

„IPv6 jest cztery razy większy”. Adres jest czterokrotnie dłuższy w bitach, ale liczba kombinacji rośnie wykładniczo, nie liniowo: 2¹²⁸ to 2⁹⁶ razy więcej niż 2³², a nie cztery razy więcej. To ulubione zdanie do oceny prawda/fałsz.

Adres IPv6 wklejony do przeglądarki bez nawiasów kwadratowych. W URL-u dwukropek zapowiada numer port, więc http://2001:db8::1/ jest dla przeglądarki nieczytelne. Poprawnie: http://[2001:db8::1]/, a z portem http://[2001:db8::1]:8080/.

08

Zapamiętaj

  • Adres IPv6 ma 128 bitów: osiem grup po 16 bitów, każda zapisana czterema cyframi szesnastkowymi.
  • W grupie skraca się wyłącznie zera wiodące; zera na końcu grupy zostają.
  • Podwójny dwukropek zastępuje ciąg całych grup zerowych i może wystąpić w adresie tylko raz.
  • Zapis jest błędny, gdy grupa ma więcej niż cztery cyfry, gdy grup jest dziewięć albo gdy pojawia się znak spoza zakresu 0–9 i a–f.
  • ::1 to pętla zwrotna, fe80::/10 adresy link-local, 2000::/3 adresy globalne, ::ffff:a.b.c.d odwzorowanie IPv4.
  • Standardowa podsieć IPv6 to /64: połowa adresu opisuje sieć, połowa urządzenie.
  • W adresie strony adres IPv6 bierze się w nawiasy kwadratowe, bo dwukropek oznacza w URL-u port.
09

Sprawdź się

Konfiguracja sieciowa laptopa w sieci domowej z włączonym IPv6:

PoleWartość
Adres IPv6 (pełny zapis)2001:0db8:0000:0000:0000:0000:0ac1:0001
Prefiks sieci2001:0db8:0000:0000::/64
Brama domyślnafe80::1
Adres pętli zwrotnej::1

Uzupełnij tabelę na podstawie tej konfiguracji:

PytanieOdpowiedź
Ile bitów ma adres IPv6 laptopa?
Z ilu grup składa się jego pełny zapis?
Ile bitów ma jedna grupa?
Ile cyfr szesnastkowych ma pełny zapis adresu?
Skrócony zapis adresu laptopa
Ile grup zerowych zwija w nim podwójny dwukropek?
Ile bitów opisuje sieć przy prefiksie /64?
Pełny zapis adresu bramy domyślnej
Ile bitów ma adres IPv4 tego samego laptopa?

Podwójnego dwukropka wolno użyć w jednym adresie , a w pojedynczej grupie pomija się zera . Adres IPv6 wpisany do przeglądarki bierze się w nawiasy .

10

Najczęściej zadawane pytania

Ile bitów ma adres IPv6, a ile IPv4?

IPv6 ma 128 bitów, IPv4 ma 32 bity. To najczęściej sprawdzana para liczb w zadaniach o adresowaniu. Trzecia liczba z tego zestawu to 48 bitów adresu fizycznego karty sieciowej, a 64 to typowy dystraktor.

Jak skrócić adres IPv6 krok po kroku?

Najpierw w każdej z ośmiu grup usuwasz zera wiodące, potem najdłuższy ciąg grup złożonych z samych zer zamieniasz na podwójny dwukropek. Przy dwóch ciągach tej samej długości zwijasz ten bardziej z lewej. Zer z końca grupy nie usuwasz nigdy.

Ile razy w adresie może wystąpić podwójny dwukropek?

Najwyżej raz. Przy dwóch wystąpieniach nie dałoby się odtworzyć, ile grup zerowych kryje się pod którym z nich, więc taki zapis jest nieprawidłowy.

Po czym poznać nieprawidłowy adres IPv6 bez liczenia?

Po trzech rzeczach: grupa dłuższa niż cztery cyfry, więcej niż osiem grup przy braku podwójnego dwukropka i znak spoza zakresu 0–9 oraz a–f. Każda z nich dyskwalifikuje adres niezależnie od reszty zapisu.

Co oznacza prefiks /64 w adresie IPv6?

Że pierwsze 64 bity opisują sieć, a pozostałe 64 identyfikują urządzenie w tej sieci. Taka podsieć mieści 2⁶⁴, czyli ponad 18 trylionów adresów.

Dlaczego adres IPv6 w przeglądarce ma nawiasy kwadratowe?

Bo w adresie strony dwukropek oddziela numer portu i bez nawiasów przeglądarka nie wie, gdzie kończy się adres. Poprawny zapis to na przykład http://[2001:db8::1]:8080/index.html.

Czy IPv4 zniknie?

Nie w najbliższym czasie. Obie wersje działają równolegle w trybie dual stack: to samo urządzenie ma jednocześnie adres IPv4 i adres IPv6, a wybór wersji przy łączeniu z serwerem zależy od tego, jaki adres zwróci serwer nazw.

Ile razy więcej adresów daje IPv6?

2 do potęgi 96 razy więcej, bo o tyle bitów dłuższy jest adres. To około 7,9 × 10²⁸, stąd stwierdzenie, że pula jest praktycznie niewyczerpalna. Adres nie jest „cztery razy większy”, mimo że ma cztery razy więcej bitów.

Przećwicz w zadaniach maturalnych

Do tego hasła nie mamy jeszcze przypisanych pojedynczych zadań. Cały spis zadań maturalnych z tego działu jest tutaj:

Zadania z działu: Teoretyczne

↗

Powiązane zagadnienia