Il Trasporto di Dati Real-time



Documenti analoghi
RTP/RTCP: protocolli multimediali per Internet

Reti di Telecomunicazione Lezione 8

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

Real Time Transport Protocol. Maria Luisa MERANI

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

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

Transmission Control Protocol

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

Reti di Calcolatori. Il software

Standard di comunicazione

3) Real time protocol (RTP).

Tecniche di Comunicazione Multimediale

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

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Protocollo RTP/RTCP. di Sebastiano Vascon A.A 2008/2009 Corso di Reti di Calcolatori Docente S. Balsamo

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

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

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

Protocolli multimediali

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Introduzione al VoIP

Protocolli di Comunicazione

Trasporto traffico multimediale in Internet

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

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

Trasporto traffico multimediale in Internet

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Internet Control Message Protocol ICMP. Struttura di un Messaggio ICMP. Segnalazione degli Errori

Il livello Network del TCP/IP. Il protocollo IP (versione 4)

Corso di Applicazioni Telematiche

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

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

Argomenti della lezione

Multicast e IGMP. Pietro Nicoletti

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

VoIP. Corso di Laboratorio di Telematica A.A Francesco Chiti Andrea De Cristofaro

Informatica per la comunicazione" - lezione 8 -

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

IP Internet Protocol

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

Lo scenario: la definizione di Internet

Il routing in Internet Exterior Gateway Protocols

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

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

Inizializzazione degli Host. BOOTP e DHCP

Dal protocollo IP ai livelli superiori

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

Università di Genova Facoltà di Ingegneria

Approfondimento di Marco Mulas

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti:

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

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Servizi orientati alla connessione

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

Internet. Introduzione alle comunicazioni tra computer

La Videosorveglianza Criteri per il dimensionamento dello storage

Principi fondamentali

Il glossario della Posta Elettronica Certificata (PEC) Diamo una definizione ai termini tecnici relativi al mondo della PEC.

Applicazioni Real-Time in Internet

Protocolli a supporto delle applicazioni multimediali distribuite in Internet Corso di Applicazioni Telematiche

Socket API per il Multicast

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

Elementi di Informatica e Programmazione

Soluzioni verifica parte 4

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

Reti di calcolatori. Lezione del 10 giugno 2004

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

Reti diverse: la soluzione nativa

Università degli Studi di Bergamo

Corso di Applicazioni Telematiche

Livello di Rete. Gaia Maselli

INFOCOM Dept. Antonio Cianfrani. Virtual LAN (VLAN)

DA SA Type Data (IP, ARP, etc.) Padding FCS

LIVELLO DATA LINK (DI LINEA)

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Elementi di Informatica e Programmazione

Un architettura per lo streaming multimediale in ambiente distribuito

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

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

Versione 1. (marzo 2010)

NTP. (Sincronizziamo gli orologi)

Gestione della Connessione in TCP

Reti di Telecomunicazione Lezione 7

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

APPENDICE C: IL PROTOCOLLO DI TRASPORTO RTP

Reti di Calcolatori. Lezione 2

I canali di comunicazione

Comunicazione nel tempo

3. Introduzione all'internetworking

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.


Access Control List (I parte)

StarShell. IPSec. StarShell

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

IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico

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

Transcript:

Il Trasporto di Dati Real-time Ormai molte applicazioni scambiano informazioni in cui le relazioni temporali sono molto importanti. La Telefonia via Internet, Videoconferenza, Lezioni a distanza, Meeting e lavoro a distanza necessitano di trasferire informazioni quali video, audio, immagini ed altro ancora, che devono essere ricevuti in accordo con precise caratteristiche riguardo a tempo di trasmissione, variazione del tempo di trasmissione (jitter), percentuale di pacchetti persi, qualità (intesa come codifica) del dato ricevuto. Poichè le reti a commutazione di pacchetto supportano tipicamente comunicazioni best-effort, alcune tecniche ad hoc sono utilizzate per supportare le comunicazioni real-time. Alcuni algoritmi utilizzano dei buffers per memorizzare i dati ricevuti ed assicurare il playout dei dati in tempi ragionevoli, sfruttando protocolli di trasporto non affidabili (quali UDP) che però non aggiungono ritardo alla trasmissione. Le applicazioni, in caso di congestione della rete, possono cambiare la codifica dei dati per diminuire la larghezza di banda necessaria. Poichè spesso le applicazioni coinvolgono più utenti e più flussi di dati, anche di tipo diverso (audio, video,..) c è la necessita di poter utilizzare un indirizzamento multicast per raggiungere molteplici destinazioni. Qualora il multicast non sia supportato dall infrastruttura di rete, si deve poter operare con l indirizzamento unicast. Un protocollo di trasporto per dati Real-time deve poter supportare tutte queste esigenze.

