Manet

| | 3 Comments

Manet
Negli ultimi anni si è andata delineando una nuova generazione di sistemi di comunicazione wireless. Questi sistemi sono caratterizzati da un’elevata mobilità e nascono dall’esigenza di un inserimento rapido e autonomo in rete di terminali indipendenti e dalla necessità di rendere la rete indipendente da qualsiasi infrastruttura preesistente. Questa nuova tipologia di rete viene definita MANet.


I primi studi sulle manet risalgono agli anni ’70-’80 in ambito militare, mentre nel 1997 è stato istituito un gruppo di lavoro in IETF, il mobile ad-hoc network working group (manet WG). Il manet WG fa parte dell’area routing e si occupa principalmente della definizione di uno o più protocolli di routing adatti a divenire standard per questa tipologia di rete.
Lo spazio di applicazioni delle manet varia da reti di piccole dimensioni quasi statiche in cui pochi nodi entrano ed escono dalla rete, a reti su larga scala caratterizzate da un’alta mobilità dei nodi. Gli scenari di utilizzo sono quelli in cui sia sconveniente, impossibile o scomodo creare un’infrastruttura di rete fissa. Esempi significativi di utilizzo di queste strutture di rete possono essere l’instaurazione di una rete robusta, efficiente e dinamica sui luoghi di catastrofi, in scenari di emergenza o di operazioni militari in campo ostile. Altri scenari possibili sono quelli di conferenze, eventi o riunioni nelle quali i partecipanti vogliano instaurare in modo semplice e spontaneo una rete per condividere informazioni o scambiare documenti. Come ben si comprende, negli scenari citati non è possibile basarsi su un’unità centrale o un’infrastruttura precostituita per gestire la connessione tra i nodi. E’ inoltre necessario che questi possano entrare e uscire liberamente e in modo rapido dalla rete senza rendere necessario nessun intervento speciale sulla rete stessa e senza precluderne nessuna funzionalità essenziale. A causa di queste caratteristiche la definizione dei protocolli di rete è un problema complesso.
In particolare, l’estrema variabilità della topologia della rete rende il routing un elemento di cruciale importanza nelle manet. Molta importanza si deve dare anche all’energia di trasmissione, che in dispositivi mobili è cruciale per la distanza da coprire e di conseguenza la durata delle batterie.

