Benutzer:SilkeM/BATMAN

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
B.A.T.M.A.N. advanced

Das offizielle B.A.T.M.A.N.-Logo
Basisdaten

Hauptentwickler B.A.T.M.A.N.-Team
Aktuelle Version 2015.0
(28. April 2015)
Betriebssystem Linux
Programmier­sprache C
Kategorie Routing-Protokoll, Kernel-Modul
Lizenz GNU General Public License
http://www.open-mesh.org/

B.A.T.M.A.N. (Abkürzung für Better Approach To Mobile Adhoc Networking) ist ein Routingprotokoll für mobile Ad-hoc-Netze. Mobile Ad-hoc-Netze bringen die besondere Herausforderung mit sich, dass sich die Verbindungsqualität der Funkstrecken ständig verändert. Die Aufgabe des Routingprotokolls ist es, laufend zu ermitteln, welche Knoten in dem Netz aktuell über welchen Weg erreichbar sind, und dies in die Routingtabellen der beteiligten Geräte einzutragen.[1] Das Protokoll B.A.T.M.A.N. wird seit 2006 hauptsächlich von der Freifunk-Community entwickelt, sein Einsatz beschränkt sich jedoch nicht auf dieses Projekt.

Bevor es B.A.T.M.A.N. gab, verwendeten Freifunk-Communitys nur das Routing-Protokoll OLSR. Dieses Protokoll ermittelt über den Dijkstra-Algorithmus permanent alle Routen zwischen allen Routern im mobilen Ad-hoc-Netz. Jeder Knoten kennt in einem OLSR-Netz das komplette Netz. Dadurch entstehen jedoch unnötiger Rechenaufwand und Datenverkehr. Diverse Versuche, die Software OLSR anzupassen, führten nicht zum erhofften Performance-Zugewinn.[2] Basierend auf dieser Erfahrung begannen 2006 einige Mitglieder der Freifunk-Community, einen neuen Ansatz zu entwickeln.[3] Die Routingtabellen der einzelnen Knoten eines mobilen Ad-hoc-Netzes sollten auf effizientere Weise ermittelt und aktualisiert werden.[4][5]

B.A.T.M.A.N. berechnet nicht auf jedem Gerät die Routingtabellen für das komplette Netzwerk. Jeder Router mit B.A.T.M.A.N. informiert regelmäßig seine Nachbarrouter durch Broadcast-Nachrichten (so genannte Originatornachrichten) über seine Existenz. Die Router wiederholen diese Nachrichten wiederum für ihre benachbarten Router. So wird im gesamten Netzwerk mitgeteilt, welche B.A.T.M.A.N.-Router existieren. Ein Router schreibt lediglich in die Routingtabelle, über welchen Nachbarn er wen erreicht, ohne dabei die komplette Route bis zum Ziel zu prüfen. In den Broadcast-Nachrichten ist eine Metrik enthalten, die etwas über die Qualität der Verbindung aussagt, so dass jeder Router auch Informationen darüber hat, wie gut die jeweilige Verbindung aktuell ist.[6]

Es gibt verschiedene Implementierungen des Routingprotokolls B.A.T.M.A.N.[7] Das ursprüngliche B.A.T.M.A.N. arbeitet wie die meisten Routingprotokolle auf Schicht 3 des OSI-Modells, versendet also IP-Pakete. Es ermittelt Informationen über die optimalen Routen im Computernetzwerk durch den Austausch von UDP-Paketen mit anderen Routern. Anhand dieser Informationen befüllt es die Routingtabelle des Kernels.[8]

Im Unterschied zu diesem klassischen B.A.T.M.A.N. arbeitet das neuere "B.A.T.M.A.N. advanced" (auch "Batman-adv") auf Schicht 2 des OSI-Modells.[9] Das komplette vermaschte Netz erscheint damit für die darüberliegenden Schichten als verteilter Switch: Der Netzwerkverkehr wird gekapselt an sein Ziel geschickt, als ob es gleich der nächste Nachbar wäre. Software, die darüber, auf Schicht 3 mittels IP arbeitet, muss von dem Meshnetzwerk nichts wissen.[10][11]

B.A.T.M.A.N. advanced bringt deshalb folgende Eigenschaften mit sich[12]:

  • Ein Knoten kann schon am vermaschten Netz teilnehmen, bevor er eine IP-Adresse hat.
  • Es können beliebige OSI-Layer-3-Protokolle verwendet werden, z.B. IPv4, IPv6, DHCP.
  • (Mobile) Endgeräte können dann mittels IP-Adressvergabe über DHCP in das Gesamtnetz integriert werden, auch wenn sie selbst nicht meshen können.
  • (Mobile) Endgeräte können zwischen B.A.T.M.A.N. advanced-vermaschten Access Points roamen.

