BATMAN (protocollo)

BATMAN ( Better Approach To Mobile Adhoc Networking ) è un protocollo per il routing sviluppato dalla comunità Freifunk  (in) . Tende a sostituire OLSR .

Definizione del problema e approccio alla soluzione

I protocolli di instradamento convenzionali sono generalmente molto poco adatti alle reti mobili Ad-Hoc ( MANET ), perché non sono strutturati, subiscono estensioni / riduzioni spontanee e sono per natura inaffidabili. OLSR, che fino ad ora era la soluzione più promettente, ha chiaramente dovuto cambiare il suo design iniziale, prima che potesse evolversi nella sfida delle reti mesh a livello cittadino. Alcuni dei suoi elementi costitutivi di base si sono rivelati inadatti nella pratica (come l' isteresi o MPR (relè di distribuzione multipunto)) o limitano la rete mesh a una dimensione massima, ad esempio inviando una quantità di dati troppo grande e il continuo è necessario calcolare la topologia di rete completa. Nonostante i riadattamenti, i limiti di OLSR si manifestano rapidamente, in particolare attraverso la crescita delle reti Freifunk. Gli sviluppatori di BATMAN hanno deciso di imparare dalle esperienze del protocollo OLSR e di altre idee esistenti, per costruire il proprio protocollo.

L'idea centrale di BATMAN è condividere le informazioni sulle migliori connessioni tra tutti i nodi BATMAN dell'intera rete. Grazie a ciò, scompare la necessità di informare tutti i nodi BATMAN ad ogni modifica della rete mesh. Ciascun nodo guarda solo da dove provengono i dati ricevuti dal proprio partner di comunicazione e rinvia i dati corrispondenti attraverso lo stesso percorso. Sulla strada per la destinazione, i dati verranno trasmessi in questo modo passo dopo passo. Scientificamente parlando, questo approccio è simile all'orientamento delle formiche da parte dei feromoni. Di conseguenza, il risultato è una rete di intelligenza collettiva .

Operazione

Il compito principale di BATMAN è lo stesso dei classici protocolli di routing: è scoprire gli altri nodi BATMAN e calcolare il percorso migliore verso questi nodi. Inoltre, informa i suoi vicini sui nuovi nodi e sulle rotte per raggiungerli. Nelle reti statiche, gli amministratori di rete oi tecnici decidono con quale cavo o mezzo (es. Onde radio) può essere raggiunto un computer. Nelle reti wireless questo è definito dalla forza dei segnali, ma questi possono subire grandi variazioni, che è un primo ostacolo al raggiungimento dei prerequisiti più importanti per le reti Freifunk. Queste attività devono quindi essere ampiamente automatizzate:

Ogni nodo informa regolarmente i suoi vicini tramite un messaggio di trasmissione della sua esistenza. Ogni vicino risponde con il suo messaggio di esistenza, che consente anche ai vicini dei vicini di conoscere l'esistenza di questo nodo. Questo è il modo in cui le informazioni su ciascuno dei nodi vengono distribuite nell'intera rete. Per trovare il percorso migliore per tutti i vicini, BATMAN conta i messaggi ricevuti dalla stessa origine e memorizza quale vicino gli ha trasmesso. A differenza delle soluzioni esistenti, il protocollo non tenta di definire il percorso completo di un altro nodo, ma utilizza le origini dei messaggi raccolti per valutare il primo salto nella giusta direzione. Questi dati verranno quindi trasmessi solo al miglior vicino per quella direzione, che applicherà lo stesso principio. Questo processo viene ripetuto fino a quando i dati non arrivano al destinatario.

BATMAN è progettato in questo modo generico, in modo che non sia applicabile solo in reti radio (es . Rete wireless ), ma possa essere utilizzato anche nelle classiche connessioni cablate (es: Ethernet o Token Ring ).

Storia di BATMAN

È stato necessario sviluppare un protocollo di comunicazione il più semplice, piccolo e veloce possibile. Sembrava quindi logico realizzare uno sviluppo in più fasi, in modo da implementare le funzioni complesse una dopo l'altra.

BATMAN versione 1

Per cominciare, è stato implementato solo l'algoritmo di routing e la sua resistenza alla pratica è stata testata. Per ricevere e inviare messaggi originali (informazioni sull'esistenza), è stata scelta la porta UDP 1966.

BATMAN versione 2

L'algoritmo esistente fa un'ipotesi: non appena le informazioni sull'esistenza di un nodo vengono ricevute da un altro nodo, quest'ultimo ritiene di potergli restituire i dati. Nelle reti radio, tuttavia, va tenuto presente che la comunicazione può operare anche in maniera unidirezionale. Per poter tenere conto di questi casi, il protocollo è stato esteso per il riconoscimento dei vicini bidirezionali. Con la versione 2, vengono mantenuti solo i vicini con cui la comunicazione è bidirezionale.

BATMAN versione 3

La grande novità è il supporto per diverse interfacce di rete. Ora BATMAN può funzionare anche da punti centrali (campanile, tetto alto ...) dove sono collegate più antenne o cavi. È stato anche preso in considerazione un caso speciale per la scoperta di percorsi attraverso la rete per evitare loop di routing. Ogni nodo può ora annunciare alla rete che offre l'accesso a Internet. Gli utenti sono quindi in grado di sapere che una connessione Internet è disponibile nelle vicinanze e quale larghezza di banda è disponibile. Possono quindi scegliere un gateway specifico o lasciare questa decisione a BATMAN (in base a criteri come la connessione Internet più veloce).

Inoltre, ora è possibile pubblicizzare un dispositivo in una rete BATMAN, anche quando non è configurato con BATMAN.In genere è attraverso questo che le reti domestiche possono connettersi alla rete mesh . Ad esempio, l'installazione sul tetto di un'antenna consente tramite BATMAN di comunicare con il resto della rete mesh, il resto della casa ha accesso alla rete mesh tramite questa installazione.

Linux

Il protocollo BATMAN è supportato nativamente nel kernel Linux dalla versione 2.6.38 (2011).

Note e riferimenti

  1. https://www.open-mesh.org/projects/open-mesh/wiki/The-olsr-story
  2. (in) Supporto nativo in Linux dalla versione 2.6.38 completata il 14 marzo 2011. In precedenza era disponibile nei suoi driver di staging , il cui scopo non supera l'obiettivo del test.

Appendici

Vedi anche

link esterno