Problematica del routing nelle Manet
In una rete ad-hoc non vi è distinzione alcuna tra host e router; ogni nodo ricopre entrambe le funzionalità che sono invece ben distinte in una rete cablata. Questa prerogativa delle reti manet fa si che un nodo, per poter partecipare alla rete, debba occuparsi non solo dell’invio e ricezione dei propri pacchetti ma anche dell’inoltro dei pacchetti provenienti da altri nodi. Per fare questo, ogni nodo deve destinare parte delle sue risorse alla collaborazione con gli altri nodi. Questa caratteristica è fondamentale nelle reti ad-hoc perché al loro interno non vi è un’infrastruttura di rete fissa che provvede al mantenimento delle rotte tra i nodi, e sono invece i nodi stessi a creare l’infrastruttura di rete. Nelle Manet, inoltre, si aggiunge un altra complicazione di cui tenere conto: l’estrema mobilità dei nodi che rende ancora più complesso il compito dell’algoritmo di routing. Un nuovo nodo X può entrare nel raggio di copertura di un nodo facente parte della rete e quindi diventarne anch’esso parte. Per poter iniziare a comunicare all’interno di essa è però necessario che tale nodo X ottenga informazioni sulla topologia della rete; deve inoltre comunicare il proprio ingresso in rete ai suoi diretti vicini in modo che questi possano recapitare i pacchetti a lui destinati, siano essi pacchetti dati o di routing.
Al contrario un nodo Y può uscire dalla rete non essendo più nel raggio di copertura di alcun nodo. Per far fronte a questa modifica di topologia i nodi che per ultimi hanno avuto contatti con lui devono diffondere l’informazione in rete. In generale un qualsiasi movimento di nodi all’interno della rete ne modifica la topologia e quindi richiede la modifica, la creazione o la cancellazione di cammini di routing.
Quindi nelle Manet occorre studiare protocolli nuovi che facciano fronte alle esigenze di queste topologie così variabili nel tempo.
E’ possibile suddividere i protocolli di routing ad-hoc in due grandi famiglie: proattivi e reattivi. In un protocollo proattivo i nodi si scambiano continuamente informazioni sul routing. Un nodo conosce in ogni momento la topologia della rete e le rotte verso tutti gli altri nodi che la compongono. Questa tipologia di protocolli si adatta molto bene a situazioni in cui vi siano molte comunicazioni tra molte coppie diverse di nodi. D’altra parte il continuo scambio di informazioni porta ad un cospicuo consumo di risorse di rete che non sarebbe giustificato in caso di poche comunicazioni. Per questo motivo si sono studiati anche protocolli reattivi. Questi protocolli ricavano le informazioni di routing on-demand, cioè creano una rotta tra due nodi solo nel momento in cui vi sia una richiesta di comunicazione da parte del nodo sorgente. Quando un nodo S vuole comunicare con un nodo D inizia il processo detto di route discovery con il quale, se il nodo D è effettivamente raggiungibile, viene creata la rotta e vengono inserite le informazioni relative nelle tabelle di routing di tutti i nodi lungo il cammino. Finchè questa procedura non è terminata il nodo S non può iniziare la trasmissione dei dati. Nei protocolli reattivi un nodo ha unicamente una conoscenza parziale della topologia di rete, a differenza dei protocolli proattivi dove ogni nodo conosce le informazioni di instradamento verso tutti i nodi. Nei protocolli reattivi inoltre le informazioni di routing ottenute con la discovery non vengono mantenute costantemente aggiornate ma, una volta terminata la comunicazione, vengono lasciate scadere. Questo perché, a causa del movimento dei nodi, le informazioni potrebbero non essere più valide trascorsi anche solo pochi secondi dalla fine della comunicazione. Per questo motivo nelle reti mobili ad-hoc si associa ad ogni riga della tabella di routing un timeout, scaduto il quale la rotta viene considerata non più valida. A seconda del protocollo di routing utilizzato possono esserci gestioni più o meno complesse della validità delle rotte. Tutti i valori riguardanti i timeout di validità sono comunque un parametro chiave per gli algoritmi di routing delle manet. Infatti un tempo di validità eccessivamente elevato potrebbe portare ad avere informazioni di routing “vecchi”, cioè informazioni che non rispecchiano più la mutata topologia. Viceversa tempi di validità troppo brevi possono portare a far scadere rotte ancora valide e perciò, in caso si avvii un’altra comunicazione sullo stesso percorso, a far cominciare un nuovo e dispendioso processo di discovery.
Il processo di discovery infatti comporta un certo ritardo dovuto al tempo di propagazione delle informazioni, che è estremamente variabile e dipende da molti fattori quali la grandezza della rete, la mobilità dei nodi e, ovviamente, il tipo di protocollo adottato. In generale il tempo di creazione delle rotte è uno dei fattori principali nella scelta del protocollo di routing adottato da una rete. Negli ultimi anni sono state pubblicate numerosissime proposte di protocolli per il routing nelle reti mobili ad hoc: protocolli proattivi, reattivi, misti (in parte proattivi e in parte reattivi) e protocolli che sfruttano la conoscenza della posizione spaziale dei nodi. Tra tutti questi il gruppo di lavoro IETF che si occupa del routing nelle manet ha scelto tre protocolli che sono stati pubblicati come experimental RFC. Altri tre invece sono ancora al vaglio del gruppo e ne è stato reso disponibile per il momento un Internet Draft.
I protocolli in fase di standardizzazione da parte dell’IETF sono 3, OLSR, TBRPF e AODV, per AODV sarà creato un post dedicato.

