Studio e Specificazione del Protocollo CoAP per



Похожие документы
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Informatica per la comunicazione" - lezione 8 -

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

Reti di Telecomunicazione Lezione 6

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

Lo scenario: la definizione di Internet

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

Reti di Telecomunicazione Lezione 8

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

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

Transmission Control Protocol

Lezione 1 Introduzione

Introduzione alle applicazioni di rete

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Inizializzazione degli Host. BOOTP e DHCP

Reti di Calcolatori. Il software

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Il sistema operativo TinyOS

Internetworking TCP/IP: esercizi

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

La tecnica proporzionale

MODELLI ISO/OSI e TCP/IP

Introduzione. Sommario: Obiettivo:

9 Febbraio 2015 Modulo 2

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

Protocolli di Comunicazione

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

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

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

Standard di comunicazione

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Principi fondamentali

Sistema ATM con rete NetRail. Divisione elco srl

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI INFORMATICA E SISTEMISTICA. Presentazione

Protocolli applicativi: FTP

Architettura hardware

WiFi: Connessione senza fili. di Andreas Zoeschg

Classificazione delle applicazioni multimediali su rete

Introduzione alla rete Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Modulo 1.3 Reti e servizi

Tesi di Laurea Specialistica EMULAZIONE DI EFFETTI WAN NELLA VALUTAZIONE DELLE PRESTAZIONI DI SERVER WEB. Candidato Emiliano Zeppa.

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

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Approfondimento di Marco Mulas

SISTEMA DI TELETTURA CONTATORI

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8

introduzione I MICROCONTROLLORI

Livelli di un protocollo

Reti di Telecomunicazione Lezione 7

Introduzione alla rete Internet

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA Paola Zamperlin. Internet. Parte prima

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

Do-Dots Protocollo di comunicazione

Introduzione alla rete Internet

Comunicazione nel tempo

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

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

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

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Un approccio innovativo per il delivery di servizi in infrastrutture di nomadic computing

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 1 Informazioni Logistiche

Reti di calcolatori. Reti di calcolatori

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Reti diverse: la soluzione nativa

La memoria centrale (RAM)

Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1

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

Gestione degli indirizzi

SMS API. Documentazione Tecnica YouSMS HTTP API. YouSMS Evet Limited

Progetto e sviluppo di un applicazione per il pilotaggio remoto di reti

Architettura del calcolatore

Il funzionamento delle reti

Reti di Sensori Wireless (WSN) per il telecontrollo nelle energie rinnovabili

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Gestione della Connessione in TCP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Dispositivo wireless Interfaccia Ethernet in tecnologia ZigBee

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

TECNICHE DI SIMULAZIONE

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

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Concetti di base di ingegneria del software

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

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Informatica per la comunicazione" - lezione 9 -

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

Транскрипт:

Università degli Studi di Trieste Dipartimento di Elettronica, Elettrotecnica ed Informatica Tesi di Laurea in Sistemi di Telecomunicazioni Studio e Specificazione del Protocollo CoAP per Sistemi Embedded Relatrice: Ing. Lia Deotto Correlatore: Valentino Zio Laureanda: Agata Leo Anno accademico 2009-2010

2 Contenuti della presentazione Introduzione Il protocollo CoAP Il model-checker Spin La specificazione e validazione del CoAP

Introduzione 3

4 CoAP Constrained Application Protocol Draft IETF (Internet Engineering Task Force) Applicazioni M2M (Machine to Machine) Ambienti constrained CoAP Applicativo Trasporto Rete Collegamento Fisico Applicazioni M2M: Domotica Automazione degli edifici Controllo industriale Telematica sanitaria Stack TCP/IP

5 Ambienti constrained Dispositivi embedded Semplici microprocessori Microprocessori a 8 o 16 bit Frequenze di clock intorno ai 16 MHz Ad esempio: Texas Instruments MSP 430 CPU 16 bit Max CPU speed 25 Mhz Low Power RAM: 1-10 kb Flash: 512 B - 60 kb Poca memoria Decine di kb di RAM Decine di kb di ROM/Flash Potenza limitata Alimentazione a batteria Bassi consumi Ciclo di lavoro ridotto (~0,1%)

