Internet Control Message Protocol V6
# Internet Control Message Protocol V6

L’ICMP pour IPv6 (Internet Control Message Protocol Version 6) fait partie à part entière de l'architecture IPv6 et doit être complètement supportée par toutes les implémentations d'IPv6. ICMPv6 combine des fonctions antérieurement subdivisées à travers différents protocoles, tels qu’ICMP v4 (Internet Control Message Protocol version 4), IGMP (Internet Group Membership Protocol), et ARP (Address Resolution Protocol), et il introduit quelques simplifications en éliminant des types de messages obsolètes qui ne sont plus utilisés.

## Résumé

L'Internet Protocol, version 6 (IPv6) est une nouvelle version d'IP. IPv6 utilise le protocole ICMP comme défini pour IPv4, avec quelques changements. Le protocole résultant est appelé ICMPv6. Cet article décrit le format d'un ensemble de messages de contrôle utilisés par ICMPv6.

ICMPv6 est un protocole générique ; par exemple, il est utilisé pour rapporter des erreurs trouvées dans le traitement de paquets, effectuer des diagnostics, effectuer une découverte de voisinage, et rapporter l'appartenance à un multicast. Pour cette raison, les messages ICMPv6 sont catégorisés en deux classes : error messages et information messages.

Les datagrammes ICMP sont transportés à l'intérieur de datagrammes IPv6 dans lequel un en-tête d'extension peut aussi être présent. Un message ICMP est identifié par sa valeur 58 (0x3A) positionnée dans le champ Next Header de l'en-tête IPv6.

## ICMPv6 (ICMP pour IPv6)

ICMPv6 est utilisé par les nœuds/hôtes IPv6 pour rapporter les erreurs trouvées dans le traitement de datagrammes, et pour effectuer d'autres traitements internes à cette couche, tels que des diagnostics (ICMPv6 « ping »).

## Format des paquets

Les paquets ICMPv6 ont le format Type, Code & Checksum. Le champ Type de 8-bits indique le type du message. Si le bit de poids fort a une valeur de zéro, il s'agit d'un message d'erreur, sinon c'est un message d’information. Le contenu du champ Code de 8 bits dépend du type de message, et est utilisé pour créer un niveau additionnel de granularité de message. Le champ Checksum est utilisé pour détecter des erreurs dans le message ICMP à l'intérieur du message IPv6.

### Messages d'erreur

Les messages d'erreur ICMPv6 sont similaires à ceux d’ICMPv4. Ils appartiennent à l'une des quatre catégories : Destination non atteignable, Paquet trop gros, Time out, et Problèmes de paramétrage.

* 1 - Destination Unreachable
* 2 - Packet Too Big
* 3 - Time Exceeded
* 4 - Parameter Problem

### Messages informatifs

L'autre type de messages ICMP est divisé en trois groupes : messages de diagnostic, messages pour la gestion des groupes multicast, et messages de découverte de voisinage. (diagnostic messages, messages for the management of multicast groups, et Neighbor Discovery messages.)

* 128 - Echo Request
* 129 - Echo Reply

### Format des datagrammes

| Bit 0 à 7 | Bit 8 à 15 | Bit 16 à 23 | Bit 24 à 31 |
| - | - | - | - |
| Type | Code | Checksum | Checksum |
| Message Body ||||

## Message Source Address Determination

Un nœud qui envoie un message ICMPv6 doit déterminer à la fois les adresses IPv6 de Source et de Destination de l'en-tête IPv6 avant de calculer la somme de contrôle. Si le nœud a plus d'une adresse unicast, il doit choisir l'adresse source du message de la manière suivante :

* (a) Si le message est une réponse à un message envoyé à l'une des adresses unicast du nœud, l'adresse Source de la réponse doit être la même.
* (b) Si le message est une réponse à un message envoyé en multicast ou anycast, d'un groupe dont le nœud est membre, l'adresse de la réponse doit appartenir au groupe.
* (c) Si le message est une réponse à un message envoyé à une adresse n'appartenant pas au nœud, l'adresse source devrait être l'adresse unicast du nœud qui sera la plus utile au diagnostic de l'erreur.
* (d) Dans les autres cas, en fonction de la table de routage.

### Types de messages ICMP

| Type | Signification |
| - | - |
| 1 | Destination Unreachable |
| 2 | Packet Too Big |
| 3 | Time Exceeded |
| 4 | Parameter Problem |
| 128 | Echo Request |
| 129 | Echo Reply |
| 130 | Group Membership Query |
| 131 | Group Membership Report |
| 132 | Group Membership Reduction |
| 133 | Router Solicitation |
| 134 | Router Advertisement |
| 135 | Neighbor Solicitation |
| 136 | Neighbor Advertisement |
| 137 | Redirect |

Liste complète disponible sur le site de l'IANA : http://www.iana.org/assignments/icmpv6-parameters

