Indice INTRODUZIONE... 4



Documenti analoghi
A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Parte II: Reti di calcolatori Lezione 24

Reti di Telecomunicazione Lezione 8

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Reti di calcolatori. Lezione del 10 giugno 2004

ARCHITETTURA DI RETE FOLEGNANI ANDREA

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

3. Introduzione all'internetworking

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

Corso di Informatica

Inizializzazione degli Host. BOOTP e DHCP

Reti e Internetworking

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

WiFi: Connessione senza fili. di Andreas Zoeschg

Reti di Calcolatori. Il software

Il routing in Internet Exterior Gateway Protocols

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Coordinazione Distribuita

Wi-Fi, la libertà di navigare in rete senza fili. Introduzione.

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Argomenti della lezione

Reti di calcolatori ed indirizzi IP

Reti LAN. IZ3MEZ Francesco Canova

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Dispositivi di rete. Ripetitori. Hub

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Agenti Mobili Intelligenti e Sicurezza Informatica Utilizzare un nuovo paradigma applicativo per la realizzazione di sistemi informatici sicuri.

RoutingInternet Protocol. Algoritmi di instradamento di tipo Distance vector

REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA UFFICIO SOCIETÀ DELL INFORMAZIONE

Reti e Internet: introduzione

Reti diverse: la soluzione nativa

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Reti di Calcolatori:

Lo scenario: la definizione di Internet

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Protocolli di accesso multiplo

Replicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni

SWITCH. 100 Mb/s (UTP cat. 5E) Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

Realizzazione di un commutatore ultraveloce di flussi dati ottici basato su effetti non lineari in fibra. Claudia Cantini

Laboratorio di reti Relazione N 5 Gruppo 9. Vettorato Mattia Mesin Alberto

La Videosorveglianza Criteri per il dimensionamento dello storage

Svantaggi della Commutazione di Circuito. Commutazione di Pacchetto. Struttura di un Pacchetto

Informatica per la comunicazione" - lezione 8 -

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

WLINK. Ecco le principali ed innovative caratteristiche di un sistema wireless WLINK:

Reti di Calcolatori IL LIVELLO RETE

Livello di Rete. Gaia Maselli

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Reti di Calcolatori

COME SVILUPPARE UN EFFICACE PIANO DI INTERNET MARKETING

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

TEST DI RETI DI CALCOLATORI I (9400N) anno 1999/2000

Progetto di simulazione molecolare per il corso di Complementi di algoritmi A.A

Presidenza del Consiglio dei Ministri

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Parte II: Reti di calcolatori Lezione 21

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

La progettazione centrata sull utente nei bandi di gara

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Protocolli di Comunicazione

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Hardware delle reti LAN

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Università Politecnica delle Marche. Progetto Didattico

Contesto: Peer to Peer

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Creare una Rete Locale Lezione n. 1

Reti di Telecomunicazione Lezione 6

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

VPN CIRCUITI VIRTUALI

TELECOMUNICAZIONI II: LE RETI DI COMUNICAZIONE. INTRODUZIONE... pag.2

A cura di Giorgio Mezzasalma

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon VPC (Virtual Private Cloud)

Protocollo IP e collegati

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

I COMPONENTI DI UNA RETE

Le fattispecie di riuso

La mediazione sociale di comunità

Verifica scritta di Sistemi e Reti Classe 5Di

SIMULAZIONE PROVA SCRITTA ESAME DI STATO. PER LA DISCIPLINA di SISTEMI

Elementi di Informatica e Programmazione

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Sostituto abilitato Entratel con più sedi: ricezione diretta e incarico ad intermediario abilitato

Determinare la grandezza della sottorete

Guida all uso di Java Diagrammi ER

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Access Control List (I parte)

Sistema operativo: Gestione della memoria

INFOCOM Dept. Antonio Cianfrani. Virtual LAN (VLAN)

Transcript:

Ringraziamenti Un ringraziamento particolare va alla mia famiglia che mi ha sostenuto in questi anni permettendomi di raggiungere questo obiettivo. Un sentito ringraziamento va a Dario che mi ha seguito in questo lavoro di tesi con pazienza e professionalità. Ringrazio inoltre il prof. Antonio Corradi per la grande disponibilità e attenzione dimostrata nei miei confronti. Ringrazio anche Francesca che mi è stata vicina in questi ultimi anni e che mi ha sopportato così a lungo, e tutti i miei amici insieme ai quali ho trascorso questi meravigliosi anni di università.

Indice INTRODUZIONE... 4 CAP. 1 RETI WIRELESS......6 1.1 INTRODUZIONE ALLE RETI WIRELESS...6 1.1.1 Body Area Network...7 1.1.2 Personal Area Network...7 1.1.3 Wireless Local Area Network...8 1.1.4 Wireless Wide Area Network...9 1.2 TECNOLOGIE PER LE RETI WIRELESS...9 1.2.1 Architettura e Protocolli del IEEE 802.11...9 1.2.1.1 Il metodo di accesso DCF...10 1.2.1.2 Il metodo RTS/CTS...11 1.2.2 La Tecnologia Bluetooth...12 1.2.2.1 Architettura di una rete Bluetooth...13 1.2.2.2 Trasmissione dati Bluetooth...14 1.2.3 Modelli per le reti Wireless...15 1.2.3.1 Reti Cellulari...15 1.2.3.2 Reti Cellulari Virtuali...15 1.2.3.3 Reti Ad-Hoc...16 CAP. 2 LE MOBILE AD HOC NETWORKS (MANET).... 17 2.1 INTRODUZIONE ALLE MANET...17 2.2 ARCHITETTURA DELLE RETI MANET...18 2.3 PROTOCOLLI DI ROUTING UNICAST NELLE RETI AD HOC...20 2.3.1 Protocolli di Routing Proattivi...21 2.3.2 Protocolli di Routing Reattivi...23 CAP. 3 ROUTING MULTICAST IN AMBIENTI MANET...27 3.1 ODRMP (ON DEMAND MULTICAST ROUTING PROTOCOL)...28 3.2 MULTICAST AODV (MAODV)...29 3.3 FGMP (FORWARDING GROUP MULTICAST PROTOCOL)...31 3.4 CAMP (CORE-ASSISTED MESH PROTOCOL)...33 3.5 ALTRI PROTOCOLLI DI MULTICAST NELLE RETI AD HOC...34 CAP. 4 I PROTOCOLLI DI GOSSIP.....36 4.1 INTRODUZIONE AI PROTOCOLLI DI GOSSIP...36 4.2 CARATTERISTICHE PRINCIPALI ED AFFIDABILITÀ...36 4.3 GOSSIP E TRANSIZIONE DI FASE...37 4.4 GOSSIP1...39 4.5 GOSSIP BASATO SULLA CONOSCENZA DEI VICINI...39 4.6 GOSSIP A ZONE...41 1

