11. Frame Delivery in a Link-Layer Mesh (Rahmenübermittlung in einem Verbindungsschicht-Mesh)
Obwohl erwartet wird, dass 802.15.4-Netzwerke allgemein Mesh-Routing (Mesh Routing) verwenden werden, definiert die IEEE 802.15.4-2003-Spezifikation [ieee802.15.4] keine solche Fähigkeit. In diesem Szenario führen Geräte mit vollem Funktionsumfang (Full Function Devices, FFDs) Ad-hoc- oder Mesh-Routing-Protokolle aus, um ihre Routing-Tabellen zu füllen (außerhalb des Geltungsbereichs dieses Dokuments). In diesem Mesh-Szenario müssen zwei Geräte nicht direkt erreichbar sein, um miteinander zu kommunizieren. Unter diesen Geräten wird der Sender als „Absender" (Originator) und der Empfänger als „endgültiges Ziel" (Final Destination) bezeichnet. Das Absendergerät kann andere Zwischengeräte als Weiterleitungsknoten (Forwarders) in Richtung des endgültigen Ziels verwenden. Um diese Rahmenübermittlung per Unicast zu realisieren, müssen neben den Hop-by-Hop-Quell- und Zieladressen auch die Verbindungsschichtadressen des Absenders und des endgültigen Ziels enthalten sein.
Dieser Abschnitt definiert, wie die Übermittlung von Schicht-2-Rahmen in einem Mesh-Netzwerk realisiert wird, gegeben die Ziel-Verbindungsschichtadresse des „endgültigen Ziels".
Die Mesh-Übermittlung wird realisiert, indem ein Mesh-Adressierungs-Header (Mesh Addressing Header) vor alle anderen Header in der LoWPAN-Kapselung (Abschnitt 5) eingefügt wird, einschließlich nicht-fragmentierter und fragmentierter Header; vollständiger IPv6-Header; oder komprimierter IPv6-Header gemäß Abschnitt 10 oder anderswo definiert.
Wenn ein Knoten ein Paket über den Standard-Mesh-Weiterleitungsknoten übermitteln möchte (d. h. weil er keine direkte Erreichbarkeit zum Ziel hat), MUSS (MUST) er einen Mesh-Adressierungs-Header einfügen, in dem die Verbindungsschichtadresse des Absenders auf seine eigene gesetzt ist und die Verbindungsschichtadresse des endgültigen Ziels auf das endgültige Ziel des Pakets gesetzt ist. Er setzt die Quelladresse im 802.15.4-Header auf seine eigene Verbindungsschichtadresse und legt die Verbindungsschichtadresse des Weiterleitungsknotens in das Zieladressfeld des 802.15.4-Headers. Schließlich überträgt er das Paket.
Wenn ein Knoten einen Rahmen mit einem Mesh-Adressierungs-Header empfängt, MUSS (MUST) er das „Final Destination"-Feld des Mesh-Adressierungs-Headers betrachten, um das tatsächliche Ziel zu bestimmen. Wenn der Knoten selbst das endgültige Ziel ist, verarbeitet er das Paket auf normale Weise. Wenn er nicht das endgültige Ziel ist, dekrementiert das Gerät das „Hops Left"-Feld; wenn das Ergebnis null ist, wird das Paket verworfen. Andernfalls fragt der Knoten seine Verbindungsschicht-Routing-Tabelle ab, bestimmt, was der nächste Hop in Richtung des endgültigen Ziels sein soll, und legt diese Adresse in das Zieladressfeld des 802.15.4-Headers. Schließlich ändert der Knoten die Quelladresse im 802.15.4-Header auf seine eigene Verbindungsschichtadresse und überträgt das Paket.
Obwohl Knoten an einem Mesh-Routing-Protokoll teilnehmen MÜSSEN (MUST), um als Weiterleitungsknoten zu fungieren, gibt es keine solche Anforderung für die bloße Nutzung der Mesh-Weiterleitung. Es wird erwartet, dass nur „Geräte mit vollem Funktionsumfang" (FFDs) als Router im Mesh-Netzwerk teilnehmen. „Geräte mit reduziertem Funktionsumfang" (Reduced Function Devices, RFDs) beschränken sich darauf, FFDs zu entdecken und sie für alle Weiterleitungen zu verwenden, ähnlich wie IP-Hosts typischerweise einen Standard-Router für den gesamten Off-Link-Verkehr verwenden. Für ein RFD, das Mesh-Übermittlung verwendet, ist der „Weiterleitungsknoten" immer ein geeignetes FFD.
11.1. LoWPAN Broadcast (LoWPAN-Broadcast)
Zusätzliche Mesh-Routing-Funktionalität wird mit einem Routing-Header (Routing Header) kodiert, der unmittelbar auf den Mesh-Header folgt. Insbesondere besteht der Broadcast-Header aus dem LOWPAN_BC0-Dispatch gefolgt von einem Sequenznummer (Sequence Number)-Feld. Die Sequenznummer wird verwendet, um doppelte Pakete zu erkennen (und hoffentlich zu unterdrücken).
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0|1|LOWPAN_BC0 |Sequence Number|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Abbildung 11: Broadcast-Header
Felddefinitionen:
Sequence Number (Sequenznummer): Dieses 8-Bit-Feld SOLL (SHALL) jedes Mal inkrementiert werden, wenn der Absender ein neues Mesh-Broadcast- oder Multicast-Paket sendet. Die vollständige Spezifikation, wie dieses Feld zu behandeln ist, liegt außerhalb des Geltungsbereichs dieses Dokuments.
Weitere Implikationen solcher Mesh-Schicht-Broadcasts, z. B. ob sie einem kontrollierten Flooding-Mechanismus zugeordnet werden oder ihre Rolle bei der Topologieerkennung, liegen außerhalb des Geltungsbereichs dieses Dokuments.
Zusätzliche Mesh-Routing-Fähigkeiten, wie die Angabe von Mesh-Routing-Protokollen, Quell-Routing usw., können durch die Definition zusätzlicher Routing-Header ausgedrückt werden, die im Header-Stapel vor Fragmentierungs- oder Adressierungs-Headern stehen. Die vollständige Spezifikation solcher Mesh-Routing-Fähigkeiten liegt außerhalb des Geltungsbereichs dieses Dokuments.