a Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Tesi di laurea Progetto e valutazione di algoritmi per la raccolta dati affidabile su reti di sensori senza cavo Anno Accademico 2005/2006 Relatore Ch.mo Prof. Stefano RUSSO Correlatore Ing. Marcello CINQUE Candidato Salvatore Falsino matr. 885/42 Ai miei genitori La difficoltà attira l ' uomo di carattere, perché affrontandola si realizza (Charles De Gaulle) INDICE INTRODUZIONE ........................................................................................ 1 1. RETI DI SENSORI SENZA CAVO....................................................... 3 1.1 LE WIRELESS SENSOR NETWORK .................................................................. 3 1.2 DIFFERENZA TRA RETI DI SENSORI E RETI AD HOC .................................. 5 1.3 ARCHITETTURA DELLA RETE......................................................................... 6 1.4 DESCRIZIONE DEI NODI SENSORI .................................................................. 8 1.4.1 Sensing Module .............................................................................................. 8 1.4.2 Unità di elaborazione..................................................................................... 9 1.4.3 Unità di comunicazione................................................................................ 10 1.4.4 Alimentazione ............................................................................................... 10 1.5 PARAMETRI DI PROGETTO ............................................................................ 11 1.5.1 Consumo energetico ..................................................................................... 12 1.5.2 Costo ............................................................................................................ 14 1.5.3 Connettività .................................................................................................. 14 1.5.4 Topologia della rete ..................................................................................... 15 1.5.5 Dimensioni e posizionamento dei nodi......................................................... 16 1.5.6 Mobilità ........................................................................................................ 16 1.5.7 Scalabilità..................................................................................................... 17 1.5.8 Sicurezza ...................................................................................................... 17 1.5.9 Affidabilità.................................................................................................... 18 1.6 PROTOCOLLI DI COMUNICAZIONE.............................................................. 18 1.6.1 Livello Fisico................................................................................................ 18 1.6.2 Livello data-link ........................................................................................... 19 1.6.3 Livello di rete ............................................................................................... 21 1.7 I SISTEMI OPERATIVI E LE RETI DI SENSORI.............................................. 25 1.7.1 Introduzione a TinyOS.................................................................................. 27 1.7.2 Introduzione a NesC..................................................................................... 31 1.8 LE PIATTAFORME HARDWARE .................................................................... 33 1.8.1 Sensori per Mica2 ........................................................................................ 36 1.9 APPLICAZIONI .................................................................................................. 38 2. AFFIDABILITÀ NELLE RETI DI SENSORI SENZA CAVO ........ 42 2.1 IL CONCETTO DI AFFIDABILITA’ ................................................................. 42 2.2 AFFIDABILITA’ IN RETI DI SENSORI SENZA CAVO .................................. 44 2.2.1 Il problema della copertura ............................................................................ 46 2.3 AFFIDABILITA’: STATO DELL’ARTE............................................................ 49 2.4 AMBIENTI DI SIMULAZIONE ......................................................................... 51 2.4.1 Il Simulatore Tossim........................................................................................ 55 2.5 OSSERVAZIONI................................................................................................. 57 I 3. ALGORITMI PER LA RACCOLTA DATI AFFIDABILE ............. 59 3.1 CONSIDERAZIONI GENERALI ED OBIETTIVI ............................................. 59 3.2 ALGORITMI DI DATA GATHERING............................................................... 60 3.3 INTERAZIONE TRA I NODI: IL PROTOCOLLO MULTIHOP........................ 62 3.4 CLUSTERING IN UNA WSN ............................................................................. 65 3.5 CLUSTERING: STATO DELL’ARTE................................................................ 68 3.6 APPROCCIO PROPOSTO PER IL CLUSTERING ............................................ 72 3.6.1 Procedura di elezione del leader.................................................................. 74 3.7 ALGORITMI DI TRASPORTO AFFIDABILE.................................................. 75 3.8 APPROCCIO PROPOSTO PER IL TRASPORTO AFFIDABILE DELLE MISURAZIONI ................................................................................................... 79 3.9 CLUSTERING E LEADER ELECTION ............................................................. 82 4. VALUTAZIONE COMPARATIVA DEGLI ALGORITMI ............. 85 4.1 OBIETTIVI .......................................................................................................... 85 4.2 DATA GATHERING BASE................................................................................ 86 4.3 DATA GATHERING AFFIDABILE................................................................... 91 4.4 DATA GATHERING CON CLUSTER ............................................................... 95 4.5 DATA GATHERING CON CLUSTERING E PROTOCOLLO AFFIDABILE 100 4.6 OVERLAY NETWORK .................................................................................... 103 CONCLUSIONI ................................................................................................................. 107 BIBLIOGRAFIA .................................................................................................................. 109 II INDICE DELLE FIGURE Figura 1.1: Architettura di una WSN ..................................................................................... 7 Figura 1.2: Componenti hardware di un nodo sensori............................................................ 8 Figura 1.3 : Modello a strati di TinyOS ............................................................................... 29 Figura 1.4: Rappresentazione di un componente TinyOS .................................................... 31 Figura 1.5: Mica2 ................................................................................................................. 33 Figura 1.6: Mica2DOT......................................................................................................... 34 Figura 1.7: Architettura del progetto Great Duck Island...................................................... 39 Figura 2.1: Architettura WSN per rilevazione incendio....................................................... 47 Figura 3.1: Scenario tipico di una rete di sensori wireless: i comandi sono inoltrati in modalità broadcast mentre le misurazioni recapitate al nodo sink tramite protocollo multihop ............................................................................................ 61 Figura 3.2: Configurazione di Multihop Router .................................................................. 63 Figura 3.3: Organizzazione in cluster della rete ................................................................... 66 Figura 3.4: Architettura protocollo RMST........................................................................... 77 Figura 3.5: Rete composta da otto dispositivi sensori .......................................................... 81 Figura 3.6: Rete organizzata in 3 cluster senza procedura di elezione di cluster-head......... 82 Figura 3.7: Organizzazione in cluster della rete con cluster-head........................................ 83 Figura 4.1: Architettura della rete in Tinyviz....................................................................... 87 Figura 4.2: Stralcio del file di configurazione della prima simulazione............................... 88 Figura 4.3: Evento metodo ReceiveMeasure attivato sul nodo sink alla ricezione della misurazione ........................................................................................................ 89 Figura 4.4: Andamento % della ricezione delle misurazioni al crescere del numero di nodi.......... .......................................................................................................... 90 Figura 4.5: Andamento % della ricezione delle misurazioni con utilizzo della plugin TinySan .............................................................................................................. 91 Figura 4.6: Stralcio procedura seguita dal nodo sink per assicurarsi la ricezione delle misurazioni da parte dei nodi sensori ................................................................ 92 Figura 4.7: Confronto percentuali copertura con uso protocollo affidabile e non affidabile ............................................................................................................ 93 Figura 4.8: Andamento della vita media dei singoli sensori nel caso di utilizzo di un protocollo di comunicazione affidabile confrontato con il caso di utilizzo di un protocollo di tipo best-effort...................................................................... 94 Figura 4.9: Confronto consumo energetico dei singoli nodi ................................................ 94 Figura 4.10: Rete organizzata in cluster............................................................................... 96 Figura 4.11: Procedura di invio di un messaggio Master ..................................................... 97 Figura 4.12: Procedura seguita dai nodi alla ricezione di un master_msg ........................... 98 Figura 4.13: Confronto copertura con uso protocoolo affidabile e non affidabile ............... 99 Figura 4.14: Guadagno energetico con rete organizzata in cluster....................................... 99 Figura 4.15: Analisi comparativa degli algoritmi............................................................... 101 Figura 4.16: Elezione eseguita ciclicamente o all’esaurimento energetico di un nodo ...... 102 Figura 4.17: Overlay Network ........................................................................................... 104 Figura 4.18: Impatto del modulo radio sulla vita di un sensore ......................................... 105 III INDICE DELLE TABELLE Tabella 1-1: Tabella 1-2: Tabella 1-3: Tabella 3-1: Tabella 4-1: Tabella 4-2: Tabella 4-3: Tabella 4-4: Alcune caratteristiche della piattaforma Mica2 ............................................. 35 Tabella comparativa delle prestazioni di mica2 e mica 2 dot ........................ 35 Schede disponibili per piattaforma MICA ..................................................... 37 Schema riassuntivo dei protocolli di trasporto affidabili................................ 79 Caratteristiche della simulazione n°1.............................................................. 87 Caratteristiche della simulazione n°2.............................................................. 91 Caratteristiche della simulazione n°3 con rete organizzata in cluster ............. 95 Caratteristiche della simulazione n°4 con rete organizzata in cluster e uso protocollo di recapito affidabile.................................................................... 100 IV Ringraziamenti Eccomi qua, alla fine di un percorso, al raggiungimento di un sogno tanto desiderato. Molte sono le persone a cui vorrei esprimere tutta la mia gratitudine. Un grazie particolare al professore Stefano Russo, non solo per avermi dato l’opportunità di far parte di un gruppo davvero fantastico, ma per i consigli dati, molto importanti per la mia crescita professionale. Grazie anche al professore Domenico Cotroneo, per la sua disponibilità e cortesia nel chiarire ogni mio dubbio; grazie Marcello, i tuoi ottimi consigli sono stati fondamentali per portare a termine il lavoro, grazie per tutto il tempo che mi hai dedicato e per il tuo aiuto nella stesura di questa tesi; grazie anche a te Lelio valido punto di confronto. Grazie mamma, grazie papà per tutto il vostro sostegno e incoraggiamento a dare sempre il massimo, per avermi dato la possibilità di proseguire i miei studi nella serenità più totale, grazie per tutto ciò che avete fatto e che ora non ricordo…vi voglio bene! Grazie Clemente, fratello e miglior amico, per i tuoi consigli nei momenti in cui avevo bisogno di supporto…ti sono riconoscente! Un pensiero particolare va a tutti i miei familiari e anche a coloro i quali non possono gioire con me in questo giorno. Un dolcissimo grazie va ad Antonietta, mi hai “sopportato” nei momenti in cui la tensione era alta e mi hai offerto un valido supporto morale: sei importante! Infine grazie a tutti i miei amici universitari e non (evito di fare l’elenco perché sicuramente dimenticherei qualcuno), ognuno dei quali è stato importante, a suo modo, nella mia vita. Salvatore V Introduzione Negli ultimi anni lo sviluppo delle tecnologie hardware ha reso possibile la realizzazione di dispositivi sempre più potenti e miniaturizzati. Questo progresso tecnologico, insieme a quello riguardante le comunicazioni senza fili, ha costituito la base per una nuova prospettiva tecnologica di successo: le reti di sensore senza filo (WSN). La chiave del successo delle WSN è da ricercare nella loro versatilità, nel basso costo dei nodi sensore e nelle loro alte doti di auto- riconfigurabilità. Queste peculiarità hanno proiettato le WSN in diversi scenari applicativi, alcuni dei quali con stringenti requisiti di affidabilità come le WSN per la telemedicina e per alcune applicazioni militari. Attualmente si sta indagando su come gestire in maniera più efficiente il consumo energetico dei nodi sensori in modo da aumentare l’autonomia della rete e in particolare come instradare in modo ottimo le comunicazioni dal sensore all’utilizzatore, come raccoglierle, memorizzare e rappresentare con la minima occupazione di memoria le informazioni raccolte. In particolare, la necessità di avere algoritmi di raccolta dati affidabili, energeticamente efficienti, risulta essere una esigenza molto diffusa in quanto è alla base per il monitoraggio e/o controllo di fenomeni fisici per un vasto arco temporale. Questo lavoro di tesi ha come obiettivo la progettazione e valutazione di una soluzione di compromesso (trade off) tra algoritmi energeticamente efficienti e specifici requisiti di affidabilità come la consegna di una quantità significativa di misurazioni e copertura dell’area da monitorare. 1 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Il lavoro si articola in quattro capitoli di cui nel seguito si fornisce una breve descrizione. Il capitolo 1 introduce brevemente alcuni concetti sulle Wireless Sensor Networks. Vengono fornite alcune importanti definizioni e aspetti salienti che le contraddistinguono. Si precede poi con la discussione dei parametri da considerare nella progettazione e delle possibili applicazioni di una WSN fornendo alcuni concetti di base per la comprensione del presente lavoro di tesi. Il capitolo 2 fornisce un’introduzione al concetto di affidabilità nell’ambito delle reti di sensori senza cavo proponendo un’analisi di alcuni lavori presenti in letteratura. Vengono inoltre presentati alcuni dei più importanti ambienti di simulazione per WSN, soffermandosi sulle principali caratteristiche di questi ultimi. Il capitolo 3 propone una dettagliata analisi sulle strategie di clustering e sui protocolli per la consegna affidabile di informazioni al nodo sink. Viene inoltre proposto un approccio basato sull’utilizzo combinato di strategie di clustering, procedure di leader election e protocolli affidabili per la raccolta dati al fine di ottenere una soluzione che sia un buon compromesso tra un consumo energetico dei nodi sensori e ben precisi requisiti di affidabilità come la copertura dell’area da monitorare e la consegna di una quantità significativa di misurazioni. In conclusione il capitolo 4 fornisce una analisi comparativa degli algoritmi proposti nel precedente capitolo al fine di valutarne gli effettivi benefici in termini di aumento della autonomia dei nodi sensori. Viene inoltre proposta una interessante via di sviluppo che, attraverso la ristrutturazione del protocollo di routing e l’utilizzo di una piattaforma hardware che consenta lo spegnimento selettivo (da codice) dei moduli radio, permette di ottenere significativi vantaggi nell’autonomia della rete. 2 Capitolo 1 Reti di sensori senza cavo 1.1 LE WIRELESS SENSOR NETWORK I rapidi progressi nella progettazione di sistemi microelettromeccanici (MEMS) e a radio frequenze (RF) hanno favorito un repentino sviluppo di “nodi sensori”, termine generico con cui si indica un insieme di dispositivi estremamente versatili e dalle dimensioni generalmente ridotte, dotati della capacità di comunicare a breve distanza. L’interconnessione di tali “nodi sensori” per mezzo di tecnologie radio, unitamente allo sviluppo di una architettura protocollare che consenta la cooperazione tra le diverse entità, non fa altro che amplificare, in modo esponenziale, la capacità dei singoli dispositivi dando il via allo sviluppo di un insieme vastissimo di nuove applicazioni. Questo concetto è alla base delle reti di sensori, note in letteratura con il nome di Wireless Sensor Network (WSN) il cui obiettivo è l’utilizzo di un numero abbastanza elevato di sensori, organizzati in un sistema intelligente di gestione e di rilevazione. I benefici introdotti dalle WSN possono essere riassunti in: Facile dislocazione: la copertura dei tradizionali macrosensori cablati è limitata a certe aree a causa dei vincoli imposti dal costo e 3 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dalla posa, rigorosamente ad opera di personale specializzato. In contrasto, le WSNs possono contenere un grande numero di nodi fisicamente separati. Anche se la copertura radio fornita da un singolo nodo è ridotta, nodi densamente distribuiti possono lavorare simultaneamente e in maniera cooperativa così da estendere la copertura dell’intera rete; inoltre i sensori possono essere letteralmente paracadutati in zone avverse [28]; Ridondanza naturale: una densa dislocazione dei sensori senza filo e la correlazione tra dati di nodi vicini in una specifica area rende le WSN molto più flessibili rispetto alle classiche reti di sensori cablati. In caso di fallimento di uno dei nodi, la rete riesce a reagire molto bene grazie alla forte ridondanza spaziale che caratterizza le WSN cosa che invece non sarebbe proponibile nelle reti di macrosensori. Inoltre, la possibilità di poter raggiungere diversi nodi direttamente (poiché posizionati in una area di raggio minore di quello di trasmissione) garantisce una ridondanza anche nei possibili cammini verso la destinazione Accuratezza: anche se i macrosensori possono fornire misure con una maggiore precisione rispetto ad un microsensore, la grande quantità di dati collezionati da una moltitudine di minuscoli sensori riflette meglio le caratteristiche della realtà. Inoltre, adottando appositi algoritmi di cooperazione tra nodi è possibile abbattere il rumore di misura incorrelato e incrementare la componente comune. Costo: E’ previsto che le WSN siano molto meno costose rispetto alle reti di macrosensori: basti pensare che il solo costo del cablaggio sia per la trasmissione delle misure che per l’alimentazione dei sensori, a volte raggiunge costi molto superiori a quelli dei soli nodi. 4 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.2 DIFFERENZA TRA RETI DI SENSORI E RETI AD HOC Le Wireless Sensor Network sono considerate come dei particolari casi di reti ad hoc dette “Mobile Ad-hoc NETworks” (MANET) [2] però bisogna evidenziare che seppur condividono molti elementi con esse molte sono anche le differenze e specificità che hanno suscitato una particolare attenzione della ricerca [3]. È importante quindi evidenziare le differenza tra le comuni reti ad-hoc e le reti di sensori in termini di: SCALABILITA’: perché il numero di nodi che compongono una rete di sensori può essere di diversi ordini di grandezza superiore rispetto quello di una rete tradizionale, inoltre la densità dei nodi nelle vicinanze del fenomeno da rilevare può risultare molto elevata; FLUSSO DI COMUNICAZIONE: in quanto nelle tradizionali WSN il flusso è fortemente asimmetrico, ovvero tutti i nodi inviano i dati raccolti all’interfaccia con l’utilizzatore, cosa che di solito non accade nelle reti ad-hoc dove si prediligono le comunicazioni tra i singoli nodi (peer-to-peer); CAPACITA’ ENERGETICHE E DI CALCOLO: che nelle WSN sono estremamente limitate e che risultano essere un vincolo progettuale e quindi da tenere debitamente in conto nella progettazione dell’architettura della rete. FAULT-TOLERANCE: in quanto i nodi di una wireless sensor network possono essere molto spesso soggetti a guasti. CENTRALITA’ DEI DATI: in quanto le informazioni originate da un nodo generalmente non sono di fondamentale importanza per la missione della rete: l’utente finale è più interessato ad avere una 5 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo visione d’insieme del sistema; quindi se un nodi si guasta è molto probabile che ciò non influenzi significativamente le prestazioni globali del sistema, grazie alla ridondanza caratteristica delle WSN. 1.3 ARCHITETTURA DELLA RETE Una rete di sensori è un insieme, eventualmente eterogeneo, di nodi sensore che forma una predeterminata topologia. I nodi sensore possono essere equipaggiati con dispositivi in grado di rilevare una grande varietà di condizioni ambientali, come temperatura, umidità, movimento dei veicoli, luminosità, pressione, livello di rumore, presenza o assenza di certi tipi di oggetti, grado di stress meccanico, valori istantanei di velocità, direzione e dimensioni di un oggetto. Gli elementi della rete sono collocati all’interno dell’area da monitorare, o comunque nelle immediate vicinanze. Solitamente si associa ogni nodo a un oggetto, una persona, un animale o un luogo determinante per lo studio del fenomeno che si desidera osservare. Tipicamente non è prevista nessuna infrastruttura fissa a cui si possano appoggiare i nodi, per questo di parla di reti “ad-hoc”, che possono essere centralizzate se tutte le comunicazioni sono dirette ad un unico nodo che elabora le informazioni raccolte, oppure distribuite se i nodi hanno capacità e intelligenza sufficienti a elaborare i dati autonomamente. La Figura 1.1 mostra come un messaggio attraversi la rete attraverso un routing multihop da un nodo generico fino al sink, il nodo dedicato alla raccolta de dati, a cui può essere direttamente collegato l’elaboratore dell’utente oppure un’interfaccia con altre WSN o altre reti eterogenee (per esempio Internet). 6 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 1.1: Architettura di una WSN È inoltre possibile prevedere più stazioni di raccolta dati intermedie, eventualmente anche mobili, come ad esempio un utente dotato di PDA (Personal Digital Assistant), oppure un aereo in volo. Attraverso il percorso inverso l’utente, mediante l’applicazione di gestione della rete, è in grado di inviare comandi ad ogni nodo della WSN. Se oltre ad essere equipaggiati con sensori, i nodi dispongono anche di attuatori si parla di Wireless Sensor and Actor Network (WSAN). A partire dalle informazioni raccolte dal mondo che li circonda, i sensori sono in grado di decidere come agire per modificare l’ambiente in cui si trovano tramite gli attuatori. Non necessariamente tutti i nodi di una WSAN sono forniti di attuatori che implicano un più alto consumo di energia e una maggior complessità di rispondere rapidamente ad un evento per pilotare tempestivamente l’attuatore. 7 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.4 DESCRIZIONE DEI NODI SENSORI Esistono diverse piattaforme hardware di nodi per WSN, in Figura 1.2 viene mostrato lo schema generale nel quale è possibile rintracciare cinque elementi fondamentali: uno o più sensori della grandezza fisica da rilevare (trasduttore), un trasmettitore per la comunicazione e lo scambio dei dati (radio), un'unità di elaborazione digitale della grandezza misurata che sovrintende anche alla comunicazione radio (unità di elaborazione e controllo), un sistema di alimentazione autonomo (power management) e, in infine, uno o più attuatori. 1.4.1 Sensing Module Comunemente col termine sensore si indica l’intero nodo di una WSN. In questo contesto però indicheremo con il termine sensore l’hardware di cui è dotato un nodo per trasformare la grandezza fisica acquisita in un segnale elettrico che possa essere elaborato (trasduttore). Un nodo può disporre di più sensori, anche di grandezze fisiche diverse, che sono strettamente legate alla specifica applicazione; si possono avere ad esempio sensori di luminosità, pressione, temperatura, prossimità. La maggior parte dei sensori, prevede inoltre la presenza di un blocco di conversione analogica-digitale (ADC, Analog to Digital Converter), da Figura 1.2: Componenti hardware di un nodo sensori 8 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo utilizzare durante la fase di acquisizione del segnale. Il tipo di elaborazione da effettuare dipende dalla grandezza fisica rilevata e influisce direttamente sui consumi: si pensi ad esempio di dover digitalizzare un particolare segnale analogico: la rapidità con cui varia determina la velocità di campionamento necessaria per acquisirlo correttamente, mentre la sua dinamica e la precisione con cui lo si vuol rappresentare stabiliscono il numero di bit della parola associata ad ogni campione. All’aumentare della velocità di campionamento e del numero di bit del convertitore analogico digitale, si ha un incremento dei consumi. 1.4.2 Unità di elaborazione La presenza di una CPU permette di dotare il nodo delle capacità elaborative per gestire le comunicazioni e le grandezze misurate. Il ruolo della CPU può essere svolto da diverse tipologie di circuiti logici. Comunemente la scelta ricade su un microcontrollore a basso consumo, ma è possibile impiegare anche un FPGA (Field Programmable Gate Array), un DSP (Digital Signal Processing) o un ASIC(Application Specific Integrated Circuit). Un compito tipico del microprocessore in queste piattaforme è la verifica dell’effettiva necessità di utilizzare le risorse: per preservare la carica della batteria il nodo deve disattivare tutti i dispositivi come chip radio, timer, oscillatori, ogni volta che questi non sono indispensabili per le attività del nodo stesso. La gestione dei tempi e delle modalità del passaggio dallo stato a basso consumo a quello di attività dei vari componenti è affidata al microprocessore. Il microprocessore è spesso integrato con alcuni blocchi di memoria ROM e RAM utilizzati per ospitare il codice eseguibile del sistema operativo e dell’applicazione, nonché i dati acquisiti dai sensori ed elaborati dall’applicazione. La gestione e l’utilizzo delle memorie è una fonte di consumo energetico, pertanto i blocchi di memoria integrati hanno capacità 9 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo ridotte, limitate a poche decine di kbyte e la loro dimensione, in termini di capacità di immagazzinare dati, non va sovrastimata. Alcune piattaforme, tuttavia, possono essere dotate di memorie Flash aggiuntive, connesse al microprocessore per mezzo di interfacce seriali. Queste memorie, solitamente di capacità superiore rispetto alle memorie integrate con il microprocessore, possono essere utilizzate per contenere parametri per la configurazione del nodo o altri dati. Chiaramente, l’utilizzo delle memorie aggiuntive aumenta la potenzialità del nodo, ma influisce negativamente, come già detto, sui consumi energetici. 1.4.3 Unità di comunicazione Per garantire la connettività tra i nodi di una WSN è possibile adottare diverse strategie. Tipicamente la connessione è realizzata via radio, anche se per alcune particolari applicazioni sono disponibili soluzioni alternative che impieghino ultrasuoni o comunicazioni ottiche. Solitamente tra tutti i componenti del nodo, il chip radio è il dispositivo che consuma la maggior parte dell'energia. Per ridurre il costo e il consumo energetico dei nodi, si utilizzano tipicamente modulazioni ben consolidate e di bassa complessità, a discapito della capacità trasmissiva che è spesso limitata a qualche decina di kbit/s. Per limitare ulteriormente il costo finale del dispositivo, la modulazione radio avviene normalmente nelle bande comprese tra gli 868870 MHz o nelle bande ISM (Industrial ScientificMedical) attorno ai 900 MHz e ai 2,4 GHz, per le quali non è richiesta licenza governativa. 1.4.4 Alimentazione Data l’impossibilità di usufruire di una rete di distribuzione dell’energia, è necessario che ciascun elemento della WSN sia equipaggiato con un sistema autonomo di alimentazione. Attualmente l’unica soluzione diffusa è data 10 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dall’utilizzo di pile elettrochimiche, il cui sviluppo tecnologico non ha visto notevoli incrementi nell’ultimo ventennio; ecco perchè la progettazione delle reti di sensori è centrata sul risparmio energetico. Fonti di energia alternative sono argomento di ricerca ma, come riportato in Tab. 1.1, al momento non sono ancora in grado di rimpiazzare l’alimentazione a batterie; l’unica strategia applicabile per ora è lo spegnimento selettivo dei nodi per la maggior parte del tempo, in modo da ridurre il consumo di potenza medio. Promettente è la combinazione data da energia solare ed elettrochimica, in cui l’energia elettrica prodotta dalle celle fotovoltaiche esposte alla luce del sole, va a ricaricare una batteria tampone che il nodo utilizza in assenza di luce. 1.5 PARAMETRI DI PROGETTO Le WSN sono state concepite al fine di rilevare delle informazioni dall’ambiente circostante e di inviarle presso un centro specializzato che elabori queste informazioni. Le reti di sensori wireless possono essere dislocate anche in ambienti particolarmente ostili o comunque in ambienti in Sorgente di energia Trasduttore Potenza Conversione diretta da camminata Piezoelettrico 5W Solare Cella fotovoltaica 20mW Campo magnetico Induttore 1.5 mW Vibrazioni Bobina mobile 400 mW Vibrazioni ad alta frequenza Campo a radio frequenza MEMS e bobina mobile 100 mW Antenna 5 mW - Svantaggi Elevato rumore E.M. ed elevato ingombro Utilizzabile solo durante le ore del giorno e abbastanza costosa Scarsa potenza erogabile Necessità di vibrazioni per essere attivato Necessità di vibrazioni per essere attivato Scarsa potenza erogabile Tabella 4-1: Fonti energetiche alternative 11 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo cui un intervento di manutenzione da parte dell’uomo potrebbe risultare impossibile (si pensi ad esempio ad una dislocazione di nodi in un bosco attraverso l’ausilio di un aereo). Questo primo esempio ci fa già comprendere come le caratteristiche di una rete di sensori siano strettamente legate al reale impiego che se ne deve fare, infatti ogni specifica applicazione richiede che la WSN abbia delle proprietà particolari; questo naturalmente limita fortemente la portabilità e riusabilità delle rete in contesti differenti (al contrario delle tradizionali reti ad-hoc) e si paga anche in termini di complessità di progettazione e tempi di sviluppo. Gli aspetti da considerare sono molteplici [3], di seguito si prenderanno in considerazione i principali parametri da tenere in considerazione nella fase di progettazione di una Wireless Sensor Network. 1.5.1 Consumo energetico La vita di un sensore è legata principalmente alla durata della batteria. Inoltre, la riserva di energia posseduta da un sensore risulta essere estremamente ridotta, e molto spesso difficile da rifornire. Ciò implica l’introduzione di appositi meccanismi che preservino la durata delle batterie, se possibile, fino ad alcuni anni, massimizzando l’invio delle informazioni dall’ambiente in cui si è scelto di installare la WSN. In questa logica lo scopo principale da perseguire, che del resto è una vera e propria sfida tecnologica per questi sistemi, è la riduzione del consumo di potenza. La richiesta di potenza va quindi minimizzata ad ogni livello di sviluppo, sia a livello hardware che software al fine di ottenere le prestazioni energetiche desiderate. Il consumo energetico può essere suddiviso in due punti fondamentali: comunicazione ed elaborazione dati in tempo reale. • COMUNICAZIONE: Un sensore spende la maggior parte dell’energia nelle fasi di comunicazione, che comprendono sia la trasmissione che la ricezione dei 12 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dati. A corto raggio, trasmettere e ricevere dati comporta pressoché lo stesso consumo di potenza, ma in generale è la trasmissione di dati che necessita maggiore energia. In tale caso non si deve considerare solo il consumo di potenza attiva, ma anche la potenza di “avvio” della trasmissione, in quanto questa fase ha dei tempi non trascurabili. Basti pensare che non appena le dimensioni del pacchetto da trasmettere diminuiscono, tale potenza tende addirittura a dominare sulla potenza attiva. Di conseguenza, non si può considerare un trasmettitore solo nella fase ON o OFF, perchè una buona parte di potenza viene spesa nel momento in cui si accende. La potenza Pc spesa da una radio può essere sintetizzata dalla seguente formula: PC = NT [PT (Ton + Tst ) + Pout (Ton )] + NR [PR (Ron + Rst )] dove PT e PR rappresentano la potenza consumata nel trasmettere e ricevere, Pout la potenza di uscita dal trasmettitore, Ton e Ron il tempo in cui il trasmettitore e il ricevitore sono nella fase ON, Tst e Rst il tempo in cui il trasmettitore e ricevitore sono nella fase di avvio e NT NR il tempo in cui il trasmettitore e il ricevitore è attivo per unità di tempo. Tipicamente, per trasmettitori a basso consumo di potenza, PT e PR assumono valori dell’ordine dei 20 dBm e Pout attorno agli 0 dBm. In conclusione, il progetto di una rete di sensori e la scelta del protocollo utilizzato sono influenzati da considerazioni sulla potenza. • ELABORAZIONE DATI IN TEMPO REALE Nonostante l’energia spesa nell’elaborazione dei dati sia significativamente inferiore a quella spesa per la loro trasmissione, è comunque un’ aspetto cruciale ridurre al minimo l’elaborazione dei dati sia per risparmiare energia, sia per abbassare il tempo in cui i sensori processano i dati. Ogni nodo deve perciò essere costruito in modo da avere varie abilità computazionali ed essere in grado di interagire con i sensori vicini. 13 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Studi specifici, effettuati su CMOS usati in regime digitale, hanno portato alla seguente formula che permette di calcolare approssimativamente la potenza Pp spesa nell’elaborazione dei dati: Pp = CV dd f + V dd I 0 exp( 2 V dd VT ) n dove C è la capacità totale del carico pilotato dall’elettronica, Vdd è il voltaggio di alimentazione ed f la frequenza media di commutazione. Da notare inoltre che il secondo termine indica la potenza spesa a causa della dispersione di corrente. 1.5.2 Costo È indispensabile che l’utilizzo della WSN sia economicamente conveniente rispetto a soluzioni alternative; d’altro canto solo una produzione di massa dei sensori può abbatterne i costi e incentivarne l’utilizzo. La speranza è che entro pochi anni il costo di un nodo non superi il dollaro, ma attualmente si è ancora lontani da questa previsione: infatti il costo del Bluetooth, il dispositivo radio attualmente più economico, si aggira intorno ai cinque dollari. Si deve poi considerare che un nodo possa disporre anche di altre dotazioni come GPS (Global Positioning System), alimentatori e attuatori che ne fanno aumentare il costo. Piuttosto di sostenere costi di manutenzione talvolta si preferisce smettere di utilizzare i nodi che si guastano, il che risulta economicamente più conveniente se ciò non limita eccessivamente la connettività. 1.5.3 Connettività La capacità dei nodi di comunicare fra loro definisce la connettività. Una rete in cui ogni nodo può comunicare con qualunque altro, anche attraverso multihop (non direttamente ma mediante altri nodi che fungono da ponte), si 14 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dice connessa. In una WSN, tuttavia, questo tipo di connettività non è garantito, in quanto i nodi passano lunghi periodi in stato di inattività (sleep) al fine di risparmiare energia, risultando raggiungibili solo in determinati intervalli di tempo. Inoltre, alcuni nodi possono risultare permanentemente disconnessi a causa di un guasto o esaurimento delle riserve energetiche. In questo caso si ha una rete partizionata e si parla di connettività a intermittenza che deve essere attentamente considerata nella progettazione dei protocolli di comunicazione e dei meccanismi di inoltro dei dati che devono quindi risultare robusti al partizionamento temporaneo e alle variazioni topologiche della rete e alla perdita dei dati. Infine se un nodo resta per la maggior parte del tempo isolato e può comunicare solo raramente si parla di comunicazione sporadica. 1.5.4 Topologia della rete La topologia di una rete di sensori è soggetta a continui cambiamenti dovuti a fattori casuali e a imprevisti, come possono essere danneggiamento ed esaurimento energetico. Inoltre tale topologia varia anche per il fatto che non tutti i nodi sono funzionanti nello stesso istante, ma alcuni sono tenuti in uno stato di basso consumo di energia. In tale stato il transceiver del nodo non è attivo e questo si traduce da un lato in un certo risparmio di energia, dall’altro nel fatto che il sensore non è connesso alla rete. Questo comporta una diminuzione della capacità di copertura e della connettività della rete. Il compromesso tra questi due parametri e il risparmio energetico è noto come topology management. L’evoluzione della topologia di una rete si può riassumere in tre fasi: 1) Schieramento: i nodi sono distribuiti casualmente nell’ambiente (anche se possono essere presenti tecniche di 15 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo posizionamento studiate per ridurre le interferenze o per avvantaggiare l’auto-organizzazione dei nodi); 2) Post-schieramento: la topologia della rete cambia a causa dello spostamento, della distruzione o dell’esaurimento dell’energia dei nodi; 3) Rischieramento: i nodi non più funzionanti vengono sostituiti da altri. 1.5.5 Dimensioni e posizionamento dei nodi Per poter essere posizionati negli ambienti più disparati è necessario che i nodi siano di piccole dimensioni e leggeri, cosa non semplice per la presenza di componenti non facilmente integrabili come batteria e antenna. I nodi inoltre, possono essere installati in posizioni specifiche, o possono essere distribuiti in maniera casuale a ricoprire tutto un territorio. Per varie ragioni i nodi possono essere rimpiazzati, o se ne possono aggiungere altri influenzando così la localizzazione, la densità e la topologia della rete. Riguardo la densità dei nodi viene definita in modi diversi: in termini di numero di nodi nell’area considerata oppure come rapporto fra il numero di nodi all’interno dell’intera rete e la superficie della regione su cui è distribuita la rete. La dimensione della rete influenza l’affidabilità e l’accuratezza degli algoritmi di elaborazione. 1.5.6 Mobilità In alcuni casi tutti i sensori della rete, o solo alcuni, possono spostarsi o essere parte di un dispositivo mobile: si parla in questo caso di MANET (Mobile Ad-hoc NETwork). In genere le WSN sono caratterizzate da un basso grado di mobilità. Velocità di spostamento e grado di mobilità influiscono sulla progettazione dei protocolli, in particolar modo quelli distribuiti. 16 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.5.7 Scalabilità La scalabilità indica la capacità che ha una rete di garantire un degrado lineare delle prestazioni al crescere del numero di nodi di cui è composta. Per analizzare correttamente questo parametro si deve fare riferimento alla densità dei nodi nella rete: μ ( R) = NπR 2 A dove N rappresenta il numero dei nodi, R il raggio di trasmissione, A la superficie in cui la rete opera, e μ(R) rappresenta il numero medio di nodi che si trovano entro la portata di un sensore. 1.5.8 Sicurezza Una WSN può essere soggetta a molteplici attacchi, quali: appropriamento delle informazioni scambiate fra i nodi, da parte di un ascoltatore esterno in grado di ricevere le comunicazioni scambiate non crittografate; sostituzione di un nodo, che dopo essere stato sottratto alla rete, manomesso e reinserito può rendere accessibile a un ascoltatore esterno le chiavi di crittografia di messaggi di livello più alto; inserimento di un nodo fasullo, non appartenente alla rete ma che la rete stessa invece riconosce come proprio e che può inoltrare false informazioni nella WSN o bloccare il passaggio di informazioni autentiche; nodo malfunzionante, che può immettere nella rete informazioni non corrette che si propagano nella WSN; corruzione del messaggio, può avvenire se un intruso si inserisce nella comunicazione fra i nodi tentando di danneggiare l’integrità del messaggio, modificandolo; 17 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo negazione del servizio, avviene in diversi modi ad esempio creando continue collisioni nelle trasmissioni radio, riducendo le risorse della rete o alterando il routing; analisi del traffico, attraverso lo studio della parte di dati trasmessi senza crittografia, consente di rendere inutilizzabile la rete. 1.5.9 Affidabilità Nell’ambito specifico delle reti di sensori senza cavo il concetto di affidabilità si formalizza come la capacità che deve avere una rete di conservare le proprie funzionalità indipendentemente dall’eventuale guasto di qualche sensore o semplicemente da una trasmissione fallita. Attualmente il requisito di affidabilità, in una WSN, ha assunto un ruolo di primo livello e influenza non poco il progetto dell’intera architettura del sistema, uno studio approfondito sarà portato avanti nel capitolo 2. 1.6 PROTOCOLLI DI COMUNICAZIONE I protocolli di comunicazione rappresentano una delle aree di ricerca più attive nell'ambito delle reti di sensori. I maggiori sforzi si sono concentrati nella realizzazione di protocolli MAC efficienti dal punto di vista energetico e di protocolli di routing che offrano soluzioni efficaci per tutte le esigenze. Dei livelli di cui è composto il modello ISO/OSI, quelli coinvolti nella progettazione di protocolli di rete per una rete di sensori sono il livello fisico, il livello data-link ed il livello di rete, di cui ne daremo una breve descrizione nei successivi sottoparagrafi. 1.6.1 Livello Fisico 18 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Il livello fisico si occupa di impostare la frequenza, di generare la portante e del riconoscimento del segnale e infine della modulazione e codifica dei dati. Ma rispetto alle classiche trasmissioni radio, in questo caso il principale problema è come trasmettere i dati spendendo la quantità minima di energia, tenendo conto di tutti i costi collegati (overhead, etc). Molti lavori si concentrano sulla modulazione efficiente del segnale dal punto di vista energetico [4] [5]. 1.6.2 Livello data-link Il livello data-link è responsabile della multiplazione dei flussi di dati, del riconoscimento dei frame, del controllo dell'accesso al mezzo e del controllo dell'errore. Di questi aspetti forse il più interessante è la progettazione del protocollo MAC [6]. Gli obiettivi del MAC sono i seguenti: Ridurre le collisioni. Se due o più nodi trasmettono contemporaneamente sullo stesso canale radio, i loro messaggi interferiscono reciprocamente e in ricezione non è possibile ricostruirli; si deve quindi programmare una ritrasmissione in istanti differenti per tentare nuovamente l’inoltro del messaggio. Ritrasmettere più volte lo stesso pacchetto comporta un notevole dispendio d’energia che, come già esposto, i nodi devono evitare. A tal fine può essere conveniente suddividere il canale in più sottocanali,utilizzabili contemporaneamente per ridurre i conflitti di accesso al mezzo; le soluzioni più diffuse sfruttano la diversità temporale (TDMA, Time Division Multiple Access), in frequenza (FDMA, Frequency Division Multiple Access) di codifica (CDMA, Code Division Multiple Access) e con ascolto della portante (CSMA/CA, Carrier Sense Multiple Access / collision avoidance). Dato l’elevato numero di nodi che compongono una rete non è 19 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo possibile dedicare un sottocanale per ogni collegamento punto- punto, le risorse per la comunicazione devono essere quindi riallocabili più volte all’interno della rete. Come vedremo, questo aspetto sarà un limite progettuale non di poco conto per la scelta di algoritmi di comunicazione affidabili. Utilizzare algoritmi adattativi per il supporto della mobilità. Alcune applicazioni richiedono di poter gestire in modo semplice nodi che si muovono all’interno della rete; tale problematica può essere trattata nella ipotesi semplificativa di nodi a bassa mobilità, dato che le condizioni d’impiego delle reti di sensori non richiedono di effettuare rapidi spostamenti. Un nodo in movimento può aver bisogno della riallocazione dinamica dei canali se questi sono già utilizzati dai nodi a cui si avvicina; inoltre anche a questi ultimi, per lo stesso motivo, può essere necessario cambiare i canali riservati. Per poter effettuare queste riconfigurazioni della rete, i nodi fissi nelle vicinanze del nodo mobile, devono essere sempre attivi, o comunque risvegliabili con un segnale di wake up, in modo da creare una zona limitrofa al nodo mobile che gli garantisca in ogni momento la connettività. Ridurre l’overhead. Oltre alle informazioni legate all’applicazione, in ogni pacchetto i nodi inseriscono dati necessari alla gestione della comunicazione, pur essendo indispensabili questi bit aggiuntivi comportano un dispendio di energia. Per ridurre i consumi e aumentare la durata dei nodi, è necessario limitare il numero di informazioni scambiate senza compromettere le funzionalità della rete; ad esempio si diminuisce il numero di pacchetti riservati esclusivamente alla gestione radio, i quali sono privi del campo dati (payload) e quindi determinano uno spreco di risorse. 20 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Tenere spento il più a lungo possibile il chip radio. Dato che la radio è il componente col maggior consumo energetico, è evidente che appena non è più richiesto il suo utilizzo essa sia disattivata. 1.6.3 Livello di rete Compito del livello di rete è gestire l’indirizzamento e l’instradamento dei messaggi. Tenendo presente che l’obiettivo di una WSN è in maggior parte di monitorare e tenere sotto controllo un fenomeno fisico, attraverso rilevazioni periodiche effettuate dai sensori, se questi dati venissero instradati nella rete senza alcun accorgimento, si verificherebbe un traffico elevato, con informazioni ripetitive ed inutili, che provocherebbero congestioni e soprattutto una drastica riduzione del tempo di vita della rete. Al fine di evitare questo problema urge una attenta progettazione e scelta del particolare algoritmo di routing da utilizzare. Lo scambio d’informazioni fra nodi remoti, ovvero non nel reciproco raggio di copertura, avviene attraverso il transito per altri nodi intermedi finchè il messaggio non giunge a destinazione; si parla in questo caso di percorso multihop. Questo meccanismo richiede in genere la conoscenza della posizione relativa tra i nodi che può essere memorizzata in vari modi, definendo tipologie di protocolli differenti: Proattiva (Proactive). Durante la fase di inizializzazione della rete si memorizzano in tabelle dette Look Up Table (LUT) tutti i cammini a peso minimo fra ogni coppia di nodi. La creazione di queste tabelle è un’operazione che richiede molta energia poiché, per realizzarla tutti i nodi della WSN devono essere attivi e scambiare messaggi tra loro, per questo le tabelle vengono successivamente aggiornate solo in caso di malfunzionamento di qualche nodo. Le 21 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dimensioni di queste tabelle crescono rapidamente all’aumentare del numero dei nodi e la loro memorizzazione richiede quindi memorie di grandi dimensioni, che implicano un considerevole consumo di energia. Questi protocolli cercano di mantenere lo stato delle proprie tabelle il più aggiornato possibile, anche in mancanza di un effettivo utilizzo della rete. Esempi di questa classe di protocolli di routing sono: • DSDV (Highly Dynamic Destination-Sequenced Distance Vector routing protocol); • HSLS (Hazy Sighted Link State routing protocol); • OLSR (Optimized Link State Routing Protocol); • STAR (Source Tree Adaptive routing protocol). Reattiva (Reactive). Il cammino a costo minimo viene individuato solamente quando è realmente necessario, questo consente di non dover memorizzare grandi tabelle poiché il percorso ottimale viene selezionato dinamicamente tramite l’invio di dati. La ricerca del cammino migliore impiega la radio per un tempo considerevole, il che influisce negativamente sui consumi di potenza ma permette di non dover impiegare memorie di grandi dimensioni. Un esempio di questa classe di protocolli di routing può essere trovato in [7] dove Karp et al. presentano il Greedy Perimeter Stateless Routing (GPSR), un nuovo protocollo di routing per reti wireless a datagrammi. In GPSR viene utilizzata la posizione del router e della destinazione dei pacchetti per decidere il percorso di inoltro. Le uniche informazioni utilizzate riguardano i router e i vicini nella topologia della rete. Tecniche ibride. L’utilizzo combinato delle due tecniche precedenti, permette la determinazione del cammino minimo nel momento di 22 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo effettivo bisogno quando si devono trasmettere messaggi, ma è poi possibile memorizzare il percorso in LUT di dimensioni limitate per un riutilizzo futuro. In questo modo si dispone dei vantaggi di entrambe le strategie, riducendo le perdite di prestazioni tipiche dei singoli metodi considerati separatamente. Esempi di tecniche ibride per il routing possono essere trovati in tutti gli algoritmi Ant [8]. Gli algoritmi Ant sono una classe di agenti basati su algoritmi di routing che modellano il comportamento delle formiche. Le formiche sono, infatti, capaci di trovare il percorso più breve tra il formicaio e un punto del terreno in cui vi sia del cibo. L'aspetto interessante e curioso è che sono in grado di farlo senza informazioni visive (le formiche di molte specie sono infatti cieche), ma utilizzando segnali "odorosi". Quando una formica ha trovato del cibo, ritorna al formicaio depositando sul terreno una certa quantità di una sostanza chimica detta feromone. La direzione del cammino di una formica dipende dalla quantità di feromone che essa percepisce: dove la concentrazione è più forte, è più probabile che la formica si diriga. Nel tempo le tracce di feromone sul terreno evaporano ed, eventualmente, sono rinforzate dal passaggio di altre formiche. Ora entra in gioco un meccanismo molto importante chiamato retroazione positiva: più formiche scelgono un percorso, più forte sarà la concentrazione di feromone e quindi ancora più formiche saranno richiamate sullo stesso percorso. Perciò, dopo una prima fase di transitorio in cui le formiche scelgono direzioni diverse, si arriva ad una situazione stazionaria in cui la maggior parte delle formiche segue uno stesso percorso. Siccome il feromone evapora nel tempo, il percorso più breve sarà quello scelto alla fine dal "sistema formiche". 23 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Analogamente gli agenti viaggiano nella rete codificando la qualità del cammino visitato e lasciando questa informazione nell’ultimo nodo attraversato. In ogni nodo un agente sceglie la prossima destinazione in maniera probabilistica ma comunque polarizzata verso il migliore dei cammini già noti. Questa tecnica risulta essere molto veloce per l’esplorazione di buoni percorsi e inoltre in questo modo si riescono facilmente a trovare buoni cammini alternativi in caso del fallimento di uno dei nodi sull’albero di routing, proprio perchè ad ogni nodo l’agente cerca sempre un cammino intorno alla precedente soluzione (buona). Per completezza riportiamo di seguito anche altri protocolli di routing non basati sul paradigma del multihop: 9 FLOODING: è una vecchia tecnica dove un nodo che riceve dati o pacchetti li ritrasmette in modo broadcast (a meno che il pacchetto non abbia raggiunto un numero massimo di hop o che il nodo stesso sia la destinazione del pacchetto). Il flooding [3] è una tecnica reattiva e che non richiede un mantenimento della topologia ma presenta alcuni problemi che vanno risolti in fase di implementazione: i. Implosion: situazione in cui i duplicati di un messaggio siano inviati allo stesso nodo; ii. Overlap: quando due nodi condividono la stessa regione di osservazione entrambi potrebbero rilevare gli stessi stimoli e quindi i nodi vicini ricevono messaggi duplicati; iii. Resource Blindness: questo protocollo non tiene conto della risorsa energia disponibile; 9 GOSSIPPING: è una variante del flooding solo che i nodi non usano il broadcast ma inviano i pacchetti ad un solo nodo 24 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo selezionato in modo random tra tutti i vicini [3]. Così si evita il problema di implosione ma si impiega molto più tempo per propagare un messaggio a tutti i nodi. 9 ENERGY EFFICIENT ROUTE: il percorso che viene seguito è quello più efficiente dal punto di vista energetico 9 LEACH (Low Energy Adaptive Clustering Hierarchy): è un protocollo basato sul clustering [10] che minimizza la dissipazione di energia in una rete di sensori. Lo scopo di questo protocollo è quello di scegliere in maniera random alcuni nodi ed eleggerli a capo-cluster. Gli altri nodi, invece si associano ad un cluster in modo da minimizzare la dissipazione di energia. In questo modo il capo cluster riceve ed aggrega i dati dei nodi appartenenti al cluster prima di inviare questi alla stazione base. Dopo un certo periodo di tempo la rete entra nuovamente in fase di setup e inizia nuovamente la fase di selezione dei capo- cluster. 1.7 I SISTEMI OPERATIVI E LE RETI DI SENSORI Le caratteristiche delle reti di sensori in relazione alla progettazione di un sistema operativo devono essere adeguatamente tenute in considerazione. Uno degli aspetti più evidenti delle reti di sensori sono le ridotte dimensioni della piattaforma hardware e la scarsa disponibilità di energia. Questi fattori influiscono sulla capacità di elaborazione del sistema, sulla quantità di informazioni che è possibile scambiare e sulla capacità di comunicare con l'esterno. Il software sviluppato per le reti di sensori dovrà essere perciò molto semplice, per evitare operazioni inutili, e poco ingombrante in termini di occupazione di memoria. 25 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Le reti di sensori sono soggette a continue sollecitazioni. Si pensi ad esempio alla quantità di pacchetti che ogni nodo deve trattare, sia perchè ha la necessità di inviare le informazioni raccolte, sia perchè la rete comunica secondo un protocollo multi-hop. Inoltre l'ambiente esterno deve essere continuamente monitorato e la rete, per poter garantite i servizi essenziali, deve continuamente scambiarsi delle informazioni di “servizio" (si pensi al problema della mobilità o a quello della sincronizzazione temporale). In pratica il sistema deve gestire una quantità non trascurabile di eventi nel modo più veloce possibile, per evitare di perdere informazioni preziose, però il livello di parallelismo insito in questo tipo di sistemi è molto basso rispetto ai sistemi convenzionali. Questo è dovuto principalmente alle limitazioni fisiche dei nodi (bassa capacità di elaborazione, poca memoria, etc.) quindi si preferisce sfruttare le poche risorse per effettuare le operazioni essenziali. Come abbiamo già visto, le reti di sensori possono essere utilizzate in numerose applicazioni, differenti tra loro. Queste richiedono in molti casi dell'hardware dedicato e quindi sono necessarie delle reimplementazioni dello stesso software per adeguarlo ai diversi dispositivi. Tuttavia, se il software viene sviluppato seguendo il criterio di modularità, non sono necessarie complete reimplementazioni di un'applicazione ma dovrebbe essere sufficiente sostituire alcuni moduli per ottenere il medesimo risultato. Lo stesso problema sorge quando ad esempio si vuole sostituire un protocollo all'interno di un applicazione. In generale quindi, si dovrebbe progettare un sistema operativo in grado di adattarsi facilmente a tutti i cambiamenti tecnologici, sia hardware che software. I nodi in alcune applicazioni si trovano a lavorare in ambienti critici che ne potrebbero alterare il funzionamento. Questi possono guastarsi o rimanere bloccati quindi è necessario sviluppare applicazioni tolleranti ai guasti. Anche il sistema operativo deve fare la sua parte, cioè deve supportare 26 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo eventuali guasti dei dispositivi e favorire lo sviluppo di applicazioni affidabili e distribuite, in conclusione deve garantire operazioni robuste. Per completezza ricordiamo che in letteratura si distinguono principalmente due approcci allo sviluppo di sistemi operativi per reti di sensori senza cavo: o Sviluppare un sistema i cui componenti vengono compilati assieme all'applicazione (esempio TinyOs). o Sviluppare un sistema che includa i tradizionali strati software dei sistemi general purpose in versione ridotta (esempio MANTIS [23]) Riguardo il primo approccio, questo, di fatto, consente che una sola applicazione sia in esecuzione in un dato momento; tuttavia tale sistema permette di avere bassissimi consumi. Lo svantaggio però derivante da tale approccio è la limitata versalità e i seri vincoli di riconfigurabilità dell'applicazione. Riguardo invece il secondo approccio, risulta in questo caso difficile tenere i consumi e le risorse impiegate sotto controllo, ma si guadagna in versatilità, potendo eseguire più applicazioni contemporaneamente. 1.7.1 Introduzione a TinyOS TinyOS è un sistema operativo open-source, sviluppato dalla University of California at Berkeley. Data la possibilità di modificare il codice, questo sistema operativo è diventato la piattaforma di sviluppo per ogni soluzione proposta nel campo delle reti di sensori. In effetti grossi contributi sono stati forniti dalla comunità di sviluppatori, lo testimonia la lunga lista di progetti attivi relativi a tutti campi della ricerca, da protocolli per l'instradamento dei pacchetti alla localizzazione, dalla realizzazione di un interfaccia grafica per lo sviluppo delle 27 applicazioni all'estensione del Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo compilatore ncc per il supporto di nuove piattaforme hardware (come la piattaforma 8051) 1 . TinyOS è stato progettato principalmente per le reti di sensori ed adotta soluzioni molto semplici ed efficienti, al fine di ridurre al massimo i consumi di energia. Infatti TinyOS non possiede un nucleo ma permette l'accesso diretto all'hardware, inoltre sparisce il concetto di processore virtuale per evitare i cambi di contesto, e quello di memoria virtuale: la memoria viene infatti considerata come un unico e lineare spazio fisico, che viene assegnato alle applicazioni a tempo di compilazione. In pratica viene eliminato qualsiasi tipo di overhead, poiché nelle reti di sensori questo causa un’inutile dispersione di energia senza portare tangibili vantaggi. Queste scelte impattano direttamente sull'architettura che risulta molto compatta e ben si sposa con le dimensioni ridotte della memoria che è dell’ordine di pochi KB. Lo scopo dichiarato dei progettisti di TinyOS era infatti quello di: 1. ridurre i consumi di energia; 2. ridurre il carico computazionale e le dimensioni del sistema operativo; 3. supportare intensive richieste di operazioni che devono essere svolte concorrentemente e in maniera tale da raggiungere un alto livello robustezza ed un efficiente modularità. Per soddisfare il requisito della modularità, TinyOS favorisce lo sviluppo di una serie di piccoli componenti, ognuno con un ben precisa funzione, che realizza un qualche aspetto dell'hardware del sistema o di un'applicazione. Ogni componente poi, definisce un interfaccia che garantisce la riusabilità del componente ed eventualmente la sua sostituzione. 1 http://tinyos.cvs.sourceforge.net/tinyos/ 28 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 1.3 : Modello a strati di TinyOS Guardando il modello a strati del sistema operativo (figura 1.3), possiamo intuire come sia facilitato lo sviluppo di applicazioni mediante il riutilizzo dei componenti esistenti. TinyOS è stato implementato seguendo il modello ad eventi. Nei tradizionali modelli infatti, è necessario allocare un certa quantità di memoria sullo stack per ogni attività in esecuzione e inoltre, il sistema è soggetto a frequenti commutazioni di contesto per servire ogni tipo di richiesta, come l'invio di pacchetti, la lettura di un dato su un sensore, etc. Poiché i nodi non dispongono di grosse quantità di memoria il modello ad eventi ben si addice ad un sistema continuamente sollecitato, in quanto utilizza il microprocessore nella maniera più efficiente possibile. Non sono permesse condizioni di stallo né attese attive che sprecherebbero energia inutilmente. Quando invece non ci sono attività da eseguire il sistema mette a riposo il microprocessore che viene risvegliato all'arrivo di un evento. 1.7.1.1 Caratteristiche tipiche Le caratteristiche tipiche del TinyOs si possono riassumere nei seguenti punti: • Architettura basata su componenti 29 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Una applicazione è composta da uno o più componenti che possono dialogare tra loro facendo uso di due set di funzioni: i comandi e gli eventi. TinyOs mette a disposizione del programmatore un set di componenti standard. componenti utilizzando Un'applicazione può connettere tali delle specifiche di legame che sono indipendenti dall'effettiva implementazione. Ogni componente inoltre contiene un'area dati chiamata frame, la quale viene allocata staticamente (figura 1.4). • Operazioni in diverse fasi La richiesta di una data operazione e il suo completamento sono due funzioni distinte. I comandi tipicamente richiedono l'esecuzione di un'operazione: quando questa termina, viene generato un evento che segnala all'applicazione il termine dell'operazione richiesta. Un esempio tipico è l'invio di un pacchetto: l'applicazione invoca il comando send per iniziare la trasmissione e il componente di comunicazione segnala l'evento sendDone quando l'operazione è terminata. Esistono anche comandi al cui termine non è richiamato alcun evento (ad esempio l'accensione di un LED). • Concorrenza: Il TinyOs può eseguire un solo programma alla volta, tipicamente formato da più componenti. Ci sono due tipi di thread: task ed eventi hardware. I primi sono funzioni la cui esecuzione può essere ritardata: essi vengono eseguiti in ordine secondo una coda FIFO. Gli eventi hardware hanno priorità massima e bloccano qualsiasi esecuzione in corso. Possono dunque nascere situazioni di data race (ad esempio l’aggiornamento di una variabile) • Active Messages Active messages è la tecnologia di rete utilizzata da TinyOs. Questo sistema permette di inviare messaggi a tutti o a un singolo nodo tra i 30 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 1.4: Rappresentazione di un componente TinyOS vicini (eventuali protocolli di routing vengono implementati ad un livello superiore, quindi Active messages contiene solo un meccanismo di indirizzamento verso i nodi vicini). Ogni pacchetto spedito contiene l'identificazione di un handler da richiamare sulla macchina di destinazione e il payload dei dati. Il principale svantaggio dell'approccio è che tutti i nodi comunicanti devono avere lo stesso software o come minimo implementare un componente che definisca lo stesso handler. 1.7.2 Introduzione a NesC NesC è il linguaggio di programmazione usato in ambiente TinyOs. La sua sintassi è molto simile al classico C con alcune differenze: supporta il modello di concorrenza del TinyOs e permette di collegare, strutturare componenti software. NesC permette ai programmatori di sviluppare componenti che possano essere facilmente assemblati tra loro. Le caratteristiche basilari del NesC possono essere così riassunte: 1. nesC è una estensione del C: C produce codice efficiente per tutti i processori che vengono di solito usati nelle reti di sensori; fornisce 31 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo tutte le caratteristiche necessarie per comunicare con l'hardware e l'interazione con codice già esistente è semplificata. Inoltre è un linguaggio molto conosciuto. D'altra parte però, C non aiuta molto a scrivere codice strutturato privo di errori. Il nesC garantisce più modularità grazie ad una sintassi molto ridotta e dà la possibilità di strutturare i componenti collegandoli tra loro. 2. Analisi di tutto il programma: I programmi nesC, in fase di compilazione, vengono analizzati nella loro interezza per ottenere una sicurezza maggiore e per rendere possibile l'ottimizzazione. Di conseguenza, non esiste la possibilità di compiere compilazioni separate. D'altra parte i programmi scritti in nesC sono molto leggeri e di conseguenza la compilazione risulta comunque veloce. 3. nesC è un linguaggio “statico”: Non esiste la possibilità di allocare memoria dinamicamente. Questa restrizione rende più facile e accurata l'analisi del programma in fase di debug. 4. nesC riflette la struttura del TinyOs: nesC è basato sul concetto di componente e supporta appieno il modello di concorrenza del TinyOs. Inoltre il TinyOs è stato completamente programmato in nesC. Nel momento in cui un'applicazione viene compilata, i componenti di TinyOs vengono compilati insieme ad essa e il risultato costituisce l'intero software del sensore. Questo approccio porta ad un ingente risparmio energetico; tuttavia la versatilità viene notevolmente limitata, non è possibile installare più applicazioni indipendenti nello stesso sensore. 32 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.8 LE PIATTAFORME HARDWARE Come già accennato nel paragrafo 1.4 le piattaforme hardware sono diverse, in questo paragrafo ci concentreremo in particolare su Mica2 e Mica2dot entrambe sviluppate dai ricercatori della University of California in Berkley. I nodi sensore Mica2 sono equipaggiati con 512 KB di memoria flash per memorizzare in modo permanente i dati raccolti e dispongono di un connettore a 51-pin per l'aggiunta di un espansione (attuatori, dispositivi sensori, etc). Possiedono un clock esterno a 32 kHz che il sistema operativo, in questo caso TinyOS, utilizza per sincronizzarsi con i vicini a meno di +/- 1 ms e per assicurarsi che questi siano attivi ed in grado di ascoltare le trasmissioni. I nodi Mica2 possiedono tre led, uno rosso uno giallo e uno verde, che possono essere comandati via programma e utilizzati per visualizzare una qualche informazione di stato. Infine entrambe le piattaforme forniscono un collegamento seriale (sullo stesso connettore a 51-pin) per i trasferimenti di dati e l'installazione delle applicazioni su ciascun nodo. Figura 1.5: Mica2 33 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 1.6: Mica2DOT Il processore montato sulla piattaforma Mica è un Atmel ATMega128 AVR. AVR è un architettura Harvard a 8-bit con una memoria separata per le istruzioni e per i dati. I microcontrollori AVR supportano lo stato active e quello sleep. Per quanto riguarda il sistema di comunicazione radio utilizzato questo è un Chipcom CC1000 progettato per applicazioni che richiedono un basso consumo di energia ed è in grado di comunicare da pochi metri fino a centinaia di metri. Utilizza la codifica Manchester e la modulazione FSK, supporta bande di frequenza a 315, 433, 868 e 915Mhz. Il sistema radio può lavorare in quattro distinte modalità: transmit, receive, idle e sleep. Questo significa che mentre trasmette non è in grado di ascoltare eventuali trasmissioni da parte di altri nodi, quindi le collisioni, se avvengono , non sono riconosciute. In effetti il protocollo MAC utilizzato è del tipo CSMA/CA. Nella tabella 1-2 si riportano alcune caratteristiche della piattaforma Mica2. Un’analisi esaustiva delle prestazioni di questi sensori viene riportata in [24] e comprende la tabella 1-3 riassuntiva delle prestazioni dei Mote mica2 e mica2dot. 34 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Component Rate Strtup Time Current consumption CPU Active 4 MHz N/A 4.6 mA CPU Idle 4 MHz 1 us 2.4 mA CPU Suspend 32 kHz 4 ms 10 uA Radio Transmit 40 kHz 30 ms 12 mA Radio Receive 40 MHz 30 ms 3.6 mA Photo 2 kHz 10 ms 1.235 mA I2C Temp 2 Hz 500 ms 0.150 mA Pressare 10 Hz 500 ms 0.010 mA Press Temp 10 Hz 500 ms 0.010 mA Humidity 500 Hz 500 ms 0.775 mA Thermopile 2000 Hz 200 ms 0.170 mA Thermistor 2000 Hz 10 ms 0.126 mA Tabella 1-5: Alcune caratteristiche della piattaforma Mica2 Mica 2 Mica2dot 4.6 Kbps 4.6 Kbps Reception 16 mA 12 mA Transmission 18 mA 14 mA Computation (processor only) 8 mA 8 mA Power down mode 10 uA 10 uA With mormal weather condition 55 m 135 m With fog, rain 10 m With maximun tx power (normal weather condition) 70 m 230 m Minimum ground distance 1m 1m 50 cm 50 cm AVAILABLE THROUGHPUT POWER CONSUMPTION TRASMISSION RANGE Minimum horizontal distance 275 m CARRIER SENSING RANGE Tabella 1-6: Tabella comparativa delle prestazioni di mica2 e mica 2 dot 35 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.8.1 Sensori per Mica2 La modularità che sta alla base del progetto di questa piattaforma ha permesso la realizzazione di numerose schede di sensori di vario tipo. La scheda di riferimento per i nodi tipo Mica2 è la Mica Sensorboard (MTS300CA), una scheda molto flessibile dalle varie modalità di utilizzo. Questa scheda infatti può essere impiegata per applicazioni che includono il rilevamento della presenza di veicoli, l'analisi di movimenti sismici, il riconoscimento di oggetti in movimento, la localizzazione ed altre applicazioni. Il resto del paragrafo analizza i dettagli di tale scheda. Microfono Il microfono può avere due principali usi: • localizzazione acustica • registrazione e misurazione dei suoni La localizzazione acustica è una possibilità offerta da questa scheda che può risultare molto utile. Il funzionamento è il seguente: un nodo invia un pacchetto via radio e contemporaneamente emette un suono tramite un segnalatore (disponibile sulla scheda), un nodo vicino, all'arrivo del pacchetto, azzera un contatore che poi incrementa con una certa frequenza. Il contatore viene incrementato fino a quando lo stesso nodo non avverte il segnale acustico. A questo punto, moltiplicando il valore del contatore per la frequenza di incremento, si ottiene all'incirca l'intervallo di tempo occorso al segnale acustico per raggiungere il destinatario. Conoscendo quindi il valore della velocità del suono si ottiene in modo approssimato la distanza tra due nodi. Segnalatore Questo dispositivo è in grado di emettere un unico suono alla frequenza di 4 kHz e viene utilizzato principalmente nella localizzazione dei nodi. Luce e temperatura 36 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Questa scheda dispone di sensori in grado di misurare la quantità di luce nell'ambiente e la temperatura. I sensore della luce è semplicemente una fotocellula CdSe. La massima sensibilità di questa fotocellula permette di rilevare raggi di luce fino ad una lunghezza d'onda pari a 690 nm. Il termistore invece è un Panasonic ERT-J1VR103J ed è in grado di rilevare temperature che vanno da -40 a 70 °C. Accelerometro a 2-Assi L'accelerometro è un dispositivo MEMS a 2-assi ed è in grado di rilevare accelerazioni fino a ±2 g. E’ utilizzabile per rilevare movimenti, vibrazioni e/o misurazioni sismiche. Magnetometro a 2-Assi I sensore è un Honeywell HNC1002. Il magnetometro può misurare il campo magnetico terrestre ed altri piccoli campi. Un applicazione in cui può essere impiegato è il rilevamento della presenza di veicoli. TIPO DESCRIZIONE MTS101 Monta un termistore di precisione e sensori di luminosità, ed è utilizzabile in varie aree MTS300/ MTS310 Supporta una grande varietà di sensori per MICA e MICA2 MDA500 Fornisce una interfaccia flessibile per collegamenti con nodi di tipo MICA2DOT MTS400/420 È in grado di effettuare il monitoraggio ambientale ed eventualmente può essere montato un GPS (MICA2) MDA300 È in grado di acquisire dati e monitorare l’ambiente (MICA2) MTS510 Supporta sensori di luce, accelerazione ed un microfono (MICA2DOT) MEP401 Moduli per luce, umidità e pressione barometrica e temperatura (MICA2) MEP500 Modulo per temperatura e umidità (MICA2DOT) Tabella 1-7: Schede disponibili per piattaforma MICA 37 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1.9 APPLICAZIONI Le applicazioni delle reti di sensori sono svariate e condizionano i nodi stessi che possono essere dotati di sensori completamente diversi. E’ possibile, come accennato prima, misurare una vastissima gamma di grandezze fisiche come l’umidità, la pressione, la temperatura, il suono, l’intensità luminosa, le dimensioni di un oggetto, la presenza di oggetti in movimento e anche la loro accelerazione. I sensori, grazie alle ridotte dimensioni, si adattano bene a strutture ostili e inaccessibili. Inoltre grazie al loro elevato numero, risulta particolarmente facile monitorare grandezze in aree relativamente ampie. Le reti di sensori ai giorni nostri sono utilizzati in svariati campi come per esempio l’ambiente, la medicina, per uso domestico (domotica) e per applicazioni militari e commerciali. o Ambiente Alcune applicazioni riguardano l'osservazione degli spostamenti di animali, uccelli, specie marine, insetti; il monitoraggio delle condizioni ambientali a cui sono sottoposte le colture e gli allevamenti di bestiame; il riconoscimento degli incendi boschivi; la ricerca metereologica e geofisica; il riconoscimento delle inondazioni; la mappatura della biocomplessità di un ambiente; lo studio dell'inquinamento. Alcune implementazioni di questi esempi li troviamo nel sistema per il riconoscimento delle inondazioni denominato ALERT [14], utilizzato negli Stati Uniti; nella mappatura della biocomplessità, con il sistema installato nella James Reserve in Southern California nell'osservazione degli spostamenti degli uccelli migratori, [15]; con il progetto denominato Great Duck Island Habitat Monitoring [16],[17] del quale viene riportata l’architettura generale in figura 1.7 (fonte: http://www.greatduckisland.net/ ). 38 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 1.7: Architettura del progetto Great Duck Island o Applicazioni militari Le reti di sensori possono essere parte integrante dei sistemi militari di comando, controllo, comunicazione, elaborazione, intelligence, sorveglianza, riconoscimento ed individuazione. La rapidità di collocazione, l'auto-organizzazione e la tolleranza ai guasti sono caratteristiche che rendono queste reti particolarmente adatte all'impiego in campo militare. Dal momento che i nodi possono popolare densamente una qualsiasi area ed hanno un costo ridotto, la distruzione di alcuni nodi in seguito ad un azione ostile non ne inibisce il funzionamento globale. Alcune applicazioni sono il monitoraggio delle forze alleate; il riconoscimento del nemico; l'individuazione degli obbiettivi; la sorveglianza di intere aree; il riconoscimento e l'individuazione di attacchi nucleari, biologici e chimici. 39 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo o Sanità Alcune applicazioni nella sanità sono: la realizzazione di interfacce per i disabili; il monitoraggio integrato dei pazienti; la somministrazione di farmaci negli ospedali; il telemonitoraggio dei dati fisiologici di un individuo; il tracciamento e il monitoraggio dei pazienti e del personale medico negli ospedali. Un esempio di telemonitoraggio dei dati fisiologici di un paziente è dato dal sistema Health Smart Home, realizzato dalla Facoltà di medicina di Grenoble - Francia [18]. o Uso domestico Un ambiente in grado di riconoscere l’utente presente al suo interno può predisporre tutta una serie di servizi personalizzati differenti a seconda di chi è l’ospite, inoltre i nodi sensore possono essere inseriti negli apparecchi elettrici, come forni a microonde, frigoriferi, VCR [19]. Questi possono interagire tra loro e con una rete esterna, via internet o via satellite e permettono all'utente di comandare facilmente gli elettrodomestici a distanza. Più in generale, le reti di sensori possono essere utilizzate per realizzare ambienti intelligenti non solo in casa ma anche negli uffici. Un esempio è il Residential Laboratory della Georgia Institute of Tecnology [20]. Gli obbiettivi di questo laboratorio sono l'affidabilità, la persistenza e la trasparenza dell'automazione. o Applicazioni commerciali Altre possibili applicazioni sono: la realizzazione di tastiere virtuali; l'analisi del comportamento dei materiali sottoposti a stress meccanico, la qualità di un prodotto; guida e controllo dei robot nelle industrie automatizzate. Ma anche il monitoraggio dell’aria all’interno degli uffici può essere eseguito per esempio con una rete di sensori. Il flusso di aria 40 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo condizionata è controllato in maniera centralizzata; l’uso dei sensori può portare ad una riduzione del consumo di energia. Altre applicazioni infine in ambito commerciale sono: • guida e controllo di robot nei processi industriali; • rilevazione di furti d’auto entro una determinata area geografica non troppo estesa; • la verifica delle categorie e della qualità di vari articoli presenti in un grande magazzino; • controllo del traffico tramite reti di sensori. 41 Capitolo 2 Affidabilità nelle reti di sensori senza cavo 2.1 IL CONCETTO DI AFFIDABILITA’ L’esigenza di ottenere particolari requisiti di affidabilità dai sistemi risulta essere sempre più un argomento di primaria importanza e ha portato a continue rivisitazioni del concetto di dependability. Nel 1982 Laprie definiva la dependability di un sistema come: “...the ability of a system to accomplish the tasks (or,equivalently, to provide the service) which are expected to it” , mentre nel 2001 sempre Laprie la ridefinì come “...the ability to deliver service that can justifiably be trusted ” per poi infine definire nel 2004 la dependability di un sistema come: “...ability to avoid service failures that are more frequent and more severe than acceptable” ovvero l'abilità di un sistema di fornire un servizio che può essere considerato "fidato" in maniera giustificata. In realtà il termine va inteso come un insieme di attributi di qualità (dependability attributes) che assumono singolarmente un’enfasi relativa alla natura del sistema cui si riferiscono e al particolare contesto applicativo: 42 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Availability L’availability è sinteticamente definita come la probabilità che un sistema sia pronto a fornire il servizio in un certo istante t, ovvero: A=P(!Failure at t) Più esplicitamente un sistema è available in un dato istante t se è in grado di fornire un servizio corretto. Reliability La reliability R(t) è la misura della continuità di un servizio ovvero la misura dell’intervallo di tempo in cui viene fornito un servizio corretto: R(t)=P(!Failure in (0,t)) Safety Per safety si intende generalmente l’assenza di condizioni di funzionamento che possano portare il sistema a danneggiare gli utenti e/o l’ambiente in cui opera. Dal punto di vista matematico la safety S(t) è la probabilità che non vi siano guasti catastrofici in [0,t]. S(t)= P (!CatastrophicFailures in [0,t]) È chiaro che il concetto di safety risulta relativo alla soggettiva valutazione dei rischi e dell’entità dei danni provocati dal sistema. Performability La performability è una metrica introdotta per valutare le prestazioni del sistema in caso di guasto. Mantainability La mantainability M(t) è definita come la capacità di un sistema di essere sottoposto a modifiche e riparazioni, ovvero di poter essere facilmente ripristinato in seguito al verificarsi di un guasto. 43 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Security La security è definita come l’assenza di manipolazioni improprie e accessi non autorizzati al sistema. Più in dettaglio un sistema sicuro è un sistema in cui coesistono gli attributi di availability (riadattata alla disponibilità del sistema solo verso utenti autorizzati), confidentiality (prevenzione della diffusione non autorizzata delle informazioni) e integrità (prevenzione di alterazioni improprie dello stato del sistema. 2.2 AFFIDABILITA’ IN RETI DI SENSORI SENZA CAVO Nell’ambito specifico delle reti di sensori senza cavo il concetto di affidabilità si formalizza come la capacità che deve avere una rete di conservare le proprie funzionalità indipendentemente dall’eventuale guasto di qualche sensore o semplicemente da una trasmissione fallita. Un nodo, ad esempio, può diventare inutilizzabile a causa dell’esaurimento della batteria o per danni fisici subiti nell’ambiente operativo. L’affidabilità riveste un ruolo sempre più importante nella progettazione delle Wireless Sensor Network visto che queste sono sempre più utilizzate in applicazioni mission critical come: rilevazione di intrusioni, applicazioni militari, etc. Il suo studio è reso, però, complicato da più fattori, già analizzati nei paragrafi precedenti come: • la limitatezza delle risorse sia energetiche che di memorizzazione e di computazione dei nodi; • limitata robustezza fisica dei sensori che assume un ruolo non di poco rilievo visto che le WSN vengono spesso utilizzate in ambienti esterni avversi e persino estremi; • la casualità della topologia della rete. 44 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Relativamente alla fase di progettazione di una Wireless Sensor Network gli aspetti su cui incide l’affidabilità e che quindi devono essere debitamente presi in considerazione sono: 1. Coverage & Deployment: con il quale si cerca di stimare un numero sufficiente di nodi sensori affinché un evento possa essere esaminato nella sua totalità. Al tempo stesso con questo aspetto si cerca di stabilire in che modo effettuare una misura accurata dei dati osservati e in che modo effettuare il deployment dei nodi per la conformazione della rete. 2. Information accurancy: con il quale ci si concentra principalmente sulla modalità di classificazione dei dati raccolti e sulla definizione di strategie per il trattamento delle misurazioni non accurate. 3. Dependable data trasport: aspetto con il quale si definiscono strategie per assicurare il recapito delle misurazioni al centro raccolta. In particolare si definiscono strategie per combattere errori di trasmissione, di omissione e di congestione Spesso fornire un certo livello di affidabilità risulta arduo, soprattutto in alcuni campi applicativi. Ad esempio il monitoraggio di strutture dinamiche [1], richiede alti requisiti di affidabilità, che devono ben amalgamarsi con i comuni attributi di efficienza energetica, scalabilità e autoconfigurazione tipici di una WSN. In particolare si può avere necessità di: una fine sincronizzazione temporale; minimizzare l’intervento umano sulla rete. una copertura minima dell’area da monitorare; Riguardo il primo aspetto questo risulta importante al fine di disporre di una caratterizzazione temporale precisa del fenomeno osservato. Questo requisito può essere rilassato nel caso in cui si considera una struttura della rete in cui i nodi sensori sono organizzati in cluster in quanto si potrebbe richiedere la sincronizzazione per ogni cluster e non dell’intera rete. 45 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Riguardo il secondo requisito questo risulta sempre più dominante nelle attuali installazioni di Wireless Sensor Network. L’intervento umano, spesso limitato alla sola sostituzione delle batterie dei nodi, o alla sostituzione di un nodo malfunzionante può risultare spesso improponibile (in caso di reti in scenari avversi) o estremamente costoso e per questo deve essere ridotto quanto più è possibile al minimo. Tecniche che cercano di soddisfare questa necessità sono basate sull’utilizzo di strategie di “load balancing” e di “incremento della vita delle batterie”. Il terzo aspetto, infine, è inteso come la possibilità di avere a disposizione un minimo ammontare di misurazioni al fine di poter avere una caratterizzazione completa del fenomeno che si sta analizzando e sarà analizzato in dettaglio nel successivo paragrafo. 2.2.1 Il problema della copertura Per comprendere bene cosa si intende per problema di copertura si può immaginare uno scenario in cui si hanno a disposizione n sensori, organizzati in un cluster, con i quali bisogna effettuare il monitoraggio di un ponte al fine di effettuarne una analisi delle vibrazioni. Un requisito potrebbe essere avere almeno k<n misurazioni per ogni ciclo di misurazione. È chiaro che il valore di k deve essere scelto riguardo alle caratteristiche del fenomeno da analizzare ed inoltre i k sensori devono essere scelti in modo da prevenire una polarizzazione della misura (ovvero misure che provengono solo da un zona osservata ad esempio quella limitrofa). Il requisito di copertura può essere quindi considerato a tutti gli effetti come un attributo che insieme alla availability, reliability, safety, ect permette di definire dependability del sistema. 46 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Un esempio ,che vede uno scenario composto da una rete di sensori utilizzata per il monitoraggio di disastri ambientali come gli incendi, chiarisce ancora meglio come la copertura può essere fondamentale per la definizione della dependability di un sistema. Una visione dell’architettura è mostrata in figura 2.1. In questo caso è necessario per far scattare l’allarme di incendio, che almeno un numero significativo di sensori mi forniscano misurazioni di temperature elevate e che quindi si abbia una adeguata copertura delle varie zone da monitorare. È chiaro che per avere una chiara dinamica della temperatura nel tempo è necessario che i vari sensori siano sincronizzati tra di loro ed inoltre che siano dotati di un modulo in grado di portare avanti una procedura di localizzazione se si suppone che questi siano disposti in maniera casuale nell’ambiente (tramite lancio attraverso un Figura 2.1: Architettura WSN per rilevazione incendio 47 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo aereo). In letteratura il problema della copertura è stato trattato secondo vari punti di vista. Per esempio l’ ”Art Gallery Problem” si concentra sul determinare il numero di controllori necessari per coprire una galleria d’arte in modo tale che ogni punto di essa sia monitorata almeno da un controllore. Questo problema è stato dimostrato essere risolvibile in uno spazio 2D ma si è mostrato di tipo NP-hard se è esteso ad uno spazio 3D [66]. Il lavoro di Meguerdichian et al. [67] definisce invece una metrica per la copertura dei sensori denominata sorveglianza (surveillance) utilizzabile come misura della qualità del servizio di una particolare rete di sensori senza cavo. Lo stesso problema della copertura è direttamente collegato al risparmio energetico dei nodi, infatti moltissimi lavori in letteratura sono dedicati a questa tematica e in particolare al problema dello scheduling ottimale dell’accensione dei nodi sensori al fine di preservare l’energia. Questi lavori si basano sul concetto di spegnere selettivamente i nodi sensori senza però inficiare sulla copertura totale che deve essere fornita. In [68] propone una euristica per selezionare sets di sensori mutuamente esclusivi per provvedere a una completa copertura dell’area da monitorare. Sempre basandosi sullo spegnimento dei nodi [71] propone uno schema molto interessante basato su un algoritmo di controllo della densità al fine di porre in uno stato di sleep alcuni sensori che appartengono ad aree popolate densamente, in modo da assicurare una lunga vita alla rete. I nodi in sleeping mode sono poi risvegliati periodicamente e non fanno altro che controllare se devono sopperire a fallimenti di nodi vicini. Risulta chiaro come la frequenza del risveglio venga settata in modo tale da essere un giusto compromesso tra la densità di nodi desiderata e consumo energetico. gli autori riescono a dimostrare che un tale schema estende il periodo di vita della rete secondo una proporzione lineare rispetto al numero di nodi utilizzati, usando circa l’1% del totale dell’energia consumata e resistendo al 48 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 38% di fallimenti dei nodi. Un altro schema di scheduling atto a preservare la copertura di una rete viene proposto da Tian et al. [69] dove l’analisi è incentrata sul determinare quali nodi possono essere spenti e quando devono essere risvegliati. 2.3 AFFIDABILITA’: STATO DELL’ARTE Molti sono gli studi presenti in letteratura che sono dedicati alla affidabilità nelle reti di sensori senza cavo. Un primo esempio è il lavoro di Basile et al. [38] dove sono analizzate e proposte strategie al fine di costruire reti wireless e reti ad-hoc affidabili e sicure. Il fulcro del lavoro è sulla nozione di inner-circle consistency, ovvero la cooperazione tra i nodi locali viene sfruttata al fine di neutralizzare errori e attacchi alla sorgente in modo tale da evitare che questi si possano propagare in tutta la rete. Come strumento per la valutazione delle strategie proposte si considera un modello dei fallimenti in cui le possibili cause di fallimento sono i crashing o i Byzantine behavior. Insieme al modello dei fallimenti viene utilizzato anche un modello della rete in cui si adottano sia tecniche statistiche sulla clusterizzazione che tecniche orientate al rispetto della security. Gli effetti sollevati dal fallimento di un singolo nodo sullo stato di funzionamento di una WSN sono invece analizzati nel lavoro di Shakkottai et al. [39]. In questo contesto è stato individuato un limite superiore alla probabilità che tutti i nodi siano connessi e tutta l’area della rete sia coperta, questo nell’ipotesi che i nodi siano uniformemente distribuiti sul suolo e che la probabilità di fallimento sia anch’essa uniforme in tutta la rete. Viene inoltre ricavata una condizione necessaria e sufficiente affinché la rete continui a coprire l’intera area (nonostante l’inaffidabilità dei nodi che la compongono) e viene anche ricavata la minima probabilità di funzionamento di un nodo al di là della quale la “copertura” dell’area non è 49 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo più garantita. Un aspetto non contemplato dal lavoro è però come la connettività sia influenzata dalla morte di nodi faulty o con batterie scariche, ipotesi in cui non varrebbe più l’assunzione di densità uniforme della rete. Un modello di reliability è poi fornito in [40] e [41]. In [40] sono presentati alcuni modelli a catene di Markow per diverse tipologie di sensori. La reliability viene calcolata per diversi “failure rate” e poi i modelli sono comparati in termini di costo e della distribuzione cumulativa e media della funzione di reliability. Arricchisce il lavoro anche un’analisi comparativa della reliability della rete condizionata all’utilizzo di tecniche di ridondanza spaziale o di codici ECC (error correcting code) In [41] Iyengar et al. focalizzano l’attenzione sulle misure di reliability per WSN, fornendo anche delle stime sul minimo e massimo ritardo nella consegna di un messaggio di un nodo verso il sink. Viene adottato all’uopo un modello a grafo probabilistico per rappresentare la rete, dove le probabilità (di perdita di pacchetti) sono ricavate da stime sul tasso di fallimento dei sensori. Viene definita la reliability di una WSN come la probabilità che esista un cammino tra il sink e almeno un unico nodo funzionante del cluster: adottando questa definizione viene dimostrato come per reti di topologia arbitraria, la soluzione del modello di affidabilità considerato rappresenti un problema di complessità non polinomiale, tranne che per un caso particolare analizzato, per cui vengono fornite anche delle misure ottenute tramite simulazione. In [42] Gupta e Kumar analizzano l’impatto della connettività sulla reliability della rete. A tale scopo viene analizzano il comportamento di una WSN organizzata in clusters, attraverso un fault model in cui vengono considerati solo i fallimenti del gateway relativi all’esaurimento delle batterie e a fallimenti del modulo radio: questi ultimi dovuti sia a guasti hardware che a fallimenti di nodi nel suo range operativo. Tutti i fallimenti considerati sono di durata permanente. 50 In base a questo modello dei Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo fallimenti, viene proposto un meccanismo di recupero basato sul consenso tra i gateway ancora funzionanti. Per testare la copertura della strategia proposta, viene adottata una tecnica di iniezione dei guasti simulata, tramite la quale viene dimostrato che l’approccio fornisce un miglioramento considerevole sulla stabilità del sistema riducendo l’overhead della ri- clusterizzazione e della riorganizzazione della rete. Il lavoro fornisce anche un’analisi teorica sulla soglia del range radio che garantisce la connettività tra nodi di una rete dislocata casualmente, utilizzando un modello matematico. Infine, uno studio, sull’impatto di fenomeni di invecchiamento dei nodi sulla reliability della rete, è sviluppato da Krishmachari [43] dove viene analizzata la correlazione tra la durata della vita di ogni nodo e il suo consumo energetico in rispetto di alcune metriche di affidabilità come il Mean Time To Failure. Risultati interessanti sono forniti in merito alle misure relative all’impatto delle strategie di data aggregation sulla durata della vita di un nodo. 2.4 AMBIENTI DI SIMULAZIONE Questo paragrafo si pone l’obiettivo di effettuare una carrellata dei vari ambienti di simulazione per l’analisi di reti di sensori senza cavo con particolare attenzione rivolta agli strumenti forniti dai vari ambienti per una caratterizzazione completa della rete emulata al fine di poterli sfruttare per ricavare parametri per l’analisi dell’affidabilità. Esaminare il comportamento di un sistema a tutti i livelli è necessario per raggiungere il massimo grado di accuratezza, infatti spesso un approccio basato sulla simulazione di algoritmi e protocolli di rete risulta inefficiente e questa inefficienza si accentua soprattutto in una Wireless Sensor Network 51 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dove i protocolli e le applicazioni possono interagire tra di loro facendo annullare il concetto di stratificazione [25]. Emstar, insieme a Tossim è stato uno dei primi simulatori esplicitamente progettati per le reti di sensori senza cavo, questo è framework concepito per studiare due tipi di WSN [29][30]: quelle costituite da sensori Microservers con architettura a 32-bit, che fanno uso tipicamente di sistema operativo Linux, e quelle composte da sensori Mica a 8-bit, che sfruttano il sistema operativo TinyOs. Emstar consente di studiare l’esecuzione di applicazioni di entrambi i tipi secondo varie modalità d’uso rese disponibili all’utente; è chiaro che l’emulazione sarà richiesta solo per le applicazioni destinate ai sensori Mica, mentre quelle per i Microservers sono normali applicazioni Linux che non necessitano di essere emulate. L’ambiente di simulazione offre anche una serie di servizi utili per creare applicazioni Linux, come vari algoritmi di routing (tra i quali il Direct Diffusion, che si occupa di inviare messaggi solo a gruppi di nodi interessati, utile per effettuare query mirate all’interno della rete di sensori), un servizio di localizzazione che i sensori possono adoperare per costruire e mantenere aggiornata in maniera dinamica la topologia della rete circostante, un servizio di sincronizzazione tempo virtuale/reale indispensabile nelle simulazioni ibride, ed altri ancora. Purtroppo non viene simulato l’uso del sensore, né il consumo energetico, e queste sono delle pecche abbastanza importanti in un emulatore che si prefigge lo scopo di studiare il funzionamento dei sensori a basso livello. Atemu è un simulatore del comportamento dell’intero hardware dei sensori, che usa come input il binario eseguibile dell’applicazione [31]. I sensori simulati sono quelli delle famiglie Atmel e Mica con processore AVR; una delle possibilità più interessanti di Atemu è quella di poter definire l’hardware dei sensori su cui eseguire le applicazioni. Il comportamento della rete può essere più che mai eterogeneo, decidendo sia le applicazioni 52 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo che l’architettura hardware di ciascun nodo o gruppo di nodi della rete, ed indicandone la posizione in modo da decidere la topologia della rete a piacimento (secondo un semplice modello 3D). L’utilizzo di Atemu è soprattutto in ambito di debugging, visto la possibilità di poter tenere sotto controllo, in ogni step della simulazione, lo stato di ciascun sensore (valore dei registri interni, uso della memoria, istruzione corrente, messaggi inviati e ricevuti). Anche in Atemu non esiste alcun modello del consumo energetico dei sensori della rete, e non è prevista nessun meccanismo per l’analisi dell’affidabilità. Avrora è un emulatore scritto in Java che simula il comportamento dell’intero hardware dei sensori, eseguendo il codice del programma in linguaggio assemblativo [32]. I sensori simulati sono quelli delle famiglie Atmel e Mica, dotati di processore AVR. La principale differenza con Atemu consiste nel fatto che Avrora è un simulatore ad eventi, e non tempo continuo. Non viene simulato il funzionamento dei sensori quando essi sono in sleep, saltando direttamente al prossimo evento nella coda d’attesa di quel sensore che ne provoca il risveglio ed il funzionamento. A questo si accompagna il fatto che ogni nodo viene simulato in un thread a parte dal simulatore, il che consente di velocizzare ulteriormente la simulazione, anche se ciò pone il delicato problema della sincronizzazione degli eventi che riguardano nodi diversi. Ns-2 [33], Glomosim [34] e Opnet [35] sono simulatori di rete, adattati o implementati per le WSN. Sono progettati per simulare specificamente lo strato di rete dello stack di comunicazione. Ns-2 non supporta in maniera nativa le WNS, ma esistono delle estensioni che forniscono all’ambiente di simulazione le capacità di simulare un canale trasmissivo wireless. Glomosim è stato progettato specificamente per supportare reti wireless e mette a disposizione un ottimo modello di propagazione radio. Opnet è un 53 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo simulatore standardizzato in ambito industriale e commerciale molto simile a ns-2. Opnet viene fornito con un modulo che simula la propagazione RF e interferenze, ma non supporta in maniera nativa le WSN. SensorSim [36] nasce come modulo aggiuntivo per ns-2. Sviluppato dai laboratori di ricerca UCLA2. SensorSim racchiude alcuni interessanti caratteristiche tra cui un modello dell’attività sensoristica, un modello della batteria per il consumo energerico dei nodi, un leggero stack protocollare appositamente progettato per le WSN e un modulo per la simulazione che consente l’interazione attraverso dei reali sensori, per una simulazione ‘ibrida’. J-Sim [37], è un ambiente di simulazione scritto in Java, con front-end in Tcl, sviluppato prendendo ispirazione da Ns-2 e dalla sua estensione Sensorsim. E’ realizzato secondo il paradigma della programmazione a componenti; costituisce un framework per la simulazione di reti di calcolatori in generale, wired e wireless, con in particolare un supporto dedicato alle WSN ispirato direttamente a Sensorsim; implementa funzionalità in maniera più completa rispetto a Ns-2, come ad esempio la simulazione ibrida, che può essere condotta in varie modalità. Shawn [58] è un simulatore orientato agli algoritmi, che offre all’utente un ambiente di supporto in cui può scrivere in linguaggio C++ l’algoritmo che desidera eseguire su ciascun nodo della rete. Oltre a decidere l’algoritmo che andrà in esecuzione sui nodi della rete in maniera omogenea, si possono stabilire alcune caratteristiche della simulazione, come il modello topologico (a scelta tra quelli esistenti), la posizione dei nodi, il modello di trasmissione dei messaggi sui link tra nodi adiacenti. Algosensim [59] ,alla stregua di Shawn, è un simulatore orientato agli algoritmi. È scritto in Java e l’ambiente di simulazione viene configurato mediante la scrittura di files XML. Al momento è disponibile solo una 54 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo versione alpha, anche se il framework del simulatore è stato completamente sviluppato così come buona parte delle classi. Omnet++ [60], infine, è un simulatore scritto in C++ secondo il paradigma della programmazione basata sui componenti, che usa il linguaggio Ned per la configurazione della simulazione. Anche se sul sito ufficiale è dichiarata l’esistenza di progetti per la simulazione di reti Internet, anche con elementi wireless, ed eventualmente WSN, per il momento tali estensioni sono assenti. La struttura del simulatore è sostanzialmente simile a quella di altri simulatori come Ns-2 e J-Sim. La differenza principale sta nel maggior livello di astrazione, nel minor numero di funzionalità offerte e nella maggiore semplicità della simulazione. In Omnet++ non esistono librerie di componenti che implementano ciascuno strato dello stack protocollare del software di rete; il simulatore è concepito per una rappresentazione molto più astratta dei nodi della rete, che nella maggior parte dei casi avviene tramite un unico componente, o un insieme di pochi componenti interni, che si occupano unicamente di descrivere come il nodo in questione gestisce la ricetrasmissione di messaggi. 2.4.1 Il Simulatore Tossim TOSSIM [26], [27] è un simulatore ad eventi che consente di effettuare il debugging e l’analisi di un’applicazione per TinyOS, semplicemente compilandola per la piattaforma PC, anziché per l’hardware del sensore (ad esempio mica). Naturalmente TOSSIM non simula il mondo reale, ma fa una serie di semplificazioni che permettono di mantenerne la scalabilità, senza pregiudicarne tuttavia l’accuratezza dei risultati. Le caratteristiche principali sono le seguenti: 55 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 9 TOSSIM simula il comportamento di TinyOS a basso livello, in particolare simula la comunicazione fra nodi a livello di bit e tutti gli interrupt di sistema; 9 gli interrupt sono temporizzati con precisione, mentre i tempi di esecuzione non vengono simulati (dal punto di vista del simulatore un pezzo di codice viene eseguito istantaneamente); 9 la propagazione dei segnali radio non viene simulata; i collegamenti fisici sono modellati attraverso un grafo che indica per ogni coppia di nodi la probabilità di errore sul bit (0 significa perfetta connettività, 1 connettività assente); 9 non viene simulato il comportamento della batteria ma viene solo quantificata l’energia consumata da ciascun nodo. 9 in TOSSIM un interrupt non può interrompere il codice attualmente in esecuzione, come invece è possibile nei mote reali; 9 in TOSSIM tutti i nodi sensori devono necessariamente eseguire la stessa applicazione. Il debugging delle applicazioni viene fatto generalmente inserendo nel codice delle chiamate alla funzione dbg, la quale consente appunto di inviare stringhe di testo al simulatore, specificandone anche il tipo. TOSSIM durante l’esecuzione legge questi messaggi di debug e mostra all’utente solo quelli del tipo corretto, specificato tramite la variabile d’ambiente DBG. Per quanto riguarda la comunicazione wireless, il simulatore fornisce due modelli del mezzo radio: • il modello simple; • il modello lossy. In entrambi i casi i segnali possono in un certo istante assumere solo i valori zero o uno e non hanno associata una informazione sull’intensità. Il modello simple si comporta come se i nodi fossero posizionati in una 56 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo singola cella, per cui tutti i bit trasmessi sono ricevuti senza errori da tutti i sensori presenti. Anche se non ci sono errori di trasmissione si possono comunque avere collisioni se due o più dispositivi trasmettono contemporaneamente, portando alla corruzione dei dati. Il modello lossy, più utilizzato in pratica, connette tutti i nodi in un grafo orientato, in cui ogni arco indica la probabilità che un bit trasmesso venga ricevuto invertito. Se ad esempio all’arco (a, b) è associato il valore 0.01 significa che ogni bit trasmesso da a ha l’1% di probabilità di essere ricevuto corrotto da b. Questo modello consente quindi di simulare topologie più complesse in cui non tutti i nodi sono connessi tra loro, permette di avere connessioni asimmetriche e di valutare le conseguenze delle interferenze. Il grafo può essere specificato fornendo al simulatore un file contenente i valori del bit-error-rate per ogni coppia di sensori; esiste anche la possibilità di generare il file attraverso lo strumento LossyBuilder, che costruisce il grafo basandosi sulla topologia e su dati sperimentali ottenuti dagli sviluppatori. 2.5 OSSERVAZIONI I vari simulatori analizzati nel paragrafo precedente, focalizzano la loro attenzione su varie peculiarità delle WSN, ma nessuno di essi è in grado di fornire delle misure di dependability della rete e/o dei nodi. Questa è una forte limitazione in quanto le WSN sono al giorno d’oggi utilizzate in svariati ambiti dove sono richiesti parametri di affidabilità del tutto differenti tra di loro. Infatti, come si è potuto constatare, le applicazioni scritte per reti WSN sono fortemente legate al contesto nel quale sono utilizzate e per questo sarebbe utile avere un meccanismo per la valutazione della dependability già in fase di progettazione. Tra i vari simulatori analizzati, in questo lavoro di tesi, si è scelto di utilizzare Tossim. La possibilità di poter eseguire le applicazioni tinyOS su 57 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo un normale PC, invece che su un dispositivo mote reale, ha sicuramente influito positivamente sulla scelta, in quanto è possibile testare e analizzare un’applicazione per reti di sensori in un ambiente controllato e ripetibile. Un altro vantaggio evidente offerto da questo framework, a differenza di altri simili come Emstar, è la possibilità di riutilizzare il codice per eseguirlo direttamente su un dispositivo mote reale senza effettuarne nessuna modifica. Infatti altri simulatori come Emstar prevedono che non venga eseguito il file binario che andrà sui sensori veri e propri ma una versione differente del codice, la quale non prevede simulazione del consumo energetico né gestione delle interruzioni hardware, schedulando tutti gli eventi come una serie di tasks di breve durata che vengono eseguiti in sequenza uno dopo l’altro. Altro punto a favore di Tossim è sicuramente la qualità e quantità della documentazione e il grosso interesse della comunità di sviluppatori di WSN per questo framework proprio per le caratteristiche succitate. 58 Capitolo 3 Algoritmi per la raccolta dati affidabile 3.1 CONSIDERAZIONI GENERALI ED OBIETTIVI Come già messo in evidenza nel paragrafo 1.9 l’ambito di applicazione delle reti di sensori senza cavo è molto vasto. L’obiettivo di questa tesi è di progettare e valutare algoritmi per la raccolta dati affidabile. Il contesto specifico all’interno del quale si colloca il lavoro è il monitoraggio di una struttura dinamica, ovvero il monitoraggio dello stato di salute di una struttura attraverso un apposita rete di sensori che possa essere in grado di fornire mappe di deformazione, distribuzioni di temperatura, misure di vibrazione e identificazione e localizzazione di danni interni alla struttura. Attualmente i sistemi sviluppati sono basati su reti “single-hop” cablate cioè su reti nelle quali si fa l’ipotesi che ogni sensore sia in grado di comunicare con un nodo atto all’acquisizione delle misurazioni attraverso l’utilizzo di un canale cablato. Questi sistemi sono di solito composti da un numero basso di dispositivi sensori e presentano problemi come gli elevati costi di installazione e il rumore elettromagnetico, non trascurabile quando vengono utilizzati cavi di trasmissione lunghi (superiori ai 100m). Ciò comporta 59 degrado delle misurazioni e Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo sovra-voltaggi che possono causare guasti agli stessi dispositivi. Le reti di sensori senza cavo vengono in aiuto proprio per risolvere problemi come questi in quanto prevedono l’eliminazione dei cavi e provvedono all’uso di segnali digitali che sono meno soggetti ad interferenze e sovra-voltaggi. D’altronde le WSN introducono una nuova serie di problemi dovuti alle caratteristiche del mezzo wireless attraverso cui avvengono le comunicazioni dei nodi e all’esaurimento delle riserve energetiche dei singoli nodi. Di conseguenza la fase di sviluppo si arricchisce di nuove tematiche e requisiti che vanno ad aggiungersi a quelli base per formare uno scenario in cui è necessario avere: 1. una raccolta affidabile di un numero sufficiente di misurazioni in una vasta area; 2. sincronizzazione delle misurazioni; 3. utilizzo di protocolli di raccolta dati energeticamente efficienti; 4. minimizzazione dell’intervento umano; In questo lavoro di tesi si focalizzerà l’attenzione soprattutto sui punti 1 e 3 tralasciando il problema della sincronizzazione delle misurazioni. 3.2 ALGORITMI DI DATA GATHERING Con il termine Data Gathering si intende una famiglia di algoritmi, usati tipicamente in applicazioni di tipo monitoring, per raccogliere dati globalmente e trasmetterli al nodo base in gergo denominato nodo sink. Lo scenario è quello di una rete di sensori, con una certa struttura, di cui si conosce la localizzazione di ogni singolo nodo e dove si ipotizza che ogni nodo sia in grado di comunicare in multi-hop con qualsiasi altro nodo della rete e quindi anche direttamente con il nodo sink (figura 3.1). 60 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 3.1: Scenario tipico di una rete di sensori wireless: i comandi sono inoltrati in modalità broadcast mentre le misurazioni recapitate al nodo sink tramite protocollo multihop Questo genere di algoritmi cercano un modo efficiente, in termini di vita globale della rete, per raccogliere i dati e renderli disponibili al nodo base. Molto spesso si ipotizza che ogni nodo abbia anche la possibilità di fondere e aggregare le informazioni ricevute, ed eventualmente instradarle seguendo un percorso, variabile nel tempo, che sfrutta i nodi che ad esempio sono dotati di maggiore energia residua. Queste tecniche sono molto utilizzate e permettono la riduzione dell’informazione trasmessa mentre questa viaggia all’interno della rete e sono denominate: Data aggregation e data fusion. Entrambe evitano lo spreco di risorse (come la banda e l’energia) e cercano di limitare il traffico che transita nella rete. L’idea principale consiste nell’unire in un unico pacchetto inviato l’informazioni proveniente da più nodi prima di inoltrarla verso la destinazione, aumentando l’efficienza delle trasmissioni quando i dati da trasmettere sono pochi. Differenti strategie di data fusion e aggregation richiedono diverse risorse e possono determinare variazioni nel routing. 61 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo In letteratura [11] il problema del Data Gathering viene analiticamente formalizzato come un problema di programmazione lineare che prende il nome di MLDA (Maximum lifetime data gathering). Per reti ad elevato numero di sensori è evidente come l’utilizzo di normali tecniche per risolvere la PL risulti troppo oneroso in termini computazionali. Proprio per ovviare a questo problema ultimamente si è andato sempre più sviluppando un approccio clustering- based che nel caso dell’MLDA da una soluzione euristica al problema, garantendo nel worst-case complessità polinomiale in n, dove con n si indica il numero di sensori della rete. L’idea è quella di suddividere la rete in m cluster, cercando quanto più di individuare delle zone in cui i sensori si attestano su simili condizioni misurate, ad esempio “zona a temperatura compresa fra 50° C e 80° C, oppure “zona a bassa luminosità”, etc. Questo concetto verrà dettagliatamente ripreso nel paragrafo 3.4. 3.3 INTERAZIONE TRA I NODI: IL PROTOCOLLO MULTIHOP Il problema di avere una vasta area da monitorare nella quale si devono far pervenire le misurazioni ad un nodo base (sink) può essere una grossa limitazione nel caso in cui non si abbiano a disposizione degli adeguati protocolli di rete. La soluzione come gia si è accennato nel paragrafo 1.6.3 è l’utilizzo del protocollo multihop che consente ai nodi sensore all’esterno del raggio di azione del ricetrasmettitore dalla stazione base di trasmettere i dati ai nodi sensore vicini, i quali a turno inoltreranno i dati fino alla stazione base. Il processo di inoltro potrebbe coinvolgere anche molti nodi sensori ma le informazioni potrebbero comunque giungere a destinazione nel caso in cui non si verifichino collisioni. La versione 1.1.x e successive di TinyOs includono delle librerie di 62 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo componenti che forniscono un routing multi-hop realizzato appositamente per le reti di sensori wireless: l’implementazione, contenuta all’interno della cartella $TOSROOT/tos/lib/Route impiega l’algoritmo dello shortest path first con una singola destinazione, rappresentata dalla stazione base (nodo con identificativo univoco 0), svolgendo una stima dei collegamenti. L’inoltro dei dati e i meccanismi di routing sono implementati in due diversi componenti (MultiHopEngineM e MultiHopLEPSM) con una singola interfaccia (MultiHopRouter), che li collega, al fine di permettere una più facile integrazione di ulteriori schemi di routing in futuro (figura 3.2). MultiHopEngineM stabilisce la logica di movimento generale dei pacchetti per le funzionalità che riguardono il routing multihop. Tramite RouteSelect il modulo individua il next-hop nel cammino di routing ed invia i pacchetti utilizzando la porta SendMsg. MultiHopLEPSM fornisce: meccanismi per la stima dei collegamenti e per la selezione del nodo genitore (Link Estimation Parent Selection); strumenti per monitorare il traffico ricevuto da un nodo; primitive per la ricezione/trasmissione dei messaggi di update e Figura 3.2: Configurazione di Multihop Router 63 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo delle informazioni di routing direttamente dai nodi vicini tramite la porta Snoop. Le informazioni accumulate sono poi utilizzate per la scelta del next-hop. La procedura di inoltro dei messaggi di aggiornamento dei cammini è periodica (ogni 10 sec) così come quella di rielaborazione delle informazioni ricevute (50 sec). Infine la configurazione MultiHopRouter connette i due moduli suddetti e la configurazione importa le porte fornite dalle funzioni Receive, Send, Intercept Snoop. La porta fornita da SendMsg, invece, è collegata ai componenti della libreria QueuedSend la quale è impiegata per la gestione della coda dei pacchetti, sia che essi siano stati originati localmente dal nodo sensore sia che essi siano stati inoltrati da altri nodi. L’utilizzo del protocollo multihop risulta essere una buona soluzione per scenari in cui bisogna effettuare il monitoraggio di vaste aree, però va anche evidenziato che è la soluzione più semplice possibile, e di conseguenza presenta alcuni svantaggi come ad esempio il recapito di tutte le misurazioni. Infatti i link RF delle comunicazioni wireless sono affetti dal problema dell’interferenza, che nella maggior parte dei casi è dovuto alla collisione di pacchetti che viaggiano nell’etere. Ciò causa perdita di misurazioni e di conseguenza perdita di informazione relativa ad una zona monitorata. Due sono quindi gli aspetti che debbono essere trattati: 1. utilizzo di approcci tesi ad evitare zone di non copertura; 2. utilizzo di tecniche per il recapito affidabile delle informazioni. Nel prossimo paragrafo si tratterà in particolare il punto 1 mentre il 2 punto sarà dettagliato nel paragrafo 3.7 64 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 3.4 CLUSTERING IN UNA WSN Dato l’elevato numero di sensori che compongono la rete, può risultare conveniente per molte applicazioni raggruppare i nodi in cluster (vedi figura 3.3), ed eleggere per ciascuno gruppo un super-nodo, detto cluster-head. In questa accezione la raccolta di informazione può essere intesa in due modi differenti: 1. come la collezione delle varie misure effettuate dai nodi appartenenti allo stesso cluster, le quali vengono recapitate al nodo sink tramite il cluster-head in quanto questo può, ad esempio, essere quello che impiega la minor quantità di energia per il recapito delle informazioni; 2. come raccolta della misurazione da parte del solo cluster-head. Questa è la soluzione proposta e in questo caso lo schema assume più un significato orientato al “load balancing”, visto che si mantiene attivo un solo sensore per cluster e con adeguate tecniche di elezione del cluster-head si può introdurre una politica di risparmio energia grazie all’accensione/spegnimento selettivo dei vari nodi del gruppo. L’utilizzo dello schema “cluster-based” permette all’intero gruppo appartenente allo stesso cluster di essere identificato con il medesimo indirizzo; questa tecnica ha quindi il vantaggio di ridurre il numero di indirizzi fisici da allocare mantenendo la possibilità di individuare univocamente una parte della rete, inoltre si riducono i messaggi inviati che non devono essere più ripetuti per ogni nodo appartenete al cluster, e si riesce ad aumentare la ridondanza della rete e la risoluzione della misura effettuata. Una organizzazione del genere affronta il problema della non copertura di determinate zone nel corso di una procedura di monitoraggio; infatti in ambito locale al cluster è applicato il concetto di ridondanza. La stessa struttura può essere iterata su più livelli creando cluster di cluster, 65 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 3.3: Organizzazione in cluster della rete fino a raggiungere il sink, il nodo di raccolta di tutte le informazioni e d’interfaccia con reti esterne o con l’utente finale. La scelta del cluster head può essere casuale, o può tener conto delle risorse dei singoli nodi, prediligendo come cluster head quello dotato di maggiore energia e meno impegnato in comunicazioni radio; infatti è evidente che il ruolo di cluster head richieda maggiori funzionalità, le quali coincidono con un più elevato consumo di potenza. È chiaro che è anche possibile assegnare periodicamente il compito di capo cluster a nodi differenti, che in momenti diversi risultino i più idonei a farsene carico. Riepilogando partizionare in cluster una rete di sensori wireless può servire sia in applicazioni di tipo Data gathering dove è richiesta una suddivisione in aree ciascuna delle quali corrisponde, quanto più è possibile ad una certa condizione ambientale, sia nel Direct Diffusion per eleggere una gerarchia di nodi più importanti, detti sempre cluster-head [12], e delegare poi a questi 66 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo il compito di inoltrare l’interest nella rete, al posto di usare un banale flooding. Il clustering può essere effettuato con due approcci diversi: Clustering centralizzato: l’algoritmo di clustering gira sul nodo base della rete. La condizione necessaria è che il nodo base riceva tutti i dati dai sensori. È evidente come questa tecnica vada a collidere con il concetto di aggregazione, che tende a non far giungere al nodo base i dati relativi a tutti i sensori, bensì solo i pacchetti di informazioni fuse e concentrate. Clustering distribuito: è di gran lunga il più usato per supportare tecniche di Data aggregation, Data gathering [11], e Direct diffussion [12]. Il compito di partizionare in cluster viene decentralizzato e viene distribuito su ogni nodo. Uno degli algoritmi di clustering distribuito più noto è il DEM (Distributed Expectation Maximization [13]). Lo scopo è quello di avere una partizione in cluster sempre aggiornata dei sensori, in base a delle condizioni particolari che si verificano nell’ambiente. Si assume che ogni nodo della rete rilevi dei dati (o degli eventi) che possono essere descritti da un insieme di condizioni elementari. L’algoritmo produce una stima della densità dei sensori per ciascuna di queste condizioni e rende quindi possibile la clusterizzazione. Le elaborazioni avvengono localmente al nodo, non è necessario quindi che i dati rilevati vengano inoltrati ad una stazione centrale che effettua i calcoli. Inoltre l’algoritmo non richiede che i sensori si scambino i dati effettivamente rilevati, ma solamente piccoli set di dati statistici di aggiornamento. Un altro vantaggio degli algoritmi DEM è che non producono trasmissioni simultanee; in altri termini è garantito che, ad ogni intervallo temporale, l’algoritmo scambia uno e un solo 67 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo pacchetto di aggiornamento fra due nodi (ad uno o più vicinati di distanza). Questa scarsa necessità di comunicazione rende l’algoritmo molto poco pesante a livello di traffico introdotto sulla rete e quindi risulta facilmente integrabile in qualsiasi applicazione che prevede una partizione in cluster o una stima della densità. 3.5 CLUSTERING: STATO DELL’ARTE Molti sono gli studi presenti in letteratura dedicati al clustering di reti di sensori senza cavo e questi possono essere classificati in base all’approccio seguito per effettuare proprio la procedura di clustering. In particolare verranno trattati algoritmi basati su criteri di prossimità, potenza trasmissiva, numero di hop (k-hop clustering), budget-based Un primo lavoro è quello di Heinzelman et al [10] che propongono il protocollo LEACH (Low Energy Adaptive Clustering Hierarchy) appositamente ideato per applicazioni atte al monitoraggio ambientale. L’approccio sul quale si basa il protocollo è fondato sulle seguenti 2 assunzioni: (i) esiste un'unica base station con la quale tutti i sensori vogliono comunicare; (ii) tutti i sensori hanno la possibilità di comunicare direttamente con la base station. Al fine di riguardare il consumo energetico dei nodi il protocollo LEACH seleziona un numero p di sensori che fungono da cluster-head, dove p è un parametro che deve essere esaminato dal punto di vista ingegneristico a priori. I cluster-heads comunicano direttamente con la base station e gli altri nodi inoltrano le proprie misurazioni attraverso i cluster-heads (tipicamente quello più vicino a loro). Al fine di distribuire equamente il consumo energetico dei nodi il protocollo LEACH implementa una procedura di load-balancing che permette ai vari nodi di diventare cluster-heads in differenti istanti temporali. Si prevede inoltre che un nodo 68 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo possa essere rieletto solo quando tutti i restanti candidati sono già stati eletti almeno una volta. I risultati a cui Heinzelman et al giungono mostrano che il protocollo LEACH riduce l’energia associata alla comunicazione di circa otto volte rispetto alla trasmissione diretta (direct-transmission) e inoltre che la durata energetica del primo nodo ad esaurirsi aumenta di circa 8 volte rispetto al caso in cui è usato direct-transmission, mentre l’ultimo nodo si esaurisce circa 3 volte dopo l’esaurimento dell’ultimo nodo negli altri protocolli. Lindsey et al. [44] proseguendo dai risultati ottenuti con il protocollo LEACH proposero PEGASIS (Power-Efficient GAthering in Sensor Information Systems), un protocollo in cui i nodi trasmettono le informazioni al loro vicino più vicino e i messaggi sono trasmessi alla base station basandosi su uno schema a catena. Il protocollo PEGASIS si è dimostrato più robusto rispetto al LEACH nei riguardi dei fallimenti dei nodi. Subramanian e Katz [45] propongono invece delle linee guida per la progettazione di reti di sensori auto-organizzanti in cluster. Viene posta enfasi sull’importanza di implementare una struttura gerarchica al fine di ridurre la complessità del routing per ogni nodo, in particolare viene suggerito un approccio per il clustering nei quali i nodi “beginner” (iniziatori) inviano un “solicitation message” a tutti i nodi che possono ascoltarli. In ogni round dell’algoritmo gli iniziatori incrementano la loro potenza trasmissiva e il processo di clustering continua fin quando il numero dei nodi che rispondono sono compresi tra limite min e max di nodi per cluster. L’approccio utilizzato da Subramanian e Katz è molto simile all’ “Expanding Ring” di Ramamoorthy et al [46], fatta eccezione per il fatto che i nodi “beginner”ora non incrementano la loro potenza trasmissivo ma il numero di hop. Facciamo notare però che questo tipo di approccio può avere 69 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo una complessità nel caso peggiore molto alta in quanto dipende dal numero totale di sensori presenti nella rete più che dallo specifico limite sulla dimensione del cluster. Una soluzione alternativa alla realizzazione di cluster con limitate dimensioni e con un overhead di messaggi basso è l’approccio budget-based clustering. In questo tipo di algoritmi al nodo iniziatore (cluster-head) è assegnato un budget iniziale. Il cluster-head inizia col distribuire il proprio budget ai suoi vicini i quali a loro volta fanno lo stesso fin quando il budget non è esaurito. Questo tipo di approccio permette una crescita dei vari cluster basandosi su decisioni locali al nodo ed evitando di coinvolgere i cluster head in ogni round, diminuendo in questo modo l’overhead dei messaggi. Controllando quindi il budget allocato per la formazione del cluster si è in grado di controllare il numero superiore alla dimensione del cluster. Krishnan e Starobinski [47] propongono due algoritmi per budgetbased clustering: rapid e persistent. Entrambi astraggono dal numero e dalla dislocazione delle base station nella rete e non considerando l’assunzione della connettività diretta (molto utile quando si considerano scenari reali nei quali ci sono da considerare possibili ostacoli durante la trasmissione). Il lavoro si pone di tener in considerazione: (i) l’efficienza dei messaggi che è cruciale per mantenere limitati i requisiti di banda e il consumo energetico dei sensori, (ii) la necessità di avere dimensioni dei cluster limitate in modo da avere un impatto favorevole sulle performance dei protocolli di routing e, (iii) scelta di adeguati budget per la procedura di clustering al fine di controllare le dimensioni e il numero di cluster prodotti. Una evoluzione allo studio di Krishnan e Starobinski è proposto da Tzevelekas et al [48] dove è descritta una metodologia intelligente di distribuzione dei budget ai vicini. L’idea è quella di far si che i nodi possano tenere in considerazione le caratteristiche dei propri vicini al fine di stabilire politiche per la distribuzione del budgets. 70 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo In [49] viene proposto un algoritmo intelligente per lo sviluppo di reti di sensori wireless organizzate in cluster ed energeticamente efficienti, nel quale ogni nodo sensore decide se effettuare l’operazione di “join” a un cluster o se restare in uno stato di funzionamento peer to peer basando la sua scelta sulla densità dei sensori nell’area e sul suo livello energetico. Il lavoro proposto da Guo [50], invece, pone l’attenzione sullo sviluppo di un metodo di formazione di cluster efficiente dal punto di vista dei costi. Tuttavia il metodo agisce posizionando “sentinelle” (cluster head CH) al centro di ogni cluster e assume che la topologia della rete e del numero di cluster presenti sia nota. Il protocollo distribuito HEED proposto in [51] , assume di eleggere i cluster heads in base alla loro energia residua e non tenendo conto della distribuzione dei nodi. Infatti HEED presuppone che la distribuzione dei nodi sensori nella rete sia uniforme. Questo approccio però presenta l’evidente problema che si possa verificare una situazione nella quale tutti i cluster head sono localizzati in una regione specifica della rete considerata. Altri lavori come [52,53,54] si sono invece incentrati su k-hop clustering algorithm disinteressandosi però di considerare la completa totalità dei vincoli riguardanti la formazione dei cluster, infatti in [52,53] si considera solo il vincolo relativo al numero di nodi all’interno del cluster mentre in [54] ci si basa solo sul cluster-radius. Più in particolare in [53] si presuppone che un nodo possa essere incluso in un numero costante di cluster e che l’intersezione di due cluster possa includere un piccolo numero di nodi. Bejerano [55] basa invece la suddivisione in cluster della rete su un algoritmo di approssimazione polinomiale in modo da avere un numero minimo di cluster disgiunti. Al fine di considerare il problema del clustering e al tempo stesso rispettare i vincoli di QOS, Bejerano propone di suddividere il problema in due parti. Il primo mira a ricercare il minimo 71 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo numero di cluster disgiunti che contengono tutti i nodi della rete sempre nel rispetto di un estremo superiore al cluster radius. Il secondo invece propone di considerare uno spanning tree in ogni cluster e di prevedere che i cluster che violano il vincolo di carico max e di cluster size vengano ulteriormente suddivisi in sottocluster. Si assume in questa accezione che ogni nodo abbia un peso (rappresentante la sua richiesta di banda) e che il totale di pesi di tutti i cluster sia limitato. Infine viene introdotto un meccanismo per massimizzare il throughput di ogni cluster senza violare i requisiti di QOS. Infine Aoun e Boutaba [56], analizzano il problema del clustering sottoposto a limiti superiori per quanto riguarda la latenza e il consumo di energia dei nodi intermedi. Il lavoro complementa i lavori precedenti di Bejerano e Gupta in quanto tiene in conto anche del problema della formazione dei cluster (nel rispetto di un limite superiore sul cluster-radius, sulla dimensione del cluster e sul traffico trasmesso) e della scelta dei vari cluster-head. In particolare ogni cluster sarà dotato di un nodo che fingerà da gateway verso il nodo base e servirà quindi i nodi presenti all’interno del cluster. Il lavoro prevede che ogni nodo sia associato ad un gateway e che possa sceglierne un altro in caso di “path failure”. 3.6 APPROCCIO PROPOSTO PER IL CLUSTERING Dai precedenti paragrafi è emerso come il clustering risulta un’ottima soluzione per implementazione di strategie di fault-tolerance e anche per la gestione del problema della copertura di zone monitorate. Dal paragrafo 3.5 si è potuto constatare anche come molti sono stati gli studi atti all’individuazione di protocolli energeticamente efficienti per il clustering. In questo lavoro di tesi l’esigenza di aumentare quanto più possibile la vita di una rete è particolarmente sentita e per questo si è pensato di sfruttare il protocollo di clustering unitamente al paradigma di leader-election periodico all’interno di ogni cluster. Questo approccio sembra avvicinarsi 72 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo molto al protocollo PEGASIS proposto da Lindsey et al. [44] , ma presenta una interpretazione del tutto diversa del concetto di cluster-head. Per chiarezza consideriamo una WSN dotata di un nodo sink e di un cluster A e un cluster B, dove con X0…Xn-1 indichiamo i mote appartenenti al cluster A e con Y0…Ym-1 i mote appartenenti al cluster B. Supponiamo che i nodi X0 e Y0 siano rispettivamente i cluster-head. Secondo Lindsey i nodi X0 e Y0 saranno rispettivamente quelli che dovranno incaricarsi dell’inoltro delle misurazioni effettuate dagli altri mote all’interno del cluster (cioè dei nodi X1..Xn-1 e Y1…Yn-1 rispettivamente), in altri termini fungono da intermediari tra i sensori appartenenti al cluster A e cluster B e il nodo sink. In questa accezione la scelta di avere una procedura di leader-election periodica è nell’ottica di scegliere dinamicamente il nodo dotato di uno “stato di salute” migliore e in grado di comunicare con il nodo sink nel modo energeticamente più efficiente. In questo lavoro di tesi questo concetto viene ulteriormente estremizzato considerando il cluster-head come l’unico nodo delegato alla misurazione durante un ciclo di monitoraggio. In questo caso quindi i nodi X1..Xn-1 e Y1..Yn-1 non saranno soggetti al carico computazionale dovuto alla procedura di misurazione e avranno solo un ruolo passivo all’interno della rete. Più in particolare si possono prevedere due scenari: un primo in cui i suddetti nodi svolgeranno le usuali azioni atte al forwarding dei pacchetti provenienti dagli altri nodi e all’aggiornamento delle tabelle di routing per il funzionamento del protocollo multihop., e un secondo in cui i nodi sono completamente spenti e saranno previste procedure di risveglio solo per partecipare alla procedura di elezione di un nuovo leader. Riguardo la procedura di leader-election, risulta chiaro, in questo caso, che è intesa maggiormente nell’ottica di load-balancing e potrà essere sviluppata in qualsiasi modo e quindi sia seguendo un paradigma che mira a eguagliare i tempi di carico dei vari mote, sia seguendo un paradigma che mira a rendere 73 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo il consumo energetico dei mote all’interno dello stesso cluster quanto più uniforme possibile. 3.6.1 Procedura di elezione del leader Riguardo la procedura di leader-election la rete è stata addestrata seguendo sostanzialmente due linee guida: 1. chi effettua l’elezione; 2. intervallo temporale in cui un nodo è cluster head Dalla combinazione delle due possono essere ricavati quattro scenari diversi, in particolare una prima soluzione ha previsto di delegare la procedura di elezione ai nodi del cluster prevedendo un rate periodico di attivazione della procedura per l’elezione di un nuovo leader. Una seconda, invece, ha previsto un algoritmo centralizzato dove è il nodo sink a decidere il futuro leader di un cluster e prevedendo una nuova elezione solo nel momento in cui un nodo leader ha esaurito le proprie riserve energetiche. Riguardo la prima soluzione l’algoritmo di elezione distribuito scelto all’interno del cluster è stato una sorta di election ring opportunamente modificato per adattarsi al meglio alle caratteristiche delle reti di sensori senza cavo. Ovvero si prevede che ogni cluster sia organizzato in un anello logico dove ogni nodo sensore diventa cluster-head nel caso in cui abbia un token che gli può essere stato assegnato dall’inizio o ceduto da un altro nodo sensore. L’algoritmo è stato preferito rispetto all’algoritmo di Garcia Molina (algoritmo del prepotente o del bully), soprattutto per il basso carico computazionale della procedura di elezione. Volendo essere più precisi in questo caso la procedura di elezione è ridotta al minimo ma ciò ben si sposa con l’obiettivo di evitare quanto più è possibile sprechi di energia e distribuire quanto più è possibile il carico tra i nodi sensori. La gestione di nodi che esauriscono le proprie riserve energetiche e di fallimenti nelle 74 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo comunicazioni possono essere gestite in maniera efficiente tramite varie politiche. La situazione che potrebbe verificarsi è quella in cui il nodo candidato a diventare il prossimo cluster-head sia non raggiungibile o a causa di una degradazione del collegamento o a causa del suo esaurimento energetico. In questi due casi il nodo che attualmente riveste il ruolo di leader può avere sia un approccio ottimistico e quindi rimanere ancora leader per un altro ciclo di misurazione (tentando poi di ricontattarlo nella successiva fase di elezione) o tentare di contattare il prossimo nodo dell’anello logico, ancora attivo. Riguardo la scelta del nuovo cluster-head ovvero del sensore a cui cedere il token si possono immaginare algoritmi che scelgano in base allo stato di salute generale dei vari nodi, rifacendosi in generale a PEGASIS o HEED, però anche se ciò tiene maggiormente in conto lo stato di “salute” generale del cluster, dall’altro si ha un notevole incremento dei messaggi che i vari nodi sensori devono scambiarsi al fine di poter prendere una decisione. La seconda soluzione prevede invece che sia il nodo sink a distribuire i token. In questo caso si presuppone che il nodo delegato al ruolo di leader resti lo stesso fino al suo esaurimento energetico, dopodichè sarà sempre il nodo sink ad eleggerne un altro. 3.7 ALGORITMI DI TRASPORTO AFFIDABILE Fino ad ora è si sono presi in considerazione aspetti quali il clustering e l’elezione al fine di aumentare la vita media della rete però non è stato ancora trattato il problema di avere un protocollo di trasporto che sia affidabile e che quindi si incarichi del recapito affidabile delle misurazioni presso il nodo sink. Il problema di avere una trasmissione affidabile tra nodi sensori remoti anche in presenza di più passi di comunicazione (multihop), di errori sui canali, di collisioni e di congestione ha le seguenti dimensioni: 75 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo 1. trasmissione di : pacchetti singoli vs blocchi di pacchetti vs stream di pacchetti in quanto il recapito affidabile di singoli pacchetti può essere importante ad esempio per dati aggregati, quello di blocchi adatto per applicazioni che usano meccanismi di disseminazione di query nella rete, mentre quello di stream adatto per applicazioni col compito di consegna periodiche di gruppi di misurazioni 2. recapito garantito vs recapito stocastico in quanto per alcune applicazioni può essere necessario un alto livello di affidabilità, come le query distribuite, ect mentre altre possono anche tollerare perdite purchè contenute in un certo range (ad esempio quando molti sensori provvedono ad inviare misurazioni correlate tra di loro); 3. dai nodi sensori al sink vs dal nodo sink ai sensori e in questo caso si parla di “forward path” quando il flusso è quello che parte dai nodi e arriva al Sink e di “reverse path” quando il flusso interessa i dati inviati dal sink verso i nodi della rete. Il “Reliable Multi-Segment Transport” (RMST) proposto da Heidemann et al. [61] e il “Pump Slowly, Fetch Quickly” (PSFQ) di Wan et al. [62] realizzano un protocollo di trasporto per il recapito al sink di blocchi di pacchetti. L’RMST fu progettato per essere utilizzato unitamente al direct diffusion [63] e prevede uno schema di recapito dei pacchetti di tipo “endto-end”. Il protocollo è basato su l’utilizzo selettivo di messaggi NACK e può essere usato secondo due schemi: “caching mode” e “non caching mode”. Secondo il primo schema un numero di nodi lungo un percorso, ad esempio quello utilizzato dal direct diffusion per recapitare i dati al nodo sink, sono denominati come “RMST node”. Ogni RSMT node provvede a memorizzare in cache i frammenti di dati che compongono il flusso di comunicazione, e a mantenere un timer associato ad ogni flusso di comunicazione. Quando un frammento non è ricevuto prima che il timer sia 76 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 3.4: Architettura protocollo RMST scaduto viene inviato un NACK sul percorso e il primo RMST node che ha l’informazione richiesta provvede a ritrasmetterla. Il sink in questo caso agisce come ultimo RMST node e risulta essere l’unico se si utilizza la modalità non caching. Gli svantaggi di questo tipo di protocollo sono principalmente legati: 1) al meccanismo di caching che richiede un significativo overhead in termini di potenza dissipata per le operazioni di mantenimento e 2) al problema di essere legati al direct diffusion. Il protocollo PSFQ proposto da Wan et al.[62] è molto simile al RMST solo che opera sul “reverse path” ovvero da sink a nodi sensore e comprende tre funzioni: 1. trasmissione dei messaggi velocemente (operazione di pump) 2. recupero veloce da errori di trasmissione (operazione di fetch) 3. monitoraggio dello stato selettivo (operazione di report). Ogni nodo intermedio mantiene i dati in una cache; quando viene ricevuto un pacchetto il nodo controlla il contenuto confrontandolo con quelli contenuti in cache e vengono scartati i duplicati. Se il pacchetto ricevuto non era contenuto in cache allora significa che è nuovo, di conseguenza viene decrementato il campo TTL e viene inoltrato ai vicini nel caso in cui il TTL non sia uguale a zero e non vi siano salti nei numeri di sequenza dei pacchetti. Nel caso in cui è rilevato un salto nei numeri di sequenza allora il 77 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo nodo effettua una operazione di fetch richiedendo una ritrasmissione ai nodi vicini. Anche questo protocollo risulta molto oneroso in termini di potenza dissipata e inoltre presenta anche un grosso inconveniente, in quanto la reliability hop by hop non garantisce la reliability end-to-end. Lo schema sviluppato nel protocollo GARUDA [64] molto simile al PSFQ è mirato al trasporto affidabile di blocchi di dati dal nodo sink a tutti gli altri sensori o a una parte significativa della rete. Questo protocollo usa uno schema basato su messaggi di NACK e fa molta attenzione che il primo pacchetto di un blocco sia recapitato in modo affidabile a tutti i sensori. In questo modo viene risolto il problema degli schemi basati sui messaggi NACK ovvero i destinatari devono ricevere almeno un pacchetto del blocco affinché possano accorgersi delle perdite di ulteriori pacchetti. I protocolli fino ad ora descritti sono stati concepiti per assicurare una affidabilità di tipo end to end a livello di pacchetti. Akyildiz, invece propone ESRT (Event to Sink Reliable Transport) un protocollo per gestire la reliability sulla forward path di tipo end to end orientata invece a stream di pacchetti e in particolare quindi agli eventi che vengono monitorati in una rete di sensori senza cavo. La conoscenza su un fenomeno viene calcolata basandosi sul numero di pacchetti ricevuti; definendo con r il numero di pacchetti ricevuti in un intervallo di decisione e con R il numero di pacchetti richiesti per poter definire che l’osservazione dell’evento è “reliable” allora possiamo dire che se r>R allora la rilevazione dell’evento può essere definita come affidabile dal punto di vista della trasmissione delle misurazioni. Nel caso in cui r<R allora la soluzione proposta dal protocollo ESRT è quella di modificare la frequenza con cui i nodi sensori provvedono a recapitare le informazioni al nodo sink. Inoltre l’ESRT usa un meccanismo di rilevazione della congestione basato sul monitoraggio del livello del buffer locale di ogni nodo. Ogni sensore il cui buffer va in overflow è detto congestionato e informa il Sink in modo che il calcolo della 78 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Direzione Orientamento Stile Uso di NACK Risparmio energetico Recupero perdite Uso di cache Controllo della congestione RMST Sensor to sink Pacchetto Hop-by-hop Si GARUDA Sink to sensor blocco Hop-by-hop Si PSFQ Sink to sensor pacchetto Hop-by-hop Si ESRT Sensor to sink stream End-to-end No - - - Si Si Si Si - Si Si Si - no no no si Tabella 3-1:Schema riassuntivo dei protocolli di trasporto affidabili nuova frequenza con cui i nodi sensori dovranno recapitare le loro informazioni sia influenzata dallo stato generale della rete. Maggiori informazioni su un esempio di protocollo appositamente progettato per il controllo della congestione sul “forward path” si possono reperire in [65] dove è presentato CODA (Congestion Detection and Avoidance). Uno schema riassuntivo dei protocolli analizzati viene riportato nella tabella 3-1. 3.8 APPROCCIO PROPOSTO PER IL TRASPORTO AFFIDABILE DELLE MISURAZIONI Anche se sono stati proposti molti protocolli per raggiungere affidabilità nella trasmissione delle informazioni in reti di sensori senza cavo, nessuno di essi è stato standardizzato. Del resto anche questi protocolli sono molto suscettibili all’applicazione nella quale questi vengono utilizzati e di conseguenza risulta difficile effettuare una scelta che sia definitiva per ogni ambito applicativo. Ritornando ai requisiti espressi nel paragrafo 3.1, bisogna naturalmente tener conto nella scelta della necessità di avere un 79 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo protocollo di consegna dei dati energeticamente efficiente. Dalla tabella 3.1 risulta chiaro che l’unico protocollo che tiene conto del risparmio energetico è il protocollo ESRT (per stream di pacchetti) il quale si basa sull’idea di poter cambiare la frequenza con cui i nodi sensori recapitano le informazioni al nodo sink. Tenendo conto che il fine del lavoro è la valutazione di protocolli energeticamente efficienti e riuscire ad ottenere metriche per la valutazione complessiva della dependability del sistema, si è deciso di ricorrere a un semplice protocollo di tipo end-to-end in cui venissero utilizzati un numero minimo di trasmissioni di pacchetti al fine di limitare al minimo il consumo energetico dei mote. L’idea di seguire un tale approccio è del resto giustificata in quanto non è detto che in ogni trasmissione vi siano perdite quindi può risultare utile dotare il nodo sink della intelligenza sufficiente per effettuare una operazione di monitoraggio dello stato della rete basandosi unicamente sui pacchetti ricevuti in instanti precedenti dai nodi sensori. Sarà compito quindi del nodo sink provvedere all’inoltro delle richieste di ritrasmissione dirette ai sensori dai quali non ha ricevuto nessuna risposta in quanto sarà esso stesso ad avere una chiara situazione della copertura raggiunta in ogni ciclo di misurazione. Secondo questo paradigma i nodi sensori sono semplicemente ridotti ad entità passive che effettuano cicli di misurazione su richiesta e provvedono all’inoltro delle misurazioni al nodo sink. Rispetto quindi ai protocolli accennati nel precedente paragrafo non dovranno gestire nessuna cache interna e non dovranno monitorare lo stato della rete. L’unica informazione conservata dai sensori sarà la stima dell’ultima misurazione effettuata, al fine di poterla rispedire nel caso in cui arrivi una richiesta di ritrasmissione da parte del nodo sink. Per essere più chiari sulla dinamica dell’algoritmo consideriamo lo scenario di figura 3.5. La rete risulta composta da 8 nodi sensori atti al monitoraggio 80 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 3.5: Rete composta da otto dispositivi sensori di una particolare zona. Tutti i nodi sensori effettueranno la misurazione su richiesta del nodo sink e provvederanno all’invio della misura. Il sink quindi, in assenza di collisioni, errori di trasmissioni, ect, riceverà un totale di 8 misurazioni con copertura della rete al 100%. A questo punto consideriamo le situazioni anomale che possono occorrere: 1. Trasmissione fallita a causa di collisioni, pacchetti corrotti, ect.; 2. Esaurimento energetico del dispositivo che causa una non trasmissione della misurazione. Riguardo il primo problema il protocollo proposto prevede di attivare una procedura di recupero di eventuali perdite di informazioni effettuando un massimo numero di tentativi (NRO_MAX_REQUEST_COVERAGE) per cercare di raggiungere la copertura della rete dopo i quali la copertura completa fallisce. Il secondo problema, invece non viene risolto e risulta essere gravoso nei confronti delle operazioni di monitoraggio soprattutto se si è previsto l’utilizzo di un unico sensore per la rilevazione di una grandezza di interesse. 81 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 3.6: Rete organizzata in 3 cluster senza procedura di elezione di cluster-head 3.9 CLUSTERING E LEADER ELECTION In merito all’esaurimento energetico di un dispositivo che causa una non trasmissione delle misurazioni, un approccio basato sulla organizzazione in cluster della rete può venire in aiuto. Consideriamo lo scenario di figura 3.6 in cui la rete risulta organizzata in 3 cluster: A, B e C rispettivamente di 3,3 e 2 nodi sensori dove non è prevista nessuna procedura di leader election (§ 3.6.1), cioè tutti i nodi sensori effettueranno la misurazione su richiesta del nodo sink e provvederanno all’invio. Il sink quindi, in assenza di collisioni, errori di trasmissioni, ect, riceverà un totale di 8 misurazioni afferenti ai tre cluster con copertura della rete al 100%. Poiché la clusterizzazione (§ 3.4) prevede di suddividere l’area da monitorare in zone di interesse, si può affermare che nel caso di ricezione di almeno n=1 misurazioni per cluster la copertura globale della rete è raggiunta e quindi non sorgono problemi né per il punto 1 né per il punto 2 menzionati nel precedente paragrafo. Si può concludere affermando che si hanno a disposizione un margine di 2 non recapiti di misurazioni per i cluster A e B e di uno per il cluster C al fine di ottenere una completa copertura della rete senza “overhead” aggiuntivi dovuti a trasmissioni di 82 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo pacchetti nella rete per avviare l’operazione di richiesta di ritrasmissioni. Scendendo più in dettaglio sulla dinamica dell’approccio viene previsto un massimo numero di tentativi (NRO_MAX_REQUEST_COVERAGE) a disposizione del nodo sink per cercare di raggiungere la copertura della rete dopo i quali la copertura completa fallisce. Questo semplice scenario mette in luce ancor di più come il concetto di “clusterizzazione” risulta essere alla base per l’implemetazione di strategie di tolleranza di guasti sia transienti che permanenti e come ci venga in aiuto soprattutto per “rilassare” il requisito di avere un trasporto affidabile. Infatti l’utilizzo di un protocollo come l’ESRT o simili avrebbe immediatamente attivato meccanismi di ritrasmissione con il coinvolgimento di tutti i nodi che componevano il “transmission path”. Ciò avrebbe portato ad un overhead in termini di banda e energia spesa anche se la copertura della rete era stata comunque raggiunta. Detto ciò analizziamo ora il caso di figura 3.7 ovvero lo scenario che vede una rete organizzata in cluster in cui in ogni cluster viene applicata la procedura di leader election (§ 3.6.1). La situazione in questo caso è un po’ più complessa in quanto saranno interessati da misurazioni solo i relativi cluster-head e non più tutti i dispositivi che fanno parte del cluster e quindi diminuisce il margine di errori di trasmissioni che si possono tollerare prima Figura 3.7: Organizzazione in cluster della rete con cluster-head 83 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo di dover ricorrere a ritrasmissioni ( e quindi ad un overhead aggiuntivo). Questo ultimo scenario risulta essere un ottimo trade-off tra la necessità di ridurre al minimo le possibilità di congestione della rete e implementare politiche mirate al risparmio energetico dei nodi. 84 Capitolo 4 Valutazione comparativa degli algoritmi 4.1 OBIETTIVI L’obiettivo di questo capitolo è effettuare una analisi comparativa dei protocolli proposti nel precedente capitolo per il problema del trasporto su reti di sensori senza cavo. Il tool di sviluppo utilizzato per i vari test è stato Tossim Tinyviz. Le caratteristiche che si prenderanno in considerazione durante le simulazioni che verranno testate saranno principalmente: 1. Il numero di nodi che costituiscono la rete (tipicamente da 9 a 18 nodi sensori); 2. il protocollo di trasporto utilizzato per il recapito delle misurazioni nel percorso dai sensori al nodo sink (forward path); 3. la topologia della rete (organizzata in cluster o non organizzata in cluster) e si andrà a verificare come il variare delle caratteristiche impatti su: o copertura raggiunta; o consumo energetico dei nodi. Obiettivo interessante è riuscire a comprendere per i vari scenari che verranno testati come la copertura della rete è influenzata dal numero di 85 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dispositivi utilizzati al fine di trovare un “trade-off” tra costi di realizzazione della rete e percentuale di copertura che si vuole raggiungere. A tutto ciò è poi aggiunto l’esigenza di ottenere soluzioni che possano aumentare il più possibile la durata media della vita di una rete di sensori senza cavo ovvero soluzioni che mirino ad un consumo minimo delle risorse energetiche dei nodi. Per caratterizzare al meglio le misure ottenute dalla simulazione si è deciso di analizzare i parametri suddetti in due possibili scenari: 1) con l’utilizzo della plugin Tinysan [70] che offre sia la possibilità di simulare la qualità dei link (simulando aleatorità nella probabilità di consegna dei pacchetti) che la possibilità di avere una stima del consumo energetico dei nodi; 2) senza l’utilizzo della plugin Tinysan. Il secondo scenario naturalmente presenta delle limitazioni però risulta essere utile soprattutto per capire la scalabilità della rete, all’aumentare del numero si sensori utilizzati e in particolar modo quanto l’aumento dei sensori impatti sulla copertura raggiunta. Infatti con l’uso della plugin Tinysan si ottiene una aleatorietà nelle probabilità di consegna dei pacchetti (a causa del cambiamento delle probabilità sui link di comunicazione) che non permette di avere uno scenario unico dove poter effettuare i vari test in modo univoco. Quindi con la combinazione dei due approcci possono essere esaminati sia il problema delle collisioni dovute a trasmissioni contemporanee dei nodi, sia la perdita dei pacchetti dovuta alla qualità dei link tra i sensori che costituiscono la rete. 4.2 DATA GATHERING BASE Lo scenario comune che è la base delle varie simulazioni effettuate prevede il monitoraggio di un’area attraverso il tool di simulazione per reti di sensori 86 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo NOME PROGETTO OBIETTIVI PROTOCOLLO DI TRASPORTO USATO TOPOLOGIA DELLA RETE Simple_Data_Gathering Il nodo con ID 0 è incaricato della raccolta dati da tutti gli altri sensori nella rete. Best-effort Non previsto uso di cluster Tabella 4-1: Caratteristiche della simulazione n°1 senza cavo Tossim. Si suppone che le richieste di misurazione vengano effettuate dal nodo base (sink) con una certa frequenza periodica che può essere sincrona con il clock locale del nodo sink o eventualmente asincrona nel caso in cui si provveda all’implementazione di una interfaccia che consenta all’operatore umano di inoltrare a proprio piacimento richieste di misurazioni. Le caratteristiche principali della simulazione sono riportate in tabella 4.1. Supponiamo, che i sensori siano dislocati nell’area di cui si vuole effettuare una analisi, in modo tale da avere un solo sensore per ogni zona dalla quale si esige una misura. La possibile architettura della rete è Figura 4.1: Architettura della rete in Tinyviz 87 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo mostrata in figura 4.1 dove si individuano 9 nodi sensori, di cui quello con id pari a 0 (nodo più a destra) è il nodo sink mentre gli altri sono i nodi addetti alle misurazioni. Le linee punto punto in grigio rappresentano i collegamenti che godono di una probabilità di perdita dei pacchetti inferiore al 30%, mentre quelli in rosso collegamenti con probabilità compresa tra il 30% e il 70%. Risulta chiaro, dalle caratteristiche esposte in tabella 4.1, che per avere una completa caratterizzazione dell’evento monitorato è necessario che ogni sensore recapiti la propria misurazione/i al nodo sink, quindi una perdita di pacchetto dovuta alla congestione della rete o alla bassa qualità del link tra i nodi causerà una situazione in cui il nodo sink non avrà a disposizione tutte le informazioni necessarie al monitoraggio della zona interessata. Riguardo lo schema implementativo dell’applicazione questo risulta essere molto semplice e uno stralcio del file di configurazione è presentato in configuration Simple_Data_Gathering {} implementation { components Main, SurgeM, TimerC, LedsC, NoLeds, Photo, RandomLFSR, GenericCommPromiscuous as Comm, Bcast, MultiHopRouter as multihopM, QueuedSend, Sounder; .... SurgeM.TimerControlCoverage -> TimerC.Timer[unique("Timer")]; SurgeM.MeasureTimer -> TimerC.Timer[unique("Timer")]; 1 SurgeM.RouteControl -> multihopM; SurgeM.Send->multihopM.Send[AM_SURGEMSG]; multihopM.ReceiveMsg[AM_SURGEMSG]->Comm.ReceiveMsg[AM_SURGEMSG]; //Per mandare e ricevere messaggi di misurazione SurgeM.SendMeasureMsg -> Comm.SendMsg[AM_MEASUREMSG]; SurgeM.ReceiveMeasureMsg -> Comm.ReceiveMsg[AM_MEASUREMSG]; //usato dal sink per ricevere le misure SurgeM.ReceiveMeasure -> Comm.ReceiveMsg[AM_SURGEMSG]; Figura 4.2: Stralcio del file di configurazione della prima simulazione 88 3 2 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo event TOS_MsgPtr ReceiveMeasure.receive(TOS_MsgPtr receivedMessage) { int i; if(TOS_LOCAL_ADDRESS==0 && receivedMessage->addr==0x7e) { SurgeMsg * payload; payload2 = (TOS_MHopMsg *)receivedMessage->data; payload = (SurgeMsg *)payload2->data; dbg(DBG_TEMP," Msr DAL NODO: %d \n",payload2->originaddr); for(i=0;i<NRO_MAX_MEASURE;i++) dbg(DBG_TEMP,"->VALORE: 0x%x ",payload->reading[i]); setCoverage(); } return receivedMessage; } Figura 4.3: Evento ReceiveMeasure attivato sul nodo sink alla ricezione della misurazione figura 4.2 attraverso il quale si possono comprendere i componenti che costituiscono l’applicazione e come sono legati tra di loro. Di particolare interesse sono i due Timer (riquadro 1) utilizzati: MeasureTimer e TimerControlCoverage. Il primo timer temporizza le richieste di misurazioni effettuate dal nodo sink, mentre il secondo viene sempre attivato dal nodo sink e serve per effettuare il controllo della copertura ottenuta sulla rete. Nel riquadro 2 sono invece evidenziati i collegamenti utili all’utilizzo del protocollo multihop, mentre il riquadro 3 mette in luce i collegamenti con i componenti che gestiscono la comunicazione tra i nodi. In figura 4.3 viene invece mostrata l’implementazione dell’ evento ReceiveMeasure attivato dal nodo sink ad ogni ricezione di un messaggio di misurazione dai nodi sensori. Le operazioni svolte alla ricezione sono 2: o Estrazione della misurazione/i dal pacchetto dati ricevuto; o Settaggio della copertura raggiunta al fine di avere statistiche relative ai nodi che hanno risposto alle richieste di monitoraggio (metodo setCoverage). Un primo test è stato condotto al fine di comprendere quanto il numero dei sensori utilizzati influisse sulla copertura raggiunta. Si è quindi seguito 89 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.4: Andamento % della ricezione delle misurazioni al crescere del numero di nodi. l’approccio 2 illustrato nel paragrafo 4.1 (ovvero si tralascia l’utilizzo della plugin TinySan); i risultati ottenuti hanno mostrato una copertura totale della zona monitorata nel 94% delle misurazioni usando un numero di nodi pari a 9. La percentuale di raggiungimento di una completa caratterizzazione del fenomeno va poi decrescendo linearmente all’aumentare dei nodi sensori come illustrato in figura 4.4. Con questo test si comprende come all’aumentare del numero di nodi aumenti la probabilità di collisione dei pacchetti dovuto a congestione della rete e quindi come sia più facile avere perdite di informazioni al nodo sink. Se consideriamo invece l’approccio 1 (§ 4.1) che prevede l’utilizzo della plugin Tinysan si può notare come la percentuale di corretta ricezione delle misurazioni presso il nodo sink, in ogni ciclo di misurazione, cominci a diventare molto più bassa. Infatti secondo questa metodologia la possibilità che la misurazione venga trasmessa correttamente al nodo sink dipende non solo dalla possibile congestione della rete ma anche dalla probabilità intrinseca di trasmissione sul singolo link simulata appunto con l’utilizzo della plugin TinySan. Come si può osservare in figura 4.5, ad eccezione del caso con 12 sensori in cui la % di corretta ricezione aumenta rispetto al caso 90 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.5: Andamento % della ricezione delle misurazioni con utilizzo della plugin TinySan. precedente, l’andamento segue prettamente una funzione lineare decrescente al crescere del numero di nodi utilizzati all’interno della rete. È chiaro che i dati sono puramente statistici e dipendono molto dalla funzione che caratterizza la qualità trasmissiva del link attraverso cui avviene la comunicazione sul singolo canale e dalle rotte scelte dai sensori per inoltrare le misurazioni al nodo sink. 4.3 DATA GATHERING AFFIDABILE Partendo dalla applicazione descritta nel paragrafo 4.2 viene ora implementato uno schema di comunicazione affidabile per il recapito delle misurazioni al nodo sink (in tabella 4.2 sono riportate le caratteristiche alla NOME PROGETTO OBIETTIVI PROTOCOLLO DI TRASPORTO USATO TOPOLOGIA DELLA RETE Reliable_Data_Gathering Il sink è incaricato della raccolta dati da tutti gli altri sensori nella rete. Affidabile end-to-end (max 2 ritrasmissioni) Non previsto uso di cluster Tabella 4-2: Caratteristiche della simulazione n°2 91 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo base della seconda simulazione). Lo sviluppo della applicazione ha ricalcato l’approccio descritto nel paragrafo 9 e in figura 4.6 viene riportato uno stralcio della procedura seguita dal nodo sink per assicurarsi di ricevere le misurazioni dai nodi sensori. Come si può intuire scatta un controllo del livello di copertura (riquadro 1) che mira ad individuare i nodi che non sono stati in grado di recapitare le loro informazioni al nodo sink e nel caso in cui non si è ancora raggiunto il numero massimo di richieste possibili per ricercare una copertura completa della rete (riquadro 2) si provvede ad una nuova richiesta di misurazione. Il protocollo opera secondo uno schema di ritrasmissione end-to-end ma è attivato solo nel momento in cui il nodo sink si accorge di non avere a disposizione misurazioni provenienti da determinati nodi sensori; la event result_t TimerControlCoverage.fired() { …//dichiarazioni iniziali omissis //controllo livello di copertura for(i=1;i<TOTAL_NUMBER_MOTE;i++) {payload_cov->unavailable_mote[i]=FALSE; if(!measure_coverage[i]){ //compongo la nuova richiesta payload_cov->unavailable_mote[i]=TRUE; must_send=TRUE; } } 1 2 //significa che ho trovato cluster non coperti dalla misurazione if(must_send && max_request_coverage<NRO_MAX_REQUEST_COVERAGE) {max_request_coverage++; payload_cov->value=SpecificMeasure; count_msg++; if(count_msg==0xFFFF) count_msg=1; payload_cov->count = count_msg; if(call SendMeasureMsg.send(TOS_BCAST_ADDR, sizeof(Measure_Msg), &message)!=SUCCESS) dbg(DBG_TEMP, "FALLITO\n"); } elseif(must_send&&max_request_coverage>=NRO_MAX_REQUEST_COVERAGE) {FailedCoverage++; max_request_coverage=0; } else if(!must_send) {max_request_coverage=0; } return SUCCESS; } 3 Figura 4.6: Stralcio procedura seguita dal nodo sink per assicurarsi la ricezione delle misurazioni da parte dei nodi sensori 92 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.7: Confronto percentuali copertura con uso protocollo affidabile e non affidabile. richiesta viene inoltrata in broadcast però è diretta ai soli nodi che avevano fallito l’invio nel corrente ciclo di misurazione (discriminati con un campo nel messaggio inviato). Il riquadro 3 invece mostra il caso in cui si raggiunge il numero massimo di richieste per soddisfare la copertura e quindi si provvede a rinunciare al tentativo di raggiungere il nodo. Questo ultimo caso risulta importante in quanto può capitare che un determinato sensore si ritrovi ad essere isolato o abbia esaurito le proprie risorse energetiche, una tale situazione non deve quindi impedire al nodo sink di continuare con la raccolta di informazioni dagli altri nodi. Concentrandoci sui risultati ottenuti (figura 4.7), un approccio di questo tipo, evidenzia un netto miglioramento sulla percentuale di copertura, anche portando in conto l’utilizzo della plugin Tinysan, infatti sia con una rete composta da 9 nodi sensori che da 12 nodi sensori si ottiene sempre, in ogni ciclo di misurazione, una copertura completa della zona monitorata. Questo risulta essere già un buon risultato e mette in evidenzia come le possibili perdite di pacchetto dovute o a collisioni o a errori sul canale trasmissivo 93 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.8 : Andamento della vita media dei singoli sensori nel caso di utilizzo di un protocollo di comunicazione affidabile confrontato con il caso di utilizzo di un protocollo di tipo best-effort sono ben recuperate con l’approccio proposto anche nel caso in cui si prevedono solo un NRO_MAX_REQUEST_COVERAGE (ovvero numero di richieste di ritrasmissione) pari a 2. Passando ora a considerare il punto di vista energetico risulta chiaro che abbiamo un peggioramento e ciò è dovuto all’overhead in seguito alla ritrasmissione dei messaggi contenenti le misurazioni stesse. In figura 4.8 viene mostrato l’andamento della vita media dei singoli sensori facenti parte della rete messi a confronto a seconda che sia previsto l’utilizzo di un protocollo di recapito delle misurazioni affidabile o meno. In figura 4.9 vi è Figura 4.9: Confronto consumo energetico dei singoli nodi 94 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo un analogo confronto però basato sul consumo medio di energia dei sensori espresso in mJ/sec. I risultati della simulazione (rete composta da 9 nodi) hanno evidenziato un lieve peggioramento (0.0015 % caso peggiore)della vita media dei sensori nel caso in cui venga utilizzato un protocollo basato su ritrasmissioni end-to-end. Questo risultato è dovuto al fatto che per il recupero delle misurazioni non pervenute sono risultati necessari l’inoltro di rispettivamente 30 nuove richieste di misurazioni da parte del nodo sink a cui sono corrisposte un totale di 45 nuove ritrasmissioni di pacchetti contenenti le informazioni monitorate. Il fatto di avere un numero maggiore di ritrasmissioni rispetto alle richieste effettuate è dovuto alla necessità di più tentare più volte di raggiungere la copertura totale dell’area monitorata. 4.4 DATA GATHERING CON CLUSTER Gli studi esposti nel paragrafo 3.5 e il relativo approccio proposto nel paragrafo 3.6 hanno messo in evidenzia come il concetto di clustering di una rete di sensori possa favorire una migliore gestione delle risorse energetiche dei nodi. risulta quindi interessante instrumentare una nuova simulazione le cui caratteristiche principali sono esplicitate in tabella 4.3. Consideriamo una rete di sensori organizzata in 3 cluster: A,B,C (figura 4.10), in cui ogni cluster elegge ogni ELECTION_TIMER_RATE un leader (cluster-head) che si fa carico di rispondere alle richieste di misurazioni effettuate dal nodo sink. Nel caso proposto i cluster heads iniziali sono i nodi 1,4,7 rispettivamente per i 3 cluster in considerazione. NOME PROGETTO OBIETTIVI PROTOCOLLO DI TRASPORTO USATO TOPOLOGIA DELLA RETE Cluster_Base_Data_Gathering Il nodo con ID 0 è incaricato della raccolta dati da tutti gli altri sensori nella rete. Best-effort Uso di cluster Tabella 4-3: Caratteristiche della simulazione n°3 con rete organizzata in cluster 95 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.10: Rete organizzata in cluster La procedura di elezione di un nuovo leader, come abbiamo accennato, avviene con un rate prefissato e viene iniziata dal nodo che riveste al tempo dell’elezione il ruolo di leader del cluster. Più in particolare esso provvede a scegliere con la procedura SceltaMaster() il successivo leader e poi si interessa di comunicare ad esso che è stato eletto. La procedura di invio di un messaggio al successivo master è illustrata in figura 4.11. Analizzando essa in dettaglio si può notare che il nodo sensore che è cluster-head, compone un Master_msg e lo invia al nodo designato ad essere il nuovo cluster head (riquadro 1); contemporaneamente attiva un timer per l’attesa di un ack da parte del sensore contattato, al fine di garantire che il nodo è stato effettivamente eletto. Infatti si potrebbe verificare che il nodo da eleggere leader sia temporaneamente 96 non raggiungibile tramite Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo task void SendMasterMessage() {Master_Msg * payload; payload = (Master_Msg *)master_message.data; payload->becomeMaster =TRUE; payload->id actual master=TOS LOCAL ADDRESS; if(NroSending<NRO_MAX_SENDING) {payload->next_master=designed_address; atomic rcv_ack=FALSE; //mando messaggio a nuovo master if(call SendMasterMsg.send(designed_address, sizeof(Master_Msg), &master_message)!=FAIL) {NroSending++; //Attivo timer e aspetto ack PER 5SEC (ack timer). call TimerAck.start(TIMER_ONE_SHOT, ACK_TIMER); } else { NroSending++; post SendMasterMessage();} } 1 else {dbg(DBG_TEMP,"Rimango master - %d -\n",TOS_LOCAL_ADDRESS); NroSending=0; Risveglio=NroAck; dbg(DBG_TEMP, "IMCLUSTERHEAD\n"); } 2 } Figura 4.11: Procedura di invio di un messaggio Master comunicazione radio, oppure che esso abbia esaurito le sue riserve energetiche e quindi non sia eleggibile. In questo caso si prevede che, dopo un NRO_MAX_SENDING (riquadro 2), il nodo opti per rimanere clusterhead. (chiaramente questa procedura può essere variata e più in dettaglio si può prevedere che si contatti il nodo successivo nell’anello logico formato dai nodi sensori appartenenti allo stesso cluster). Riguardo le azioni svolte dai nodi che ricevono un messaggio di elezione queste sono esplicitate in figura 4.12. Lo scenario banale prevede che i nodi che ricevono un messaggio master_msg compongano un messaggio di ack e lo inviano al vecchio leader. Nel caso in cui si verifichi una perdita di un messaggio di ack (riquadro 2) l’evento viene isolato e gestito facilmente in quanto il nodo si sarà già settato a master e quindi la ricezione di un nuovo messaggio 97 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo event TOS_MsgPtr ReceiveMasterMsg.receive(TOS_MsgPtr receivedMessage) { //cioe' se si è attivato il timer per partecipare a una nuova elezione if(!sleep) {…dichiarazioni iniziali omissis… if(!master) {if(payload->next_master==TOS_LOCAL_ADDRESS) {if(payload->becomeMaster) {ack->source_address=TOS_LOCAL_ADDRESS; ack->dest_address=payload->id_actual_master; actual_master=payload->id_actual_master; if(call SendAck.send(TOS_BCAST_ADDR, sizeof(Ack_Msg),&ack_message)==SUCCESS) { NroAck++; atomic master=TRUE; atomic rcv_ack=FALSE; call Election_Control.Remove_election_phase(); call Election_Control.Set_master(); dbg(DBG_TEMP, "IMCLUSTERHEAD\n"); } }}} // perdita di un ack significa che mi ero settato master e il mio ack si è perso else {ack->retrasmission=TRUE; call SendAck.send(TOS_BCAST_ADDR, sizeof(Ack_Msg),&ack_message ); }} 1 2 Figura 4.12: Procedura seguita dai nodi alla ricezione di un master_msg master_msg sarà segno di una trasmissione non andata a buon fine. Passiamo ora ad analizzare i risultati che sono stati ottenuti con l’utilizzo di una rete organizzata in cluster. In figura 4.13 sono mostrati i risultati, in termini di copertura, ottenuta per una simulazione su una rete che faccia uso di uno schema clusterizzato e di uno schema non clusterizzato nel caso siano utilizzati 9 nodi sensori e non si faccia uso di un protocollo affidabile per il recapito delle misurazioni al nodo sink. Come si può notare la percentuale di cicli di misurazioni che hanno ottenuto una copertura totale della rete è più elevato rispetto alla analoga simulazione del paragrafo 4.3. Del resto il risultato è ovvio visto che avendo un solo sensore attivo per cluster diminuisce la probabilità di collisioni nella consegna delle informazioni monitorate (a causa della congestione della rete). 98 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.13: Confronto copertura con uso protocollo affidabile e non affidabile Dal punto di vista energetico, invece il guadagno che si ottiene con l’uso di una rete organizzata in cluster risulta abbastanza evidente (vedi figura 4.14). Del resto ciò risulta abbastanza intuitivo in quanto il carico dei nodi sarà ora distribuito nel tempo su tutti i nodi appartenenti allo stesso cluster implementando così una strategia di load balancing. Dal grafico si nota come la vita media dei sensori in una rete organizzata in cluster sia Figura 4.14: Guadagno energetico con rete organizzata in cluster 99 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo aumentata; l’aumento è di circa il 7% nel caso in cui si prevede un numero dispositivi per cluster pari a 2 (cluster C dispositivi 7 e 8) e arriva ad un 9% se si prevede l’utilizzo di 3 nodi sensori per cluster. L’incremento di autonomia della rete continua a crescere se si prevede un utilizzo di cluster abbastanza numerosi e si è potuto riscontrare che con l’uso di un numero di 7 dispositivi per cluster si arriva ad una vita media stimata per i sensori di circa 260 h raggiungendo quindi un incremento rispetto alla rete non organizzata in cluster di circa il 13%. Il risultato risulta interessante in quando adottando strategie di questo tipo si possono ottenere architetture di monitoraggio che riescano a soddisfare vincoli stringenti relativi alla durata della rete. 4.5 DATA GATHERING CON CLUSTERING E PROTOCOLLO AFFIDABILE Fino ad ora abbiamo effettuato una analisi che ha messo in evidenzia come l’utilizzo di reti organizzate in cluster porti miglioramenti all’incremento della vita media dei singoli nodi, ora non ci resta che analizzare così come fatto nel paragrafo 4.3, le performance di una rete nel momento in cui si introduce il concetto di affidabilità nei confronti del recapito delle misurazioni; le caratteristiche principali di questa nuova simulazione sono esposte in tabella 4.4. I risultati che sono emersi hanno evidenziato un NOME PROGETTO OBIETTIVI PROTOCOLLO DI TRASPORTO USATO TOPOLOGIA DELLA RETE Reliable_Cluster_Base_Data_Gathering Il nodo con ID 0 è incaricato della raccolta dati da tutti gli altri sensori nella rete. Affidabile end-to-end (max 2 ritrasmissioni) Previsto uso di cluster Tabella 4-4: Caratteristiche della simulazione n°4 con rete organizzata in cluster e uso protocollo di recapito affidabile 100 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo peggioramento, come è lecito aspettarsi, per quanto riguarda la vita media dei singoli nodi causato sempre dalla maggior quantità di energia che è spesa per le ritrasmissioni necessarie al recupero di eventuali fallimenti nel recapito dei pacchetti. Anche in questo caso, così come riscontrato nella simulazione esposta nel paragrafo 4.3 il protocollo end to end si mostra essere molto leggero introducendo un decremento della vita media dei singoli sensori molto trascurabile a testimonianza del fatto che la sua attivazione solo nei momenti in cui abbiamo perdite è un buon approccio per ovviare ai problemi relativi alla congestione della rete e alla scarsa qualità dei singoli link di comunicazione. Per avere una analisi completa dei protocolli discussi nei paragrafi precedenti, in figura 4.15 è riportato, una comparazione tra le vite medie dei vari dispositivi in base alla topologia di rete utilizzata e allo schema adottato per la ricezione delle informazioni presso il nodo sink. Il risultato ottenuto risulta essere abbastanza intuitivo, infatti come si può notare la vita media per i dispositivi più elevata, a cui corrisponde quindi un dispendio energetico medio più basso, è stata riscontrata nella simulazione con una rete organizzata in cluster. Il peggioramento nel caso in cui la topologia della rete non sia organizzata in Figura 4.15: Analisi comparativa degli algoritmi 101 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo cluster è abbastanza accentuata soprattutto nei riguardi della simulazione riportata nel paragrafo 4.3. Di conseguenza possiamo affermare che l’utilizzo di una strategia che vede l’organizzazione in cluster della rete comporta comunque una miglioria per quanto riguarda la durata media della vita della rete. Fino ad ora gli approcci che sono stati presentati relativi al clustering sono stati tutti incentrati sull’uso di un meccanismo di elezione che andava attivato ogni ELECTION_TIMER_RATE. Un interessante scenario da valutare è quello in cui l’elezione del leader sia effettuata solo nel momento in cui il dispositivo sensore che funge da leader esaurisce la propria carica energetica. L’obiettivo di instrumentare una simulazione di questo genere è volta ad individuare se può essere più conveniente, per la vita media di una rete, portare all’esaurimento i nodi che sono stati designati a leader del cluster e quindi ridurre in questo caso al minimo le procedure stesse di elezione. Da una analisi dei risultati in figura 4.16 si può concludere che i nodi che sono stati designati ad essere leader fin quando possibile risultano avere una vita media stimata inferiore di circa 20h, mentre gli altri nodi registrano un aumento di 10h di autonomia. Ciò significa che, detto con ci il tempo di esaurimento del nodo i-esimo, al lordo della procedura di elezione, al tempo c1=c4=c7 (~230 h) i nodi capo cluster Figura 4.16: Elezione eseguita ciclicamente o all’esaurimento energetico di un nodo 102 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo saranno esauriti e i restanti nodi che fino a quell’istante avevano fornito una funzionalità semplicemente di forwarding dei pacchetti, avranno una autonomia residua pari a c2-c1 (~30 h). A questo punto bisognerebbe calcolare quante ore di autonomia resterebbero ai nuovi cluster head, ma il calcolo di tale autonomia non è permesso dalla plugin in maniera analitica. Dal punto di vista intuitivo però si dovrebbe riscontrare effettivamente un guadagno, in quanto avremo una procedura di elezione che verrà attivata solo nel momento in cui si sarà esaurita la riserva energetica di un nodo. Facciamo però notare che una procedura di questo genere prevede che il nodo sink si accorga della “morte” di un nodo solo quando ormai la procedura di misurazione è stata lanciata; ciò quindi causa una perdita di informazione non rimediabile. È chiaro che potrebbero essere sviluppate procedure che mirino a indagare sullo “stato di salute” in termini energetici dei singoli nodi, ma operazioni di questo tipo porterebbero ad un consumo energetico aggiuntivo per il recapito di queste informazioni al nodo sink. 4.6 OVERLAY NETWORK Tutte le simulazioni che sono state condotte nei paragrafi precedenti hanno portato a risultati, in termini di energia media dissipata dai vari nodi (quindi vita stimata residua), che dipendono fortemente: 1. dall’uso del protocollo multihop 2. dal ruolo dei nodi che non rivestono il ruolo di leader del cluster. Relativamente al punto 2 un dispositivo sensore in ogni istante funge comunque da nodo forwarder dei pacchetti al fine di poter contribuire al recapito delle informazioni al nodo sink e un siffatto funzionamento, comporta quindi la necessità che il modulo radio di ogni sensore sia sempre attivo, causando un dispendio energetico che influisce fortemente sulla vita totale della rete. 103 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo Figura 4.17: Overlay Network Da queste osservazioni se ci poniamo nelle ipotesi: che i dispositivi possano essere programmati per non partecipare continuamente al protocollo multihop e che possano effettuare una operazione di join al protocollo solo nel momento in cui rivestono il ruolo di leader del cluster; che i dispositivi non leader possano essere in uno stato di power save e provvedano all’accensione del modulo radio solo in alcuni intervalli di tempo; che il grafo dei collegamenti tra i nodi sensori sia fortemente connesso; allora la soluzione che prevede la costruzione di una overlay network (figura 4.17) potrà portare significativi vantaggi dal punto di vista dell’incremento della vita della rete. Infatti, anche se in questo caso abbiamo una limitazione dal punto di vista topologico, i vari sensori che non sono leader sono in uno stato risparmi energetico e quindi non consumeranno risorse energetiche 104 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo dovute al mantenimento del modulo radio acceso e all’inoltro dei vari pacchetti. Di conseguenza lo scenario che si presenta è quello di una rete in cui gli unici nodi che sono coinvolti in procedure di inoltro di misurazioni sono i leader di ogni cluster, mentre gli altri sono dormienti. In tale condizione quindi otterremo globalmente un risparmio energetico ingente grazie allo stato sleep del modulo radio. Questa assunzione, del resto, è giustificata anche analiticamente dai risultati ottenuti dalla simulazione sulla vita media di un sensore (figura 4.18) che hanno mostrato un netto abbattimento dell’autonomia dei dispositivi nel caso in cui sia previsto l’utilizzo del modulo radio per la trasmissione di misurazioni. Volendo quindi stimare la vita media della rete potremmo dire che nel caso in cui consideriamo tutti cluster formati da n dispositivi: vitamedia = lifetime _ cluster _ head + (n − 1) * lifetime _ no _ radio n Dove lifetime_cluster_head rappresenta l’autonomia del sensore nel momento in cui è attivo il modulo radio, mentre lifetime_no_radio è l’autonomia del sensore nel momento in cui non è attivo il modulo radio. Infatti nel caso in cui si considera una rete organizzata in cluster ciascuno composto da n=3 nodi sensori, la formazione di overlay network implicherà Impatto del modulo radio sulla vita media di un sensore 700,00 vita media stimata [h] 600,00 500,00 400,00 modulo radio attivo 300,00 modulo radio spento 200,00 100,00 0,00 Figura 4.18: Impatto del modulo radio sulla vita di un sensore 105 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo che ogni nodo sensore sia con il modulo radio acceso per 1/3 della sua vita e per i 2/3 spento. Ciò implica che essendo lifetime_cluster_head=249h e lifetime_no_radio=658h allora avremo una vita media stimata che si attesta sulle 521h che risulta essere più del doppio della stima nel caso in cui non si ricorra allo spegnimento del modulo radio. In conclusione l’idea di creare una overlay network e di modificare il protocollo multihop in modo tale da costruire nuove tabelle di routing ogni volta che si ha un cambiamento dei leader del cluster risulta essere una buona prospettiva per lo sviluppo di reti di sensori con particolari esigenze di longevità. 106 Conclusioni Il presente lavoro di tesi nasce dall’esigenza di riuscire ad ottenere architetture di reti di sensori senza cavo con particolari esigenze di affidabilità nella consegna delle misurazioni e minimizzazione del consumo energetico dei stessi sensori. Essendo i due requisiti in contrasto tra loro è necessario valutare se può essere individuata per via sperimentale una soluzione di compromesso (trade- off). Dopo uno studio attento della letteratura in merito ai protocolli di clusterizzazione e di consegna affidabile delle misurazioni, si è proposto un nuovo modo di intendere il ruolo di leader del cluster, non più delegato a gateway tra i nodi sensori del cluster e il nodo sink, bensì come l’unica entità incaricata dell’azione di monitoraggio della grandezza fisica relativa all’evento che si vuole analizzare. Attraverso poi delle strategie di leader election periodico all’interno di ogni cluster è stato possibile implementare load balancing al fine di ottenere un consumo energetico uniforme e garantire quindi una ripartizione del carico tra i vari sensori afferenti ai cluster. I risultati sperimentali, ottenuti con l’ausilio del simulatore ad eventi discreti TOSSIM, hanno mostrato un guadagno di circa il 9% nella autonomia dei nodi sensori nel caso in cui si prevedano cluster con solo 3 dispositivi (risulta chiaro che all’aumentare del numero di dispositivi previsti per cluster aumenterà anche il guadagno dal punto di vista energetico e quindi l’autonomia della rete). Riguardo la consegna affidabile i risultati hanno 107 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo evidenziato che, una strategia che preveda il recupero delle misurazioni, basato su richieste di trasmissioni che vengono inoltrate dal nodo sink solo in caso di reale perdita, è una buona soluzione di trade off tra recapito di una definita quantità di informazione sull’evento monitorato e minimizzazione dei consumi energetici dei nodi sensori. Infatti l’impatto sulla vita di un siffatto protocollo è risultato essere molto basso. In seguito all’utilizzo di TOSSIM, non è stato possibile indagare in maniera sistematica e precisa sul guadagno che si otterrebbe se i nodi sensori che non fungono da cluster-head fossero completamente spenti. Questa strategia prevede vincoli dal punto di vista topologico (è necessario che il grafo formato dai nodi sensori sia fortemente connesso pena la non raggiungibilità delle misurazioni rilevate al nodo sink) ma da una semplice analisi emerge che potrebbe portare ad un raddoppio della vita media di una rete, quindi sarebbe molto interessante investigare su questo punto in quanto permetterebbe la realizzazione di reti di sensori con particolari esigenze di longevità. 108 Bibliografia [1] M. Cinque, D. Cotroneo, G. De Caro, and M. Pelella. Reliability requirements of wireless sensor networks for dynamic structural monitoring. International Conference on Dependable Systems and Networks (DSN),2006. [2] C. Perkins, Ad Hoc Networks, Addison-Wesley, Reading, MA, 2000. [3] I.F.Akyildiz, W.Su, Y.Sankarasubramaniam and E.Cayirci, A Survery on Sensor Networks, IEEE Communications Magazine, August 2002, pages 102-114, 393-442 [4] A. Y. Wang, S. H. Cho, C. G. Sodini, and A. P. MAC for Asymmetric RF Microsensor Systems. In Intl. Symp. on Low Power Electronics and Chandrakasan. Energy Efficient Modulation and Design, August 2001. [5] C. Schurgers, O. Aberthorne, and M. B. Srivastava. Modulation Scaling for Energy Aware Communication System In Intl. Symp. on Low Power Electronics and Design, August 2001. [6] Wei Ye, John Heidemann, Medium Access Control in Wireless Sensor Networks, USC/ISI TECHNICAL REPORT ISI-TR-580, October 2003 [7] Brad Karp and H. T. Kung. Gpsr: greedy perimeter stateless routing for wireless networks. In MobiCom ’00: Proceedings of the 6th annual international conference on Mobile computing and networking, pages 243–254, New York, NY, USA, 2000. ACM Press. [8] Devika Subramanian, Peter Druschel, and Johnny Chen. Ants and reinforcement learning: A case study in routing in dynamic networks. In IJCAI (2), 1997. [10] W. R. Heinzelman, A. Chandrakasan, and H. Balakrishnan, Energy - efficient communication protocol for wireless microsensor networks, Proc. 33rd Hawaii Int'l. Conf. Sys. Sci.,pp. 3005- 3014, Jan.2000. [11] Konstantinos Kalpakis, Koustuv Dasgupta and Parag Namjoshi Efficient algorithms for maximum lifetime data gathering and aggregation in wireless sensor networks ,2002. [12] Supriyo Chatterjea and Paul Havinga A Dynamic Data Aggregation Scheme for Wireless Sensor Networks. [13] R. Nowak. Distributed EM algorithms for density estimation and clustering in sensor networks. IEEE Trans. on Sig. Proc., 51(8), August 2003. [14] http://www.alertsystems.org. 109 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo [15] A. Cerpa, J. Elson, M. Hamilton, J. Zhao, Habitat monitoring: application driver for wireless communications technology, ACM SIGCOMM'2000, Costa Rica, April 2001. [16] http://www.greatduckisland.net/ [17] G. R. Polastre, “Design and Implementation of Wireless Sensor Networks for Habitat Monitoring ”, Master dissertation, Dept. of Elec. Eng., UCB, Spring 2003. [18] N. Noury, T. Herve, V. Rialle, G. Virone, E. Mercier, G. Morey, A. Moro, T. Porcheron, Monitoring behavior in home using a smart fall sensor, IEEE-EMBS Special Topic Conference on Microtechnologies in Medicine and Biology, October 2000, pp. 607-610. [19] E.M. Petriu, N.D. Georganas, D.C. Petriu, D. Makrakis,V.Z. Groza, Sensor-based information appliances, IEEE Instrumentation and Measurement Magazine (December 2000) 31-35. [20] I.A. Essa, Ubiquitous sensing for smart and aware environments, IEEE Personal Communications (October 2000). [21] TinyOS: An open source operating system for WSN - www.tinyos.net. [22] R. Von Behren M. Welsh E. Brewer D. Gay, P. Levis and D. Culler. “The nesC Language: A Holistic Approach to Networked Embedded Systems”. In Proceedings of Programming Language Design and Implementation (PLDI) 2003, June 2003. [23] H. Abrach, J. Carlson, H. Dai, J. Rose, A. Sheth, B. Shucker, and R.Han. MANTIS: System support for multimodal networks of in-situ sensors. In Proc. 2nd ACM Intl. Workshop on Wireless Sensor Networks and Applications (WSNA), San Diego, CA, September 2003. [24] G. Ananstasi, M. Conti, A. Falchi, E. Fragori e A. Passerella: Performance Measurements of Mote Sensor networks. ACM/IEEE International Symposium on Modeling, Analysis and Simulation of Wireless and Mobile System, pp. 174-181, ACM Press, 2004. [25] D. D. Clark and D. L. Tennenhouse. Architectural Considerations for a New Generation of Protocols. In Proceedings of SIGCOMM, September 1990. [26] Philip Levis and Nelson Lee. TOSSIM: A simulator for TinyOS networks, November 14 2003. [27] Philip Levis, Nelson Lee, MattWelsh, and David E. Culler. TOSSIM: accurate and scalable simulation of entire TinyOS applications. In SenSys, pages 126–137, 2003. [28] Alan Mainwaring, Joseph Polastre, Robert Szewczyk, David Culler, and John Anderson. Wireless sensor networks for habitat monitoring. 110 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo [29] J. Elson, S. Bien, N. Busek, V. Bychkovskiy, A. Cerpa, D. Ganesan, L. Girod, B. Greenstein, T. Schoellhammer, T. Stathopoulos, D. Estrin, 2003 “Emstar: an environment for developing wireless embedded systems software” [30] L. Girod, J. Elson, A. Cerpa, T. Stathopoulos, Nithya Ramanathan, D. Estrin “Emstar: a software environment for developing and deploying wireless sensor networks” Jonathan Polley, Dionysys Blazakis, Jonathan McGee, Dan Rusk, John S. Baras “Atemu: a fine-grained sensor network simulator”. [31] [32] Ben L. Titzer, Daniel K. Lee, Jens Palsberg “Avrora: scalable sensor network simulation with precise timing”. [33] ISI. The network simulator 2 ns-2. http://www.isi.edu/nsnam/nsidenx.html, 2002. [34] Xiang Zeng, Rajive Bagrodia, and Mario Gerla. Glomosim: A library for parallel simulation of large-scale wireless networks. In Workshop on Parallel and Distributed Simulation, pages 154–161, 1998. [35] Y. Huang, J. Huang, L. Hester, A. Allen, O. Andric, P. Chen, and B. O’Dea. Opnet simulation of a multi-hop self-organizing wireless sensor network. [36] A. Savvides S. Park and M. B. Srivastava. Sensorsim: a simulation framework for sensor networks. In Proceedings of the 3rd ACM international workshop on Modeling, analysis and simulation of wireless and mobile systems, pages 104–111, Boston, MA USA. [37] Ahmed Sobeih, Wei-Peng Chen, Jennifer C. Hou, Lu-Chuan Kung, Ning Li, Hyuk Lim, Hung-Ying Tyan, Honghai Zhang “J-Sim: a simulation and emulation environment for wireless sensor networks” [38] Claudio Basile, Zbigniew Kalbarczyk, and Ravi K. Iyer. Neutralization of errors and attacks in wireless ad hoc networks. In International Conference on Dependable Systems and Networks(DSN), 2005. [39] S. Shakkottai, R. Srikant, and N. Shroff. Unreliable sensor grids: Coverage, connectivity and diameter. In IEEE INFOCOM2003, pages 241–250, 2003. [40] D. Bein, V. Jolly, B. Kumar, and S. Latifi. Reliability modeling in wireless sensor networks. International Journal of Information Technology, Vol. 11 No. 2, 2004. [41] Hosam M. F. AboElFotoh, S. S. Iyengar, and Krishnendu Chakrabarty. Computing reliability and message delay for cooperative wireless distributed sensor networks subject to random failures. IEEE TRANSACTIONS ON RELIABILITY, 54(1), MARCH 2005. [42] G. Gupta and M. Younis. Fault-tolerant clustering of wireless sensor networks. IEEE, 2003. [43] Jae-Joon Lee, Bhaskar Krishnamachari, and C.-C. Jay Kuo. Impact of energy depletion and reliability on wireless sensor network connectivity, 2005. 111 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo [44] S. Lindsey and C. S. Raghavendra. PEGASIS: Power-efficient gathering in sensor information systems. In Proceedings of the IEEE Aerospace Conference, March 2002. [45] L. Subramanian and R.H. Katz, “An architecture for building self-configurable systems”, Proceedings of the 1st ACM international symposium on Mobile ad hoc networking and computing, pp. 63–73, Boston, MA, USA, 2000. [46] C. V. Ramamoorthy, A. Bhide, and J. Srivastava, “Reliable clustering techniques for large, mobile packet radio networks”, Proceedings of the 6th Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM ’87), San Francisco, CA, USA, 1:218–226, 31 March–2 April 1987. [47] R. Krishnan and D. Starobinski, Efficient clustering algorithms for self organizing wireless sensor networks,. Ad Hoc Networks, vol. 4, no. 1, pp. 36.59, January 2006. [48] Leonidas Tzevelekas, Ziviani Towards Potential-Based Clustering forWireless Sensor Networks CoNEXT’05, October 24.27, 2005, Toulouse, France. [49] Malka Halgamuge, Siddeswara Mayura Guru and Andrew Jennings; Energy efficient Cluster Formation in wireless sensor networks, International conference on telecommunications ICT 2003, IEEE Press. [50] Yuon Guo, Janise Mcnair, Cost Efficient Cluster Formation for wireless sensor networks, Proc. of CITSA 2004, Orlando, FL, July 2004. [51] Ossama Younis and Sonia Fahmy, HEED: A hybrid energy efficient, distributed clustering apparoach for Ad-hoc sensor networks, IEEE Transactions on Mobile Computing, Oct.-Dec. 2004, Volume: 3, Issue: 4, p.p. 366 - 379. [52] G. Gupta and M. Younis, Load-Balanced Clustering in Wireless Sensor Networks, IEEE International conference on communications, Anchorage, Alaska, 2003. [53] S. Banerjee and S. Khuller, A Clustering Scheme for Hierarchical Control in Multihop Wireless Networks, INFOCOM, 2001. [54] A. Antis, R. Prakash, T. Vuong, and D. Huynh, Max-Min d-Cluster Formation in Wireless Ad Hoc Networks, IEEE INFOCOM, 2000. [55] Y. Bejerano, Efficient Integration of Multihop Wireless and Wired Networks with QoS Constraints, IEEE/ACM Transactions on Networking, 2004. [56] B. Aoun, R. Boutaba, Clustering in WSN with latency and Energy Consumption constraints, Journal of Network and Systems Management, Vol. 14, No. 3, September 2006 [57] Mudasser Iqbal, Iqbal Gondal and Laurence Dooley An Energy-Aware Dynamic Clustering Algorithm for Load Balancing in Wireless Sensor Networks JOURNAL OF COMMUNICATIONS, VOL. 1, NO. 3, JUNE 2006 112 Progetto e valutazione di algoritmi per la raccolta dati affidabili su reti di sensori senza cavo [58] A. Kroller, D. Pfisterer, C. Buschmann, S.P. Fekete, S. Fischer, “Shawn: A new approach to simulating wireless sensor networks”, 2005 [59] http://tcs.unige.ch/doku.php/code/algosensim/overview [60] C. Mallanda, A. Suri, V. Kunchakarra, S.S. Iyengar, “Simulating wireless sensor networks with Omnet++”, 2005 [61] Fred Stann and John Heidemann. RMST: Reliable Data Transport in Sensor Networks. 1st IEEE International Workshop on Sensor Net Protocols and Applications, 2003 [62] C. Wan, A. Campbell, L. Krishnahmurthy. PSFQ: A Reliable Transport Mechanism for Wireless Sensor Networks. ACM International Workshop on Wireless Sensor Networks and Applications, Atlanta, Georgia, Sept 2002. [63] C. Intanagonwiwat, R. Govindan, D. Estrin, j. Heidmann and F. Silva “Direct Diffusion for wireless sensor network” IEEE/ACM Transactions on Networking, vol.11, pp 2-16, Feb 2003 [64] Seung-Jong Park, Ramanuja Vedantham, Raghupathy Sivakumar and Ian F. Akyildiz A scalable approach for reliable downstream data delivery in wireless sensor networks in the Proceedings of ACM International Symposium on Mobile Ad hoc Networking and Computing (MOBIHOC), Japan, May 2004. [65] Chieh-Yih Wan, Shane B. Eisenman, Andrew T. Campbell, “CODA: Congestion Detection and Avoidance in Sensor Networks”, in proceedings of First ACM Conference on Embedded Networked Sensor Systems (SenSys 2003), November 2003. [66] J.O’Rourke. Computational geometry column 15. Int’l Journal of Computational Geometry and Application, 2(2):217-217,1992. [67] Seapahn Meguerdichian, Farinaz Koushanfar, Miodrag Potkonjak, Mani B. Srivastava, Coverage Problems in Wireless Ad-hoc Sensor Networks, in IEEE INFOCOM, pages 1380-1387, 2001 [68] S. Slijepcevic, M. Potkonjak, Power Efficient Organization of Wireless Sensor Networks, In IEEE Int’l Conf. on Communications (ICC) pages 472-476, 2001. [69] Tian, Georganas, A Coverage-Preserving Node Scheduling Scheme for Large Wireless Sensor Networks ACM Int’l Workshop on WSNA, 2002 [70] Catello Di Martino, Valutazione dell'affidabilità di Reti di Sensori senza cavo, Università degli studio di Napoli Federico II, Ottobre 2005 [71] Fan Ye, Gary Zhong, Jesse Cheng, Songwu Lu, Lixia Zhang PEAS: A Robust Energy Conserving Protocol for Long-lived SensorNetworks, In Int’l Conf. on Distributed Conputing System (ICDCS), 2003 113