IPv4 () – 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 i tym podobne. IPv4 znajduje się obecnie w powszechnym użyciu. Dostępna jest również nowsza wersja – IPv6. Opis czwartej wersji protokołu IP znajduje się w . W modelu TCP/IP protokół IPv4 znajduje się w warstwie Internetu, której odpowiada warstwa sieci w modelu OSI.

Nagłówek IP +Bity 0 - 34 - 78 - 1314-1516 - 1819 - 310WersjaDługość nagłówkaUsługi zróźnicowaneECNCałkowita długość32Numer identyfikacyjnyFlagiPrzesunięcie64Czas życiaProtokół warstwy wyższejSuma kontrolna nagłówka96Adres źródłowy IP128Adres docelowy IP160Opcje IPWypełnienie192 Dane 

Wersja (4 bity) - (ang. Version) pole opisujące wersję protokołu, jednoznacznie definiujące format nagłówka. Długość nagłówka (4 bity) - (ang. Internet Header Length) długość nagłówka IP wyrażona w 32-bitowych słowach; minimalny, poprawny nagłówek ma długość co najmniej 5. Usługi zróżnicowane i ECN, dawniej Typ usługi (8 bitów) - zgodnie z oryginalną specyfikacją RFC 0791, (ang. Type of Services) pole wskazujące jaka jest pożądana wartość QoS dla danych przesyłanych w pakiecie. Na podstawie tego pola, routery ustawiają odpowiednie wartości transmisji. Jak wprowadzają nowsze opracowania, m.in. oraz , pole to zostało podzielone na Usługi zróżnicowane (ang. Differentiated Services, 6 bitów) oraz ECN (ang. Explicit Congestion Notification, 2 bity). Pierwsze trzy bity pola Usługi zróżnicowane informują o priorytecie (gdzie 111 to najwyższy, przeznaczony do sterowania siecią, a 000 - zwyczajny priorytet). Kolejne trzy bity, oznaczone: D - małe opóźnienie (ang. delay), T - duża przepustowość (ang. throughput) i R - wysoka niezawodność (ang. reliability), ustawione na wartość 1, oznaczają, że dla danego pakietu szczególnie ważny jest dany parametr. Bity pola ECN ustawione na wartość 1 informują o przeciążeniu bufora.

Całkowita długość pakietu (16 bitów) - (ang. Total Length) długość całego datagramu IP (nagłówek oraz dane); maksymalna długość datagramu wynosi 216 - 1 = 65535. Minimalna wielkość datagramu jaką musi obsłużyć każdy host wynosi 576 bajtów, dłuższe pakiety mogą być dzielone na mniejsze (fragmentacja). Numer identyfikacyjny (16 bitów) - (ang. Identification) numer identyfikacyjny, wykorzystywany podczas fragmentacji do określenia przynależności pofragmentowanych datagramów Flagi (3 bity) - (ang. Flag) flagi wykorzystywane podczas fragmentacji datagramów. Zawierają dwa używane pola: DF, które wskazuje, czy pakiet może być fragmentowany oraz MF, które wskazuje, czy za danym datagramem znajdują się kolejne fragmenty. Przesunięcie (13 bitów) - (ang. Fragment Offset) w przypadku fragmentu większego datagramu pole to określa miejsce danych w oryginalnym datagramie; wyrażone w jednostkach ośmiooktetowych Czas życia (8 bitów) - (ang. Time to live) czas życia datagramu. Zgodnie ze standardem liczba przeskoków przez jaką datagram znajduje się w obiegu. Jest zmniejszana za każdym razem, gdy datagram jest przetwarzany w routerze - jeżeli czas przetwarzania jest równy 0, datagram jest usuwany z sieci (nie przekazywany dalej) o czym nadawca usuniętego pakietu jest informowany zwrotnie z wykorzystaniem protokołu ICMP. Istnienie tej wartości jest konieczne, zapobiega krążeniu pakietów (patrz Burza broadcastowa) w sieci. Protokół warstwy wyższej (8 bitów) - (ang. Protocol) informacja o protokole warstwy wyższej, który jest przenoszony w polu danych datagramu IP. Suma kontrolna nagłówka (16 bitów) - (ang. Header Checksum) suma kontrolna nagłówka pakietu, pozwalająca stwierdzić czy został on poprawnie przesłany, sprawdzana i aktualizowana przy każdym przetwarzaniu nagłówka. Adres źródłowy (32 bity) i adres docelowy (32 bity) - (ang. Source/Destination IP Address) pola adresów nadawcy i odbiorcy datagramu IP. Opcje (32 bity) - (ang. Options) niewymagane pole opcji, opisujące dodatkowe zachowanie pakietów IP Wypełnienie - (ang. Padding) - opcjonalne pole wypełniające nagłówek tak, aby jego wielkość była wielokrotnością 32, wypełnione zerami.

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ć.

