• Non ci sono risultati.

Progetto e sviluppo di un sistema per la gestione remota di una rete di sensori wireless tramite protocollo SIP

N/A
N/A
Protected

Academic year: 2021

Condividi "Progetto e sviluppo di un sistema per la gestione remota di una rete di sensori wireless tramite protocollo SIP"

Copied!
35
0
0

Testo completo

(1)

Indice

Introduzione ... 2

CAPITOLO 1 ... 4

Wireless Sensor Network ... 4

1.1 Architettura hardware dei sensori ... 7

1.2 MAC... 11 1.3 Efficienza energetica ... 12 1.4 Routing ... 14 1.5 Localizzazione... 15 1.6 Affidabilità ... 16 CAPITOLO 2 ... 18 Il Protocollo SIP ... 18 2.1 Architettura SIP... 20 2.2 Indirizzi SIP... 23 2.3 Metodi SIP... 24 2.4 Risposte SIP ... 26 2.5 Procedure di localizzazione... 28 2.6 Procedure di autenticazione ... 29 2.7 Instant Messaging... 30 2.7.1 Congestion Control ... 32

(2)

Introduzione

Lo sviluppo tecnologico e le nuove richieste commerciali hanno determinato la nascita di nuove tecnologie per il monitoraggio dell’ambiente. Le Wireless Sensor Network ne rappresentano un esempio. Queste reti sono composte da dispositivi in grado di effettuare misurazioni di grandezze fisiche, relative all’ambiente circostante, e trasmetterle via radio ad un utente, anche relativamente lontano dal punto di misurazione. La motivazione che ha portato alla realizzazione del lavoro proposto è quella di realizzare un controllo remoto dei valori misurati dai sensori, integrando l’utilizzo di una Wireless Sensor Network con quello del protocollo SIP.

Nella seguente tesi sono state analizzate le problematiche relative al progetto e allo sviluppo di un dispositivo in grado di interfacciarsi sia con una rete di sensori wireless, sia con una rete che utilizza il protocollo SIP. Il lavoro presentato è stato svolto presso il Dipartimento di Ingegneria dell’Informazione dell’Università di Pisa. Il dispositivo, cui verrà assegnato il significativo nome di Gateway SenSIP, riceve ed elabora i dati misurati dalla rete di sensori wireless e comunica ad un dispositivo SIP standard, tramite un messaggio

(3)

istantaneo, l’eventuale presenza di un allarme, dove per allarme si intende la misura, da parte di un sensore, di un valore al di fuori di soglie opportunamente fissate. In questo modo l’utente che desideri essere informato sulla presenza di allarmi può comodamente ricevere un messaggio di notifica su un qualsiasi dispositivo SIP, evitando di recarsi nel luogo in cui sono distribuiti i sensori. Il lavoro proposto è concentrato sulla realizzazione di un sistema semplice ed intuitivo, che, sfruttando l’integrazione con il protocollo SIP, permette di effettuare una notifica degli allarmi e di impostare le soglie relative ai dati misurati, grazie all’utilizzo di un terminale remoto, sia rispetto alla rete di sensori, sia rispetto al Gateway SenSIP.

L’elaborato prevede una breve introduzione circa le wireless sensor network e il protocollo SIP, seguita dalla descrizione del sistema di rete e dei software utilizzati ed una conclusione riportante le analisi delle prove sperimentali effettuate.

(4)

CAPITOLO 1

Wireless Sensor Network

Le Wireless Sensor Network (WSN) [1] sono reti composte da dispositivi (detti nodi) di dimensioni ridotte, capaci di rilevare grandezze legate a fenomeni fisici e caratterizzati dalla presenza di un ricetrasmettitore che permette loro di comunicare in modalità senza fili (wireless). Ogni nodo, poiché possiede un microcontrollore, deve essere considerato come un “mini computer”, su cui è installato un programma leggero che utilizza un numero molto limitato di istruzioni e una piccola memoria dati. Tali nodi hanno la capacità di auto-organizzarsi per formare reti wireless

ad-hoc che, nella maggior parte dei casi, utilizzano un protocollo di comunicazione di tipo multi-hop. Tali reti sono costituite da dispositivi in grado di comunicare senza bisogno di un’infrastruttura preesistente. Ogni dispositivo si comporta come un nodo capace di far rimbalzare automaticamente le informazioni verso un altro nodo che si trova più vicino ad un “punto di raccolta”, identificato con il

