B.A.T.M.A.N.
B.A.T.M.A.N. (Better Approach To Mobile Ad-hoc Networking) je smerovací protokol určite určený pre ad-hoc a mesh bezdrôtové siete.
Na rozdiel od tradičných smerovacích protokolov necieli na výpočet úplnej mapy celej siete na každom uzle. Namiesto toho sa sústredí na to, aby každý uzol v sieti vedel určiť iba nasledujúci krok (next-hop) – teda ktorým susedným uzlom má dáta poslať, aby sa najlepšie dostali k cieľu.
Ako B.A.T.M.A.N. funguje
-
Vysielanie OGM (Originator Messages): Každý uzol v sieti v pravidelných intervaloch vysiela malé správy o svojej existencii (OGM pakety) svojim priamym susedom.
-
Preposielanie správ: Susedia tieto správy prepošlú ďalej do siete.
-
Počítanie správ: Uzly si evidujú, koľko OGM správ od konkrétneho cieľového uzla k nim dorazilo cez ktorého suseda.
-
Výber najlepšej cesty: Sused, cez ktorého dorazilo najviac správ v danom časovom okne, je vyhodnotený ako najlepšia trasa (najstabilnejšie a najrýchlejšie spojenie).
Hlavné výhody
-
Decentralizácia a nízka náročnosť: Žiadny uzol nemusí udržiavať celú topológiu siete ani vykonávať zložité grafové výpočty.
-
Rýchla adaptácia na zmeny: Ak sa nejaký uzol vypne alebo presunie, sieť sa veľmi bezproblémovo prekonfiguruje, keďže sa hodnotí aktuálna úspešnosť doručovania správ.
-
Zamedzenie kruhovým slučkám: Vďaka jednoduchému princípu počítania správ prirodzene predchádza vzniku smerovacích slučiek.
Použitie v praxi (batman-adv)
Najznámejšou implementáciou je batman-adv (B.A.T.M.A.N. advanced). Ide o modul linuxového jadra, ktorý funguje na 2. sieťovej vrstve (OSI Layer 2 – Data Link Layer).
Pre vyššie vrstvy (napr. IP protokoly) vystupuje celá mesh sieť ako jeden virtuálny sieťový switch. Vďaka tomu zariadenia v sieti vôbec nemusia vedieť, že fungujú v bezdrôtovej mesh sieti – prenos IP adries, DHCP aj prechádzanie (roaming) medzi uzlami funguje transparentne.
Často sa využíva v komunitných sieťach (napr. Freifunk v Nemecku), pri záchranárskych a vojenských ad-hoc sieťach alebo na prepojenie IoT zariadení bez centrálnej infraštruktúry.
