Bluetooth-Mesh-Netzwerk - Bluetooth mesh networking
Entwickelt von | Bluetooth SIG |
---|---|
Eingeführt | 13. Juli 2017 |
Industrie | Beleuchtung , IoT |
Physische Reichweite | 100-1000 Meter (abhängig von der Konfiguration des Netzrelais) |
Bluetooth Mesh ist ein Computernetz- Netzwerkstandard, der auf Bluetooth Low Energy basiert und eine Viele-zu-Viele-Kommunikation über Bluetooth-Funk ermöglicht. Die Bluetooth-Netzspezifikationen wurden in den Netzprofil- und Netzmodellspezifikationen von der Bluetooth Special Interest Group (Bluetooth SIG) definiert. Bluetooth Mesh wurde 2014 konzipiert und am 13. Juli 2017 eingeführt .
Überblick
Bluetooth Mesh ist ein Mesh-Netzwerkstandard , der nach dem Prinzip eines Hochwassernetzwerks arbeitet. Es basiert auf den Knoten, die die Nachrichten weiterleiten: Jeder Weiterleitungsknoten, der ein Netzwerkpaket empfängt, das sich gegen einen bekannten Netzwerkschlüssel authentifiziert, der sich nicht im Nachrichtencache befindet und eine TTL ≥ 2 aufweist, kann mit TTL = TTL - 1 erneut übertragen werden wird verwendet, um zu verhindern, dass kürzlich gesehene Nachrichten weitergeleitet werden.
Die Kommunikation erfolgt in Nachrichten, die bei Verwendung des SAR-Mechanismus (Segmentation and Reassembly) bis zu 384 Byte lang sein können. Die meisten Nachrichten passen jedoch in ein Segment, dh 11 Byte. Jede Nachricht beginnt mit einem Opcode, der ein einzelnes Byte (für spezielle Nachrichten), 2 Byte (für Standardnachrichten) oder 3 Byte (für herstellerspezifische Nachrichten) sein kann.
Jede Nachricht hat eine Quell- und eine Zieladresse, die bestimmen, welche Geräte Nachrichten verarbeiten. Geräte veröffentlichen Nachrichten an Ziele, bei denen es sich um einzelne Dinge / Gruppen von Dingen / alles handeln kann.
Jede Nachricht hat eine Sequenznummer, die das Netzwerk vor Wiederholungsangriffen schützt.
Jede Nachricht wird verschlüsselt und authentifiziert. Zum Sichern von Nachrichten werden zwei Schlüssel verwendet: (1) Netzwerkschlüssel - einem einzelnen Mesh-Netzwerk zugeordnet, (2) Anwendungsschlüssel - spezifisch für eine bestimmte Anwendungsfunktionalität, z. B. Einschalten des Lichts oder Neukonfiguration des Lichts.
Nachrichten haben eine Zeit zu leben (TTL). Jedes Mal, wenn eine Nachricht empfangen und erneut gesendet wird, wird TTL dekrementiert, wodurch die Anzahl der "Sprünge" begrenzt wird und Endlosschleifen eliminiert werden.
Die Architektur
Bluetooth Mesh hat eine mehrschichtige Architektur mit mehreren Schichten wie unten.
Schicht | Funktionalität |
---|---|
Modellebene | Es definiert eine Standardmethode zum Austausch anwendungsspezifischer Nachrichten. Beispielsweise definiert ein Helligkeitsmodell eine interoperable Methode zur Steuerung der Helligkeit. Es gibt obligatorische Modelle, sogenannte Foundation-Modelle, die Zustände und Nachrichten definieren, die zum Verwalten eines Mesh-Netzwerks erforderlich sind. |
Zugriffsebene | Es definiert einen Mechanismus, um sicherzustellen, dass Daten im richtigen Kontext eines Modells und der zugehörigen Anwendungsschlüssel gesendet und empfangen werden. |
Obere Transportschicht | Es definiert die authentifizierte Verschlüsselung von Zugriffsschichtpaketen mithilfe einer Anwendung (oder eines gerätespezifischen Schlüssels). Außerdem werden einige Kontrollnachrichten definiert, um die Freundschaft zu verwalten oder das Verhalten des Knotens mithilfe von Heartbeat-Nachrichten zu benachrichtigen. |
Untere Transportschicht | Diese Schicht definiert ein zuverlässiges (durch eine Blockbestätigung) segmentiertes Übertragungspaket der oberen Schicht, wenn ein vollständiges Paket der oberen Schicht nicht in einem einzelnen Netzwerkschichtpaket übertragen werden kann. Es definiert auch einen Mechanismus zum Zusammensetzen von Segmenten auf dem Empfänger. |
Netzwerkschicht | Diese Schicht definiert, wie Transportpakete über das Netzwerk an einen oder mehrere Knoten adressiert werden. Es definiert die Relay-Funktionalität zum Weiterleiten von Nachrichten durch einen Relay-Knoten, um den Bereich zu erweitern. Es behandelt die authentifizierte Verschlüsselung der Netzwerkschicht mithilfe des Netzwerkschlüssels. |
Trägerschicht | Es definiert, wie die Netzwerkpakete zwischen Knoten ausgetauscht werden. Die Netzprofilspezifikation definiert den BLE-Werbeträger und den BLE-GATT-Träger. Mesh Profile definiert das Proxy-Protokoll, über das Mesh-Pakete über andere Träger wie TCP / IP ausgetauscht werden können. |
Topologie
Knoten, die die verschiedenen Funktionen unterstützen, können zu einem Mesh-Netzwerk geformt werden.
Merkmal | Funktionalität |
---|---|
Relais | Empfangen und erneutes Senden von Mesh-Nachrichten über den Werbeträger
um größere Netzwerke zu ermöglichen. |
Proxy | Empfangen und erneutes Senden von Mesh-Nachrichten zwischen GATT und
Werbeträger. |
Geringer Strom | arbeiten innerhalb eines Mesh-Netzwerks bei deutlich reduziertem Empfänger
Arbeitszyklen nur in Verbindung mit einem Knoten, der die Friend-Funktion unterstützt. |
Freund | Helfen Sie einem Knoten, der die Low Power-Funktion unterstützt, durch Speichern zu arbeiten
Nachrichten für diese Knoten. |
Theoretische Grenzen
Die praktischen Grenzen der Bluetooth Mesh-Technologie sind unbekannt. Einige Grenzwerte, die in die Spezifikation integriert sind, umfassen:
Limit für ein Netzwerk | Wert | Bemerkungen |
---|---|---|
Maximale Anzahl von Knoten | 32 767 | Das Limit beträgt 32768 Adressen, und während ein Knoten mehr als eine Adresse belegen kann, ist das praktische Limit höchstwahrscheinlich niedriger. |
Maximale Anzahl von Gruppen | 16 384
Die Anzahl der virtuellen Gruppen beträgt 2 128 . |
|
Maximale Anzahl von Szenen | 65 535 | |
Maximale Anzahl von Subnetzen | 4 096 | |
Maximale TTL | 127 |
Mesh-Modelle
Ab Version 1.0 der Bluetooth Mesh-Spezifikation wurden die folgenden Standardmodelle und Modellgruppen definiert:
Gründungsmodelle
Fundamentmodelle wurden in der Kernspezifikation definiert. Zwei davon sind für alle Netzknoten obligatorisch.
- Konfigurationsserver (obligatorisch)
- Konfigurationsclient
- Health Server (obligatorisch)
- Gesundheits-Client
Generische Modelle
- Generischer OnOff-Server, der zur Darstellung von Geräten verwendet wird, die keiner der definierten Modellbeschreibungen entsprechen, aber die generischen Eigenschaften von Ein / Aus unterstützen
- Generic Level Server, der den Status eines Elements in einer 16-Bit-Ganzzahl mit Vorzeichen beibehält
- Generischer Standardübergangszeitserver, der verwendet wird, um eine Standardübergangszeit für eine Vielzahl von Geräten darzustellen
- Generic Power OnOff Server und Generic Power OnOff Setup Server, die zur Darstellung von Geräten verwendet werden, die keiner der Modellbeschreibungen entsprechen, aber die generischen Eigenschaften von Ein / Aus unterstützen
- Generic Power Level Server und Generic Power Level Setup Server, einschließlich eines aktuellen Status für generische Leistung, eines letzten Status für generische Leistung, eines Standardstatus für generische Leistung und eines Status für den generischen Leistungsbereich
- Generischer Batterieserver, der einen Satz von vier Werten darstellt, die den Zustand einer Batterie darstellen
- Generic Location Server und Generic Location Setup Server, die Standortinformationen eines Elements darstellen, entweder global (Lat / Lon) oder lokal
- Generischer Benutzer- / Administrator- / Hersteller- / Client-Eigenschaftsserver, der einen beliebigen Wert darstellt, der von einem Element gespeichert werden soll
- Generischer OnOff-Client und generischer Client
- Generischer Standard-Übergangszeit-Client
- Generic Power OnOff Client und Generic Power Level Client
- Generic Battery Client
- Generic Location Client
- Generic Property Client
Sensoren
- Sensorserver und Sensor-Setup-Server, die ein Sensorgerät darstellen . Die Sensorvorrichtung kann so konfiguriert sein, dass sie regelmäßig oder auf Anfrage einen Messwert zurückgibt. Die Messperiode (Trittfrequenz) kann so konfiguriert werden, dass sie fest ist oder sich ändert, sodass ein wichtigerer Wertebereich schneller gemeldet wird.
- Sensor Client
Zeit und Szenen
- Time Server & Time Setup Server, ermöglicht die Zeitsynchronisation im Mesh-Netzwerk
- Scene Server & Scene Setup Server, mit dem bis zu 65535 Szenen konfiguriert und bei Bedarf abgerufen werden können.
- Scheduler Server & Scheduler Setup Server
- Time Client, Scene Client & Scheduler Client
Beleuchtung
- Light Lightness Server und Light Lightness Setup Server, die eine dimmbare Lichtquelle darstellen
- Light CTL Server, Light CTL Temperature Server und Light CTL Setup Server, die eine CCT- oder "abstimmbare weiße" Lichtquelle darstellen
- Licht-HSL-Server, Licht-HSL-Farbton-Server, Licht-HSL-Sättigungsserver und Licht-HSL-Setup-Server, die eine Lichtquelle darstellen, die auf der Farbdarstellung von Farbton, Sättigung und Helligkeit basiert
- Light xyL Server & Light xyL Setup Server, die eine Lichtquelle darstellen, die auf dem modifizierten CIE xyY- Farbraum basiert .
- Light LC-Server (Lightness Control) und Light LC Setup Server, die ein Lichtsteuergerät darstellen und das Light Lightness-Modell mithilfe eines Präsenzmelders und eines Umgebungslichtsensors steuern können . Es kann für Lichtsteuerungsszenarien wie Auto-On, Auto-Off und / oder Daylight Harvesting verwendet werden .
- Light Lightness Client, Light CTL Client, Light HSL Client, Light xyL Client und Light LC Client
Bereitstellung
Bei der Bereitstellung wird das Gerät in einem Netzwerk installiert. Es ist ein obligatorischer Schritt, ein Bluetooth-Mesh-Netzwerk aufzubauen.
Während des Bereitstellungsprozesses verteilt ein Bereitsteller einen Netzwerkschlüssel und einen eindeutigen Adressraum für ein Gerät sicher. Das Bereitstellungsprotokoll verwendet den Diffie-Hellman- Schlüsselaustausch mit elliptischer Kurve P256 , um einen temporären Schlüssel zum Verschlüsseln des Netzwerkschlüssels und anderer Informationen zu erstellen. Dies bietet Sicherheit vor einem passiven Lauscher. Es bietet auch verschiedene Authentifizierungsmechanismen zum Schutz von Netzwerkinformationen vor einem aktiven Lauscher , der während des Bereitstellungsprozesses einen Man-in-the-Middle-Angriff verwendet.
Ein Schlüssel, der für ein als "Geräteschlüssel" bekanntes Gerät eindeutig ist, wird aus dem gemeinsamen Geheimnis der elliptischen Kurve abgeleitet, das während des Bereitstellungsprozesses auf dem Bereitsteller und dem Gerät geteilt wird. Dieser Geräteschlüssel wird vom Provisioner verwendet, um Nachrichten für dieses bestimmte Gerät zu verschlüsseln.
Die Sicherheit des Bereitstellungsprozesses wurde in einem Papier analysiert, das während der IEEE CNS 2018-Konferenz vorgestellt wurde.
Die Bereitstellung kann über eine Bluetooth-GATT-Verbindung oder Werbung über den jeweiligen Träger erfolgen.
Terminologie, die in den Spezifikationen für das Bluetooth-Netzmodell und das Netzprofil verwendet wird
- Ziel: Die Adresse, an die eine Nachricht gesendet wird.
- Element: Eine adressierbare Entität innerhalb eines Geräts.
- Modell: Standardisierter Betrieb typischer Benutzerszenarien.
- Knoten: Ein bereitgestelltes Gerät.
- Provisioner: Ein Knoten, der einem Mesh-Netzwerk ein Gerät hinzufügen kann.
- Relais: Ein Knoten, der Nachrichten erneut übertragen kann.
- Quelle: Die Adresse, von der eine Nachricht gesendet wird.
Implementierungen
Genehmigt ("qualifiziert") von Bluetooth SIG
Name | Einsender | Qualifikationsdatum | QDID | Art |
---|---|---|---|---|
Bluetooth-Stack für eingebettete Systeme - MESH-Profil | Silvair, Inc. | 18. Juli 2017 | 98880 | Profil-Subsystem |
Qualcomm Bluetooth Mesh | Qualcomm Technologies International, Ltd. | 18. Juli 2017 | 98856 | Profil-Subsystem |
Silvair Mesh Modelle | Silvair, Inc. | 26. Juli 2017 | 99282 | Profil-Subsystem |
Drahtloses Gecko-Netzprofil | Silicon Laboratories | 21. September 2017 | 101318 | Profil-Subsystem |
CYW-MESH 1.0 | Cypress Semiconductor Corporation | 3. Oktober 2017 | 101726 | Komponente (getestet) |
Qualcomm Bluetooth Mesh Modell | Qualcomm Technologies International, Ltd. | 20. Oktober 2017 | 102243 | Profil-Subsystem |
EtherMind Bluetooth Protocol Stack, 5.0 (Einzelmodus) + Mesh | Mindtree Limited | 24. Januar 2018 | 106544 | Komponente (getestet) |
Telink SIG Mesh SDK | Telink Semiconductor | 1. Februar 2018 | 106546 | Profil-Subsystem |
TOSHIBA Bluetooth_stack_mesh-1 | Toshiba Corporation | 13. Februar 2018 | 104143 | Komponente (getestet) |
AMICCOM Mesh-Profil | AMICCOM Electronics Corporation | 14. März 2018 | 109370 | Profil-Subsystem |
Amiccom Bluetooth Mesh-Modell | AMICCOM Electronics Corporation | 30. März 2018 | 110168 | Profil-Subsystem |
Airoha SIG Mesh | Airoha Technology Corp. | 2. April 2018 | 110202 | Profil-Subsystem |
Marvell Mesh Stack v1.0 | Marvell Technology Group | 27. April 2018 | 110569 | Komponente (getestet) |
nRF5 SDK für Mesh | Nordic Semiconductor | 2. Mai 2018 | 111537 | Profil-Subsystem |
Realtek Bluetooth 5 Mesh-Lösung | Realsil Microelectronics Inc. | 27. Juli 2018 | 115668 | Profil-Subsystem |
STSW-BNRG-Mesh | STMicroelectronics | 2. August 2018 | 116029 | Profil-Subsystem |
RDA BT Host 5.0 | RDA Microelectronics, Inc. | 13. September 2018 | 115860 | Profil-Subsystem |
JYMC-MESH-1 | Shanghai Frequen Microelectronics Co., Ltd. | 10. Oktober 2018 | 119229 | Endprodukt |
RW-BLE-MESH | CEVA, Inc. | 31. Oktober 2018 | 119268 | Komponente (getestet) |
ARM Ltd Cordio Mesh | ARM Ltd. | 11. Dezember 2018 | 116593 | Profil-Subsystem |
Samsung SLSI Bluetooth Mesh | Samsung Electronics Co., Ltd. | 21. Dezember 2018 | 122442 | Profil-Subsystem |
Bluelet Host Stack V12 | Barrot Technology Limited | 25. Dezember 2018 | 123056 | Komponente (getestet) |
ESP BLE Mesh v0.6 | Espressif Systems (Shanghai) Pte. GmbH. | 14. Januar 2019 | 124137 | Profil-Subsystem |
BK3435 BLE Core Spec 5.0 mit MESH | Beken Corp. | 12. März 2019 | 127926 | Endprodukt |
Aktionen Mesh Profile Subsystem | Aktionen (Zhuhai) Technology Co., Limited | 21. März 2019 | 127646 | Profil-Subsystem |
AliOS Things BLE Host- und Mesh-Profil v2.1.0 | Alibaba (China) Co., Ltd. | 19. April 2019 | 129750 | Host-Subsystem |
Tonly SIG Mesh Stack | Shenzhen Tonli Wissenschafts- und Technologieentwicklung Co., Ltd. | 5. Mai 2019 | 130160 | Profil-Subsystem |
Sino Wealth IBLE SIG Netzprofil | Sino Wealth Electronic Ltd. | 18. Juni 2019 | 133403 | Profil-Subsystem |
Qualcomm Bluetooth Mesh und Mesh Model v4.0 | Qualcomm Technologies International, Ltd. | 19. Juni 2019 | 128410 | Profil-Subsystem |
PAN1020 Mesh Profile-Subsystem | Shanghai Panchip Microelectronics Co., Ltd. | 1. Juli 2019 | 129291 | Profil-Subsystem |
Apache NimBLE BLE Host einschließlich BLE Mesh | JUUL Labs, Inc. | 15. Juli 2019 | 131934 | Komponente (getestet) |
Kleiner Maschenstapel | Alibaba (China) Co., Ltd. | 20. Juli 2019 | 128246 | Profil-Subsystem |
ClarinoxBlue | Clarinox Technologies Pty Ltd. | 2. August 2019 | 134454 | Host-Subsystem |
BlueX Mesh | BlueX Microelectronics Corp Ltd. | 20. August 2019 | 137436 | Profil-Subsystem |
Zephyr OS Mesh | Die Linux Foundation | 20. September 2019 | 139259 | Profil-Subsystem |
WCH Bluetooth Mesh | Nanjing Qinheng Microelectronics Co., Ltd. | 1. Juni 2020 | 144808 | Profil-Subsystem |
Kostenlose und Open-Source-Software-Implementierungen
Zu den Implementierungen von Freier Software und Open Source-Software gehören:
- Der offizielle (im Linus- Kernel von Linus Torvalds im Jahr 2001 enthaltene) Linux-Bluetooth-Protokollstapel BlueZ , der unter der GPL und der LGPL doppelt frei lizenziert ist , unterstützt Mesh Profile ab Version 5.47, indem er das meshctl-Tool zur Konfiguration von Mesh-Geräten bereitstellt. BlueZ wurde 2005 von Bluetooth SIG als "qualifiziertes" Softwarepaket zugelassen. BlueZ wird nicht als qualifizierter Bluetooth Mesh-Stack angesehen, da Bluetooth Mesh im oben genannten Qualifizierungsdatensatz nicht als unterstütztes Profil aufgeführt ist.
- Apache Mynewt NimBLE , kostenlos lizenziert unter der Apache License 2.0 , unterstützt Bluetooth Mesh ab Release 1.2.0. Es wurde am 15. Juli 2019 mit QDID 131934 qualifiziert.
- Zephyr OS Mesh , kostenlos lizenziert unter der Apache License 2.0 , unterstützt Bluetooth Mesh ab Release 1.9.0. Zephyr OS Mesh 1.14.x wurde am 20. September 2019 mit der QDID 139259 qualifiziert.