The Better Approach to Mobile Ad-hoc Networking ( BATMAN ) es un protocolo de enrutamiento para redes móviles ad hoc de múltiples saltos que está siendo desarrollado por la comunidad alemana " Frefunk " y pretende reemplazar el Protocolo de enrutamiento de estado de enlace optimizado (OLSR).
El punto crucial de BATMAN es la descentralización del conocimiento sobre la mejor ruta a través de la red: ningún nodo tiene todos los datos. Esta técnica elimina la necesidad de difundir información sobre los cambios de la red a cada nodo de la red. El nodo individual solo guarda información sobre la "dirección" desde la que recibió datos y envía sus datos en consecuencia. Los datos pasan de un nodo a otro y los paquetes obtienen rutas individuales creadas dinámicamente. Se crea una red de inteligencia colectiva .
A principios de 2007, los desarrolladores de BATMAN comenzaron a experimentar con la idea de enrutar en la capa 2 (capa Ethernet) en lugar de la capa 3 . Para diferenciarse del demonio de enrutamiento de capa 3, se eligió el sufijo "adv" (para: avanzado). En lugar de manipular tablas de enrutamiento basadas en información intercambiada a través de UDP / IP , proporciona una interfaz de red virtual y transporta de forma transparente paquetes Ethernet por sí solo. [2] El módulo del kernel batman-adv ha sido parte del kernel oficial de Linux desde 2.6.38. [3]
BATMAN tiene elementos de protocolos de enrutamiento clásicos: detecta otros nodos de BATMAN y encuentra la mejor ruta (ruta) hacia ellos. También realiza un seguimiento de nuevos nodos e informa a sus vecinos sobre su existencia.
En las redes estáticas, los administradores o técnicos de la red deciden a qué computadora se accede a través de qué manera o cable. Dado que las redes de radio cambian constantemente y los bajos umbrales de participación son una parte vital de la base de las redes "Freifunk", esta tarea debe automatizarse lo más posible.
Regularmente, cada nodo envía una transmisión , informando así a todos sus vecinos sobre su existencia. Luego, los vecinos transmiten este mensaje a sus vecinos, y así sucesivamente. Esto lleva la información a cada nodo de la red. Para encontrar la mejor ruta a un determinado nodo, BATMAN cuenta los mensajes de origen recibidos y registra por qué vecino llegó el mensaje.
Al igual que los protocolos de vector de distancia, BATMAN no intenta determinar la ruta completa, sino que, utilizando los mensajes del emisor, sólo intenta determinar el primer paso del paquete en la dirección correcta. Los datos se entregan al siguiente vecino en esa dirección, que a su vez utiliza el mismo mecanismo. Este proceso se repite hasta que los datos llegan a su destino.
Además de las redes de radio, BATMAN también se puede utilizar con conexiones de cables comunes, como Ethernet .
La tarea consistía en crear un protocolo que fuera lo más sencillo, pequeño y rápido posible. Parecía sensato dividir el desarrollo en varias fases e implementar funciones complejas mediante un proceso iterativo:
En la primera fase, se implementó el algoritmo de enrutamiento y se probó su practicidad e idoneidad para la tarea en cuestión. Para enviar y recibir mensajes de origen (información sobre la existencia), se eligió el puerto UDP 1966.
El algoritmo de la versión uno hizo una suposición importante: tan pronto como un nodo recibe datos de existencia de otro nodo, asume que también puede enviar datos de vuelta. Sin embargo, en las redes de radio puede ocurrir que sólo sea posible una comunicación unidireccional, es decir, enlaces asimétricos. [4] Se incorporó al protocolo un mecanismo para permitir esto y resolver los problemas que surgieran. El mecanismo permite al nodo determinar si un nodo vecino proporciona comunicación bidireccional. Sólo los nodos bidireccionales se consideran parte de la red y los nodos unidireccionales ya no están incluidos en su totalidad.
La mayor innovación en esta versión es la compatibilidad de BATMAN con múltiples dispositivos de red . Se puede implementar una computadora o enrutador que ejecute BATMAN en una ubicación central, como un edificio alto, y tener varias interfaces de red cableadas o inalámbricas conectadas. Cuando se implementa así, BATMAN puede transmitir datos de la red en más de una dirección sin ningún retraso en la retransmisión.
Ciertos fenómenos inusuales y circunstancias especiales podrían aparecer durante la determinación de la mejor ruta a través de la red. Estos se han abordado y contrarrestado para evitar el enrutamiento circular (que puede impedir que los datos lleguen a su destino).
Un nodo puede informar a la red que proporciona acceso a Internet. Otros nodos utilizan esta información para evaluar si hay una conexión a Internet cerca de ellos y cuánto ancho de banda hay disponible. Pueden usar una puerta de enlace específica o permitir que BATMAN determine qué puerta de enlace usar, según criterios como la velocidad de conexión.
En esta versión también se incluyó el anuncio de dispositivos que no ejecutan BATMAN. Por lo general, este método se utiliza para conectar redes domésticas a redes en malla. Una instalación de antena en el tejado se conectará a la red inalámbrica a través de BATMAN y el resto del edificio simplemente se anunciará, por lo que también será accesible.
Se ha demostrado que esta versión de BATMAN exhibe altos niveles de estabilidad pero tiempos de convergencia ligeramente lentos en condiciones del mundo real; [5] esto se confirma mediante análisis teóricos. [6]
BatMan-eXperimental (BMX) tiene como objetivo aproximarse al exponente real enviando también OGM (mensajes de origen) varias veces en datagramas de transmisión independientes. [7] Se originó como una rama independiente de BATMAN desarrollada por Axel Neumann. [8] Una versión extendida que incorpora enrutamiento multitopología confiado de forma segura (SEMTOR) se llama BMX7. [9]
[10]
La versión cuatro implementa un algoritmo para detectar mejor la calidad de las transmisiones en situaciones de enlace anormales. Los mensajes del originador se actualizan para incorporar estos datos, lo que permite a otros nodos detectar mejor la calidad de las conexiones asimétricas.
[11]
En 2017, BATMAN fue escrito en una pizarra en la serie de HBO Silicon Valley (Temporada 4, Episodio 2), donde el personaje principal del programa, Richard Hendricks, parece incluir a BATMAN como un componente de su concepto de "nueva Internet" (el texto es visible en la parte superior). derecha de la pizarra). [12]