Le protocole ICMP (Internet Control Message Protocol) est un protocole de réseau pour la mise en réseau IP (Internet Protocol). ICMP transfère les informations de contrôle relatives à l'état du réseau lui-même plutôt qu'aux données d'application. Un réseau IP nécessite ICMP pour fonctionner correctement.
Les messages ICMP sont un type spécifique de message IP distinct de TCP et UDP.
L'exemple le plus connu de la messagerie ICMP en pratique est l'utilitaire ping, qui utilise ICMP pour sonder la réactivité des hôtes distants et mesurer le temps de réponse global des messages de sonde.
ICMP prend également en charge d’autres utilitaires, tels que traceroute, qui identifient des périphériques de routage intermédiaires ("sauts") sur le chemin entre une source et une destination données.
ICMP contre ICMPv6
La définition originale des réseaux IPMP pris en charge par Internet Protocol version 4 (IPv4). IPv6 incorpore une forme révisée du protocole classiquement appelé ICMPv6 pour le distinguer du protocole ICMP d'origine (parfois appelé ICMPv4).
Types de message ICMP et formats de message
Les messages ICMP transportent des données essentielles au fonctionnement et à l'administration d'un réseau informatique. Le protocole signale des problèmes tels que des périphériques qui ne répondent pas, des erreurs de transmission et des problèmes de congestion du réseau.
Comme d'autres protocoles de la famille IP, ICMP définit un en-tête de message. L'en-tête contient quatre champs dans la séquence suivante:
- Type (8 bits)
- Code (8 bits)
- Somme de contrôle (16 bits)
- Données ICMP (32 bits)
ICMP définit une liste de types de messages spécifiques et leur attribue un numéro unique.
Comme le montre le tableau ci-dessous, ICMPv4 et ICMPv6 fournissent des types de messages courants (mais souvent avec des numéros différents), ainsi que des messages uniques pour chacun. (Les types de message courants peuvent également varier légèrement dans leur comportement entre les versions IP).
v4 # | v6 # | Type | La description |
---|---|---|---|
0 | 129 | Réponse d'écho | Message envoyé en réponse à une demande d'écho (voir ci-dessous) |
3 | 1 | Destination inaccessible | Envoyé en réponse à un message IP non distribuable pour une raison quelconque. |
4 | - | Éteindre la source | Un périphérique peut renvoyer ce message à un expéditeur qui génère du trafic entrant à un rythme plus rapide que son traitement. (Remplacé par d'autres méthodes.) |
5 | 137 | Message de redirection | Les périphériques de routage peuvent générer cette méthode s'ils détectent qu'un changement d'itinéraire demandé doit être modifié pour un message IP. |
8 | 128 | Demande d'écho | Message envoyé par les utilitaires ping pour vérifier la réactivité d'un périphérique cible |
11 | 3 | Temps écoulé | Les routeurs ont généré ce message lorsque les données entrantes ont atteint leur limite de nombre de "sauts". Utilisé par traceroute. |
12 | - | Problème de paramètre | Généré lorsqu'un appareil détecte des données corrompues ou manquantes dans un message IP entrant. |
13, 14 | - | Horodatage (demande, réponse) | Conçu pour synchroniser les horloges entre deux périphériques via IPv4, (remplacé par d'autres méthodes plus fiables.) |
- | 2 | Paquet trop gros | Les routeurs génèrent ce message lors de la réception d'un message qui ne peut pas être transmis à sa destination en raison du dépassement d'une longueur maximale |
Le protocole remplit les champs Code et Données ICMP en fonction du type de message choisi pour partager des informations supplémentaires. Par exemple, un message Destination inaccessible peut avoir de nombreuses valeurs de code différentes selon la nature de l'échec.