Bien que le protocole IP ne soit pas un protocole fiable, la suite TCP/IP permet d'envoyer des messages si certaines erreurs se produisent. Ces messages sont envoyés via les services du protocole ICMP. Ces messages ont pour objectif de fournir des commentaires sur les problèmes liés au traitement de paquets IP dans certaines circonstances. Les messages ICMP ne sont pas obligatoires et sont souvent interdits au sein des réseaux pour des raisons de sécurité.
Le protocole ICMP est disponible pour IPv4 et pour IPv6. ICMPv4 est le protocole de message des réseaux IPv4. L'ICMPv6 fournit ces mêmes services pour l'IPv6, mais inclut des fonctionnalités supplémentaires. Dans ce cours, le terme ICMP est utilisé pour faire référence à l'ICMPv4 et à l'ICMPv6.
Il existe différents types de messages ICMP, et les raisons pour lesquelles ils sont envoyés sont très diverses. Nous décrirons les messages les plus courants.
Les messages ICMP communs à ICMPv4 et à ICMPv6 sont notamment les suivants :
- Host confirmation (Confirmation de l'hôte)
- Destination or Service Unreachable (destination ou service inaccessible)
- Time exceeded (Délai dépassé)
- Route redirection (Redirection de la route)
Host Confirmation (Confirmation de l'hôte)
Un message ICMP Echo (Écho ICMP) permet de déterminer si un hôte est fonctionnel. L'hôte local envoie un message ICMP Echo Request (Requête d'écho) à un autre hôte. Si l'hôte est disponible, l'hôte de destination répond en envoyant une réponse d'écho. Dans la figure ci-contre, cliquez sur le bouton Lecture pour afficher une animation concernant les requêtes et les réponses d'écho ICMP. L'utilisation de messages ICM Echo est à la base de l'utilitaire ping.
Destination or Service Unreachable (destination ou service inaccessible)
Lorsqu'un hôte ou une passerelle reçoit un paquet impossible à acheminer, il ou elle peut utiliser un message ICMP de destination inaccessible pour avertir la source que la destination ou le service est inaccessible. Ce message comprend un code indiquant pourquoi le paquet n'a pas pu être acheminé.
Certains des codes de destination inaccessible pour l'ICMPv4 sont :
- 0 – réseau inaccessible.
- 1 – hôte inaccessible.
- 2 – protocole inaccessible.
- 3 – port inaccessible.
Remarque : l'ICMPv6 a des codes légèrement différents pour des messages de destination inaccessible.
Dépassement du délai
Un message de dépassement de délai ICMPv4 est utilisé par un routeur pour indiquer qu'il ne peut pas transférer un paquet car le champ TTL de durée de vie du paquet a atteint 0. Si un routeur reçoit un paquet et décrémente le champ TTL de durée de vie du paquet IPv4 pour atteindre zéro, il abandonne le paquet et envoie un message de dépassement de délai à l'hôte source.
Le protocole ICMPv6 envoie également un message de dépassement de délai si le routeur ne peut pas transmettre un paquet IPv6 en raison de son expiration. Les paquets IPv6 n'ont pas de champ de durée de vie TTL : le champ de limite de nombre de sauts est utilisé pour déterminer si le paquet a expiré.
Route redirection (Redirection de la route)
Un routeur peut envoyer un message de redirection ICMP Redirect pour notifier l'hôte sur un réseau, qu'une meilleure route est disponible jusqu'à une destination particulière. Ce message ne peut être utilisé que si l'hôte source appartient au même réseau physique que les deux passerelles.
L'ICMPv4 et l'ICMPv6 utilisent tous deux des messages de redirection de route.