Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Si pone il problema di implementare l'accesso a divisione di tempo (TDMA) al mezzo da parte dei nodi nodi di una rete ad-hoc, tenendo presente che quest'ultima una rete multi-hop in cui quindi I nodi non sono tutti a distanza di comunicazione diretta, e questo perci permette l'utilizzo del riuso di frequenza. Il protocollo in questione propone un nuovo sistema di assegnamento dei time slots (scheduling) ai nodi che vogliono comunicare all'interno della rete. I protocolli MAC tradizionali sono meccanismi del tipo contention-based, in cui quindi ogni nodo compete per accedere al mezzo. Perci essi non sono molto adatti ai traffici che presentano determinati requisiti di QoS. Sono state proposte delle soluzioni per introdurre il TDMA nelle reti ad-hoc. I primi algoritmi prevedevano delle soluzioni centralizzate in cui ci sarebbe una stazione centrale che assegna i time slots ai vari nodi della rete in base alle richieste che gli arrivano. Per questa soluzione non scalabile perch queste stazioni centrali devono avere informazioni su tutta la rete, e pi la rete sar grande e pi sar difficile ricevere informazioni aggiornate e quindi consistenti. Inoltre la stazione centrale costituisce un punto di caduta singolo, cio se esso cade allora cade tutta la rete. Altri algoritmi prevedono soluzioni distribuite senza la coordinazione di una stazione centrale. Per in questa situazione, all'inizio del funzionamento della rete, ad ogni nodo dovr essere assegnato un canale TDMA fisso, il ch risulta complicato da implementare. Inoltre essi richiedeno alcune informazioni sulla topologia della rete (topoligy-dependent), e non consentono il riuso di frequenza. In seguito sono stati sviluppati altri algoritmi che sono topology-transparent, cio sono indipendenti dalla topologia della rete, e sono quindi immuni alla mobilit dei nodi. Per anche qui non si considerato la possibilit del riuso in frequenza, e inoltre essi utilizzano un canale separato per l'invio dei feedback alle richieste di riservazione dei canali.
Lalgoritmo proposto
L'algoritmo proposto in questo paper consente di riservare parallelamente i timeslots da parte dei nodi che sono lontani tra loro e quindi non possono interferire sulla stessa frequenza. Esso permette trasmettere i messaggi di riservazione in un ambiente contention-based, ai soli nodi che si trovano a 2 hop di distanza. Perci questo tipo di accesso al mezzo resistente ai frequenti cambi di topologia, e inoltre scalabile perch i nodi non necessitano di conoscere l'intera topologia della rete e tutte le richieste di riservazione che sono state fatte. Per quanto riguarda il problema delle hidden stations, non viene usato il meccanismo RTS/CTS perch pu portare comunque a delle collisioni e altri problemi di vario genere. D'altra parte l'algoritmo usa sar capace di rilevare le collisioni che avvengono in un nodo e a segnararle all'altro nodo che sta partecipando alla comunicazione.
Assunzioni
Le assunzioni fatte in questo lavoro sono le seguenti: I canali sono bi-direzionali I nodi hanno un timing ben sincronizzato tra loro Il link tra due nodi simmetrico e senza rumore Durante l'applicazione dell'algoritmo la topologia della rete non cambia
Funzionamento
La sequenza dei frame durante la comunicazione composta da un Reservation Frame (RF) e una sequenza di Information Frame (IF). L'IF composto da un certo numero di Information Slots (IS) dove i nodi possono trasmettere i propri dati. L'RF composto da N Reservation Frames (RS) utilizzato dai nodi per riservare il relativo IS negli IF che seguono. Ogni RS composto da M Reservation Cycle (RC) dove un nodo ha un dialogo in 5 fasi con i propri vicini a 2 hop di distanza, con lo scopo di riservare un IS. I vicini che ricevono la richiesta dal nodo considerato possono accettarla o rigettarla. Nel caso in cui si verifichino pi richieste per uno stesso slot, allora si assume che avviene una collisione e nessuno dei nodi riusce a riservarlo.
Dialogo in 5 fasi
1. Reservation phase: in cui il nodo richiedente invia ai suoi vicini un Reservation Request (RR) 2. Collision report phase: in cui i nodi riportano eventuali collisioni che si verificano nella fase 1. Se un nodo rileva una collisione allora lo segnala con un Collision Report (CR). Se il nodo che ha fatto la richiesta non riceve alcun CR allora vuol dire che ha vinto la riservazione e diventa un Transmission Node (TN). 3. Reservation Confirmation phase: se non ci sono collisioni allora il nodo richiedente invia una conferma di riservazione dello slot ai suoi vicini. 4. Reservation Acknowledgement phase: quest'ultimi risponderanno con un Reservation Acknowledgement (RA). Questa serve pi che altro al nodo richiedente per sapere se effettivamente ci sono dei nodi vicino a lui, o se isolato. Inoltre serve a comunicare ai nodi a 2 hop di distanza l'avvenuto successo della riservazione. Il deadlock una situazione in cui si possono venire a trovare due o pi nodi vicini che hanno riservato lo stesso IS. Il daedlock pu essere di due tipi: isolato (quando i nodi TN hanno solo vicini deadlock) e non isolato (quando hanno vicini anche non deadlock). Il deadlock accade quando questi nodi TN non hanno un vicino in comune che gli pu comunicare che avvenuta una collisione. Perci entrambi i nodi pensano di aver vinto la riservazione ed entreranno nella fase 2. La fase 4 serve anche per prevenire questa situazione, infatti se i nodi che hanno fatto la riservazione non ricevono un ACK allora vuol dire che potrebbe essere avvenuto un deadlock. 5. Packing and Elimination phase: In questa fase si cerca di risolvere il problema del deadlock non isolato. I nodi che si trovano a 2 hop dal TN inviano ai propri vicini un Packing Packet (PP), in modo tale che loro sanno che una riservazione avvenuta a 3 hop di distanza, e perci saranno incoraggiati a riservare quel determinato IS. Questo con lo scopo di massimizzare il riuso di frequenza all'interno della rete (maximal packing). I pacchetti sono inviati dai TN ai nodi vicini in modo tale che se uno di loro anch'esso un TN sullo stesso slot allora si fermer di trasmettere.
Contention Policy
Il protocollo FPRP ha bisogno di un metodo di accesso del tipo contention-based per accedere al Reservation Frame). Si potrebbe pensare di usare il protocollo ALOHA che come sappiamo divide il tempo di accesso di un canale in time slots. Ma il protocollo ALOHA progettato per operare in reti a singolo salto, mentre noi siamo interessati a lavorare in una rete multi-hop. Quello che allora si proposto di modificare l'algoritmo Rivests pseudo-Bayesian broadcasting algorithm
per questo scopo. Questo algorimo ogni nodo stima il numero dei propri vicini e calcola quindi la sua probabilit di accedere al canale come:
p = 1/n dove n all'inizio il numero dei propri vicini, e poi viene aggiornato secondo i seguenti criteri: In caso di successo della riservazione o di idle: n = n-1 in caso di collisione: n = n + (e-2)-1
E-TDMA
Il protocollo presentato composto da due TDMA schedules: uno broadcast in cui ad ogni nodo assegnato un solo slot, ed usato per scambiare informazioni di controllo tra i nodi (control schedule). Il secondo invece usato per la trasmissione di dati (information schedule) e in questo caso un nodo pu riservare il numero di slot di cui ha bisogno. Le riservazioni, in entrambi i casi, vengono fatte nel solo vicinato a distanza di 1 hop, quindi, visto che l'algoritmo lavora solo nell'ambito locale, esso risulta molto scalabile. Se un nodo necessita di comunicare con un suo vicino, riserver il time slot coinvolgendo solo i nodi vicini a lui. Se il nodo con il quale sta comunicando sente una collisione sul canale allora lo comunica al nodo trasmittente che provveder a riservare un diverso time slot.
Assunzioni
I nodi hanno il timing perfettamente sincronizzato tra loro I link sono simmetrici La topologia della rete abbastanza stabile Ogni nodo pu applicare il Five Phase Reservetion Protocol
Struttura Frame
Il canale TDMA viene partizionato in due fasi: unepoca di controllo dove il protocollo applica lo schedule, e unepoca di informazione dove avvengono le trasmissioni dati degli utenti. Lepoca di informazione suddivisa in K frame di informazione che contengono L slot, dove le stazioni possono trasmettere. Il numero di slot assegnati ad un nodo dipende dal tipo di traffico scambiato, e viene deciso dallETDMA nella fase di information schedule. Lepoca di controllo composta da due fasi: un fase di contesa e una fase di allocazione. La fase di contesa divisa in N slot suddivisi a sua volta in un certo numero di cicli in 5 fasi del protocollo FPRP per la contesa del corrispondente colore temporaneo. La fase di allocazione composta da N frames, in ognuno di quali i nodi vicini si scambiano informazioni come stabilito nella fase precedente. Il control schedule avviene in broadcast, e nella teoria dei grafi un broadcast schedule corrisponde alla colorazione dei nodi a distanza di 2 hop. Per questo motivo il control shedule viene chiamato anche colore. Ci sono due tipi di colori nel control schedule: il colore temporaneo e il colore permanente. Un nodo pu avere un solo colore temporaneo e un solo colore permanente. I colori temporanei vengono usati per effettuare la riservazione di qualche slot di informazione o per ottenere un colore permanente. Essi durano solo il periodo di un frame. I colori permanenti servono a scambiare informazioni di scheduling con i propri vicini (non per fare le riservazioni). Essi sono usati per stabilizzare le connessioni quando i nodi sono fermi, permettendogli quindi dei periodi di trasmissione contention-free. Un colore permanente dura molto pi a lungo di uno temporaneo e viene usato fino a quando il nodo non ha pi niente da trasmettere o quando avviene una collisione. Se avviene questa
collisione allora il nodo abbandoner questo colore permanente e ne acquisir un altro. Il primo frame della fase di allocazione, che chiamiamo A1, sar formato da M slot per i colori permanenti e N slot per i colori temporanei. Il numero di slot riservati per i colori temporanei decrementer progressivamente nei frame A successivi.
CROMA
Il metodo di accesso al mezzo del protocollo IEEE 802.11 non adatto per lavorare in ambienti multi-hop, perch presenta ugualmente il problema delle stazioni nascoste, il problema delle stazioni esposte, non introduce alcuna politica per garantire il QoS ai flussi che la richiedono e inoltre presenta problemi di fairness. I protocolli collision-free permettono ai nodi della rete di riservare un canale per un certo intervallo di tempo per
effettuare la trasmissione di dati. Questo tipo di approccio permette di sostenere traffici che richiedono anche determinati requisiti di QoS, visto che laccesso al mezzo avviene in modo deterministico. Lalgoritmo proposto approfitta dei vantaggi presenti negli algoritmi di tipo contention-based per sviluppare un ambiente in cui il tempo diviso in slot e quindi i nodi comunicano in questi slot in maniera contantion-free.
WRP
un protocollo di routing prottivo, di tipo Distance Vector, che fa uso di particolari tabelle per evitare la creazione di loop all'interno dei percorsi di rete. In questo protocollo pgni nodo non memorizza solo la topologia della rete ma memorizza anche altre tabelle per avere pi accurate informazioni. In particolare, ogni nodo fa uso di 4 tabelle: Tabella delle distanze: memorizza le informazioni di rete possedute dai nodi vicini. Pi precisamente memorizza una matrice in cui ogni elemento riporta la distanza e il nodo precedente per un dato vicino per raggiungere una destinazione. La tabella di routing: che contiene la topologia aggiornata della rete, il nodo precedente e successivo in una route per raggiungere una destinazione e un flag per indicare la validit del percorso La tabella dei costi dei link: riporta appunto il costo di spedire un pacchetto su un determinato link Lista dei messaggi ritrasmessi: ogni entry di questa tabella contiene I messaggi di update che dovranno essere ritrasmessi e un contatore che verr decrementato ogni qualvolta un messaggio di update non ha avuto riscontro e deve quindi essere ritrasmesso. Questo meccanismo quindi serve a individuare link adiacenti che sono caduti.
Il funzionamento il seguente: Quando un nodo riceve un messaggio di update, it update the distance for its links, but also checks the other neighbors' distance. So the convergence is much faster than DSDV. But, due the complexity of maintenance of multiple tables, it demands a larger memory and greater processing power from nodes. Futher, in high dynamic and large ad-hoc networks the control overhead is the same of DSDV.
Se un nodo della rete riceve un pacchetto QRY pu fare le seguenti cose: Se il proprio peso NULL allora ritrasmette il pacchetto in broadcast ai propri vicini. Se il proprio peso non NULL allora vuol dire che ha in memoria un percorso verso la destinazione. Allora spedisce un messaggio UPD con il proprio peso al nodo che gli ha inviato la QRY Un nodo che riceve un messaggio di UPD fa le seguenti operazioni: Setta il proprio peso con quello ricevuto nel pacchetto UPD ma incrementato di uno Invia un pacchetto UPD con il proprio peso ai nodi vicini Alla fine verr costruito un grafo aciclico in cui i nodi che partecipano alla route saranno caratterizzati da pesi decrescenti andando dalla sorgente verso la destinazione.
Se un nodo non riceve alcuna risposta entro un certo intervallo di tempo al proprio RREQ allora invier un nuovo RREQ con un TTL pi alto. Ogni nodo monitora i suoi vicini inviando periodicamente degli Hello Messages. Questo permette al nodo di accorgersi quando si sono verificate delle cadute dei link o cambiamenti nella topologia. Se questo avviene allora il nodo considerato invier un messaggio RERR per informare i nodi vicini dell'evento. I nodi che saranno informati non saranno tutti i nodi vicini, ma saranno quelli per cui il nodo li considera precursori all'interno delle route che coinvolgono il link caduto.
Numeri di sequenza
I numeri di sequenza vengono usati per evitare il formarsi di loop all'interno di una route, e per evitare il problema del count-to-infinity. In particolare ci sono due numeri di sequenza. Ad ogni nodo della rete sar assegnato un SN che viene aggiornato in due situazioni: Prima di generare un messaggio RREQ il nodo deve incrementare di 1 il suo SN Prima di generare un messaggio RREP il nodo dovr impostare il proprio SN al valore massimo tra quello corrente che possiede e quello che ha ricevuto con l'RREQ Nei messaggi RREQ saranno presenti i seguenti campi: Destination Sequence Number (DSN): SN del nodo di destinazione Source Sequense Number (SSN): SN del nodo sorgente mentre nel messaggio RREP sar presente solo il DSN. Nel momento della generazione del RREQ, il DSN sar ricavato dai precedenti cammini scaduti o non validi, oppure se la destinazione nuova, allora sar impostato a 0. Quando un nodo riceve un messaggio RREP aggiorner il DSN contenuto nella propria routing table con quella contenuta nel messaggio.
RERR
Il messaggio RERR pu essere inviato in tre diverse situazioni: Se il nodo corrente scopre che il link al nodo successivo caduto Se non ha alcuna route valida verso la destinazione Se riceve un RERR riguardante uno o pi cammini nella sua routing table Un nodo che riceve un messaggio RERR aggiorner il DSN e imposter l'hop count a infinito per invalidare la route.
Riparazioni locali
Il protocollo considerato permette anche di effettuare delle riparazioni locali, nel senso che se il nodo che rileva la caduta di un link lungo la route considerata non molto distante dalla destinazione allora pu inviare un messaggio RREQ per individuare un nuovo percorso. Se non riceve alcuna RREP dopo un centro intervallo di tempo allora invier un RERR verso il nodo sorgente. Per alcune volte non risulta conveniente effettuare riparazioni locali perch si rischia di trovare percorsi che sono molto pi lunghi del precedente.
Route Discovery
Se un nodo che deve comunicare con un altro nodo non conosce il percorso su cui instradare il pacchetto allora avvia la procedura di route discovery. Viene inviato un messaggio RREQ contenente il route record in cui riportata la sequenza dei nodi attraversati in quel momento per raggiungere il nodo di destinazione. Un nodo della rete che riceve un messaggio RREQ, prima cosa di tutto verifica che non l'abbia gi ricevuto andando a leggere il request id. Dopo si verifica questa situazione: Se il nodo che ha ricevuto il RREQ coincide con il nodo di destinazione allora la ricerca terminata e viene inviato un messaggio di route reply verso il nodo sorgente. Altrimenti il nodo considerato inserisce il proprio indirizzo nel route record e inoltra il pacchetto RREQ agli altri nodi
Route Maintenance
La route maintenance l'operazione usata per monitorare lo stato del percorso considerato. Per fare ci, un nodo della rete che sta usando qualcuno dei percorsi che ha memorizzato, contemporaneamente controlla lo stato delle operazioni. Se rileva che avvenuta la caduta di qualche link, allora cancella la route considerata dalla propria tabella di routing, e invia un messaggio RERR verso il nodo sorgente. I nodi che riceveranno questo messaggio cancelleranno anche loro la route considerata dalla propria tabellam e nel caso che ne hanno bisogno, avvieranno un processo di route discovery per la destinazione considerata
possono inoltrare le route request inviate da parte del nodo sorgente. Per aumentare le possibilit di raggiungere il nodo di destinazione opportuno includere lexpected zone nella request zone Esistono diverse varianti del protocollo LAR: LAR Schema 1: che costruisce la Request Zone come un rettangolo fatto in modo da avere il nodo sorgente su un vertice e in modo da includere lExpected Zone LAR Schema 2: invece di specificare la Request Zone nella route request, si specifica la posizione del nodo destinazione e la distanza dal nodo sorgente. Nella route request generata dal nodo sorgente viene indicata la distanza di questultimo dal nodo di destinazione. Un nodo che successivamente riceve la route request verifica per prima cosa che la sua distanza sia inferiore a quella riportata allinterno del messaggio. Se inferiore allora scrive la propria distanza allinterno del messaggio e poi lo inoltra ai nodi vicini. Se invece superiore allora il pacchetto viene scartato.