Bluetooth-Mesh-Netzwerk - Bluetooth mesh networking

Bluetooth-Mesh-Netzwerk
Bluetooth-logo.svg
Entwickelt von Bluetooth SIG
Eingeführt 13. Juli 2017  ( 2017-07-13 )
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 .  ( 2017-07-13 )

Ü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

Von Bluetooth SIG genehmigte ("qualifizierte") Bluetooth-Mesh-Implementierungen
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.  ( 15.07.2019 )
  • 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.  ( 20.09.2019 )

Verweise