IPv4 (Internet Protocol version 4) to czwarta generacja protokołu internetowego i jedna z najbardziej fundamentalnych technologii umożliwiających globalną komunikację cyfrową. U podstaw IPv4 leży 32‑bitowy numeryczny identyfikator, który służy jako unikalna etykieta dla urządzeń podłączonych do sieci działających w oparciu o ten protokół. Adresy składają się z czterech oktetów po 8 bitów każdy, co daje przestrzeń adresową zdolną obsłużyć około 4,3 miliarda unikalnych adresów, przy czym istotna część jest zarezerwowana do celów specjalnych. Powszechne wdrożenie IPv4 od 1981 r. utrwaliło go jako dominujący schemat adresowania mimo trwającej migracji do bardziej pojemnego IPv6.

Podstawy architektury adresowania IPv4

Adresowanie IPv4 opiera się na hierarchicznym, dwuwarstwowym modelu, który dzieli 32‑bitową przestrzeń na dwie zasadnicze części: identyfikator sieci oraz identyfikator hosta. Taka struktura umożliwia efektywną organizację sieci i ułatwia podejmowanie decyzji routingu w całym Internecie. Część sieciowa wskazuje, do której sieci należy urządzenie, a część hosta unikalnie identyfikuje interfejs w tej sieci. Już w RFC 791 (1981) przyjęto dwuczęściowy podział adresu, aby zapewnić zarówno globalną identyfikację sieci, jak i lokalną unikalność urządzeń.

Pierwotna architektura IPv4 była bardzo prosta: identyfikację sieci przypisano do najbardziej znaczących ośmiu bitów, pozostawiając 24 bity dla hostów. To wystarczało we wczesnej fazie rozwoju Internetu, lecz dynamiczny wzrost liczby sieci szybko ujawnił ograniczenia tego podejścia. Wyczerpywanie się identyfikatorów sieci wymusiło przeprojektowanie systemu i stworzenie bardziej elastycznych metod, które umożliwiły dalszą skalowalność powstającej globalnej infrastruktury komunikacyjnej.

Format adresu IPv4 i systemy zapisu

Standardową reprezentacją adresów IPv4 jest notacja dziesiętna z kropkami, w której każdy z czterech oktetów zapisuje się w systemie dziesiętnym i oddziela kropkami. Przykładowo 192.168.1.1 jest znacznie bardziej czytelne niż zapis binarny (11000000.10101000.00000001.00000001) czy pojedyncza wartość 32‑bitowa (3232235777). Notacja z kropkami jest powszechna ze względu na czytelność i łatwość zapamiętywania.

Każdy oktet może przyjmować wartości od 0 do 255, co odpowiada 2^8 kombinacjom bitów od 00000000 do 11111111. W transmisji komputery traktują cztery oktety jako jeden 32‑bitowy integer przechowywany w konwencji big‑endian (najbardziej znaczący bajt na początku). Mimo wewnętrznej reprezentacji całkowitej, na potrzeby człowieka stosuje się zapis kropkowy, który ułatwia konfigurację i diagnostykę.

Reprezentacja binarna ujawnia faktyczną strukturę przetwarzaną przez urządzenia sieciowe podczas podejmowania decyzji o przekazywaniu pakietów. Konwersja dziesiętnego oktetu na zapis binarny polega na rozkładzie na sumę potęg dwójki. Np. 192 = 128 + 64, co odpowiada 11000000. Ta umiejętność jest kluczowa przy zrozumieniu masek podsieci i obliczaniu granic sieci.

Dla szybkiego porównania sposobów zapisu adresów IPv4:

  • notacja dziesiętna z kropkami – najbardziej czytelna dla człowieka (np. 192.168.1.1);
  • zapis binarny – wiernie oddaje strukturę bitową i ułatwia analizę masek (np. 11000000.10101000.00000001.00000001);
  • pojedyńcza liczba 32‑bitowa – reprezentacja całkowita użyteczna w niektórych narzędziach i API (np. 3232235777).

Składowe adresu IPv4 i podział strukturalny

Każdy adres IPv4 dzieli się na część sieci i hosta poprzez maskę podsieci – binarny wzorzec wskazujący, które bity należą do sieci, a które do hosta. Maska używa tej samej notacji kropkowej, ale w zapisie binarnym zawiera ciąg jedynek, a następnie ciąg zer. Przykładowo 255.255.255.0 to w binarnym zapisie 24 jedynki i 8 zer: 11111111.11111111.11111111.00000000. Bity oznaczone jako 1 należą do sieci, a bity 0 – do hosta.

Część sieciowa identyfikuje konkretną sieć lub podsieć i pozostaje wspólna dla wszystkich urządzeń w tym segmencie. Dzięki temu urządzenia i routery, wykonując operację bitowego AND na adresie oraz masce, szybko rozstrzygają, czy cel jest lokalny, czy wymaga przekazania do innej sieci.

Część hosta unikalnie identyfikuje interfejs w danej sieci. Adres hosta z samymi zerami jest adresem sieci, a z samymi jedynkami – adresem rozgłoszeniowym; żaden z nich nie może zostać przypisany do interfejsu urządzenia.

Adresowanie klasowe – architektura i implementacja historyczna

Pierwotnie IPv4 korzystał z systemu adresowania klasowego (1981), który definiował pięć klas: A–E, z góry ustalając podział na część sieci i hosta. Klasy A, B i C służyły głównie do adresowania hostów, klasa D do multicastu, a E – do celów eksperymentalnych.

Poniższe zestawienie porównuje właściwości klas adresowych:

Klasa Bity wiodące Zakres adresów Bity sieć/host Liczba sieci Hosty na sieć Zastosowanie
A 0 0.0.0.0–127.255.255.255 8/24 126 16 777 214 duże organizacje
B 10 128.0.0.0–191.255.255.255 16/16 16 384 65 534 średnie sieci
C 110 192.0.0.0–223.255.255.255 24/8 2 097 152 254 małe sieci
D 1110 224.0.0.0–239.255.255.255 multicast
E 1111 240.0.0.0–255.255.255.255 eksperymentalne

Bezklasowe trasowanie międzydomenowe i nowoczesna alokacja adresów

Sztywny podział na klasy powodował rosnące marnotrawstwo adresów. Organizacje potrzebujące „czegoś pomiędzy” często brały klasę B zamiast wielu klas C, co szybko wyczerpywało pulę B. W 1993 r. IETF wprowadził CIDR (Classless Inter‑Domain Routing), który zlikwidował granice klas i umożliwił elastyczne przydziały na dowolnych granicach bitów.

Notacja CIDR zapisuje sieci w postaci „adres/maska”, np. 192.168.1.0/24, gdzie pierwsze 24 bity to sieć, a pozostałe – hosty. Sieć /24 zawiera 256 adresów (2^8), z czego 254 są użyteczne; /25 – 128, /26 – 64 itd. Takie podejście precyzyjnie dopasowuje rozmiary sieci do potrzeb.

CIDR wprowadził też agregację tras, pozwalając routerom łączyć sąsiednie sieci w supernety i drastycznie redukować rozmiary tablic routingu, co było kluczowe dla skalowalności Internetu.

Prywatne, publiczne i specjalne zakresy adresów

Nie wszystkie adresy IPv4 są przeznaczone do routowania w Internecie. IANA zarezerwowała w RFC 1918 zakresy prywatne. Zobacz porównanie najpopularniejszych pul:

Zakres (RFC 1918) Rozmiar puli Typowe zastosowania
10.0.0.0/8 ~16,8 mln duże sieci korporacyjne, operatorki
172.16.0.0/12 ~1,0 mln średnie sieci firmowe, segmentacja działów
192.168.0.0/16 ~65 536 domowe routery, małe biura (SOHO)

Wewnętrzne sieci domowe i firmowe najczęściej używają 192.168.0.0/16 lub 10.0.0.0/8. Ponieważ adresy prywatne nie są routowalne w Internecie, do komunikacji na zewnątrz potrzebny jest NAT (Network Address Translation), który zamienia prywatne źródła na publiczny adres brzegowy i wykonuje translację w drugą stronę dla odpowiedzi.

