Aller au contenu

ICMP

ICMP (Internet Control Message Protocol) n’est pas un protocole de transport de données applicatives : c’est le canal de signalisation d’IP, utilisé pour rapporter des erreurs et diagnostiquer un réseau. Il n’a pas de port (contrairement à TCP/UDP) — il est directement encapsulé dans IP.

Type Rôle
Echo Request / Echo Reply Base de la commande ping : vérifier qu’un hôte est joignable et mesurer la latence
Destination Unreachable Signale qu’un paquet n’a pas pu être délivré (réseau, hôte ou port inaccessible)
Time Exceeded Le TTL du paquet est tombé à zéro — utilisé notamment par traceroute
Redirect Un routeur indique à un hôte qu’une route plus directe existe
Fragmentation Needed Le paquet est trop grand et le bit “ne pas fragmenter” est positionné (utile pour la découverte du MTU)
  • ping envoie des Echo Request et mesure le temps de réponse des Echo Reply — le test de connectivité réseau le plus basique.
  • traceroute envoie des paquets avec un TTL croissant (1, 2, 3…) : chaque routeur qui décrémente le TTL à zéro renvoie un message Time Exceeded, révélant progressivement chaque saut du chemin jusqu’à la destination.

En IPv6, ICMPv6 a un rôle bien plus large qu’en IPv4 : il porte aussi le NDP (découverte de voisins, équivalent d’ARP) et l’auto-configuration d’adresse (SLAAC). Bloquer ICMPv6 sans discernement sur un pare-feu peut donc casser des fonctions réseau de base, contrairement à ICMPv4 où un blocage large est plus souvent sans conséquence fonctionnelle majeure.