u nibo s treaming p roject

23
Unibo Streaming 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

Upload: aulii

Post on 21-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: U nibo S treaming P roject

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 14: U nibo S treaming P roject

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

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

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

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

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

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

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

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

Demo dell’applicazione

Page 23: U nibo S treaming P roject

(c) 2005 Loris Cancellieri