ICMP utilise-t-il des numéros de port ?
Non — ICMP n'utilise pas de numéros de port.
ICMP (Internet Control Message Protocol) opère à la Couche 3 (Couche Réseau) du modèle OSI, aux côtés d'IP. Il est encapsulé directement dans les paquets IP (numéro de protocole 1), pas dans les segments TCP (protocole 6) ou UDP (protocole 17) où résident les ports.
Comment ICMP identifie les communications
- Champs Type et Code : Au lieu de ports, les messages ICMP utilisent un Type 8 bits (ex: 0 = Echo Reply, 8 = Echo Request, 3 = Destination Unreachable, 11 = Time Exceeded) et un Code 8 bits pour sous-types.
- Identifiant et Numéro de séquence : Dans Echo Request/Reply (ping), ces champs apparient requêtes et réponses — fonctionnellement similaires aux ports mais à la couche ICMP.
Pourquoi ça importe
- Pare-feu filtrent ICMP par Type/Code, pas par port.
- On ne peut pas « binder » une socket sur un port ICMP — sockets bruts (SOCK_RAW, IPPROTO_ICMP) requis.
- Outils comme
ping,traceroute, et Découverte MTU de chemin reposent sur design sans port d'ICMP.
ICMP est un protocole plan de contrôle pour diagnostics réseau et signalement d'erreurs — pas un transport applicatif. C'est pourquoi il contourne entièrement l'abstraction de port.