4.7 GOSSIP3...41 4.8 AGAR...42 4.9 LINEE GUIDA...43 CAP. 5 NETWORK SIMULATOR 2...... 44 5.1 L AMBIENTE DI SIMULAZIONE...44 5.2 GERARCHIA DELLE CLASSI...45 5.2.1 La Classe Tcl...46 5.2.1.1 Creare un istanza della classe Tcl...46 5.2.1.2 Invocare Procedure Otcl...47 5.2.1.3 Passare Risultati al/dal Interprete...47 5.2.1.4 Notifica degli errori e termine della simulazione...48 5.2.2 La Classe TclObject...48 5.2.2.1 Creare istanze di oggetti TclObject...49 5.2.2.2 Eliminare un istanza di TclObject...49 5.2.2.3 Binding di variabili...50 5.2.2.4 Metodi command(): Definizione ed Invocazione...51 5.2.3 La Classe TclClass...53 5.2.3.1 Binding di variabili di classe statiche C++...54 5.2.4 La classe TclCommand...56 5.2.5 La classe InstVar...57 5.3 CREARE UNA NUOVA SIMULAZIONE...57 5.3.1 Come iniziare...57 5.3.2 Nodi e Links...59 5.3.3 Trasferimento di dati tra Nodi...61 5.3.4 Flussi di dati multipli e Monitoraggio di Code...62 5.3.5 Altre tipologie di Scenari...64 5.3.6 Creare file di output per Xgraph...65 5.3.6.1 Topologia e Sorgenti di Traffico...66 5.3.6.2 Registrare i dati nei trace-file...67 5.3.6.3 Lanciamo la Simulazione...69 5.3.7 Creare Scenari Wireless in NS2...70 5.3.7.1 Pattern-files per la configurazione dei Nodi...72 5.3.7.2 Creazione Patterns di traffico casuali...73 5.3.7.3 Creazione Patterns di movimento casuali...74 5.3.8 Implementare un nuovo protocollo in NS2...74 5.3.8.1 Gli Header Files...74 5.3.8.2 Il codice C++...75 5.3.8.3 Il codice Tcl...77 5.3.8.4 Modifica dei file sorgenti in NS2...77 CAP. 6 ANALISI DI PROTOCOLLI DI COMUNICAZIONE... 82 6.1 LE SIMULAZIONI EFFETTUATE...82 6.1.1 Il protocollo di Gossip...83 2

6.1.1.1 Implementazione del Packet Header...87 6.1.1.2 Implementazione dell Agente Gossip...88 6.1.1.3 Lo script Tcl...96 6.1.2 Risultati ottenuti dalle Simulazioni...101 CONCLUSIONI...112 BIBLIOGRAFIA...113 3

Introduzione La crescente proliferazione di dispositivi portatili che possono fruire di connettività wireless, i recenti sviluppi delle tecnologie wireless e l emergenza delle Mobile Ad-Hoc NETwork (MANET), aprono un nuovo scenario. Nel nuovo scenario degli utenti richiedono la possibilità di beneficiare di servizi innovativi che consentano di collaborare ovunque essi si trovino, in qualunque momento e quando sono in movimento. Esempi di servizi abilitati dalle tecnologie MANET sono costruiti da applicazioni per il file sharing fra utenti mobili, dal coordinamento di veicoli, da scenari di protezione civile. Le caratteristiche delle MANET sollevano molti problemi nello sviluppo di servizi collaborativi. La topologia della rete nn è determinabile a priori rendendo impossibili assunzioni sulla corrente disponibilità on-line delle diverse entità interagenti. Disconnessioni, partizioni e merge di rete sono eventi comuni che causano transitori nella collaborazione fra partner nuovi e precedentemente conosciuti. Un aspetto molto importante nello sviluppo di servizi avanzati in scenari MANET è costituito dall insieme di quei protocolli che consentono la disseminazione delle informazioni all interno della rete. Protocolli di comunicazione di questo tipo sono adottati per esempio, per il discovery di risorse o servizi all interno di una rete, o per la comunicazione multipoint. Recentemente la ricerca ha individuato diverse soluzioni adatte alla disseminazione di informazioni in scenari ad-hoc. In particolare, diversi studi a riguardo hanno introdotto protocolli di Gossip che promuovevano approcci probabilistici per la diffusione delle informazioni all interno di una rete. In questo lavoro di tesi approfondiremo lo studio sui protocolli appartenenti a questa famiglia, analizzando in particolare le prestazioni fornite da un protocollo Gossip(p,0) in uno scenario di rete Ad-hoc e mettendole a confronto con quelle fornite dai generici protocolli di flooding. La tesi è organizzata come segue: nel Capitolo 1 vengono introdotte le reti wireless ed in particolare vengono analizzate varie tipologie di rete come BAN, PAN, LAN e WAN e i loro possibili scenari applicativi. Inoltre vengono illustrati due principali standard per le reti wireless e cioè IEEE 802.11 e Bluetooth, e mostrati i vari modelli architetturali di reti. Nel Capitolo 2 viene analizzato uno di questi modelli, in particolare il modello di rete Ad Hoc e descritti i principali protocolli di routing unicast per questa particolare tipologia di rete. 4

Nel Capitolo 3 vengono analizzate le problematiche relative al routing di tipo multicast nelle reti Ad Hoc ed effettuata una panoramica sui principali protocolli.nel Capitolo 4 focalizziamo la nostra attenzione su una tipologia di protocolli di comunicazione in particolare, cioè il Gossip. Ne verrà spiegato il principio di funzionamento e saranno illustrati i principali protocolli di Gossip. Il Capitolo 5 mostra l architettura del simulatore di reti Ns2 ed un breve tutorial per spiegarne il funzionamento. Il Capitolo 6 mostra infine i risultati delle simulazioni effettuate. Seguono le conclusioni. 5

Cap. 1 Reti Wireless 1.1 Introduzione alle reti Wireless La crescente diffusione dei personal computer e la conseguente evoluzione tecnologica, al fine di ricercare sempre una maggiore flessibilità, associata alle esigenze di mobilità, ha portato ad una crescente diffusione degli standard per reti di tipo wireless. Il più grande vantaggio di queste tipologie di reti è senz altro la mobilità, consentendo agli utenti connessi con i loro dispositivi di spostarsi continuamente rimanendo comunque collegati alla rete, sfruttando anche le reti cablate preesistenti. Un altro fattore a favore delle reti wireless è senz altro la loro flessibilità, sia in termini di scalabilità sia in termini di usabilità. Le reti Wireless utilizzano un certo numero di stazioni base al fine di connettere queste reti a quelle preesistenti. Questa infrastruttura comunque resta qualitativamente la stessa anche nel caso si dovessero connettere un grandissimo numero di utenti. Siccome infatti per poter fornire un servizio di questo tipo sono necessarie un antenna e una stazione base, una volta costituita l infrastruttura aggiungere un potenziale utente non desta particolari problemi. Inoltre questa nuova tecnologia offre il grandissimo vantaggio di interconnettere dispositivi eterogenei situati in reti eterogenee. Infatti oltre a consentire la comunicazione fra le diverse reti wireless, caratterizzate dalla variazione di diversi parametri come banda e raggio di trasmissione, consentono la comunicazione anche con reti fisse, rendendo lo sviluppo di questa tecnologia ancora più importante data la grande varietà di tipologie di utilizzo, come per esempio a scopi ludici, personali e militari. [Moh03] Possiamo dare una classificazione di queste tipologie di rete in base alla loro copertura in termini di maggior distanza di trasmissione, in quattro classi principali come mostrato in Figura 1.0 : Body Area Network (BAN) Personal Area Network (PAN) Local Area Network (LAN) Wide Area Network (WAN) 6

