Rețea Bluetooth cu rețea - Bluetooth mesh networking
Dezvoltat de | Bluetooth SIG |
---|---|
Introdus | 13 iulie 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 .
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
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.
- 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.