Passa al contenuto principale

11. Frame Delivery in a Link-Layer Mesh (Consegna dei frame in una mesh di livello collegamento)

Sebbene ci si aspetti che le reti 802.15.4 usino comunemente il routing mesh, la specifica IEEE 802.15.4-2003 [ieee802.15.4] non definisce tale capacità. In questo contesto, i Full Function Device (FFD) eseguono protocolli di routing ad hoc o mesh per popolare le loro tabelle di routing; ciò è fuori dall'ambito di questo documento. In uno scenario mesh, due dispositivi non devono necessariamente essere direttamente raggiungibili per comunicare. In questi dispositivi, il mittente è chiamato "originator" e il ricevitore è chiamato "final destination". Il dispositivo originator può usare altri dispositivi intermedi come forwarder verso la final destination. Per realizzare questa consegna dei frame usando unicast, oltre alla sorgente e alla destinazione hop-by-hop devono essere inclusi anche gli indirizzi di livello collegamento dell'originator e della final destination.

Questa sezione definisce come realizzare la consegna dei frame di livello 2 in una mesh, dato l'indirizzo di livello collegamento della "final destination".

La consegna mesh è realizzata includendo un'intestazione Mesh Addressing prima di qualsiasi altra intestazione dell'incapsulamento LoWPAN (Sezione 5), incluse intestazioni non frammentate o frammentate, un'intestazione IPv6 completa, oppure un'intestazione IPv6 compressa secondo la Sezione 10 o definita altrove.

Se un nodo vuole usare un forwarder mesh predefinito per consegnare un pacchetto, ad esempio perché non ha raggiungibilità diretta verso la destinazione, DEVE includere un'intestazione Mesh Addressing in cui l'indirizzo di livello collegamento dell'originator è impostato al proprio indirizzo e l'indirizzo di livello collegamento della final destination è impostato alla destinazione finale del pacchetto. Imposta l'indirizzo sorgente nell'intestazione 802.15.4 al proprio indirizzo di livello collegamento e inserisce l'indirizzo di livello collegamento del forwarder nel campo indirizzo di destinazione dell'intestazione 802.15.4. Infine, trasmette il pacchetto.

Analogamente, se un nodo riceve un frame con intestazione Mesh Addressing, DEVE esaminare il campo "Final Destination" dell'intestazione Mesh Addressing per determinare la destinazione reale. Se il nodo stesso è la final destination, consuma il pacchetto secondo la normale consegna. Se non è la final destination, il dispositivo decrementa il campo "Hops Left"; se il risultato è zero, scarta il pacchetto. Altrimenti, il nodo consulta la propria tabella di routing di livello collegamento, determina quale deve essere il next hop verso la final destination e inserisce quell'indirizzo nel campo indirizzo di destinazione dell'intestazione 802.15.4. Infine, il nodo cambia l'indirizzo sorgente nell'intestazione 802.15.4 impostandolo al proprio indirizzo di livello collegamento e trasmette il pacchetto.

Sebbene un nodo DEBBA partecipare a un protocollo di routing mesh per diventare forwarder, non esiste tale requisito per usare semplicemente l'inoltro mesh. Ci si aspetta che solo i Full Function Device (FFD) partecipino come router nella mesh. I Reduced Function Device (RFD) si limitano a scoprire gli FFD e a usarli per tutto l'inoltro, in modo simile a come un host IP usa normalmente un router predefinito per inoltrare tutto il traffico fuori dal proprio collegamento. Per un RFD che usa la consegna mesh, il "forwarder" è sempre l'FFD appropriato.

11.1. LoWPAN Broadcast (Broadcast LoWPAN)

Funzionalità aggiuntive di routing mesh sono codificate usando un'intestazione di routing che segue immediatamente l'intestazione mesh. In particolare, l'intestazione broadcast è composta dal Dispatch LOWPAN_BC0 seguito dal campo Sequence Number. Il Sequence Number è usato per rilevare pacchetti duplicati e, auspicabilmente, sopprimerli.

                       1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|LOWPAN_BC0 |Sequence Number|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figura 11: intestazione broadcast

Definizione dei campi:

Sequence Number: questo campo a 8 bit DEVE essere incrementato dall'originator ogni volta che invia un nuovo pacchetto mesh broadcast o multicast. La specifica completa di come trattare questo campo è fuori dall'ambito di questo documento.

Le ulteriori implicazioni di tale broadcast a livello mesh, ad esempio la sua mappatura su un meccanismo di controlled flooding o il suo ruolo nella scoperta della topologia, sono fuori dall'ambito di questo documento.

Capacità aggiuntive di routing mesh, come la specifica di un protocollo di routing mesh o source routing, possono essere espresse definendo ulteriori intestazioni di routing posizionate nello stack di intestazioni prima delle intestazioni di frammentazione o indirizzamento. La specifica completa di tali capacità di routing mesh è fuori dall'ambito di questo documento.