Bluetooth mesh-nätverk
Utvecklad av | Bluetooth SIG |
---|---|
Introducerad | 13 juli 2017 |
Industri | Belysning , IoT |
Fysisk räckvidd | 100-1000 meter (beroende på mesh reläkonfiguration) |
Bluetooth Mesh är en nätverksstandard för datornätverk baserad på Bluetooth Low Energy som möjliggör många-till-många-kommunikation över Bluetooth-radio . Bluetooth Mesh-specifikationerna definierades i Mesh-profilen och Mesh Model-specifikationerna av Bluetooth Special Interest Group (Bluetooth SIG). Bluetooth Mesh skapades 2014 och antogs den 13 juli 2017 .
Översikt
Bluetooth Mesh är en mesh-nätverksstandard som fungerar enligt en översvämningsnätverksprincip . Det är baserat på att noderna vidarebefordrar meddelandena: varje relänod som tar emot ett nätverkspaket som autentiserar mot en känd nätverksnyckel som inte finns i meddelandecache, som har en TTL ≥ 2 kan återsändas med TTL = TTL - 1. Meddelandecache är används för att förhindra vidarebefordran av meddelanden som nyligen setts.
Kommunikation utförs i meddelanden som kan vara upp till 384 byte långa, när du använder Segmentation and Reassembly (SAR) mekanism, men de flesta av meddelandena ryms i ett segment, det vill säga 11 byte. Varje meddelande börjar med en opkod, som kan vara en enkel byte (för specialmeddelanden), 2 byte (för standardmeddelanden) eller 3 byte (för leverantörsspecifika meddelanden).
Varje meddelande har en källa och en destinationsadress, som avgör vilka enheter som behandlar meddelanden. Enheter publicerar meddelanden till destinationer som kan vara enskilda saker / grupper av saker / allt.
Varje meddelande har ett sekvensnummer som skyddar nätverket mot reprisattacker.
Varje meddelande är krypterat och autentiserat. Två nycklar används för att säkra meddelanden: (1) nätverksnycklar – allokerade till ett enda mesh-nätverk, (2) applikationsnycklar – specifika för en given applikationsfunktionalitet, t.ex. att tända lampan kontra att konfigurera om lampan.
Meddelanden har en tid att leva (TTL). Varje gång meddelande tas emot och återsänds, minskas TTL vilket begränsar antalet "hopp", vilket eliminerar ändlösa loopar.
Arkitektur
Bluetooth Mesh har en skiktad arkitektur, med flera lager enligt nedan.
Lager | Funktionalitet |
---|---|
Modelllager | Den definierar ett standardsätt att utbyta programspecifika meddelanden. Till exempel definierar en Light Lightness Model ett interoperabelt sätt att kontrollera lättheten. Det finns obligatoriska modeller, kallade grundmodeller, som definierar tillstånd och meddelanden som behövs för att hantera ett mesh-nätverk. |
Åtkomstlager | Den definierar en mekanism för att säkerställa att data överförs och tas emot i rätt sammanhang för en modell och dess associerade applikationsnycklar. |
Övre transportlager | Den definierar autentiserad kryptering av åtkomstlagerpaket med hjälp av en applikation (eller enhetsspecifik nyckel). Den definierar också vissa kontrollmeddelanden för att hantera Friendship eller för att meddela nodens beteende med hjälp av Heartbeat-meddelanden. |
Nedre transportlager | Detta lager definierar ett tillförlitligt (genom en Block Acknowledgement) Segmenterad överföring av övre lagerpaket, när ett komplett övre lagerpaket inte kan bäras i ett enda nätverkslagerpaket. Den definierar också en mekanism för att återmontera segment på mottagaren. |
Nätverkslager | Detta lager definierar hur transportpaket adresseras över nätverk till en eller flera noder. Den definierar reläfunktionalitet för vidarebefordran av meddelanden via en relänod till utökat räckvidd. Den hanterar nätverkslagret autentiserad kryptering med hjälp av nätverksnyckel. |
Bärarlager | Den definierar hur nätverkspaketen utbyts mellan noder. Mesh Profile Specification definierar BLE-annonsbärare och BLE GATT-bärare. Mesh Profile definierar proxyprotokoll, genom vilket mesh-paket kan utbytas via andra bärare som TCP/IP. |
Topologi
Noder som stöder de olika funktionerna kan formas till ett mesh-nätverk.
Funktion | Funktionalitet |
---|---|
Relä | ta emot och återsända mesh-meddelanden över reklambäraren för att möjliggöra större nätverk. |
Ombud | ta emot och återsända mesh-meddelanden mellan GATT och reklambärare. |
Låg effekt | arbeta inom ett mesh-nätverk med avsevärt reducerad mottagare arbetscykler endast i samband med en nod som stöder Friend-funktionen. |
Vän | hjälpa en nod som stöder Low Power-funktionen att fungera genom att lagra meddelanden avsedda för dessa noder. |
Teoretiska gränser
De praktiska gränserna för Bluetooth Mesh-teknik är okända. Några gränser som är inbyggda i specifikationen inkluderar:
Gräns för ett nätverk | Värde | Anmärkningar |
---|---|---|
Maximalt antal noder | 32 767 | Gränsen är 32768 adresser och även om en nod kan uppta mer än en adress, är den praktiska gränsen troligen lägre. |
Maximalt antal grupper | 16 384 Antalet virtuella grupper är 2 128 . |
|
Maximalt antal scener | 65 535 | |
Maximalt antal subnät | 4 096 | |
Maximal TTL | 127 |
Mesh modeller
Från och med version 1.0 av Bluetooth Mesh-specifikationen har följande standardmodeller och modellgrupper definierats:
Grundmodeller
Grundmodeller har definierats i kärnspecifikationen. Två av dem är obligatoriska för alla meshnoder.
- Konfigurationsserver (obligatorisk)
- Konfigurationsklient
- Health Server (obligatorisk)
- Hälsoklient
Generiska modeller
- Generisk OnOff Server, används för att representera enheter som inte passar någon av de definierade modellbeskrivningarna men som stöder de allmänna egenskaperna för På/Av
- Generisk nivåserver, som håller ett elements tillstånd i ett 16-bitars signerat heltal
- Generic Default Transition Time Server, används för att representera en standardövergångstid för en mängd olika enheter
- Generic Power OnOff Server & Generic Power OnOff Setup Server, används för att representera enheter som inte passar någon av modellbeskrivningarna men stöder de allmänna egenskaperna för På/Av
- Generic Power Level Server & Generic Power Level Setup Server, inklusive ett Generic Power Actual-tillstånd, ett Generic Power Last-tillstånd, ett Generic Power-standardtillstånd och ett Generic Power Range-tillstånd
- Generisk batteriserver, som representerar en uppsättning av fyra värden som representerar ett batteris tillstånd
- Generic Location Server & Generic Location Setup Server, som representerar platsinformation för ett element, antingen globalt (lat/långt) eller lokalt
- Generisk användare/administratör/tillverkare/klientegenskapsserver, som representerar alla värden som ska lagras av ett element
- Generic OnOff Client & Generic Level Client
- Generisk standard övergångstid klient
- Generic Power OnOff Client & Generic Power Level Client
- Generisk batteriklient
- Generisk platsklient
- Generisk fastighetsklient
Sensorer
- Sensor Server & Sensor Setup Server, som representerar en sensorenhet . Sensorenheten kan konfigureras för att returnera ett uppmätt värde periodiskt eller på begäran; mätperiod (kadens) kan konfigureras för att vara fixerad eller att ändras, så att viktigare värdeintervall rapporteras snabbare.
- Sensorklient
Tid och scener
- Time Server & Time Setup Server, möjliggör tidssynkronisering i mesh-nätverk
- Scene Server & Scene Setup Server, gör att upp till 65535 scener kan konfigureras och återkallas vid behov.
- Scheduler Server & Scheduler Setup Server
- Time Client, Scene Client & Scheduler Client
Belysning
- Light Lightness Server & Light Lightness Setup Server, som representerar en dimbar ljuskälla
- Light CTL Server, Light CTL Temperature Server & Light CTL Setup Server, som representerar en CCT eller "tunable white" ljuskälla
- Light HSL Server, Light HSL Hue Server, Light HSL Saturation Server & Light HSL Setup Server, representerar en ljuskälla baserad på Hue, Saturation, Lightness färgrepresentation
- Light xyL Server & Light xyL Setup Server, representerar en ljuskälla baserad på modifierad CIE xyY- färgrymd.
- Light LC (Lightness Control) Server & Light LC Setup Server, som representerar en ljusstyrningsenhet, som kan styra Light Lightness-modellen med hjälp av en närvarosensor och en sensor för omgivande ljus . Den kan användas för ljusstyrningsscenarier som Auto-On, Auto-Off och/eller Daylight Harvesting .
- Light Lightness Client, Light CTL Client, Light HSL Client, Light xyL Client & Light LC Client
Provisionering
Provisioning är en process för att installera enheten i ett nätverk. Det är ett obligatoriskt steg att bygga ett Bluetooth Mesh-nätverk.
I provisioneringsprocessen distribuerar en provisioner på ett säkert sätt en nätverksnyckel och ett unikt adressutrymme för en enhet. Provisionsprotokollet använder P256 Elliptic Curve Diffie-Hellman Key Exchange för att skapa en tillfällig nyckel för att kryptera nätverksnyckel och annan information. Detta ger säkerhet från en passiv avlyssnare. Det tillhandahåller också olika autentiseringsmekanismer för att skydda nätverksinformation, från en aktiv avlyssnare som använder man-in-the-middle-attack, under provisioneringsprocessen.
En nyckel som är unik för en enhet känd som "Device Key" härleds från en elliptisk kurva delad hemlighet på provisionern och enheten under provisioneringsprocessen. Denna enhetsnyckel används av tillhandahållaren för att kryptera meddelanden för den specifika enheten.
Säkerheten för provisioneringsprocessen har analyserats i ett dokument som presenterades under IEEE CNS 2018-konferensen.
Provisioneringen kan utföras med en Bluetooth GATT-anslutning eller reklam med den specifika bäraren.
Terminologi som används i specifikationerna för Bluetooth Mesh Model och Mesh Profile
- Destination: Adressen som ett meddelande skickas till.
- Element: En adresserbar enhet inom en enhet.
- Modell: Standardiserad drift av typiska användarscenarier.
- Nod: En tillhandahållen enhet.
- Provisioner: En nod som kan lägga till en enhet i ett mesh-nätverk.
- Relä: En nod som kan återsända meddelanden.
- Källa: Adressen som ett meddelande skickas från.
Genomföranden
Godkänd ("kvalificerad") av Bluetooth SIG
namn | Leverantör | Kvalificeringsdatum | QDID | Typ |
---|---|---|---|---|
Bluetooth Stack för inbyggda system - MESH-profil | Silvair, Inc. | 18 juli 2017 | 98880 | Profildelsystem |
Qualcomm Bluetooth Mesh | Qualcomm Technologies International, Ltd. | 18 juli 2017 | 98856 | Profildelsystem |
Silvair Mesh-modeller | Silvair, Inc. | 26 juli 2017 | 99282 | Profildelsystem |
Trådlös Gecko Mesh-profil | Silicon Laboratories | 21 september 2017 | 101318 | Profildelsystem |
CYW-MESH 1.0 | Cypress Semiconductor Corporation | 3 oktober 2017 | 101726 | Komponent (testad) |
Qualcomm Bluetooth Mesh-modell | Qualcomm Technologies International, Ltd. | 20 oktober 2017 | 102243 | Profildelsystem |
EtherMind Bluetooth Protocol Stack, 5.0 (Single Mode) + Mesh | Mindtree Limited | 24 januari 2018 | 106544 | Komponent (testad) |
Telink SIG Mesh SDK | Telink halvledare | 1 februari 2018 | 106546 | Profildelsystem |
TOSHIBA Bluetooth_stack_mesh-1 | Toshiba Corporation | 13 februari 2018 | 104143 | Komponent (testad) |
AMICCOM Mesh-profil | AMICCOM Electronics Corporation | 14 mars 2018 | 109370 | Profildelsystem |
Amiccom Bluetooth Mesh-modell | AMICCOM Electronics Corporation | 30 mars 2018 | 110168 | Profildelsystem |
Airoha SIG mesh | Airoha Technology Corp. | 2 april 2018 | 110202 | Profildelsystem |
Marvell Mesh stack v1.0 | Marvell Technology Group | 27 april 2018 | 110569 | Komponent (testad) |
nRF5 SDK för Mesh | Nordic Semiconductor | 2 maj 2018 | 111537 | Profildelsystem |
Realtek Bluetooth 5 Mesh-lösning | Realsil Microelectronics Inc | 27 juli 2018 | 115668 | Profildelsystem |
STSW-BNRG-Mesh | STMicroelectronics | 2 augusti 2018 | 116029 | Profildelsystem |
RDA BT Host 5.0 | RDA Microelectronics, Inc. | 13 september 2018 | 115860 | Profildelsystem |
JYMC-MESH-1 | Shanghai Frequen Microelectronics Co., Ltd. | 10 oktober 2018 | 119229 | Slutprodukt |
RW-BLE-MESH | CEVA, Inc. | 31 oktober 2018 | 119268 | Komponent (testad) |
ARM Ltd Cordio Mesh | ARM Ltd | 11 december 2018 | 116593 | Profildelsystem |
Samsung SLSI Bluetooth Mesh | Samsung Electronics Co., Ltd. | 21 december 2018 | 122442 | Profildelsystem |
Bluelet Host Stack V12 | Barrot Technology Limited | 25 december 2018 | 123056 | Komponent (testad) |
ESP BLE Mesh v0.6 | Espressif Systems (Shanghai) Pte. Ltd. | 14 januari 2019 | 124137 | Profildelsystem |
BK3435 BLE Core Spec 5.0 med MESH | Beken Corp | 12 mars 2019 | 127926 | Slutprodukt |
Åtgärder Mesh Profile Subsystem | Actions (Zhuhai) Technology Co., Limited | 21 mars 2019 | 127646 | Profildelsystem |
AliOS Things BLE värd- och meshprofil v2.1.0 | Alibaba (China) Co., Ltd. | 19 april 2019 | 129750 | Host Subsystem |
Tonly SIG Mesh Stack | Shenzhen Tonli Science and Technology Development Co., Ltd | 5 maj 2019 | 130160 | Profildelsystem |
Sino Wealth IBLE SIG Mesh-profil | Sino Wealth Electronic Ltd. | 18 juni 2019 | 133403 | Profildelsystem |
Qualcomm Bluetooth Mesh och Mesh Model v4.0 | Qualcomm Technologies International, Ltd. | 19 juni 2019 | 128410 | Profildelsystem |
PAN1020 Mesh Profile subsystem | Shanghai Panchip Microelectronics Co., Ltd | 1 juli 2019 | 129291 | Profildelsystem |
Apache NimBLE BLE Host inklusive BLE Mesh | JUUL Labs, Inc. | 15 juli 2019 | 131934 | Komponent (testad) |
Tmall mesh Stack | Alibaba (China) Co., Ltd. | 20 juli 2019 | 128246 | Profildelsystem |
ClarinoxBlå | Clarinox Technologies Pty Ltd | 2 augusti 2019 | 134454 | Host Subsystem |
BlueX Mesh | BlueX Microelectronics Corp Ltd. | 20 augusti 2019 | 137436 | Profildelsystem |
Zephyr OS Mesh | Linux Foundation | 20 september 2019 | 139259 | Profildelsystem |
WCH Bluetooth Mesh | Nanjing Qinheng Microelectronics Co., Ltd. | 1 juni 2020 | 144808 | Profildelsystem |
Gratis och öppen källkodsimplementering
Fri programvara och öppen källkodsimplementering inkluderar följande:
- Den officiella (inkluderade i Linux-kärnan av Linus Torvalds 2001) Linux Bluetooth-protokollstacken BlueZ , dubbla frilicensierade under GPL och LGPL , stöder Mesh Profile, från version 5.47, genom att tillhandahålla meshctl-verktyg för att konfigurera mesh-enheter. BlueZ godkändes som ett "kvalificerat" mjukvarupaket av Bluetooth SIG 2005. BlueZ anses inte vara en kvalificerad Bluetooth Mesh-stack eftersom Bluetooth Mesh inte är listad i ovannämnda kvalificeringspost som en profil som stöds.
- Apache Mynewt NimBLE , frilicensierad under Apache License 2.0 , stöder Bluetooth Mesh från version 1.2.0. Den kvalificerades den 15 juli 2019 med QDID 131934.
- Zephyr OS Mesh , frilicensierad under Apache License 2.0 , stöder Bluetooth Mesh från version 1.9.0. Zephyr OS Mesh 1.14.x kvalificerades den 20 september 2019 med QDID 139259.