(5)

che si trasmette sempre al nodo più vicino, ed una maggiore affidabilità, poiché se un nodo si spegne, la rete è in grado di riconfigurarsi autonomamente.

Le comunicazioni intra-network sono, ovviamente, via radio ed utilizzano bande prive di licenza, con capacità trasmissiva di poche decine di kbps e un range radio di qualche decina di metri.

Tra i nodi che costituiscono la rete se ne distingue uno, chiamato sink, che assume la funzione di gateway tra la WSN e il mondo esterno. Comunicando direttamente con il sink è possibile monitorare in remoto i dati rilevati dai sensori.

La figura sottostante mostra un possibile percorso che potrebbe seguire un pacchetto di dati generato da un nodo periferico della rete fino alla postazione di un utente.

(6)

Figura 1.1. Wireless Sensor Network

Le reti di sensori sono attualmente impiegate nei campi più vari come in medicina, agricoltura ed in ambito militare. In medicina le reti di sensori sono utilizzate per controllare i parametri fisiologici dei pazienti, come battito cardiaco o pressione sanguigna. In agricoltura, possono essere utilizzate per il monitoraggio delle condizioni climatiche delle aree coltivate. Le reti di sensori sono anche utilizzate per il controllo degli agenti inquinanti presenti nell’aria delle città o nelle acque dei fiumi. Di recente le Wireless

(7)

di diverse specie animali, evitando possibili interferenze derivanti dal contatto con l’uomo.

Nel seguito viene fatta una trattazione su quale sia l’architettura di un nodo e su alcuni aspetti di una wireless sensor network, quali: l’implementazione del MAC, l’efficienza energetica, il routing, la localizzazione e l’affidabilità.

1.1 Architettura hardware dei sensori

Un nodo di una wireless sensor network è in grado di raccogliere dati dall’ambiente circostante ed effettuarne una prima elaborazione.

(8)

Figura 1.2. Architettura hardware di un nodo.

Il microcontrollore è un tipo di microprocessore caratterizzato da elevata integrazione, basso consumo d’energia, autosufficienza ed economicità. Svolge la funzione d’elaborazione dei dati e controllo della funzionalità degli altri componenti del nodo.

Il ricetrasmettitore è un dispositivo in grado di fungere sia da trasmettitore, sia da ricevitore. Gli stati operativi in cui può trovarsi sono tipicamente quattro: trasmissione, ricezione, idle e sleep.

La memoria esterna, presente molto di rado, è solitamente costituita da memoria di tipo flash e viene utilizzata per aumentare la memoria integrata del microcontrollore e per immagazzinare i dati rilevati dai sensori.

L’alimentazione è indispensabile per l’attività di rilevazione, di elaborazione dei dati e, soprattutto, per la comunicazione tra i

(9)

sensori. Si utilizzano batterie alcaline, di solito una coppia di tipo AA, che spesso determinano la grandezza dei nodi stessi. Attualmente si sta sperimentando l’utilizzo di altre sorgenti di energia, come le celle fotovoltaiche.

I sensori sono dispositivi hardware che generano un segnale analogico in dipendenza delle condizioni fisiche dell’ambiente che si vuole monitorare. In seguito un convertitore analogico-digitale (CAD) trasforma il segnale da analogico in digitale in modo da poter essere elaborato dal microcontrollore. Le caratteristiche richieste per i sensori sono: ridotte dimensioni, ridotto consumo di energia ed adattabilità all’ambiente.

Lo stack protocollare di un generico nodo della rete dei sensori è costituito dai livelli riportati nella figura sottostante.

(10)

Figura 1.3. Stack protocollare

A livello fisico sono implementate le tecniche di modulazione, in fase di trasmissione e di ricezione. Questo livello è responsabile della selezione della frequenza, della scelta della portante, della rilevazione del segnale.

Il livello data link gestisce la multiplazione dei flussi di dati, la rilevazione della trama e il Medium Access Control (MAC).

Il livello di rete si occupa del routing dei pacchetti contenenti i dati rilevati dai sensori. In una rete di sensori wireless i protocolli di routing devono essere progettati in modo da rispettare le esigenze caratteristiche di tali reti.

