La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video multicast e on-demand Progetto per il corso di Reti.

Presentazioni simili


Presentazione sul tema: "U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video multicast e on-demand Progetto per il corso di Reti."— Transcript della presentazione:

1

2 U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video multicast e on-demand Progetto per il corso di Reti di Calcolatori L-S realizzato da Loris Cancellieri matr

3 Agenda In questa presentazione parleremo di: Streaming RTSP RTP / RTCP Unibo Streaming System Applicazione Protocolli Politiche di Load Balancing e Disaster Recovery Demo dellapplicazione

4 Introduzione allo streaming Cosè lo streaming? metodo di trasferimento dei file che permette di riprodurre il file mentre lo si sta scaricando Vantaggi?: fruizione istantanea dei contenuti risparmio spazio su disco Applicazioni?: Audio e Video On-Demand VideoConferenze Web TV Internet Radio

5 Distribuzione dei contenuti NellUnibo Streaming Server si usa sia la distribuzione multicast dei contenuti che quella unicast. Server Switch Router Switch 33 clients 99 copie 33 copie Router Server Switch Router Switch 33 clients 1 copia Router MULTICAST UNICAST

6 SDP v=0 o=StreamingServer s=TrasmissioneFile i=Descrizione della sezione u=http://casafrassinago3.homeip.net p= c=IN IP b=AS:2048 t=0 0 a=charset:ISO m=audio 2000 RTP/AVP 14 a=rtpmap:14 MPA/44100 a=control:rtsp:// /audio a=mimetype: audio/MPA a=range:npt=0-264 Protocolli per lo streaming RTSP RTP RTCP Informazione Controllo Stream Audio Video Monitoraggio

7 Protocolli di Streaming RTCP Dati Controllo Network Transport Application UDP perchè: Minore Overhead Reazione più veloce alle congestioni della rete Traffico nella rete più gestibile Traffico realtime senza ritrasmissione

8 Simile ad HTTP: Protocollo testuale Messaggi con struttura predeterminata Differisce da HTTP perchè Contiene informazioni di stato (CSeq) Bidirezionale ( Cioè sia il client che il server possono lanciare una richiesta RTSP ) Comandi Obbligatori Describe Setup Play Options Teardown Per analizzarne il funzionamento faccio riferimento al modo in cui esso lavora allinterno della mia applicazione R eal T ime S treaming P rotocol Comandi Facoltativi: Pause (auspicabile) Record Announce Set Parameter Get Parameter (dal server) Redirect (dal server)

9 R eal T ime S treaming P rotocol Describe OK_Describe + SDP_Length + SDP Info Client Messaggi C -> S Messaggi S -> C Info Addizionali S E R V E R M A I N Messaggi RTSP DESCRIBE rtsp:// /L4.mp2 RTSP/1.0 CSeq: 631 Accept: application/sdp User-Agent: JMF RTSP Player Version 2.1.1e RTSP/ OK CSeq: 631 Content-type: application/sdp Content-Length: 394 v=0 o=StreamingServer (creator) s=TrasmissioneFile (name) i=Sessione di trasmissione del file richiesto u=http://casafrassinago3.homeip.net (Loris Cancellieri) p= c=IN IP b=AS:2048 t=0 0 a=charset:ISO m=audio 2000 RTP/AVP 14 a=rtpmap:14 MPA/44100 a=control:rtsp:// /audio a=mimetype: audio/MPA a=range:npt=0-264

10 R eal T ime S treaming P rotocol Describe OK_Describe + SDP_Length + SDP Info Setup + client_ports Client Messaggi C -> S Messaggi S -> C Info Addizionali OK_Setup + Server_ports + Session_ID SERVERSERVER MAINMAIN Messaggi RTSP SETUP rtsp:// /audio RTSP/1.0 CSeq: 632 Transport: RTP/AVP;unicast;client_port= User-Agent: JMF RTSP Player Version 2.1.1e RTSP/ OK CSeq: 632 Session: Transport: RTP/AVP; unicast; client_port= ; server_port= ; Bandwidth:128000

11 R eal T ime S treaming P rotocol Describe OK_Describe + SDP_Length + SDP Info Setup + client_ports Client Messaggi C -> S Messaggi S -> C Info Addizionali OK_Setup + Server_ports + Session_ID SERVERSERVER MAINMAIN Messaggi RTSP PLAY rtsp:// /L4.mp2 RTSP/1.0 CSeq: 633 Range: npt=0.0- Session: User-Agent: JMF RTSP Player Version 2.1.1e RTSP/ OK CSeq: 633 Session: Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP

12 R eal T ime S treaming P rotocol Describe OK_Describe + SDP_Length + SDP Info Setup + client_ports Client Messaggi C -> S Messaggi S -> C Info Addizionali OK_Setup + Server_ports + Session_ID SERVERSERVER MAINMAIN Messaggi RTSP PAUSE rtsp:// /L4.mp2 RTSP/1.0 CSeq: 634 Session: User-Agent: JMF RTSP Player Version 2.1.1e RTSP/ OK CSeq: 634 Session: Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP Pause + Session_ID OK_Pause + Session_ID