Um den Datendurchsatz zu verbessern, wurde B.A.T.M.A.N. advanced als Linux-Kernel-Modul integriert und ist seit 2011 Teil des Linux-Mainline-Kernels.[13][14][15]

Innerhalb des Freifunk-Projektes hat vor allem B.A.T.M.A.N. advanced eine sehr große Verbreitung gefunden. Es gibt nur noch wenige lokale Communitys, die ausschließlich auf OLSR setzen. Die meisten verwenden beide Protokolle oder nur B.A.T.M.A.N. advanced.[16]

B.A.T.M.A.N. wird auch über Freifunk hinaus verwendet: Die Initiative Village Telco baut kostengünstige lokale Telefonie-Netzwerke mit vermaschten Netzen, die die Implementierung "B.A.T.M.A.N. Daemon" verwenden. Der entsprechende Router dafür trägt den Namen "Mesh Potato".[17][18] Einige kommerzielle Anbieter von WLAN-Routern bieten ebenfalls vorkonfigurierte Access Points an, die Mesh-Netze mittels B.A.T.M.A.N. aufbauen.

Wie schon OLSR hat auch B.A.T.M.A.N. ein wissenschaftliches Interesse geweckt. Vorträge und Studien haben sich z.B. mit Performance-Vergleichen zwischen den beiden Protokollen beschäftigt[19][20], aber auch direkt mit den Eigenschaften von B.A.T.M.A.N.[21]. Auch die Communitys, die selbst drahtlose Mesh-Netze bauen, führen einmal im Jahr die "Wireless Battle of the Mesh" durch, in der die Performance verschiedenster Routingprotokolle Praxistests unterzogen wird.[22]

  1. Corinna "Elektra" Aichele: Mesh. Drahtlose Ad-hoc-Netze, Open Source Press, München 2007, S. 27 f.
  2. The OLSR.ORG story
  3. Corinna "Elektra" Aichele: Mesh. Drahtlose Ad-hoc-Netze, Open Source Press, München 2007, 29, 71 f.
  4. Erster auffindbarer Beitrag zum Entwicklungsstand von B.A.T.M.A.N. auf öffentlichen Mailingliste von März 2006
  5. Release-Nachricht der Version B.A.T.M.A.N-III 0.1-rc1 von Oktober 2006
  6. Corinna "Elektra" Aichele: Mesh. Drahtlose Ad-hoc-Netze, Open Source Press, München 2007, S. 71 f.
  7. Überblick über die verschiedenen B.A.T.M.A.N.-Implementierungen
  8. Kurze Erläuterung zum Routing auf Layer 3 im B.A.T.M.A.N.-Wiki
  9. B.A.T.M.A.N. advanced im open-mesh.org-Wiki
  10. Wireless Networking in the Developing World. A practical guide to planning and building low-cost telecommunications infrastructure, S. 138 f.
  11. Interview mit Elektra Wagenrad im Linux-Magazin 07/2014
  12. http://www.open-mesh.org/projects/batman-adv/wiki/Wiki
  13. Commit in der Versionskontrolle des Linux-Kernel-Projektes (2010)
  14. Release Notes Kernel 2.6.38 (2011)
  15. B.A.T.M.A.N. advanced in der Kernel-Dokumentation
  16. Liste der Freifunk-Communitys unter Angabe der Firmware und der verwendeten Routingprotokolle
  17. Website der Initiative Village Telco
  18. David Rowe: The Mesh Potato, in Linux Journal Nr. 188, Dez. 2009
  19. Elis Kulla / Masahiro Hiyama / Makoto Ikeda / Leonard Barolli: Performance comparison of OLSR and BATMAN routing protocols by a MANET testbed in stairs environment, in: Computers and Mathematics with Applications, Januar 2012, Band 63(2), S. 339 ff.
  20. Davinder Singh Sandhu / Sukesha Sharma: Performance Evaluation of BATMAN, DSR, OLSR Routing Protocols - A Review, in: International Journal of Emerging Technology and Advanced Engineering, Januar 2012, Band 2(1), S. 184-188
  21. Ramon Sanchez Iborra: Performance evaluation of BATMAN routing protocol for VoIP services: a QoE perspective, in: IEEE Transactions on Wireless Communications (Impact Factor: 2.76). 09/2014; 13(9):4947 - 4958. DOI: 10.1109/TWC.2014.2321576
  22. [http://battlemesh.org/ Website der "Wireless Battle of the Mesh"


Kategorie:Routingprotokoll Kategorie:Freifunk Kategorie:Freie Software