Le protocole ICMP
Le protocole ICMP est un protocole assez fondamental utilisé dans la suite de protocoles Internet. Il est défini par la couche réseau du modèle OSI et joue un rôle essentiel dans la gestion et l’opération des réseaux informatiques. ICMP est conçu pour fonctionner en étroite collaboration avec le protocole IP. Son rôle principal est de signaler les erreurs dans le traitement des paquets IP et de fournir des fonctionnalités pour aider à diagnostiquer et résoudre les problèmes de réseau. ICMP n’est pas destiné à transmettre des données d’application, mais plutôt des messages d’information et d’erreur de la couche réseau.
Le protocole ICMP offre un ensemble de messages de diagnostic qui permettent aux administrateurs et aux techniciens réseau de détecter et de traiter divers problèmes pouvant survenir lors de la communication entre deux hôtes sur un réseau. Ces messages sont essentiels pour comprendre les raisons pour lesquelles une communication peut échouer ou présenter des performances non optimales. En plus des messages d’erreur, ICMP offre également des messages d’information. Ceux-ci peuvent être utilisés pour découvrir les caractéristiques d’un réseau, comme sa topologie ou les performances entre deux hôtes.
L’une des erreurs les plus couramment rencontrées lors de l’utilisation d’ICMP est celle du “Destinataire inaccessible“. Cette erreur indique qu’un paquet n’a pas pu être livré à sa destination pour une raison ou une autre. Il existe plusieurs sous-types pour cette erreur, chacun signalant un problème spécifique. Par exemple, l’erreur peut être causée par un hôte de destination qui ne répond pas, par un réseau de destination inatteignable, ou encore par un port de destination inutilisé. Ces informations peuvent être utilisées pour déterminer si le problème provient de l’hôte cible lui-même, de la configuration du réseau ou d’autres facteurs. En diagnostiquant ces erreurs, un technicien peut rapidement déterminer où se situe le problème et quelles étapes doivent être prises pour le résoudre.
Les erreurs de type “Temps dépassé” sont signalées lorsque le temps de vie (TTL) d’un paquet a expiré avant qu’il n’atteigne sa destination. Chaque paquet transmis sur un réseau a un TTL, qui est décrémenté à chaque passage par un routeur. Si le TTL atteint zéro avant que le paquet n’atteigne sa destination, un message “Temps dépassé” est généré. Cela peut indiquer un routage cyclique ou des délais excessifs dans le réseau. Cette erreur aide à identifier des boucles potentielles ou des chemins inefficaces qui peuvent nécessiter une attention ou une reconfiguration.
Les messages d’erreur “Packet too big” sont générés lorsque le paquet transmis est trop grand pour être traité par un segment du réseau ou un routeur. Ce type d’erreur est crucial pour les hôtes qui utilisent la fragmentation des paquets. Lorsqu’un tel message est reçu, cela signifie que le paquet doit être fragmenté en des morceaux plus petits pour continuer son trajet vers la destination. Cette information aide à optimiser la taille des paquets pour garantir une transmission efficace et à éviter des retards inutiles ou des échecs de transmission dus à des paquets surdimensionnés.
Les messages de diagnostic ICMP sont fréquemment sollicités par les administrateurs réseau pour résoudre des problèmes et optimiser les performances, mais ils ne sont pas exclusivement destinés aux spécialistes des réseaux. En réalité, ces messages ont une portée plus vaste. Les couches suppérieurs et les applications elles-mêmes peuvent également tirer parti de ces diagnostics pour s’adapter dynamiquement à l’état du réseau. Par exemple, en cas de détection d’une bande passante limitée ou d’une congestion, une application de streaming pourrait ajuster la qualité de la vidéo en conséquence.
Le ping
La commande ping est l’une des outils de diagnostic réseau les plus couramment utilisés. Son nom dérive de l’action de sonar, émettant des pings pour localiser les objets sous l’eau. Dans le contexte des réseaux, la commande est utilisée pour tester la connectivité entre deux hôtes sur un réseau IP. L’utilisation de ping est donc essentielle pour diagnostiquer les problèmes de connectivité, et par ailleurs sert à mesurer la latence réseau et évaluer la santé générale d’une connexion réseau.
Lorsqu’un utilisateur exécute la commande ping suivie de l’adresse d’un hôte cible, l’outil envoie une série de paquets ICMP vers cet hôte. Ces paquets sont spécifiquement des “Echo Request” ICMP. En recevant une demande d’écho, l’hôte cible est censé répondre avec un “Echo Reply” ICMP, indiquant qu’il est actif et capable de recevoir des paquets.
C:\Users\KoSSoLaX>ping cours.zaretti.be
Envoi d’une requête 'ping' sur zaretti.be [79.132.249.58] avec 32 octets de données :
Réponse de 79.132.249.58 : octets=32 temps=7 ms TTL=64
Réponse de 79.132.249.58 : octets=32 temps=3 ms TTL=64
Réponse de 79.132.249.58 : octets=32 temps=3 ms TTL=64
Réponse de 79.132.249.58 : octets=32 temps=3 ms TTL=64
Statistiques Ping pour 79.132.249.58:
Paquets : envoyés = 4, reçus = 4, perdus = 0 (perte 0%),
Durée approximative des boucles en millisecondes :
Minimum = 3ms, Maximum = 7ms, Moyenne = 4ms
Les temps de réponse, souvent mesurés en millisecondes, sont enregistrés pour chaque paquet envoyé. Ces temps, aussi appelés “temps de latence”, donnent une indication sur la rapidité avec laquelle les paquets voyagent entre l’hôte source et l’hôte cible. Si l’hôte cible ne répond pas dans un délai spécifié, la commande ping affichera généralement une erreur, indiquant qu’il n’a pas reçu de réponse. La commande ping offre également des statistiques à la fin de son exécution, fournissant des informations telles que le nombre total de paquets envoyés, le nombre de paquets reçus, le pourcentage de perte de paquets, ainsi que les temps de réponse minimum, maximum et moyens.
Le traceroute
La commande traceroute est un outil de diagnostic réseau qui permet de visualiser le chemin emprunté par un paquet pour atteindre une destination donnée sur le réseau. Elle fournit une vue séquentielle des routeurs que le paquet traverse depuis la source jusqu’à la destination, aidant ainsi à identifier où des délais ou des problèmes pourraient se produire en cours de route.
Lorsque la commande traceroute est exécutée, elle utilise principalement le protocole ICMP, voici comment cela fonctionne généralement :
- Traceroute commence par envoyer une série de paquets avec un “time-to-live” (TTL) initialisé à 1. Le TTL est un champ dans l’en-tête IP qui indique combien de sauts (ou routeurs) un paquet est autorisé à traverser avant d’être abandonné.
- Le premier routeur sur le chemin reçoit le paquet, décrémente le TTL de 1, et voit que le TTL est maintenant à 0. En réponse, il abandonne le paquet et envoie un message “Time Exceeded” en ICMP à l’expéditeur. C’est dans ce paquet ICMP que figure l’adresse IP du routeur concerné, et c’est en recevant ce message “Time Exceeded” que la commande identifie le premier routeur sur le chemin.
- Traceroute augmente ensuite le TTL à 2 et répète le processus. Cette fois, le paquet passe par le premier routeur et atteint le second routeur, qui, à son tour, envoie un autre message “Time Exceeded”.
- Ce processus se répète, avec le TTL augmentant progressivement jusqu’à ce que les paquets atteignent la destination ou jusqu’à ce qu’un nombre maximum de sauts soit atteint. Lorsque la destination est atteinte, elle répond généralement avec un “Echo Reply” ICMP, indiquant que le paquet est arrivé.
C:\Users\KoSSoLaX>tracert hainaut-promsoc.be
Détermination de l’itinéraire vers hainaut-promsoc.be [193.190.199.75]
avec un maximum de 30 sauts :
1 6 ms 11 ms 3 ms 192.168.188.1
2 6 ms 4 ms 5 ms bras-71gil.bxl.be.edpnet.net [213.219.132.34]
3 10 ms 8 ms 7 ms 212.71.11.69.static.edpnet.net [212.71.11.69]
4 13 ms 17 ms 12 ms bnix.brueve.belnet.net [194.53.172.65]
5 12 ms 18 ms 11 ms 10.28.87.222
6 11 ms 9 ms 16 ms hecondorcet_mon_3_bll.bsr.belnet.net [193.191.11.222]
7 7 ms 7 ms 8 ms hecondorcet.hecondorcet_mon_3_bll.bsr.belnet.net [193.191.6.189]
8 9 ms 8 ms 8 ms web.ecampus-hainaut.be [193.190.199.75]
Itinéraire déterminé.
Les résultats de traceroute fournissent alors une liste des routeurs traversés, souvent avec des temps de latence associés pour chaque saut. Cela donne une image claire du chemin emprunté par les paquets et permet d’identifier les goulots d’étranglement ou les points problématiques sur le réseau. Le traceroute est donc un outil précieux pour visualiser et diagnostiquer le chemin réseau.