Next: Gli indirizzi di IPv6
Up: ipv6
Previous: Principali caratteristiche di IPv6
L'intestazione di IPv6
Per capire le caratteristiche di IPv6 partiamo dall'intestazione
(l'header) usata dal protocollo per gestire la trasmissione dei
pacchetti; in Tab. 4 è riportato il formato
dell'intestazione di IPv6 da confrontare con quella di IPv4 riportato in
Tab. 6. La spiegazione del significato dei vari campi delle
due intestazioni è riportata rispettivamente in Tab. 5 e
Tab. 7)
Table 4:
L'intestazione o header di IPv6
|
Come si può notare l'intestazione di IPv6 diventa di dimensione fissa, pari
a 40 byte, contro una dimensione (minima, in assenza di opzioni) di 20 byte
per IPv4; un semplice raddoppio nonostante lo spazio destinato agli indirizzi
sia quadruplicato, questo grazie a una notevole semplificazione che ha ridotto
il numero dei campi da 12 a 8.
Table 5:
Legenda per il significato dei campi dell'intestazione di IPv6
Nome |
Lunghezza |
Significato |
version |
4 bit |
versione, nel caso specifico vale sempre 6 |
priority |
4 bit |
priorità, vedi Sez. 8.2 |
flow label |
24 bit |
etichetta di flusso, vedi Sez. 8.1 |
payload length |
16 bit |
lunghezza del carico, cioè del corpo dei dati che segue
l'intestazione, in bytes. |
next header |
8 bit |
intestazione successiva,
identifica il tipo di pacchetto che segue l'intestazione di IPv6, usa
gli stessi valori del campo protocol nell'intestazione di IPv4 |
hop limit |
8 bit |
limite di salti,
stesso significato del time to live nell'intestazione di IPv4,
è decrementato di uno ogni volta che un nodo ritrasmette il
pacchetto, se arriva a zero il pacchetto viene scartato |
source IP |
128 bit |
indirizzo di origine |
destination IP |
128 bit |
indirizzo di destinazione |
|
|
|
|
Abbiamo già anticipato in Sez. 4 che uno dei criteri
principali nella progettazione di IPv6 è stato quello di ridurre al minimo
il tempo di trattamento dei pacchetti da parte dei router, un confronto con
l'intestazione di IPv4 (vedi Tab. 6) mostra le seguenti
differenze:
- è stato eliminato il campo header length in quanto le opzioni
sono state tolte dall'intestazione che ha cosìfissa; ci
possono essere più intestazioni opzionali (intestazioni di
estensione, vedi Sez. 7), ciascuna delle quali avrà un
suo campo di lunghezza all'interno.
- l'intestazione e gli indirizzi sono allineati a 64 bit, questo rende
più veloce il trattamento da parte di computer con processori a 64 bit.
- i campi per gestire la frammentazione (identification,
flag e fragment offset) sono stati eliminati; questo
perché la frammentazione è un'eccezione che non deve rallentare il
processo dei pacchetti nel caso normale.
- è stato eliminato il campo checksum in quanto tutti i
protocolli di livello superiore (TCP, UDP e ICMPv6) hanno un campo di
checksum che include, oltre alla loro intestazione e ai dati, pure i campi
payload length, next header, e gli indirizzi di origine e
di destinazione; una checksum esiste anche per la gran parte protocolli di
livello inferiore (anche se quelli che non lo hanno, come SLIP, non possono
essere usati con grande affidabilità); con questa scelta si è ridotto di
molto il tempo di trattamento dato che i router non hanno piú la
necessità di ricalcolare la checksum ad ogni passaggio di un pacchetto per
il cambiamento del campo hop limit.
- è stato eliminato il campo type of service, che praticamente
non è mai stato utilizzato; una parte delle funzionalià ad esso delegate
sono state reimplementate (vedi il campo priority al prossimo
punto) con altri metodi.
- è stato introdotto un nuovo campo flow label, che viene
usato, insieme al campo priority (che recupera i bit di
precedenza del campo type of service) per implementare la gestione
di una ``qualità di servizio'' (vedi Sez. 8) che permette di
identificare i pacchetti appartenenti a un ``flusso'' di dati per i quali si
può provvedere un trattamento speciale.
Table 6:
L'intestazione o header di IPv4
|
Table 7:
Legenda per il significato dei campi dell'intestazione di IPv4
Nome |
Lunghezza |
Significato |
version |
4 bit |
versione, nel caso
specifico vale sempre 4 |
head length |
4 bit |
lunghezza dell'intestazione,
in multipli di 32 bit |
type of service |
8 bit |
tipo di servizio,
consiste in: 3 bit di precedenza,
correntemente ignorati; un bit non usato a 0; 4 bit che identificano
il tipo di servizio richiesto, uno solo dei quali può essere 1 |
total length |
16 bit |
lunghezza totale, indica
la dimensione del pacchetto IP in byte |
identification |
16 bit |
identificazione,
assegnato alla creazione, è aumentato di uno all'origine alla
trasmissione di ciascun pacchetto, ma resta lo stesso per i
pacchetti frammentati |
flag |
3 bit |
flag bit di frammentazione, uno indica se un
pacchetto è frammentato, un'altro se ci sono ulteriori frammenti, e
un'altro se il pacchetto non può essere frammentato. |
fragmentation offset |
13 bit |
offset di frammento,
indica la posizione del frammento rispetto al pacchetto originale |
time to live |
16 bit |
tempo di vita,
ha lo stesso significato di
hop limit, vedi Tab. 5 |
protocol |
8 bit |
protocollo
identifica il tipo di pacchetto che segue
l'intestazione di IPv4 |
header checksum |
16 bit |
checksum di intestazione,
somma di controllo per l'intestazione |
source IP |
32 bit |
indirizzo di origine |
destination IP |
32 bit |
indirizzo di destinazione |
|
|
|
|
Oltre alle differenze precedenti, relative ai singoli campi nell'intestazione,
ulteriori caratteristiche che diversificano il comportamento di IPv4 da
quello di IPv6 sono le seguenti:
- il broadcasting non è previsto in IPv6, le applicazioni che lo usano
devono essere reimplementate usando il multicasting (vedi
Sez. 6.6), che da opzionale diventa obbligatorio.
- è stato introdotto un nuovo tipo di indirizzi, gli anycast.
- i router non possono più frammentare i pacchetti lungo il cammino, la
frammentazione di pacchetti troppo grandi potrà essere gestita solo ai
capi della comunicazione (usando un'apposita estensione vedi
Sez. 7).
- IPv6 richiede il supporto per il path MTU discovery (cioè il
protocollo per la selezione della massima lunghezza del pacchetto); seppure
questo sia in teoria opzionale, senza di esso non sarà possibile inviare
pacchetti più larghi della dimensione minima (576 bytes).
Next: Gli indirizzi di IPv6
Up: ipv6
Previous: Principali caratteristiche di IPv6
Simone Piccardi
2002-07-11