1 / 23

U nibo S treaming P roject

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. 0000171431. Agenda. In questa presentazione parleremo di: Streaming RTSP

aulii
Download Presentation

U nibo S treaming P roject

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UniboStreamingProject 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. 0000171431

  2. Agenda In questa presentazione parleremo di: • Streaming • RTSP • RTP / RTCP • Unibo Streaming System • Applicazione Protocolli • Politiche di Load Balancing e Disaster Recovery • Demo dell’applicazione

  3. 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

  4. Distribuzione dei contenuti • Nell’Unibo Streaming Server si usa sia la distribuzione multicast dei contenuti che quella unicast. MULTICAST Server Server 99 copie Switch Switch 1 copia UNICAST Router Router 1 copia 33 copie Router Router Router Router Router Router Switch Switch Switch Switch Switch Switch 33 clients 33 clients 33 clients 33 clients 33 clients 33 clients

  5. Protocolli per lo streaming RTSP Controllo Stream Informazione RTP SDP v=0 o=StreamingServer s=TrasmissioneFile i=Descrizione della sezione u=http://casafrassinago3.homeip.net e=loris.cancellieri@studio.unibo.it p=+39-000-0000000 c=IN IP4 192.168.0.3 b=AS:2048 t=0 0 a=charset:ISO-8859-1 m=audio 2000 RTP/AVP 14 a=rtpmap:14 MPA/44100 a=control:rtsp://192.168.0.3/audio a=mimetype: audio/MPA a=range:npt=0-264 SERVER Audio CLIENT Video RTCP Monitoraggio Monitoraggio

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

  7. Real Time Streaming Protocol 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 all’interno della mia applicazione • Comandi Facoltativi: • Pause (auspicabile) • Record • Announce • Set Parameter • Get Parameter (dal server) • Redirect (dal server)

  8. DESCRIBE rtsp://192.168.0.3/L4.mp2 RTSP/1.0 CSeq: 631 Accept: application/sdp User-Agent: JMF RTSP Player Version 2.1.1e RTSP/1.0 200 OK CSeq: 631 Content-type: application/sdp Content-Length: 394 Real Time Streaming Protocol Describe + OK_Describe + SDP_Length SDP Info SERVER MAIN Client v=0 o=StreamingServer (creator) s=TrasmissioneFile (name) i=Sessione di trasmissione del file richiesto u=http://casafrassinago3.homeip.net e=loris.cancellieri@studio.unibo.it (Loris Cancellieri) p=+39-000-0000000 c=IN IP4 192.168.0.3 b=AS:2048 t=0 0 a=charset:ISO-8859-1 m=audio 2000 RTP/AVP 14 a=rtpmap:14 MPA/44100 a=control:rtsp://192.168.0.3/audio a=mimetype: audio/MPA a=range:npt=0-264 Messaggi C -> S Messaggi S -> C Info Addizionali Messaggi RTSP

  9. SETUP rtsp://192.168.0.3/audio RTSP/1.0 CSeq: 632 Transport: RTP/AVP;unicast;client_port=40052-40053 User-Agent: JMF RTSP Player Version 2.1.1e RTSP/1.0 200 OK CSeq: 632 Session: 151251593 Transport: RTP/AVP; unicast; client_port=40052-40053; server_port=2000-2001; Bandwidth:128000 Real Time Streaming Protocol Describe + OK_Describe + SDP_Length SDP Info Setup + client_ports SERVER MAIN Client OK_Setup + Server_ports + Session_ID Messaggi C -> S Messaggi S -> C Info Addizionali Messaggi RTSP

  10. PLAY rtsp://192.168.0.3/L4.mp2 RTSP/1.0 CSeq: 633 Range: npt=0.0- Session: 151251593 User-Agent: JMF RTSP Player Version 2.1.1e RTSP/1.0 200 OK CSeq: 633 Session: 151251593 Real Time Streaming Protocol Describe + OK_Describe + SDP_Length SDP Info Setup + client_ports SERVER MAIN Client OK_Setup + Server_ports + Session_ID Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP Messaggi C -> S Messaggi S -> C Info Addizionali Messaggi RTSP

  11. PAUSE rtsp://192.168.0.3/L4.mp2 RTSP/1.0 CSeq: 634 Session: 151251593 User-Agent: JMF RTSP Player Version 2.1.1e RTSP/1.0 200 OK CSeq: 634 Session: 151251593 Real Time Streaming Protocol Describe + OK_Describe + SDP_Length SDP Info Setup + client_ports SERVER MAIN Client OK_Setup + Server_ports + Session_ID Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP Pause + Session_ID Messaggi C -> S OK_Pause + Session_ID Messaggi S -> C Info Addizionali Messaggi RTSP

  12. TEARDOWN rtsp://192.168.0.3/L4.mp2 RTSP/1.0 CSeq: 638 Session: 151251593 User-Agent: JMF RTSP Player Version 2.1.1e RTSP/1.0 200 OK CSeq: 638 Session: 151251593 Real Time Streaming Protocol Describe + OK_Describe + SDP_Length SDP Info Setup + client_ports SERVER MAIN Client OK_Setup + Server_ports + Session_ID Play + Session_ID + Range OK to Play + SessionID Dati RTP RTCP TearDown + Session_ID Messaggi C -> S OK_TearDown + Session_ID Messaggi S -> C Info Addizionali Messaggi RTSP

  13. Real Time Streaming Protocol(descrizione come Automa a Stati Finiti)

  14. Session Description Protocol 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 e-mail) p=* (numero di telefono) c=* (informazioni sulla connessione) b=* (informazioni sulla banda) • 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 <tipo> = 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ù) 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) 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)

  15. Real-time Transport Protocol • 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: 192.168.0.3:2600 RTP e 192.168.0.3: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 Semplificazione - RTP Header Payload type Sequence Number TimeStamp Synchronization Source Identifier Header Extensions 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 7 bits 128 tipi differenti di codifica Vedi Pacchetto

  16. Real-time Control Transport Protocol • 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: loris@myhost.it): usato per l’associazione tra sessioni audio e video della stessa sorgente • Nome, e-mail, location • Terminazione (BYE) • Specifici dell’applicazione (APP)

  17. 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 un’altra location Describe rtsp://192.168.0.1/L4.mp2 CSeq: 231 Nodo 192.168.0.1 RTSP/1.0 301 Moved CSeq: 230 Location: rtsp://192.168.0.1/L4.mp2 Describe rtsp://192.168.0.3/L4.mp2 CSeq: 230 Nodo 192.168.0.3

  18. Politiche di Fault Tolerance(funzionamento del sistema a regime) Soluzione con Control Server e Slave Server (copia fredda) RTSP RTP / RTCP SlaveServer medialist xml File_Request STAND-BY MainServer Nodo 192.168.0.1 ping ControlServer Nodo 192.168.0.3 Reply_ping Nodo 192.168.0.12

  19. Politiche di Fault Tolerance(crash del sistema) RTSP RTP / RTCP SlaveServer medialist xml File_Request STAND-BY MainServer Nodo 192.168.0.1 ping ControlServer Nodo 192.168.0.3 Reply_ping Nodo 192.168.0.12

  20. Politiche di Fault Tolerance(reazione al crash) REDIRECT rtsp://192.168.0.3/file.ext RTSP/1.0 CSeq: 1 Location: rtsp://192.168.0.1 SlaveServer MainServer Nodo 192.168.0.1 START_SLAVE Nodo 192.168.0.3 ControlServer Initializing CRASHED Nodo 192.168.0.12

  21. Politiche di Fault Tolerance(nuova situazione di funzionamento) RTP / RTCP RTSP File_Request medialist xml SlaveServer MainServer Nodo 192.168.0.1 ControlServer ACTIVE Nodo 192.168.0.3 CRASHED Nodo 192.168.0.12

  22. Demo dell’applicazione It's ShowTime

  23. (c) 2005 Loris Cancellieri

More Related