Le protocole ICMP (Internet Control Message Protocol) est un protocole de troisième couche (couche réseau) du modèle OSI à sept couches. Le protocole diagnostique les problèmes de connectivité réseau ou de transmission de données entre les appareils. Il aide en envoyant, en recevant et en traitant les messages ICMP pour signaler les problèmes de connectivité au périphérique réseau source.
Par conséquent, l'objectif principal du protocole ICMP est de signaler les erreurs au niveau de la couche réseau. Cependant, des acteurs malveillants peuvent manipuler sa fonctionnalité pour lancer des attaques telles que le déni de service distribué (DDoS) et les attaques Ping of Death. Ici, vous découvrirez le protocole ICMP, son cas d'utilisation et les paramètres importants pour comprendre les messages ICMP.
Comment fonctionne ICMP ?
Les routeurs utilisent le protocole ICMP pour effectuer la gestion du réseau et le diagnostic des problèmes. Il génère et envoie des messages d'erreur à l'appareil émetteur lorsque le réseau désactive la livraison des paquets à l'appareil de destination. Ces messages d'erreur incluent le temps dépassé, le problème de paramètre, la destination inaccessible, la congestion du réseau, etc.
Par exemple, lorsqu'un expéditeur envoie des données d'un appareil à l'appareil de destination sous la forme d'un datagramme IP, il transite par plusieurs routeurs ou appareils intermédiaires. À l'occasion, il peut y avoir une erreur dans la transmission de ce datagramme IPV4. Par conséquent, les messages ICMP sont divisés en deux grandes catégories: les messages d'erreur et les messages de requête.
Messages de rapport d'erreur
Voici les messages auxquels le routeur ou l'hôte intermédiaire peut être confronté lors du traitement des datagrammes :
- Temps écoulé: Le paquet ICMP a un paramètre de durée de vie qui, lorsqu'il atteint 0, le routeur ou l'hôte rejette le datagramme et envoie un message d'erreur de dépassement de temps. Le message est également envoyé lorsque la destination ne reçoit pas tous les fragments de données.
- Destination inaccessible: Le périphérique initiateur de la connexion reçoit un message d'erreur de destination inaccessible lorsque le routeur ou l'hôte intermédiaire ne parvient pas à le transmettre. Par conséquent, les appareils rejettent le datagramme.
- Éteindre la source: Lorsque les appareils ne parviennent pas à livrer le datagramme en raison de la congestion du réseau, ils envoient un "message d'extinction de source" ICMP à l'expéditeur du message. Le message de rapport d'erreur ajoute un contrôle de flux dans la couche réseau en informant le périphérique source de l'encombrement du chemin et en ralentissant le processus d'envoi des données.
- Redirection : Un routeur dans un chemin non optimal redirige le paquet vers un routeur avec un chemin optimal entre la source et la destination. En tant que tel, il met à jour la source sur le changement de son itinéraire.
- Problème de paramètre : Le périphérique source reçoit ce message lorsqu'il y a une valeur manquante dans l'en-tête du datagramme. Par exemple, la différence entre la somme de contrôle calculée à la destination et à la source génère ce message d'erreur ICMP.
Messages de requête
Les messages de requête apparaissent par paires et fournissent des informations spécifiques des dispositifs intermédiaires au dispositif source.
- Message de demande d'écho et de réponse d'écho : Ces messages aident à résoudre les problèmes de diagnostic du réseau.
- Demande d'horodatage et réponse : Ces demandes d'horodatage et ces messages de réponse aident à déterminer le temps d'aller-retour entre les appareils.
Comprendre les paramètres ICMP
Les données des messages ICMP sont encapsulées sous l'en-tête IP, ce qui signifie que l'en-tête du datagramme ICMP vient après les informations IPv4/v6. La première partie de l'en-tête de paquet ICMP contient les paramètres qui aident les périphériques réseau à déterminer le message d'erreur ou de requête.
Parmi les 32 premiers bits, les 8 premiers bits déterminent le type de message, les 8 bits suivants déterminent le code du message, et les bits restants contiennent des informations relatives à l'intégrité des données. Par conséquent, les trois champs d'information sont: les types ICMP, le code ICMP et la somme de contrôle.
Types ICMP
Le type détermine le but du paquet ICMP. Comme il explique brièvement pourquoi l'appareil source reçoit ce message. Il existe 0 à 255 types de messages ICMP, chacun fournissant des informations différentes. Certains types ICMP importants sont :
0: Demande d'écho
3: Destination inaccessible
4: Extinction de la source
5: Rediriger
8: Réponse en écho
11: Temps dépassé
12: Problème de paramètre
30: Traceroute
Code ICMP
Le code ICMP fournit des informations supplémentaires sur les messages. Par exemple, ICMP de type 3 avec le code 0-15 spécifie pourquoi la destination est inaccessible; c'est-à-dire que si le code est 0, c'est que le réseau n'est pas disponible. De même, pour le type 3 code 1, le message précise que l'hôte est inaccessible.
De plus, le code 0 de type 8 et le code 0 de type 0 représentent des messages de demande d'écho et de réponse d'écho. Par conséquent, chaque type de message avec la même valeur de code donne des informations de réseau différentes.
Somme de contrôle
La somme de contrôle est un mécanisme de détection d'erreurs qui détermine l'intégrité des données. La valeur de la somme de contrôle représente les bits du message de transmission. L'expéditeur calcule et inclut la somme de contrôle des données, et le destinataire recalcule la valeur et le compare avec le message d'origine pour déterminer toute modification du message d'origine pendant transmission.
La deuxième partie de l'en-tête pointe vers la valeur d'octet qui est à l'origine du problème dans le message d'origine. Enfin, la partie finale du paquet ICMP est le datagramme proprement dit.
Cas d'utilisation ICMP
Voici quelques exemples de travail du protocole ICMP dans divers utilitaires de gestion de réseau et d'administration.
Ping
Ping est un utilitaire de ligne de commande qui s'appuie sur les messages ICMP de demande d'écho et de réponse d'écho pour tester la disponibilité du réseau et la latence entre les périphériques. L'utilitaire détermine simplement la disponibilité du serveur de destination en estimant le nombre total de paquets envoyés ou reçus et le pourcentage de perte de paquets. Il permet également de déterminer la taille totale de l'unité de transmission maximale (MTU).
Utiliser ping pour déterminer la disponibilité de google.com :
Traceroute
Traceroute est un autre utilitaire de ligne de commande qui utilise des messages de demande d'écho et de réponse d'écho avec une variable TTL pour mapper le chemin entre les périphériques source et de destination. Il est également utile pour déterminer les délais de réponse et assure la précision en interrogeant chaque saut plusieurs fois.
Comment ICMP fonctionne-t-il sans port ?
D'après l'explication ci-dessus, ICMP est un protocole sans connexion qui envoie des données indépendamment sous forme de datagramme, et son en-tête apparaît après les détails IPv4. Cependant, vous pouvez également remarquer l'absence de numéro de port, ce qui soulève la question de savoir comment les appareils reçoivent les données ICMP ou prennent connaissance d'une connexion.
La réponse est plutôt simple. Le protocole ICMP a été conçu pour fonctionner au niveau de la couche réseau du modèle OSI et communiquer entre les routeurs et les hôtes pour partager des informations. Les numéros de port font partie de la couche transport et ICMP n'est ni un protocole TCP ni un protocole UDP. Enfin, la combinaison de type et de code ICMP aide les appareils à déterminer le message et à obtenir toutes les informations sur le réseau.
Contrôle des erreurs et des flux avec ICMP
Les détails ci-dessus sur le protocole ICMP montrent comment il assure le contrôle de flux et le contrôle d'erreur des données au niveau de la couche trois d'un modèle OSI. Les messages et paramètres de protocole dans la première partie de l'en-tête de paquet ICMP couvrent tous les aspects de la gestion du réseau et des problèmes de diagnostic.
Il est important de savoir que des paramètres de pare-feu inappropriés peuvent permettre aux attaquants de balayer le réseau de l'organisation et de le rendre vulnérable aux attaques DDOS, ping of death et ICMP flood. Vous pouvez utiliser Wireshark pour capturer des paquets depuis Internet et effectuer une analyse détaillée des paquets ICMP pour une meilleure compréhension.
5 façons de corriger l'erreur "Un ou plusieurs protocoles réseau sont manquants" dans Windows 10
Lire la suite
Rubriques connexes
- La technologie expliquée
- Réseaux informatiques
A propos de l'auteur
Rumaisa est rédactrice indépendante au MUO. Elle a porté plusieurs casquettes, de mathématicienne à passionnée de sécurité de l'information, et travaille maintenant en tant qu'analyste SOC. Ses intérêts incluent la lecture et l'écriture sur les nouvelles technologies, les distributions Linux et tout ce qui concerne la sécurité de l'information.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner