Rețea Bluetooth cu rețea - Bluetooth mesh networking

Rețea Bluetooth mesh
Bluetooth-logo.svg
Dezvoltat de Bluetooth SIG
Introdus 13 iulie 2017  ( 13.07.2017 )
Industrie Iluminat , IoT
Gama fizică 100-1000 metri (în funcție de configurația relei de plasă)

Bluetooth Mesh este un standard de rețea de rețea pentru computer bazat pe Bluetooth Low Energy, care permite comunicații de la mulți la mulți prin radio Bluetooth. Specificațiile Bluetooth Mesh au fost definite în specificațiile Mesh Profile și Mesh Model de Bluetooth Special Interest Group (Bluetooth SIG). Bluetooth Mesh a fost conceput în 2014 și adoptat pe 13 iulie 2017 .  ( 13.07.2017 )

Prezentare generală

Bluetooth Mesh este un standard de rețea mesh care funcționează pe principiul rețelei de inundații . Se bazează pe nodurile de transmitere a mesajelor: fiecare nod de releu care primește un pachet de rețea care se autentifică împotriva unei chei de rețea cunoscute care nu se află în memoria cache a mesajelor, care are un TTL ≥ 2 poate fi retransmis cu TTL = TTL - 1. Memorarea în cache a mesajelor este folosit pentru a preveni transmiterea mesajelor recent văzute.

Comunicarea se efectuează în mesajele care pot avea o lungime de până la 384 de octeți, atunci când se utilizează mecanismul de segmentare și reasamblare (SAR), dar majoritatea mesajelor se încadrează într-un segment, adică 11 octeți. Fiecare mesaj începe cu un cod opțional, care poate fi un singur octet (pentru mesaje speciale), 2 octeți (pentru mesaje standard) sau 3 octeți (pentru mesaje specifice furnizorului).

Fiecare mesaj are o sursă și o adresă de destinație, determinând dispozitivele care procesează mesajele. Dispozitivele publică mesaje către destinații care pot fi lucruri unice / grupuri de lucruri / totul.

Fiecare mesaj are un număr de secvență care protejează rețeaua împotriva atacurilor de redare.

Fiecare mesaj este criptat și autentificat. Două chei sunt folosite pentru securizarea mesajelor: (1) chei de rețea - alocate unei singure rețele mesh, (2) chei de aplicație - specifice pentru o anumită funcționalitate a aplicației, de exemplu aprinderea luminii vs. reconfigurarea luminii.

Mesajele au un timp de trăit (TTL). De fiecare dată când mesajul este primit și retransmis, TTL este decrementat, ceea ce limitează numărul de „hamei”, eliminând buclele nesfârșite.

Arhitectură

Bluetooth Mesh are o arhitectură stratificată, cu mai multe straturi ca mai jos.

Strat Funcționalitate
Model Layer Acesta definește un mod standard de schimb de mesaje specifice aplicației. De exemplu, un Model Lightness Lightness definește un mod interoperabil de a controla luminozitatea. Există modele obligatorii, numite Foundation Models, care definesc stările și mesajele necesare pentru a gestiona o rețea mesh.
Strat de acces Acesta definește mecanismul pentru a se asigura că datele sunt transmise și primite în contextul corect al unui model și a cheilor de aplicație asociate acestuia.
Stratul superior de transport Acesta definește criptarea autentificată a pachetelor de straturi de acces utilizând o aplicație (sau o cheie specifică dispozitivului). De asemenea, definește unele mesaje de control pentru a gestiona Prietenia sau pentru a notifica comportamentul nodului folosind mesaje Heartbeat.
Stratul inferior de transport Acest strat definește un pachet de nivel superior de transmisie segmentat fiabil (printr-o confirmare de bloc), atunci când un pachet complet de strat superior nu poate fi transportat într-un singur pachet de strat de rețea. De asemenea, definește un mecanism de reasamblare a segmentelor pe receptor.
Layer de rețea Acest strat definește modul în care pachetele de transport sunt adresate prin rețea către unul sau mai multe noduri. Acesta definește funcționalitatea de releu pentru redirecționarea mesajelor de către un nod de releu pentru a extinde intervalul. Se ocupă de criptarea autentificată a stratului de rețea utilizând cheia de rețea.
Stratul de purtător Acesta definește modul în care pachetele de rețea sunt schimbate între noduri. Specificația profilului de plasă definește suportul publicitar BLE și suportul BLE GATT. Profilul Mesh definește Protocolul Proxy, prin care pachetele mesh pot fi schimbate prin intermediul altor purtători precum TCP / IP.

Topologie

Nodurile care acceptă diferitele caracteristici pot fi formate într-o rețea mesh.

Caracteristică Funcționalitate
Releu primiți și retransmiteți mesaje mesh peste purtătorul de publicitate

pentru a permite rețele mai mari.

Proxy primi și retransmite mesaje mesh între GATT și

purtători de publicitate.

Putere redusă funcționează într-o rețea mesh cu un receptor redus semnificativ

ciclurile de funcționare numai împreună cu un nod care acceptă caracteristica Friend.

Prieten ajutați un nod care acceptă caracteristica Low Power să funcționeze prin stocare

mesaje destinate acestor noduri.

Limite teoretice

Limitele practice ale tehnologiei Bluetooth Mesh sunt necunoscute. Unele limite care sunt integrate în caietul de sarcini includ:

Limită pentru o rețea Valoare Observații
Numărul maxim de noduri 32 767 Limita este de 32768 de adrese și în timp ce un nod poate ocupa mai multe adrese, limita practică este cel mai probabil mai mică.
Număr maxim de grupuri 16 384

Numărul grupurilor virtuale este de 2 128 .

Număr maxim de scene 65 535
Numărul maxim de subrețele 4 096
TTL maxim 127

Modele mesh

Începând cu versiunea 1.0 a specificațiilor Bluetooth Mesh, au fost definite următoarele modele standard și grupuri de modele:

Modele de fundație

Modelele de fundație au fost definite în specificațiile de bază. Două dintre ele sunt obligatorii pentru toate nodurile mesh.

  • Server de configurare (obligatoriu)
  • Client de configurare
  • Health Server (obligatoriu)
  • Client de sănătate

Modele generice

  • Server OnOff generic, folosit pentru a reprezenta dispozitive care nu se potrivesc cu niciuna dintre descrierile modelului definite, dar acceptă proprietățile generice ale On / Off
  • Server de nivel generic, păstrând starea unui element într-un întreg semnat pe 16 biți
  • Server de timp de tranziție implicit generic, utilizat pentru a reprezenta un timp de tranziție implicit pentru o varietate de dispozitive
  • Server Generic Power OnOff & Server Generic Power OnOff Setup Server, folosit pentru a reprezenta dispozitive care nu se potrivesc cu niciuna dintre descrierile modelului, dar acceptă proprietățile generice ale On / Off
  • Server de nivel de putere generic și server de configurare a nivelului de putere generic, inclusiv o stare de putere generică reală, o stare de putere generică ultima, o stare implicită de putere generică și o stare de putere generică
  • Generic Battery Server, reprezentând un set de patru valori care reprezintă starea unei baterii
  • Server de locație generic și server de configurare a locației generice, reprezentând informații despre locație ale unui element, fie global (Lat / Lon), fie local
  • Utilizator generic / administrator / producător / server de proprietate client, reprezentând orice valoare care trebuie stocată de un element
  • Client OnOff generic și client la nivel generic
  • Client generic de timp de tranziție implicit
  • Generic Power OnOff Client & Generic Power Level Client
  • Client generic de baterie
  • Client de locație generică
  • Client de proprietate generică

Senzori

  • Server senzor și server configurare senzor, reprezentând un dispozitiv senzor . Dispozitivul senzor poate fi configurat pentru a returna periodic o valoare măsurată sau la cerere; perioada de măsurare (cadență) poate fi configurată pentru a fi fixă ​​sau pentru a se modifica, astfel încât intervalul de valori mai important să fie raportat mai repede.
  • Client senzor

Timp și scene

  • Server de timp și server de configurare a timpului, permițând sincronizarea timpului în rețeaua mesh
  • Server de scenă și server de configurare a scenei, permițând configurarea și reamintirea a 65535 de scene atunci când este necesar.
  • Server de programare și server de configurare a programatorului
  • Time Client, Scene Client & Scheduler Client

Iluminat

  • Server Lightness Lightness și Light Lightness Setup Server, reprezentând o sursă de lumină reglabilă
  • Light CTL Server, Light CTL Temperature Server și Light CTL Setup Server, reprezentând o sursă de lumină CCT sau „alb reglabil”
  • Light HSL Server, Light HSL Hue Server, Light HSL Saturation Server și Light HSL Setup Server, reprezentând o sursă de lumină bazată pe Hue, Saturation, Lightness culoare reprezentare
  • Light xyL Server & Light xyL Setup Server, reprezentând o sursă de lumină bazată pe spațiul de culoare CIE xyY modificat .
  • Light LC (Lightness Control) Server și Light LC Setup Server, reprezentând un dispozitiv de control al luminii, capabil să controleze modelul Light Lightness folosind un senzor de ocupare și un senzor de lumină ambientală . Poate fi folosit pentru scenarii de control al luminii precum Auto-On, Auto-Off și / sau Daylight Harvesting .
  • Light Lightness Client, Light CTL Client, Light HSL Client, Light xyL Client & Light LC Client

Aprovizionare

Provizionarea este un proces de instalare a dispozitivului într-o rețea. Este un pas obligatoriu pentru a construi o rețea Bluetooth Mesh.

În procesul de aprovizionare, un furnizor distribuie în siguranță o cheie de rețea și un spațiu de adresă unic pentru un dispozitiv. Protocolul de aprovizionare utilizează P256 Elliptic Curve Diffie-Hellman Key Exchange pentru a crea o cheie temporară pentru a cripta cheia de rețea și alte informații. Aceasta oferă securitate împotriva unui ascultător pasiv. De asemenea, oferă diverse mecanisme de autentificare pentru a proteja informațiile de rețea, de un ascultător activ care folosește atacul om în mijloc , în timpul procesului de aprovizionare.

O cheie unică pentru un dispozitiv cunoscut sub numele de „Cheie dispozitiv” este derivată din secretul partajat al curbei eliptice pe dispozitivul de aprovizionare și dispozitiv în timpul procesului de aprovizionare. Această cheie de dispozitiv este utilizată de furnizor pentru a cripta mesajele pentru acel dispozitiv specific.

Securitatea procesului de aprovizionare a fost analizată într-o lucrare prezentată în cadrul conferinței IEEE CNS 2018.

Provizionarea poate fi realizată utilizând o conexiune Bluetooth GATT sau publicitate utilizând suportul specific.

Terminologia utilizată în specificațiile modelului Bluetooth Mesh și a profilului Mesh

  • Destinație: adresa la care este trimis un mesaj.
  • Element: o entitate adresabilă în cadrul unui dispozitiv.
  • Model: Funcționare standardizată a scenariilor tipice de utilizator.
  • Nod: un dispozitiv aprovizionat.
  • Provisioner: un nod care poate adăuga un dispozitiv la o rețea mesh.
  • Releu: un nod capabil să retransmită mesaje.
  • Sursă: adresa de la care este trimis un mesaj.

Implementări

Aprobat („calificat”) prin Bluetooth SIG