(11)

Il livello di trasporto è di notevole importanza nel caso in cui si debba interfacciare una rete di sensori con reti esterne, come ad esempio Internet.

A livello delle applicazioni sono presenti vari software, utilizzati per le diverse attività di rilevazione che possono essere realizzate.

1.2 MAC

In una rete di sensori wireless, multi-hop e in grado di auto-organizzarsi, il Medium Access Control merita un’attenzione particolare, poiché determina la creazione di un’infrastruttura di rete e la suddivisione delle risorse di rete tra i nodi.

Il MAC realizza i collegamenti per il trasferimento dei dati tra i vari nodi appartenenti alla rete di sensori: ciò determina l’infrastruttura di base necessaria per la comunicazione wireless hop by hop e la capacità della rete di sensori di auto-organizzarsi.

Due protocolli di tipo MAC usati comunemente per le reti di sensori sono lo SMACS (Self-Organizing Medium Access Control for Sensor Network) e lo EAR (Eavesdrop-And.Register).

Il protocollo SMACS viene utilizzato per realizzare i collegamenti intra-network, realizzati grazie ad un procedimento di scoperta, che permette ad ogni nodo di conoscere i propri vicini, e di instaurare la

(12)

tipo “master. Il protocollo EAR offre ai nodi continuità del servizio anche in caso di mobilità.

Per quanto concerne la suddivisione delle risorse tra i vari nodi e per la minimizzazione delle collisioni nelle trasmissioni, il MAC può implementare una variante del CSMA ed una soluzione ibrida tra il

TDMA e lo FDMA.

1.3 Efficienza energetica

L’efficienza energetica [2] rappresenta un aspetto fondamentale per le WSN, si pensi alle difficoltà derivanti dalla sostituzione delle batterie una volta che si sono scaricate. Pertanto, sono state sviluppate tecniche sia di tipo hardware, sia di tipo software, finalizzate al prolungamento della durata delle batterie.

Il ricetrasmettitore è il componente che assorbe la maggior parte di energia e il cui spreco maggiore si ha durante la fase idle, quando il nodo è in ascolto sul canale radio.

(13)

Tabella 1.1. Consumo di corrente per un mote mica2

Le soluzioni realizzate per migliorare l’efficienza energetica sono volte a minimizzare la permanenza del ricetrasmettitore, che non sia né in trasmissione né in ricezione, nello stato di idle.

Una possibile soluzione potrebbe essere quella di determinare dei nodi che costituiscano una dorsale (rete di backbone) e siano sempre attivi, in modo da fornire connessione ed immagazzinare i messaggi dei nodi adiacenti che non fanno parte del backbone. I nodi non appartenenti alla dorsale si accendono periodicamente, solo per scambiare messaggi, risparmiando così energia. I nodi di backbone, ovviamente, consumano molta più energia, pertanto i vari nodi si alternano nello svolgere tale ruolo.

(14)

Tradizionalmente i protocolli di routing basati su protocollo IP utilizzano una struttura di indirizzamento di tipo gerarchico, su cui sono implementati algoritmi di routing basati sull’indirizzo del destinatario e sull’utilizzo di un insieme di tabelle per l’individuazione del next-hop. In una WSN, dove i nodi possono essere molto numerosi, disposti in maniera casuale e la topologia di rete può variare molto frequentemente, l’utilizzo di una struttura gerarchica diventa del tutto impraticabile.

I protocolli di routing in una WSN richiedono grande leggerezza per ridurre al minimo l’energia consumata in fase di elaborazione, per la memoria impegnata e per l’overhead relativo ad ogni messaggio. Un semplice esempio di routing utilizzato per inviare messaggi al sink è quello basato sulla costruzione di un albero di inoltro. Quando viene inviata una richiesta dal sink, ogni nodo memorizza il nodo da cui ha ricevuto tale richiesta. Quando un nodo riceve dati da altri, o li genera lui stesso, li invia al nodo da cui aveva ricevuto la richiesta del sink. La figura rappresenta la struttura di un albero così determinato.

(15)

Figura 1.4. Albero di routing

1.5 Localizzazione

