Deși IP nu este un protocol fiabil, suita TCP/IP se asigură că mesajele sunt trimise în cazul în care apar anumite erori. Aceste mesaje sunt trimise utilizând și serviciile ICMP. Scopul acestor mesaje este să furnizeze feedback cu privire la probleme care au legătură cu procesarea pachetelor IP în anumite situații, nu ca IP-ul să devină fiabil. Mesajele ICMP nu sunt necesare și deseori nu sunt permise într-o rețea din motive de securitate.

ICMP este disponibil și pentru IPv4 și pentru IPv6. ICMPv4 este protocolul de mesagerie pentru IPv4. ICMPv6 asigură aceleași servicii pentru IPv6 dar include și funcționalitate suplimentară. În acest curs, termenul ICMP va fi folosit atunci când se face referire la ICMPv4, dar si ICMPv6.

Tipurile de mesaje ICMP și motivele pentru care sunt trimise sunt extinse. Vom discuta câteva din mesajele cele mai uzuale.

Mesajele ICMP comune pentru ICMPv4 și ICMPv6 includ:

Host Confirmation

Un mesaj Echo ICMP poate fi utilizat pentru a determina dacă un host este funcțional. Hostul local trimite un ICMP Echo Request la un host. Dacă hostul este disponibil, hostul de destinație răspunde cu un Echo Reply. În figură, dați clic pe butonul Play pentru a vedea o animație cu ICMP Echo Request/Echo Reply. Această utilizare a mesajelor Echo ICMP reprezintă baza utilitarului ping.

Destination or Service Unreachable

Atunci când un host sau un gateway primește un pachet ce nu poate fi livrat, poate utiliza un mesaj ICMP Destination Unreachable pentru a notifica sursa că destinația sau serviciul nu poate fi accesat. Mesajul va include un cod care indică de ce pachetul nu poate fi livrat.

Câteva din codurile de Destination Unreachable pentru ICMPv4 sunt:

Notă:ICMPv6 are coduri similare dar ușor diferite față de mesajele Destination Unreachable.

Time Exceeded

Un mesaj ICMPv4 Time Exceeded este utilizat de un router pentru a indica faptul că pachetul nu poate fi trimis deoarece câmpul TTL al pachetului a scăzut la 0. Dacă un router primește un pachet și decrementează câmpul TTL din pachetul IPv4 la 0, descarcă pachetul și trimite un mesaj Time Exceeded către hostul sursă.

ICMPv6 trimite un mesaj de Time Exceeded și în situația în care routerul nu poate trimite un pachet IPv6 deoarece pachetul a expirat. IPv6 nu are un câmp TTL; folosește câmpul cu limita de hop pentru a determina dacă pachetul a expirat.

Route Redirection

Un router poate trimite mesajul ICMP Redirect Message pentru a anunța hostul dintr-o rețea că este disponibilă o rută mai bună pentru o anumită destinație. Acest mesaj poate fi folosit doar când hostul sursă este în aceeași rețea cu ambele gateway-uri.

Atât ICMPv4, cât și ICMPv6 folosesc mesaje de redirecționare a rutei.