Adresy i maski W IPv4, czyli obecnym standardzie adresowania internetu, adres IP to liczba 32-bitowa (od 0 do 4294967295), zapisywana w porządku big endian. Liczba ta jest zazwyczaj zapisywana jako 4 oddzielne jej bajty, zwane oktetami, ponieważ w postaci binarnej mają one osiem bitów. Te osiem bitów daje 256 kombinacji, więc każdy oktet przedstawia liczbę od 0 do 255.

Najpopularniejszy sposób zapisu adresów IP, to przedstawianie ich jako 4 dziesiętnych liczb od 0 do 255 oddzielonych kropkami. W rzeczywistości komputery traktują adres Wikipedii jako liczbę 32-bitową: 3482223596. Taki zapis jest mało czytelny, wobec czego stosuje się podział adresu IP na cztery oktety. Adres Wikipedii zapisujemy binarnie: 11001111 10001110 10000011 11101100 po czym każdą grupę 8-bitów przekształcamy do postaci dziesiętnej: 207 142 131 236

Z adresowaniem IP wiąże się pojęcie maski sieciowej. Wyobraźmy sobie sieć złożoną z 3 komputerów o adresach: Komputer 1: 192.168.1.1 Komputer 2: 192.168.1.2 Komputer 3: 192.168.1.3 Początek adresu dla wszystkich z nich jest ten sam, a końcówka się zmienia. Aby ściśle zdefiniować adresy przynależne do danej sieci wymyślono pojęcie maski podsieci. Umówiono się, że określona liczba pierwszych bitów adresu IP ma być taka sama, a pozostałe bity w sieci mogą się różnić. W ten sposób powstaje proste kryterium, pozwalające komputerom na określenie swojego położenia na podstawie adresu. Maskę sieci zapisuje się podobnie jak adres IP. Dla przykładu 255.255.255.0 co binarnie daje: 11111111 11111111 11111111 00000000 255 255 255 0 Jeżeli komputery oprócz komunikacji w swojej sieci lokalnej mają łączyć się z internetem, to maska sieciowa staje się bardzo ważna. Gdy urządzenie sieciowe stwierdzi, że adres docelowy, z którym chce wymieniać dane nie pasuje do maski, to próbuje się z nim łączyć przez bramę sieciową. Porównywanie opiera się na zerowaniu w adresie bitów równych zeru w masce (logiczny AND bitów maski i adresu IP). Jeżeli komputer 3 łączy się komputerem 2, to wykonuje następujące operacje: Maska 11111111 11111111 11111111 00000000 255 255 255 0 Mój IP 11000000 10101000 00000001 00000011 192 168 1 3 Wynik a 11000000 10101000 00000001 00000000 192 168 1 0 Maska 11111111 11111111 11111111 00000000 255 255 255 0 Docelowy IP 11000000 10101000 00000001 00000010 192 168 1 2 Wynik b 11000000 10101000 00000001 00000000 192 168 1 0 Wynik a oraz Wynik b są równe wobec czego komputer 3 wie, że komputer 2 jest w tej samej podsieci. Jeżeli komputer 3 będzie chciał pobrać stronę z serwera Wikipedii to operacja porównania będzie następująca: Maska 11111111 11111111 11111111 00000000 255 255 255 0 Mój IP 11000000 10101000 00000001 00000011 192 168 1 3 Wynik a 11000000 10101000 00000001 00000000 192 168 1 0 Maska 11111111 11111111 11111111 00000000 255 255 255 0 IP Wikipedii 11001111 10001110 10000011 11101100 207 142 131 236 Wynik b 11001111 10001110 10000011 00000000 207 142 131 0 Wynik a, oraz wynik b są różne. W takiej sytuacji komputer 3 będzie się próbował połączyć z Wikipedią przez skonfigurowaną w nim bramę sieciową.

