17.3.3 Frammentazione

Se un IPv6 datagram ha dimensioni maggiori della MTU, questo viene scomposto in IPv6 datagram più piccoli, detti frammenti (fragments), ognuno dei quali contiene una parte del payload relativo all’IP datagram originale.

Il livello Network prima di inviare un IP datagram richiede all’interfaccia di rete di destinazione la sua MTU per poter eventualmente effettuare la frammentazione degli IP datagram.

L’IPv6 datagram originale è costituito da due parti: una non frammentabile e l’altra frammentabile. La parte non frammentabile si compone dell’header dell’IPv6 datagram e degli eventuali extension header che devono essere gestiti dai sistemi che si trovano sul percorso per raggiungere il destinatario finale (es. Routing Header ed il Hop-by-Hop Options Header). La parte frammentabile è composta dagli eventuali altri extension header e dal payload dell’IPv6 datagram originale e qualora se ne presenti la necessità, viene suddivisa in frammenti (con dimensione multipla di 8 byte, tranne al più l’ultimo frammento) ed inviata sulla rete come illustrato nella fig. ??.


pict
Figura 17.16: La frammentazione dell’IPv6 datagram.

La frammentazione degli IPv6 datagram può avvenire soltanto sull’interfaccia mittente (al contrario di IPv4 nel quale la frammentazione è possibile anche sui sistemi sui quali l’IPv4 datagram transita per raggiungere il destinatario). Questa avviene con l’ausilio di un particolare extension header, detto appunto Fragment Header, identificato dal valore 44 nel campo Next Header dell’header precedente.

L’IPv6 datagram viene ricostruito ricomponendo i frammenti che lo costituiscono, soltanto dall’interfaccia di rete di destinazione effettiva: i sistemi intermedi, attraversati dall’IP datagram nel suo percorso dal mittente al destinatario non ricompongono i frammenti.

Un Fragment Header si compone dei campi riportati nella fig. ?? ed illustrati di seguito


pict
Figura 17.17: Il Fragment Header IPv6.