Pile de protocoles | ||||||||||||||
| ||||||||||||||
Modèle Internet Modèle OSI |
Internet Control Message Protocol est l'un des protocoles fondamentaux constituant la suite de protocoles Internet. Il est utilisé pour véhiculer des messages de contrôle et d'erreur pour cette suite de protocoles, par exemple lorsqu'un service ou un hôte est inaccessible.
ICMP se situe au même niveau que le protocole IP bien qu'il ne fournisse pas les primitives de service habituellement associées à un protocole de couche réseau. Son utilisation est habituellement transparente du point de vue des applications et des utilisateurs présents sur le réseau.
Cet article traite d'ICMP version 4 qui accompagne IPv4. Pour la version 6, voir Internet Control Message Protocol V6.
ICMP (Internet Control Message Protocol - Protocole de message de contrôle sur Internet) est un protocole de niveau 3 sur le modèle OSI, qui permet le contrôle des erreurs de transmission. En effet, comme le protocole IP ne gère que le transport des paquets et ne permet pas l'envoi de messages d'erreur, c'est grâce à ce protocole qu'une machine émettrice peut savoir qu'il y a eu un incident de réseau. Il est détaillé dans la RFC 792.
Type : 0
Code : 0
Message : réponse d'ECHO (echo-reply)
Signification : réponse au message de type 8
Type : 3
Code : 0 à 15
Message : destinataire inaccessible
Le code dépend de la cause du problème, respectivement :
Type : 4
Code : 0
Message : extinction de la source (source quench)
Signification : Un routeur de transit ou la machine d'extrémité demande à l'émetteur de ralentir le rythme des envois de trame. Les routeurs de transit stockent les trames reçues dans un buffer avant de les router (store and forward). Si ce buffer venait à être plein ou si la charge CPU du routeur dépassait un seuil (ou toute autre motif de congestion) il ne pourrait plus assumer le routage des paquets à venir. Ils seraient alors perdus silencieusement. Afin que cela ne se produise pas n'importe quel nœud de transit peut ainsi informer l'émetteur de ralentir la cadence. Et cela pour n'importe quel protocole de la couche 4 (UDP, TCP, …).
NB : Ce n'est pas redondant avec le mécanisme d'annonce de la taille de la fenêtre glissante d'une connexion TCP car cette dernière ne peut être contrôlée que par le destinataire (sauf proxification) or ici il s'agit des routeurs de transit.
Type : 5
Code : 0 à 3
Message : redirection pour
Signification : le routeur remarque que la route qu'a choisi l'ordinateur émetteur n'est pas optimale car le prochain routeur à passer pour atteindre le destinataire se trouve sur le même réseau que celui de l'ordinateur émetteur. Le routeur envoie l'adresse du prochain routeur à ajouter dans la table de routage de l'ordinateur émetteur de façon à ce que le prochain envoi vers le même destinataire ne passe pas inutilement par lui. Cette option est souvent bloquée dans les réseaux des entreprises parcequ'elle peut être utilisée par un attaquant pour rediriger le flux de données d'une victime vers sa propre machine.
Type : 8
Code : 0
Message : demande d'ECHO (echo-request)
Signification : demande de renvoi d'informations, avec la commande ping par exemple
Type : 11
Code : 0 ou 1
Message : temps dépassé ou temps de ré-assemblage des fragments d'un datagramme dépassé
Signification : ce message est envoyé lorsque le temps de vie d'un datagramme ou le temps de réassemblage des parties 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
Type : 12
Code : 0
Message : en-tête erroné
Signification : ce message est envoyé lorsqu'un champ d'un en-tête est erroné. La position de l'erreur est retournée
Type : 13
Code : 0
Message : timestamp request
Signification : une machine demande à une autre son heure et sa date système (universelle)
Type : 14
Code : 0
Message : timestamp reply
Signification : la 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
Type : 15
Code : 0
Message : demande d'adresse réseau
Signification : ce message permet de demander au réseau une adresse IP
Type : 16
Code : 0
Message : réponse d'adresse réseau
Signification : ce message répond au message précédent
Type : 17
Code : 0
Message : demande de masque de sous-réseau
Signification : ce message permet de demander au réseau un masque de sous-réseau
Type : 18
Code : 0
Message : réponse de masque de sous-réseau
Signification : ce message répond au message précédent