Figura 1.0 Tassonomia delle Reti Ad-Hoc 1.1.1 Body Area Network Una rete BAN ( Body Area Network ) è fortemente correlata con i dispositivi elettronici indossabili. Essa nasce per l esigenza di interconnettere dispositivi eterogenei all interno del raggio di comunicazione della stessa, che approssimativamente corrisponde all altezza di una persona, cioè circa 1-2 metri, come per esempio microfoni, cuffie, cellulari, lettori Mp3. Le reti BAN devono garantire la possibilità di consentire il networking fra più reti ed inoltre devono far si che all utente sia completamente trasparente il fatto di aggiungere o rimuovere un dispositivo BAN da una rete; si parla in tali casi di capacità di autoconfigurazione. Uno dei primi prototipi di rete BAN è stato quello sviluppato da T.G. Zimmerman, che propone un modello che genera un flusso di dati che viaggiano attraverso tutto il corpo sfruttandolo come un normale canale di comunicazione con una banda dell ordine dei 400 Kbit/s. 1.1.2 Personal Area Network Una rete PAN (Personal Area Network) risponde all esigenza di consentire il networking di dispositivi mobili in possesso degli utenti quali PDA, laptop, cellulari. Tipicamente queste reti possiedono un raggio di trasmissione dell ordine della decina di 10 metri ed una banda di trasmissione dell ordine dei Mbps. Una rete PAN particolarmente rilevante è Bluetooth. La rete Bluetooth è emersa come uno standard de facto e fornisce connettività per un numero di dispositivi con raggio di circa 10 m e banda dell ordine dei Mbps 7

Figura 1.1 Relazione tra una BAN (fig. a) e una PAN (fig. b) 1.1.3 Wireless Local Area Network Una rete WLAN risponde all esigenza di fornire un supporto analogo a quello delle LAN in ambienti in cui la mobilità dei terminali rende problematica l adozione di soluzioni cablate o di scenari in cui la rete deve essere usata per un tempo limitato (es. un concerto). Per fare questo una WLAN dovrebbe essere progettata al fine di rispettare alcuni ulteriori parametri e caratteristiche specifiche dell ambiente wireless come la sicurezza, consumo di energia, mobilità e occupazione limitata di banda. Negli ultimi anni l uso della tecnologia wireless nell ambiente LAN è divenuto sempre più diffuso. Una WLAN (Wireless LAN) ha un raggio di comunicazione compreso tra i 100 e i 500 metri ed una banda di trasmissione dell ordine delle decine di Mbps. Uno standard rilevante per le reti WLAN è l IEEE 802.11, il quale opera nella banda dei 2,4 Ghz con una bit rate dell ordine della decina di Mbps. 8

Figura 1.3 Configurazioni di una WLAN : a) rete Ad-Hoc b) Access Point 1.1.4 Wireless Wide Area Network Le WWAN sono reti wireless ad estensione geografica. Esse consentono infatti l interconnessione di dispositivi situati anche a grande distanza, anche se la velocità di trasmissione è decisamente ridotta e varia tra i 5Kbps e i 28 Kbps. 1.2 Tecnologie per le reti Wireless Affinché una tecnologia di rete abbia successo è necessaria la presenza di standard che ne permettano un corretto uso e diffusione. Due tecnologie wireless particolarmente diffuse sono : Lo standard IEEE 802.11 per le reti WAN Bluetooth per le reti BAN e PAN 1.2.1 Architettura e Protocolli del IEEE 802.11 Lo standard IEEE 802.11 fornisce uno strato MAC ed uno strato fisico per le reti WLAN (Figura 1.4 ). Lo strato MAC fornisce ai suoi utenti due tipi di accessi allo strato fisico : Un controllo dell accesso basato sul contenuto Un controllo dell accesso libero Il metodo di accesso base del protocollo MAC del IEEE 802.11 è il DCF (Distributed Coordination Function), il quale è un protocollo di tipo CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance). 9

Oltre al DCF l IEEE 802.11 incorpora al suo interno anche un metodo alternativo di accesso al mezzo, cioè il PCF (Point Coordination Function). Quest ultimo agisce come un classico sistema di polling, dove un coordinatore fornisce i diritti di trasmissione ad una stazione alla volta. Figura 1.4 Architettura del IEEE 802.11 1.2.1.1 Il metodo di accesso DCF L accesso DCF consente ad una stazione che deve trasmettere un determinato messaggio di ottenere l accesso al canale evitando cosi delle dannose collisioni, infatti la stazione controlla il canale per verificare se un altra stazione sta trasmettendo, e se il mezzo viene trovato in Idle per un tempo maggiore di una soglia detta Distributed InterFrame Space (DIFS), questa continua con la trasmissione dei suoi dati (Figura 1.5). In particolare quello che viene spedito inizialmente è la lunghezza presunta della trasmissione, per cui ogni stazione memorizza questa informazione in una variabile locale NAV (Network Allocation Vector) che conterrà quindi il periodo di tempo per cui il canale rimarrà occupato.(figura 1.5 a).questo è molto utile poiché evita alla stazione di stare sempre in ascolto sul canale e quindi potrebbe risultare importante in termini di risparmio energetico. 10

Figura 1.5 (a) Trasmissione a buon fine (b) Collisione Poiché il protocollo CSMA/CA non supporta la capacità delle stazioni di accorgersi delle collisioni dovute alle proprie trasmissioni, il ricevente di un certo pacchetto attende al massimo un intervallo di tempo chiamato Short InterFrame Space (SIFS). Durante questo intervallo se il pacchetto viene ricevuto, inizia immediatamente la trasmissione di un frame ACK. Se l ACK non viene ricevuto si presume che il frame sia stato perso e si provvede quindi a rischedulare la trasmissione del pacchetto. Al fine di scoprire eventuali errori di trasmissione viene adottato un algoritmo CRC che va ad analizzare il pacchetto appena ricevuto. Se la stazione ricevente non ritrasmette l ACK poiché c è stato un errore di trasmissione oppure una collisione, il canale deve rimanere in uno stato di Idle per almeno un intervallo di tempo pari al EIFS (Extended InterFrame Space) prima che la stazione che ha trasmesso il pacchetto riattivi l algoritmo di backoff per rischedulare la trasmissione. Inoltre quando una stazione con un pacchetto pronto per la trasmissione trova il canale occupato ritarda lo start fino alla fine della trasmissione corrente e a questo punto inizializza un timer per rischedulare il suo tentativo. 1.2.1.2 Il metodo RTS/CTS La progettazione di reti WLAN basata su protocolli come il CSMA/CA è complicata dalla presenza dei terminali nascosti (Figura 1.6). Questo rende la rilevazione della portante un approccio inefficace al rilevamento delle collisioni, poiché una stazione ascoltando il canale può sentirlo libero, mentre un altra stazione sta trasmettendo, si verifica inevitabilmente una collisione che nessun rilevamento di portante può risolvere. Il fenomeno delle stazioni nascoste si può verificare sia nelle reti basate sulle infrastrutture sia nelle reti Ad-Hoc, anche se in queste ultime si presenta assai più di frequente poiché non c è alcun tipo di coordinazione tra le stazioni partecipanti alla rete. 11