Implementări de rețea Bluetooth aprobate („calificate”) de Bluetooth SIG
Nume Expeditor Data calificării QDID Tip
Stiva Bluetooth pentru sisteme încorporate - profil MESH Silvair, Inc. 18 iulie 2017 98880 Subsistemul profilului
Qualcomm Bluetooth Mesh Qualcomm Technologies International, Ltd. 18 iulie 2017 98856 Subsistemul profilului
Silvair Mesh Models Silvair, Inc. 26 iulie 2017 99282 Subsistemul profilului
Profil wireless Gecko Mesh Laboratoarele de siliciu 21 septembrie 2017 101318 Subsistemul profilului
CYW-MESH 1.0 Cypress Semiconductor Corporation 3 octombrie 2017 101726 Componentă (testată)
Model Qualcomm Bluetooth Mesh Qualcomm Technologies International, Ltd. 20 octombrie 2017 102243 Subsistemul profilului
EtherMind Bluetooth Protocol Stack, 5.0 (Single Mode) + Mesh Mindtree Limited 24 ianuarie 2018 106544 Componentă (testată)
Telink SIG Mesh SDK Telink Semiconductor 1 februarie 2018 106546 Subsistemul profilului
TOSHIBA Bluetooth_stack_mesh-1 Toshiba Corporation 13 februarie 2018 104143 Componentă (testată)
Profilul AMICCOM Mesh AMICCOM Electronics Corporation 14 martie 2018 109370 Subsistemul profilului
Amiccom Bluetooth Mesh Model AMICCOM Electronics Corporation 30 martie 2018 110168 Subsistemul profilului
Plasa SIG Airoha Airoha Technology Corp. 2 aprilie 2018 110202 Subsistemul profilului
Stiva Marvell Mesh v1.0 Marvell Technology Group 27 aprilie 2018 110569 Componentă (testată)
SDK nRF5 pentru Mesh Nordic Semiconductor 2 mai 2018 111537 Subsistemul profilului
Soluție Realtek Bluetooth 5 Mesh Realsil Microelectronics Inc 27 iulie 2018 115668 Subsistemul profilului
STSW-BNRG-Mesh STMicroelectronics 2 august 2018 116029 Subsistemul profilului
RDA BT Host 5.0 RDA Microelectronics, Inc. 13 septembrie 2018 115860 Subsistemul profilului
JYMC-MESH-1 Shanghai Frequen Microelectronics Co., Ltd. 10 octombrie 2018 119229 Produs final
RW-BLE-MESH CEVA, Inc. 31 octombrie 2018 119268 Componentă (testată)
ARM Ltd Cordio Mesh ARM Ltd. 11 decembrie 2018 116593 Subsistemul profilului
Samsung SLSI Bluetooth Mesh Samsung Electronics Co., Ltd. 21 decembrie 2018 122442 Subsistemul profilului
Bluelet Host Stack V12 Barrot Technology Limited 25 decembrie 2018 123056 Componentă (testată)
ESP BLE Mesh v0.6 Espressif Systems (Shanghai) Pte. Ltd. 14 ianuarie 2019 124137 Subsistemul profilului
BK3435 BLE Core Spec 5.0 cu MESH Beken Corp 12 martie 2019 127926 Produs final
Subsistemul Acțiuni Mesh Profile Actions (Zhuhai) Technology Co., Limited 21 martie 2019 127646 Subsistemul profilului
AliOS Things BLE gazdă și profil mesh v2.1.0 Alibaba (China) Co., Ltd. 19 aprilie 2019 129750 Subsistem gazdă
Tonly SIG Mesh Stack Shenzhen Tonli Science and Technology Development Co., Ltd. 5 mai 2019 130160 Subsistemul profilului
Sino Wealth IBLE SIG Mesh Profile Sino Wealth Electronic Ltd. 18 iunie 2019 133403 Subsistemul profilului
Qualcomm Bluetooth Mesh și Mesh Model v4.0 Qualcomm Technologies International, Ltd. 19 iunie 2019 128410 Subsistemul profilului
PAN1020 Mesh Profile subsistem Shanghai Panchip Microelectronics Co., Ltd. 1 iulie 2019 129291 Subsistemul profilului
Apache NimBLE BLE Host, inclusiv BLE Mesh JUUL Labs, Inc. 15 iulie 2019 131934 Componentă (testată)
Stivă de plasă mică Alibaba (China) Co., Ltd. 20 iulie 2019 128246 Subsistemul profilului
ClarinoxBlue Clarinox Technologies Pty Ltd. 2 august 2019 134454 Subsistem gazdă
BlueX Mesh BlueX Microelectronics Corp Ltd. 20 august 2019 137436 Subsistemul profilului
Zephyr OS Mesh Fundația Linux 20 septembrie 2019 139259 Subsistemul profilului
WCH Bluetooth Mesh Nanjing Qinheng Microelectronics Co., Ltd. 1 iunie 2020 144808 Subsistemul profilului

Implementări software gratuite și open-source

Implementările de software gratuit și software open source includ următoarele:

  • Oficialul (inclus în kernel-ul Linux de către Linus Torvalds în 2001) stiva de protocol Linux Bluetooth BlueZ , dual-licențiat gratuit sub GPL și LGPL , acceptă Mesh Profile, de la versiunea de lansare 5.47, oferind un instrument meshctl pentru configurarea dispozitivelor mesh. BlueZ a fost aprobat ca pachet software „calificat” de Bluetooth SIG în 2005. BlueZ nu este considerat a fi o stivă Bluetooth Mesh calificată, deoarece Bluetooth Mesh nu este listat în înregistrarea de calificare menționată anterior ca profil acceptat.
  • Apache Mynewt NimBLE , licențiat gratuit sub licența Apache 2.0 , acceptă Bluetooth Mesh de la versiunea 1.2.0. A fost calificat la 15 iulie 2019 cu QDID 131934.  ( 15.07.2019 )
  • Zephyr OS Mesh , licențiat gratuit sub licența Apache 2.0 , acceptă Bluetooth Mesh de la versiunea 1.9.0. Zephyr OS Mesh 1.14.x a fost calificat pe 20 septembrie 2019 cu QDID 139259.  ( 20.09.2019 )

Referințe