# ICMPv6

La versió 6 del protocol de missatges de control d'Internet (ICMPv6) és la implementació del protocol de missatges de control d'Internet (ICMP) per a la versió 6 del protocol d'Internet (IPv6). ICMPv6 és una part integral d'IPv6 i realitza funcions d'informes d'errors i de diagnòstic.
ICMPv6 té un marc d'extensions per implementar noves funcions. S'han publicat diverses extensions, que defineixen nous tipus de missatges ICMPv6, així com noves opcions per als tipus de missatges ICMPv6 existents. Per exemple, Neighbor Discovery Protocol (NDP) és un protocol de descoberta de nodes basat en ICMPv6 que substitueix i millora les funcions d'ARP. Secure Neighbor Discovery (SEND) és una extensió de NDP amb seguretat addicional. Els encaminadors IPv6 utilitzen Multicast Listener Discovery (MLD) per descobrir oients multicast en un enllaç directament connectat, de la mateixa manera que el Protocol de gestió de grups d'Internet (IGMP) s'utilitza a IPv4. Multicast Router Discovery (MRD) permet descobrir encaminadors multicast.

## Tipus i formats de missatges

Els missatges ICMPv6 es poden classificar com a missatges d'error i missatges d'informació . Els missatges ICMPv6 es transporten mitjançant paquets IPv6 en què el valor de la capçalera següent IPv6 per a ICMPv6 s'estableix en el valor 58.
El missatge ICMPv6 consta d'una capçalera i la càrrega útil del protocol. La capçalera conté només tres camps: tipus (8 bits), codi (8 bits) i suma de verificació (16 bits). type especifica el tipus de missatge. Els valors en el rang de 0 a 127 (el bit d'ordre superior és 0) indiquen un missatge d'error, mentre que els valors en el rang de 128 a 255 (el bit d'ordre superior és 1) indiquen un missatge d'informació. El valor del camp de codi depèn del tipus de missatge i proporciona un nivell addicional de granularitat del missatge. El camp de suma de comprovació proporciona un nivell mínim de verificació d'integritat per al missatge ICMP.
Paquet ICMPv6:
| Bit offset | 0–7 | 0–7 | 0–7 | 0–7 | 0–7 | 0–7 | 0–7 | 0–7 | 8–15 | 8–15 | 8–15 | 8–15 | 8–15 | 8–15 | 8–15 | 8–15 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 | 16–31 |
| 0 | Tipus | Tipus | Tipus | Tipus | Tipus | Tipus | Tipus | Tipus | Codi | Codi | Codi | Codi | Codi | Codi | Codi | Codi | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control | Suma de control |
| 32 | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge | Cos del missatge |

### Tipus

Els missatges de control s'identifiquen pel valor del camp de tipus. El camp de codi proporciona informació de context addicional per al missatge. Alguns missatges tenen el mateix propòsit que els tipus de missatges ICMP anomenats corresponentment.

### Suma de control

ICMPv6 proporciona un nivell mínim de verificació de la integritat del missatge mitjançant la inclusió d'una suma de comprovació de 16 bits a la seva capçalera. La suma de comprovació es calcula començant amb una pseudo-capçalera de camps de capçalera IPv6 d'acord amb l'estàndard IPv6, [5] que consisteix en les adreces d'origen i destinació, la longitud del paquet i el següent camp de capçalera, el darrer dels quals s'estableix en el valor. 58. Després d'aquesta pseudocapçalera, la suma de comprovació continua amb el missatge ICMPv6. El càlcul de la suma de comprovació es realitza d'acord amb els estàndards de protocol d'Internet utilitzant la suma de complements de 16 bits, seguida d'un complement final de la suma de comprovació i inserint-la al camp de la suma de comprovació. [6] Tingueu en compte que això és diferent de la manera com es calcula per a IPv4 a ICMP, però és similar al càlcul que es fa a TCP.

#### Format

La càrrega útil d'un missatge ICMPv6 varia segons el tipus de missatge que s'envia. Comença al bit 32 immediatament després de la capçalera descrita anteriorment. Per a alguns missatges, com ara destinació inabastable o temps superat, no hi ha cap cos definit.

## Tractament de missatges

Quan un node ICMPv6 rep un paquet, ha d'emprendre accions que depenen del tipus de missatge. El protocol ICMPv6 ha de limitar el nombre de missatges d'error enviats a la mateixa destinació per evitar la sobrecàrrega de la xarxa. Per exemple, si un node continua enviant paquets erronis, ICMP indicarà l'error al primer paquet i després ho farà periòdicament, amb un període mínim fix o amb una càrrega màxima de xarxa fixa. No s'ha d'enviar mai un missatge d'error ICMP en resposta a un altre missatge d'error ICMP.

## Referències

* ↑ «Internet Control Message Protocol version 6 (ICMPv6) Parameters» (en anglès). [Consulta: 25 novembre 2023].
* ↑ Gupta, Mukesh; Conta, Alex «Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification». RFC standards, 3-2006.
* ↑ «ICMPv6» (en anglès). [Consulta: 25 novembre 2023].
* ↑ «8.10: ICMPv6» (en anglès), 12-08-2019. [Consulta: 25 novembre 2023].