Lo scopo della localizzazione è fornire qualche tipo di informazione per correlare o aggregare spazialmente i dati e per fare routing geografico. Il modo più veloce per stabilire le coordinate fisiche di un sensore è quello di equipaggiare ciascuno con un ricevitore GPS. Tale soluzione non è sempre possibile a causa dei costi di tale ricevitore, per l’elevato consumo di energia e per le dimensioni. Una soluzione più economica sarebbe dotare solo alcuni nodi di ricevitori GPS, in modo che tutti gli altri nodi, utilizzando informazioni sulla

(16)

posizione.

Altri metodi determinano il calcolo delle coordinate virtuali, le quali non individuano la posizione assoluta di un nodo, bensì quella relativa al resto della rete.

1.6 Affidabilità

Il problema dell’affidabilità è centrale per una WSN. Si pensi che i nodi sono alimentati a batteria e che le comunicazioni sono effettuate via radio, pertanto si possono facilmente verificare disconnessioni temporanee o permanenti.

Il problema dell’affidabilità deve essere affrontato sia a livello di rete, dal momento che il livello fisico e MAC non garantiscono affidabilità sulla connessione end to end, sia a livello delle applicazioni. A livello di rete, per garantire una certa affidabilità, sono implementati particolari algoritmi di routing, i quali, grazie all’impiego di periodici refresh, riescono a ristabilire il corretto funzionamento della rete, rimediando agli errori localizzati sui singoli nodi o sui link. Per garantire l’affidabilità a livello delle

(17)

applicazioni sì è pensato all’utilizzo di marche inserite nei pacchetti dei dati, in modo da poter richiedere eventuali ritrasmissioni in caso di perdita di dati o di errori.

(18)

CAPITOLO 2

Il Protocollo SIP

Il Session Initiation Protocol (SIP) [3] è un protocollo di controllo a livello applicazione realizzato per creare, modificare e terminare sessioni tra uno o più partecipanti. Queste sessioni sono utilizzate per effettuare chiamate telefoniche e comunicazioni multimediali utilizzando la rete Internet.

Il protocollo SIP è stato definito per la prima volta nel 1999 nella RFC 2453 redatta dall’ IETF (Internet Engineering Task Force), a cui è seguita la RFC 3261 nel 2002.

Fondamentalmente gestisce cinque aspetti dell’instaurazione e terminazione di una chiamata multimediale:

- User location: determinazione della posizione fisica di un

end system da usare per la comunicazione;

- User availability: determinazione del desiderio del chiamato di prendere parte alla chiamata;

(19)

- User capabilities: determinazione dei media e dei loro parametri da utilizzare durante la comunicazione;

- Session setup: instaurazione della chiamata;

- Session management: trasferimento e terminazione della sessione, modifica dei parametri, invocazione dei servizi.

Nonostante esistano molti altri protocolli di segnalazione di tipo

VoIP (Voice over Internet Protocol), il SIP è caratterizzato dalla particolarità di trarre le sue radici dal mondo della comunità di Internet, più che dall’industria delle telecomunicazioni. Il SIP presenta una grossa somiglianza con il HTTP (Hypertext Transfer Protocol), con cui condivide la struttura di tipo request-response, che determina una comunicazione di tipo client-server, e molti status

code.

Il SIP lavora in stretta relazione con altri protocolli di rete, come il

TCP (Transport Control Protocol) e principalmente l’UDP (User Datagram Protocol), i quali operano a livello di trasporto, l’SDP (Session Description Protocol) per descrivere le porte IP, i codec e i media utilizzati nella sessione e l’RTP (Real-Time Transport Protocol), per portare il traffico voce o video.

(20)

L’RFC 3261 [4] definisce gli elementi che costituiscono una rete SIP.

In breve possono essere raggruppati in elementi base, indispensabili per la realizzazione di un sistema SIP elementare, e in elementi derivati da quelli base.

Gli elementi base sono:

- User Agent Client (UAC): entità logica che crea una nuova richiesta ed utilizza la macchina a stati finiti del terminale utente per inviarla;

- User Agent Server (UAS): entità logica che genera una risposta ad una richiesta SIP. La richiesta può essere accettata, rifiutata o trasferita su un altro UAS;

- Proxy Server: server di rete che, ricevuta una richiesta, individua lo UAS o un altro proxy server ed inoltra la richiesta.

(21)

Figura 2.1. Proxy server

La figura 2.1 riporta un esempio di messaggi scambiati tra due utenti inseriti fra un proxy server. Il significato dei messaggi riportati nella figura sarà descritto nei paragrafi successivi.

Gli elementi derivati da quelli base sono:

- User Agent: entità logica che può svolgere sia il ruolo di UAC, sia il ruolo di UAS;

- Registrar Server: server che accetta le richieste di registrazione degli utenti ed inserisce le informazioni provenienti da tali richieste nel location service del dominio a cui appartiene;

(22)

comunica all’entità da cui ha ricevuto una richiesta l’indirizzo del server successivo a cui deve essere inoltrata la richiesta. Un esempio di funzionamento di un Redirect Server è riportato in Figura 2.2.

Figura 2.2. Redirect server

- Outbound Proxy: proxy che riceve delle richieste da un client ed inoltra i messaggi di segnalazione associati alle richieste. Tipicamente uno UA è configurato manualmente con un outbound proxy.

(23)

2.2 Indirizzi SIP

Il protocollo SIP segue la definizione di indirizzo URI (Uniform Resource Identifier), come descritto nella RFC 2396. Tale modello di indirizzo è utilizzato da altre applicazioni, come ad esempio la posta elettronica, o per i siti Internet. L’indirizzo SIP fa riferimento ad un’entità logica, avente la possibilità di variare, nel tempo, la sua posizione fisica sulla rete. Il formato di un indirizzo SIP è il seguente:

sip:user:password@host:port;option

- sip individua il tipo di protocollo a cui si riferisce l’indirizzo; - user è l’identificativo dell’utente, può essere costituito da un nome o da un numero telefonico;

- password è la parola chiave che permette l’accesso al servizio, la sua presenza è opzionale;

- host è il dominio di appartenenza dell’utente;

- port è il numero di porta da utilizzare per contattare l’utente, se non presente viene utilizzata la porta di default (tipicamente 5060) ;

- option sono informazioni opzionali che possono essere inserite ad esempio per specificare il tipo di terminale o il protocollo di trasporto che si vuole utilizzare.

(24)

Esempi di indirizzi validi sono: sip:vincenzo:fontanarosa@10.0.1.2 sip:vincenzo@10.0.1.2:5061;transport=tcp

sip:+1-212-555-1212:1234@gateway.com;user=phone

Gli indirizzi SIP sono utilizzati nel campo “From”, per indicare il chiamante, nel campo “To” per indicare il chiamato, nel campo “Request URI”, per indicare l’indirizzo corrente, e nel campo “Contact” per l’indirizzo di indirezione, ossia l’indirizzo locale della macchina su cui è possibile trovare il chiamato.

2.3 Metodi SIP

Il SIP riprende dal protocollo HTTP la struttura generale dei suoi messaggi. Questi sono in generale composti da:

- start line, che può essere più precisamente una request o una

response line;

- uno o più campi di header;

- una linea vuota per determinare la fine dell’header; - un campo dati che utilizza il protocollo SDP.

(25)

La request line è composta dal nome del metodo e dalla

request-URI.

I messaggi di SIP request, anche chiamati metodi SIP, definiti dalla RFC 2396 sono:

INVITE: questo metodo viene utilizzato per invitare un servizio o

un utente a partecipare ad una sessione. Nel campo dati dell’INVITE sono specificati i media e i parametri da utilizzare nella sessione.

ACK: tale metodo è utilizzato per confermare che lo UAC ha

ricevuto la risposta finale ad una richiesta di INVITE.

OPTIONS: con questo metodo si interroga un proxy server o un

UAC circa le sue capacità.

BYE: questo metodo viene utilizzato da uno UAC per comunicare

al server di voler terminare una sessione.

CANCEL: tale metodo viene utilizzato per cancellare una richiesta

pendente, ossia una richiesta a cui non è ancora seguita nessuna risposta. La richiesta viene identificata dai campi Call-ID, From, To, CSeq.

REGISTER: questo metodo permette ad uno UAC di notificare ad

un server SIP l’indirizzo locale a cui può essere raggiunto. Uno UAC può inviare un REGISTER ad un server locale, all’accensione o in seguito ad uno spostamento, all’indirizzo multicast “sip.mcast.net” (224.0.1.75).

(26)