RTP / RTCP RTP (Real-time Protocol) vuole fornire un supporto base al trasporto di dati real-time (audio e video) su reti a commutazione di pacchetto. Rif: Henning Schulzrinne http://www.cs.columbia.edu/~hgs/rtp/ E utilizzato all interno di altri protocolli come SIP (Session Initiation Protocol) ed H.323, ed e alla base di alcuni applicativi per videoconferenza (Netmeeting per es.). RTP si basa su un servizio di trasporto non affidabile (UDP) e non fornisce consegna affidabile, non assicura che i dati siano consegnati in tempo reale, e nemmeno assicura che i dati siano consegnati nell esatto ordine in cui sono stati trasmessi. Invece RTP definisce un formato dei pacchetti capace di fornire alle applicazioni degli agganci per implementare un trasporto di dati caratterizzati da proprietà temporali, cioè: identificare il tipo di dato trasportato. identificare il mittente ed il destinatario. distinguere due pacchetti successivi pee ricostruirne l ordine e riconoscere le perdite. sincronizzare diversi flussi di dati che debbano essere ascoltati o visualizzati nello stesso momento pur se provengono da mittenti diversi. eventualmente (Mixer) modificare la codifica dei dati per adeguarsi alle caratteristiche della rete e raggiungere cosi anche destinatari disagiati, senza pregiudicare la qualità del dato ricevuto dagli altri utenti. eventualmente (Translator) superare firewall o transitare attraverso isole non capaci di supportare il multicast.

RTP / RTCP RTCP (Real-time Control Protocol) è un protocollo di controllo che lavora accanto ad RTP. In una sessione RTP, i partecipanti inviano periodicamente dei pacchetti RTCP, per scambiarsi informazioni, in particolare per: QoS feedback: informazioni su numero di pacchetti persi, Round Trip Time (RTT), Jitter. Tali informazioni possono essere usate dall applicazione per aggiustare il tipo di dati trasmessi. Controllo sulla Sessione, scambiare informazioni sugli utenti che vogliono lasciare la sessione (BYE packet), e scambiare informazioni quali email nome e numero di telefono, per sapere chi sono gli utenti che partecipano alla sessione. distinguere due pacchetti successivi pee ricostruirne l ordine e riconoscere le perdite. sincronizzare tra flussi di dati di tipo diverso (audio e video) che normalmente sono inviati mediante stream diversi. E importante osservare che: RTP puo essere utilizzato anche senza RTCP. L uso del protocollo RTP/RTCP può essere utile per fornire interoperabilità tra applicazioni di produttori diversi, che usano proprio lo standard RTP per realizzare comunicazioni che possano essere scambiate tra queste diverse applicazioni, perchè il protocollo RTP trasporta assieme ai dati le informazioni necessarie ad identificare il tipo di dato e la sua codifica.

Collocazione Architetturale di RTP application level applicazione RTP / RTCP transport UDP network IP data link physical socket interface RTP / RTCP non fa parte del livello di trasporto, ma dell applicazione. Lo sviluppatore deve implementare RTP integrandolo nell applicazione stessa, incapsulando i pacchetti RTP in UDP (multicast o unicast). IP header UDP header RTP header RTP payload Si noti che le RFCs non specificano completamente l RTP che è stato pensato per poter essere customizzato sulle particolari esigenze dell applicazione, eventualmente specificando i cosiddetti profile. I profile permettono di definire un formato dei pacchetti RTP adatto all applicazione, eventualmente modificando anche una parte dell header. Alcuni profile sono già comunque standardizzati, per utilizzare tipi di dati comuni, quali alcune codifiche diffuse. Lo standard RTP è comunque utile per consentire ad applicativi di produttori diversi di interoperare.