OLSR
OLSR (Optimized Link State Routing) è un protocollo proattivo ed è quindi adatto a topologie particolarmente mobili in cui i nodi comunicano molto tra loro creando molti cammini diversi. Il concetto chiave alla base dell’ottimizzazione effettuata è quella dei multipoint relays (MPR), ovvero l’insieme di vicini ad un passo che permettono ad un nodo di raggiungere tutti i suoi vicini a due passi. Per creare questo sottoinsieme di vicini si utilizzano i messaggi di hello inviati periodicamente a tutti i vicini a uno e due passi. Una volta ottenuto l’insieme di tutti i vicini, il nodo estrae da esso gli MPR e la lista dei nodi dai quali esso è stato eletto MPR. Utilizzando queste informazioni OLSR introduce
tre principali ottimizzazioni:
• Se un nodo riceve un messaggio in broadcast ne fa il forward solo se appartiene all’MPR del nodo mittente. Si limita in questo modo il flooding nell’intera rete;
• le informazioni sullo stato dei collegamenti vengono generate solo da nodi che sono stati eletti come MPR da almeno uno dei propri vicini;
• quando un nodo crea un messaggio di topology update può decidere di inserirvi solo le informazioni riguardanti i collegamenti con i nodi dai quali è stato eletto MPR. In questo caso, a differenza dei comuni protocolli link state, si diffondono solo informazioni parziali sulla rete.

TBRPF
Il protocollo TBRPF (Topology Dissemination Based on Reverse Path Forwarding) è anch’esso di tipo proattivo ed è composto da due moduli indipendenti che svolgono funzioni differenti:
Neighbour discovery – Questo modulo viene utilizzato dai nodi per creare una lista dei propri vicini. A differenza di OLSR vengono mantenute informazioni sui soli vicini ad un passo. Queste informazioni vengono recuperate attraverso messaggi di hello differenziali, cioè che contengono solo il cambiamento di stato della connessione tra i due nodi. La connessione può essere di tre tipi:
• 1 way se X riceve un messaggio di hello da Y il quale non pubblicizza X come suo vicino;
• 2 way se X riceve un messaggio di hello da Y il quale nello stesso messaggio di hello indica X come suo vicino 1-way o 2-way;
• lost se dopo un certo intervallo di tempo i 2 nodi non ricevono messaggi di hello l’uno dall’altro.
Se non vi sono cambiamenti di stato da segnalare nell’ambito dei propri
vicini i messaggi di hello vengono comunque inviati, in modo da mantenere
attive le connessioni e segnalare la propria presenza. In questo caso i
messaggi vengono inviati vuoti in modo da risparmiare banda.
Routing Module – Questo è il vero e proprio modulo che gestisce l’invio e l’elaborazione
delle informazioni di routing. Il routing module gestisce due differenti tipi di messaggi di topology update:
• normali – Questi messaggi vengono inviati periodicamente in broadcast (per esempio ogni 5 secondi), vengono elaborati dai nodi vicini dopodiché vengono inoltrati e si propagano per tutta la rete. In questi messaggi il nodo sorgente include una parte del suo albero di routing. Per limitarne la dimensione ogni nodo che elabora il messaggio sottrae alcune informazioni.
• straordinari – Questi messaggi vengono invece utilizzati quando il collegamento tra un nodo e un suo vicino cambia stato. In questo caso la sorgente costruisce un messaggio di routing update straordinario contenente i cambiamenti dovuti alla modifica della connettività col vicino;
i nodi che lo ricevono modificano le loro tabelle di routing, se necessario, e ritrasmettono il messaggio solo in caso questo abbia portato a cambiamenti nelle loro rotte.
Il fatto di avere una struttura modulare permette a TBRPF di poter, in un futuro, utilizzare una diversa strategia di gestione dei vicini con il medesimo modulo di routing.

Precedente <- Introduzione e storia sulle reti adhoc
Successivo -> Protocollo di Routing AODV

Tags: , ,

Category: Computer

About the Author ()

Studio Ingegneria Informatica e Bio. all' Università Magna Graecia di Catanzaro, sono appassionato di informatica, e mi piace praticare la pesca nelle acque dolci.