B.A.T.M.A.N.
| B.A.T.M.A.N. | |
|---|---|
| Developer(s) | Freifunk |
| Initial release | batmand 0.1 (6 December 2006) |
| Stable release | Batman-adv 2025.0
/ 7 February 2025 |
| Written in | C |
| Operating system | Unix-like |
| Type | routing protocol |
| License | GPL |
| Website | www |
The Better Approach to Mobile Ad-hoc Networking (B.A.T.M.A.N.) is a routing protocol for multi-hop mobile ad hoc networks which is under development by the German "Freifunk" community and intended to replace the Optimized Link State Routing Protocol (OLSR) as OLSR did not meet the performance requirements of large-scale mesh deployments.
B.A.T.M.A.N.'s crucial point is the decentralization of knowledge about the best route through the network — no single node has all the data. This technique eliminates the need to spread information about network changes to every node in the network. The individual node only saves information about the "direction" it received data from and sends its data accordingly. The data gets passed from node to node, and packets get individual, dynamically created routes. A network of collective intelligence is created.
In early 2007, the B.A.T.M.A.N. developers started experimenting with the idea of routing on Data Link layer (layer 2 in the OSI model) rather than the Network layer. To differentiate from the layer 3 routing daemon, the suffix "adv" (for: advanced) was chosen. Instead of manipulating routing tables based on information exchanged via UDP/IP, it provides a virtual network interface and transparently transports Ethernet packets on its own. The batman-adv kernel module has been part of the official Linux kernel since 2.6.38.