Bluetooth mesh-nätverk

Bluetooth mesh-nätverk
Bluetooth-logo.svg
Utvecklad av Bluetooth SIG
Introducerad 13 juli 2017 ( 2017-07-13 )
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 ( 2017-07-13 ) .

Ö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

Bluetooth-mesh-implementationer godkända ("kvalificerade") 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 ( 2019-07-15 ) 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 ( 2019-09-20 ) med QDID 139259.