Figura 1.6 Il problema delle stazioni nascoste Per ovviare a questo problema il meccanismo base di accesso al mezzo del IEEE 802.11 è stato esteso con un metodo di rilevazione virtuale della portante chiamato Request To Send / Clear To Send (RTS/CTS). Ora dopo che è stato guadagnato l accesso al canale e prima di iniziare la trasmissione di un pacchetto dati viene spedito un piccolo frame di controllo chiamato RTS a tutte le future stazioni che riceveranno i dati preannunciando l imminente trasmissione. A questo punto la stazione ricevente replica con un piccolo frame di controllo CTS per indicare la disponibilità a ricevere il pacchetto. Nel contenuto di questi frame è inserita anche la presunta lunghezza della trasmissione. Perciò, tutte le stazioni nel raggio di almeno una delle due tra trasmettitore e ricevitore, sa per quanto tempo il canale rimarrà in uso per quella trasmissione (Figura 1.7). Figura 1.7 Il funzionamento del meccanismo RTS/CTS 1.2.2 La Tecnologia Bluetooth La tecnologia Bluetooth è uno standard de facto per quanto riguarda il basso costo e il corto raggio dei collegamenti radio tra dispositivi 12

portatili, laptops e cellulari. Essa opera nella banda dei 2,4 Ghz e una sua unità, integrata in un microchip permette la trasmissione in reti wireless Ad-Hoc di voce e dati in ambienti stazionari e mobili. Per questo motivo si può immaginare come ben presto ogni dispositivo elettronico sarà dotato di un chip che permetta l utilizzo di queste funzionalità. 1.2.2.1 Architettura di una rete Bluetooth In una rete Bluetooth, una stazione ha il ruolo di master e tutte le altre stazioni sono slave, e proprio il master decide quale degli slave accederà al canale. L unità fondamentale di una rete Bluetooth è definita Piconet, e ne fanno parte quelle stazioni che condividono lo stesso canale, cioè sono sincronizzate dallo stesso master. Una Piconet contiene un master e fino a sette slave contemporaneamente e ha una bit rate di 1Mb/sec. Nella figura 1.8 possiamo capire meglio questi concetti costruendo un esempio in cui abbiamo due Piconet parzialmente sovrapposte dove indichiamo con S le stazioni slave,con M le stazioni master e con P le stazioni che sono sincronizzate con un master ma che non partecipano ad alcun scambio di dati. Piconet indipendenti che si sovrappongono parzialmente possono formare una Scatternet, la quale si viene a creare quando una o più stazioni fanno parte contemporaneamente di due o più Piconet. Il protocollo Bluetooth contiene a sua volta numerosi protocolli, di cui sfrutta le funzionalità come il Bluetooth radio, Baseband, LMP (Link Manager Protocol), L2CAP (Logical Link Control and Adaptation Protocol ) e SDP (Service Discovery Protocol). Il protocollo Bluetooth radio fornisce il collegamento fisico fra i dispositivi Bluetooth, mentre lo strato Baseband fornisce un servizio di trasporto attraverso i link fisici. I servizi L2CAP sono invece usati solamente per la trasmissione dei dati. Figura 1.8 Due Piconet parzialmente sovrapposte 13

Come già detto il protocollo Bluetooth opera nella banda dei 2,4 Ghz dove sono definiti ben 79 canali di frequenza radio spaziati l uno dall altro di 1Mhz.Inoltre lo strato radio utilizza una tecnica di trasmissione detta FHSS (Frequency Hopping Spread Spectrum).La sequenza di salto è una sequenza pseudocasuale di lunghezza pari a 79 hop ed è unica per ogni Piconet. 1.2.2.2 Trasmissione Dati Bluetooth Tra dispositivi Bluetooth possono essere stabiliti due tipi di collegamenti: Syncronous Connection Oriented (SCO) Asyncronous Connection Less (ACL) Il primo tipo di collegamento è di tipo punto-punto tra un master e uno specifico slave ed è usato per la trasmissione di dati sensibili al ritardo e cioè principalmente audio. La bit-rate di un link di tipo SCO è 64 Kb/sec ed è impostata per riservare due slot di tempo ravvicinati per la trasmissione master-slave e per l immediata risposta slave-master. Figura 1.9 Esempio di Trasmissione in una Piconet Il secondo tipo di collegamento invece è una connessione tra il master e tutti gli slave appartenenti alla Piconet.Un canale ACL supporta la trasmissione punto-multipunto tra il master e gli slave. Come già precedentemente definito il canale è gestito secondo uno schema a polling, nel quale il master decide qual è il solo slave ad accedere al canale mandando un semplice pacchetto. Per i link di tipo SCO il master effettua un continuo polling sul rispettivo slave, mentre per i link ACL il polling è asincrono. Nella figura 1.9 possiamo vedere un tipico pattern di trasmissione in una Piconet dove sono presenti un master e due slave. Il primo slave possiede collegamenti verso il master sia di tipo SCO sia di tipo ACL mentre il secondo slave possiede solamente un link di tipo ACL verso il master. In questo esempio sui link di tipo SCO viene periodicamente fatto un polling da parte del master ogni sei slot di tempo, mentre sui link di tipo ACL viene fatto un polling asincrono. Nella figura 1.9 possiamo vedere come il master spedisca un pacchetto che occupa più slot, al secondo slave, che replica con un pacchetto che occupa un solo slot di tempo poiché gli slot successivi sono occupati dai link di tipo SCO. 14

1.2.3 Modelli per le reti Wireless Le reti Wireless mobili si possono suddividere in 3 modelli principali : Reti cellulari Reti cellulari virtuali (VCN) Reti Ad-Hoc Ovviamente ogni modello ha i suoi vantaggi. Nel modello relativo alle reti cellulari per esempio, certamente il grande vantaggio è la semplicità del processo di gestione della mobilità, mentre nelle reti Ad-Hoc è ottimale il bilanciamento del traffico di rete. [Bal] Nelle sezioni successive forniremo una rapida descrizione di questi tre modelli. 1.2.3.1 Reti Cellulari Un modello a rete cellulare permette di coprire una certa area che a sua volta può essere divisa in ulteriori celle più piccole ed anche sovrapposte. All interno di ogni cella possono essere distinte due tipologie di entità; una stazione base fissa (BS) e degli host mobili (MH). Ogni stazione base può comunicare con le altre attraverso una rete cablata. Gli host mobili invece si possono muovere da una cella all altra e possono comunicare con gli altri nodi solamente attraverso la stazione base all interno della cella in cui si trovano, stabilendo con essa un link di tipo wireless che ne permetta lo scambio di informazioni. Se l host mobile destinato a ricevere il messaggio si trova all interno della stessa cella, sarà la stessa stazione base ad inoltrare il messaggio lungo un altro link wireless, mentre se si trova all interno di una cella diversa, dovrà spedire il messaggio attraverso la rete cablata che la collega alla stazione base della cella dove si trova l host destinatario. 1.2.3.2 Reti Cellulari Virtuali Un modello VCN (Virtual Cellular Network) richiama il funzionamento del modello a rete cellulare, poiché anche in questo caso la rete è suddivisa in celle al cui interno sono presenti stazione base ed host mobili. La differenza molto importante sta nel fatto che in questo modello anche la stazione base è mobile e quindi anche i link fra le diverse stazioni di ogni cella sono di tipo wireless. Queste continuano ad ogni modo a coordinare la comunicazione fra gli host mobili che si trovano ad una certa distanza. Comunque le stazioni base non sono fisse ma variano in base ad algoritmi distribuiti implementati per questo modello. 1.2.3.3 Reti Ad-Hoc 15

