Le protocole ICMP


 

La gestion des erreurs


Le protocole ICMP (Internet Control Message Protocol) est un protocole qui permet de gérer les informations relatives aux erreurs aux machines connectées. Etant donné le peu de contrôles que le protocole IP réalise, il permet non pas de corriger ces erreurs mais de faire part de ces erreurs aux protocoles des couches voisines. Ainsi, le protocole ICMP est utilisé par tous les routeurs, qui l'utilisent pour signaler une erreur (appelé Delivery Problem).
 

Les messages ICMP sont encapsulés


Les messages d'erreur ICMP sont transportés sur le réseau sous forme de datagramme, comme n'importe quelle donnée. Ainsi, les messages d'erreur peuvent eux-mêmes être sujet d'erreurs.

Toutefois en cas d'erreur sur un datagramme transportant un message ICMP, aucun message d'erreur n'est délivré pour éviter un effet "boule de neige" en cas d'incident sur le réseau.

Voici à quoi ressemble un message ICMP encapsulé dans un datagramme IP :

En-têteMessage ICMP
Type(8 bits)Code(8 bits)Checksum(16 bits)Message(taille variable)

 

Signification des messages ICMP


TypeCodeMessageSignification du message
80Demande d'ECHOCe message est utilisé lorsqu'on utilise la commande PING. Cette commande, permettant de tester le réseau, envoie un datagramme à un destinataire et lui demande de le restituer
30Destinataire inaccessibleLe réseau n'est pas accessible
31Destinataire inaccessibleLa machine n'est pas accessible
32Destinataire inaccessibleLe protocole n'est pas accessible
33Destinataire inaccessibleLe port n'est pas accessible
34Destinataire inaccessibleFragmentation nécessaire mais impossible à cause du drapeau (flag) DF
35Destinataire inaccessibleLe routage a échoué
36Destinataire inaccessibleRéseau inconnu
37Destinataire inaccessibleMachine inconnue
38Destinataire inaccessibleMachine non connectée au réseau (inutilisé)
39Destinataire inaccessibleCommunication avec le réseau interdite
310Destinataire inaccessibleCommunication avec la machine interdite
311Destinataire inaccessibleRéseau inaccessible pour ce service
312Destinataire inaccessibleMachine inaccessible pour ce service
311Destinataire inaccessibleCommunication interdite (filtrage)
40Source QuenchLe volume de données envoyé est trop important, le routeur envoie ce message pour prévenir qu'il sature afin de demander de réduire la vitesse de transmission
50Redirection pour un hôteLe routeur remarque que la route d'un ordinateur n'est pas optimale et envoie l'adresse du routeur à rajouter dans la table de routage de l'ordinateur
51Redirection pour un hôte et un service donnéLe routeur remarque que la route d'un ordinateur n'est pas optimale pour un service donné et envoie l'adresse du routeur à rajouter dans la table de routage de l'ordinateur
52Redirection pour un réseauLe routeur remarque que la route d'un réseau entier n'est pas optimale et envoie l'adresse du routeur à rajouter dans la table de routage des ordinateurs du réseau
53Redirection pour un réseau et un service donnéLe routeur remarque que la route d'un réseau entier n'est pas optimale pour un service donné et envoie l'adresse du routeur à rajouter dans la table de routage des ordinateurs du réseau
110Temps dépasséCe message est envoyé lorsque le temps de vie d'un datagramme est dépassé. L'en-tête du datagramme est renvoyé pour que l'utilisateur sache quel datagramme a été détruit
111Temps de ré-assemblage de fragment dépasséCe message est envoyé lorsque le temps de ré-assemblage des fragments d'un datagramme est dépassé.
120En-tête erronnéCe message est envoyé lorsqu'un champ d'un en-tête est erronné. La position de l'erreur est retournée
130Timestamp requestUne machine demande à une autre son heure et sa date système (universelle)
140Timestamp replyLa machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données
150Demande d'adresse réseauCe message permet de demander au réseau une adresse IP
160Réponse d'adresse réseauCe message répond au message précédent
170Demande de masque de sous-réseauCe message permet de demander au réseau un masque de sous-réseau
180Réponse de masque de sous-réseauCe message répond au message précédent
170Timestamp replyLa machine réceptrice donne son heure et sa date système afin que la machine émettrice puisse déterminer le temps de transfert des données

 

Plus d'informations


Pour plus d'informations sur le protocole ICMP, le mieux est de se reporter à la RFC 792 expliquant de manière détaillée le protocole :

Réalisé sous la direction de , fondateur de CommentCaMarche.net.

Ce document intitulé «  Le protocole ICMP  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.