Rola sieciowa Thread w energooszczędnym IoT
Internet Rzeczy (IoT) obejmuje kilka technologii sieciowych o małym poborze mocy. Inteligentny dom zawiera urządzenia takie jak czujniki, żarówki i zamki do drzwi, które wymagają niezawodnej komunikacji. Zigbee i Z-Wave tworzą energooszczędne sieci mesh, a wiele wdrożeń używa huba lub bramki do połączenia ich stosu sieciowego i aplikacyjnego z sieciami opartymi na Protokole Internetowym (IP). W takim wdrożeniu bramka tłumaczy komunikację lokalnego protokołu na sieć IP używaną przez smartfony i komputery. Thread umieszcza sieciowanie IPv6 wewnątrz energooszczędnej sieci mesh, więc urządzenie może używać adresowania IP w sieci Thread, a Router Graniczny obsługuje łączność zewnętrzną.
Hub może stać się pojedynczym punktem awarii, gdy urządzenia zależą od niego podczas sterowania. Tłumaczenie dodaje kolejne etapy przetwarzania polecenia, a produkty korzystające z różnych protokołów lokalnych wymagają warstwy integracyjnej do wymiany danych. Wi-Fi przenosi IP, lecz zwykle zużywa więcej energii, niż mogą dostarczyć małe urządzenia bateryjne. Bluetooth Low Energy początkowo koncentrował się na krótkich połączeniach punkt-punkt, zamiast na routingu mesh obejmującym cały dom. Pytanie projektowe dotyczyło więc warstwy sieciowej, adresowania i ścieżki przekazywania pakietów oraz ich rozdzielenia od języka poleceń aplikacyjnych.
Thread powstał, aby połączyć energooszczędny routing mesh z sieciowaniem IPv6. Thread Group utworzyło w 2014 roku siedem organizacji: Yale Security, Silicon Labs, Samsung Electronics, Nest Labs, Freescale Semiconductor, Big Ass Fans i ARM. W późniejszym składzie grupy znalazły się także firmy takie jak Apple, Samsung i Qualcomm. zapewnia warstwę sieciową dla urządzeń IoT. Standardy aplikacyjne określają zachowanie urządzeń, a Thread zapewnia łączność IPv6 wewnątrz sieci Thread i wykorzystuje Router Graniczny do łączenia z innymi sieciami IP.
Radiowa podstawa IEEE 802.15.4
Thread korzysta ze sprawdzonego standardu radiowego IEEE 802.15.4 zamiast definiować osobny interfejs radiowy. IEEE 802.15.4 jest także używany przez Zigbee i inne protokoły małej mocy, a Thread definiuje własną architekturę sieciową powyżej radia. Radio zapewnia transmisję fizyczną i ramkowanie MAC, a Thread dodaje funkcje sieciowe potrzebne urządzeniom mesh.
Użycie IEEE 802.15.4 zapewnia Thread kilka cech dopasowanych do energooszczędnych urządzeń IoT:
- Praca w paśmie ISM 2.4 GHz: Thread korzysta z pasma ISM 2.4 GHz, które jest szeroko dostępne na świecie. Przepisy regionalne określają kanały, dopuszczalną moc i inne warunki pracy. Wi-Fi i Bluetooth korzystają z tego samego pasma, a Thread ma mechanizmy współistnienia, które nie usuwają zakłóceń w każdej instalacji.
- Modulacja DSSS: Warstwa PHY dla 2.4 GHz używa DSSS (Direct Sequence Spread Spectrum), która rozprasza sygnał na szersze pasmo częstotliwości. Ta metoda zwiększa odporność na wybrane zakłócenia wąskopasmowe w paśmie 2.4 GHz.
- Szybkość 250 kbps: Warstwa PHY IEEE 802.15.4 dla 2.4 GHz zapewnia 250 kilobitów na sekundę (kbps). Urządzenia IoT często wysyłają krótkie komunikaty, takie jak odczyt czujnika, aktualizacja stanu lub polecenie włączenia i wyłączenia. Taka szybkość obsługuje te komunikaty, a radio może zużywać mniej energii niż radio o większej szybkości, zależnie od implementacji i obciążenia. Wartość oznacza szybkość warstwy PHY, więc przepływność aplikacji jest mniejsza po uwzględnieniu nagłówków MAC, zabezpieczeń, potwierdzeń i retransmisji.
Zachowanie sieci Thread wynika z warstw zbudowanych nad radiem. Thread łączy IEEE 802.15.4 z IPv6, adaptacją 6LoWPAN, routingiem mesh i zabezpieczeniami, a standardy aplikacyjne pozostają oddzielne od warstwy sieciowej. Taki podział pozwala przenosić protokoły aplikacyjne, takie jak Matter, bez zmiany ramkowania radiowego.
IPv6 i 6LoWPAN w Thread
Thread używa IPv6 do adresowania i routingu wewnątrz swojej sieci mesh. Urządzenia mogą mieć adresy lokalne dla łącza i adresy mesh-local, a Router Graniczny może rozgłaszać dodatkowe prefiksy dla łączności zewnętrznej. Adres mesh-local identyfikuje urządzenie wewnątrz sieci Thread i nie jest automatycznie routowalny w publicznym Internecie.
Ograniczenie rozmiaru ramki IEEE 802.15.4
IPv6 na małych, energooszczędnych urządzeniach ma ograniczenie rozmiaru ramki. Nieskompresowany nagłówek IPv6 ma 40 bajtów, a fizyczna ramka IEEE 802.15.4 ma maksymalnie 127 bajtów. Pola MAC i zabezpieczeń zmniejszają dostępny ładunek. IPv6 określa także minimalne MTU o rozmiarze 1280 bajtów, lecz pakiet tej wielkości nie mieści się w jednej ramce 802.15.4, dlatego na tym łączu potrzebne są adaptacja 6LoWPAN i fragmentacja. Wartość 127 bajtów opisuje ramkę warstwy fizycznej. Dostępny ładunek aplikacyjny urządzenia Thread jest mniejszy.
Warstwa adaptacyjna 6LoWPAN
Thread rozwiązuje ten problem za pomocą warstwy adaptacyjnej zwanej . 6LoWPAN jest warstwą adaptacyjną między IPv6 a warstwą MAC 802.15.4. RFC 4944 definiuje podstawowe dopasowanie ramek i fragmentację, a RFC 6282 opisuje aktualny format kompresji nagłówków. Pełni dwie funkcje:
- Kompresja Nagłówków: 6LoWPAN wykorzystuje wspólny kontekst łącza i pola wywnioskowane z niższych warstw do zmniejszenia nagłówka IPv6. W najlepszym przypadku nagłówek o rozmiarze 40 bajtów może zostać zapisany za pomocą kilku bajtów, lecz wynik zależy od adresów, kontekstu i nagłówków rozszerzeń. RFC 6282 definiuje także skompresowane kodowanie wybranych kolejnych nagłówków, dlatego oszczędność miejsca zależy od całego datagramu.
- Fragmentacja i Reasemblacja: Datagram IPv6, który nadal jest za duży dla jednej ramki 802.15.4, zostaje podzielony na mniejsze fragmenty. Nagłówki fragmentów przenoszą informacje potrzebne urządzeniu odbiorczemu do ponownego złożenia datagramu. Odbiornik musi zebrać fragmenty jednego datagramu przed przekazaniem odtworzonego pakietu IPv6 do kolejnej warstwy.
6LoWPAN pozwala urządzeniom Thread wymieniać datagramy IPv6 w ograniczonych łączach oraz obsługiwać kompresję nagłówków i fragmentację. Uzyskane adresy wspierają komunikację końcową wewnątrz sieci Thread, a routing zewnętrzny zapewnia Router Graniczny.
Role Thread i naprawa tras
Thread rozdziela przekazywanie pakietów i zarządzanie między kilka ról urządzeń. Ogranicza to zależność od jednego węzła, a rzeczywiste działanie zależy od roli i stanu sieci. Każde urządzenie początkowo dołącza jako urządzenie końcowe i może później zostać Mesh Extenderem, jeśli pozwalają na to jego typ oraz warunki sieci.
Routery i Urządzenia Końcowe Zdolne do Routingu (REED)
Są to często węzły zasilane z sieci, takie jak inteligentne gniazdka, termostaty podłączone do zasilania HVAC czy oprawy oświetleniowe. Pozostają dostępne i przekazują pakiety dla innych urządzeń. Sieć Thread obsługuje do 32 aktywnych routerów, a 64 adresy routerów umożliwiają ponowne użycie adresów. Tabela limitów OpenThread podaje do 511 urządzeń końcowych na Mesh Extender. Urządzenie, które może zostać routerem, lecz aktualnie nie jest potrzebne w tej roli, może działać jako REED.
Uśpione Urządzenia Końcowe (SED)
Są to urządzenia zasilane bateryjnie. Aby oszczędzać energię, nie przekazują pakietów. Łączą się z wybranym routerem "Rodzicem". SED może spędzać większość czasu w głębokim uśpieniu, budząc się tylko w celu wysłania danych lub odpytania swojego Rodzica o ewentualne oczekujące wiadomości. Rodzic utrzymuje relację z dzieckiem i przekazuje ruch uśpionego urządzenia.
Lider
W przeciwieństwie do pojedynczego Koordynatora w Zigbee, partycja Thread ma jednego dynamicznie wybieranego Lidera, który zarządza przydziałami routerów i parametrami sieci. Podczas tworzenia nowej sieci urządzenie inicjujące zostaje Mesh Extenderem i wybiera siebie na Lidera. Każda partycja ma własnego Lidera i własne identyfikatory routerów. Po awarii Lidera można wybrać inny Mesh Extender, lecz takie przełączenie nie gwarantuje ciągłości każdej transmisji danych.
Routery Graniczne
przekazuje informacje między siecią mesh Thread a inną siecią IP, taką jak Wi-Fi lub Ethernet. Dom może mieć wiele Routerów Granicznych, a ich trasy i konfiguracja mogą zapewniać redundancję po awarii jednego urządzenia. Głośniki inteligentne, takie jak Apple HomePod Mini i Google Nest Hub, mogą pełnić tę funkcję.
Samonaprawiająca się Siatka
Routing w Thread jest dynamiczny. MLE konfiguruje łącza i rozprowadza informacje o jakości łączy oraz kosztach tras, a propagacja tras działa podobnie do wektorowego protokołu Routing Information Protocol (RIP). Routery okresowo wymieniają koszty łączy i ścieżek, dzięki czemu otrzymują informacje o trasach do pozostałych routerów w partycji. Po awarii routera lub zablokowaniu ścieżki sąsiednie routery mogą zaktualizować tablice routingu i wybrać inną dostępną trasę. Wynik zależy od jakości łączy, topologii i stanu sieci.
Thread i Matter: Oddzielne warstwy sieciowa i aplikacyjna
Thread i Matter działają na różnych warstwach stosu sieciowego. Thread zapewnia sieciowanie IPv6, a Matter definiuje interoperacyjne zachowanie aplikacyjne urządzeń inteligentnego domu. Matter może używać Ethernetu, Wi-Fi lub Thread jako transportu sieciowego, zależnie od produktu.
Ich role można rozdzielić według rodzaju informacji określanych przez każdą specyfikację:
- Thread zapewnia sieciowanie IPv6: Thread ustanawia łącza, wybiera ścieżki i przekazuje pakiety IPv6 między adresami w sieci Thread. Nie definiuje poleceń urządzeń przenoszonych w tych pakietach.
- Matter definiuje warstwę aplikacyjną: Matter standaryzuje modele urządzeń, polecenia i dane, aby zgodny włącznik i żarówka mogły współpracować. Matter działa powyżej transportu sieciowego, takiego jak Thread, Wi-Fi lub Ethernet.
Matter obsługuje Thread jako jeden z transportów sieciowych dla urządzeń małej mocy, a także Wi-Fi i Ethernet. Urządzenie Matter w Wi-Fi może wymieniać ruch IPv6 z urządzeniem Matter w Thread przez Router Graniczny Thread, który przekazuje pakiety między sieciami IP bez tłumaczenia modelu aplikacyjnego Matter. Matter często używa Bluetooth Low Energy do uruchamiania i konfiguracji, natomiast urządzenie Matter korzystające z Thread musi obsługiwać BLE podczas początkowego wykrywania i procesu commissioning.
Produkt obsługujący oba standardy może mieć oba certyfikaty. Certyfikat Thread obejmuje radio i stos sieciowy Thread, a certyfikat Matter dotyczy protokołu aplikacyjnego Matter. Produkt używający Wi-Fi lub Ethernetu dla Matter może mieć certyfikat Matter bez certyfikatu Thread. Certyfikacja Matter wymaga także certyfikacji używanego transportu, gdy produkt korzysta z danego transportu.