W systemie Meshtastic pojawiła się rola, która wzbudza sporo nieporozumień: ROUTER_LATE.
Wielu użytkowników traktuje ją jak „lepszego routera”, inni instalują ją na dachach, a jeszcze inni używają mobilnie w samochodzie. W efekcie w niektórych regionach dochodzi do przeciążenia sieci i spadku wydajności.
Ten artykuł wyjaśnia:
- czym dokładnie jest ROUTER_LATE,
- jak działa mechanizm retransmisji,
- czym różni się od ROUTER i REPEATER,
- kiedy jest właściwym wyborem,
- kiedy absolutnie nie należy go używać,
- jak wpływa na airtime i stabilność całej siatki.
1. Dlaczego w ogóle powstał ROUTER_LATE?
Meshtastic działa na jednej wspólnej częstotliwości 868 MHz (EU).
To oznacza:
- bardzo ograniczoną przepustowość,
- brak klasycznych protokołów routingu (OSPF, BGP itd.),
- konieczność minimalizacji retransmisji.
Sieć nie wymienia między węzłami informacji routingowych w sposób znany z IP.
Zamiast tego wykorzystuje:
- role urządzeń,
- losowe opóźnienia,
- analizę SNR,
- mechanizm okien kontencji (contention windows).
ROUTER_LATE powstał po to, aby:
Obsłużyć lokalne klastry w miejscach, które nie mają widoczności do głównej infrastruktury ROUTER, bez zakłócania naturalnego przepływu ruchu w sieci.
2. Jaki jest cel ROUTER_LATE?
ROUTER_LATE to rola infrastrukturalna dla:
- dolin,
- obszarów za wzgórzem,
- osiedli schowanych za przeszkodą,
- „dziur” w pokryciu.
To węzeł, który:
- zawsze retransmituje pakiety (jeśli hop limit > 0),
- ale robi to uprzejmie — dopiero po innych rolach.
Nie jest przeznaczony do:
❌ zwiększania zasięgu własnego domu
❌ bycia „mocniejszym routerem”
❌ instalacji dachowej w mieście
❌ mobilnej pracy w aucie
3. Jak działa retransmisja w Meshtastic?
Każdy pakiet ma:
- hop limit
- priorytet
- SNR
Jeśli hop limit > 0 → może być retransmitowany.
Jeśli hop limit = 0 → jest odrzucany.
Ale kluczowy mechanizm to okna kontencji (contention windows).
4. Okna kontencji – fundament działania
Pakiety mogą zostać retransmitowane w jednym z trzech przedziałów czasowych:
| Okno | Kto nadaje | Charakter |
|---|---|---|
| Early | ROUTER, REPEATER, CLIENT_BASE (ulubione) | Priorytetowe |
| Default | CLIENT, większość ról | Standardowe |
| Late | ROUTER_LATE | Ostatnia szansa |
Te okna nie nachodzą na siebie.
4.1 Early Window
Nadają:
- ROUTER
- REPEATER
- CLIENT_BASE (dla ulubionych węzłów)
Te role wyprzedzają inne i mogą anulować retransmisję pozostałych.
To dlatego ROUTER jest „dominujący”.
4.2 Default Window
Tu działają:
- CLIENT
- większość ról standardowych
Jeśli w tym oknie ktoś retransmituje, inne role (z wyjątkiem ROUTER_LATE) anulują swoje nadawanie.
4.3 Late Window – domena ROUTER_LATE
ROUTER_LATE zachowuje się tak:
- Najpierw próbuje retransmitować jak CLIENT (default window).
- Jeśli usłyszy, że ktoś już retransmitował:
- nie anuluje pakietu,
- przenosi go do late window.
- W oknie late retransmituje mimo wszystko.
To sprawia, że jest:
✔ uprzejmy
✔ nie preemtuje ruchu
✔ zachowuje naturalne ścieżki
Ale też:
⚠ zwiększa airtime
⚠ przechowuje pakiety w kolejce TX
⚠ może generować opóźnienia
5. Random delay i SNR bias
W każdym oknie dodawane jest losowe opóźnienie.
Dodatkowo:
- gorszy SNR → krótsze opóźnienie
- lepszy SNR → dłuższe opóźnienie
Dlaczego?
Bo węzeł dalej położony powinien mieć pierwszeństwo, aby pakiet przeskoczył dalej w jednym hopie.
To sprytna heurystyka zastępująca pełny routing.
6. Dlaczego ROUTER_LATE nie nadaje się na dach?
Ponieważ retransmituje praktycznie wszystko, co słyszy.
W mieście może to oznaczać:
- ogromny wzrost airtime,
- kolizje,
- utratę pakietów,
- degradację sieci.
W szczególności przy modulacji LONG_FAST.
Jeśli:
- ChUtil > 25%
- AirUtilTX > 7–8%
to już sygnał ostrzegawczy.
7. Kiedy używać ROUTER_LATE?
✔ Prawidłowe zastosowania
- Dolina bez widoczności do routera
- Osiedle za wzgórzem
- Klaster node’ów odcięty budynkiem
- Tymczasowa infrastruktura w terenie (np. grupa trekkingowa)
8. Kiedy NIE używać?
❌ Dach domu w mieście
❌ Balkon w bloku
❌ Stały węzeł w aucie
❌ „Bo chcę mieć lepszy zasięg”
❌ Jedyny router w okolicy o dobrym pokryciu
9. Często zadawane pytania
Dlaczego pakiet poszedł przez CLIENT zamiast ROUTER_LATE?
Bo ROUTER_LATE jest uprzejmy.
Jeśli CLIENT wygra wyścig czasowy — pakiet idzie przez niego.
Dlaczego pakiet poszedł przez ROUTER zamiast ROUTER_LATE?
Bo ROUTER preemtuje wszystkie inne role.
Dlaczego ruch przez ROUTER_LATE jest wolny?
Bo często trafia do late window, co dodaje opóźnienie.
Przy LONG_FAST może być to bardzo zauważalne.
Dlaczego pakiety giną?
Najczęstsza przyczyna:
- pełna kolejka TX,
- odrzucanie pakietów niskiego priorytetu.
ROUTER_LATE jest na to szczególnie podatny, bo przechowuje pakiety oczekujące na late window.
Mam słabą antenę i nikt mnie nie słyszy. Czy ROUTER_LATE pomoże?
Nie.
W takim przypadku należy:
✔ postawić CLIENT w pobliżu
✔ poprawić antenę
✔ zwiększyć wysokość
ROUTER_LATE tylko zwiększy ruch.
Czy ROUTER_LATE w samochodzie pomaga mesh?
Nie.
To nie jest rola mobilna.
Może generować więcej problemów niż korzyści.
10. ROUTER vs ROUTER_LATE – kluczowa różnica
| Cecha | ROUTER | ROUTER_LATE |
|---|---|---|
| Okno | Early | Default + Late |
| Preempcja | Tak | Nie |
| Airtime | Wysoki | Wysoki |
| Zastosowanie | Główna infrastruktura | Lokalna dziura |
ROUTER mówi:
„Jestem najlepszą ścieżką.”
ROUTER_LATE mówi:
„Pomogę tylko jeśli trzeba.”
11. Najważniejsza zasada
ROUTER_LATE nie jest:
- mocniejszym routerem,
- zamiennikiem CLIENT_BASE,
- rozwiązaniem problemów z anteną,
- trybem „turbo”.
To narzędzie chirurgiczne do bardzo konkretnych sytuacji.
12. Podsumowanie
ROUTER_LATE:
✔ retransmituje wszystko
✔ ale uprzejmie ustępuje pierwszeństwa
✔ służy do obsługi lokalnych klastrów
✔ zwiększa airtime
Nieumiejętne użycie może:
❌ przeciążyć sieć
❌ zwiększyć kolizje
❌ spowodować utratę pakietów

