ICMPv6

protocollo di servizio per reti a pacchetto

L'Internet Control Message Protocol versione 6 (ICMPv6) è l'evoluzione nelle reti IPv6 del protocollo ICMP per le reti IPv4. In essa vengono aggiunte nuove funzionalità che nel protocollo precedente erano demandate ad altri livelli protocollari (come ad esempio ARP o IGMP) e tolte altre che, invece, erano poco usate. Come nel caso della versione precedente, l'ICMPv6 viene utilizzato per monitorare lo stato della rete e per inviare pacchetti di gestione e di errore. Essa è descritta nell'RFC 2463.

Struttura del Pacchetto

modifica
 
Intestazione ICMPv6

In figura è mostrata la struttura del pacchetto:

  • il campo Type indica il tipo del pacchetto ICMPv6
  • il campo Code indica il codice del messaggio di errore
  • il campo Checksum è utilizzato per rilevare errori di trasmissione dell'intero pacchetto
  • il campo Body contiene un messaggio ed è di lunghezza variabile

Il campo Type assume 255 valori possibili, di seguito, per brevità, sono riportati i valori più significativi, per maggiori dettagli consultare l'RFC:

Type Nome messaggio
1 Destination Unreachable
2 Packet Too Big
3 Time Exceeded
4 Parameter Problem
128 Echo Request
129 Echo Reply
130 Multicast Listener Query
131 Multicast Listener Report
132 Multicast Listener Done
133 Router Solicitation
134 Router Advertisement
135 Neighbor Solicitation
136 Neighbor Advertisement
137 Redirect Message

Messaggi di errore

modifica
 
Pacchetto ICMPv6 in caso di errore

Come nella versione per le reti IPv4, ICMPv6 viene utilizzato per la segnalazione di errori di trasmissione. Un pacchetto ICMPv6 ha la funzione di segnalazione di errori quando il suo campo type assume un valore che va da 1 a 4; per ogni tipologia di errore il campo code fornisce una maggiore specificità. Viene aggiunto un campo parameter.

  • Type 1 destination unreachable: viene inviato questo messaggio nel caso in cui una destinazione non è raggiungibile, il campo parameter non viene utilizzato.
    • code 0: no route to destination
    • code 1: communication with destination administratively prohibited
    • code 2: beyond scope of source address
    • code 3: address unreachable
    • code 4: port unreachable
    • code 5: source address failed ingress/egress policy
    • code 6: reject route to destination
  • Type 2 packet too big: viene generato questo pacchetto quando le dimensioni dei pacchetti generati da un host superano quelle dell'MTU consentito dalla rete, nel campo parameter viene inserito il massimo valore di MTU consentito dalla rete.
  • Type 3 time exceeded: indica che il pacchetto, nel viaggiare per la rete, ha superato il numero massimo di hop consentiti.
    • code 0: hop limit exceeded in transit
    • code 1: fragment reassembly time exceeded
  • Type 4 parameter problem: indica che vi è una incompatibilità di interpretazione dei parametri, il campo parameter contiene l'offset dove si trova il parametro che ha generato l'errore.
    • code 0: erroneous header field encountered
    • code 1: unrecognized Next Header type encountered
    • code 2: unrecognized IPv6 option encountered
 
Formato del pacchetto di echo ICMPv6

I messaggi di echo, tipicamente inviati mediante il comando ping, servono per verificare la raggiungibilità di un nodo. Questi, analogamente a quanto avviene nel protocollo ICMP, possono essere di due tipi: request e reply, a seconda del valore assunto dal campo type, ovvero, rispettivamente, 128 o 129. I campi assumono i seguenti valori:

  • type vale
    • 128 nel caso di echo request
    • 129 nel casi di echo reply
  • code non è utilizzato
  • identifier è un valore stabilito dal mittente del messaggio di echo a cui il destinatario deve rispondere utilizzando lo stesso valore di identifier; ciò permette di rafforzare la corrispondenza tra request e reply
  • sequence number è un numero di sequenza deciso dal mittente ed utilizzato dal destinatario nel momento della risposta
  • data si tratta di dati immessi dal mittente e ricopiati dal destinatario nell'echo di reply

Group Management

modifica

L'ICMPv6 viene utilizzato anche per gestire i gruppi multicast, questa funzione è svolta dal protocollo IGMP nelle reti IPv4. Per decidere il gruppo multicast i router o server inviano pacchetti di membership query e gli host appartenenti ad un gruppo rispondono con un messaggio di membership report. Questi ultimi vengono inviati costantemente dai client e per non provocare un appesantimento della rete un campo di maximum response delay indica l'intervallo di invio dei membership report. Nel momento in cui un host abbandona il gruppo multicast, viene inviato un ICMPv6 di termination.

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete