W Meshtastic ROUTER to rola urządzenia przeznaczona dla węzłów infrastrukturalnych (np. stacjonarnych przekaźników na dachu). Główną cechą ROUTERa jest zawsze retransmitowanie wszystkich pakietów mesh (typ broadcast) dokładnie jeden raz – niezależnie od tego, czy słyszał już retransmisję z innego węzła . Oznacza to, że w przeciwieństwie do zwykłego klienta, router nie „oszczędza” transmisji w ramach algorytmu flood. Normalny węzeł-klient stosuje Managed Flooding: po odebraniu nowego pakietu losowo czeka i jeśli w tym czasie wykryje retransmisję innego węzła, anuluje własną . Router natomiast ignoruje wykryte duplikaty na etapie decyzji o retransmisji – zawsze przekaże pakiet dalej (dokładnie raz), nawet jeśli już ktoś w okolicy to zrobił. Dzięki temu router zapewnia, że każda wiadomość dotrze dalej w sieci choćby przez jeden węzeł, co wzmacnia pokrycie sieci (kosztem dodatkowych transmisji).
Rola ROUTER vs inne role: Węzeł w roli klienta (CLIENT) przekazuje pakiety tylko jeśli żaden inny węzeł tego nie zrobi – działa więc opportunistycznie . W roli CLIENT_MUTE w ogóle nie retransmituje cudzych pakietów (uczestniczy pasywnie w sieci) . Z kolei CLIENT_BASE zawsze retransmituje pakiety od lub do swoich ulubionych (favorited) węzłów, a inne traktuje jak zwykły klient . REPEATER i ROUTER oba przekazują każdy pakiet raz, lecz repeater jest niewidoczny na liście węzłów (ukrywa się), a router jest normalnie widoczny w topologii . Poza tym router domyślnie wyłącza interfejsy użytkownika (brak Bluetooth/WiFi dla aplikacji, brak ekranu – oszczędność energii) i wymusza tryb oszczędzania energii (ESP32 w roli router może spać w lekkim uśpieniu między transmisjami) . Mimo okresowego usypiania, router zachowuje zdolność natychmiastowego retransmitu – odbiornik LoRa czuwa cały czas (budzi MCU przerwaniem). To sprawia, że router może działać na stałe z zasilaniem bateryjnym, choć zużycie energii jest określone jako High (wysokie) względem klienta .
Decyzje routingowe i zadania: Węzeł-router w warstwie 3 mesh pełni rolę niezawodnego przekaźnika. Każdy odebrany pakiet broadcast (hop_limit > 0) spowoduje natychmiastowe (po krótkim CSMA opóźnieniu losowym) przygotowanie własnej retransmisji . Router nie decrementuje hop_limit w pierwszym przeskoku (bo jest nadawcą), a w kolejnych zwykle zmniejsza limit o 1. Jednak Meshtastic 2.6 wprowadził optymalizację: jeśli poprzedni przekaźnik też był solidnym węzłem (ROUTER, ROUTER_LATE lub CLIENT_BASE ulubiony) i nasz węzeł również jest routerem, to może zachować hop_limit (nie zmniejszać). Dzięki temu pakiet nie „traci” TTL na zaufanych węzłach, pozwalając osiągnąć dalszy zasięg sieci. Routery podejmują też decyzje o wyznaczaniu następnego skoku dla wiadomości skierowanych (unicast) – w protokole 2.6 działa Next-Hop Routing: źródłowy węzeł wyznacza docelowy następny przekaźnik w nagłówku . Router może na podstawie obserwacji sieci (pakiety Routing, TraceRoute itp.) utrzymywać informacje o sąsiadach i optymalizować wybór tras (choć większość zadań routingu jest automatyczna). Warto dodać, że istnieje wariant ROUTER_LATE – taki węzeł również zawsze retransmituje, ale czeka najdłużej ze wszystkich ról . Dzięki temu router late zapewnia „ostatnią linię” pokrycia: daje szansę innym (np. zwykłym routerom i klientom) najpierw pokryć teren, a jeśli jednak nikt nie przekaże pakietu, to po upływie okna czasu router_late zrobi to jako zabezpieczenie. Jeśli w sieci jest kilka ROUTER_LATE, każdy z nich i tak nada (nie anulują transmisji), ale mechanizm clampToLateRebroadcastWindow synchronizuje ich opóźnienia, by unikać kolizji.
Podsumowując, ROUTER różni się od zwykłego węzła tym, że pełni rolę zawsze aktywnego przekaźnika. Jego zadaniem jest zwiększenie zasięgu i niezawodności mesh – idealnie sprawdza się w punktach centralnych (wysoko położony dach, góra etc.). Dzięki temu nawet przy braku innych urządzeń w pobliżu wiadomości nie zginą (router zawsze je powtórzy dalej). W sieci z wieloma węzłami routery tworzą kręgosłup, który minimalizuje zależność od mniej pewnych klientów. Trzeba jednak rozważnie konfigurować liczbę routerów – zbyt wiele w jednej okolicy to duplikacja ruchu i potencjalne interferencje.