Il modello trasmissivo di RTP (1) tipicamente le applicazioni usano sia RTP che RTCP. Il modello di trasmissione prevede uno o più sender ciascuno dei quali può inviare più flussi trasmissivi (anche di tipo diverso, audio o video) ad un insieme di receivers. Per ciascun flusso da un sender ai receivers viene utilizzata una diversa sessione RTP per trasportare i dati. Se un sender trasmette più tipi di dati dovrà utilizzare più sessioni RTP, per trattare ciascun flusso separatamente. Il motivo è che i receivers potrebbero volere utilizzare solo alcuni dei flussi trasmessi. Per ciascuna sessione RTP si usa una diversa sessione RTCP, attestata su una porta UDP diversa da quella del servizio RTP. application A RTP video RTP audio RTCP video RTCP audio RTCP video application B RTCP audio RTP video RTP audio IP IPmulticast 230.1.10.14 RTP video RTP audio RTCP video RTCP audio application C

Il modello trasmissivo di RTP (2) I pacchetti RTCP sono trasmessi da ogni partecipante ad una sessione RTP (sender e receiver) verso tutti gli altri partecipanti. I pacchetti RTCP non contengono dati audio o video, ma servono per trasmettere dati statistici. In particolare, ogni receiver, per ogni stream RTP che riceve da un qualche sender, genera periodicamente un report con numero di pacchetti spediti e persi, jitter osservato, identificatore dell ultimo pacchetto ricevuto. Tale report viene incapsulato in un pacchetto RTCP. Le specifiche non stabiliscono cosa le applicazioni debbano fare con queste statistiche. E una prerogativa dello sviluppatore. Per esempio, se il receiver avvisa che ha ricevuto una percentuale piccola di pacchetti, l applicazione trasmittente potrebbe modificare la codifica dei dati inviati per diminuire la congestione della rete. Ogni sender che invia dati via RTP, trasmette un report RTCP contenente il timestamp dell ultimo pacchetto spedito, il numero di pacchetti RTP e di bytes spediti. RTP RTCP sender RTCP receiver Internet RTCP receiver

Le Entità del modello di RTP Il protocollo RTP prevede la possibilità di usare due entità dette Mixer e Translator. I pacchetti RTP ed RTCP sono fatti in modo da poter contenere le informazioni per usare queste due entità. Se alcuni partecipanti hanno connessioni a bassa bandwidth, un Mixer collocato opportunamente può cambiare la codifica dei dati e ridurne la qualità, e riunire più stream audio/video in uno solo per non congestionare la rete lenta, ma mantenere la qualità per gli altri partecipoanti. Lo stream ottenuto potrà essere multicast o unicast verso diversi processi. Il Mixer inserisce un suo identificatore come agente di sincronizzazione, ma mantiene le informazioni sui mittenti. Invece un Translator può essere utile per instradare i pacchetti di multicast attraverso una connessione sicura che superi un eventuale firewall. Il Translator non inserisce un suo id. router Sender Mixer router low bandwidth links modem modem FIREWALL Translator Translator end user end user end user end user

L impiego di banda del Traffico di Controllo Al crescere del numero dei partecipanti ad una sessione RTP, cresce il numero di pacchetti RTCP che sono trasmessi in rete, ed aumenta la congestione. Si pone percio il problema della scalabilita. RTCP dovrebbe usare per i propri pacchetti non piu del 5% della banda utilizzata per i pacchetti RTP. RTCP dovrebbe aggiustare il periodo che intercorre tra la trasmissione di due successivi pacchetti RTCP, diminuendo la frequenza di trasmissione dei pkt al crescere del numero dei partecipanti.

Il pacchetto RTP (1) Il pacchetto RTP consiste in un header fisso RTP, un eventuale lista chiamata contributing sources (CSRC) inserita da un Mixer, ed il campo dati vero e proprio (campioni audio o video). header RTP CSRC list (solo per mixer) EXTENSION (opzionale) PAYLOAD (campo dati) L header RTP è qui sopra rappresentato, ed i campi significano: version (V): 2 bit, indica la versione del protocollo RTP. padding (P): 1 bit, indica che nella parte dati esistono dei byte di riempimento, che non fanno parte dei dati. extension (X): 1 bit, se settato l header è seguito da un estensione con un formato da definire. CSRC count (CC): 4 bit, contiene il numero dei contributing source (CSRC) che seguono l header. (solo per mixer). payload type (PT): 7 bits, indica il formato del payload.

