Bluetooth

Bluetooth Mesh

Komunikacja wiele-do-wielu dla inteligentnych budynków i aplikacji IoT.

Topologie i zastosowania Bluetooth Mesh

Popularne tryby Bluetooth Classic i początkowego Low Energy (LE) korzystały z połączeń punkt-punkt, a LE obsługiwał również komunikację rozgłoszeniową. Smartfon (master lub Central) łączył się bezpośrednio ze słuchawkami (slave lub Peripheral), tworząc prosty link jeden-do-jednego. Alternatywnie, jedno urządzenie Central mogło łączyć się z kilkoma Peripheral, tworząc sieć w topologii gwiazdy, w której komunikacja aplikacyjna przechodziła przez centralny hub. Taki model dobrze pasował do osobistych gadżetów, lecz miał ograniczenia w rozproszonych instalacjach Internetu Rzeczy (IoT).

W biurze z wieloma piętrami panel sterowania może obsługiwać setki świateł, czujników i termostatów. W topologii gwiazdy każde urządzenie musi znajdować się w bezpośrednim zasięgu radiowym centralnego huba, co przy dużych odległościach, ścianach i innych przeszkodach bywa niepraktyczne. Przekazywanie wiadomości przez inne urządzenia pozwala wyjść poza pojedynczy zasięg radiowy.

To wyzwanie doprowadziło do rozwoju Bluetooth Mesh, standardu sieciowego przyjętego przez Bluetooth SIG w 2017 roku jako Mesh Profile 1.0. Bluetooth Mesh korzysta z istniejącej warstwy fizycznej Bluetooth Low Energy i dodaje wyspecjalizowany stos protokołów sieciowych. Mesh Profile 1.0 pozostaje nazwą pierwszej wersji profilu, a późniejsze wydania noszą nazwy Mesh Protocol 1.1 i 1.1.1. Jego celem jest przekształcenie tradycyjnego modelu komunikacji jeden-do-jednego w sieć . Ta topologia może obsługiwać sieci urządzeń obejmujące budynki, fabryki i kampusy, dlatego znajduje zastosowanie między innymi w inteligentnym oświetleniu, automatyce budynkowej i przemysłowych sieciach czujników.

Mechanizm zarządzanego rozgłaszania

Bluetooth Mesh wykorzystuje zasadę komunikacji znaną jako zarządzane rozgłaszanie (managed flooding). W przeciwieństwie do tradycyjnych sieci mesh z routingiem, gdzie algorytmy obliczają ścieżkę dla każdej wiadomości, rozgłaszanie przekazuje wiadomość przez kwalifikowane węzły przekaźnikowe i może korzystać z wielu ścieżek.

Zasada Rozgłaszania

W czystej sieci opartej na rozgłaszaniu, gdy węzeł chce wysłać wiadomość, nadaje ją do wszystkich swoich najbliższych sąsiadów. Każdy węzeł, który otrzyma wiadomość, rozgłasza ją ponownie do swoich sąsiadów. Ten proces może rozszerzyć zasięg wiadomości przez wiele ścieżek, lecz nie daje gwarancji dostarczenia przy zakłóceniach, braku węzła lub ograniczeniu zasięgu. Bez kontroli jest również nieefektywny i może prowadzić do niekończącej się "burzy rozgłoszeniowej", w której wiadomości krążą po sieci.

Bluetooth Mesh udoskonala tę koncepcję, przekształcając ją w zarządzane rozgłaszanie, dodając dwa mechanizmy do kontrolowania przepływu wiadomości:

Mesh Protocol 1.1 dodaje także Directed Forwarding. Węzeł źródłowy może wybrać zarządzane rozgłaszanie albo przekazywanie kierowane, w którym retransmisję wykonują węzły należące do wybranej ścieżki. Opis podstawowego Mesh Profile 1.0 dotyczy zarządzanego rozgłaszania.

  • Czas Życia (Time to Live, TTL):Każda wiadomość wysyłana do sieci mesh ma wartość TTL, która jest małą liczbą (np. 5 lub 7). Za każdym razem, gdy węzeł retransmituje, czyli "przekazuje dalej", wiadomość, zmniejsza jej wartość TTL o jeden. Węzeł nie przekaże dalej wiadomości z TTL równym 1 lub mniej. Pole ma zakres pozwalający na maksymalnie 126 retransmisji. Działa ono jak licznik ograniczający liczbę przekazań i czas propagacji wiadomości.
  • Pamięć podręczna wiadomości: Każdy węzeł w sieci mesh utrzymuje małą pamięć podręczną ostatnio przetworzonych Network PDU. Przed przetworzeniem odebranej jednostki węzeł sprawdza pamięć podręczną. Jeśli odpowiadająca jednostka już tam jest, węzeł odrzuca nową kopię. Mechanizm ogranicza wielokrotne przekazywanie tej samej Network PDU, gdy dociera ona od różnych sąsiadów, i przerywa pętle burzy rozgłoszeniowej.

Razem, TTL i pamięć podręczna wiadomości zamieniają chaotyczne rozgłaszanie w kontrolowaną, wydajną i wielościeżkową komunikację bez potrzeby centralnego koordynatora czy tablic routingu. Zwiększają prawdopodobieństwo dostarczenia, lecz wynik nadal zależy od warunków radiowych i dostępności węzłów.

Podstawowy advertising bearer Mesh korzysta z możliwości ogłoszeniowych Bluetooth Low Energy. Wiadomości tego bearera są rozgłaszane jako pakiety ogłoszeniowe LE na trzech kanałach podstawowej reklamy, dlatego ten sposób transportu jest bezpołączeniowy. Proxy może udostępnić sieć przez GATT bearer. Relay działa w warstwie sieciowej, a Proxy udostępnia połączenie GATT klientowi, na przykład smartfonowi. Są to odrębne funkcje zależne od konfiguracji węzła.

Typy węzłów w sieci Bluetooth Mesh

Sieć Bluetooth Mesh składa się z węzłów, które mogą pełnić różne role. Każdy węzeł może mieć jedną lub więcej z czterech podstawowych funkcji, a konfiguracja wpływa na zasięg i zużycie energii sieci. Konfiguracja węzła określa, czy przekazuje wiadomości, przechowuje je dla LPN albo udostępnia ścieżkę GATT.

  • Węzły Przekaźnikowe (Relay Nodes):

    Węzeł Przekaźnikowy przekazuje wiadomości, gdy funkcja Relay jest w nim włączona. Po odebraniu wiadomości, której nie ma w pamięci podręcznej i która ma TTL większe niż 1, retransmituje ją, aby rozszerzyć zasięg. Wiele urządzeń zasilanych z sieci, takich jak inteligentne żarówki, inteligentne gniazdka czy przełączniki ścienne, jest konfigurowanych jako Węzły Przekaźnikowe. Taki węzeł utrzymuje odbiór wymagany przez funkcję Relay i uczestniczy w zarządzanym rozgłaszaniu, tworząc wieloskokowe ścieżki. Węzeł sprawdza pamięć Network PDU przed przekazaniem i zmniejsza TTL przy każdej retransmisji. Funkcja Relay jest opcjonalna, więc samo zasilanie sieciowe nie oznacza roli Relay.

  • Węzły Niskoenergetyczne (Low Power Nodes - LPN):

    Węzły LPN ograniczają pobór energii przez okresowe nasłuchiwanie. Małe czujniki zasilane bateryjnie, na przykład czujnik temperatury lub kontaktron drzwiowy, nie utrzymują radia w odbiorze przez cały czas, ponieważ skróciłoby to czas pracy baterii. LPN większość czasu pozostaje w stanie głębokiego uśpienia, budząc się na krótko, aby przesłać odczyt lub sprawdzić wiadomości. Może działać przez lata na jednej baterii pastylkowej, lecz nie przekazuje wiadomości dla innych urządzeń. LPN korzysta z procedur friendship i odpytuje Friend w oknach odbioru, zamiast utrzymywać aktywny odbiornik.

  • Węzły Przyjacielskie (Friend Nodes):

    LPN większość czasu pozostaje uśpiony, dlatego Friend odbiera wiadomości w jego imieniu. Friend jest zwykle zasilany z sieci i może pełnić również funkcję Relay. Utrzymuje specjalną relację z LPN oraz kolejkę wiadomości adresowanych do tego węzła. Gdy LPN okresowo się budzi, odpytuje Friend, który dostarcza zapisane wiadomości. W rezultacie węzeł zasilany bateryjnie pozostaje adresowalny bez ciągłego nasłuchiwania. Relacja friendship określa obsługiwany LPN i kolejkę używaną dla jego wiadomości.

  • Węzły Proxy:

    Advertising bearer jest podstawowym transportem sieci mesh, lecz urządzenia, które nie obsługują pełnego standardu Bluetooth Mesh, jak większość smartfonów czy laptopów, mogą korzystać z Proxy. Węzeł Proxy pośredniczy między wiadomościami Mesh a standardowym połączeniem Bluetooth LE GATT, czyli GATT bearer. Smartfon z kompatybilną aplikacją może połączyć się z Proxy, a następnie komunikować się z siecią, konfigurować ją i sterować jej urządzeniami. Ta ścieżka pozwala aplikacji wymieniać przez GATT wiadomości Mesh i dane konfiguracji.

Model komunikacji: Publikacja i Subskrypcja

Zamiast bezpośredniego adresowania jeden-do-jednego, w którym nadawca musi znać unikalny adres każdego odbiorcy, Mesh używa modelu znanego jako . Taki model oddziela konfigurację urządzeń i ułatwia obsługę grup.

Jak Działa Pub/Sub w Bluetooth Mesh

System opiera się na adresach grupowych i adresach wirtualnych. Połowa przestrzeni adresowej jest przeznaczona na group addresses, a virtual address wykorzystuje 128-bitowy Label UUID i jego skrót. Urządzenia są konfigurowane tak, aby wysyłać wiadomości na te adresy (publikować) albo odbierać wiadomości kierowane do subskrybowanych adresów.

  • Publikowanie:Urządzenie, które chce wysłać informację, takie jak przełącznik ścienny, jest skonfigurowane do "publikowania" swoich wiadomości na określony adres grupowy. Na przykład przełącznik w salonie może być ustawiony tak, aby publikował komendę "Włącz/Wyłącz" na adres "Światła w Salonie". Przełącznik nie musi wiedzieć, ile żarówek jest w tej grupie ani jakie są ich indywidualne adresy. Po prostu rozgłasza swoją komendę w sieci, zaadresowaną do grupy.
  • Subskrybowanie:Urządzenia, które powinny reagować na informacje, takie jak inteligentne żarówki, są skonfigurowane do "subskrybowania" jednego lub więcej adresów grupowych. Wszystkie żarówki w salonie mogą subskrybować adres "Światła w Salonie" i odbierać wiadomości kierowane do tej grupy. Gdy przełącznik opublikuje komendę "Włącz/Wyłącz", każda żarówka przetworzy ją zgodnie z własnym harmonogramem odbioru i zareaguje na polecenie.

Zalety Modelu Pub/Sub