13 R eal T ime S treaming P rotocol Describe OK_Describe + SDP_Length + SDP Info Setup + client_ports Client Messaggi C -> S Messaggi S -> C Info Addizionali OK_Setup + Server_ports + Session_ID SERVERSERVER MAINMAIN Messaggi RTSP TEARDOWN rtsp:// /L4.mp2 RTSP/1.0 CSeq: 638 Session: User-Agent: JMF RTSP Player Version 2.1.1e RTSP/ OK CSeq: 638 Session: Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP TearDown + Session_ID OK_TearDown + Session_ID

14 R eal T ime S treaming P rotocol (descrizione come Automa a Stati Finiti)

15 S ession D escription P rotocol Protocollo usato per la descrizione di una sessione multimediale a scopo di annuncio (SAP), invito (SIP) o per altre forme di inizio sessione (RTSP) Non incorpora un protocollo di trasporto Non supporta la negoziazione dei contenuti e/o della codifica dei media La descrizione SDP consiste di linee di testo = valore In una descrizione in formato SDP si possono individuare tre parti principali: Descrizione della sessione (una e una sola) Informazioni temporali (una o più) Descrizione del media file (una o più) v= (versione del protocollo) o= (creatore del file e identificatore di sessione) s= (nome della sessione) i=* (informazioni sulla sessione) u=* (descrizione del URI ) e=* (indirizzo ) p=* (numero di telefono) c=* (informazioni sulla connessione) b=* (informazioni sulla banda) t= (tempo in cui la sessione è attiva) r=* (ripetizioni temporali: settimanali, ecc.) z=* (cambio di fuso orario) k=* (chiave di codifica) a=* (zero o più linee di attributi) m= (formato multimediale e indirizzo di trasporto) i=* (titolo del media) c=* (informazioni di connessione, opzionali se incluse a livello di sessione) b=* (informazioni sulla banda) k=* (chiave di codifica) a=* (zero o più linee di attributi)

16 R eal-time T ransport P rotocol Presentato per la prima volta nel 1996 (RFC1889) è stato poi revisionato nel 2003 (RFC 3550) Trasmissione dati aventi riferimenti temporali Indipendente dai protocolli sottostanti (tipicamente viaggia su UDP) No resource reservation Sicurezza: supporto per la cifratura con algoritmi a blocchi Separazione tra dati e controllo (RTP & RTCP) Sessione formata da due indirizzi di trasporto uno per RTP e uno per RTCP. Es: :2600 RTP e :2601 RTCP Audio e Video viaggiano separati in due sessioni RTP distinte e la sincronizzazione avviene tramite una o più Syncronization Source (SSRC) su RTCP Payload type Sequence Number TimeStamp Synchronization Source Identifier Header Extensions Semplificazione - RTP Header 7 bits 128 tipi differenti di codifica 16 bits usato per scoprire eventuali perdite di pacchetti 32 bits istante di sampling del primo byte nel payload del pacchetto 32 bits ID della sorgente dello stream Vedi Pacchetto

17 R eal-time T ransport P rotocol Back v (2-bit) version numbers P (1-bit) padding X (1-bit) header extensions CC (4-bit) CSRC count M (1-bit) marker PT (7 bits) payload type

18 R eal-time C ontrol T ransport P rotocol Protocollo usato per il feedback e il controllo della sessione RTP Pacchetti RTCP vengono inviati periodicamente da tutti i partecipanti alla sessione, sia sender che receiver Bisogna trovare il giusto compromesso fra pacchetti RTP e pacchetti RTCP per problemi di occupazione di banda. Il rapporto RTCP / RTP non dovrebbe essere superiore al 5% I tipi principali di pacchetti RTCP sono: Sender Report (SR) associazione tra timestamp e tempo reale Bitrate Receiver Report (RR) Packet Loss Rate Jitter Round-trip delay Source Description (SDES) Canonical Name (CNAME) (Es: usato per lassociazione tra sessioni audio e video della stessa Nome, , location Terminazione (BYE) Specifici dellapplicazione (APP)

19 Politiche di Load-Balancing Per limitare il carico su un singolo nodo di streaming, è possibile limitare il numero massimo di client serviti contemporaneamente. Quando questo limite viene raggiunto, il server risponde ad altre richieste dei client mandando loro un messaggio di REDIRECT verso unaltra location Describe rtsp:// /L4.mp2 CSeq: 230 RTSP/ Moved CSeq: 230 Location: rtsp:// /L4.mp2 Describe rtsp:// /L4.mp2 CSeq: 231

20 Politiche di Fault Tolerance (funzionamento del sistema a regime) Soluzione con Control Server e Slave Server (copia fredda) ping Reply_ping STAND-BY File_Request medialist xml RTSP RTP / RTCP

21 Politiche di Fault Tolerance (crash del sistema) ping Reply_ping STAND-BY File_Request medialist xml RTSP RTP / RTCP

22 Politiche di Fault Tolerance (reazione al crash) Initializing REDIRECT rtsp:// /file.ext RTSP/1.0 CSeq: 1 Location: rtsp:// START_SLAVE CRASHED

23 Politiche di Fault Tolerance (nuova situazione di funzionamento) ACTIVE CRASHED File_Request medialist xml RTSP RTP / RTCP

24 Demo dellapplicazione

25 (c) 2005 Loris Cancellieri


Scaricare ppt "U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video multicast e on-demand Progetto per il corso di Reti."

Presentazioni simili


Annunci Google