B.A.T.M.A.N.
Better Approach To Mobile Adhoc Networking (B.A.T.M.A.N.) とは、ドイツの "Freifunk" コミュニティが開発するマルチホップ(英語版)・モバイルアドホックネットワーク用ルーティングプロトコルである。リンクステートルーティングプロトコル、OSLR(英語版) を置き換えることを意図している。
B.A.T.M.A.N. の重要な特徴として、ネットワーク内の最良ルートに関する知識が非集中管理されることである。すなわち、全てのデータを持つノードは一つも存在し ない。この技術によりネットワークに関する情報をネットワーク内の全ノードに拡散する必要がなくなる。個々のノードはデータを受取先と送り先の「方向」を適宜保存する。データはノートからノードへと受け渡され、パケットは個々に、動的にルーティングされる。 集合知ネットワークが構築される。
2007年初頭、B.A.T.M.A.N. 開発者らはレイヤー3ではなくレイヤー2(イーサネット層)におけるルーティングというアイデアの試験を始めた。レイヤー3ルーティングデーモンとの区別のため、 "adv" (advanced) というサフィックスが採用された。ルーティングテーブルの操作のためには UDP パケットを送信するのではなく、仮想ネットワークインターフェイスを作成して透過的に独自のパケットをやりとりする。 batman-adv カーネルモジュールはバージョン 2.6.38 から公式な Linux カーネルの一部となっている。