Ponieważ protokół IP nie jest niezawodny, stos protokołów TCP/IP zapewnia wiadomościom wysłanie jeśli zdarzą się pewne błędy. Komunikaty wysyłane są za pomocą usług ICMP. Należy zauważyć, iż celem tych wiadomości jest informowanie zwrotne nadawcy o realizowanej obsłudze przesyłania pakietu, nie zaś zapewnienie niezawodności protokołowi IP. Wiadomości ICMP nie są wymagane i są często blokowane w sieciach z powodów bezpieczeństwa.

Protokół ICMP jest dostępny dla obu protokołów IPv4 oraz IPv6. ICMPv4 to protokół powiadomień dla IPv4. ICMPv6 dostarcza identycznych usług dla IPv6, ale zawiera również dodatkowe funkcjonalności. W tym kursie termin ICMP będzie odnosił się zarówno do ICMPv4 jak i ICMPv6.

Rodzajów komunikatów ICMP i powodów dlaczego są wysyłane jest wiele. W tym miejscu zajmiemy się kilkoma najbardziej typowymi komunikatami.

Komunikaty ICMP wspólne dla ICMPv4 oraz ICMPv6 to:

Potwierdzenie dostępności hosta

Wiadomość echo ICMP może zostać użyta w celu sprawdzenia, czy określony host w danym momencie jest dostępny w sieci. Host lokalny wysyła żądanie echa (ICMP Echo Request) do hosta docelowego. Jeśli host docelowy jest dostępny, odpowiada komunikatem Echo Reply. Kliknij na rysunku przycisk Odtwórz aby zobaczyć animację ICMP Echo Request/Echo Reply. Ten sposób wykorzystania komunikatu ICMP jest podstawą funkcji ping.

Przeznaczenie lub usługa niedostępna

Kiedy host lub brama otrzymują pakiet, który nie mogą nigdzie dostarczyć, mogą użyć komunikatu ICMP cel nieosiągnięty (ang. Destination Unreachable) w celu powiadomienia źródła pakietu, że host docelowy lub usługa jest niedostępna. Wiadomość będzie zawierać kod, który wskazuje dlaczego pakiet nie mógł być dostarczony.

Niektóre z kodów komunikatu Destination Unreachable dla ICMPv4 to:

Uwaga: ICMPv6 ma podobne, ale lekko różniące się wartości kodów dla komunikatów Destination Unreachable.

Przekroczony czas

Komunikat ICMP przekroczony czas używany jest przez router aby poinformować, że pakiet nie może być przesłany dalej z powodu obniżenia wartości pola Czas życia (ang. Time to Live, TTL) w pakiecie do 0. Jeśli router otrzymuje pakiet i obniżając wartość pola TTL w pakiecie IPv4 otrzymuje wartość 0, niszczy pakiet i wysyła komunikat przekroczony czas na adres źródłowy pakietu.

ICMPv6 również wysyła komunikat przekroczono czas jeśli router nie może przesłać dalej pakietu IPv6 z tego samego powodu. IPv6 nie ma pola TTL, używa natomiast pola ograniczenia liczby przeskoków w celu określenia czy pakiet wygasł.

Przekierowanie trasy

Router może używać komunikatu o przekierowaniu (ang. ICMP Redirect Message) w celu powiadomienia hostów pracujących w sieci o lepszej trasie do konkretnej sieci docelowej. Wiadomość ta może być wykorzystana tylko w sytuacji, gdy host źródłowy jest w tej samej sieci co obie bramy.

Oba protokoły ICMPv4 oraz ICMPv6 używają tego komunikatu.