Protokół IP
Protokół IP (Internet Protocol) – najważniejszy protokół transportowy sieci Internet. Jego jednostką danych jest datagram (pakiet). Protokół IP definiuje format i znaczenie pól pakietu, określa schemat adresowania stacji w Internecie, realizuje trasowanie (routing) pakietów, czyli wyznacza trasy ich poruszania się, zarządza fragmentacją i defragmentacją pakietów w sieciach o różnym domyślnym rozmiarze datagramu MTU (Maximum Transmission Unit).
Protokół IP jest bezpołączeniowy (nie ustanawia połączenia i nie sprawdza gotowości odległego komputera do transmisji) i niepewny (nie zapewnia wykrywania i korekcji błędów transmisji).
MAC header |
IP header |
DANE |
Datagram IP |
|
Nagłówek – bity |
słowa |
0 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
1 |
Wersja |
IHL |
Typ usługi |
Długość całkowita |
2 |
Identyfikator |
Flagi |
Przesunięcie frag. |
3 |
Czas życia |
Protokół |
Suma kontrolna |
4 |
Adres źródła |
5 |
Adres przeznaczenia |
6 |
Opcje |
Uzupełnienie |
|
DANE |
- Wersja (Version) – nr wersji protokołu IP, najczęściej spotykane oznaczenie to IPv4.
IHL (Internet Header Length) – długość nagłówka w słowach 32-bitowych, min. 5.
- Typ usługi (TOS – Type of Service) – definiuje pierwszeństwo, opóźnienie, przepustowość, niezawodność, pole najczęściej ignorowane przez routery.
- Długość całkowita (Datagram Length) – długość całego pakietu IP (nagłówek + dane) w bajtach.
- Identyfikator (Identification) – wyznacza fragmenty tworzące cały datagram.
- Flagi (Flags) sterujące: bit 0 – zawsze 0, bit 1 (Dont Fragment) – 0/1 (można/nie można fragmentować), bit 2 (More Fragment) – 0 (ostatni lub jedyny fragment) lub 1 (jeden z wielu fragmentów).
- Przesunięcie fragmentacji (Fragment offset) (13 bitów) – pole wskazujące miejsce danego fragmentu w stosunku do początku całego datagramu podawane w jednostkach 8 bajtowych.
Na podstawie pól Identyfikator, Flagi i Przesunięcie fragmentacji odbiorca łączy pofragmentowane datagramy w całość.
- Czas życia (TTL – Time-to-Live) – pole zawierająca max. czas w sekundach pozostawania datagramu w Internecie, jego wartość jest zmniejszana o jeden po każdym przejściu przez router.
- Protokół (Protocol) – wskazuje nr protokołu warstwy wyższej, do którego przekazana zostaną dane; numery protokołów w Linuksie zawarte są w pliku /etc/protocols.
- Suma kontrolna (Header Check) – przeliczana i ustawiana za każdym razem, kiedy nagłówek jest przetwarzany.
- Adres źródła (Source Address) i adres przeznaczenia (Destination Address) – adresy IP nadawcy i odbiorcy.
- Opcje (Options) – pole o zmiennej długości zawierające informacje m.in. o zachowaniu w przypadku fragmentacji i routingu. Jeżeli pole opcji jest mniejsze od słowa, zostaje uzupełnione do 32 bitów (Uzupełnienie).