Pozostałe istotne zakresy specjalne obejmują:

  • loopback 127.0.0.0/8 – lokalna komunikacja na hoście; 127.0.0.1 to localhost, pakiety nigdy nie opuszczają urządzenia;
  • link‑local 169.254.0.0/16 (APIPA) – automatyczna konfiguracja adresu, gdy DHCP jest niedostępne, z weryfikacją unikalności przez ARP;
  • multicast 224.0.0.0/4 – komunikacja jeden‑do‑wielu dla multimediów, protokołów zarządzania i usług odkrywania.

Struktura nagłówka datagramu IPv4 i definicje pól

Nagłówek IPv4 niesie kluczowe metadane niezbędne do dostarczenia pakietu. Zawiera minimum 20 bajtów (bez opcji) i maksymalnie 60 bajtów (z opcjami). Zrozumienie pól nagłówka jest krytyczne dla diagnostyki i optymalizacji sieci. Poniżej zwięzłe objaśnienia:

  • Version – 4‑bitowa wersja protokołu, dla IPv4 zawsze równa 4;
  • IHL (Internet Header Length) – długość nagłówka w słowach 32‑bitowych; min. 5 (20 B), maks. 15 (60 B);
  • ToS/DSCP – parametry jakości obsługi (QoS), priorytetyzacja ruchu (np. VoIP, wideokonferencje);
  • Total Length – łączny rozmiar pakietu (nagłówek + dane), od 20 do 65 535 bajtów;
  • Identification – identyfikator datagramu używany do składania fragmentów;
  • Flags – trzy bity: zarezerwowany (0), DF (Don’t Fragment) – zakaz fragmentacji, MF (More Fragments) – informacja o kolejnych fragmentach;
  • Fragment Offset – pozycja fragmentu w oryginalnym datagramie (jednostki 8‑bajtowe);
  • TTL (Time To Live) – licznik skoków zapobiegający pętlom; przy 0 pakiet jest odrzucany (ICMP Time Exceeded);
  • Protocol – kod protokołu warstwy wyższej (np. ICMP=1, TCP=6, UDP=17);
  • Header Checksum – suma kontrolna nagłówka IPv4 (bez danych) do detekcji błędów;
  • Source IP Address – 32‑bitowy adres źródłowy nadawcy;
  • Destination IP Address – 32‑bitowy adres docelowy odbiorcy;
  • Options – pole opcjonalne (np. rejestrowanie trasy, znaczniki czasu); zwiększa IHL i bywa filtrowane ze względów bezpieczeństwa.

Zarządzanie adresami IPv4 i mechanizmy alokacji

DHCP automatyzuje przydzielanie adresów IPv4 i parametrów sieciowych. Serwer DHCP utrzymuje pulę dostępnych adresów i dzierżawi je urządzeniom na określony czas, znacząco redukując pracochłonność administracyjną.

DHCP działa w czterech fazach DORA – poniżej przebieg wymiany:

  1. Discovery – host wysyła DHCPDISCOVER (broadcast), aby znaleźć serwery;
  2. Offer – serwery odpowiadają DHCPOFFER z propozycją adresu i parametrów;
  3. Request – host wybiera ofertę i wysyła DHCPREQUEST do wybranego serwera;
  4. Acknowledgement – serwer potwierdza DHCPACK, przydzielając dzierżawę i konfigurację.

DHCP obsługuje trzy modele: dynamiczny (dzierżawy na czas określony), automatyczny (trwały przydział z zapamiętywaniem poprzednich), oraz ręczny (rezerwacje powiązane z MAC). Każdy ma zastosowania zależnie od stabilności i skali środowiska.

Adresy można też przypisywać statycznie poprzez ręczną konfigurację interfejsów (adres IP, maska, brama). To preferowane dla serwerów, routerów czy drukarek sieciowych, ale wymaga większego nakładu pracy.

DNS (Domain Name System) tłumaczy nazwy domenowe na adresy IPv4. Resolver odpyta hierarchiczne serwery nazw o autorytatywne rekordy, aby pozyskać właściwy adres. Dzięki DNS użytkownicy posługują się nazwami, a nie liczbami.

Podsieciowanie i techniki podziału sieci