6 Ambienti constrained Reti wireless personali VANTAGGI Facilità di installazione Flessibilità Basso costo CARATTERISTICHE Bassa potenza Scarso throughput MTU piccola Alte perdite Ad esempio: Standard IEEE 802.15.4 LR-WPAN (Low Rate Wireless Personal Area Network) Output power: ~ 1 mw Raggio tipico di 10-20 m Massima bit-rate: 250 kbit/s MTU: 128 byte MTU: Maximum Transmission Unit

Comunicazione in applicazioni M2M Wired Wireless Low_Power Integrazione IPv6 end-to-end 6LoWPAN 1980 2000 2004 2007 IPv6 over Low power WPAN H H Internet Router Router H Rete costrained 6LoWPAN H Host 6LoWPAN IPv6 end-to-end

8 Applicazioni interoperabili? 6LoWPAN: IPv6 anche in ambienti constrained Ma svariati protocolli applicativi -> frammentazione Applicativo Trasporto Rete Z Z Collegamento Fisico Stack TCP/IP Internet W W Z Rete Zigbee 6LoWPAN IPv6 end-to-end W Rete Wireless HART 6LoWPAN

9 Embedded web Vantaggi: Un solo protocollo applicativo per molte applicazioni M2M L architettura del web è scalabile, flessibile ed efficiente Applicazioni M2M Domotica, smart energy, automazione edifici, CoAP Embedded Internet HTTP Server HTTP : web = CoAP : embedded web Internet C HTTP Client P C P C C Ambiente constrained P C Proxy CoAP Nodo CoAP

10 Perché HTTP non è adatto? HTTP Progettato per l interazione con l utente Progettato per il trasferimento di grandi quantità di dati Formato di messaggio pesante Modello di interazione pull HTTP TCP IP Collegamento Fisico Le applicazioni constrained Devono essere progettate per l interazione M2M Le interazioni sono spesso molto brevi Generano payload di piccole dimensioni Poche decine di byte Hanno un payload disponibile limitato Devono risparmiare potenza e memoria Hanno bisogno anche di un modello di interazione push Hanno bisogno del resource discovery

11 Perché TCP non è adatto? (1/3) TCP Le applicazioni constrained Connection-oriented Affidabile Controllo del flusso Controllo della congestione Unicast Non sempre richiedono garanzie di affidabilità Possono aver bisogno di limitare la congestione di rete Ma con una tecnica più semplice Hanno bisogno del multicast HTTP TCP IP Collegamento Fisico

12 Perché TCP non è adatto? (2/3) TCP: Tecnica sliding window Affidabilità Controllo del flusso Messaggio HTTP Sender Receiver Segmenti TCP S 1 S 2 S 3 S 4 S 1 S 2 S 3 Implementare una tecnica sliding window a livello di trasporto è un ottimizzazione: S 4 X Per messaggi grandi Se tutti i messaggi hanno bisogno di garanzie di affidabilità RTO S 4

13 Perché TCP non è adatto? (3/3) TCP: Controllo della congestione TCP assume: RTO scade => congestione TCP sceglie il RTO in base alla stima del RTT (aggiornata dinamicamente) Approccio opportuno solo quando il sender ha molti dati da trasmettere Ambienti constrained: Alte perdite dovute alle caratteristiche del mezzo radio RTO scade => congestione Interazioni di breve durata Stima di RTT?? RTO: Retransmission Time Out RTT: Round Trip Time

Il protocollo CoAP 14

15 CoAP (1/2) Protocollo di trasferimento web embedded Simile ad HTTP Mapping CoAP HTTP Usa UDP Ma è compatibile anche con TCP Affidabilità opzionale (Tecnica Stop & Wait) Internet C HTTP Client P C C C Ambiente constrained P Proxy CoAP C Nodo CoAP Funzionalità specifiche M2M Resource discovery Multicast Modello di interazione push CoAP UDP IP Collegamento Fisico