Il pacchetto RTP (2) sequence number: 16 bit, identifica ogni pacchetto RTP spedito, cresce di un unita ad ogni pacchetto, serve a capire se sono stati persi pacchetti e a ristabilire la corretta sequenza. timestamp: 32 bit, indica l istante di campionamento del primo byte del pacchetto RTP. synchronization source (SSRC): 32 bit, identifica la sorgente dello stream RTP trasportato. Non dipende dall indirizzo di rete. Tutti i pacchetti con lo stesso synchronization source devono avere lo stesso clock e lo stesso generatore di sequence number, in modo che il ricevente possa raggruppare correttamente i pacchetti per il playback. I synchronization source possono essere riferiti a sorgenti di segnali come microfoni o videocamere, oppure ad un mixer. Se un partecipante genera più stream RTP, ciascuno dovrà essere indicato da un differente SSRC contributing source (CSRC): fino a 15 campi da 32 bit ognuno, sono la lista degli SSRC che hanno formato lo stream prodotto da un mixer. Di solito il mixer serve a condensare i flussi. length: lunghezza dell estensione dell header espressa in word da 4 byte. header extension: utilizzato a fini sperimentali.

Il pacchetto RTCP (1) Il protocollo realizza principalmente due funzioni: controllo di qualità mediante trasmissione di reports. identificazione del partecipante mittente mediante un nome (canonical name CNAME). Serve anche ad organizzare sessioni multiple, in cui uno stesso mittente spedisce più stream diversi (ciascuno caratterizzato da un suo CSRC). fissare la frequenza di spedizione dei reports, in modo da non congestionare la rete al crescere del numero dei partecipanti. RTCP si basa sulla trasmissione di 5 tipi diversi di pacchetti: SR (sender report) trasporta statistiche di spedizione effettuate dai partecipanti che trasmettono dati RTP. RR (receiver report) trasporta statistiche di ricezione di un partecipanti che riceve dati RTP. SDES (source descriptor) contiene elementi di descrizione dei partecipanti, incluso il canonical name CNAME. BYE indica che un partecipante vuole lascare la sessione. APP indica che un partecipante vuole lascare la sessione. Ogni pacchetto è costituito da una prima parte fissa, e da una parte variabile. Più pacchetti RTCP possono formare un pacchetto composto inviato in un unico datagram UDP. Il pacchetto composto risulterà così formato: Encription prefix 32 bit SR o RR additional (obbligatorio) RRs SDES (CNAME obbligatorio) APP BYE il prefisso di criptazione è presente solo se il pacchetto è criptato.

Pacchetti RTCP: Sender Report (SR) nell header: reception report count (RC) in header, numero blocchi report. nella sezione sender info: NTP timestamps: 64 bit, indica istante di spedizione pacchetto. RTP timestamps: 32 bit, indica lo stesso istante ma specificato come nei pacchetti RTP. sender s packet count: 32bit, pkts RTP spediti in sessione. sender s octet count: 32 bit, numero byte spediti in sessione.

Pacchetti RTCP: Sender Report (SR) nella sezione report block: SSRC_n: synchronization source del sender a cui si riferisce il report block. fraction lost: 8 bit, numero dei pacchetti RTP persi dal precedente report spedito. cumulative numer of packet lost: 24 bit, numero dei pacchetti RTP persi, spediti dal SSRC_n. extended higest sequence number received: 32 bit, numero di sequenza dell ultimo pacchetto RTP ricevuto. Interarrival jitter: 32 bit, stima la varianza statistica dell intervallo di tempo d arrivo dei pacchetti RTP. last SR timestamp (LSR): timestamp del più recente pacchetto RTCP ricevuto dal SSRC_n di cui sta facendo il report. delay since last SR (DLSR): il ritardo espresso in 1/65536 di secondo fra l ultimo pacchetto ricevuto da SSRC_n e la spedizione di questo report.

Pacchetti RTCP Receiver Report(RR) il receiver report è come il sender report, ma manca la sezione info, ed il campo payload type è settato a 201,allo scopo di indicare un pacchetto di tipo RR.

RTCP: Pkt Source Description(SDES) Il pacchetto SDES è costituito da un header e da zero o più porzioni (chunk) ognuno dei quali contiene una descrizione della sorgente. I campi non ancora visti negli altri pacchetti RTCP sono: source count (SC): 5 bit, indica il numero di chunk che seguono. SSRC/CSRC: 32 bit, indica la sorgente a cui si riferisce il chunk. SDES item: è costituito da 3 campi: - un identificatore del tipo di item (NAME,CNAME,EMAIL..) - un campo con la lunghezza dell item - il campo che porta l informazione sulla sorgente. Qui di seguito un esempio di item SDES.

RTCP: APP e BYE Pkt