Protokół IP nie posiada mechanizmów sygnalizujących błędy oraz mechanizmów umożliwiających kontrolowanie przepływu pakietów. Z tego względu zgłaszaniem problemów z przesyłaniem datagramów oraz sterowaniem zajmuje się protokół ICMP.

Sam protokół IP został opracowany do działania w sytuacjach ekstremalnych, np. w trakcie wojny. W normalnych warunkach jego funkcja sprowadza się do wyboru optymalnej trasy i przesyłania nią pakietów. W przypadku wystąpienia awarii, na którymś z połączeń protokół będzie próbował dostarczyć pakiety trasami alternatywnymi (nie zawsze optymalnymi). Protokół IP jest protokołem bezpołączeniowym.

image.png

Schemat pakietu

IMG_3702(1).JPEG

SŁOWO → 4 BAJTY

VER → wersja (IPv4/IPv6)

HLEN - długość nagłówka datagramu, mówi ile jest słów (5, 6).

Service Type – typ usługi, poziom ważności, jaki został nadany przez protokół warstwy wyższej (pierwsze trzy bity) 0-normalny, 7-najwyższy. 4 bit to prośba o krótki czas oczekiwania, 5 bit to prośba o przesyłanie danych szybkimi łączami, 6 bit to prośba o dużą pewność przesyłania danych. Bity 7 i 8 - nieużywane.

Total length - długość całego pakietu. Datagram - nagłowek = wartość pola danych (576B-65535B).

Identification – identyfikator, jest to numer sekwencyjny bieżącego datagramu.

Flags – pole flagi (1 bit jest zawsze 0; 2 bit = 0 ? pakiet może być podzielony, pakiet nie może być podzielony; 3 bit = 1 ? jest to ostatni pakiet, jest to któryś pakiet z wnętrza).

Fragmentation offset - przesunięcie fragmentu.

Time to live – znacznik życia pakietu, każde przejście przez router = -1 życie.

Protocol – kod protokołu warstwy wyższej (transportowej), 1=ICMP, 2=IGMP, 6=TCP, 17=UDP.

Header checksum – suma kontrolna, przepisywana przez każdy router.

2 bit = 0 ? pakiet może być podzielony, pakiet nie może być podzielony; 3 bit = 1 ? jest to ostatni pakiet, jest to któryś pakiet z wnętrza). (tutaj javascript, od Ivana → patrzeć obrazek niżej)

Gelbcx66.jpg

Options → długość jednego, dwóch, trzech słów

Data → tu są przesyłane dane lub inne informacje z innych warstw, maksymalna długość 64KB.