# B.A.T.M.A.N.

El Better Approach To Mobile Adhoc Networking, o BATMAN és un protocol d'encaminament que està en fase de desenvolupament per la Comunitat "Freifunk" i destinades a reemplaçar el Optimized Link State Routing (OLSR).
B.A.T.M.A.N. té el seu punt crucial en els coneixements sobre la descentralització de la millor ruta a través de la xarxa, no permetent que un sol node tingui totes les dades. Aquesta tècnica elimina la necessitat de difondre informació relativa als canvis de xarxa en tots els nodes d'aquesta. El node individual només guarda informació sobre la "direcció" si hi va haver rebut dades d'aquesta, i envia les seves dades en conseqüència. Per aquest mitjà les dades es transmeten d'un node a un altre i obté paquets de rutes individuals, creats de forma dinàmica. Així es crea una xarxa d'intel·ligència col·lectiva.
A principis de 2007, els desenvolupadors de BATMAN van començar a experimentar amb la idea d'encaminament a la capa 2 (capa Ethernet) en comptes de la capa 3. Per diferenciar-se de la capa 3 d'encaminament dimoni va ser triat el sufix "adv" (de advanced , avançat). En lloc d'enviar paquets User Datagram Protocol i la manipulació de les taules d'encaminament, que proporciona una interfície de xarxa virtual i transparent transporta paquets per si mateix. El mòdul del nucli batman-adv és part oficial del nucli Linux des de la versió 2.6.38.

## Funcionament

B.A.T.M.A.N. compta amb elements clàssics dels protocols d'encaminament: Detecta altres nodes BATMAN i troba el millor camí (ruta) a aquests. També es realitza un seguiment dels nous nodes i informa als seus veïns sobre la seva existència.
A les xarxes estàtiques, els administradors de xarxa o tècnics han de decidir amb quin equip s'arriba a través de quina manera o per mitjà d'un cable. Com les xarxes de ràdio pateixen canvis constants i baixos llindars de participació són una part vital de la fundació de xarxes "Freifunk", ja que "aquesta tasca ha de ser automatitzada en la mesura del possible".
De manera regular, cada node envia l'anomenada "emissió" (un missatge general per a tots) d'aquesta manera informa a tots els seus veïns sobre la seva existència. Els veïns llavors retransmeten aquest missatge per als seus veïns i així successivament. Això condueix la informació a cada node en la xarxa. Per tal de trobar la millor ruta per a un cert node, BATMAN compte els missatges d'origen que van ser rebuts i els registres d'on va provenir aquest missatge.
Igual que els protocols de vector distància, però a diferència dels protocols d'estat d'enllaç, BATMAN no tracta de determinar la forma general, sinó que, mitjançant l'ús dels missatges d'origen, només utilitza el primer paquet en la direcció correcta. Les dades es lliuren a la veïna en aquesta direcció, que al seu torn utilitza el mateix mecanisme. Aquest procés es repeteix fins que les dades arribin al seu destí.
A més per a xarxes de ràdio, B.A.T.M.A.N. també es pot utilitzar amb connexions de cable comuns, com ara Ethernet.

## Versió 1

La tasca consistia a crear un protocol que fos tan fàcil, tan petit i tan ràpid com sigui possible. Sembla per tant raonable dividir el desenvolupament en diverses fases i implementar funcions complexes mitjançant un procés iteratiu: En la primera fase, l'algoritme d'encaminament va ser implementat i provat pel fet de ser pràctic i idoni per a la tasca en qüestió. Per a l'enviament i recepció de missatges d'origen (informació sobre l'existència) va ser escollit el port User Datagram Protocol 1966.

## Versió 2

En aquesta versió es realitza en l'algoritme una suposició important: tan aviat com un node rep dades existència d'un altre node, se suposa que també pot enviar dades de tornada. A les xarxes de ràdio, però, pot molt bé ser factible que la comunicació es realitzi en un sol sentit. Un mecanisme va ser incorporat en el protocol per permetre això i per resoldre els problemes plantejats. El mecanisme permet que el node determini si un node veí proporciona una comunicació bidireccional, només els nodes bidireccionals es consideren part de la xarxa, els nodes d'una via no són completament inclosos.

## Versió 3

La major innovació d'aquesta versió és el suport BATMAN dels dispositius de xarxa múltiples. Ara, un ordinador o un router executant BATMAN pot implementar un punt central, així com ho seria una església o un altre edifici alt, i té diverses interfícies de xarxa per cable o sense fils que poden ser atribuïdes. Quan es troba desplegat, B.A.T.M.A.N. pot transmetre dades de xarxa en més d'una direcció sense cap retard de retransmissió.
Certs fenòmens inusuals i circumstàncies especials podria aparèixer durant la determinació de la millor ruta a través de la xarxa. Aquests han estat abordats i es contraresta evitant la circulació per aquesta via d'encaminament (que pot impedir que les dades arriben a la seva destinació).
En aquesta versió, un node pot brindar informes a la xarxa que proporciona accés a Internet. Altres nodes utilitzaran aquesta informació per avaluar si existeix una connexió a Internet propera a ells i quina és l'amplada de banda disponible. Es pot utilitzar una porta d'enllaç específica o permetre que BATMAN determini quina porta d'entrada, cal utilitzar en funció de criteris com ara la velocitat de connexió.
És en aquesta versió també que anuncia els dispositius que no executen BATMAN per si mateixos. En general, aquest mètode es fa servir per connectar xarxes de casolanes a xarxes encadenades. Per exemple, una instal·lació al sostre mitjançant una antena es connectarà a la xarxa sense fils a través de BATMAN i la resta de la casa simplement es donarà a conèixer, per tant també estarà accessible a la connexió.
Aquesta versió de B.A.T.M.A.N. ha demostrat que presenten alts nivells d'estabilitat però amb els temps de convergència lleugerament lents en condicions del món real, això és confirmat per les anàlisis teòriques.

## Referències

* ↑ Linux 6 feb 38 Linux Kernel Newbies ' 'Linux Kernel newbies' '.
* ↑ M. Abolhasan, B. Hagelstein, J. C.-P. Wang (2009). Real-world performance of current Proactive multi-hop mesh protocols
* ↑ J. Chroboczek. "A few comments on the BATMAN routing protocol"

## Enllaços externs

* Sitio web oficial
* Interfaz de usuario con B.A.T.M.A.N. Freifunk