---
format: markdown
title: B.A.T.M.A.N.
...

„B.A.T.M.A.N.“ ist die Abkürzung für „Better Approach to Mobile Ad-hoc Networking“.

„B.A.T.M.A.N. Advanced“ (batman-adv) meint die im Folgenden betrachtete layer 2 Implementierung des ursprünglichen layer 3 Protokolls (batman).

# Links

* Homepage: <http://www.open-mesh.org/projects/batman-adv/>
* Kurzdoku des Linux kernel Moduls: <https://www.kernel.org/doc/Documentation/networking/batman-adv.txt>
* Folien zum Einstieg in B.A.T.M.A.N.: [PDF](https://www.tu-chemnitz.de/urz/stammtisch/rsrc/Freifunk%20in%20Chemnitz.pdf) vom Freifunk Chemnitz (2014).

## Konzepte

### batman-adv arbeitet auf layer 2

<http://www.open-mesh.org/projects/batman-adv/wiki/Wiki>:

> "Most other wireless routing protocol implementations (e.g. the batman daemon) operate on layer 3 which means they exchange routing information by sending UDP packets and bring their routing decision into effect by manipulating the kernel routing table. Batman-adv operates entirely on ISO/OSI Layer 2 - not only the routing information is transported using raw ethernet frames but also the data traffic is handled by batman-adv. It encapsulates and forwards all traffic until it reaches the destination, hence emulating a virtual network switch of all nodes participating. Therefore all nodes appear to be link local and are unaware of the network's topology as well as unaffected by any network changes."

### DV als Routingverfahren

Grundlage von batman(-adv) ist das distance vector Routingverfahren. Es empfiehlt sich, dieses mindestens von der Idee her verstanden zu haben, ehe man zB in der [Linkliste]()) weiterliest.

* Überblick über den [Distanzvektoralgorithmus](http://de.wikipedia.org/wiki/Distanzvektoralgorithmus)

* Grobe™ Idee des Routingkonzepts von B.A.T.M.A.N.: <http://www.open-mesh.org/projects/open-mesh/wiki/BATMANConcept>

### Metrikberechnung

Die Metrik von B.A.T.M.A.N. nennt sich TQ (für transmit quality) und hat eine (bescheidene) Genauigkeit von 8 bit (0..255).

* Die Datenbasis für den Routingalgorithmus liefern die Metrikwerte der links zwischen benachbarten Routern (= direkte Entfernung). Der TQ Wert für die direkte Verbindung ein Routers zu einem seiner Nachbarn wird in folgenden Schritten berechnet:

    - RQ (receive quality)
    - EQ (echo quality)
    - TQ (transmit quality)

* Aus diesem link-local TQ berechnet ein Router nach dem DV Verfahren für jedes bekannte Ziel den Nachbarn, über den er das betreffende Ziel mit der besten (höchsten) Path TQ erreichen kann.  
Die Metrikberechnung wird anschaulich im Abschitt 1.2.2 des folgenden (akademischen) Papiers erklärt: abstract (<http://eprints.biblio.unitn.it/2269/>), oder gleich zum [PDF](http://eprints.biblio.unitn.it/2269/1/report.pdf) (898 KiB).