• Non ci sono risultati.

Capitolo 2 6LoWPAN

2.2 IPv6

2.3.2 Livello Adattivo

Per poter trasferire le informazioni dai livelli superiori ai livelli inferiori è previsto un livello adattivo che costruisce il pacchetto in maniera incrementale secondo la filosofia IP che inserisce informazioni aggiuntive solo quando richieste.

Per questo scopo, il pacchetto 6LoWPAN ha una parte iniziale, opzionale, formata da uno stack di header che descrivono il tipo di pacchetto che viene trasmesso. Lo stack comprende:

un header di supporto per la comunicazione su reti mesh; un header per la comunicazione in broadcast;

un header per la gestione della frammentazione dei pacchetti.

Tutti gli header sono opzionali; in un pacchetto 6LoWPAN può quindi comparire una qualsiasi occorrenza dei tre, o nessuna. L’opzionalit{ non comporta, discrezionalit{ di

processing o di interpretazione; esiste infatti uno schema di costruzione del pacchetto

che gli header devono seguire necessariamente. La sequenza degli header è evidenziato nella figura seguente:

FIGURA 2.10 HEADER OPZIONALI 6LOWPAN

Stack

Header

Mesh

Addressing

Header

Broadcast

Header

Fragment.

Header

CAPITOLO 2: 6LOWPAN

6LoWPAN eredita da IPv6 un meccanismo per risolvere l’ambiguit{ che deriva dalla possibile presenza di molteplici header opzionali: il ricorso al dispatch, un byte aggiuntivo che precede sempre gli header propriamente detti e ne consente il riconoscimento e conseguentemente la corretta interpretazione.

Mesh Header

Il mesh header è presente nei pacchetti che utilizzano un protocollo di routing di tipo mesh per il loro instradamento. L’header è composto come indicato nella figura 2.11, da un dispatch di 8 bit così composto:

FIGURA 2.11 DISPATCH MESH HEADER 6LOWPAN

A questo primo byte seguono due campi che rappresentano gli indirizzi dell’origine e del destinatario finale della comunicazione, secondo il formato stabilito nel dispatch. Il formato completo dell’header è mostrato in figura 2.12:

FIGURA 2.12 COMPOSIZIONE MESH HEADER 6LOWPAN Bit

0,1

• Prefisso costante, 10, che identifica il tipo di header

Bit 2:

• Flag settato a 0 per indica che l’indirizzo del mittente, contenuto nel campo dell’header, è in versione EUI-64, altrimenti 1 se presente in formato short

Bit 3:

• Flag settato a 0 per indica che l’indirizzo del destinatario, contenuto nel campo dell’header, è in versione EUI-64, altrimenti 1 se presente in formato short

Bit 4,5,6,7

• Usati per indicare il numero di salti ancora previsti per arrivare al

destinatario. Ad ogni hop questo campo viene decrementato di uno. Se si arriva al valore 0 il pacchetto viene scartato. Previsti massimo 16 hop.

6LoWPAN: un livello adattivo per la convergenza di WSN e IPv6

Teoria, analisi, sviluppo e confronto di soluzioni low-power

Giorgio Porcu

L’header non specifica quale protocollo di routing mesh adottare ma rappresenta soltanto un supporto per codificare le informazioni necessarie ad un qualunque protocollo di routing mesh.

Broadcast Header

Un header opzionale usato spesso in combinazione con l’header precedente, è quello riservato alle comunicazioni broadcast. Il dispatch di questo header è descritto nella figura seguente:

FIGURA 2.13 DISPATCH BROADCAST HEADER 6LOWPAN

L’header termina con un byte utilizzato per il campo Sequence Number. Questo campo viene settato dall’origine della trasmissione e serve per riconoscere pacchetti duplicati. Il formato completo dell’header è evidenziato in figura 2.14:

FIGURA 2.14 COMPOSIZIONE BROADCAST HEADER 6LOWPAN

Frammentazione

Come è stato già illustrato nel paragrafo 2.2.4, un meccanismo di frammentazione dei pacchetti è indispensabile per poter incapsulare pacchetti IPv6, lunghi fino a 1280 byte, all’interno di pacchetti 802.15.4 il cui payload disponibile varia dagli 81 ai 102 byte.

Bit 0,1

• Prefisso costante, 01, che identifica il tipo di

header

Bit 2-7

CAPITOLO 2: 6LOWPAN

L’header di frammentazione è identificato da un dispatch composto come segue:

FIGURA 2.15 DISPATCH FRAGMENTATION HEADER 6LOWPAN

Dopo i primi 5 bit di prefisso per il dispatch, seguono un campo di 11 byte che rappresenta il campo Datagram Size e un campo 16 bit Denominato Datagram Tag.

FIGURA 2.16 COMPOSIZIONE FRAGMENTATION HEADER 6LOWPAN

Il campo Datagram Size indica la grandezza del pacchetto originario non frammentato escludendo gli header 6LoWPAN opzionali. Questo campo deve essere presente in ogni frammento creato per poter allocare un buffer di memoria della grandezza corretta. Il campo Datagram Tag è anch’esso ripetuto per tutti i pacchetti ed è distintivo dei frammenti di uno stesso pacchetto.

Esiste, infine, un ultimo campo nell’header di frammentazione, denominato datagram offset che non compare esclusivamente nel primo frammento. Esso indica, con un incremento di 8 bit, l’offset del frammento dall’inizio del payload. Il formato dell’header è illustrato in figura 2.16:

La ricomposizione di un frame a destinazione deve avvenire entro 60 secondi19 dalla ricezione del primo frammento di un pacchetto, frammento riconoscibile dal valore del dispatch e identificabile in base al valore del datagram_tag. In caso la procedura non si completi entro 60 secondi, tutti i frammenti ricevuti vengono scartati.

L’introduzione a specifica delle funzionalit{ di frammentazione ha la sua principale ragione nella conformità con il protocollo IPv6. In generale, tuttavia, è statisticamente verificabile come le applicazioni specifiche per reti 802.15.4 generino pacchetti di

19

In conformità a quanto previsto da IPv6.

Bit

0,1,2,3,4

• Prefisso costante.

11000: nel caso del primo frammento.

11100: per i successivi frammenti

6LoWPAN: un livello adattivo per la convergenza di WSN e IPv6

Teoria, analisi, sviluppo e confronto di soluzioni low-power

Giorgio Porcu

dimensioni relativamente ridotte in un’ottica di risparmio energetico e di risorse trasmissive. Per ridurre il numero di informazioni necessarie al protocollo IPv6 pertanto, si tende a prediligere un meccanismo di compressione degli header che permetta di incapsulare tutte le informazioni in un unico pacchetto 802.15.4 senza sfruttare i meccanismi di frammentazione descritti sopra.

Documenti correlati