Nelle reti Ad-Hoc non ci sono distinzioni nella tipologia dei nodi. Infatti sono tutti mobili e si coordinano tra loro al fine di prendere delle decisioni. Tutti gli host mobili sono collegati attraverso link di tipo wireless e sono liberi di spaziare in qualunque punto all interno della rete. A causa della mobilità di ciascun dispositivo, il subset dei nodi che compongono il vicinato di ciascun nodo varia col tempo, cosi come la topologia della rete. Figura 1.10 Struttura base di una rete Ad-Hoc Cap. 2 16

Le Mobile Ad Hoc Networks (MANET) 2.1 Introduzione alle MANET Una rete mobile Ad-Hoc (MANET) rappresenta un sistema di nodi mobili connessi da link wireless capaci di auto costituire liberamente e dinamicamente architetture di rete arbitrarie e temporanee consentendo ai dispositivi posseduti dagli utenti di interagire tra loro senza alcuna infrastruttura di rete preesistente. Le Manet sono caratterizzate da topologie di rete dinamiche, infatti a causa dell impossibilità di prevedere gli spostamenti dei nodi e quindi dei rapidi cambiamenti degli scenari di rete, le informazioni possedute dai nodi e gli stati dei link che li collegano diventano velocemente obsoleti. Di conseguenza è necessario un continuo scambio di dati tra i nodi della rete al fine di mantenere aggiornate le informazioni di rete. Le comunicazioni che avvengono tra i vari dispositivi sono multihop; di conseguenza ogni nodo può trovarsi nella condizione di trasmettere un pacchetto, riceverlo, oppure inoltrarlo verso un'altra destinazione. In questo modo i messaggi spediti da un nodo trasmettitore possono raggiungere una destinazione grazie al passaggio attraverso numerosi nodi (hop) che ne hanno semplicemente fatto il forward. Inoltre i link che collegano i vari dispositivi possono essere asimmetrici, cioè le comunicazioni tra due nodi qualsiasi di una rete possono differire a seconda di chi è il nodo che trasmette il messaggio; per esempio se un nodo n è nel range di trasmissione di un altro nodo m, l inverso può non essere vero. Questo deriva dal fatto che essendo i dispositivi comunicanti eterogenei, il loro raggio di trasmissione può essere diverso e quindi una stazione che ha raggio maggiore può riuscire a trasmettere ad una seconda stazione, mentre se quest ultima ha un raggio di trasmissione minore vi è la possibilità che il secondo dispositivo non riceva alcun pacchetto spedito dall altro. Le trasmissioni fra le varie stazioni inoltre sono vincolate dall energia dei nodi, infatti i nodi mobili nelle reti ad-hoc fanno pieno affidamento sul tempo di vita della loro batteria e quindi è molto importante lo sviluppo di criteri per il risparmio e l ottimizzazione dell energia consumata nelle operazioni di trasmissione. Al contrario delle reti cellulari dove vi erano le stazioni base che coordinavano le trasmissioni tra i vari dispositivi, nelle reti Ad- Hoc le operazioni sono decentralizzate, cioè vista l assenza di infrastrutture di rete preesistenti non vi è la necessita di controller centralizzati. Inoltre rispetto alle reti cablate, la banda a disposizione dei dispositivi wireless è limitata, cioè i link wireless hanno una minor capacità, riuscendo quindi a trasportare una quantita di dati minore per unità di tempo, e il throughput delle comunicazioni è sempre minore 17

della frequenza radio massima di trasmissione, a causa dell accesso multiplo o di interferenze nella trasmissione. Queste caratteristiche permettono di creare una serie di indici per la progettazione di nuovi protocolli di comunicazione che estendono quelli adottati per lo sviluppo di protocolli per le reti cablate. 2.2 Architettura delle reti MANET Il modello più semplice di architettura per una rete Ad-Hoc è senz altro il modello piatto (flat). [Ami03] Questa architettura è caratterizzata dal fatto che tutti i nodi della rete si trovano allo stesso livello di comunicazione e non ci sono legami gerarchici fra le varie stazioni. Inoltre i nodi hanno le stesse responsabilità e tutti partecipano nell instradamento dei pacchetti. Il routing in questo tipo di architettura è ottimale poiché la rete tende a bilanciare maggiormente il traffico attraverso più nodi. Quello che manca invece è un processo di gestione della mobilità, che però andrebbe ad aumentare l overhead all interno della rete dovuto alla propagazione dei messaggi di controllo attraverso la rete stessa. Figura 2.1 Modello flat di una rete Ad-Hoc Un modello di architettura più complesso è quello gerarchico. Qui i nodi della rete non operano più tutti allo stesso livello ed inoltre sono suddivisi in vari gruppi chiamati cluster. All interno di ogni cluster si possono individuare tre entità gerarchiche; il nodo semplice, il cluster head cioè il leader del gruppo, e il nodo gateway che si occupa di far comunicare cluster differenti. Il leader si occupa di prendere le decisioni di controllo per conto degli altri nodi e gestisce il routing del traffico tra due nodi dello stesso cluster. Inoltre il cluster head di ogni singolo gruppo cambia con il tempo, in risposta al movimento dei nodi all interno della rete. L obiettivo che ha spinto a suddividere la rete in cluster è quello di ottimizzare l uso delle risorse al fine di riuscire a ridurre i conflitti sul canale e formare dei percorsi di instradamento che permettano di ridurre le dimensioni della rete. Nella Figura 2.2 possiamo vedere un esempio di clustering dove i gateway vengono identificati con la lettera G, i leader dei singoli gruppi con la lettera C, e i nodi semplici con la lettera N. 18

Figura 2.2 Architettura a cluster di una rete Ad-Hoc Il principale vantaggio dell architettura gerarchica è senz altro la semplicità del processo di gestione della mobilità. Infatti al fine di limitare l impatto che un aggiornamento delle informazioni della rete dei singoli nodi può avere, si è scelto di mantenere un informazione completa dei percorsi di routing relativi solamente ai singoli cluster. La comunicazione tra cluster diversi avviene mantenendo all interno dei leader una tabella contenente le informazioni di tutti i nodi facenti parte del cluster. In questo modo per determinare dove si trova un determinato nodo vengono fatte delle query a tutti i leader dei gruppi che devono rispedire la risposta alla sorgente della query stessa. Naturalmente questo tipo di architettura deve prevedere dei protocolli particolari per poter scegliere di volta in volta i cluster head e i gateway di ciascun cluster L inconveniente in un modello di questo tipo è la possibile riduzione del throughput a causa del fastidioso problema del collo di bottiglia dovuto al passaggio obbligato da parte di tutti i nodi del cluster, ed una minor robustezza del sistema dovuta alla possibilità di guasto dei nodi chiave come cluster head o gateway. 19

