Le
protocole ICMP est une norme TCP/IP obligatoire définie dans
la RFC 792.
Son rôle est de transmettre les informations d'état et les messages d'erreur des protocoles IP, TCP et UDP. On convient pourtant de le ranger dans la même couche que IP.
Il ne
sécurise pas les transmissions mais peut néanmoins
contribuer à l'amélioration de la qualité de
transmission.
Les protocoles de niveau supérieur doivent toujours assurer la sécurité du trafic.
Exploité
par les routeurs et les stations pour retourner à une source
de données ( noeud émetteur) des rapports sur des
problèmes rencontrés avec ses paquets, ICMP est aussi
utilisé par des applicatifs de service, par exemple :
ping, tracert ou traceroute...
Les
messages ICMP sont généralement envoyés
automatiquement dans l'un des cas suivants :
-
Un datagramme IP ne peut pas atteindre sa destination.
- Un
routeur IP (passerelle) ne peut pas transmettre les datagrammes sur
l'état de la transmission.
- Un routeur IP redirige l'hôte
d'envoi pour utiliser un meilleur itinéraire vers la
destination.
Les messages ICMP sont encapsulés et
envoyés dans les datagrammes IP:
Différents types de messages ICMP sont identifiés dans l'en-tête ICMP. Les messages ICMP étant traités dans des datagrammes IP, ils ne sont pas fiables.
En-tête ICMP : Placé après une en-tête IP (type de protocole : 01)
1er mot de 32 bits :
8 bits |
Type de message 8 : Echo Request 11 :Time exceeded : durée de vie écoulée
(TTL dépassée) |
8 bits |
Code |
16 bits |
Checksum en-tête |
2ème mot de 32 bits :
16 bits |
Identificateur |
16 bits |
Numéro de séquence |
Identificateur : Si le code = 0, un identificateur permettant d'associer l'écho et la réponse à l'écho, peut être nul.
Numéro de séquence : Si le code = 0, un numéro de séquence permettant d'associer l'écho et sa réponse. Peut être nul.
Ping : demande d'écho.
Ping permet de tester la liaison avec un noeud .
Emission d'un paquet ICMP de type 8: Echo Request
La station cible retourne un Echo Reply de type 0
Tracert ou Traceroute: retrace le chemin.
Tracert indique le chemin suivi par un paquet IP ainsi que le nom des routeurs l'ayant retransmis.
Pour connaître le nom des routeurs, cette application émet des Echo Request, avec une durée de vie TTL limitée.
A chaque passage par un routeur ce champ TTL est décrémenté et retiré quand TTL=0.
Si un routeur retire un paquet il en informe l'émetteur du paquet avec un message ICMP de type 11: Time exceeded.
Ce message contient, entre autres, le nom du routeur.
Tracert débute donc par une TTL de 1. Ainsi le premier routeur retire le paquet et retourne un message contenant son nom.
Ensuite TTL est incrémenté
au fur à mesure ainsi de déterminer la route routeur
après routeur.
IGMP : gestion multicast : protocole qui permet l'envoi d’un datagramme à un groupe de stations identifié par une seule adresse IP. Ces groupes sont permanents ou transitoires.
Il est utilisé chaque fois qu'un message est à destination de plusieurs destinataires (Vidéo, transferts de fichiers, applications « tableau blanc » ... Le but visé est la réduction du trafic sur le réseau par envoi simultané de données à plusieurs destinataires.
Cest destinataires constituent un groupe auquel est attribué une adresse globale. Ils répondent à cette adresse comme à la leur propre. Ils peuvent adhérer ou quitter ce groupe.
Remarques
:
Ceci pose un problème pour l'interconnexion. Il faut que les switches du réseau soient compatibles pour pouvoir diriger les informations sur les ports concernés. Pour cela, ils doivent également agir au niveau 3 (décodage des adresses IP et mise en relation des adresses IP et des adresses physiques).
De même pour les routeurs, ils doivent également pouvoir envoyer les informations vers les noeuds adéquats du réseau IP, et donc mémoriser dans une table les adresses individuelles correspondant aux adresses multicast de destination qu'ils reçoivent.
Applications
Gestion des images distantes par Rembo
Serveur Bootp et stations Diskless