U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video...
-
Upload
santuzza-rosi -
Category
Documents
-
view
222 -
download
3
Transcript of U nibo S treaming P roject Un applicazione Client/Server per la gestione di streaming audio/video...
![Page 1: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/1.jpg)
UniboStreaming
Project
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
![Page 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/2.jpg)
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
![Page 3: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/3.jpg)
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
![Page 4: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/4.jpg)
Distribuzione dei contenuti Nell’Unibo Streaming Server si usa sia la distribuzione multicast dei
contenuti che quella unicast.
Server
Switch
Router
Router Router
Switch
Switch
Switch
33 clients 33 clients 33 clients
99 copie
33 copie
Router
Server
Switch
Router
Router Router
Switch
Switch
Switch
33 clients 33 clients 33 clients
1 copia
1 copia
Router
MULTICAST
UNICAST
![Page 5: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/5.jpg)
SDPv=0
o=StreamingServers=TrasmissioneFile
i=Descrizione della sezioneu=http://[email protected]
p=+39-000-0000000c=IN IP4 192.168.0.3
b=AS:2048t=0 0
a=charset:ISO-8859-1m=audio 2000 RTP/AVP 14a=rtpmap:14 MPA/44100
a=control:rtsp://192.168.0.3/audioa=mimetype: audio/MPA
a=range:npt=0-264
Protocolli per lo streaming
RTSP
RTP
RTCP
Informazione
Controllo Stream
Audio
Video
Monitoraggio
Monitoraggio
![Page 6: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/6.jpg)
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
![Page 7: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/7.jpg)
Simile ad HTTP: Protocollo testuale Messaggi con struttura predeterminataDifferisce 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
Real Time Streaming Protocol
Comandi Facoltativi: Pause (auspicabile) Record Announce Set Parameter Get Parameter (dal server) Redirect (dal server)
![Page 8: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/8.jpg)
Real Time Streaming Protocol
Describe
OK_Describe + SDP_Length + SDPInfo
Client
Messaggi C -> S
Messaggi S -> C
Info Addizionali
SERVER
MAIN
Messaggi RTSP
DESCRIBE rtsp://192.168.0.3/L4.mp2 RTSP/1.0CSeq: 631Accept: application/sdpUser-Agent: JMF RTSP Player Version 2.1.1e
RTSP/1.0 200 OKCSeq: 631
Content-type: application/sdpContent-Length: 394
v=0o=StreamingServer (creator)s=TrasmissioneFile (name)
i=Sessione di trasmissione del file richiestou=http://casafrassinago3.homeip.net
[email protected] (Loris Cancellieri)p=+39-000-0000000c=IN IP4 192.168.0.3
b=AS:2048t=0 0
a=charset:ISO-8859-1m=audio 2000 RTP/AVP 14
a=rtpmap:14 MPA/44100a=control:rtsp://192.168.0.3/audio
a=mimetype: audio/MPAa=range:npt=0-264
![Page 9: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/9.jpg)
Real Time Streaming Protocol
Describe
OK_Describe + SDP_Length + SDPInfo
Setup + client_ports
Client
Messaggi C -> S
Messaggi S -> C
Info Addizionali
OK_Setup + Server_ports + Session_ID
SERVER
MAIN
Messaggi RTSP
SETUP rtsp://192.168.0.3/audio RTSP/1.0CSeq: 632Transport: RTP/AVP;unicast;client_port=40052-40053User-Agent: JMF RTSP Player Version 2.1.1e
RTSP/1.0 200 OKCSeq: 632
Session: 151251593Transport: RTP/AVP; unicast; client_port=40052-40053; server_port=2000-2001;
Bandwidth:128000
![Page 10: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/10.jpg)
Real Time Streaming Protocol
Describe
OK_Describe + SDP_Length + SDPInfo
Setup + client_ports
Client
Messaggi C -> S
Messaggi S -> C
Info Addizionali
OK_Setup + Server_ports + Session_ID
SERVER
MAIN
Messaggi RTSP
PLAY rtsp://192.168.0.3/L4.mp2 RTSP/1.0CSeq: 633Range: npt=0.0-Session: 151251593User-Agent: JMF RTSP Player Version 2.1.1e
RTSP/1.0 200 OKCSeq: 633
Session: 151251593
Play + Session_ID + Range
OK to Play + SessionID
Dati RTP
RTCP
![Page 11: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/11.jpg)
Real Time Streaming Protocol
Describe
OK_Describe + SDP_Length + SDPInfo
Setup + client_ports
Client
Messaggi C -> S
Messaggi S -> C
Info Addizionali
OK_Setup + Server_ports + Session_ID
SERVER
MAIN
Messaggi RTSP
PAUSE rtsp://192.168.0.3/L4.mp2 RTSP/1.0CSeq: 634Session: 151251593User-Agent: JMF RTSP Player Version 2.1.1e
RTSP/1.0 200 OKCSeq: 634
Session: 151251593
Play + Session_ID + Range
OK to Play + SessionID
Dati RTP
RTCPPause + Session_ID
OK_Pause + Session_ID
![Page 12: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/12.jpg)
Real Time Streaming Protocol
Describe
OK_Describe + SDP_Length + SDPInfo
Setup + client_ports
Client
Messaggi C -> S
Messaggi S -> C
Info Addizionali
OK_Setup + Server_ports + Session_ID
SERVER
MAIN
Messaggi RTSP
TEARDOWN rtsp://192.168.0.3/L4.mp2 RTSP/1.0CSeq: 638Session: 151251593User-Agent: JMF RTSP Player Version 2.1.1e
RTSP/1.0 200 OKCSeq: 638
Session: 151251593
Play + Session_ID + Range
OK to Play + SessionID
Dati RTP
RTCPTearDown + Session_ID
OK_TearDown + Session_ID
![Page 13: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/13.jpg)
Real Time Streaming Protocol(descrizione come Automa a Stati Finiti)
![Page 14: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/14.jpg)
Session Description Protocol 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ù)
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)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)
![Page 15: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/15.jpg)
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
Payloadtype
Sequence Number
TimeStampSynchronizationSource Identifier
HeaderExtensions
Semplificazione - RTP Header
7 bits128 tipi differenti
di codifica
16 bitsusato per scoprireeventuali perdite
di pacchetti
32 bitsistante di samplingdel primo byte nel
payload del pacchetto
32 bitsID della sorgente
dello streamVedi
Pacchetto
![Page 16: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/16.jpg)
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: [email protected]): usato per l’associazione tra
sessioni audio e video della stessa sorgente Nome, e-mail, location
Terminazione (BYE) Specifici dell’applicazione (APP)
![Page 17: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/17.jpg)
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
Describertsp://192.168.0.3/L4.mp2
CSeq: 230
RTSP/1.0 301 MovedCSeq: 230
Location: rtsp://192.168.0.1/L4.mp2
Describertsp://192.168.0.1/L4.mp2
CSeq: 231
![Page 18: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/18.jpg)
Politiche di Fault Tolerance(funzionamento del sistema a regime)
Soluzione con Control Server e Slave Server (copia fredda)
ping
Reply_ping
STAND-BYF
ile_Req
ues
t med
ialis
t xm
l
RTSP
RTP / RTCP
![Page 19: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/19.jpg)
Politiche di Fault Tolerance(crash del sistema)
ping
Reply_ping
STAND-BYF
ile_Req
ues
t med
ialis
t xm
l
RTSP
RTP / RTCP
![Page 20: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/20.jpg)
Politiche di Fault Tolerance(reazione al crash)
Initializing
REDIRECT rtsp://192.168.0.3/file.ext RTSP/1.0CSeq: 1
Location: rtsp://192.168.0.1
START_SLAVE
CRASHED
![Page 21: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/21.jpg)
Politiche di Fault Tolerance(nuova situazione di funzionamento)
ACTIVE
CRASHED
File_R
equ
est
med
ialis
t xm
l RTSP
RTP / RTCP
![Page 22: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/22.jpg)
Demo dell’applicazione
![Page 23: 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.](https://reader031.fdocuments.net/reader031/viewer/2022020101/5542eb5a497959361e8c6d67/html5/thumbnails/23.jpg)
(c) 2005 Loris Cancellieri