Rozdzielanie adresów (historyczne) UWAGA: Poniższa tabela uwzględnia adres sieci oraz adres rozgłoszeniowy jako adresy hostów. Poniższa tabelka nie uwzględnia adresów specjalnych, wykluczonych z dowolnego użycia. NazwaPierwszy oktetdwójkowoPierwszy adres IPOstatni adres IPLiczba sieciMaksymalna liczba adresów w sieci A0xxxxxxx0.0.0.0127.255.255.255128 (7 bitów)16 777 216 (24 bity)B10xxxxxx128.0.0.0191.255.255.25516 384 (14 bitów)65 536 (16 bitów)C110xxxxx192.0.0.0223.255.255.2552 097 152 (21 bitów)256 (8 bitów)D1110xxxx224.0.0.0239.255.255.255nie zdefiniowanonie zdefiniowanoE1111xxxx240.0.0.0255.255.255.255nie zdefiniowanonie zdefiniowano Od roku 1997 podział na klasy sieci jest nieaktualny i nieużywany. Obecnie adresy IPv4 są przydzielane bez zwracania uwagi na klasy sieci - według założeń CSDIR Classless Routing - (CIDR Classless Inter-Domain Routing) i . Podział nie jest już też używany przez urządzenia, role klas przejęły maski. Obecnie cały internet funkcjonuje na routingu bezklasowym (CSDIR). Poniższy podział na klasy (A,B,C,D) jest historyczny:

W adresach klasy A, tylko pierwszy oktet wskazuje adres sieci; pozostałe trzy oktety opisują unikatowy adres węzła w sieci. Choć jest tylko 126 adresów sieci klasy A, każdy taki adres może obejmować w przybliżeniu 17 milionów węzłów. Adresy klasy A zostały przyznane organizacjom rządowym i wielkim instytucjom.

Adresy klasy B używają pierwszych dwóch oktetów do wskazania adresu sieci i ostatnich dwóch jako unikatowego węzła sieci. Z uwagi na większą długość, adresów klasy B jest więcej, ale w ramach każdego można unikatowo opisać tylko około 65 000 węzłów.

W adresach klasy C używa się pierwszych trzech oktetów jako adresu sieciowego i tylko ostatniego oktetu jako adresu węzła. Stąd istnieje wiele dostępnych adresów klasy C, ale każdy z nich może być użyty tylko do 254 węzłów.

Rozdzielanie adresów (współczesne) Ze względu na skończoną ilość adresów oraz konieczność ich agregacji dla celów uproszczenia trasowania powstały Regionalne Rejestry Internetowe (ang. RIR) – organizacje zajmujące się przydzielaniem puli adresów dla poszczególnych dostawców Internetu (ang. ISP). Organizacją nadrzędną jest Agencja Zarządzania Numeracją Internetową (ang. IANA), która zajmuje się dystrybucją poszczególnych pól adresowych. Do organizacji regionalnych należą: APNIC (ang. Asia Pacific Network Information Centre) – dla rejonu Azji i Pacyfiku, ARIN (ang. American Registry for Internet Numbers) – dla rejonu Ameryki Północnej, LACNIC (ang. Regional Latin-American and Caribbean IP Address Registry) – dla rejonu Ameryki Łacińskiej i wysp Karaibskich, RIPE (fr. Réseaux IP Européens) – dla rejonu Europy, Bliskiego Wschodu i centralnej Azji, AfriNIC – dla rejonu Afryki (Rozpoczęła działanie 22 lutego 2005, wcześniej dystrybucją zajmowały się RIPE NCC, APNIC i ARIN.

Jeżeli ISP potrzebuje więcej adresów zwraca się do właściwej organizacji regionalnej i otrzymuje kolejny zakres numerów IP. Dla przykładu ARIN przydzielił adresy od 64.78.200.0 do 64.78.207.255 firmie Verado, Inc, która przekazała pulę od 64.78.205.0 do 64.78.205.15 firmie Bomis. Bomis adres 64.78.205.6 udostępnił Wikipedii.

Powszechnie panuje pogląd, że pula dostępnych adresów jest na wyczerpaniu, jednak w oficjalnym zestawieniu zajętości adresacji IP jest jeszcze wiele bloków zarezerwowanych przez IANA (http://www.iana.net/assignments/ipv4-address-space).

Adresy należące do puli 127.0.0.0/8 (127.x.x.x) są przypisane do urządzenia loopback i zawsze odnoszą się do komputera lokalnego, tak zwany localhost. Adres 0.0.0.0 to adres domyślny (ang. default).

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 dawniej z klasy A (maska zakresu: 255.0.0.0)