Die Bluetooth® Mesh Fibel
3.1 Die Entwicklung der Bluetooth Technologie
4.6 Veröffentlichen / Abonnieren
4.7 Zustände und Eigenschaften
4.8 Zustände und Grundlegende Operationen
4.16.3 Zertifikatsbasiertes Provisioning
4.18.2 Stromsparende Knoten und Freundschaftsknoten
4.19 Weiterleitung von Nachrichten
4.19.1 Mehrstufige Nachrichtenübermittlung
4.19.2 Beherrschte Überflutung
4.20 Aktualisierung der Gerätefirmware
5.2 Die Bluetooth Mesh Spezifikationen
6.1 Veröffentlichung und Zustellung von Nachrichten
7.1 Sicherheit auf Bluetooth Mesh ist obligatorisch
7.3 Trennung von Belangen und Sicherheitsschlüsseln
7.4 Teilnetze und Teilnetzüberbrückung
7.5 Knotenentfernung, Schlüsselaktualisierung und Mülleimerangriffe
7.6.1 IV-Index und fortlaufende Nummern
7.6.2 Das IV-Aktualisierungsverfahren
9. Bluetooth Vernetzte Beleuchtungssteuerung (NLC)
10. Bluetooth Mesh Interessierte Kreise
10.2 Das Installationsprogramm
1. Revision Geschichte
Version | Date | Author | Changes |
---|---|---|---|
1.0.0 | 19 January 2019 | Martin Woolley, Bluetooth SIG | Initial version |
1.1.0 | 16 May 2024 | Martin Woolley, Bluetooth SIG | Updated to include key features of Bluetooth Mesh 1.1 and Bluetooth Networked Lighting Control (NLC) |
2. Über dieses Papier
Der Bluetooth® Mesh Primer wurde erstellt, um Technologieexperten wie Produktdesignern und -entwicklern zu helfen, sich schnell mit der Bluetooth Mesh Technologie vertraut zu machen, bevor sie die offiziellen technischen Spezifikationen konsultieren und tiefer in das Thema einsteigen.
Es ist nicht das Ziel dieses Papiers, denselben Grund wie die formalen Spezifikationen zu reproduzieren oder in derselben Tiefe zu behandeln. Von Zeit zu Zeit können kurze Auszüge aus den Spezifikationen aufgenommen werden, wenn dies sinnvoll ist. Sie sollten dieses Papier als Orientierungshilfe betrachten, indem es wichtige Konzepte von Bluetooth Mesh vorstellt und erklärt, den Weg zu anderen Ressourcen und Spezifikationen weist und hoffentlich die Lernkurve etwas weniger steil macht.
3. Einführung
3.1 Die Entwicklung der Bluetooth Technologie
Bluetooth Technologie gibt es seit dem Jahr 2000. Ursprünglich wurde sie entwickelt, um den drahtlosen Datenaustausch zwischen zwei Geräten zu ermöglichen, ohne dass weitere Netzwerkgeräte dazwischengeschaltet werden müssen, und fand schnell Eingang in Produkte wie drahtlose Mäuse und Freisprecheinrichtungen für Autos. Diese erste Version der Bluetooth Technologie, die in den allerersten Bluetooth Produkten verwendet wurde, ist offiziell als Bluetooth BR (Basic Rate) bekannt und arbeitet mit einer Million Bits[1] pro Sekunde (Mb/s) auf der physikalischen Schicht. Es folgte eine schnellere Version der gleichen Technologie, die die Bitrate auf 2 Mb/s verdoppelte und Bluetooth BR/EDR genannt wurde, wobei EDR für Enhanced Data Rate steht.
Bluetooth Low Energy (LE) erschien erstmals in Version 4.0 der Bluetooth Core Specification[2]. Dabei handelte es sich um eine neue Version der Technologie Bluetooth , die ihren Vorgänger Bluetooth BR/EDR nicht ersetzte, sondern als Alternative mit Fähigkeiten und Qualitäten, die sie perfekt für eine neue Generation von Produkten und die Erfüllung neuer und anspruchsvoller technischer und funktionaler Anforderungen machten.
Bluetooth LE unterstützt andere Topologien als die Punkt-zu-Punkt-Kommunikation zwischen zwei Geräten mit einem Broadcast-Modus, der es einem Gerät ermöglicht, Daten an eine unbegrenzte Anzahl von Empfängern gleichzeitig zu übertragen.
Bluetooth LE ist auch die Grundlage der Bluetooth Mesh Vernetzung, die es ermöglicht, Netzwerke mit Zehntausenden von Geräten zu schaffen, von denen jedes mit jedem anderen Gerät im Netzwerk kommunizieren kann.
3.2 Bluetooth Mesh Vernetzung
Bluetooth Mesh Networking wurde entwickelt, um eine sichere, skalierbare und standardisierte drahtlose Kommunikationstechnologie bereitzustellen, die auf die Probleme und Möglichkeiten von Geschäftsgebäuden angewendet werden kann.
Die vernetzte Beleuchtungssteuerung ist eine Schlüsselanwendung für Bluetooth Mesh und ermöglicht sowohl die manuelle als auch die automatisierte Beleuchtungssteuerung in großen Räumen. Eine einzelne Leuchte oder eine Gruppe von Leuchten kann in einem einzigen Netzwerkvorgang angesteuert werden.
Hier einige der wichtigsten Möglichkeiten der vernetzten Beleuchtungssteuerung auf der Basis eines Bluetooth Mesh Netzwerks.
- Sie können ein- und ausgeschaltet werden.
- Ihre Helligkeit (genauer gesagt: die Helligkeit) lässt sich auf einer einheitlichen Skala steuern, die die unterschiedliche Lichtempfindlichkeit des menschlichen Auges ausgleicht.
- Farbtemperatur, Farbton und Sättigung können verändert werden.
- Sensoren können Informationen über mehr oder weniger jede messbare Eigenschaft eines Raums an die entsprechenden Leuchten weitergeben, so dass deren Zustand automatisch an die Umgebungsbedingungen angepasst werden kann. Beachten Sie, dass Bluetooth Mesh keinen zentralen Router benötigt, um Nachrichten zwischen den Sensoren und Leuchten auszutauschen.
- Es können beliebige Sammlungen von bestimmten Zustandswerten, die als Szenen bezeichnet werden, definiert werden, und die Leuchten können mit einer einzigen Anfrage von einer Szene zur anderen wechseln.
- Szenenwechsel, die Gruppen von Leuchten betreffen, können so geplant werden, dass sie automatisch zu bestimmten Zeitpunkten stattfinden.
- Ermöglicht die automatische Auslösung von Szenen in Abhängigkeit von der Raumbelegung und den automatischen Übergang in den Standby-Zustand, wenn keine Personen anwesend sind. Dies hilft beim Energiesparen.
- Unterstützt die Möglichkeit, vordefinierte Zeitpläne für die Änderung der Beleuchtungszustände festzulegen.
- Unterstützt das Konzept der Herstellermodelle, die es den Herstellern ermöglichen, ihren Geräten bei Bedarf zusätzliche Funktionen hinzuzufügen.
Die Steuerung der Beleuchtung in einem Netz ist nicht durch die Reichweite der direkten drahtlosen Kommunikation begrenzt. Ein Gerät wie ein Schalter oder ein Sensor kann die Kontrolle über Leuchten ausüben, die sich in den weit entfernten Bereichen eines Gebäudes befinden, vielleicht mehrere Stockwerke darüber.
Die Sicherheit wurde von Anfang an in die Technologie von Bluetooth Mesh integriert, die sich mit potenziellen Problemen und Bedrohungen befasst:
- Wahrung der Vertraulichkeit von Informationen
- Verhinderung der Verfolgung von Geräten durch Mechanismen zum Schutz der Privatsphäre von Geräten und Netzen
- Verhinderung der Manipulation von Netzkontrollmeldungen
- Beschränkung der Aktionen von Geräten auf bestimmte Teile des Netzes
- Verhinderung von Replay-Angriffen
- Sicherstellung, dass das Hinzufügen von Geräten zum Netz einem sicheren Verfahren unterliegt
- Sicherstellung, dass Geräte sicher aus dem Netz entfernt werden können, ohne dass die Gefahr besteht, dass ausrangierte Geräte zu einem späteren Zeitpunkt für einen unbefugten Zugriff verwendet werden können
- die Möglichkeit, Gästen den Zugang zu relevanten Funktionen im Netz zu gewähren und zu entziehen, ohne die Sicherheit eines größeren Netzes zu beeinträchtigen.
Gebäude, die mit einem Bluetooth Mesh Netzwerk und einer drahtlosen, vernetzten Beleuchtungssteuerung ausgestattet sind, bieten eine Reihe von Vorteilen.
- Sie werden energieeffizienter, da Sensoren Daten über die Umgebungshelligkeit und die Raumbelegung liefern, die automatisch zur Anpassung der Beleuchtungsstärke verwendet werden können.
- Die Beleuchtung kann per Knopfdruck oder über die Benutzeroberfläche einer Smartphone-Anwendung (UI) neu konfiguriert werden, um sie für die aktuelle Nutzung eines Raums zu optimieren, sei es für eine Präsentation oder ein Meeting am runden Tisch eines großen Unternehmens.
- Die proaktive Wartung wird durch die Nutzungs- und Zustandsdaten der Geräte erleichtert, die Bluetooth Mesh zur Verfügung stellen kann.
- Änderungen der räumlichen Anordnung und der Beleuchtungsanforderungen in einem Gebäude lassen sich leichter vornehmen. Es ist drahtlos!
- Bluetooth Mesh Technologie wird durch eine Reihe von Standardspezifikationen definiert, die den gesamten Protokollstapel sowie das Verhalten, die Fähigkeiten und die Schnittstellen zu den Geräten umfassen. Dies bedeutet, dass konforme Produkte von verschiedenen Herstellern interoperabel sind. Wer die Technologie Bluetooth Mesh einführt, ist nicht an einen einzigen Hersteller oder eine kleine, geschlossene Gruppe gebunden.
4. Hauptmerkmale und Konzepte
Um die Netzwerktopologie von Bluetooth Mesh zu verstehen, muss der Leser eine Reihe grundlegender Funktionen, technischer Begriffe und Konzepte kennenlernen, die nirgendwo sonst in der Welt von Bluetooth LE zu finden sind. In diesem Abschnitt werden wir uns mit den grundlegendsten dieser Funktionen, Begriffe und Konzepte befassen.
4.1 Bluetooth Betriebsmodi
Bluetooth LE definiert eine Reihe von verschiedenen Möglichkeiten, wie Geräte miteinander kommunizieren können. Sie sind formell in der Bluetooth Core Specification definiert und werden in diesem Dokument informell als "Betriebsmodi" bezeichnet.
Die verschiedenen Betriebsarten unterscheiden sich unter anderem durch die von den Geräten gebildete Topologie, die mögliche Kommunikationsrichtung und die der Betriebsart zugrundeliegenden technischen Merkmale, z. B. ob es sich um eine verbindungsorientierte oder verbindungslose Betriebsart handelt.
Bei der verbindungsorientierten Kommunikation tauschen die Geräte zunächst Informationen aus, die es ihnen ermöglichen, wichtige Aspekte der nachfolgenden Kommunikation zu vereinbaren, wie z. B. die Sende- und Empfangszeitparameter. Bei der verbindungslosen Kommunikation geschieht dies nicht, und die Sende- und Empfangszeitpunkte werden nicht auf die gleiche Weise im Voraus vereinbart. In Bluetooth LE findet die verbindungsorientierte Kommunikation immer zwischen genau zwei Geräten statt, während die verbindungslose Kommunikation von einem sendenden Gerät zur Kommunikation mit mehreren empfangenden Geräten verwendet werden kann, mit oder ohne ein gewisses Maß an vorher vereinbarter Information über die Parameter.
Die Topologie befasst sich mit der Kardinalität der Beziehungen, die zwischen kommunizierenden Geräten gebildet werden können. Es werden drei verschiedene Topologien unterschieden:
- Eins-zu-eins (1:1)
- eins-zu-viele (1:m)
- viele-zu-viele (m:n)
Einige Betriebsarten erlauben die Kommunikation von Anwendungsdaten nur in eine Richtung, während andere eine bidirektionale Kommunikation ermöglichen.
Bei einigen Modi erfolgt die Übertragung der Pakete nach einem genau festgelegten Zeitplan, in anderen Fällen ist sie unregelmäßig.
Derzeit sind sieben Betriebsarten definiert. Sie lauten wie folgt:
- LE Asynchroner verbindungsorientierter logischer Transport (LE ACL)
- LE Werbeübertragung (ADVB)
- LE Regelmäßige Werbung (PADVB)
- LE Periodische Werbung mit Antworten (PAwR)
- Verbundener isochroner Strom (CIS)
- Isochroner Übertragungsstrom (BIS)
- Channel Sounding (CS)
Die Bluetooth Core Specification definiert jeden Modus im Detail.
In Tabelle 1 sind die wichtigsten Eigenschaften der sieben Betriebsarten zu Vergleichszwecken zusammengefasst. Beachten Sie, dass Channel Sounding (CS) ein spezieller Modus ist, der nur die sichere Berechnung der Entfernung zwischen zwei Geräten unterstützt und nicht für die Übertragung von Anwendungsdaten verwendet wird.
Operational Mode | Connection-Oriented or Connectionless | Topology | Transmit Schedule | Direction of Application Data |
---|---|---|---|---|
LE ACL |
connection-oriented |
point-to-point |
regular |
bidirectional |
ADVB |
connectionless |
one-to-many |
irregular |
unidirectional |
PADVB |
connectionless |
one-to-many |
regular |
unidirectional |
PAwR |
connectionless |
one-to-many |
regular |
bidirectional |
CIS |
connection-oriented |
point-to-point |
regular |
bidirectional |
BIS |
connectionless |
one-to-many |
regular |
unidirectional |
CS |
N/A |
one-to-one |
regular |
N/A |
Tabelle 1 - Attribute der Bluetooth Betriebsmodi
Bluetooth Mesh Technologie ist keine Betriebsart. Es handelt sich um ein Protokoll mit einer Reihe von definierten Prozeduren, Standardverhalten auf der Anwendungsebene und anderen Merkmalen, die es ermöglichen, Bluetooth LE als drahtlose Netzwerktechnologie zu nutzen. Es baut auf den Kernfähigkeiten von Bluetooth LE auf, einschließlich einiger der Betriebsmodi, so dass es zeitweise verbindungslos und zeitweise verbindungsorientiert kommuniziert. Im Prinzip ist die Topologie eines Bluetooth Mesh Netzwerks ein Many-to-Many-Netzwerk, da jedes Gerät potenziell mit jedem anderen Gerät kommunizieren kann und die Kommunikation von Anwendungsdaten in beide Richtungen erfolgen kann.
Die Kommunikation erfolgt mit Hilfe von Nachrichten, die von Bluetooth LE in geeigneter Weise über einen Mechanismus transportiert werden, der als " Bearer" bezeichnet wird und auf einem der Betriebsmodi basiert. Die Geräte sind in der Lage, Nachrichten an andere Geräte im gesamten Netzwerk weiterzuleiten, so dass die Reichweite der End-to-End-Kommunikation weit über die Funkreichweite jedes einzelnen mesh Gerätes hinausgeht.
4.2 Geräte und Knotenpunkte
Geräte, die Teil eines mesh Netzwerks sind, werden als Knoten bezeichnet, während Geräte, die nicht Teil eines Netzwerks sind, als unprovisionierte Geräte bezeichnet werden.
Der Prozess, bei dem ein nicht provisioniertes Gerät in einen Knoten umgewandelt wird, heißt Provisioning.
Die Bereitstellung ist ein Verfahren, das dazu führt, dass ein nicht bereitgestelltes Gerät eine Reihe von Sicherheitsschlüsseln besitzt, ihm eine Unicast-Adresse zugewiesen wird und es in einer Datenbank auf einem Gerät, dem so genannten Provisioner, aufgeführt wird. Bei dem Provisioner handelt es sich in der Regel um ein Tablet oder Smartphone.
4.3 Elemente
Einige Knoten bestehen aus mehreren Teilen, die unabhängig voneinander gesteuert werden können. In der Terminologie von Bluetooth Mesh werden diese Teile als Elemente bezeichnet. Abbildung 1 zeigt ein LED-Beleuchtungsprodukt, das, wenn es zu einem Bluetooth Mesh Netzwerk hinzugefügt wird, einen einzelnen Knoten mit drei Elementen bilden würde, eines für jede der einzelnen LED-Leuchten.
Abbildung 1 - Beleuchtungsknoten, bestehend aus drei Elementen
4.4 Botschaften
Wenn ein Knoten den Status anderer Knoten abfragen oder andere Knoten in irgendeiner Weise steuern muss, sendet er eine Nachricht eines geeigneten Typs. Wenn ein Knoten seinen Status an andere Knoten melden muss, sendet er eine Nachricht. Die gesamte Kommunikation im Netz mesh ist nachrichtenorientiert, und es sind viele Nachrichtentypen definiert, die jeweils einen eigenen Opcode haben.
Die Nachrichten fallen in eine von zwei großen Kategorien:
- Bestätigte Nachrichten erfordern eine Antwort von den Knoten, die sie empfangen. Die Antwort dient zwei Zwecken: Sie bestätigt, dass die Nachricht, auf die sie sich bezieht, empfangen wurde, und sie sendet Daten über den Empfänger der Nachricht an den ursprünglichen Absender der Nachricht zurück. Der Absender einer bestätigten Nachricht kann die Nachricht erneut senden, wenn er die erwartete(n) Antwort(en) nicht erhält; daher müssen bestätigte Nachrichten idempotent sein. Das bedeutet, dass eine bestimmte bestätigte Nachricht, die mehrfach bei einem Knoten ankommt, die gleiche Wirkung hat, als wäre sie nur einmal empfangen worden.
- Unbestätigte Nachrichten müssen nicht beantwortet werden.
Die meisten Bluetooth Mesh Szenarien beinhalten die Verwendung von unbestätigten Nachrichten, da dieses Modell der Nachrichtenübermittlung sehr gut skalierbar ist. Die Zuverlässigkeit wird dadurch gewährleistet, dass die Knoten so konfiguriert werden, dass sie Kopien von Nachrichten mehrmals kurz hintereinander erneut übermitteln.
Nachrichten, die die Rücksendung von Bestätigungen erfordern, funktionieren gut, wenn das Ziel ein einzelnes Gerät ist, sind aber nicht gut skalierbar, wenn sie eine Gruppe von mehreren Geräten betreffen. Die meisten Nachrichten, die an der Konfiguration eines Knotens oder seiner Elemente beteiligt sind, verwenden bestätigte Nachrichten.
Ein System, das als Relaying bezeichnet wird, ermöglicht die Zustellung von Nachrichten über die unmittelbare Funkreichweite hinaus. Relaying wird in 4.19 Message Relaying erklärt.
4.5 Anschriften
Nachrichten müssen von und an eine Adresse gesendet werden. Bluetooth Mesh definiert drei Arten von Adressen.
Eine Unicast-Adresse identifiziert eindeutig ein einzelnes Element. Eine Unicast-Adresse wird einem Gerät während des Bereitstellungsprozesses zugewiesen.
Eine Gruppenadresse ist eine Multicast-Adresse. Dieser Adresstyp ermöglicht es mehr als einem Gerät, dieselbe übertragene Nachricht durch einen Prozess namens "Publish and Subscribe" zu empfangen. Gruppenadressen werden entweder von Bluetooth SIG definiert und sind als feste Gruppenadressen bekannt oder werden dynamisch zugewiesen. Es wurden sieben SIG feste Gruppenadressen definiert. Diese heißen all-nodes, all-relays, all-friends, all-proxies, all-directed-forwarding-proxies, all-ipt-nodes und all-ipt-border-routers. Die Begriffe "Proxy", "Friend" und "Relay" werden später in diesem Dokument erläutert.
Es wird erwartet, dass dynamische Gruppenadressen vom Benutzer über eine Konfigurationsanwendung eingerichtet werden und dass sie die physische Konfiguration eines Gebäudes widerspiegeln, z. B. die Festlegung von Gruppenadressen, die jedem Raum im Gebäude entsprechen.
Eine virtuelle Adresse ist einer Gruppenadresse insofern ähnlich, als sie es ermöglicht, dass eine einzige gesendete Nachricht durch Veröffentlichen und Abonnieren von mehreren Geräten empfangen werden kann. Sie hat die Form eines 128-Bit-UUID-Wertes, mit dem jedes beliebige Element verknüpft werden kann und der einem Etikett sehr ähnlich ist. Virtuelle Adressen können beispielsweise bei der Herstellung vorkonfiguriert und für Szenarien verwendet werden, die eine einfache Adressierung aller Projektoren eines Herstellers für Besprechungsräume ermöglichen, die in einem mesh Netzwerk eingesetzt werden.
4.6 Veröffentlichen / Abonnieren
Der Vorgang des Versendens einer Nachricht wird als Veröffentlichung bezeichnet. Die Knoten sind so konfiguriert, dass sie nur die Nachrichten empfangen, die zur Verarbeitung an bestimmte Adressen gesendet wurden. Dies wird als "Abonnieren" bezeichnet.
Normalerweise werden Nachrichten an Gruppen- oder virtuelle Adressen adressiert. Die Namen von Gruppen- und virtuellen Adressen haben für den Endbenutzer eine leicht verständliche Bedeutung, so dass sie bei der Konfiguration von Geräten einfach und intuitiv zu verwenden sind.
In Abbildung 2 ist zu sehen, dass der Knoten Switch 1 Nachrichten an die Gruppenadresse Reception veröffentlicht. Die Knoten Licht 1, Licht 2 und Licht 3 haben jeweils die Adresse Empfang abonniert und verarbeiten daher die an diese Adresse veröffentlichten Nachrichten. Mit anderen Worten: Licht 1, Licht 2 und Licht 3 können über Schalter 1 ein- oder ausgeschaltet werden.
Schalter 2 veröffentlicht an die Gruppenadresse Accounts. Nur Leuchte 3 hat diese Adresse abonniert und ist somit die einzige Leuchte, die von Schalter 2 gesteuert wird. Dieses Beispiel veranschaulicht auch die Tatsache, dass Knoten Nachrichten abonnieren können, die an mehr als eine bestimmte Adresse gerichtet sind. Dies ist sowohl leistungsstark als auch flexibel.
Beachten Sie auch, dass sowohl Schalter 5 als auch Schalter 6 an dieselbe Underwriting-Adresse veröffentlichen.
Die Verwendung von Gruppen- und virtuellen Adressen mit dem Publish/Subscribe-Kommunikationsmodell hat den zusätzlichen Vorteil, dass das Entfernen, Ersetzen oder Hinzufügen neuer Knoten zum Netz keine Neukonfiguration der anderen Knoten erfordert. Stellen Sie sich vor, wie die Installation einer zusätzlichen Lampe in der Buchhaltung ablaufen würde. Das neue Gerät würde mit Hilfe des Provisioning-Prozesses zum Netzwerk hinzugefügt und so konfiguriert, dass es die Adresse der Buchhaltung abonniert. Keine anderen Knoten wären von dieser Änderung des Netzwerks betroffen. Switch 2 würde wie bisher Nachrichten an Accounts veröffentlichen, aber nun würden sowohl Light 3 als auch die neue Leuchte antworten.
Abbildung 2 - Veröffentlichen und Abonnieren
4.7 Zustände und Eigenschaften
Elemente können sich in verschiedenen Zuständen befinden, und dies wird in Bluetooth Mesh durch das Konzept der Zustandswerte dargestellt.
Ein Zustand ist ein Wert eines bestimmten Typs, der in einem Element und einem seiner Modelle enthalten ist (siehe unten). Zustände haben auch zugehörige Verhaltensweisen und dürfen in anderen Kontexten nicht wiederverwendet werden.
Nehmen wir als Beispiel ein einfaches Licht, das entweder an oder aus sein kann. Bluetooth Mesh definiert einen Zustand namens Generic OnOff. Das Licht würde diesen Zustand besitzen und ein Wert von Ein würde dem entsprechen und bewirken, dass das Licht leuchtet, während ein generischer OnOff-Zustandswert von Aus bewirken würde, dass das Licht ausgeschaltet wird.
Auf die Bedeutung des Begriffs Generisch wird später noch eingegangen.
Eigenschaften ähneln Zuständen insofern, als sie Werte enthalten, die sich auf ein Element beziehen. Sie unterscheiden sich jedoch in anderer Hinsicht von Zuständen.
Leser, die mit Bluetooth LE[3] vertraut sind, werden wissen, dass es sich bei Merkmalen um Datentypen handelt, denen kein bestimmtes Verhalten zugeordnet ist, so dass sie in verschiedenen Kontexten, z. B. innerhalb verschiedener GATT-Dienste, wiederverwendet werden können. Eine mesh Eigenschaft liefert den Kontext für die Interpretation eines Merkmals in einem Bluetooth Mesh Gerät.
Um die Bedeutung und Verwendung von Kontexten im Zusammenhang mit Eigenschaften zu verstehen, betrachten Sie zum Beispiel das Merkmal Temperatur 8, einen 8-Bit-Temperaturzustandstyp, der eine Reihe zugehöriger Eigenschaften hat, darunter Aktuelle Innentemperatur und Aktuelle Außentemperatur. Diese beiden Eigenschaften ermöglichen es einem Sensor, Sensormesswerte in einer Weise zu veröffentlichen, die es einem empfangenden Client ermöglicht, den Kontext zu bestimmen, in dem der Temperaturwert steht, und so seine wahre Bedeutung besser zu erkennen.
4.8 Zustände und Grundlegende Operationen
Nachrichten sind der Mechanismus, mit dem Operationen, die auf mesh Geräte wirken, aufgerufen werden. Ein bestimmter Nachrichtentyp definiert eine Operation für einen Zustand oder eine Sammlung von Zustandswerten. Alle Nachrichten sind in drei große Typen unterteilt, die die von Bluetooth Mesh unterstützten Operationstypen widerspiegeln. Die Kurzbezeichnungen für diese drei Typen sind GET, SET und STATUS.
GET-Nachrichten fordern den Wert eines bestimmten Zustands von einem oder mehreren Elementen an. Eine STATUS-Nachricht wird als Antwort auf eine GET-Nachricht gesendet und enthält den entsprechenden Statuswert.
SET-Meldungen ändern den Wert eines bestimmten Zustands. Eine bestätigte SET-Nachricht führt dazu, dass als Antwort auf die SET-Nachricht eine STATUS-Nachricht zurückgesendet wird, während eine unbestätigte SET-Nachricht keine Antwort erfordert.
STATUS-Meldungen werden als Antwort auf GET-Meldungen, bestätigte SET-Meldungen oder unabhängig von anderen Meldungen gesendet, z. B. gesteuert durch einen Timer, der auf dem Element läuft, das die Meldung sendet.
Spezifische Zustände, auf die in Meldungen Bezug genommen wird, werden aus dem Opcode der Meldung abgeleitet. Auf Eigenschaften hingegen wird in allgemeinen, eigenschaftsbezogenen Nachrichten unter Verwendung einer 16-Bit-Eigenschafts-ID explizit Bezug genommen.
4.9 Zustandsübergänge
Der Wechsel von einem Zustand in einen anderen wird als Zustandsübergang bezeichnet. Die Übergänge können augenblicklich erfolgen oder sich über eine Zeitspanne erstrecken, die als Übergangszeit bezeichnet wird. Ein Zustandsübergang hat wahrscheinlich Auswirkungen auf das Verhalten oder das Erscheinungsbild eines Knotens auf der Anwendungsschicht.
4.10 Gebundene Zustände
Zwischen Zuständen können Beziehungen bestehen, bei denen eine Änderung des einen eine Änderung des anderen auslöst. Eine solche Beziehung wird als Zustandsbindung bezeichnet. Ein Zustand kann an mehrere andere Zustände gebunden sein.
Nehmen wir zum Beispiel ein Licht, das durch einen Dimmerschalter gesteuert wird. Das Licht könnte die beiden Zustände "Generisches Ein-Aus" und "Generisches Niveau" haben, die jeweils an den anderen gebunden sind. Verringert man die Helligkeit des Lichts, bis die generische Stufe den Wert Null hat (vollständig gedimmt), so geht die generische Stufe vom Zustand "Ein" in den Zustand "Aus" über.
4.11 Modelle
Modelle fassen die vorangegangenen Konzepte zusammen und definieren Kombinationen von Zustandsdaten und zugehörigen Nachrichtentypen und -funktionen in ähnlicher Weise wie eine Klasse oder ein Objekt in der objektorientierten Softwareentwicklung.
Ein Modell ist in der Regel entweder ein Servermodell oder ein Clientmodell.
- Ein Servermodell definiert eine Sammlung von Zuständen, Zustandsübergängen, Zustandsbindungen und Nachrichten, die das Element, das das Modell enthält, senden oder empfangen kann. Außerdem definiert es Verhaltensweisen in Bezug auf die unterstützten Nachrichten, Zustände und Zustandsübergänge.
- Ein Client-Modell definiert keine Zustände. Stattdessen definiert es die Nachrichten, die es senden oder empfangen kann, um den STATUS von Zuständen, die im entsprechenden Servermodell definiert sind, zu GET, SET oder zu erwerben.
Modelle können durch Erweiterung anderer Modelle erstellt werden. Ein Modell, das nicht erweitert wird, nennt man ein Stammmodell.
Modelle sind unveränderlich, das heißt, sie dürfen nicht durch Hinzufügen oder Entfernen von Verhaltensweisen verändert werden. Der richtige und einzig zulässige Ansatz zur Umsetzung neuer Modellanforderungen ist die Erweiterung des bestehenden Modells.
Basismodelle sind die Modelle, die für die Konfiguration und Verwaltung eines mesh Netzes erforderlich sind. Andere Modelle befassen sich mit den spezifischen Arten von Funktionen, die für bestimmte Produktklassen erforderlich sind.
4.12 Generika
Es ist bekannt, dass viele verschiedene Gerätetypen oft semantisch äquivalente Zustände haben, wie die einfache Vorstellung von EIN und AUS zeigt. Man denke an Lichter, Ventilatoren und Steckdosen, die alle ein- oder ausgeschaltet werden können.
Folglich definiert die Bluetooth Mesh Modellspezifikation eine Reihe von wiederverwendbaren, generischen Zuständen wie Generic OnOff und Generic Level.
In ähnlicher Weise werden eine Reihe generischer Nachrichten definiert, die auf die generischen Zustände wirken. Beispiele hierfür sind Generic OnOff Get und Generic Level Set.
Generische Zustände und generische Nachrichten werden in verallgemeinerten Modellen verwendet, sowohl in generischen Servermodellen wie dem Generic OnOff Server als auch in generischen Clientmodellen wie dem Generic Level Client.
Mit Hilfe von Generika kann eine breite Palette von Gerätetypen unterstützt werden Bluetooth Mesh , ohne dass neue Modelle erstellt werden müssen. Denken Sie daran, dass Modelle auch durch die Erweiterung anderer Modelle erstellt werden können. So können generische Modelle die Grundlage für die schnelle Erstellung von Modellen für neue Gerätetypen bilden.
Abbildung 3 - Allgemeine Modelle
4.13 Schauplätze
Eine Szene ist eine gespeicherte Sammlung von Zuständen, die als Reaktion auf den Empfang eines speziellen Nachrichtentyps oder zu einem bestimmten Zeitpunkt abgerufen und aktualisiert werden können. Szenen werden durch eine 16-Bit-Szenennummer identifiziert, die innerhalb des Netzes mesh eindeutig ist.
Szenen ermöglichen es, eine Reihe von Knoten in einer einzigen koordinierten Aktion in eine bestimmte Sammlung von zuvor gespeicherten, sich ergänzenden Zuständen zu versetzen.
Stellen Sie sich vor, Sie möchten, dass in Ihrem Empfangsbereich morgens eine Temperatur von 20 Grad Celsius herrscht, die LED-Leuchten eine bestimmte Helligkeit haben und die Lampe auf dem Schreibtisch des Empfangsmitarbeiters in einem schönen warmen Gelbton leuchtet. Nachdem Sie die verschiedenen Knoten in diesem Beispielszenario manuell auf diese Zustände eingestellt haben, können Sie sie mit einer Konfigurationsanwendung als Szene speichern und die Szene später abrufen, entweder bei Bedarf durch Senden einer entsprechenden, szenenbezogenen Nachricht mesh oder automatisch zu einem geplanten Zeitpunkt.
4.14 Netzwerke und Subnetze
Ein Bluetooth Mesh Netz wird durch vier gemeinsame Ressourcen definiert: Adressraum, Netzschlüssel, Anwendungsschlüssel und IV-Index. Ein Bluetooth Mesh Netz kann in eine Reihe von Teilnetzen unterteilt werden. Im Gegensatz zu Netzen, die auf Protokollen wie TCP/IP basieren, steht die Zugehörigkeit zu einem bestimmten Netz in keinem Zusammenhang mit der Adresse des Geräts. Stattdessen wird die Bluetooth Mesh Netz- und Subnetzzugehörigkeit hauptsächlich durch die Vergabe eines Netzschlüssels an einen Knoten erreicht (siehe 4.15 Schlüssel). Ein Element kann mit mehreren Netzwerkschlüsseln ausgestellt werden und somit Mitglied in mehr als einem Subnetz sein. Teilnetze können vollständig voneinander getrennt sein, sich aber auch überschneiden oder vollständig in einem anderen Teilnetz enthalten sein.
Subnetze haben eine Reihe von Verwendungszwecken, darunter:
- Erhöhung der Sicherheit des Netzes durch Isolierung einer Gruppe von Geräten von anderen, nicht verwandten Geräten.
- Die Nutzung des Funkspektrums kann effizienter gestaltet werden, indem der Nachrichtenfluss über die Grenzen des Teilnetzes hinaus verhindert wird.
- Vereinfachung der Netzwerkverwaltung. So kann beispielsweise einem "Gastgerät" mit Hilfe eines Subnetzes und seines Netzwerkschlüssels vorübergehend Zugang zu einem kleinen Teil des Netzwerks gewährt werden.
Abbildung 4 zeigt die Subnetze, die für jedes Gästezimmer in einem Hotel verwendet werden.
Ein Teilnetz wird als das primäre Teilnetz bezeichnet. Geräte, von denen erwartet wird, dass sie dauerhafte Mitglieder des Netzwerks sind, werden zu Mitgliedern des primären Subnetzes gemacht.
Abbildung 4 - ein Beispiel für die Verwendung von Teilnetzen zur Isolierung von Geräten in den einzelnen Hotelzimmern
4.15 Tasten
Die Bluetooth Mesh Protokollspezifikation definiert mehrere Arten von Sicherheitsschlüsseln.
- Jeder Knoten hat einen eindeutigenGeräteschlüssel(DevKey). Nur das Gerät, an das er ausgegeben wird, und der Provisioner kennen diesen Schlüsselwert. Dieser Schlüssel wird verwendet, um den Konfigurationsprozess sicher zu machen.
- Ein Gerät verfügt über mindestens einen gemeinsamenNetzwerkschlüssel(NetKey). Diese Art von Schlüssel sichert die Kommunikation auf der Netzwerkebene. Der Besitz eines bestimmten NetKey macht einen Knoten zu einem Teil des zugehörigen Netzes oder Teilnetzes. Ein spezieller Schlüssel, der so genannte primäre NetKey, bezieht sich auf das primäre Netz mesh .
- Ein mesh Netzwerk verfügt über mindestens einenAnwendungsschlüssel(AppKey). Beispiele für Anwendungen, die das Netz unterstützt, könnten Beleuchtung, Klimaanlage oder Heizung sein. Ein AppKey wird verwendet, um die Kommunikation auf der oberen Transportschicht zu sichern, und hat den Effekt, dass die Nachrichtenübermittlung zwischen verschiedenen Anwendungen unter dem Gesichtspunkt der Sicherheit aufgeteilt wird.
Ein Geräteschlüssel und der primäre Netzwerkschlüssel werden jedem Knoten während des Provisioning-Prozesses (siehe 4.16 Provisioning) zugewiesen. Anwendungsschlüssel und ggf. weitere Netzwerkschlüssel, die Subnetzen entsprechen, werden während der Konfiguration an ein Gerät ausgegeben (siehe 4.17 Konfiguration).
4.16 Bereitstellen
Die Bereitstellung ist der Prozess, durch den ein Gerät dem Netz mesh beitritt und zu einem Knoten wird. Er umfasst mehrere Stufen, führt zur Erzeugung verschiedener Sicherheitsschlüssel und ist selbst ein sicherer Prozess.
Die Bereitstellung erfolgt in der Regel über eine Anwendung auf einem Gerät, z. B. einem Smartphone oder Tablet. Andere Architekturen (z. B. cloudbasierte Bereitstellung) sind möglich. In dieser Eigenschaft wird das Gerät, das den Bereitstellungsprozess steuert, als Bereitsteller und das Gerät, das bereitgestellt wird, als Bereitstellungsnehmer bezeichnet.
Ein Provisioner kann ein Gerät bereitstellen, das sich in direkter Funkreichweite befindet. Eine optionale Funktion, die als Remote Provisioning bezeichnet wird, ermöglicht die Bereitstellung eines Geräts, das sich an einem beliebigen Ort innerhalb des Netzwerks in beliebiger Entfernung zum Provisioner befindet.
4.16.1 Direkte Bereitstellung
Der Prozess der direkten Bereitstellung erfolgt in fünf Schritten, die im Folgenden beschrieben werden.
Schritt 1. Befeuerung
Ein unprovisioniertes Gerät zeigt seine Bereitschaft zur Bereitstellung an, indem es ein Unprovisioned Device Beacon sendet. Dies wird durch die Aufnahme eines Mesh Beacon-Werbedatentyps (AD) in das Nutzdatenfeld des Werbepakets angezeigt.
Der Benutzer muss auf diese Weise eine neue Gerätewerbung starten, z. B. durch Drücken einer Taste.
Schritt 2. Einladung
In diesem Schritt sendet der Provisioner eine Einladung an den Provisionee in Form einer Provisioning Invite PDU. Das funkende Provisionee-Gerät antwortet mit Informationen über sich selbst in einer Provisioning Capabilities PDU.
Schritt 3. Austausch von öffentlichen Schlüsseln
Der Bereitsteller und der Bereitstellungsempfänger tauschen ihre öffentlichen Schlüssel, die statisch oder ephemer sein können, entweder direkt oder unter Verwendung einer Out-of-Band-Methode (OOB) aus.
Falls unterstützt, können X.509-Zertifikate für die Authentifizierung öffentlicher Schlüssel verwendet werden. Siehe 4.16.3 Zertifikatsgestützte Bereitstellung.
Schritt 4. Authentifizierung
In diesem Schritt führen der Provisioner und der Provisionee bestimmte Aktionen zur Authentifizierung durch. So könnte der Provisionee dem Benutzer eine zufällige ein- oder mehrstellige Zahl in irgendeiner Form ausgeben und dabei eine seinen Fähigkeiten entsprechende Aktion durchführen. Er könnte zum Beispiel einen mehrstelligen numerischen Wert anzeigen. Der Benutzer gibt dann die von dem neuen Gerät ausgegebenen Ziffern in den Provisioner ein, und zwischen den beiden Geräten findet ein kryptografischer Austausch statt, bei dem die Zufallszahl verwendet wird, um die Authentifizierung der beiden Geräte gegenüber dem jeweils anderen Gerät abzuschließen. Ebenso könnte der Provisioner einen Wert ausgeben, der beim Provisionee eingegeben werden muss. Es sind verschiedene Authentifizierungsmethoden möglich, die zum Teil von den Eingabe-/Ausgabefähigkeiten der Geräte abhängen.
Schritt 5. Verteilung der Bereitstellungsdaten
Nach erfolgreicher Authentifizierung wird von jedem der beiden Geräte ein Sitzungsschlüssel aus den privaten Schlüsseln und den ausgetauschten öffentlichen Schlüsseln der Gegenseite abgeleitet. Der Sitzungsschlüssel wird dann verwendet, um die anschließende Verteilung der Daten zu sichern, die für den Abschluss des Bereitstellungsprozesses erforderlich sind, einschließlich eines Sicherheitsschlüssels, der als Netzschlüssel (NetKey) bezeichnet wird, und eines gerätespezifischen Schlüssels, des sogenannten Geräteschlüssels (DevKey). Entscheidend ist, dass der Geräteschlüssel von Provisioner und Provisionee unabhängig voneinander berechnet wird und daher niemals über die Luft übertragen wird.
Nach Abschluss der Bereitstellung verfügt das bereitgestellte Gerät über einen DevKey, den NetKey des Netzwerks, einen mesh Sicherheitsparameter, den so genannten IV-Index, und eine Unicast-Adresse, die vom Bereitsteller zugewiesen wurde. Es ist nun als Knoten bekannt.
4.16.2 Fernbereitstellung
Bei der Fernbereitstellung (RPR) können sich der Bereitsteller und das nicht bereitgestellte Gerät an einem beliebigen Ort befinden, sofern ein Kommunikationspfad über das Netz zwischen den beiden Geräten hergestellt werden kann. Dies bietet einen praktischeren Ansatz für die Bereitstellung in vielen realen Situationen.
Abbildung 5 - Fernbereitstellung
4.16.3 Zertifikatsbasiertes Provisioning
Der Bereitstellungsprozess umfasst einen Authentifizierungsschritt. Die Authentifizierung kann auf verschiedene Weise erfolgen, z. B. durch die Anzeige einer mehrstelligen Zahl. Im Allgemeinen erfordert die Authentifizierung, dass sich das Gerät, das bereitgestellt werden soll, in Sichtweite der Person befindet, die die Bereitstellung vornimmt, damit (z. B.) die Anzahl der Blinksignale einer LED gezählt werden kann. Dies ist jedoch nicht immer praktisch. Insbesondere bei der Fernbereitstellung kann sich das bereitzustellende Gerät völlig außer Sichtweite befinden, vielleicht auf der anderen Seite des Gebäudes.
X.509-Zertifikate sind digitale, öffentliche Schlüsselzertifikate, die ein Standardformat haben. Bluetooth Mesh unterstützt die Verwendung von X.509-Zertifikaten bei der Bereitstellung. Geräte, die mit X.509-Zertifikaten bereitgestellt werden, müssen nicht in Sichtweite sein und eignen sich daher sehr gut für die Fernbereitstellung.
4.17 Konfiguration
Jeder Knoten unterstützt einen Standardsatz von Konfigurationszuständen, die im Standard-Konfigurationsservermodell implementiert sind und auf die mit dem Konfigurations-Clientmodell zugegriffen wird. Die Konfigurationszustandsdaten betreffen die Zusammensetzung des Knotens und die Fähigkeiten, die unabhängig von einer bestimmten Anwendung oder dem Verhalten des Gerätetyps sind (diese werden durch andere auf dem Gerät implementierte Modelle geregelt).
Der Status "Composition Data" ist in Seiten unterteilt und enthält Informationen über den Knoten, einschließlich seiner Elemente und der von ihm unterstützten Modelle. Das Modell "Large Composition Data Server" ergänzt diesen Status und bietet Unterstützung für Geräte, die eine komplexe Zusammensetzung und eine große Anzahl von Komponenten aufweisen. DALI-Geräte (Digital Addressable Lighting Interface) sind ein Paradebeispiel für solche Geräte.
DALI-Geräte sind um einen Kommunikationsbus herum aufgebaut, in den bis zu 128 Komponenten (in der DALI-Terminologie als Bus-Einheiten bezeichnet) einfach eingesteckt oder ausgesteckt werden können. Als Teil eines mesh Netzwerks wird eine DALI-Komponente zu einem Element in einem komplexen mesh Knoten, der das DALI-Gerät als Ganzes darstellt. Wenn die Gerätefirmware Änderungen an den in den Bus eingesteckten Komponenten erkennt, können ihre Zusammensetzungsdaten automatisch aktualisiert werden, so dass eine Plug-and-Play-Fähigkeit gegeben ist.
Die von einem Knoten unterstützten Leistungsmerkmale (siehe 4.18 Leistungsmerkmale) werden durch den Status des Konfigurationsservers angezeigt. Die Adressen, die ein Knoten abonniert hat, werden im Status "Abonnementliste" gespeichert. Die Netz- und Teilnetzschlüssel, die angeben, zu welchen Netzen der Knoten gehört, werden im Status NetKey List gespeichert, und die Anwendungsschlüssel werden im Status AppKey List gespeichert.
Eine Reihe von Konfigurationsmeldungen ermöglicht es dem Konfigurations-Client-Modell und dem Konfigurations-Server-Modell, GET-, SET- und STATUS-Operationen für die Zustände des Konfigurations-Server-Modells zu unterstützen.
4.18 Merkmale
Alle Knoten können mesh Nachrichten senden und empfangen, aber es gibt eine Reihe von optionalen Funktionen, die ein Knoten besitzen kann und die ihm zusätzliche, besondere Fähigkeiten verleihen. Es gibt vier solcher optionalen Funktionen: die Relais-, Proxy-, Friend- und Low Power-Funktion. Eine unterstützte Funktion kann zu einem bestimmten Zeitpunkt aktiviert oder deaktiviert werden.
4.18.1 Relaisknoten
Knoten, die die Relay-Funktion unterstützen, werden als Relay-Knoten bezeichnet und sind in der Lage, empfangene Nachrichten weiterzuleiten. Relaying ist der Mechanismus, mit dem eine Nachricht das gesamte mesh Netzwerk durchqueren kann, wobei sie mehrere Sprünge zwischen den Geräten macht, indem sie weitergegeben wird.
Mesh Netzwerk-PDUs enthalten ein Feld namens TTL (Time to Live). Es nimmt einen ganzzahligen Wert an und wird verwendet, um die Anzahl der Sprünge zu begrenzen, die eine Nachricht durch das Netzwerk macht. Wird die TTL beispielsweise auf 3 gesetzt, wird die Nachricht maximal zwei Mal weitergegeben. Bei einem Wert von 0 wird die Nachricht überhaupt nicht weitergeleitet, sondern durchläuft nur einen einzigen Sprung vom Absendergerät direkt zum Zielgerät. Ein TTL-Wert von 1 bedeutet, dass die Nachricht bereits einige Male weitergeleitet wurde und nicht erneut weitergeleitet werden sollte. Nachrichten, die mit TTL = 1 gesendet werden, verlassen das Gerät nicht und können daher nur für die lokale Kommunikation auf dem Knoten über Loopback verwendet werden.
Für eine möglichst effiziente Nutzung des Netzes und des Funkspektrums kann eine optionale Funktion namens Directed Forwarding verwendet werden. Directed Forwarding nutzt die Weiterleitung auf eine informierte und effizientere Weise.
Weitere Informationen über die Funktionsweise der Weiterleitung finden Sie unter 4.19 Weiterleitung von Nachrichten.
4.18.2 Stromsparende Knoten und Freundschaftsknoten
Einige Arten von Knoten haben eine begrenzte Energiequelle und müssen so viel Energie wie möglich sparen. Derartige Geräte sind zwar in erster Linie mit dem Senden von Nachrichten beschäftigt, müssen aber dennoch gelegentlich Nachrichten empfangen.
Nehmen wir einen Temperatursensor, der von einer kleinen Knopfzelle gespeist wird. Er sendet einmal pro Minute einen Temperaturmesswert, wenn die Temperatur über oder unter den konfigurierten oberen und unteren Schwellenwerten liegt. Bleibt die Temperatur innerhalb dieser Schwellenwerte, sendet er keine Meldungen. Dieses Verhalten lässt sich leicht implementieren, ohne dass besondere Probleme hinsichtlich des Stromverbrauchs auftreten.
Der Benutzer kann jedoch auch Nachrichten an den Sensor senden, die die Temperaturschwellenwerte verändern. Dies ist ein relativ seltenes Ereignis, aber der Sensor muss es unterstützen. Die Notwendigkeit, Nachrichten zu empfangen, hat Auswirkungen auf das Tastverhältnis und damit auf den Stromverbrauch. Ein 100-prozentiger Empfangszyklus (RX) würde sicherstellen, dass der Sensor keine Temperaturschwellenkonfigurationsnachrichten verpasst, verbraucht aber sehr viel Energie. Ein niedriger Arbeitszyklus würde zwar Energie sparen, aber das Risiko bergen, dass der Sensor Konfigurationsmeldungen verpasst.
Die Antwort auf dieses scheinbare Rätsel ist der Freundschaftsknoten und das Konzept der Freundschaft.
Knoten wie der Temperatursensor im Beispiel können als Low-Power-Knoten (LPN) bezeichnet werden, und in den Konfigurationsdaten des Sensors wird ein entsprechendes Kennzeichen gesetzt.
LPNs arbeiten im Tandem mit einem anderen Knoten, der nicht an die Stromversorgung gebunden ist (z. B. mit einer permanenten Wechselstromquelle). Dieses Gerät wird als Friend-Knoten bezeichnet. Der Friend speichert Nachrichten, die an den LPN gerichtet sind, und stellt sie zu, wenn der LPN den Friend-Knoten nach wartenden Nachrichten abfragt. Das LPN kann den Friend-Knoten relativ selten abfragen, um einen Ausgleich zwischen der Notwendigkeit, Energie zu sparen, und der Notwendigkeit, Nachrichten rechtzeitig zu empfangen und zu verarbeiten, zu schaffen. Bei der Abfrage werden alle vom Friend gespeicherten Nachrichten nacheinander an den LPN weitergeleitet, wobei ein als MD (More Data) bezeichnetes Kennzeichen dem LPN anzeigt, ob weitere Nachrichten vom Friend-Knoten zu senden sind.
Die Beziehung zwischen dem LPN und dem Freundschaftsknoten wird als Freundschaft bezeichnet. Freundschaft ist der Schlüssel dazu, dass auch sehr leistungsschwache Knoten, die Nachrichten empfangen müssen, in einem Bluetooth Mesh Netzwerk effizient arbeiten können.
4.18.3 Proxy-Knoten
4.18.3.1 Über Proxy-Knoten
Es gibt weltweit eine enorme Anzahl von Geräten, die Bluetooth LE unterstützen, darunter die meisten Smartphones und Tablets. In der Regel enthalten solche Geräte den Bluetooth Mesh Netzwerkstapel, aber sie haben die Fähigkeit, sich mit anderen Geräten zu verbinden und mit ihnen über Verfahren zu interagieren, die durch GATT, das Generic Attribute Profile, definiert sind.
Proxy-Knoten implementieren einen GATT-Dienst und mehrere Eigenschaften, die andere Bluetooth LE-Geräte nutzen können, um Nachrichten in ein Bluetooth Mesh Netzwerk zu senden und von dort zu empfangen. Der Proxy-Knoten fungiert als GATT-Server und das andere Gerät ist der GATT-Client.
Es wird ein Protokoll namens Proxy-Protokoll definiert. GATT-Geräte lesen und schreiben PDUs des Proxy-Protokolls innerhalb der vom Proxy-Knoten implementierten GATT-Merkmale. Der Proxy-Knoten wandelt diese PDUs in oder aus mesh Netzwerk-PDUs um. In Bezug auf die Verwendung des Proxy-Protokolls wird der Proxy-Knoten als Proxy-Server und das andere Gerät als Proxy-Client bezeichnet.
Proxy-Client-Geräte müssen zunächst wie jedes andere Gerät, das Mitglied des Netzwerks ist, bereitgestellt werden.
Proxy-Knoten ermöglichen Bluetooth LE-Geräten, die nicht über einen vollständigen Bluetooth Mesh Netzwerk-Stack verfügen, die Interaktion mit Knoten in einem mesh Netzwerk. In der Praxis bedeutet dies, dass leistungsstarke Geräte, die über ein vollständiges Betriebssystem und ein hochauflösendes Display verfügen, mit Anwendungen ausgestattet werden können, die dem Benutzer eine grafische Benutzeroberfläche (GUI) bieten, über die er mit Geräten wie z. B. Leuchten im Netz interagieren kann.
Abbildung 6 - Smartphone kommuniziert über einen mesh Proxy-Knoten
4.18.3.2 Proxy-Ermittlung
Proxy-Knoten arbeiten in einem von zwei Modi, so dass sie von einem Proxy-Client, z. B. einer Smartphone-Anwendung, auf eine von zwei Arten erkannt und angesprochen werden können.
4.18.3.2.1 Dauerwerbemodus
In diesem Modus sendet der Proxy-Knoten in regelmäßigen Abständen Werbepakete, unabhängig davon, ob ein Proxy-Client-Gerät vorhanden ist. Die gesendeten Pakete enthalten ein Werbedatenelement namens Service Data, das den UUID-Identifikator des GATT Mesh Proxy Service und andere Servicedaten enthält. Das Vorhandensein der Mesh Proxy Service UUID identifiziert das werbende Gerät als einen Proxy-Knoten. Ein Proxy-Client kann den Proxy-Knoten entdecken, indem er nach Werbepaketen sucht, die die Mesh Proxy Service UUID enthalten, sich mit dem Proxy-Knoten verbinden und dann Proxy-PDUs über die Verbindung austauschen. Der Proxy-Knoten leitet PDUs über den Werbeträger an das mesh -Netz weiter und zurück.
Die wahllose, mehr oder weniger permanente Werbung, die bei diesem Ansatz verwendet wird, ist suboptimal und nutzt die Werbekanäle von Bluetooth verschwenderisch aus. Der Werbeträger, der von der überwiegenden Mehrheit der Knoten im Netz mesh genutzt wird, ist auf die Verfügbarkeit dieser Kanäle angewiesen.
4.18.3.2.2 Privater Proxy-Modus auf Abruf
Ein zweiter, effizienterer Ansatz, der eine Technik namens "Solicitation" beinhaltet, wird definiert. Sie wird als On-Demand Private GATT Proxy bezeichnet, dessen Unterstützung optional ist.
Bei diesem Ansatz beginnt die Werbung erst, wenn der Proxy-Server feststellt, dass ein Proxy-Client vorhanden ist und seine Dienste benötigt.
Ein Proxy-Client, der die Funktion "On-Demand-Proxy" unterstützt, zeigt durch Werbung an, dass er die Dienste eines Proxy-Knotens benötigt. Die Werbepakete, die er sendet, enthalten eine PDU, die als Solicitation PDU bezeichnet wird. Diese enthält die UUID des Mesh Proxy Solicitation Service und andere Informationen.
Der Proxy-Server-Knoten führt eine Form des Scannens durch, die als passives Scannen bezeichnet wird. Beim passiven Scanning werden keine Pakete übertragen, so dass es keine Auswirkungen auf die Funkkanäle hat. Nach dem Empfang und der Authentifizierung einer Solicitation-PDU von einem Proxy-Client beginnt der Proxy-Knoten mit der Werbung, so dass der Proxy-Client eine Verbindung zu ihm herstellen und den Austausch von Proxy-PDUs über die hergestellte Verbindung auf die übliche Weise beginnen kann.
Der On-Demand Private GATT Proxy nutzt die Werbekanäle effizient, indem er nur dann Werbung schaltet, wenn ein Proxy-Kunde dies wünscht. Er bietet auch einen verbesserten Datenschutz durch die Verwendung von Mesh private beacons. Siehe 7.7 Datenschutz.
4.19 Weiterleitung von Nachrichten
4.19.1 Mehrstufige Nachrichtenübermittlung
Ein Bluetooth Mesh Netz kann sich über ein großes Gebiet erstrecken, und Knoten in einem Teil eines Gebäudes befinden sich oft außerhalb der direkten Funkreichweite anderer Knoten. Um eine nachrichtenbasierte Kommunikation zwischen allen Knoten zu ermöglichen, unabhängig davon, wie weit ein Ursprungsknoten von dem/den Zielknoten entfernt ist, an den/die seine Nachrichten gesendet werden, verwendet Bluetooth Mesh ein System, bei dem Nachrichten von bestimmten Knoten weitergesendet werden, so dass sie von Knoten zu Knoten durch das Netz hüpfen, bis sie an ihrem Ziel ankommen.
Im Allgemeinen wird der Prozess der Weiterleitung von Nachrichten als Relaying bezeichnet, und dies ist die Funktion des Relaisknotens.
Relaying kann auf zwei verschiedene Arten funktionieren. Der erste Ansatz wird als " managed flooding" bezeichnet, der zweite als " directed forwarding".
4.19.2 Beherrschte Überflutung
Ein Relaisknoten verwendet standardmäßig den einfacheren Ansatz des Managed Flooding. Beim Managed Flooding werden die vom Relay empfangenen Nachrichten erneut gesendet.
Bestimmte Bedingungen führen jedoch dazu, dass ein Relais die Übertragung nicht wiederholt, was die Effizienz des Funkspektrums verbessert. Beispiele hierfür sind:
- PDUs enthalten ein Feld namens Time to Live (TTL). Der Absender setzt dieses Feld auf einen ganzzahligen Wert, der die Anzahl der Weiterleitungen einer Nachricht begrenzt. Dadurch wird verhindert, dass Nachrichten grundlos quer durch das Netz weitergeleitet werden.
- Die Details der empfangenen Nachrichten werden von den Relays zwischengespeichert. Der Cache wird vor der Weiterleitung geprüft. Wird die Nachricht im Zwischenspeicher gefunden, wird davon ausgegangen, dass die Nachricht bereits empfangen und erneut übermittelt wurde.
4.19.3 Gezielte Weiterleitung
Der Ansatz der gerichteten Weiterleitung ist ausgefeilter als das verwaltete Fluten und nutzt das Funkspektrum effizienter. Bei gerichteter Weiterleitung:
- Der Relaisknoten sendet eine Nachricht nur weiter, wenn er weiß, dass er zu einer Reihe von Knoten gehört, über die die Nachricht ihr Ziel erreichen kann. Wenn das Ziel über diesen Knoten nicht erreicht werden kann, wird die Nachricht verworfen. Auf diese Weise werden Funkübertragungen reduziert und das Spektrum effizienter genutzt, so dass mehr Kapazität für die Nachrichtenübermittlung im Netz verbleibt und die Wahrscheinlichkeit des Auftretens von Kollisionen verringert wird.
- Die Reihenfolge der Knoten, über die eine Zustellung an ein Ziel möglich ist, wird entweder manuell bei der Konfiguration erstellt oder automatisch durch verschiedene Systemverfahren erstellt und gepflegt.
In Abschnitt 6.4 Relaying wird die gerichtete Weiterleitung näher untersucht.
Eine genauere Erklärung der gerichteten Weiterleitung finden Sie unter Bluetooth Mesh Directed Forwarding.
4.20 Aktualisierung der Gerätefirmware
4.20.1 Über Firmware
Die Low-Level-Software, die die Funktionalität eines Geräts implementiert und die Hardware steuert, wird in der Regel als Firmware bezeichnet. Bluetooth Mesh Geräte verfügen über eine Firmware, die das Protokoll Bluetooth Mesh und die vom Gerät unterstützten Modelle implementiert.
Normalerweise muss die Firmware während ihrer Lebensdauer aktualisiert werden. Zu den Gründen für die Aktualisierung der Firmware eines Bluetooth Mesh Geräts gehören:
- um die Version des Protokolls Bluetooth Mesh zu aktualisieren, die das Gerät unterstützt
- Hinzufügen neuer Funktionen durch Unterstützung weiterer mesh Modelle
- um Fehler zu beheben
4.20.2 Praktische Fragen
Die Geräte in einem Bluetooth Mesh Netzwerk sind oft an schwer zugänglichen Stellen installiert (z.B. an der Decke). Aus praktischer Sicht ist jedes Firmware-Aktualisierungsverfahren, das sich auf eine physische, kabelgebundene Verbindung stützt, wahrscheinlich problematisch. Auch ein drahtloser Aktualisierungsmechanismus, der sich auf eine direkte Kommunikation mit dem zu aktualisierenden Gerät stützt, ist suboptimal, insbesondere in einem großen Gebäude.
Bluetooth Mesh definiert eine Reihe von Verfahren, die es ermöglichen, die Firmware von Geräten über das gesamte Netz zu aktualisieren, so dass Aktualisierungen für jeden Knoten von jedem physischen Standort aus eingeleitet werden können.
Diese Funktion zur Aktualisierung der Gerätefirmware (DFU) wird im Folgenden beschrieben.
4.20.3 Die DFU-Fähigkeit
Die Funktion Bluetooth Mesh DFU ermöglicht die drahtlose Verteilung von Firmware-Aktualisierungsdateien (oft als binäre Images bezeichnet) über das Netzwerk an ein oder mehrere Zielgeräte in einem einzigen Vorgang. Es ist ein praktisches Werkzeug, um die Firmware auf dem neuesten Stand zu halten und arbeitet auf eine Weise, die die Ressourcen von Mensch, Netzwerk und Funkgerät effizient nutzt.
4.20.3.1 DFU-Modelle und -Rollen
Die Funktion Bluetooth Mesh DFU umfasst drei Paare von Client- und Servermodellen.
- Die BLOB-Übertragungsmodelle bieten einen allgemeinen Mechanismus für die Übertragung von Binary Large Objects (BLOBs) zwischen Knoten. Eine Firmware-Update-Datei ist ein Beispiel für ein BLOB.
- Die Modelle für die Firmware-Verteilung unterstützen Verfahren zur Verteilung von Firmware-Update-Dateien an die zu aktualisierenden Knoten. Die Firmware-Verteilungsverfahren verwenden die BLOB-Transfer-Modelle.
- Die Firmware-Update-Modelle unterstützen Verfahren zur Anwendung von Updates auf die Geräte-Firmware.
Es wird eine Reihe von DFU-Rollen definiert:
Role | Description | Models |
---|---|---|
Target |
A node which receives firmware updates. A Target is able to report the version of firmware it is running and the location from which updates can be obtained. |
Firmware Update Server BLOB Transfer Server |
Initiator |
Usually runs on a device that both supports Bluetooth Mesh and has internet connectivity. Examples of such devices include smartphones and gateway devices. Periodically or on request, an Initiator checks manufacturers’ websites for new firmware releases. It then downloads update files and sends them to a Distributor node. |
Firmware Distribution Client Firmware Update Client BLOB Transfer Client |
Distributor |
Receives firmware update files from an Initiator and sends them to Target nodes for installation. Acts as an intermediary for the Initiator which means the Initiator does not need to be in range of the mesh network for the full duration of the distribution and update procedures. |
Firmware Distribution Server Firmware Update Client BLOB Transfer Client BLOB Transfer Server |
Standalone Updater |
A Stand-alone Updater fulfils the role of a combined Initiator and Distributor, acquiring firmware updates and sending them directly to Updating Nodes without the need for an intermediate Distributor. |
Firmware Update Client BLOB Transfer Client |
4.20.3.2 Der Prozess der Firmware-Aktualisierung[4]
4.20.3.2.1 Beziehen von Firmware-Updates
Die Spezifikation des Mesh DFU-Modells definiert das Verfahren "Firmware Check Over HTTPS ". Dieses Verfahren wird von einem Initiator (oder Standalone Updater) aufgerufen und umfasst in der Regel Folgendes:
- Empfangen einer Liste von Zielknoten von der Anwendungsschicht
- Für jeden Zielknoten in der Liste
- Abrufen von Informationen über die derzeit installierte Firmware, wie z. B. die Versionsnummer und den Uniform Resource Identifier (URI) des Ortes, von dem aus Updates bezogen werden können.
- Senden einer HTTP-GET-Anfrage an die URI und, falls ein Firmware-Update verfügbar ist, Herunterladen einer Firmware-Beschreibungsdatei in der Antwort.
Eine Firmware-Beschreibungsdatei ist eine Datei im JSON-Format, die Informationen wie die Anzahl der Dateien, in die ein Firmware-Update aufgeteilt ist, und die Gesamtgröße des Updates in Bytes enthält.
Das Verfahren Firmware Retrieval over HTTPS wird dann verwendet, um die Firmware-Update-Datei(en) über das HTTPS-Protokoll zu erhalten. Entweder kann der Initiator dies tun oder er kann eine Vertriebsstelle anweisen, die Firmware-Updates zu beschaffen.
Beachten Sie, dass die Spezifikation auch zulässt, dass mit herstellerspezifischen Ansätzen nach Firmware-Updates gesucht und diese abgerufen werden können.
4.20.3.2.2 Verteilen von Firmware-Updates
Der Initiator verwendet das Modell "Firmware Distribution Client", das durch das Modell "BLOB Transfer Client" unterstützt wird, um Firmware-Aktualisierungen und Zielknotendetails an einen Verteiler zu senden. Der Verteiler verwendet dann das Modell "Firmware Update Client" und das Modell "BLOB Transfer Client", um Aktualisierungen an jeden der Zielknoten zu senden.
4.20.3.2.3 Installation der Firmware
Die Ziele verwenden anbieterspezifische Verfahren zur Überprüfung und Installation von Updates. Fortschrittsinformationen sind für den Vertriebspartner verfügbar.
4.20.3.2.4 DFU-Sicherheit
Der Erwerb von Firmware aus entfernten Quellen und die anschließende Installation auf den Knoten im Netz Bluetooth Mesh birgt Sicherheitsrisiken. Es muss eine Möglichkeit geben, zu überprüfen, ob die entfernte Quelle vertrauenswürdig ist und ob die Firmware-Update-Dateien nicht manipuliert wurden.
Die DFU-Spezifikation schreibt die Verwendung des sicheren HTTPS-Protokolls für Downloads von entfernten Servern im Rahmen der Standardverfahren für Firmware-Check und Firmware-Abruf vor. Dadurch wird sichergestellt, dass die Downloads verschlüsselt sind und während des Fluges nicht unbemerkt manipuliert werden können. HTTPS setzt außerdem voraus, dass der Remote-Server über ein digitales Zertifikat verfügt, mit dem seine Identität authentifiziert werden kann.
Die Verfahren "Firmware Check Over HTTPS" und "Firmware Retrieval Over HTTPS" behandeln die primären Sicherheitsfragen. Das von einem Gerät verwendete herstellerspezifische Installationsverfahren bietet weitere Möglichkeiten für Sicherheitsüberprüfungen.
5. Systemarchitektur
5.1 Einleitung
In diesem Abschnitt werden wir die Architektur von Bluetooth Mesh , die Schichten des mesh Netzwerkstapels und die technischen Spezifikationen, die diese Technologie definieren, näher betrachten.
5.2 Die Bluetooth Mesh Spezifikationen
Bluetooth Mesh wird durch eine Sammlung von Spezifikationen definiert.
- Die Spezifikation des Mesh Protokolls definiert die Architektur, die Protokolle, die Verfahren, die Grundmodelle und andere Kernkonzepte der Bluetooth Mesh Technologie.
- Die Spezifikation Mesh Models definiert zusätzliche Modelle, die über die in den Basismodellen definierten Funktionen hinausgehen.
- Für die Funktionen zur Aktualisierung der Gerätefirmware und zur BLOB-Übertragung gibt es jeweils eigene Spezifikationen, in denen die entsprechenden Modelle definiert sind.
- Eine Sammlung von Profilspezifikationen definiert zusätzliche Anforderungen und Implementierungsdetails, die bestimmte Produktklassen weiter standardisieren und so die Interoperabilität verbessern.
5.3 Die Stapel Bluetooth Mesh
Abbildung 7 zeigt die Architektur von Bluetooth Mesh in Bezug auf ihre Schichten und Abhängigkeiten von Teilen der Bluetooth Kernspezifikation. Es gibt zwei Stacks. Der mesh Networking Stack ermöglicht die Kommunikation zwischen Knoten in einem Bluetooth Mesh Netzwerk. Der mesh Provisioning Stack ermöglicht die Bereitstellung von Geräten.
Abbildung 7 - Die Architektur von Bluetooth Mesh
In Abbildung 7 gibt es eine Komponente mit der Bezeichnung Bluetooth Core Specification (LE Physical Transport). Diese stellt die Kernfunktionen von Bluetooth LE dar, die von Bluetooth Mesh genutzt werden.
Ein Bluetooth LE-System besteht aus einem Controller und einem Host. Dabei handelt es sich häufig um physisch getrennte Komponenten, die auf irgendeine Weise miteinander verbunden sind (z. B. UART) und über eine Reihe von Standardbefehlen und -ereignissen kommunizieren, die als Host Controller Interface (HCI) bekannt sind. Die Schichten des mesh Networking Stack befinden sich alle in der Host-Komponente. Der mesh Networking Stack hängt von Teilen des Bluetooth LE Stacks ab, die im Controller laufen, wie z. B. die Verbindungsschicht und die physikalische Schicht. Weitere Informationen über diese Schichten und die grundlegende Architektur von Bluetooth LE finden Sie in der Bluetooth Low Energy Primer.
Wir werden nun jede Schicht der mesh Architektur überprüfen, indem wir uns von der untersten Schicht nach oben arbeiten.
5.4 Überträgerschicht
Mesh Nachrichten benötigen ein zugrunde liegendes Kommunikationssystem für ihre Übertragung. Die Trägerschicht legt fest, wie mesh PDUs von einem bestimmten Kommunikationssystem behandelt werden. Es sind zwei Hauptträger definiert, die für allgemeine Nachrichtenübermittlungszwecke verwendet werden, nämlich derWerbeträger und der GATT-Träger.
Der Werbeträger nutzt die Bluetooth LE Werbe- und Scan-Funktionen, um mesh PDUs zu senden und zu empfangen.
Der GATT-Träger ermöglicht es einem Gerät, das den Werbeträger nicht unterstützt, indirekt mit Knoten eines mesh Netzwerks zu kommunizieren, indem es ein als Proxy-Protokoll bekanntes Protokoll verwendet. Das Proxy-Protokoll ist in GATT-Operationen gekapselt, die einen GATT-Dienst namens Mesh Proxy Service beinhalten, der zwei GATT-Merkmale namens Mesh Proxy Data In und Mesh Proxy Data Out umfasst.
Ein Proxy-Knoten implementiert den Mesh Proxy-Dienst und seine Eigenschaften. Er unterstützt sowohl den GATT-Träger als auch den Werbeträger und kann somit Nachrichten über beide Arten von Trägern konvertieren und weiterleiten.
Der GATT-Träger kann auch von Knoten unterstützt werden, die die Proxy-Funktion nicht unterstützen.
5.5 Netzwerkschicht
Die Netzschicht definiert die verschiedenen Nachrichtenadresstypen und ein Netznachrichtenformat, das es ermöglicht, dass PDUs der Transportschicht von der Trägerschicht verarbeitet werden können.
Er kann mehrere Träger unterstützen, von denen jeder mehrere Netzschnittstellen haben kann, einschließlich der lokalen Schnittstelle, die für die Kommunikation zwischen Elementen verwendet wird, die Teil desselben Knotens sind.
Die Netzschicht bestimmt, über welche Netzschnittstelle(n) Nachrichten ausgegeben werden sollen. Auf die von der Trägerschicht ankommenden Nachrichten wird ein Eingangsfilter angewandt, um festzustellen, ob sie zur weiteren Verarbeitung an die Netzschicht weitergeleitet werden sollen. Ausgangsnachrichten werden einem Ausgangsfilter unterworfen, um zu kontrollieren, ob sie verworfen oder an die Trägerschicht zugestellt werden.
Die Funktionen Relay und Proxy können von der Netzwerkschicht implementiert werden.
5.6 Untere Transportschicht
Die untere Transportschicht nimmt PDUs von der oberen Transportschicht entgegen und sendet sie an die untere Transportschicht auf einem Peer-Gerät. Bei Bedarf nimmt sie eine Segmentierung und Neuzusammensetzung der PDUs vor. Bei längeren Paketen, die nicht in eine einzige Transport-PDU passen, führt die untere Transportschicht eine Segmentierung durch, wobei die PDU in mehrere Transport-PDUs aufgeteilt wird. Die empfangende untere Transportschicht auf dem anderen Gerät fügt die Segmente wieder zu einer einzigen PDU der oberen Transportschicht zusammen und leitet diese den Stapel hinauf.
5.7 Obere Transportschicht
Die obere Transportschicht ist für die Verschlüsselung, Entschlüsselung und Authentifizierung von Anwendungsdaten zuständig, die zur und von der Zugangsschicht übermittelt werden. Sie ist auch für Transportkontrollnachrichten zuständig, die intern erzeugt und zwischen den oberen Transportschichten auf verschiedenen Peer-Knoten gesendet werden. Dazu gehören Nachrichten in Bezug auf Freundschaft, gezielte Weiterleitung und Heartbeats.
5.8 Zugangsschicht
Die Zugriffsschicht ist dafür zuständig, festzulegen, wie die Modelle die obere Transportschicht nutzen. Dies beinhaltet:
- Festlegung des Formats der Nachrichtendaten.
- Festlegung und Steuerung des Ver- und Entschlüsselungsprozesses, der in der oberen Transportschicht durchgeführt wird.
- Überprüfung, ob die von der oberen Transportschicht empfangenen Daten für das richtige Netz und Modell bestimmt sind, bevor die Daten nach oben weitergeleitet werden.
5.9 Fundamentmodellschicht
Die Grundmodellschicht ist für die Implementierung der Modelle zuständig, die sich mit der Konfiguration und Verwaltung eines mesh Netzes befassen.
5.10 Modellschicht
Die Modellschicht befasst sich mit der Implementierung von Modellen und somit mit der Implementierung von Verhaltensweisen, Nachrichten, Zuständen und Zustandsbindungen, wie sie in einer oder mehreren Modellspezifikationen definiert sind.
6. Nachrichtenübermittlung
In diesem Abschnitt werden Aspekte der Funktionsweise der Nachrichtenübermittlung in einem Bluetooth Mesh Netzwerk untersucht und einige der in Abschnitt 4 erläuterten Schlüsselkonzepte zusammengefasst . Wichtige Funktionen und Konzepte.
6.1 Veröffentlichung und Zustellung von Nachrichten
Ein Wi-Fi-Netz basiert auf einem zentralen Netzwerkknoten, dem so genannten Access Point, über den der gesamte Netzwerkverkehr läuft. Wenn der Router nicht verfügbar ist, ist das gesamte Netzwerk nicht mehr verfügbar.
Im Gegensatz dazu liefert Bluetooth Mesh Nachrichten direkt an Knoten, die sich in Funkreichweite befinden, oder über Relaisknoten, wenn diese weiter entfernt sind. Wenn Nachrichten von einem Knoten veröffentlicht werden, werden sie per Broadcast verbreitet und nicht direkt an einen bestimmten Knoten weitergeleitet. Alle Knoten empfangen alle Nachrichten von Knoten, die sich in direkter Funkreichweite befinden. Wenn ein Knoten so konfiguriert ist, verwendet er entweder Managed Flooding oder Directed Forwarding und leitet empfangene Nachrichten weiter.
6.2 Mehrwegzustellung
Eine wichtige Folge der Verwendung von Broadcast-Kommunikation und Relaying ist, dass Nachrichten über mehrere Pfade durch das Netz an ihr Ziel gelangen können. Dies trägt dazu bei, dass Bluetooth Mesh eine äußerst zuverlässige Netzwerktechnologie ist.
6.3 Durchlaufen des Stapels
Der Empfang einer Nachricht beginnt mit dem Empfang eines Pakets durch die Verbindungsschicht des Bluetooth LE-Controllers[5]. Seine Nutzlast wird dann an die Bluetooth Mesh Trägerschicht im Host und von dort an die mesh Netzwerkschicht weitergeleitet.
Die Netzschicht führt verschiedene Prüfungen durch, um zu entscheiden, ob die Nachricht weitergereicht oder verworfen werden soll.
Darüber hinaus haben PDUs ein Feld für die Netzwerk-ID, mit dem sich schnell feststellen lässt, mit welchem NetKey die Nachricht verschlüsselt wurde. Wenn die Netzwerk-ID von der Netzwerkschicht des empfangenden Knotens nicht erkannt wird, bedeutet dies, dass er den entsprechenden NetKey nicht besitzt und nicht zu diesem Subnetz gehört, weshalb die PDU verworfen wird. Außerdem gibt es ein Feld für die Integritätsprüfung der Netzwerknachricht (MIC). Wenn die MIC-Prüfung fehlschlägt, wird die Nachricht verworfen.
Nachrichten werden von allen Knoten in Reichweite des Absenders empfangen, aber viele werden schnell verworfen, wenn sich herausstellt, dass sie für diesen Knoten aufgrund des Netzes oder der Teilnetze, zu denen er gehört, nicht relevant sind.
Das gleiche Prinzip wird in der oberen Transportschicht angewendet. Hier erfolgt die Prüfung jedoch anhand des AppKey, der mit der Nachricht verknüpft und durch ein Anwendungskennungsfeld (AID) in der PDU identifiziert ist. Wenn der AID von diesem Knoten nicht erkannt wird, wird die PDU von der oberen Transportschicht verworfen. Wenn die Integritätsprüfung der Transportnachricht (TransMIC) fehlschlägt, wird die Nachricht verworfen.
Die obere Transportschicht leitet Nachrichten an die Zugriffsschicht weiter. Von dort aus werden über die Modellschicht je nach Art der empfangenen Nachricht entsprechende Modellfunktionen aufgerufen.
6.4 Relaying
Das Grundkonzept des Relaying wurde in Abschnitt 4.19 Message Relaying vorgestellt. Die Methode der gerichteten Weiterleitung ist komplexer als die Methode des "managed flooding" und wird in diesem Abschnitt näher erläutert.
6.4.1 Gezielte Weiterleitung
6.4.1.1 Vergleich mit der gesteuerten Flutung
Beim Managed Flooding senden die Relaisknoten alle empfangenen Nachrichten erneut, außer unter bestimmten Umständen, z. B. wenn die im TTL-Feld angegebene maximale Anzahl von Sprüngen bereits zurückgelegt wurde. Dies ist ein einfacher und wirksamer Mechanismus, der jedoch im Hinblick auf die Nutzung des Funkspektrums nicht sehr effizient ist. Die Nachrichten werden über das Netz in alle Richtungen verbreitet, unabhängig davon, ob sich einer der Zielknoten in einer bestimmten Richtung relativ zum Relaisknoten befindet.
Abbildung 8 und Abbildung 9 zeigen einen großen Konferenzsaal, der mit einem Bluetooth Mesh Netzwerk ausgestattet ist und einen Schalter enthält, der die Beleuchtung über der Bühne steuert. Die Nachrichten müssen über einen einzigen Hop weitergeleitet werden, damit sie alle erreichen.
In Reichweite des Schalters befinden sich zwei Relaisknoten. Wenn der Schalter für die Bühnenbeleuchtung verwendet wird, wird eine Nachricht gesendet, von beiden Relais empfangen und weitergesendet, so dass die Nachricht durch das Netzwerk sowohl in Richtung der Zielbeleuchtung als auch von ihr weg wandert.
Abbildung 8 - Der Lichtschalter sendet eine Ein/Aus-Meldung
Abbildung 9 - Zwei Relais empfangen die Nachricht und beide senden sie weiter
Dies ist suboptimal. Der am weitesten von der Bühne entfernte Relaisknoten kann keinen Beitrag zur Übermittlung der Ein/Aus-Steuerungsmeldungen vom Schalter an die Bühnenbeleuchtung leisten.
Die gerichtete Weiterleitung unterscheidet sich vom Managed Flooding dadurch, dass die Weiterleitung nur dann erfolgt, wenn die Zustandsdaten des Relaisknotens anzeigen, dass er auf einem Pfad zu einem oder mehreren der von der Nachricht angesprochenen Knoten liegt. Ein Relaisknoten, der die gerichtete Weiterleitung nutzen kann, wird als gerichteter Relaisknoten bezeichnet.
Abbildung 10 zeigt die Auswirkungen der gerichteten Weiterleitung bei Verwendung des Lichtschalters im Konferenzsaal und der Relaisknoten. Die Weiterleitung der Ein-/Aus-Nachricht vom Lichtschalter erfolgt nur in Richtung der Lampen auf der Bühne und nicht in andere Teile des Netzes.
Abbildung 10 - Die Auswirkungen einer gerichteten Weiterleitung
Das Konzept des Pfades ist ein formal definierter Aspekt der gerichteten Weiterleitung.
6.4.1.2 Pfade und Fahrspuren
Bei der gerichteten Weiterleitung geht es um die Definition oder Entdeckung von Sequenzen gerichteter Relaisknoten, die in der Lage sind, eine Nachricht von einer bestimmten Quelladresse zu einer bestimmten Zieladresse zu übermitteln. Solche Knotenfolgen werden als Pfade bezeichnet.
In einer Pfaddefinition ist die Quelladresse immer eine Unicast-Adresse, aber die Zieladresse kann von beliebigem Typ sein, einschließlich einer Gruppenadresse. Wenn eine Zieladresse mehr als einem Knoten entspricht, ist es genauer, einen gerichteten Weiterleitungspfad als eine Menge von Sequenzen gerichteter Relaisknoten zu beschreiben.
Ein Statusdatenelement, die so genannte Weiterleitungstabelle auf einem Directed-Relay-Knoten, zeigt die Pfade an, die das Relais bedienen kann. Sie besteht aus einer Liste von Paaren von Quell- und Zieladressen. Beim Empfang einer Nachricht konsultiert das Directed Relay die Forwarding Table, und wenn sie einen Eintrag mit der Quell- und Zieladresse der Nachricht enthält, wird die Nachricht weitergeleitet. Andernfalls wird die Nachricht verworfen.
Es kann mehr als eine Folge von gerichteten Relaisknoten geben, über die eine Nachricht weitergeleitet werden könnte, um einen bestimmten Zielknoten zu erreichen. Dies kann durch die Erstellung von mehrspurigen Pfaden ausgenutzt werden. Eine Lane ist eine Folge von Directed Relay-Knoten und entspricht in dieser Hinsicht einem Pfad. Wenn jedoch mehrere alternative Sequenzen von Knoten für die Zustellung einer Nachricht von einem Quellknoten zu einem Zielknoten verfügbar sind, wird der Begriff Lane für die Sequenz und Pfad für die Sammlung aller Lanes verwendet. Mehrspurige Pfade haben den Vorteil, dass sie eine größere Redundanz bieten, so dass Nachrichten mit größerer Wahrscheinlichkeit auch dann zugestellt werden, wenn eine der Sequenzen von Directed-Relay-Knoten eine Unterbrechung aufweist, weil einer dieser Knoten aus irgendeinem Grund gerade nicht verfügbar ist.
6.4.1.3 Erstellung und Pflege von Trassen
Pfade werden entweder manuell mit einem Configuration Manager Tool erstellt oder dynamisch durch die Ausführung einer Reihe automatisierter Verfahren ermittelt und eingerichtet.
Bei der automatischen Pfaderstellung durchläuft der Prozess eine Reihe von Stufen. Für die Paare von Quell- und Zieladressen, für die ein Pfad erforderlich ist, werden spezielle Nachrichten verwendet, um das Netz mit dem Ziel zu erkunden, Relaisknotenfolgen zu finden, die eine Nachricht von der Quelle zum Ziel liefern können. Während dieses Prozesses wird eine Messung, die so genannte Pfadmetrik, erstellt, so dass ein Vergleich zwischen alternativen Sequenzen durchgeführt und die beste für die Verwendung ausgewählt werden kann. Die Pfadmetrik ist eine einfache Zählung der Anzahl von Sprüngen, die erforderlich sind, um vom Quellknoten zum Ziel über eine bestimmte Folge von Relais zu gelangen. Ein Pfad, der aus weniger Sprüngen besteht, ist besser als ein Pfad, der mehr Sprünge erfordert.
Wenn die kürzeste Sequenz von Knoten, die als Pfad für ein Quell-/Zieladressenpaar fungieren kann, entdeckt wurde, werden die Knoten in dieser Sequenz mithilfe von Kontrollnachrichten aktualisiert, so dass ihre Weiterleitungstabelle anzeigt, dass sie Teil dieses Pfades sind.
7. Sicherheit
7.1 Sicherheit auf Bluetooth Mesh ist obligatorisch
Bluetooth LE ermöglicht es dem Profilentwickler, eine Reihe von verschiedenen Sicherheitsmechanismen zu nutzen. Dazu gehören die verschiedenen Möglichkeiten, wie das Pairing zweier Geräte funktionieren kann, die Verwendung privater Geräteadressen in Werbepaketen und die mit GATT-Merkmalen verbundenen Sicherheitsregeln. Sicherheit ist jedoch völlig optional, und es ist zulässig, ein Gerät zu haben, das völlig offen ist und keinerlei Sicherheitsschutz oder Einschränkungen aufweist. In den Fällen, in denen eine Spezifikation von Bluetooth SIG nicht anwendbar ist (z. B. wenn es sich um ein benutzerdefiniertes Profil oder einen benutzerdefinierten Dienst handelt), ist der Geräteentwickler oder -hersteller dafür verantwortlich, die Bedrohungen zu analysieren und die Sicherheitsanforderungen zu bestimmen sowie zu entscheiden, wie die Sicherheitsmerkmale von Bluetooth LE zur Erfüllung dieser Anforderungen eingesetzt werden.
Im Gegensatz dazu ist die Sicherheit auf Bluetooth Mesh obligatorisch. Das Netz, die Geräte und die einzelnen Anwendungen sind alle sicher, und die Sicherheit kann nicht abgeschaltet oder reduziert werden.
7.2 Grundlagen der Sicherheit
Die folgenden grundlegenden Sicherheitsaussagen gelten für alle Bluetooth Mesh Netzwerke:
- Alle mesh Nachrichten sind verschlüsselt und authentifiziert.
- Netzsicherheit, Anwendungssicherheit und Gerätesicherheit werden unabhängig voneinander behandelt. Siehe 7.3 Trennung von Belangen und Sicherheitsschlüsseln unten.
- Die Sicherheitsschlüssel können während der Lebensdauer des mesh Netzwerks mit Hilfe des Key Refresh-Verfahrens und des Node Provisioning Protocol Interface-Verfahrens geändert werden.
- Die Verschleierung von Nachrichten bietet einen Datenschutzmechanismus, der das Aufspüren von Knoten erschwert.
- Mesh Private Beacons stellen sicher, dass keine statischen Informationen, die zur Geräteverfolgung genutzt werden könnten, von einem Knoten gesendet werden.
- Mesh Sicherheit schützt das Netz vor Replay-Angriffen.
- Der Bereitstellungsprozess, durch den Geräte dem mesh Netzwerk hinzugefügt werden, um Knoten zu werden, ist ein sicherer Prozess und umfasst die Unterstützung von digitalen X.509-Zertifikaten.
- Knoten können auf sichere Weise aus dem Netz entfernt werden, so dass Mülleimerangriffe verhindert werden [6].
7.3 Trennung von Belangen und Sicherheitsschlüsseln
Das Herzstück der Sicherheit von Bluetooth Mesh sind drei Arten von Sicherheitsschlüsseln. Diese Schlüssel bieten Sicherheit für verschiedene Aspekte des Netzes. Die Verwendung verschiedener Arten von Sicherheitsschlüsseln bei der Entwicklung von Bluetooth Mesh Sicherheit ist ein Beispiel für ein wichtiges Prinzip, das als Trennung von Belangen bekannt ist.
Um dies zu verstehen und seine Bedeutung zu schätzen, betrachten Sie eine mesh Leuchte, die als Relaisknoten fungieren kann. In ihrer Eigenschaft als Relaisknoten kann sie Nachrichten verarbeiten, die sich auf das Tür- und Fenstersicherheitssystem des Gebäudes Bluetooth Mesh beziehen. Eine Leuchte hat keinen triftigen Grund, auf die Daten in solchen Nachrichten zuzugreifen und sie zu verarbeiten, muss sie aber an andere Knoten weiterleiten.
Um diesem potenziellen Interessenkonflikt zu begegnen, verwendet Bluetooth Mesh andere Sicherheitsschlüssel für die Sicherheit auf der Netzwerkebene als für die Sicherheit von Daten, die sich auf spezifische Anwendungen wie Beleuchtung, physische Sicherheit, Heizung usw. beziehen.
Alle Knoten in einem mesh Netzwerk besitzen mindestens einen Netzwerkschlüssel (NetKey). Erst der Besitz dieses gemeinsamen Schlüssels macht einen Knoten zu einem Mitglied des Netzes. Ein Netzwerkverschlüsselungsschlüssel und ein Datenschutzschlüssel werden direkt vom NetKey abgeleitet.
Im Besitz des NetKey kann ein Knoten entschlüsseln und sich bis zur Netzwerkebene authentifizieren, so dass Netzwerkfunktionen wie die Weiterleitung ausgeführt werden können. Die Entschlüsselung von Anwendungsdaten ist damit nicht möglich.
Anwendungsdaten für eine bestimmte Anwendung können nur von Knoten entschlüsselt werden, die im Besitz des richtigen Anwendungsschlüssels (AppKey) sind. In einem mesh Netzwerk kann es viele verschiedene AppKeys geben, aber typischerweise wird jeder AppKey nur von einer kleinen Teilmenge der Knoten besessen, nämlich von denjenigen, die an einer bestimmten Anwendung teilnehmen können. So besitzen beispielsweise Lampen und Lichtschalter den AppKey für die Beleuchtungsanwendung, nicht aber den AppKey für die Heizungsanlage, der nur von Thermostaten, Heizkörperventilen usw. verwendet werden kann.
AppKeys werden von der oberen Transportschicht verwendet, um Nachrichten zu entschlüsseln und zu authentifizieren, bevor sie an die Zugangsschicht weitergegeben werden.
AppKeys sind nur mit einem NetKey verbunden. Diese Zuordnung wird als Schlüsselbindung bezeichnet und bedeutet, dass bestimmte Anwendungen, die durch den Besitz eines bestimmten AppKeys definiert sind, nur in einem bestimmten Netz funktionieren können, während ein Netz mehrere, unabhängig voneinander sichere Anwendungen beherbergen kann.
Der letzte Schlüsseltyp ist der Geräteschlüssel (DevKey). Dies ist eine besondere Art von Anwendungsschlüssel. Jeder Knoten hat einen eindeutigen DevKey, der nur dem Provisioner-Gerät bekannt ist und keinem anderen. Der DevKey wird zur Sicherung der Kommunikation während des Konfigurationsprozesses verwendet.
Abbildung 11 - Sicherheitsschlüssel in Bluetooth Mesh
7.4 Teilnetze und Teilnetzüberbrückung
Das Netz kann in Subnetze unterteilt werden. Jedes Teilnetz hat seinen eigenen NetKey, den nur die Knoten besitzen, die Mitglieder dieses Teilnetzes sind. Dies könnte zum Beispiel verwendet werden, um verschiedene physische Bereiche wie die einzelnen Gästezimmer in einem Hotel zu isolieren und zu sichern. In diesem Fall würde dies sicherstellen, dass Geräte wie die Beleuchtung in einem bestimmten Gästezimmer nur von anderen Geräten gesteuert werden können, die sich im selben Zimmer und im selben Subnetz befinden.
Es gibt Fälle, in denen die Kommunikation zwischen Geräten in verschiedenen Teilnetzen erforderlich ist. Es könnte der Fall sein, dass das Hotelmanagement in der Lage sein muss, alle Geräte in allen Hotelzimmern zentral zu steuern, aber gleichzeitig ist es zwingend erforderlich, dass ein Gerät in einem Gästezimmer nicht dazu verwendet werden kann, ein Gerät in einem anderen Gästezimmer zu steuern, und dass Übertragungen von einem Gerät in einem Zimmer nicht von einem Gerät in einem anderen abgefangen und entschlüsselt werden können. Bluetooth Mesh verfügt über eine Funktion namens Subnet Bridging, die dies ermöglicht.
Die Funktion der Subnetzüberbrückung ermöglicht es Netzplanern, Subnetze zur Bereichsisolierung zu verwenden, aber auch selektiv die Kommunikation zwischen bestimmten Geräten in verschiedenen, benachbarten Subnetzen zuzulassen, ohne die Sicherheit zu beeinträchtigen. Dazu müssen ein oder mehrere Knoten eingerichtet werden, die als Subnetz-Brücken fungieren. Dabei handelt es sich um Knoten, die über den NetKey jedes der zu überbrückenden Subnetze sowie über ein Modell namens Bridge Configuration Server-Modell und seine verschiedenen Zustände verfügen.
Die Überbrückung von Teilnetzen wird über einen Status namens Teilnetzbrücke aktiviert. Ein weiterer Status namens Bridging Table enthält Einträge, die die Kommunikation zwischen einer bestimmten Quelladresse und einer bestimmten Zieladresse ermöglichen. Darüber hinaus gibt ein Eintrag in der Bridging-Tabelle den NetKey für das erste Subnetz und den NetKey des zweiten Subnetzes an.
Es handelt sich um die Informationen im Status der Brückentabelle, die es ermöglichen, dass Nachrichten aus einem Teilnetz, die mit dem ersten NetKey verschlüsselt wurden, von dem Knoten, der als Teilnetzbrücke fungiert, entschlüsselt und mit dem NetKey für das zweite Teilnetz erneut verschlüsselt werden können, und dass diese Aktion auf Nachrichten mit der angegebenen Quell- und Zieladresse beschränkt wird.
7.5 Knotenentfernung, Schlüsselaktualisierung und Mülleimerangriffe
Die Knoten enthalten verschiedene mesh Sicherheitsschlüssel. Sollte ein Knoten defekt werden und entsorgt werden müssen oder sollte der Eigentümer beschließen, den Knoten an einen anderen Eigentümer zu verkaufen, ist es wichtig, dass das Gerät und die darin enthaltenen Schlüssel nicht für einen Angriff auf das Netz verwendet werden können, aus dem der Knoten entnommen wurde.
Es wird ein Verfahren zum Entfernen eines Knotens aus einem Netz definiert. Die Anwendung Provisioner wird verwendet, um den Knoten zu einer Ablehnungsliste hinzuzufügen, und dann wird ein Prozess namens " Key Refresh" eingeleitet.
Das Key Refresh-Verfahren führt dazu, dass alle Knoten im Netz, mit Ausnahme derjenigen, die auf der Ablehnungsliste stehen, neue Netzschlüssel, Anwendungsschlüssel und alle damit zusammenhängenden, abgeleiteten Daten erhalten. Mit anderen Worten: Der gesamte Satz von Sicherheitsschlüsseln, der die Grundlage für die Netz- und Anwendungssicherheit bildet, wird ersetzt.
Folglich ist der aus dem Netzwerk entfernte Knoten, der einen alten NetKey und einen alten Satz von AppKeys enthält, kein Mitglied des Netzwerks mehr und stellt keine Bedrohung dar.
7.6 Replay-Angriffe
Ein Replay-Angriff ist eine Technik, bei der ein Lauscher eine oder mehrere Nachrichten abfängt und zu einem späteren Zeitpunkt erneut sendet, mit dem Ziel, den Empfänger dazu zu bringen, etwas auszuführen, wozu das angreifende Gerät nicht berechtigt ist.
7.6.1 IV-Index und fortlaufende Nummern
Bluetooth Mesh verfügt über einen Schutz gegen Replay-Angriffe. Die Grundlage für diesen Schutz ist die Verwendung von zwei Datenelementen, der Sequenznummer (SEQ) und dem IV-Index. Die Elemente erhöhen den SEQ-Wert jedes Mal, wenn sie eine Nachricht veröffentlichen. Ein Knoten, der eine Nachricht von einem Element empfängt, die einen SEQ-Wert enthält, der kleiner oder gleich dem Wert der letzten gültigen Nachricht ist, verwirft diese, da es sich wahrscheinlich um einen Wiederholungsangriff handelt.
Der IV-Index ist eine gemeinsam genutzte Netzwerkressource, die zusammen mit den SEQ- und Quelladresswerten beim Empfang von Nachrichten geprüft wird. Die kombinierten Werte der Felder SEQ, IV-Index und SRC (Quelladresse) sind für jede mesh Nachricht, die ein Element sendet, immer eindeutig.
Das Netz verwendet jeweils einen IV-Index-Wert, außer wenn das IV-Aktualisierungsverfahren läuft. In diesem Fall werden zwei verschiedene Werte verwendet, bis das Verfahren abgeschlossen ist und dem gesamten Netz ein neuer Wert zugewiesen wurde.
7.6.2 Das IV-Aktualisierungsverfahren
Sequenznummern haben eine Länge von 24 Bit. Durch wiederholtes Inkrementieren des SEQ-Feldes kann ein Knoten schließlich seinen Vorrat an Sequenznummernwerten erschöpfen. Um dies zu vermeiden, kann ein Knoten, der sich in dieser Situation befindet, ein Netzwerkverfahren namens IV Update einleiten. Dadurch wird ein neuer IV-Indexwert durch Inkrementierung des alten Wertes berechnet, dem gesamten Netz zugewiesen und die Sequenznummer der Elemente in den betroffenen Knoten auf Null zurückgesetzt.
Aus Sicherheitsgründen dürfen nur Knoten, die Mitglieder des primären Subnetzes sind, das IV-Update-Verfahren einleiten. Gastgeräte, die nur Mitglieder von nicht primären Subnetzen sind, können keine IV-Aktualisierung einleiten. Dies bietet Schutz für diese wichtige gemeinsame Netzwerkressource.
7.7 Datenschutz
Ein vom NetKey abgeleiteter Geheimhaltungsschlüssel wird zur Verschleierung von Netzwerk-PDU-Header-Werten, wie z. B. der Quelladresse, verwendet. Die Verschleierung stellt sicher, dass zufälliges, passives Abhören nicht dazu verwendet werden kann, Geräte und die Personen, die sie benutzen, zu verfolgen. Sie erschwert auch Angriffe, die auf der Analyse des Datenverkehrs basieren.
Eine Reihe von Bluetooth Mesh Prozeduren, einschließlich der Key-Refresh-Prozedur und der IV-Update-Prozedur, verwenden Beaconing, um Daten an andere Geräte im Netzwerk zu senden, um ihre Anwesenheit und ihren Status anzuzeigen. Beaconing ist eine Technik, die sich die Bluetooth Werbung zunutze macht.
Die Übertragung statischer, unveränderlicher Informationen kann ein Sicherheitsrisiko darstellen, da es möglich sein kann, das Gerät zu verfolgen, während es sich im Netz bewegt, und daraus Informationen über das Gerät, den Benutzer des Geräts und möglicherweise das Netz insgesamt abzuleiten. Um diesem Risiko zu begegnen, enthält Bluetooth Mesh eine Funktion namens Mesh Private beacons.
Mesh Private Bakenübertragungen enthalten keine statischen Informationen. Ihre Verwendung verbessert den Schutz des Netzes, indem sie die Möglichkeit ausschließt, dass Geräte anhand der in Beacon-Nachrichten enthaltenen Daten verfolgt werden können.
8. Skalierbarkeit
Bluetooth Mesh Die Vernetzung ist nachweislich skalierbar. In der realen Welt gibt es kommerzielle Implementierungen mit bis zu sechstausend Knotenpunkten.
Die theoretische Höchstzahl der adressierbaren Elemente in einem Bluetooth Mesh Netzwerk beträgt 32.767. Dies ist darauf zurückzuführen, dass eine Unicast-Adresse zur Identifizierung eines Elements 15 Bit lang ist. Abgesehen davon ist die Betrachtung der Skalierbarkeit in Bezug auf die Anzahl der Knoten, die ein Netzwerk aufnehmen kann, keine besonders nützliche Art, das Thema zu betrachten. Es ist angemessener, die Menge an Arbeit zu betrachten, die das Netzwerk unterstützen kann, oder anders ausgedrückt, den Umfang und die Geschwindigkeit der Netzwerkoperationen, die es bewältigen kann.
Skalierbarkeit und andere Leistungskennzahlen sind Aspekte, die der Netzwerkplaner (siehe 10.1 Der Planer) bei der Gestaltung des Netzwerks berücksichtigt. Die Platzierung und Konfiguration von Knoten kann sich erheblich darauf auswirken, wie gut das Netzwerk funktioniert und wie leicht es auf die größte erforderliche Anzahl von Knoten in der Zukunft skaliert werden kann.
Die Skalierbarkeit in drahtlosen Netzen wird in der Regel durch eine Reihe von Faktoren eingeschränkt, unter anderem dadurch, wie effizient das gemeinsam genutzte Funkspektrum genutzt wird. Kollisionen treten auf, wenn zwei Geräte gleichzeitig auf demselben Funkkanal senden, und dies kann zu einem begrenzenden Faktor für die Skalierbarkeit eines Netzes werden. Die Vermeidung oder Verringerung der Wahrscheinlichkeit von Nachrichtenverlusten aufgrund von Kollisionen ist daher eine Schlüsselstrategie bei der Entwicklung von Bluetooth Mesh und der vom Netzplaner durchgeführten Entwurfsarbeit.
Nicht alle Netze sind gleich. Ein kleines Netz mit relativ wenigen Knoten kann schwieriger zu skalieren sein als ein größeres Netz, wenn die Knoten in dem kleinen Netz räumlich eng beieinander liegen und die Knoten häufig Nachrichten übermitteln. Mit anderen Worten: Konzepte wie Netzdichte und Knotenvielfalt sind wichtig. Es geht nicht nur um die absolute Anzahl der Knoten im Netz.
Bluetooth Mesh wurde von Anfang an mit Blick auf die Skalierbarkeit entwickelt. Die PDUs sind klein (höchstens 29 Oktette lang), was die für die Übertragungen benötigte Sendezeit und damit die Wahrscheinlichkeit von Kollisionen verringert.
Normalerweise werden Kopien von Nachrichten auf drei verschiedenen Kanälen übertragen. Dies erhöht die Netzkapazität und verringert die Wahrscheinlichkeit von Nachrichtenverlusten aufgrund von Kollisionen.
Der Relaying-Prozess, sowohl mit als auch ohne die ausgefeilte Funktion der gerichteten Weiterleitung, stellt mehrere Pfade für Nachrichten her, wodurch die Wahrscheinlichkeit der Zustellung erhöht wird, insbesondere in stark ausgelasteten Netzen.
Unbestätigte Nachrichten reduzieren den Netzwerkverkehr, insbesondere in Multicast-Szenarien, in denen ein Gerät versucht, eine Gruppe anderer Geräte in einem einzigen Vorgang zu steuern, eine sehr typische Situation in einem Bluetooth Mesh Netzwerk.
Eine dezentralisierte Designphilosophie ist grundlegend für wichtige Aspekte der Funktionsweise von Bluetooth Mesh . Dies ermöglicht ein höheres Maß an Skalierbarkeit und unterscheidet sie auch von anderen vergleichbaren Technologien. Beispielsweise kommunizieren die Sensoren direkt mit den Leuchten, ohne dass zwischengeschaltete Lichtsteuerungen erforderlich sind.
Auf der Website Bluetooth SIG findet sich ein Artikel, der das Thema der Skalierbarkeit in Bluetooth Mesh Netzwerken näher beleuchtet.
9. Bluetooth Vernetzte Beleuchtungssteuerung (NLC)
Eine der Hauptanwendungen, für die Bluetooth Mesh entwickelt wurde, ist die Steuerung von vernetzten Beleuchtungsanlagen in großen Gebäuden.
Leuchten (manchmal auch als Beleuchtungskörper bezeichnet) können komplex sein, mit mehreren unabhängig voneinander steuerbaren Lampen, Unterstützung für Helligkeits- und Farbsteuerung und der Möglichkeit, sowohl manuell durch von Menschen betätigte Schalter als auch durch Umgebungsmessungen, die von entfernten, drahtlosen Sensoren geliefert werden, gesteuert zu werden.
Die Bluetooth Mesh Modellspezifikationen definieren standardisierte Funktionsblöcke, die ein Gerät, wie z. B. eine Leuchte, implementiert, um bestimmte Fähigkeiten im Netz zu erhalten, wie z. B. die Fähigkeit, ein- oder ausgeschaltet zu werden. Der modulare Charakter von Modellen unterstützt die Schaffung innovativer, multifunktionaler Produkte. Einzelne Modelle sind oft hochentwickelt und verfügen über zahlreiche Parameter, die ihren Zustand und ihr Verhalten bestimmen. Dies trägt zur Flexibilität und Vielseitigkeit von Bluetooth Mesh als Technologie für die vernetzte Lichtsteuerung bei.
Verschiedene wichtige Aspekte von Bluetooth Mesh sind optional. Dazu gehören die Liste der unterstützten Träger, die Art und Weise, wie ein Gerät bereitgestellt werden kann, die unterstützten Knotenfunktionen (d. h. Proxy, Relay, LPN und Friend) usw. Häufig bestehen Abhängigkeiten zwischen verschiedenen Teilen der Spezifikationen von Bluetooth Mesh .
Die Flexibilität der Bluetooth Mesh Technologie ist von großem Vorteil. Dies muss jedoch gegen das Ziel abgewogen werden, durch Normung Interoperabilität zwischen Produkten verschiedener Hersteller zu erreichen. Je konfigurierbarer und variabler eine Technologie ist, desto schwieriger kann es manchmal werden, die Interoperabilität zu gewährleisten. Aus diesem Grund definiert eine Reihe von Bluetooth Mesh NLC-Geräteprofilspezifikationen Standardkonfigurationen und andere Anforderungen und Empfehlungen für die Anwendungsschicht von Geräten verschiedener Typen. Die Einhaltung der entsprechenden Profile führt dazu, dass das Produkt mit anderen Produkten, die dasselbe Profil implementieren, interoperabel ist.
Es wurden NLC-Profilspezifikationen für die folgenden Produkttypen festgelegt.
- Umgebungslichtsensor NLC-Profil
- Basic Lightness Controller NLC-Profil
- Basis-Szenenauswahl NLC-Profil
- Dimmsteuerung NLC-Profil
- Energie-Monitor NLC-Profil
- Anwesenheitssensor NLC-Profil
Durch die Definition aller Schichten eines Geräts, von der physikalischen Schicht bis hin zur Anwendungsschicht, ist Bluetooth Mesh der erste vollständige Standard für die drahtlose Beleuchtungssteuerung.
10. Bluetooth Mesh Interessierte Kreise
Das Verständnis der Hauptakteure und ihrer Rollen hilft dabei, zu verstehen, wie Bluetooth Mesh Netzwerke geplant, erstellt, gewartet und verwaltet werden. In diesem Abschnitt wird eine Reihe von Standardrollen ermittelt und erläutert.
10.1 Der Planer
Der Planer hat ein breites Spektrum von Aufgaben, die alle mit der Definition des zu erstellenden Netzes zu tun haben. Es ist sinnvoll, diese Aufgaben in drei Unterkategorien zu unterteilen:
- Physikalische Planung
- Funktionale Planung
- Netzplanung
Für alle Unterkategorien kann ein und dieselbe Person zuständig sein, oder sie können auf Spezialisten verteilt werden.
Bei der Raumplanung geht es um die Festlegung der räumlichen Anordnung von Geräten in einem Gebäude. Architekten, Innenarchitekten oder Industriedesigner sind in der Regel mit der physischen Planung befasst.
Bei der funktionalen Planung geht es um die Festlegung der funktionalen Merkmale von Geräten und ihrer funktionalen Beziehungen zu anderen Geräten im Netz. Die funktionale Planung kann die physische Planung beeinflussen.
Bei der Netzplanung geht es darum, die erforderliche Gerätekonfiguration so festzulegen, dass die gewünschte Funktionalität und Zuverlässigkeit erreicht wird. In dieser Funktion wird festgelegt, welche Geräte konfiguriert werden, um beispielsweise als Freundesknoten, Knoten mit geringer Leistung, Relaisknoten oder Proxy-Knoten zu fungieren. Der Netzplaner hat Einfluss auf die physikalische Planung.
10.2 Das Installationsprogramm
Der Installateur baut die Geräte in einem Gebäude ein. Dazu gehört in der Regel das Bohren von Löchern, das Besteigen von Leitern, der Einsatz eines Schraubendrehers und der Anschluss an die Stromversorgung.
10.3 Der Kommissar
Nachdem die Geräte vom Installateur gemäß dem vom Planer erstellten Entwurf physisch installiert wurden, macht diese Rolle die Geräte durch ihre Bereitstellung zu einem Teil des neuen Bluetooth Mesh Netzwerks. Nach der Bereitstellung konfiguriert der Beauftragte jeden neuen Knoten so, dass er über die Funktionen und die Konfiguration verfügt, die in der Funktions- und Netzwerkplanung festgelegt wurden. In der Regel werden Bereitstellung und Konfiguration gleichzeitig und mit demselben Tool durchgeführt, bei dem es sich häufig um eine Smartphone-Anwendung handelt.
10.4 Die Rolle der Gebäudeinstandhaltung
Die Rolle der Gebäudewartung ist eine weitere weit gefasste Rolle, die Aspekte der Rollen des Planers, des Installateurs und des Inbetriebnehmers beinhaltet, jedoch mit der Verantwortung für ein bestehendes Netzwerk in einem Gebäude und nicht für die Schaffung eines neuen Netzwerks. Zu den Aufgaben der Gebäudewartung gehören beispielsweise der Austausch von Geräten (die installiert, bereitgestellt und konfiguriert werden müssen), die Diagnose und Lösung von Problemen sowie die sichere Entsorgung von Geräten, die nicht mehr benötigt werden.
10.5 Der Gebäudeeigentümer
Der Gebäudeeigentümer ist Eigentümer des Gebäudes und darauf bedacht, dass das Netzwerk wie gewünscht funktioniert, sicher ist und die erwartete Investitionsrendite (ROI) liefert.
11. Schlussfolgerung
Dieser Beitrag sollte dem Leser eine Einführung in Bluetooth Mesh , seine wichtigsten Funktionen, Konzepte und Terminologie geben. Es handelt sich um Bluetooth , aber nicht so, wie wir es kennen. Es handelt sich um eine Bluetooth Technologie, die einen neuen Weg für die Kommunikation von Geräten unter Verwendung einer neuen Topologie unterstützt.
Vor allem aber ist es Bluetooth , das diese weit verbreitete drahtlose Technologie mit geringem Stromverbrauch zu einer perfekten Lösung für eine ganze Reihe neuer Anwendungsfälle und Branchen macht.
12. Zusätzliche Ressourcen
In diesem Abschnitt sind weitere Ressourcen aufgeführt, die das Lernen über Bluetooth LE aus verschiedenen Perspektiven unterstützen.
Resource | Description | Location |
---|---|---|
Bluetooth Mesh Protocol Specification |
This specification defines the Bluetooth Mesh architecture and its protocols and procedures. |
https://www.bluetooth.com/specifications/specs/mesh-protocol/ |
Mesh Models |
Defines the full set of standard Bluetooth Mesh models. |
https://www.bluetooth.com/specifications/specs/mesh-model-1-1/ |
Bluetooth Core Specification |
Defines all layers of the Bluetooth stack and associated protocols and procedures. Covers both Bluetooth LE and Bluetooth BR/EDR. |
|
Profile and service specifications |
A service specification defines a single GATT service along with the characteristics and descriptors that it contains. The behaviors to be exhibited by the GATT server device hosting the service in response to various conditions and state data values are defined in the service specification.
Profile specifications define the roles that related devices assume and in particular, define the behavior of the client device and the data on the connected server that it should work with. |
|
The Bluetooth Low Energy Primer |
The Bluetooth Low Energy (LE) Primer explains every layer of the Bluetooth LE stack, starting with the physical layer at the bottom and ending with the generic access profile at the top. Topics related to the layered architecture of the stack, such as security, are covered too. This is the place to start if you’re new to Bluetooth LE and want to learn about the technology from a technical perspective. |
https://www.bluetooth.com/bluetooth-resources/the-bluetooth-low-energy-primer/ |
Bluetooth Mesh 1.1 – Feature Summary |
Version 1.1 of the Bluetooth Mesh protocol specification introduced several substantial new features. This paper summarizes the changes at a high level and provides links to papers that provide greater detail on each of the new features. |
https://www.bluetooth.com/mesh-feature-enhancements-summary/ |
Study Guide – An Introduction to Bluetooth Low Energy Development |
An educational resource for developers wishing to learn about software development for connection-oriented scenarios involving smartphones and peripheral devices. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-le-developer-starter-kit/ |
Study Guide – An Introduction to Bluetooth Mesh Software Development |
An educational resource for developers wishing to learn about Bluetooth Mesh and about the implementation of mesh models in microcontrollers. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-developer-study-guide/ |
Study Guide – An Introduction to the Bluetooth Mesh Proxy Function |
An educational resource for developers wishing to learn how to create GUI applications for devices such as smartphones which allow interaction with nodes in a Bluetooth Mesh network. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-proxy-kit/ |
Paper – Bluetooth Mesh Networking – An Introduction for Developers |
An educational resource for anyone interested in learning about the key concepts and capabilities of Bluetooth Mesh. |
|
Paper – Bluetooth Mesh Models – A Technical Overview |
An educational resource for anyone interested in better understanding the standard models available for use in Bluetooth Mesh products. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-mesh-models/ |
Study Guide – Understanding Bluetooth LE Security |
An educational resource which explains and illustrates all aspects of security in Bluetooth LE (excluding Bluetooth Mesh). Suitable for both complete beginners to the subject of security and those with prior experience. Includes a series of hands-on projects with solutions. |
https://www.bluetooth.com/bluetooth-resources/le-security-study-guide/ |
Paper – Bluetooth Security and Privacy Best Practices Guide |
A guide which is intended to help implementers better understand why certain available security and privacy choices are better or worse than others for specific applications, and what risks and pitfalls remain in the specifications. |
https://www.bluetooth.com/bluetooth-resources/bluetooth-security-and-privacy-best-practices-guide/ |
Article – Scalability in Bluetooth Mesh networks |
A blog post which examines the question of scalability, offers a definition and explores the factors that govern the issue in larger networks. |
https://www.bluetooth.com/blog/mesh-in-large-scale-networks/ |
[1] Bei der Erörterung von Funkübertragungsraten ist es üblicher, von Symbolen pro Sekunde statt von Bits zu sprechen. Es besteht jedoch eine 1:1-Entsprechung zwischen digitalen Bits und analogen Symbolen in Bluetooth.
[2] Die Spezifikationen von Bluetooth werden in Abschnitt 5 vorgestellt. Systemarchitektur.
[3] Die Bluetooth LE Primer ist eine empfehlenswerte Lektüre für eine Einführung in LE im Allgemeinen.
[4] Die Rolle "Standalone Updater" kann die Verweise auf "Initiator" oder "Distributor" in diesem Abschnitt ersetzen.
[5] Siehe 6.3 Die Bluetooth Mesh Stacks
[6] Bei einem Mülleimer-Angriff wird ein weggeworfenes Gerät wiedergefunden und die darin enthaltenen Sicherheitsschlüssel werden ausgelesen und böswillig verwendet.