IPv4 (ang. Internet Protocol version 4) – 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. Opis czwartej wersji protokołu IP znajduje się w RFC 791 ↓. W modelu TCP/IP protokół IPv4 znajduje się w warstwie Internetu, której odpowiada warstwa sieci w modelu OSI.
Spis treści
1 Nagłówek IP
2 Adres IP
2.1 Adresy i maski
2.2 Rozdzielanie adresów (Historyczne)
2.2.1 Rozdzielanie adresów (współczesne)
2.3 Prywatne adresy IPv4
2.4 Wykorzystanie adresów IPv4
3 Zobacz też
4 Przypisy
5 Linki zewnętrzne
Nagłówek IP
- Bity 0 – 3 4 – 7 8 – 13 14-15 16 – 18 19 – 31
0 Wersja Długość nagłówka Usługi zróźnicowane ECN Całkowita długość
32 Numer identyfikacyjny Flagi Przesunięcie
64 Czas życia Protokół warstwy wyższej Suma kontrolna nagłówka
96 Adres źródłowy IP
128 Adres docelowy IP
160 Opcje IP Wypełnienie
192
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. RFC 2474 ↓ oraz RFC 3260 ↓, 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[1].
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.
Nazwa Pierwszy oktet
dwójkowo Pierwszy adres IP Ostatni adres IP Liczba sieci Maksymalna liczba adresów
w sieci
A 0xxxxxxx 0.0.0.0 127.255.255.255 128 (7 bitów) 16 777 216 (24bity)
B 10xxxxxx 128.0.0.0 191.255.255.255 16 384 (14 bitów) 65 536 (16bitów)
C 110xxxxx 192.0.0.0 223.255.255.255 2 097 152 (21 bitów) 256 (8 bitów)
D 1110xxxx 224.0.0.0 239.255.255.255 nie zdefiniowano nie zdefiniowano
E 1111xxxx 240.0.0.0 255.255.255.255 nie zdefiniowano nie 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 – RFC 4632 ↓ (CIDR Classless Inter-Domain Routing) i RFC 1918 ↓. 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 ([1]).
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)
172.16.0.0 – 172.31.255.255 – dla sieci prywatnych dawniej z klasy B (maska zakresu: 255.240.0.0)
192.168.0.0 – 192.168.255.255 – dla sieci prywatnych dawniej z klasy C (maska zakresu: 255.255.0.0)
Adresy prywatne można wykorzystywać w routerach 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ą rozpoznać kiedy komputery chcą się łączyć z internetem. W takiej sytuacji brama internetowa wykorzystuje translację adresów sieciowych, 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.
W przypadku braku serwera DHCP w sieci, adres IP przydzielany jest z puli 169.254.0.1 – 169.254.255.254 z domyślną maską 255.255.0.0 przez mechanizm APIPA.
Wykorzystanie adresów IPv4
Początkowo wszystkie adresy IPv4 były zarządzane bezpośrednio przez IANA, która w zależności od wnioskowanych potrzeb przydzielała określoną pulę adresów klasy A, B lub C. Wielkie firmy, jak Xerox, Ford czy IBM automatycznie otrzymywały po ponad 16 mln adresów internetowych, nawet jeżeli tak duża liczba nie była im potrzebna. Jeżeli mała firma z kilkunastoma węzłami chciała podłączyć się do Internetu przyznawano jej adresy z klasy C. To z kolei dawało jej kontrolę nad ponad dwustoma adresami węzłów, z których nikt inny nie mógłby skorzystać. Ze względu na marnotrawstwo oraz niespodziewanie duże zapotrzebowanie na adresację internetową z całego świata zmieniono zasady i powołano do życia organizacje regionalne, których zadaniem stało się nadzorowanie wykorzystania dostępnych adresów. Jednym ze sposobów oszczędzania adresów stało się także ponowne wykorzystanie adresów, które z jakichś powodów zostały zwolnione. To już codzienna praktyka dostawców Internetu. W początkowym okresie (2004) powodowało to problemy[2]. Aktualnie cały internet oparty jest na routing-u bezklasowym CIDR, a klasy adresowe zastąpiono pulami adresowymi przyznawanymi dowolnie na podstawie adresu sieci i maski.
Obecnie pule adresowe przydzielane są organizacjom regionalnym, te dalej rozdzielają je do ISP, a następnie ISP przydzielają adresy swoim klientom. Duży nacisk kładzie się na wykorzystywanie mechanizmów NAT, umożliwiających korzystanie z jednego adresu zewnętrznego przez wiele urządzeń posiadających adresy lokalne. W ten sposób ogranicza się przydzielanie adresów urządzeniom (tj. drukarki, punkty dostępowe, itp.) działającym jedynie w obrębie zamkniętych sieci.
Istnieją koncepcje, według których każde urządzenie elektroniczne ma zostać podłączone do Internetu. W takiej sytuacji pula adresów IPv4 będzie stanowczo za mała. Z tego powodu następuje powolna migracja z protokołu IPv4 na IPv6, który zwiększy pulę dostępnych adresów 1029 razy.
W ramach puli adresów istnieje podział na podsieci (subnets). Rozmiar podsieci wyznaczany jest przez jej maskę. Najmniejszą podsiecią jest sieć składająca się z 4 adresów, największą ze 128[potrzebny przypis]. Dla sieci 4 komputerowej maska wynosi: 256 – 4 = 252 (NETMASK = 255.255.255.252). Dla tak wyznaczonej podsieci w przykładowej podsieci przydzielone jej adresy mają przeznaczanie:
NETWORK = 195.205.36.32 (Adres IP – przykładowa podsieć sieci klasy C przyznana przez dostawcę),
NETMASK = 255.255.255.252 (maska podsieci)
adresy komputerów = 195.205.36.33 i 195.205.36.34,
BROADCAST = 195.205.36.35 (adres rozgłoszeniowy)
W praktyce maska 255.255.255.252 oznacza, że do sieci tej można podłączyć 2 komputery i używana jest przez administratorów sieci komputerowych do spinania poszczególnych segmentów sieci.
Aby znaleźć adres rozgłoszeniowy, należy przekształcić Adres IP oraz maskę podsieci na system binarny:
Adres IP: 11000011 11001101 00100100 00100000
195 205 36 32
Maska podsieci: 11111111 11111111 11111111 11111100
255 255 255 252
Patrzymy na maskę i wpisujemy jedynki na tych pozycjach adresu IP, na których w masce są zera. To jest nasz adres rozgłoszeniowy (broadcast):
Broadcast 11000011 11001101 00100100 00100011
195 205 36 35
Mimo optymalizacji systemu przydzielania adresów pula wolnych adresów topnieje w tempie szybszym niż przypuszczano. W styczniu 2011 roku japoński instytut INTEC Systems Institute, Inc. ogłosił, że pula adresowa wyczerpie się 12 lutego 2011 roku[3]. Na stronie instytutu znajduje się licznik wolnych zasobów puli adresowej IPv4.
Zobacz wiadomość w serwisie Wikinews pt. wyczerpania się adresów IPv4
W dniu 3 lutego 2011 organizacja IANA przydzieliła regionalnym rejestratorom 5 ostatnich wolnych bloków adresowych z dawnej klasy A[4]. Oznacza to, że pula adresów IPv4, zarządzana przez IANA, została w całości wyczerpana. Operatorzy i przedsiębiorstwa w dalszym ciągu mogą otrzymywać adresy IP od regionalnych rejestratorów, aż do wyczerpania puli przez nich zarządzanej. Dalszy rozwój internetu zależy od przejścia na protokół IPv6.
25 listopada 2019 r. organizacja RIPE NCC poinformowała, że o godzinie 15.35 przyznała ostatnie adresy IPv4 z europejskiej puli
zrodło: