IPv4 to czwarta wersja protokołu komunikacyjnego IP przeznaczonego dla Internetu. Identyfikacja hostów w IPv4 opiera się na adresach IP. Dane przesyłane są w postaci standardowych datagramów. Wykorzystanie IPv4 jest możliwe niezależnie od technologii łączącej urządzenia sieciowe – sieć telefoniczna, kablowa, radiowa, itp. IPv4 znajduje się obecnie w powszechnym użyciu. Dostępna jest również nowsza wersja – IPv6. Dokładny opis czwartej wersji protokołu IP znajduje się w RFC 791. W modelu TCP/IP protokół IPv4 znajduje się w warstwie sieciowej.

Budowa datagramu IPv4

+ Bity 0 - 3 4 - 7 8 - 15 16 - 18 19 - 31
0 Wersja Długość nagłówka Typ usługi Całkowita długość
32 Numer identyfikacyjny Flagi Kontrola przesunięcia
64 Czas życia pakietu (TTL) Protokół warstwy wyższej Suma kontrolna nagłówka
96 Adres źródłowy IP
128 Adres docelowy IP
160 Opcje IP Uzupełnienie
192 Dane
  • Pierwsze, 4-bitowe pole zawiera numer wersji protokołu IP (dla IPv4 jest to 4).
  • Kolejne 4-bitowe pole zawiera długość samego nagłówka protokołu (bez danych).
  • Następne 8 bitów prezentuje tzw. "typ usługi" (ang. Type of Service). Jest to najbardziej podstawowy sposób wyznaczania priorytetu danego datagramu. Na podstawie ToS routery mogą szybciej (np. dla sesji SSH), lub wolniej (np. dla przesyłania danych) przepuszczać przez siebie dane datagramy, zwiększając bądź też zmniejszając w ten sposób interaktywność transmisji.
  • Kolejnym 16-bitowym polem jest całkowita długość pakietu (razem z danymi). Jego długość (wynosząca 2^16) umożliwia ustawienie rozmiaru pakietu na 65536 bajtów. Warto dodać, że minimalny rozmiar pakietu to 20 bajtów.
  • Kolejne 16-bitowe pole to numer identyfikacyjny, potrzebny między innymi do fragmentacji i defragmentacji pakietów.
  • Kolejnym 3-bitowym polem są flagi, które są używane przy fragmentacji pakietów.
  • Następne 13-bitowe pole służy do odpowiedniego "poukładania" pofragmentowanych pakietów w taki sposób, aby dane zawarte w tych pakietach miały taki sam układ, jak w pakiecie przed fragmentacją.
  • Pole TTL (8 bitów) to czas życia pakietów (ang. time to live). Jest to liczba z zakresu 0-255. Przy przechodzeniu pakietu przez router jest ona zmniejszana o jeden. W momencie osiągnięcia przez TTL zera, router nie przekazuje pakietu do kolejnego urządzenia sieciowego.
  • Kolejne, 8-bitowe pole to numer protokołu warstwy wyższej, takimi jak ICMP (1), TCP (6) czy UDP (17).
  • Następnym polem jest suma kontrolna nagłówka pakietu. Służy ona kontroli, czy wszystkie dane zostały przetransmitowane. Przy każdej zmianie zawartości pakietu, router oblicza sumę kontrolną dla pakietu i zapisuje ją w odpowiednim polu.
  • Dalsze pola zawierają adres źródłowy i docelowy. To właśnie na podstawie nich można określić pochodzenie i miejsce docelowe pakietu w sieci.
  • Ostatnim, 32-bitowym polem są opcje, które w normalnej transmisji zwykle nie są używane.
  • Pole Padding (wypełnienie) jest opcjonalne i jego zawartością są zera dopełniające długość nagłówka do wielokrotności 32 bitów

 

Adres IP

Aby możliwa była komunikacja w protokole IP konieczne jest nadanie każdemu hostowi adresu IP czyli unikalnego identyfikatora, który pozwoli na wzajemne rozpoznawanie się poszczególnych uczestników komunikacji. Użytkownicy Internetu nie muszą znać adresów IP. Nazwa www.wikipedia.org jest tłumaczona na adres IP dzięki wykorzystaniu protokołu DNS. Adres IP jest dostarczany każdemu użytkownikowi przez dostawcę internetu (ISP). Może być przydzielany statycznie lub dynamicznie. Zapotrzebowanie na adresy IP jest tak duże, że pula nieprzydzielonych adresów zaczyna się wyczerpywać.

Prywatne adresy IPv4

Istnieje pula prywatnych adresów IP. Mogą być one wykorzystane tylko w sieciach lokalnych. Infrastruktura Internetu ignoruje te adresy IP. IANA (Internet Assigned Numbers Authority) zarezerwował następujące trzy bloki przestrzeni adresów IP dla prywatnych sieci:

 

  • 10.0.0.0 - 10.255.255.255 – dla sieci prywatnych klasy A (maska: 255.0.0.0/8)
  • 172.16.0.0 - 172.31.255.255 – dla sieci prywatnych klasy B (maska: 255.240.0.0/12)
  • 192.168.0.0 - 192.168.255.255 – dla sieci prywatnych klasy C (maska: 255.255.0.0/16)

Adresy prywatne można wykorzystywać za pomocą lokalnych routerów w sieciach lokalnych, ale nie działają one w publicznej części internetu. Jeżeli administrator sieci lokalnej przydzieli swoim komputerom adresy IP z puli prywatnej, to routery mogą łatwo rozpoznać kiedy komputery chcą się łączyć z internetem. W takiej sytuacji brama internetowa wykorzystuje technikę maskowania adresów sieciowych NAT, która pozwala na łączenie się z internetem komputerom nie posiadającym własnych publicznych adresów IP. Komputery z adresami prywatnymi nie mogą pełnić roli serwerów sieciowych w Internecie chyba, że posłużymy się techniką maskowania adresów docelowych (DNAT).

Automatyczne przydzielanie adresów IPv4 może być realizowane poprzez zastosowanie protokołów DHCP, RARP, BOOTP, PPP.