INVITE.

Figura 2.3. Metodo INVITE

2.4 Risposte SIP

Una risposta SIP viene inviata da un Server o da uno UAS quando viene ricevuta una richiesta. La response-line è costituita da uno

Status-Code numerico e una frase testuale, al fine di fornire una breve descrizione e rendere comprensibile, ad un utente umano, il significato dello Status-Code. Tale codice numerico è composto da tre numeri, il primo definisce la classe di risposta:

(27)

1xx = Provisional. La richiesta è in fase di elaborazione e non è

stata ancora completata.

2xx = Success. La richiesta è stata ricevuta, elaborata con successo

e accettata.

3xx = Redirection. La richiesta deve essere re-indirizzata verso

un’altra locazione.

4xx = Client Error. La richiesta contiene errori di sintassi.

5xx = Server Error. La richiesta non può essere elaborata dal

server ma può essere inviata ad altri server.

6xx = Global Failure. La richiesta non può essere elaborata da

nessun server.

La figura sottostante riporta come esempio una risposta 200 OK.

(28)

Per instaurare una sessione SIP, uno UAC deve avere le conoscenze per individuare l’indirizzo IP, per poter inviare il messaggio di INVITE. Normalmente un client SIP non conosce l’indirizzo IP del destinatario, dal momento che tali indirizzi possono essere allocati dinamicamente. Infatti gli indirizzi IP fanno riferimento ad un utente che può liberamente muoversi su diversi terminali o nodi della rete, assumendo così differenti indirizzi IP. Per quanto detto si evidenzia la necessità che l’utente notifichi alla rete la sua posizione. Tale notifica viene effettuata mediante l’invio del metodo REGISTER ad un registrar server.

La figura sottostante riporta l’esempio di una richiesta di REGISTER.

(29)

Il campo “To” contiene l’indirizzo che si sta registrando, il campo “From” contiene l’indirizzo da cui si sta realizzando la registrazione, il campo “Request-URI” contiene il dominio del registrar, il campo “Contact” contiene l’indirizzo di indirezione a cui trovare l’utente specificato nel campo “To”.

2.6 Procedure di autenticazione

Le procedure di autenticazione permettono ad un server di verificare l’identità di un client che invia un certo tipo di richiesta. Tali procedure garantiscono un certo livello di sicurezza su una rete SIP. L’autenticazione è necessaria, ad esempio, per accertarsi che un utente non fornisca una falsa identità, quando manda un messaggio di REGISTER, oppure per garantire ad uno UA di comunicare con l’utente specificato nel campo “From”.

Un proxy server, che riceve una richiesta da uno UAC, può richiedere l’autenticazione trasmettendo una risposta 407: Proxy

Authentication Required avente un campo Proxy-Authenticate. L’utente che riceve tale risposta invia una nuova richiesta con le sue credenziali, ovvero una richiesta con un campo Proxy-Authorization, che contiene le informazioni necessarie all’autenticazione. Il proxy,

(30)

inserite dal client e gli comunica l’eventuale successo o insuccesso dell’autenticazione.

Figura 2.6. Autenticazione

2.7 Instant Messaging

L’Instant Messaging (IM) [5] è definito come il trasferimento di messaggi tra utenti quasi in real-time. Questi messaggi sono di solito, ma non necessariamente, brevi. L’IM differisce dalle e-mail per la modalità d’uso, dal momento che i messaggi istantanei sono spesso raggruppati in brevi conversazioni interattive. L’IM è presente sulle reti IP da vario tempo, tra le prime implementazioni si collocano

(31)

zephir e IRC. L’RFC 3428 esegue un’estensione dei metodi SIP, introducendo il metodo MESSAGE, utilizzato per inviare un messaggio istantaneo. Tra i messaggi non c’è un’esplicita associazione, ovvero i messaggi sono indipendenti tra loro, un’eventuale conversazione è presente solo sull’interfaccia utente.

Il messaggio che si vuole scambiare viene inserito nel corpo del metodo MESSAGE. Tale corpo può essere di tipo MIME (Multipurpose Internet Mail Extensions) poiché tale formato è normalmente supportato da altri protocolli di messaggistica istantanea, in modo tale che i messaggi scambiati tra utenti che utilizzano protocolli differenti non subiscano modifiche da parte dei