Figura 2.3 Architettura Gerarchica di una rete Ad-Hoc 2.3 Protocolli Di Routing Unicast nelle reti Ad-Hoc Una prima tipologia di protocolli di routing unicast è quella derivante dall uso di tecniche particolari mirate ad importare il modello dei protocolli di routing convenzionali usati nelle reti cablate, per le reti Ad- Hoc. [Moh03] Questi protocolli vengono denominati proattivi. L uso di questo termine fa riferimento all abilità del protocollo di calcolare tutti i possibili percorsi di rete indipendentemente dal loro effettivo utilizzo. Questo è molto importante poiché permette di evitare ritardi nella trasmissione dovuti ai calcoli dei percorsi da seguire per raggiungere la destinazione desiderata. Un approccio differente è stato invece seguito nello sviluppo di un altra tipologia di protocolli unicast, cioè quello di calcolare un percorso di rete solamente quando è strettamente necessario per la trasmissione dei dati. Infatti in questo caso se i nodi della rete non generano alcun traffico di dati, l attività di routing è totalmente assente. Questo tipo di protocolli sono denominati reattivi, e sono caratterizzati dall eliminazione delle tabelle di routing convenzionali che ogni nodo memorizzava nella sua cache e di conseguenza anche della necessità dei loro aggiornamenti dovuti a cambiamenti nella topologia della rete. L attività di routing può essere scissa in tre fasi principali, cioè il path discovery, il path maintenance e il path deletion. La prima fase di discovery è quella che si occupa del reperimento delle informazioni per poter poi instradare i pacchetti verso la destinazione desiderata, ed è caratterizzata da un meccanismo di query-reply attraverso l utilizzo del flooding. Al termine di questa fase i nodi della rete si trovano in un nuovo stato di routing nel quale memorizzano tutti i percorsi acquisiti durante la fase di discovery. Queste informazioni vengono poi conservate attraverso la procedura di mantenimento (path maintenance) per un certo periodo di tempo, dopodiché vengono cancellate attraverso la procedura di path deletion. 20

2.3.1 Protocolli di Routing Proattivi Uno dei primi protocolli proattivi ad essere stato sviluppato è il Destination Sequenced Distance Vector (DSDV). Qui ad ogni elemento della tabella di routing viene aggiunto un numero di sequenza che indica se il percorso è obsoleto o aggiornato; la presenza di un numero dispari sta ad indicare che la destinazione è irraggiungibile. Gli aggiornamenti dei percorsi vengono spediti secondo un intervallo di tempo prefissato, oppure ogni volta che c è un cambiamento nella topologia di rete aggiornando il numero di sequenza. Per ogni aggiornamento ricevuto da un nodo relativo al percorso verso una certa destinazione, il corrispondente elemento all interno della tabella di routing viene aggiornato solamente se il percorso ricevuto ha un numero di sequenza più recente, oppure se a parità di numero di sequenza viene individuata una metrica migliore. Un elemento della tabella di routing viene cancellato nel caso in cui il nodo non riceve più aggiornamenti relativi a quel nodo per un certo intervallo di tempo. Un altro protocollo è il Optimized Link State Routing (OLSR). L innovazione introdotta da questo protocollo è quella di introdurre dei nodi detti MPR (MultiPoint Relay) per effettuare un flooding verso tutta la rete in modo molto efficiente in modo da ridurre i messaggi duplicati all interno di una stessa regione. Ogni nodo i seleziona, indipendentemente dagli altri nodi, un sottoinsieme minimo di nodi MPR, MPR(i), dall insieme dei suoi vicini distanti 1 hop. Inoltre ogni nodo che si trova ad una distanza di due hop dal nodo i deve avere un link simmetrico verso i nodi MPR compresi in MPR(i). In questo modo come è possibile vedere nella Figura 2.2 come il flooding sia realizzato efficientemente, infatti quando un qualsiasi nodo i vuole effettuare un flooding verso la rete, prima spedisce il messaggio solamente ai nodi in MPR(i) che poi provvederà ad inoltrare il messaggio agli altri MPR fino al raggiungimento di tutti i nodi. Per poter effettuare tutto ciò naturalmente ciascun nodo deve memorizzare i dati relativi ai propri vicini, le informazioni relative alla topologia di rete e la tabella di routing. 21

Figura 2.2 Un esempio di flooding usando nodi MPR Un ulteriore protocollo è il Fisheye State Protocol (FSR), molto simile ai protocolli Link State in quanto ogni nodo memorizza una tabella contenente la topologia della rete,oltre ad una tabella di routing e alla lista dei suoi vicini. Al contrario del Link State però dove viene fatto il flooding degli aggiornamenti dei percorsi a tutta la rete, nel protocollo FSR i pacchetti vengono scambiati solamente con i vicini, mentre i numeri di sequenza vengono usati, come nel protocollo DSDV, per indicare quanto sono recenti le informazioni. Un messaggio di aggiornamento dei percorsi di rete mantiene al suo interno sia l indirizzo della destinazione sia la lista dei vicini. Inoltre nel protocollo FSR viene introdotto il concetto di scopo di un certo nodo i, definito come il numero di nodi che possono essere raggiunti mantenendosi ad una distanza massima di h hops dal nodo considerato (es. Figura 2.3). I percorsi di rete vengono quindi aggiornati con frequenze maggiori per quei nodi il cui scopo è più piccolo, mentre vengono aggiornati con frequenze minori quando lo scopo è più grande. 22

Figura 2.3 Un esempio di scopo nel protocollo FSR 2.3.2 Protocolli Di Routing Reattivi Al contrario dei protocolli di tipo Proactive, in quelli di tipo Reactive il recupero dei percorsi di rete è effettuato su richiesta del nodo che deve trasmettere. Questi protocolli calcolano i percorsi di rete prima della trasmissione dei dati, infatti se non viene generato alcun traffico di dati da parte dei nodi, l attività di routing è completamente assente. Uno di questi protocolli è il Dynamic Source Routing (DSR), il quale è composto da due meccanismi principali: il Route Discovery e il Route Maintenance. Il primo adotta due pacchetti di controllo denominati Route Request (RREQ) e Route Replay (RREP), che vengono generati da una sorgente S che deve spedire un messaggio ad un nodo destinazione D e non ha il percorso in memoria. Viene fatto un flooding a tutta la rete del pacchetto RREQ, il quale contiene al suo interno l indirizzo della sorgente,l indirizzo del nodo destinazione, un identificativo della richiesta e un record per memorizzare il percorso. Quando un nodo intermedio riceve questo pacchetto esso ha 3 diverse alternative. Nel caso abbia in memoria il percorso per raggiungere la destinazione può spedire un pacchetto RREP al nodo sorgente aggiornando il record relativo al percorso da seguire. Se ha già ricevuto il pacchetto precedentemente può semplicemente scartarlo, altrimenti può aggiornare il record contente il percorso con il proprio id e poi effettuare il broadcast del pacchetto ai propri vicini (Figura 2.4). Quando finalmente il nodo destinazione riceve il messaggio RREQ può ritrasmettere un pacchetto RREP alla sorgente attraverso il percorso 23

