|
Appunti informatica |
|
Visite: 1466 | Gradito: | [ Picolo appunti ] |
Leggi anche appunti:Protocollo di controlloProtocollo di controllo Nella fase di inizializzazione tutte le radio sono accese Sicurezza : Concetti e TecnicheSicurezza : Concetti e Tecniche Problemi Fondamentali : 1) Intrusioni dall' Basi teoriche della trasmissione datiIl livello uno (Fisico) In questo capitolo verranno illustrati gli aspetti |
Nella fase di inizializzazione tutte le radio sono accese e pronte per comunicare coi nodi vicini. Il server esegue un protocollo di controllo inviando messaggi nella rete per analizzarne la topologia e creare tabelle di routing per ogni nodo.
32 bit
Figura 7: messaggio di tipo SETCLOCK
Il protocollo vero e proprio comincia con l'invio di un pacchetto broadcast di tipo ND_START, composto soltanto dall'header: alla ricezione è sufficiente l'analisi del tipo del messaggio perchè ogni nodo faccia partire la fase di neighbor discovery per conoscere i propri vicini.
32 bit
Figura 8: messaggio di tipo ND_START
Questo pacchetto provoca l'avvio di un timer di durata casuale alla cui scadenza vengono programmati invii periodici (di default sono tre) di pacchetti contenenti i vicini del nodo: questi pacchetti hanno tipo HELLO e contengono una lista di identificatori dei nodi dai quali il nodo può ricevere via radio. Ogni volta un nodo invia un HELLO in broadcast e nella lista Neighbors[] inserisce gli identificatori dei nodi che hanno emesso i pacchetti HELLO ricevuti nel frattempo. Al momento della ricezione di tali pacchetti il nodo aggiorna una tabella di identificatori di nodi vicini: questa indica una prima topologia di rete, anche se limitata localmente al nodo.
32 bit
Figura 9: messaggio di tipo HELLO
Dopo un periodo di tempo prefissato, il server invia al sink un pacchetto broadcast di tipo BUILDTREE: anche questo non ha un payload e in base al tipo il nodo costruisce un messaggio da inviare verso il server con le informazioni locali che possiede sulla rete.
32 bit
Figura 10: messaggio di tipo BUILD_TREE
Alla ricezione ogni nodo costruisce un pacchetto di tipo NEIGHBOR_REPORT da inviare verso il server: esso contiene la lista degli identificatori dei nodi vicini con i quali esiste un link attivo e bidirezionale. Il formato è analogo a quello del pacchetto di tipo HELLO. Non esistendo ancora una rotta sicura e valida, si invia verso il server attraverso il nodo "parent", ovvero il primo da cui era stato ricevuto un BUILDTREE.
Completata questa fase il server riceve da tutti i nodi collegati una lista di link affidabili sulla rete e può creare una tabella di routing per ognuno di essi. La tabella è calcolata usando l'algoritmo di Dijkstra per i cammini minimi su un grafo.
32 bit
Figura 11: messaggio di tipo NEIGHBOR_REPORTIl pacchetto successivo è la ROUTINGTABLE e il server lo invia ai singoli nodi separatamente, attendendo poi un ack di risposta e schedulando l'eventuale ritrasmissione; questo succede perché senza la tabella delle rotte un nodo non saprebbe inoltrare i pacchetti ai suoi vicini e i canali non potrebbero funzionare.
L'array RT contiene una lista di coppie:
<identificatore destinazione, prossimo_hop>.
Da questo momento ogni nodo conosce un percorso verso qualsiasi destinazione e può inoltrare i messaggi usando il campo prossimo_hop.
32 bit
Figura 12: messaggio di tipo ROUTINGTABLE
L'operazione conclusiva del protocollo di controllo è l'invio di un EE_START in broadcast. Pure questo pacchetto non ha un payload e il comando che attiva viene riconosciuto soltanto dal tipo del messaggio. Si avvia così il meccanismo di risparmio energetico e ogni nodo analizza gli istanti in cui la radio deve stare accesa a causa di invii/ricezioni di dati sui canali che gestisce.
32 bit
Figura 13: messaggio di tipo EE_ START
Da questo momento il server e la rete sono sincronizzati e i sensori aspettano soltanto la richiesta di esecuzione di una query per costruire le eventuali connessioni e inviare i dati rilevati.
Appunti su: |
|
Appunti Nutrizione | |
Tesine Medicina | |