470 likes | 683 Views
I protocolli di trasporto per multimedia RTP e RTCP. Il problema della QoS. Problema: fornire un’adeguata qualità di servizio (perdite, ritardi, banda minima…) ad applicazioni aventi requisiti diversi
E N D
Il problema della QoS • Problema: fornire un’adeguata qualità di servizio (perdite, ritardi, banda minima…) ad applicazioni aventi requisiti diversi • Storicamente, due possibili soluzioni: (vedi Scott Shenker: Fundamental Design Issues for the Future Internet) • “gettare banda” sul problema • Controllare il traffico, a livello di rete, a livello di connessione, a livello di pacchetto • Il controllo del traffico è più difficile, ma dà risultati migliori
Sommario • Applicazioni e protocolli di Trasporto • Classi di Applicazioni • I protocolli di trasporto: UDP e TCP • RTP/UDP per applicazioni multimediali • Requisiti delle applicazioni
Tassonomia delle applicazioni • Due classi (dal punto di vista del controllo del traffico) • Applicazioni elastiche (opportunistiche) • Se ci sono risorse, le applicazioni elastiche cercano di usarle • Se le risorse sono temporaneamente indisponibili, le applicazioni elastiche possono “attendere” (es: WWW, email, FTP…) • Applicazioni “multimedia” • Ogni applicazione richiede una minima quantità di risorse • Se la quantità minima è presente, l’applicazione funziona • Se la quantità minima è indisponibile, l’applicazione non funziona
Applicazioni elastiche Un utente “umano” attende informazioni da un server Preferibile un basso ritardo end-to-end (non essenziale) Banda istantanea richiesta: bassa Perdite di pacchetti recuperate dal protocollo di trasporto, a scapito del ritardo end-to-end Applicazioni “multimedia” Due utenti umani interagiscono ai capi della rete Essenziale un basso ritardo (un pacchetto in ritardo equivale ad un pacchetto perso) Banda richiesta elevata Robuste a perdite contenute di pacchetti Applicazioni elastiche e “Multimedia”
Applicazioni Multimedia • Applicazioni multimediali conversazionali • Voce o video su IP per audio/videoconferenze • Applicazioni multimediali interattive • Simulazioni distribuite, giochi in rete • Applicazioni multimediali non interattive (streaming) • Insegnamento a distanza, video on demand
Quale protocollo di trasporto? UDP è adatto a: Richieste-risposte (LAN) Applicazioni multimediali Multicast TCP (affidabilità) è adatto a : Trasferimenti di file Emulazione di terminale Richiesta-risposta (WAN) unicast Applicazioni e stack protocollare DNS Telnet http ftp Email NFS BGP … DNS RTP Real Audio NFS SNMP Real time apps > 4 4 3 < 2 TCP UDP IP Non Specificati Internet Protocol Suite
Il livello Rete: IP • E’ un protocollo di livello 3 • Si occupa quindi dell’indirizzamento e instradamento dei pacchetti (o datagram)in rete • La consegna dei pacchetti IP ha caratteristiche di: • inaffidabilità (unreliable) • assenza di connessione (connectionless)
Il livello Rete: IP • IP non offre garanzie sulla consegna dei datagram • In caso di guasti prima della consegna (es. un router fuori servizio), il protocollo IP • scarta il datagram • cerca di inviare un messaggio di errore al mittente • L’affidabilità va garantita dai livelli superiori • Il servizio offerto da IP è detto best-effort
Il livello Rete: IP • IP non conserva informazioni di stato sui datagram in corso di trasmissione • Ogni datagram viene instradato in modo indipendente dai precedenti • Può quindi accadere che due pacchetti provenienti dallo stesso host e aventi la stessa destinazione facciano strade diverse
Il protocollo UDP (1) • UDP (User Datagram Protocol ) permette alle applicazioni di un host l’invio di datagram ad altre applicazioni di un host remoto • Definito da RFC-768 (1980) • UDP fornisce un servizio di livello 4, ma: • connectionless (pacchetti fuori sequenza) • non affidabile (pacchetti persi) • senza controllo di flusso (saturazione del ricevitore) Gruppo Reti - Politecnico di Torino
Il protocollo UDP (2) • Pacchetti di formato semplice con checksum opzionale • Applicazioni end-to-end identificate da: • Indirizzo IP sorgente, Indirizzo IP destinazione • Porta UDP sorgente, porta UDP sorgente
Formato del pacchetto UDP 0 15 1631 UDP Source Port UDP Destination Port UDP Message Length UDP Checksum (opt.) DATA 32 bit
Il protocollo TCP (1) • TCP (Transmission Control Protocol ) è un protocollo di livello 4 (trasporto) • Definito da RFC 1122/1123… e decine di altri! • E’ un protocollo connection-oriented • E’ un protocollo affidabile • E’ un protocollo full-duplex Gruppo Reti - Politecnico di Torino
Il protocollo TCP (2) • Ritrasmette se non riceve conferma di ricezione • Esegue controllo di congestione end-to-end per evitare che la rete venga utilizzata oltre la sua capacità • Esegue controllo di flusso end-to-end perchè un host veloce non saturi un host lento • Frammenta (o raccoglie) l’informazione in segmenti di dimensione opportuna • Risequenza i datagram IP che arrivano fuori sequenza
0 15 1631 Source port Number Destin. Port Number Sequence Number Acknowledgement Number HLEN Resv. Dimens. Finestra TCP flags checksum Urgent Pointer 32 bit Formato pacchetto TCP Gruppo Reti - Politecnico di Torino
Comunicazioni Multimediali: problematiche • La pacchettizzazione • Campioni audio pari a pochi bit • Immagine singola di dimensioni molto elevate • Come si distingue tra codifiche differenti in ricezione? • Come porre rimedio ai “limiti” di IP? • Perdita di pacchetti • Riordinamento di pacchetti • Duplicazione di pacchetti • Come notificare la corretta ricezione alla sorgente? • Come supportare comunicazioni tra più utenti?
Trasporto di comunicazioni multimediali: TCP • Si può usare TCP? • TCP offre un trasporto affidabile, ma le ritrasmissioni e il controllo di flusso/congestione causano ritardi in caso di perdita • TCP non supporta multicast • TCP può essere usato per trasferire “file” multimediali (in email o in pagine Web)
Trasporto di comunicazioni multimediali: UDP • Si può usare UDP? • UDP supporta multicast • Non riordina dati ricevuti fuori sequenza • Non rileva perdite • Non reagisce a variazioni del ritardo • Non identifica contenuti multimediali • IETF: introduzione di RTP “sopra” UDP
RTP: Real-time Transport Protocol • Introdotto dall’RFC 1889 • Costituisce un “framework” su cui realizzare applicazioni multimediali • Fornisce i meccanismi di base per il trasferimento di dati multimediali • Composto da due “sotto-protocolli”: • RTP: governa il flusso di dati multimediali (porte pari) • RTCP: fornisce un feedback al trasmettitore sulla qualità della trasmissione in corso (porte dispari) • Funzioni complementari possono essere aggiunte nelle applicazioni
Esempio: applicazione multimediale • Telefonia su IP: tre differenti problematiche • Stabilire la comunicazione, trovare l’indirizzi IP per raggiungere l’interlocutore, negoziare il tipo di codifica o compressione • Quando la sessione è stata stabilita, trasferire i pacchetti audio • Periodicamente, inviare delle informazioni di feedback al trasmettitore per indicare la qualità della ricezione H.323 SIP RTP RTCP
RTP e la perdita di pacchetti • UDP/IP non garantiscono che ogni pacchetto percorra la stessa strada verso la destinazione • Pacchetti possono essere persi o essere consegnati fuori sequenza • RTP prevede dei numeri di sequenza nell’intestazione RTP
RTP e il problema del jitter (1) • In presenza di segnali sincroni (voce), viene inviato un pacchetto ogni T secondi • La rete introduce ritardi variabili anche se non ci sono perdite (es., in un buffer di un router) Come recuperare il segnale sincrono in ricezione? R
RTP e il problema del jitter (2) • Possibile soluzione: introdurre ritardo alla destinazione • Uso buffer di playback • Pacchetti in arrivo sono memorizzati • Viene letto un pacchetto ogniT secondi • La dimensione del buffer emula unritardo fisso di Dm secondi • Dm compromesso tra bassi ritardi e basse perdite ritardo massimo Dm Distr. # pacchetti ritardo Df
RTP e il problema del jitter (3) • Se ho soppressione del silenzio in trasmissione? • Durante intervalli parlati: un pacchetto ogni T secondi • Durante silenzi: nessun pacchetto • … un pacchetto può essere in ritardo perché • è stato ritardato nella rete • è stato preceduto da un periodo di silenzio • Il numero di sequenza non basta • Bisogna introdurre un ‘timestamp’ nell’intestazione del pacchetto RTP
Formato pacchetto RTP/UDP 32 bits Marker Può essere usato per indicareestremi di un fotogramma Destination port Source port UDP Header 8 B Checksum Length PType Indica il tipo di codifica usato nelpayload del pacchetto Sequence number V PX CC M PType RTP Header 12 B Timestamp Synchronization source (SSRC) identifier Sequence number Sequenza monotonica crescente (+1 per ogni RTP PDU) Possible header extension Timestamp Istante in cui l’informazione contenuta nella PDUè stata prodotta. Diverse PDU possono avere lostesso timestamp. Il timestamp è generato da unclock indipendente dall’applicazione Payload SSRC Identificativo della sorgente che ha creatoil contenuto del payload. L’identificativo èscelto a caso dalla sorgente Contenuto in formato dipendentedall’applicazione
RTCP: obiettivi • Qualità del servizio e controllo di congestione • I pacchetti RTCP sono usati come “ACK a bassa frequenza” per indicare la qualità della ricezione • In base ai “report” RTCP il server può adattare la codifica allo stato della comunicazione • Identificazione • Fornisce più informazioni sull’applicativo utente che partecipa alla trasmissione (segnalazione) • Stima del numero di partecipanti multicast • Necessaria per frazionare la banda usata da RTCP
RTP Control Protocol (RTCP) • Protocollo di controllo per il flusso dati RTP • Definisce lo scambio di informazioni tra sorgente e destinazione • Vari tipi di ‘pacchetti’ RTCP: • SR (sender report): inviato da tutte le sorgenti attive a tutti i partecipanti; include statistiche di TX e RX • RR (receiver report): inviato da tutte le sorgenti passive a tutti i partecipanti; include statistiche di RX • SDES: descrizione della sorgente • BYE: fine della sessione • APP: application-specific
RTCP Sender Report • Il SR è usato per riassumere la quantità di informazione appena inviata • Un SR contiene: • Timestamp assoluto (NTP) all’istante di invio • Timestamp relativo al flusso RTP in corso • Quantità di dati inviati dall’inizio della sessione • Numero totale di pacchetti RTP inviati • Numero totale di byte inviati
RTCP Receiver Report • I RR vengono inviati per informare i mittenti della qualità della ricezione • Viene inviato un RR ad ogni sorgente da cui si è ricevuto un SR • Un RR contiene: • Indicazione della sorgente ascoltata • Timestamp dell’ultimo SR ricevuto • Ritardo dalla ricezione dell’ultimo SR • Numero di sequenza più alto ricevuto dalla sorgente • Numero di pacchetti RTP della connessione persi • Frazione di pacchetti RTP della connessione persi • Stima del jitter dei pacchetti RTP della connessione
RTCP SDES • Usato dalle sorgenti e dai ricevitori per “presentarsi” • Un SDES può contenere: • CNAME: identificativo dell’utente (user@host.domain) • NAME: nome della persona che usa l’applicazione • EMAIL • PHONE • LOC: indicazione geografica dell’utente • TOOL: applicazione che sta usando RTP • NOTE
Traffico Multimediale • Interattivo • Telefonia su IP, la gestione dei ritardi • Streaming • RTSP, il controllo del playback
Traffico Multimedia interattivo: Internet Phone • Audio in ingresso: alternanza di suoni e silenzi • Pacchetti generati a rate costante o quando potenza sonora è oltre un certo valore: • Es: 20 ms di campioni audio a 8kb/s • Pacchetti subiscono ritardi (da compensare) e perdite: • Perdite in rete, congestione (max tollerabili: 10%) • Perdite per ritardi (datagram IP troppo tardi per playout) ritardo max tollerabile: 400 ms • Tecniche di compensazione • Al trasmettitore (codifiche adattative) • Al ricevitore (bufferizzazione)
Reazione a perdite, ritardo e jitter • Uso codificatore a bit-rate variabile • Invio pacchetti di piccole dimensioni quando c’è congestione e il ritardo è elevato • Invio pacchetti di grosse dimensioni se la rete è scarica • Mi occorrono meccanismi di stima della qualità di ricezione, ed un algoritmo di controllo del bit rate del trasmettitore, reazionato in funzione di: • Perdite istantanee e medie • Ritardo relativo e/o assoluto • jitter
Ricezione audio Ritardodi retevariabile audio in buffer Compensazione del ritardo e del jitter: buffering • Buffering dal lato ricevitore, il ritardo di playout compensa il ritardo e il jitter di rete • Ritardo fisso • Ritardo adattativo trasmissioneaudio CBR Riproduzionedi audio CBR Dati complessivi Ritardo di playout al ricevitore tempo
Ritardo di playout fisso • Il ricevitore riproduce ogni campione esattamente q secondi dopo la generazione del campione • Se il campione ha timestamp t, riproduco a t+q • Se il campione arriva dopo t+q, il campione è considerato perso • Il valore di ‘q’: • q elevato: meno pacchetti persi, più ritardo, più buffer • q basso: migliore interattività
Ritardo di playout adattativo • Obiettivo: minimizzare il ritardo di playout, mantenendo basso il livello di perdite • Stima del ritardo di rete, adattività del ritardo di playout all’inizio del parlato • Periodi di silenzio compressi o allungati • Campioni sempre riprodotti a distanza di 20 ms nei periodi di attività
Multimedia Streaming • Streaming • File multimediale memorizzato alla sorgente • Trasmesso al client • La riproduzione al client inizia mentre il trasferimento è ancora in corso • Vincolo: dati mancanti devono arrivare prima che la riproduzione abbia termine
2. video inviato 1. video registrato streaming: a questo istante, il client inizia a riprodurre la parteiniziale del video, mentre il serversta ancora inviando Multimedia Streaming Dati complessivi 3. video ricevuto, riprodotto dal client Ritardo di rete tempo Video server
Multimedia:l’approccio più semplice • audio o video memorizzato in un file • File trasferito come oggetto HTTP • Ricevuto per intero dal client • Inviato al player audio, video non in “streaming”: • non vi è pipelining, ritardi elevati prima di riproduzione
Multimedia: l’approccio streaming • Il browser del client riceve il metafile con la descrizione del file multimedia streaming • Il browser lancia il player e gli passa il metafile • Il player contatta il server • Il server manda in streaming l’audio e il video
Controllo utente di streaming multimedia: il protocollo RTSP • Real Time Streaming Protocol (RTSP): RFC 2326 • Supporta controllo utente: rewind, FF, pausa, riprendi • Protocollo fuori banda: • Una porta (544) per messaggi di controllo e segnalazione • Una porta per lo stream multimediale • Uso TCP o UDP per connessione di controllo • Operazioni • Invio di un “metafile” al browser • Il browser attiva il player appropriato • Il player attiva una connessione di controllo e una connessione dati RTSP verso il server
Esempio di metafile <title>Twister</title> <session> <group language=en lipsync> <switch> <track type=audio e="PCMU/8000/1" src = "rtsp://audio.example.com/twister/audio.en/lofi"> <track type=audio e="DVI4/16000/2" pt="90 DVI4/8000/1" src = "rtsp://audio.example.com/twister/audio.en/hifi"> </switch> <track type="video/jpeg" src = "rtsp://video.example.com/twister/video"> </group> </session>
Esempio di messaggi RTSP C: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Transport: rtp/udp; compression; port=3056; mode=PLAY S: RTSP/1.0 200 1 OK Session 4231 C: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=0- C: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 Range: npt=37 C: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Session: 4231 S: 200 3 OK