16 CoAP (2/2) CoAP UDP IP Collegamento Fisico Richiesta - Risposta Messaggi Tipi di messaggi: CON: Confirmable NON: Non Confirmable ACK: Acknowledgement RST: Reset Metodi: GET, POST, PUT, DELETE Response code: 2.00 OK 2.01 Created 4.00 Bad Request Sottoinsieme dei metodi e response code HTTP

17 Esempio: interazione immediata Client CON [MID 0xbc90] GET /temperature (Token 0x71) Server ACK [MID 0xbc90] 2.00 OK (Token 0x71) 22.5 C Richiesta CON unicast Il client identifica una risposta immediata grazie a: Message ID (MID) Token

18 Esempio: interazione deferred Client CON [MID 0xbc90] GET /temperature (Token 0x71) Server ACK [0xbc90] CON [MID 0x23bb] 2.00 OK (Token 0x71) 22.5 C Richiede troppo tempo ACK [MID 0x23bb] Richiesta CON unicast e risposta deferred Il client identifica una risposta deferred grazie al Token

19 Le relazioni di sottoscrizione Il client effettua una richiesta di sottoscrizione presso un server per una data risorsa Specificando il Lifetime della sottoscrizione Il server invia una notifica al client ogni volta che lo stato della risorsa osservata cambia (interazioni push) Finché non scade il Lifetime Il client può rinnovare la sottoscrizione (refresh) Poco prima che scada il Lifetime Sia il client che il server possono terminare la relazione di sottoscrizione

Il model-checker SPIN 20

21 SPIN e ProMeLa SPIN (Simple ProMeLa Interpreter) Tool per verificare la correttezza logica di un sistema distribuito In particolare di un protocollo di comunicazione Il sistema distribuito è descritto in linguaggio ProMeLa ProMeLa (Process Meta Language) Linguaggio di specificazione per creare un modello di un protocollo di comunicazione Modello rappresentato da una macchina a stati finita Simile al linguaggio di programmazione C

22 Modello ProMeLa (1/2) Descrive la logica delle procedure di comunicazione di un protocollo Deve astrarsi dai dettagli implementativi del protocollo Deve focalizzare sulle interazioni Obiettivo: Individuare errori logici nelle procedure di comunicazione di un protocollo Procedere all implementazione del protocollo sulla base del modello ProMeLa Limitazione: Un modello ProMeLa non può descrivere i vincoli temporali del protocollo

23 Modello ProMeLa (2/2) Un modello ProMeLa è costituito da: Variabili Processi Esecuzione concorrente Possono esistere più istruzioni eseguibili nello stesso processo Non determinismo Canali Comunicazione tra processi Asincroni Sincroni

24 La validazione Dimostra che in tutte le sequenze di esecuzione viene rispettata una proprietà logica Spazio degli stati Una sequenza di esecuzione

25 Proprietà logiche Safety Non accadrà mai niente di errato Liveness Prima o poi accadrà qualcosa di corretto Ad esempio: Invarianza x è sempre minore di y Ad esempio: Risposta Quando accade l azione X prima o poi dovrà accadere l azione Y VALIDAZIONE Spin ricerca una sequenza di esecuzione nella quale accade l evento non desiderato VALIDAZIONE Spin ricerca una sequenza di esecuzione nella quale non accade mai l evento desiderato

La specificazione e validazione del CoAP 26

27 La specificazione del CoAP Obiettivi: Specificare le procedure di comunicazione del CoAP con riferimento ad una futura implementazione su un dispositivo M2M Interazioni richiesta risposta Relazioni di sottoscrizione Verificare l assenza di errori logici nella specificazione e individuare incompletezze nella bozza CoAP Vincolo: In ProMeLa non si possono specificare le dinamiche temporali del protocollo

28 Processi e canali AT (Interfaccia dei comandi per il dispositivo M2M) Invia una richiesta al CoAP e attende una risposta Nodo A AT Nodo B AT AT_req AT_cnf AT_req AT_cnf CoAP Client e server CoAP CoAP UDP_req UDP_ind UDP_req UDP_ind UDP UDP (Rappresenta il canale di comunicazione) Può perdere messaggi Il modello deve astrarsi dai dettagli implementativi

