ICMP l'agent de contrôle
L' «Internet Control Message Protocol», décrit par la RFC792, est un protocole de niveau 3 qui, associé à IP, permet aux divers nœuds de l'internet d'assurer un certain contrôle de l'état des transports. C'est un protocole qui aurait pu être extrêmement utile s'il n'avait pas trop souvent été détourné à des fins malveillantes.
Nous allons voir quelles sont ses capacités et pourquoi il n'est pas toujours utilisé alors que ce serait utile qu'il le soit.
ICMP existe en IPv4 et en IPv6, mais il y a quelques différences de structure et d'usage. Nous allons ici nous intéresser surtout à la version IPv4, les spécificités IPv6 seront vues plus loin.
Les différents messages
Il existe sur Wikipédia un article fort bien fait à ce sujet, il est donc inutile de répéter son contenu.
Pour résumer, disons ceci:
- il existe 12 types de messages différents;
- certains de ces types disposent de plusieurs codes pour préciser le type d'évènement à signaler.
Par exemple, dans le cas d'un nœud injoignable, plusieurs raisons sont possibles comme:
- le réseau n'est pas accessible (défaut de routage);
- la machine n'est pas accessible (le nœud ne répond pas);
- le service n'est pas accessible (le client envoie une requête HTTP à la cible, la cible existe et elle est joignable, mais il n'y a pas de serveur HTTP en service);
- etc.