Model ten wspiera sterowanie grupowe w inteligentnych budynkach:

  • Skalowalność i Elastyczność:Dodanie nowej żarówki do salonu jest proste. Wystarczy skonfigurować nową żarówkę, aby subskrybowała adres grupowy "Światła w Salonie". Oryginalny przełącznik nie musi być rekonfigurowany ani nawet wiedzieć o istnieniu nowej żarówki. Nadal publikuje na ten sam adres, a nowa żarówka będzie teraz reagować.
  • Kontrola Grupowa: Sterowanie dużymi grupami urządzeń staje się proste i wydajne. Jedna wiadomość z jednego przełącznika może sterować dziesiątkami lub setkami świateł, zależnie od zasięgu, konfiguracji i czasu obsługi węzłów.
  • Złożone Sceny i Automatyzacja:Model pozwala na złożone interakcje. Pojedynczy przycisk "Tryb Filmowy" mógłby opublikować komendę do grupy "Scena Filmowa". Światła sufitowe mogłyby subskrybować tę grupę, aby przyciemnić się do 10%, inteligentne rolety, aby się zamknąć, a inteligentny telewizor, aby się włączyć. Wszystkie te urządzenia od różnych producentów reagują na jedną, prostą komendę.

Model bezpieczeństwa Bluetooth Mesh

Bezpieczeństwo jest elementem specyfikacji Bluetooth Mesh. W sieci, w której wiadomości mogą być przekazywane przez tysiące urządzeń, model ochrony obejmuje prywatność, autentyczność i kontrolę dostępu. Bluetooth Mesh stosuje wielowarstwowy model, w którym każda wiadomość jest szyfrowana i uwierzytelniana.

Architektura bezpieczeństwa opiera się na zasadzie "rozdzielenia obowiązków", wykorzystując zestaw różnych kluczy bezpieczeństwa do różnych celów. Szyfrowanie i uwierzytelnianie wiadomości wykorzystuje AES-128-CCM, a klucze sieciowe i aplikacyjne chronią odrębne warstwy:

  1. Klucz Urządzenia (DevKey): Każdy węzeł dodawany do sieci mesh ma swój unikalny klucz urządzenia. Klucz ten jest używany głównie podczas początkowego procesu konfiguracji, zwanego provisionowaniem, do ustanowienia bezpiecznego kanału komunikacji jeden-do-jednego między dodawanym urządzeniem a Provisionerem (np. aplikacją na smartfonie).
  2. Klucz Sieciowy (NetKey):Każdy subnet ma własny klucz NetKey, a węzeł może należeć do więcej niż jednego subnetu. Warstwa sieciowa pakietu Mesh jest szyfrowana i uwierzytelniana przy użyciu NetKey właściwego dla subnetu. Zapewnia to, że tylko zaufane urządzenia należące do danego subnetu mogą przekazywać wiadomości i uczestniczyć w procesie zarządzanego rozgłaszania. Chroni to infrastrukturę przed nieautoryzowanym dostępem i atakami typu "replay".
  3. Klucz Aplikacji (AppKey):Klucz ten zapewnia drugą warstwę bezpieczeństwa nałożoną na warstwę sieciową. Rzeczywisty ładunek wiadomości, na przykład komenda "włącz", jest szyfrowany kluczem aplikacji powiązanym z odpowiednim NetKey. W tej samej sieci fizycznej można używać różnych kluczy AppKey dla różnych aplikacji lub funkcji. Na przykład wszystkie światła i przełączniki w budynku mogą współdzielić "Klucz Aplikacji Oświetlenia", podczas gdy system ogrzewania, wentylacji i klimatyzacji (HVAC) może używać oddzielnego "Klucza Aplikacji HVAC". Przełączniki mogą wtedy sterować światłami, lecz nie uzyskują dostępu do poleceń HVAC. Ta separacja zapewnia szczegółową kontrolę dostępu i jest kluczowa dla automatyki budynkowej.

Dwuwarstwowe szyfrowanie, na poziomie sieciowym za pomocą NetKey i na poziomie aplikacyjnym za pomocą AppKey, oznacza, że nawet węzły Relay, które muszą przetworzyć warstwę sieciową, aby odczytać TTL i obsłużyć pamięć podręczną, nie mogą uzyskać dostępu do danych aplikacji bez odpowiedniego AppKey. Architektura wymaga szyfrowania i uwierzytelniania wiadomości, ochrony przed replay, odświeżania kluczy oraz separacji subnetów.

Powiązane artykuły