Podsieciowanie dzieli większą sieć na mniejsze podsieci, poprawiając wykorzystanie przestrzeni adresowej i ograniczając domeny rozgłoszeniowe. Maska podsieci wskazuje liczbę bitów sieci i hosta, gdzie jedynki oznaczają sieć, a zera – hosty.

VLSM (Variable‑Length Subnet Mask) pozwala stosować różne maski w obrębie tej samej puli, dopasowując rozmiary podsieci do faktycznych potrzeb działów i lokalizacji. Maksymalizuje to efektywność wykorzystania adresów.

Dobór maski zależy od liczby urządzeń. Dla ok. 50 hostów potrzeba 6 bitów hosta: 2^6 = 64 adresy, z czego 62 użyteczne. Odpowiada to masce /26 (255.255.255.192) – 26 bitów na sieć i 6 na hosty. Dobre planowanie podsieci zapobiega wyczerpaniu przestrzeni i marnotrawstwu.

Fragmentacja pakietów IPv4 i odkrywanie MTU ścieżki

Maksymalna jednostka transmisji (MTU) warstwy łącza ogranicza rozmiar pakietów bez fragmentacji (Ethernet zwykle 1500 bajtów). Przy niezgodnych MTU IPv4 dopuszcza fragmentację; host docelowy składa fragmenty z powrotem.

Fragmenty dziedziczą identyfikator i adresy źródłowe/docelowe, a ich kolejność określa Fragment Offset. Flaga MF jest ustawiona dla wszystkich poza ostatnim fragmentem.

PMTUD (Path MTU Discovery) pozwala automatycznie ustalić najmniejszą MTU na drodze. Gdy DF jest ustawione i pakiet jest zbyt duży, router odsyła ICMP Fragmentation Needed, co skłania nadawcę do zmniejszenia rozmiaru kolejnych pakietów. Fragmentacja obciąża routery i hosty, dlatego warto jej unikać poprzez właściwe MTU i projekt aplikacji.

Wyczerpywanie adresów IPv4 i strategie ograniczania skutków

Eksplozja liczby urządzeń (mobilne, IoT) spowodowała, że pula wolnych adresów IPv4 zbliżyła się do wyczerpania. Przestrzeń 32‑bitowa (~4,3 mld) okazała się niewystarczająca, zwłaszcza przez rezerwy, historyczne marnotrawstwo i wieloadresowość.

Regionalne rejestry (RIR) wyczerpały zasoby lub mają minimalne rezerwy. APNIC zakończył regularne przydziały w kwietniu 2011 r. (nowi wnioskujący otrzymują pojedyncze /22), ARIN również wyczerpał pulę, a podobne zjawisko dotyczy innych regionów.

NAT jest kluczową techniką „pomostową”: pozwala wielu prywatnym hostom współdzielić pojedynczy publiczny adres, wykorzystując translację portów. To podtrzymuje działanie IPv4, lecz narusza zasadę end‑to‑end, komplikuje P2P i zwiększa złożoność.

Carrier‑grade NAT (CGNAT) stosuje translację na skalę operatorów, współdzieląc małe pule publicznych adresów między wielu klientów, co wydłuża życie IPv4, ale wprowadza dodatkowe złożoności i ograniczenia usługowe.

Współistnienie IPv4 i IPv6 oraz mechanizmy migracji

IPv6 (128‑bitowe adresy, >10^38 kombinacji) to docelowy następca IPv4. Choć wdrożenia rozpoczęto lata temu, IPv4 pozostaje istotny operacyjnie, co odzwierciedla skalę wyzwań migracyjnych. Najczęściej stosowane mechanizmy koegzystencji to:

  • dual‑stack – równoczesna obsługa IPv4 i IPv6 na hostach i w sieci, zapewniająca najwyższą kompatybilność;
  • tunelowanie – enkapsulacja IPv6 w IPv4 (lub odwrotnie) na odcinkach bez natywnego wsparcia;
  • translacja (np. NAT64) – przekład adresów i protokołów między rodzinami IP, kosztem złożoności i możliwych ograniczeń.

Prognozy wskazują, że IPv4 pozostanie ważny przez wiele lat. Architektury dual‑stack stają się standardem: udział IPv6 rośnie wraz z migracją usług i punktów końcowych, przy równoczesnym utrzymaniu IPv4 dla zgodności.