ottenuto invertendo quello contenuto nel record del pacchetto ricevuto ( Figura 2.5). Figura 2.4 Un esempio di propagazione del pacchetto RREQ Nel caso in cui un nodo intermedio invece rileva che un link nel percorso verso la destinazione è rotto, manda un messaggio di errore alla sorgente del messaggio che poi provvederà a rilanciare una nuova fase di Route Discovery. Figura 2.5 Propagazione del pacchetto RREP Un altro protocollo di tipo reactive è il Ad Hoc On Demand Distance Vector (AODV) che usa i numeri di sequenza come nel protocollo DSDV per numerare i percorsi di rete mentre eredita dal protocollo DSR il meccanismo del Route Discovery. L invio dei pacchetti RREQ (Figura 2.6) e RREP (Figura 2.7) è identico al protocollo DSR. La differenza 24

sostanziale è che il percorso che viene generato man mano verso la destinazione viene memorizzato all interno dei singolo nodi e non all interno del pacchetto. Figura 2.6 Invio del pacchetto RREQ nel protocollo AODV Figura 2.7 Invio del pacchetto RREP nel protocollo AODV Il mantenimento dei percorsi di rete è reso possibile grazie all invio periodico di messaggi HELLO verso tutti i nodi. Un altro protocollo è il Adaptive Distance Vector (ADV), il quale appartiene alla categoria del Distance Vector ma con alcune caratteristiche dei protocolli con routing on-demand. In questo protocollo vengono mantenuti in memoria solamente i percorsi verso nodi ricevitori 25

attivi. Un nodo viene etichettato come attivo se esso è la destinazione di una qualsiasi delle connessioni attualmente aperte. Infatti prima che una trasmissione possa avere luogo il nodo sorgente fa un flooding di un pacchetto di controllo init-connection evidenziando la necessità di stabilire una connessione con il nodo destinazione. Allo stesso modo quando una connessione deve essere chiusa il nodo sorgente deve mandare un pacchetto di controllo end-connection. Questo protocollo inoltre riduce l overhead dovuto al routing variando la frequenza e la dimensione degli aggiornamenti dei percorsi di rete in risposta al traffico elevato e alla mobilità dei nodi. Il protocollo Temporally Ordered Routing Algorithm (TORA) è invece progettato per reagire efficientemente ai cambiamenti topologici. Il principale obiettivo non è quello di trovare dei percorsi ottimali, ma percorsi stabili e facilmente riparabili. Quando un nodo spedisce un pacchetto il protocollo costruisce un grafo sulla base delle direzioni logiche assegnate ai singoli nodi. Se per esempio (i, j) rappresenta un link del grafo, i viene definito come nodo superiore mentre j come nodo inferiore. Inoltre il grafo ha l importante proprietà che c è un solo nodo di tipo sink rappresentato dal nodo destinazione, mentre gli altri nodi hanno almeno un link uscente. Il funzionamento del protocollo può essere diviso in tre fasi principali: route discovery, route maintenance, e route deletion. Nella prima fase vengono scambiati i messaggi RREQ e RREP e viene assegnata ai singoli nodi la propria direzione logica. Alla fine di questa fase viene costrutito il grafo (DAG). Nella seconda fase relativa al mantenimento dei percorsi, eventuali cambiamenti nella topologia di rete possono non generare alcuna reazione. Infatti se per esempio il link superiore di un nodo si rompe, ma il link inferiore è ancora disponibile il nodo destinazione verrà raggiunto attraverso il percorso alternativo senza bisogno di alcuna riparazione. Al contrario se il nodo si accorge che non ha un link inferiore allora inizia la terza fase in cui vengono riassegnate le direzioni logiche a tutti i nodi della rete e il grafo viene ricostruito sulla base della nuova topologia. Il protocollo TORA inoltre è molto abile nell individuare eventuali partizioni di rete e in questo caso viene effettuato il flooding di un pacchetto clear, che resetta tutti i percorsi di routing dei vari nodi. 26

Cap. 3 Routing Multicast in ambienti MANET Il routing multicast permette ai messaggi spediti da una o più sorgenti di essere consegnati a multiple destinazioni. In particolare questa tecnica consente di trasmettere un singolo pacchetto ad un gruppo di nodi. Un gruppo multicast è un insieme di host che si sono registrati a quel particolare gruppo; questo significa che se un host vuole ricevere un messaggio di tipo multicast, esso si deve prima di tutto registrare ad un gruppo e a questo punto tutti i membri di quel gruppo riceveranno il messaggio. Tipicamente l appartenenza ad un gruppo multicast è dinamica; un host può lasciare o entrare in un gruppo in qualsiasi momento. Non c è nessuna restrizione sulla locazione o sul numero di host che devono appartenere ad un certo gruppo ed inoltre un host può essere contemporaneamente membro di più gruppi. Al contrario dei protocolli di routing per le reti fisse, quelli per le reti Ad-Hoc devono avere un diverso range di caratteristiche, quali supporto della mobilità e basso consumo di risorse quali banda, memoria, energia. Infatti la mobilità degli host può apportare cambiamenti alla topologia della rete aumentando la volatilità dell informazione nella rete mentre la limitata energia della batteria porta gli utenti a disconnettersi molto frequentemente al fine di limitare il consumo di energia. Nelle reti Ad- Hoc ci sono tre tipi di approcci nello sviluppo di algoritmi di multicast : Un approccio Naive Un approccio Proactive Un approccio in cui i percorsi tra i nodi sono creati su richiesta. Nel caso Naive infatti ogni nodo in trasmissione spedisce il messaggio a tutti i propri vicini che a loro volta lo ritrasmettono a tutti i loro vicini e cosi via, effettuando il cosiddetto flooding. Questo può portare ad un aumento esponenziale del traffico di rete a meno di introdurre dei meccanismi per il controllo dei duplicati al fine di evitare inutili ritrasmissioni. Nell approccio proattivo vengono calcolati tutti i possibili percorsi per tutte le destinazioni e queste informazioni vengono poi memorizzate nelle tabelle di routing possedute da ogni nodo. Per tenere aggiornate queste tabelle le informazioni sono periodicamente distribuite attraverso la rete. Nel terzo caso l idea di fondo è basata su un meccanismo del tipo queryresponse.nella fase di query il nodo esplora l ambiente di rete. Una volta che la query raggiunge la destinazione nella fase di response si stabilisce il percorso tra questa e la sorgente. 27

3.1 ODRMP ( On Demand Multicast Routing Protocol ) Nel protocollo ODRMP, l appartenenza o meno ai gruppi e il calcolo dei percorsi di multicast sono stabiliti ed aggiornati su richiesta dalla sorgente del messaggio. Come esempio consideriamo quello di Figura 2.1(a) in cui i nodi vengono rappresentati col colore nero se fanno parte di un gruppo, col colore grigio se sono solo nodi che inoltrano il pacchetto (Forwarding Group), e col colore bianco i nodi che non appartengono a nessun gruppo. In questo esempio il nodo S spedisce un pacchetto ad un gruppo multicast. Non avendo però nessuna conoscenza sugli eventuali percorsi da intraprendere per raggiungere tali nodi farà un flooding del pacchetto di controllo JOIN_DATA attraverso la rete. Quando un nodo intermedio riceve un pacchetto di tipo JOIN_DATA esso memorizza l id della sorgente e il numero di sequenza del messaggio al fine di evitare eventuali duplicati. Inoltre ogni membro di un gruppo multicast nel ricevere questo dato fa un broadcast di una JOIN_TABLE che contiene la sorgente del pacchetto e il prossimo nodo N nel percorso tra il membro del gruppo e il nodo S. Quando un nodo riceve una JOIN_TABLE, questo controlla se l id del nodo successivo memorizzato nella tabella corrisponde al suo. In caso affermativo questo significa che il nodo si trova nel percorso della sorgente S e che quindi fa parte del Forwarding Group ; il nodo quindi setta il FG_FLAG e fa il broadcast della propria JOIN_TABLE a quei nodi che fanno match con le entry della tabella. Il campo Id relativo al nodo successivo di questa tabella viene ottenuti estraendo l informazione dalla routing table del nodo stesso. 28

