Thread – bezprzewodowy protokół sieciowy typu mesh o niskim poborze mocy, przeznaczony dla urządzeń Internetu rzeczy, a przede wszystkim dla wyposażenia inteligentnych domów i budynków. Sieć Thread budują węzły komunikujące się bezpośrednio ze sobą, bez pośrednictwa dedykowanego koncentratora. Warstwa radiowa pochodzi ze standardu IEEE 802.15.4, a warstwy wyższe z rozwiązań IETF: kompresji nagłówków 6LoWPAN oraz IPv6, dzięki czemu każde urządzenie ma własny adres IP i jest osiągalne end-to-end.
Urządzenia zasilane z sieci elektrycznej pełnią rolę ruterów i przekazują pakiety sąsiadów, więc sieć nie ma pojedynczego punktu awarii. Po utracie węzła trasy są odbudowywane automatycznie, a urządzenia bateryjne mogą przez większość czasu pozostawać uśpione. Z siecią lokalną i z Internetem mesh łączy router brzegowy (border router), wbudowany m.in. w głośniki, huby i routery Apple, Google oraz Amazona.
Thread nie definiuje własnej warstwy aplikacji. Przenosi ruch protokołów zewnętrznych, wśród nich Matter, KNX IoT i DALI+, co odróżnia go od ZigBee, gdzie profil aplikacji jest częścią specyfikacji. Protokół rozwija Thread Group, organizacja powołana 15 lipca 2014 roku przez siedem firm. Specyfikacja jest publikowana bezpłatnie, a Google utrzymuje jej otwartą implementację o nazwie OpenThread. Pierwsza publiczna wersja dokumentu ukazała się 13 lipca 2015 roku; stan na wrzesień 2024 roku wyznacza wydanie 1.4, zaś wersja 1.4.1 pozostaje w fazie roboczej.
Historia Thread wywodzi się z prac prowadzonych w Nest Labs nad siecią dla termostatów i czujników. 15 lipca 2014 roku siedem przedsiębiorstw: ARM, Big Ass Fans, Freescale Semiconductor, Nest Labs, Samsung Electronics, Silicon Labs oraz Yale, ogłosiło powołanie Thread Group i zamiar zbudowania domowej sieci opartej w całości na protokole IP, bez własnościowych mostów i bramkek producentów. Już w kwietniu 2015 roku grupa porozumiała się z ZigBee Alliance w sprawie uruchamiania biblioteki klastrów ZigBee ponad sieciami Thread, a 13 lipca 2015 roku udostępniła pierwszą publiczną specyfikację protokołu.
W maju 2017 roku Google udostępniło OpenThread, otwartoźródłową implementację specyfikacji 1.1.1 użytą wcześniej w produktach Nest. Rok później, w sierpniu 2018 roku, do Thread Group przystąpiło Apple, a Amazon wszedł do zarządu organizacji w listopadzie 2021 roku. Kolejne wydania specyfikacji przesuwały środek ciężkości z samego meshu ku interoperacyjności: wersja 1.2 z czerwca 2019 roku dodała Backbone Routera i większe podsieci IPv6 z myślą o instalacjach komercyjnych, wersja 1.3.0 z lipca 2022 roku ustandaryzowała działanie routerów brzegowych tuż przed premierą Matter, a wydanie 1.4 z września 2024 roku zajęło się problemem urządzeń zakładających własne, równoległe sieci zamiast dołączania do istniejącej.
W 2026 roku organizacja pozostała aktywna: w marcu do zarządu, obok Amazona i Apple, dołączył Schneider Electric, a w czerwcu Thread Group i Broadband Forum zawarły porozumienie o wymianie specyfikacji technicznych.
Wersja Data publikacji Zakres zmian 1.0 13 lipca 2015 pierwsza publiczna specyfikacja 1.2 18 czerwca 2019 Backbone Router, rozszerzone podsieci IPv6, optymalizacje z IEEE 802.15.4-2015 1.3.0 18 lipca 2022 ustandaryzowany router brzegowy, przygotowanie pod Matter 1.4 4 września 2024 dołączanie do istniejącej sieci niezależnie od ekosystemu, Thread over Infrastructure, diagnostyka, commissioning ponad TLS 1.4.1 w opracowaniu wydanie utrzymaniowe, dostępne dla członków jako robocze
Technologia Stos protokołu Thread składa się z warstw zaczerpniętych z istniejących standardów IEEE i IETF, uzupełnionych o własną warstwę sieciową z routingiem mesh i zarządzaniem kluczami. Radio pracuje wyłącznie w paśmie 2,4 GHz, na jednym z 16 kanałów IEEE 802.15.4, z modulacją O-QPSK i przepływnością 250 kbit/s. Rezygnacja z pasm sub-GHz upraszcza konstrukcję urządzeń kosztem zasięgu pojedynczego przeskoku, który w pomieszczeniach wynosi zwykle kilkanaście metrów.
Warstwa Technologia Aplikacji protokoły zewnętrzne: Matter, KNX IoT, DALI+ Transportowa i sieciowa UDP i IPv6 z pełną adresacją end-to-end Adaptacyjna 6LoWPAN, kompresja nagłówków IPv6 Sieciowa Thread routing mesh, Mesh Link Establishment, usługi bezpieczeństwa, rejestr usług Łącza danych i fizyczna IEEE 802.15.4 (2,4 GHz, O-QPSK, 250 kbit/s)
Sieć samokonfiguruje się: węzły wykrywają sąsiadów, wybierają trasy i naprawiają je po awarii pośredniczącego urządzenia bez udziału użytkownika. Zamiast rozgłaszania zapytań multicastowych, nieefektywnego w sieciach mesh, Thread utrzymuje rejestr usług, w którym urządzenia rejestrują swoją obecność, a klienci odpytują go zapytaniami unicast. Pojedyncza partycja sieci obejmuje do 32 ruterów; wprowadzony w wersji 1.2 model domen pozwala spiąć wiele sieci Thread szkieletem Ethernet lub Wi-Fi i budować instalacje liczące dziesiątki tysięcy urządzeń.
Role urządzeń mały|Schemat ról węzłów w sieci Thread Każdy węzeł pełni w sieci jedną z ról:
ruter – urządzenie zasilane sieciowo, przekazujące pakiety innych węzłów; trzon meshu, router-eligible end device (REED) – węzeł zdolny do awansu na ruter, gdy sieć potrzebuje dodatkowej przepustowości, urządzenie końcowe (end device, w tym uśpiane sleepy end device) – węzeł bateryjny komunikujący się wyłącznie ze swoim ruterem nadrzędnym, lider (leader) – ruter zarządzający przydziałem identyfikatorów i konfiguracją sieci; po jego utracie rolę przejmuje inny węzeł, więc sieć nie przestaje działać, router brzegowy (border router) – most między meszem a siecią Wi-Fi lub Ethernet oraz Internetem, Backbone Router (od wersji 1.2) – ruter brzegowy synchronizujący kilka sieci Thread w obrębie domeny.
Router brzegowy Bez routera brzegowego urządzenia Thread komunikują się wyłącznie w obrębie meshu; dostęp z aplikacji mobilnej spoza domu i integracje chmurowe wymagają jego obecności. Funkcję tę pełnią konsumenckie huby i głośniki: po stronie Apple są to HomePod i Apple TV 4K, po stronie Google urządzenia z rodziny Nest, a po stronie Amazona wybrane modele Echo oraz routery eero. Przed specyfikacją 1.3.0 każdy ekosystem obsługiwał wyłącznie własne urządzenia, co wersji 1.3.0 wyeliminowało przez ustandaryzowanie współpracy urządzeń z routerami dowolnego producenta. Wersja 1.4 dodała Thread over Infrastructure: routery brzegowe mogą rozszerzać mesh o łącza Wi-Fi i Ethernet, zamiast polegać wyłącznie na radiu 802.15.4.
Bezpieczeństwo Cały ruch w sieci Thread jest szyfrowany na warstwie sieciowej algorytmem AES z kluczami 128-bitowymi. Urządzenie nie dołączy do sieci bez autoryzacji: podstawową metodą jest kod instalacyjny nadrukowany na obudowie lub opakowaniu, wprowadzany lub skanowany podczas commissioningu. Klucze sieciowe podlegają rotacji, a utrata pojedynczego węzła nie kompromituje pozostałego ruchu. Thread Group opisuje stosowany model uwierzytelniania jako zbliżony do mechanizmów znanych ze smartfonów.
Wersja 1.4 wprowadziła commissioning ponad TLS z użyciem certyfikatów, przeznaczony dla instalacji profesjonalnych, w których urządzenia montowane w sufitach lub ścianach nie mają dostępnego kodu instalacyjnego; proces może wówczas przebiegać bezprzewodowo z urządzenia mobilnego przez Bluetooth LE.
Thread a Matter Matter, standard warstwy aplikacji rozwijany przez Connectivity Standards Alliance we współpracy z Thread Group i Wi-Fi Alliance, zadebiutował 4 października 2022 roku i jako nośniki przewiduje Thread, Wi-Fi oraz Ethernet. W wariancie Matter over Thread sieć radiowa przenosi ruch aplikacji, natomiast Bluetooth LE służy wyłącznie do początkowego parowania urządzenia. Dla użytkownika oznacza to, że żarówka czy czujnik nie potrzebują własnej bramki producenta: wystarcza router brzegowy obecny w posiadanym hubie lub głośniku. Thread pozostaje przy tym agnostyczny wobec warstwy aplikacji i poza Matter przenosi także KNX IoT oraz DALI+.
OpenThread OpenThread to otwartoźródłowa implementacja stosu Thread utrzymana przez Google, opublikowana w maju 2017 roku wraz z kodem używanym w produktach Nest. Projekt obejmuje wszystkie warstwy sieciowe protokołu i nadaje się do konstrukcji SoC, koprocesorów sieciowych oraz radiowych; na jego podstawie powstaje też referencyjna implementacja routera brzegowego (OpenThread Border Router). Bieżące wydania śledzą specyfikację 1.4, a gałąź robocza obejmuje funkcje planowane w 1.4.1. Producenci półprzewodników, m.in. Silicon Labs, dystrybuują własne zestawy SDK zbudowane wokół OpenThread.
Ograniczenia Przepływność 250 kbit/s ogranicza zastosowania Threadu do sterowania i telemetrii; strumieniowanie audio czy wideo pozostaje domeną Wi-Fi. Protokół pracuje tylko w paśmie 2,4 GHz, współdzielonym z Wi-Fi i Bluetooth, więc w zatłoczonych instalacjach konieczne bywa planowanie kanałów. Urządzenia bateryjne wybudzają się okresowo, co podnosi opóźnienia odpowiedzi w porównaniu z węzłami zasilanymi sieciowo.
Krytyka dotyczyła głównie praktyki wdrożeń, nie samego protokołu. Przed upowszechnieniem Thread 1.4 urządzenia i huby różnych marek potrafiły zakładać równoległe sieci Thread w tym samym domu zamiast dołączać do jednej wspólnej, a zawodność routerów brzegowych była wskazywana jako źródło problemów użytkowników Matter; The Verge oceniał wydanie 1.4 jako próbę odpowiedzi na te bolączki, standaryzując wzajemne zaufanie urządzeń i routerów brzegowych.
Przypisy
Linki zewnętrzne Oficjalna strona Thread Group Dokumentacja OpenThread
Kategoria:Sieci bezprzewodowe Kategoria:Protokoły sieciowe Kategoria:Internet rzeczy