gateway. Il servizio di instant messaging utilizza lo stesso sistema di indirizzamento previsto dal SIP. Nell’attraversamento di ogni proxy il Request URI può essere variato.

Un MESSAGE non inizia un dialogo. Al contrario un MESSAGE può essere associato ad un chiamata preesistente.

Un proxy potrebbe anche duplicare una richiesta MESSAGE: ciò permette di inviare i messaggi a più terminali, dove è probabile che si possa trovare l’utente destinatario. Il proxy che esegue una tale duplicazione normalmente riceve più messaggi di risposta, ma invia allo UAC un singolo messaggio di risposta, nascondendogli la duplicazione avvenuta.

(32)

risposta, secondo le regole generali del SIP. Se un messaggio è ricevuto correttamente viene generato un messaggio 200 OK. Con tale risposta si intende che il destinatario finale ha ricevuto correttamente il messaggio, non che l’abbia letto.

La figura sottostante riporta come esempio un metodo MESSAGE.

Figura 2.7. Metodo MESSAGE

2.7.1 Congestion Control

Generalmente un servizio di IM è collegato ad un maggiore volume di traffico, rispetto a quello relativo alla segnalazione di chiamata.

(33)

media stesso utilizzato, a differenza degli altri metodi SIP che trasportano nel payload solo le informazioni circa i media da utilizzare. Potrebbe accadere che la presenza di traffico legato al servizio di instant messaging possa interferire con il traffico legato alle segnalazioni di chiamata. Operare un controllo sulla congestione diventa perciò indispensabile. Normalmente il controllo della congestione dovrebbe essere eseguito a livello di SIP, non dei singoli metodi, ma data la peculiarità, precedentemente descritta, del metodo MESSAGE, sono necessarie ulteriori considerazioni.

Si potrebbe pensare di poter utilizzare un protocollo di trasporto che già implementi un sistema per effettuare il controllo della congestione, come il TCP o l’SCPT, ma nel SIP non è previsto nessun sistema per evitare che ad un hop successivo sia utilizzato il protocollo UDP.

Per quanto detto prima, si pone convenzionalmente come massima dimensione di un metodo MESSAGE 1300 byte, nel caso in cui non si abbiano informazioni dettagliate circa il livello di congestione e della capacità trasmissiva della rete. Nel caso contrario si può imporre che la dimensione massima del messaggio sia almeno 200 byte inferiore alla minima MTU (Maximum Transmission Unit) registrata sul percorso fino allo UAS.

(34)

proibire ad uno UAC di inviare un secondo MESSAGE ad un URI da cui non ha ancora ricevuto risposta della sua ricezione.

2.7.2Considerazioni sulla sicurezza ed autenticazione Come già ampiamente descritto prima, il metodo MESSAGE, a differenza degli altri metodi SIP, trasporta il media stesso nel corpo del messaggio. Ciò richiede un’ulteriore sicurezza rispetto ad ogni altra richiesta. In particolare uno UA che supporta il MESSAGE deve implementare sistemi di autenticazione end-to-end e controllo sull’integrità del messaggio.

L’autenticazione sul proxy è fortemente consigliata per verificare l’identità del mittente e prevenire attacchi di tipo spoofing e

(35)

Figura

Figura 1.1. Wireless Sensor Network
Figura 1.2. Architettura hardware di un nodo.
Figura 1.3. Stack protocollare
Tabella 1.1. Consumo di corrente per un mote mica2
+7

Riferimenti

Documenti correlati

A partire da una matrice liquida, a seguito di un processo separativo a membrana, sono state ottenute due frazioni liquide: una definita permeato, costituita dal solvente

Queste coppie di elementi, comunemente intesi come sinonimi, in realtà provengono da differenti tradizioni: topic/comment sarebbero termini di tradizione americana la quale

Per verificare l’ accuratezza del metodo si possono fare prove di acquisizione dello stesso oggetto con diverse fasi di acquisizione, dove in una fase si scannerizza l’oggetto con

Bracaloni, Il paesaggio a Pontedera: il fiume, la città, la campagna, Pacini Editore, Pisa, 2000.. Bova, Una memoria per

4.2 Capacity of a frequency-flat deterministic MIMO

Quando il servizio sociale può far parlare di un nuovo welfare