Figura 2.1 ODMRP : (a) Propagazione di un pacchetto JOIN_DATA. (b) Propagazione di un pacchetto JOIN_TABLE. (c) Tutte le tabelle complete La figura 2.1(b) mostra come i membri del Forwarding Group propagano la JOIN_TABLE fino a che questa non raggiunge la sorgente S. Inoltre un nodo dopo aver ricevuto questi dati costruisce la sua tabella di multicast per poter ritrasmettere futuri pacchetti di tipo multicast. Per esempio quando il nodo B riceve una JOIN_TABLE dal nodo R2 aggiungerà il nodo R2 come suo prossimo nodo. Nella figura 2.1(c) viene mostrata la tabella di multicast finale di ogni singolo nodo. Nel protocollo ODMRP non sono necessari pacchetti di controllo per unirsi ad un gruppo o lasciarlo; semplicemente basta non spedire più messaggi di tipo JOIN_DATA. Inoltre un nodo appartenente al Forwarding Group cessa la sua attività se non riceve alcuna JOIN_TABLE entro un certo intervallo di Time-out. 3.2 Multicast AODV (MAODV) Nel protocollo MAODV (Multicast Ad-Hoc On Demand Vector) quando un nodo mobile desidera unirsi ad un gruppo di multicast oppure spedirvi un messaggio, ma non ha un percorso per raggiungerlo esso deve mandare un messaggio RREQ (route request) di tipo join. Per rispondere 29

a questo tipo di dato un nodo deve appartenere obbligatoriamente al gruppo multicast desiderato, mentre se non è di tipo join allora qualsiasi nodo con un percorso abbastanza recente verso il gruppo di multicast può rispondere. Se un nodo intermedio invece riceve un RREQ di tipo join destinato ad un gruppo di cui non è membro oppure riceve un RREQ ed esso non ha alcun percorso verso quel gruppo, fa il broadcast del pacchetto ricevuto a tutti i suoi vicini. Nella Figura 2.2 possiamo vedere un possibile esempio della propagazione di un pacchetto RREQ all interno di una rete spedito dal nodo S ad un gruppo di multicast. Inoltre, mentre i messaggi RREQ viaggiano all interno della rete i nodi settano le loro tabelle dei percorsi al fine di ricordarsi il percorso inverso nell eventualità di rispedire un messaggio alla sorgente. Per i messaggi RREQ di tipo join invece viene aggiunta un ulteriore entry nella tabella di routing di ciascun nodo. Figura 2.2 Un esempio del protocollo MAODV. (a) La propagazione dei pacchetti RREQ. (b) La propagazione dei pacchetti RREP. (c) L albero multicast finale Se un nodo riceve un RREQ di tipo join destinato ad un gruppo multicast esso può rispondere a condizione che esso sia un membro del gruppo in questione e il suo numero di sequenza per il gruppo multicast sia maggiore o uguale a quello contenuto all interno del messaggio RREQ. Il nodo che risponde inoltre aggiorna le proprie tabelle dei percorsi aggiungendovi l informazione relativa al prossimo nodo sul percorso, e poi manda un messaggio unicast RREP (rappresentato nella Figura 2.2(b) da frecce tratteggiate) di risposta ad S. Tutti i nodi lungo il percorso verso S che ricevono il pacchetto RREP aggiornano le loro tabelle di route e route multicast con il nodo dal quale hanno ricevuto il pacchetto. Quando il nodo S spedisce un pacchetto di tipo RREQ per un gruppo multicast, questo spesso riceve più di una risposta. Il nodo S però conserva solamente per un certo tempo il percorso con il più grande numero di sequenza e il minor numero di hop dalla sorgente alla 30

destinazione e scarta tutti gli altri. Al termine di questo periodo di tempo abilità il successivo hop corrispondente al percorso scelto nella propria tabella di multicast e manda un messaggio di attivazione al nodo selezionato. Il nodo che riceve questo messaggio di attivazione inserisce S nella sua tabella dei percorsi multicast; inoltre se questo appartiene all albero non propaga oltre il pacchetto ricevuto. Se invece non è un membro dell albero questo avrà ricevuto più risposte da parte dei suoi vicini; a questo punto il nodo conserva il migliore hop lungo il percorso verso il gruppo multicast e spedisce un messaggio di attivazione a quello selezionato. Questo procedimento si ripete fino a che non si raggiunge un membro dell albero. La figura 2.2 (c) mostra l albero finale. Il primo nodo di un gruppo multicast diventa il leader di quel gruppo, cioè è responsabile del mantenimento del numero di sequenza del gruppo e del broadcast di questo numero a tutti i membri del gruppo attraverso un messaggio hello per l albero considerato. Questo messaggio contiene delle informazioni che indicano l indirizzo IP per quel gruppo ed i numeri di sequenza, i quali vengono incrementati ad ogni invio di questo messaggio, di tutti i gruppi del quale il nodo è leader. Queste informazioni vengono sfruttate dai nodi per aggiornare le informazioni contenute all interno delle loro tabelle dei percorsi. 3.3 FGMP ( Forwarding Group Multicast Protocol ) Questo protocollo al contrario di altri della stessa tipologia non tiene traccia dei link presenti tra i vari nodi, ma dei gruppi di nodi che partecipano all invio di pacchetti di tipo multicast. Ad ogni gruppo multicast G viene associato quindi un corrispondente gruppo di forwarding FG. Ogni nodo nel gruppo FG è quindi in grado di effettuare il broadcast dei pacchetti del gruppo G, cioè quando un nodo in questo gruppo, riceve un pacchetto di tipo multicast esso farà un broadcast di questo pacchetto ai suoi vicini se questo non è un duplicato di un pacchetto già spedito. A questo punto solo i vicini che appartengono al gruppo FG potranno riconoscere se questo non è un duplicato e quindi farne il broadcast a sua volta ai propri vicini. Nella Figura 2.3 possiamo vedere un esempio di protocollo FGMP con due nodi trasmettitori e due nodi ricevitori, e quattro nodi appartenenti al gruppo FG che hanno il compito di inoltrare i pacchetti ai propri vicini. Per ogni nodo del gruppo FG è necessario memorizzare solamente un flag ed un timer, riducendo di molto l overhead dovuto alle grandi informazioni da memorizzare degli altri protocolli, aumentando cosi la flessibilità e le performance del protocollo stesso. Quando questo flag 31