Better Approach to Mobile Ad-hoc Networking ( BATMAN ) es un protocolo de enrutamiento para redes ad hoc móviles de múltiples saltos que está siendo desarrollado por la comunidad alemana " Freifunk " y que pretende reemplazar al Protocolo de enrutamiento de estado de enlace optimizado (OLSR), ya que OLSR no cumplía con los requisitos de rendimiento de las implementaciones de malla a gran escala. [2]
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 en la red a cada nodo de la misma. El nodo individual solo guarda información sobre la "dirección" de la que recibió los 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 de enlace de datos (capa 2 en el modelo OSI) en lugar de en la capa de red . [3] Para diferenciarse del demonio de enrutamiento de capa 3, se eligió el sufijo "adv" (por: 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 paquetes Ethernet de forma transparente por sí mismo. [4] El módulo de kernel batman-adv ha sido parte del kernel oficial de Linux desde 2.6.38. [5]
BATMAN tiene elementos de los protocolos de enrutamiento clásicos: detecta otros nodos BATMAN y encuentra la mejor ruta entre nodos. También realiza un seguimiento de los nuevos nodos e informa a sus vecinos sobre su existencia.
En las redes estáticas, los administradores de red o los técnicos deciden a qué equipo se accede a través de qué vía o cable. Como las redes de radio están sujetas a cambios constantes y los umbrales de participación bajos son una parte vital de las redes "Freifunk", esta tarea debe automatizarse tanto como sea posible.
De forma regular, cada nodo envía un mensaje de difusión para informar a todos sus vecinos sobre su existencia. A continuación, los vecinos retransmiten este mensaje a sus vecinos, y así sucesivamente. Esto lleva la información a todos los nodos de la red. Para encontrar la mejor ruta a un nodo determinado, BATMAN cuenta los mensajes de origen recibidos y registra a través de qué vecino llegó el mensaje.
Al igual que los protocolos de vector de distancia, BATMAN no intenta determinar la ruta completa, sino que, mediante los mensajes del emisor, sólo 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 cable cableadas 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 viabilidad y adecuación a la tarea en cuestión. Para el envío y recepción de mensajes de origen (información sobre la existencia), se eligió el puerto UDP 1966.
El algoritmo de la primera versión partía de una premisa importante: en cuanto 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, es muy posible que solo sea posible la comunicación unidireccional, es decir, enlaces asimétricos. [6] Se incorporó un mecanismo al protocolo para permitir esto y resolver los problemas que surgieron. El mecanismo permite al nodo determinar si un nodo vecino proporciona comunicación bidireccional. Solo los nodos bidireccionales se consideran parte de la red, y los nodos unidireccionales ya no están completamente incluidos.
La mayor innovación de esta versión es la compatibilidad de BATMAN con varios dispositivos de red . Se puede instalar un ordenador o un enrutador que ejecute BATMAN en una ubicación central, como un edificio alto, y tener varias interfaces de red cableadas o inalámbricas conectadas a él. Cuando se instala de esta manera, BATMAN puede retransmitir datos de red en más de una dirección sin ningún retraso de retransmisión.
Durante la determinación de la mejor ruta a través de la red pueden aparecer ciertos fenómenos inusuales y circunstancias especiales que 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 está disponible. Pueden utilizar una puerta de enlace específica o permitir que BATMAN determine qué puerta de enlace utilizar, en función de criterios como la velocidad de conexión.
En esta versión también se ha incluido la posibilidad de anunciar dispositivos que no ejecutan BATMAN. Normalmente, 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 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; [7] esto se confirma mediante análisis teórico. [8]
BatMan-eXperimental (BMX) tiene como objetivo aproximarse al exponente real mediante el envío de mensajes de origen (OGM) varias veces en datagramas de difusión independientes. [9] Se originó como una rama independiente de BATMAN desarrollada por Axel Neumann. [10] Una versión extendida que incorpora enrutamiento multitopológico seguro y confiable (SEMTOR) se llama BMX7. [11]
[12]
La versión cuatro implementa un algoritmo para detectar mejor la calidad de las transmisiones en situaciones de enlaces anormales. Los mensajes de origen se actualizan para incorporar estos datos, lo que permite que otros nodos detecten mejor la calidad de las conexiones asimétricas.
[13]
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). [14]