29 Validazione delle interazioni richiesta-risposta Proprietà di liveness (di risposta): Ad ogni richiesta da parte del client fa seguito una risposta immediata, oppure soltanto un messaggio vuoto che riporta riporta l'ack da parte del server, oppure deve essere inviata ad AT una notifica di timeout VALID Ad ogni richiesta del client fa seguito una risposta immediata, oppure una risposta deferred da parte del server, oppure deve essere inviata ad AT una notifica di timeout VALID Proprietà di safety: Il client non deve mai scambiare due risposte tra di loro NOT VALID

30 Nella realtà Retransmission window = RTO (2 Max_Retransmit 1) + Max_RTT Client Server Retransmission_Window: 2 s + RTT RTO: 2 s CON [MID: 0xbc90] GET /temperature X CON [MID: 0xbc90] GET /temperature ACK [MID: 0xbc90] 2.00 OK ( 22.5 C ) Es: Max_Retransmit = 1 CoAP Lo stesso Message ID (MID) non può essere riutilizzato all interno della Retransmission_Window ProMeLa Retransmission_Window?? (circa 1 minuto)

31 nel modello ProMeLa AT POST Client POST CON [MID 0] UDP POST CON [MID 0] Server VIOLAZIONE DELLA PROPRIETA DI SAFETY Il client può scambiare due risposte tra loro MOTIVO: Il Message ID (MID) viene riutilizzato troppo presto timeout POST CON [MID 0] [TOKEN 1] timeout Timeout_error X Altre richieste GET GET CON [MID 0] Res_POST ACK [MID 0] Res_POST ACK [MID 0] X Vecchia risposta NOT VALID Res_POST Max_Retransmit = 1

32 Validazione di una relazione di sottoscrizione Proprietà di liveness (di risposta) Ogni volta che il client invia un messaggio di refresh al server, se non esaurisce i tentativi di ritrasmissione per il refresh, dopo un po riceve una notifica. VALID Ogni volta che il server invia una notifica di tipo CON al client, se non esaurisce i tentativi di ritrasmissione, dopo un po riceve un ACK oppure un RST. VALID Ogni volta che il server decide di terminare la sottoscrizione, dopo un po la sottoscrizione viene terminata sul client e AT ne riceve conferma. VALID Ogni volta che AT decide di terminare una sottoscrizione, dopo un po la sottoscrizione viene terminata sul server e AT ne riceve conferma. VALID

33 Problema (e soluzione) PROBLEMA: Può succedere che la relazione venga terminata in modo non corretto Il client considera una notifica valida in particolare se: Il Token è corretto La notifica è più recente di un altra notifica che ha già ricevuto Se il client riceve una notifica CON non valida La scarta Invia al server un messaggio di RST Se il server riceve un messaggio di RST Termina la sottoscrizione SOLUZIONE Se il client riceve una notifica CON non valida La scarta Invia al server un messaggio di ACK

34 Conclusioni LAVORO SVOLTO E stato analizzato lo stato dell arte delle tecnologie per la comunicazione M2M in reti wireless a bassa potenza Sono stati analizzati i vantaggi che l adozione del CoAP comporterebbe in svariati ambiti applicativi E stato studiato il protocollo con l ausilio di un programma di specificazione e validazione formale Sono state specificate le procedure di comunicazione del protocollo CoAP Interazioni richiesta risposta Relazioni di sottoscrizione Sono state verificate delle proprietà logiche di liveness (di risposta) di safety (di identificazione delle risposte) La proprietà di safety è stata violata Motivo: Inadeguatezza di ProMeLa nel descrivere i vincoli temporali E stata individuata un incompletezza nell attuale bozza CoAP Problema nella caratterizzazione delle relazioni di sottoscrizione

35 Sviluppi futuri Implementazione del CoAP su di un dispositivo M2M Avvalendosi del fatto che ProMeLa ha una sintassi simile a quella del C Sfruttando le interfacce verso AT e UDP che sono state definite nel modello Studio delle prestazioni del CoAP su di una rete wireless reale