Alla mia famiglia
che con affetto mi ha
sostenuto in questi anni
V
Sommario
Nel nostro studio analizzeremo e presenteremo alcune caratteristiche chiave dei
sistemi utilizzati per il video streaming, da quelli tradizionali a quelli peer-to-peer,
anche se le tecnologie ad esso finalizzate (secondo capitolo), sono in continua
evoluzione; descriveremo due famosi sistemi per il video streaming, PPLive e
Coolstreming (terzo capitolo), come casi di studio di quanto discusso e,
successivamente, ci concentreremo sulle problematiche riguardanti la congestione
della rete, che giocano un ruolo fondamentale per la qualità del servizio offerto. In
particolare, discuteremo dell’opportunità di utilizzare il protocollo TCP per la
trasmissione di video e analizzeremo dei protocolli alternativi ad esso (quarto
capitolo). Infine presenteremo un nuovo protocollo di congestione, l’Active
Window Management, e ne faremo uno studio attraverso delle simulazioni con
Net Simulator 2 per mostrare come esso migliori la qualità dei video ricevuti dagli
utenti (quinto e sesto capitolo).
1
Capitolo 1
1. Introduzione
Il media streaming risulta essere una entusiasmante possibilità da aggiungere al
ricco bagaglio di strumenti che hanno a disposizione i produttori di media. Come
la radio e il cinema hanno perso il loro ruolo primario di mezzo di comunicazione
nei confronti della televisione, così il fenomeno dello streaming sta portando ad
una trasformazione del World Wide Web. Dagli standards originali di tipo text-
based, si è passati ad estendere le funzionalità dei protocolli principali del Web
per incorporare immagini e animazioni e, successivamente, audio e video,
riconosciuti come la via più naturale per la comunicazione. In base all’esperienza
avuta con la televisione, si può ritenere che lo streaming sarà il veicolo principale
per la diffusione della conoscenza e dell’intrattenimento.
Molti considerano lo streaming come un’alternativa ai canali di distribuzione
tradizionali, cioè radio e televisione. Questa, tuttavia, è una visione ristretta del
fenomeno: esso, come parte di una più ricca offerta multimediale interattiva, può
diventare a buon diritto un nuovo mezzo di comunicazione in competizione con
tutti gli altri e, di conseguenza, una volta esplorati tutti i suoi punti di forza, può
essere ancora più attraente.
1.1. Il contesto
Ci sono voluti 500 anni dal momento in cui Gutenberg ha introdotto la stampa a
caratteri mobili fino al raggiungimento dei libri in formato elettronico odierni. Nel
Capitolo 1. Introduzione Il contesto
2
breve periodo degli ultimi quindici anni siamo passati dall’utilizzo di pagine web
testuali ad una più complessa ricchezza di contenuti multimediali. Tuttavia alcuni
dei principali componenti dei primi libri stampati permangono nelle pagine web:
le iniziali istoriate e i bordi floreali sono stati rimpiazzati da immagini GIF, le
illustrazioni, le incisioni e le mezzetinte della carta stampata sono ora immagini
JPEG, ma gli elementi delle pagine web sono sostanzialmente gli stessi di quelli
dei libri del ‘500.
Possiamo ringraziare Tim Berners-Lee per lo sviluppo dell’HyperText Markup
Language (HTML), che ha portato nuove prospettive nel modo di comunicare:
oggi, infatti, parecchie attività commerciali fanno un grande affidamento su un
sito web per promuovere i loro prodotti e i loro servizi e fornire informazioni ai
clienti. Presto il Web è passato dall’iniziale mezzo di comunicazione che era, ad
un formidabile strumento per la vendita di prodotti e servizi, ma una
comunicazione diretta o attraverso l’uso di immagini video resta il solo modo
possibile per un reparto vendite di dare al consumatore una migliore presentazione
dei propri prodotti.
Le immagini video si trovano sulla scena da poco più di 100 anni. Da quando i
fratelli Lumière ed Edison hanno inventato il cinematografo, i video sono
diventati parte della nostra cultura generale e del nostro intrattenimento e
cinquanta anni dopo, con l’introduzione della televisione, essi sono entrati nelle
case. Tuttavia la televisione offre all’utente una limitata interattività.
Al contrario i rich media combinano le applicazioni online, l’interazione
multimediale e la televisione per offrire più possibilità di interazione all’utente.
Siamo abituati ad avere contenuti interattivi, con grafica, video ed audio,
Capitolo 1. Introduzione Convergenza
3
attraverso l’utilizzo di CD-ROM e DVD, ma, sfortunatamente le prime codifiche
video (ad esempio MPEG-1) creavano flussi di dati troppo grandi per lo streaming
video. I progressi nel campo della compressione video hanno permesso la
distribuzione di contenuti video in real-time attraverso il Web.
Grazie alle tecnologia Macromedia Flash si è passati dall’utilizzo del semplice
ipertesto ai rich media, ed è ora possibile creare siti web dinamici e interattivi che
includono video ed audio streaming.
Oggi il media streaming offre la possibilità di diffondere contenuti digitali
codificati attraverso la Rete, o IP broadcasting. Il modo di fare televisione si è
trasformato con l’introduzione del protocollo IPTV, che offre un canale
bidirezionale tra la sorgente video e l’utilizzatore, permettendo una maggiore
capacità di interazione prima impossibile con i metodi convenzionali.
Ma i cambiamenti della Rete non riguardano solo questi aspetti. Bisogna
considerare anche il cambiamento di prospettiva che hanno avuto gli utenti: essi
sono passati da utilizzatori a creatori di contenuti e adesso essi formano gruppi
sociali che, in questo ambito, condividono i video da loro creati e necessitano di
comunicare in teleconferenze (audio o video).
In definitiva possiamo affermare che è cambiato il modo degli utenti di
partecipare allo sviluppo del Web.
1.2. Convergenza
I media stanno trovando un punto di convergenza, i confini che dividono i mezzi
di comunicazione di massa tradizionali diventano sempre più sfumati e offrono
sempre più nuove possibilità.
Capitolo 1. Introduzione Convergenza
4
Ma questa convergenza solleva anche notevoli sfide dal punto di vista
organizzativo. Come è possibile ridurre i costi di produzione? Come bisogna
gestire i contenuti? Come integrare discipline differenti? E’ possibile riutilizzare i
contenuti per altri media sostenendo costi ridotti? Anche la stessa tecnologia pone
dei problemi. E’ possibile mettere a punto nuovi protocolli per sfruttare al meglio
le capacità offerte dalla rete? In altre parole ci si chiede se sia possibile utilizzare
l’attuale infrastruttura di rete per fronteggiare lo sviluppo dei nuovi mezzi di
comunicazione, senza apportarvi sostanziali modifiche.
Per contribuire almeno in parte alla risposta a quest’ultima domanda, in questa
tesi si discuterà degli aspetti che riguardano lo streaming video. Anche se le
tecnologie per il video streaming sono in continua evoluzione presenteremo
alcune caratteristiche chiave dei sistemi utilizzati per tale scopo (secondo
capitolo), da quelli tradizionali a quelli peer-to-peer; descriveremo due famosi
sistemi per il video streaming, PPLive e Coolstreming (terzo capitolo), come casi
di studio di quanto discusso e, successivamente, ci concentreremo sulle
problematiche riguardanti la congestione della rete, che giocano un ruolo
fondamentale per la qualità del servizio offerto. In particolare, discuteremo
dell’opportunità di utilizzare il protocollo TCP per la trasmissione di video e
analizzeremo dei protocolli alternativi ad esso (quarto capitolo). Infine
presenteremo un nuovo protocollo di congestione, l’Active Window Management,
e ne faremo uno studio attraverso delle simulazioni con Net Simulator 2 per
mostrare come esso migliori la qualità dei video ricevuti dagli utenti (quinto e
sesto capitolo).
5
Capitolo 2
2. Video streaming
La massiccia presenza di Internet praticamente ovunque, ha reso questo strumento
molto attraente nell’utilizzo di applicazioni multimediali distribuite. Tuttavia
un’importante risultato da conseguire consiste nel creare soluzioni efficienti per lo
streaming multimediale.
E’ indispensabile chiarire la distinzione di quello che è lo streaming rispetto alla
distribuzione di contenuti sotto altre forme, comunemente chiamata download.
Con lo streaming media, generalmente, i contenuti multimediali vengono ricevuti
con continuità da un utente che li utilizza mentre vengono distribuiti da uno
streaming provider: il trasferimento e l’utilizzo sono concorrenti. Nel download,
al contrario, i contenuti vengono prima interamente ricevuti e in seguito è
possibile usufruirne: in questo caso il trasferimento e l’utilizzo sono sequenziali.
Come si può notare con questo ci riferiamo più al metodo con il quale i contenuti
sono distribuiti che non ai contenuti stessi1.
Oggi giorno questo tipo di contenuti sono diventati una parte predominante
nell’utilizzo quotidiano del Web. In particolare le applicazioni di tipo Video-over-
IP come ad esempio YouTube, Google Video o Yahoo Video, solo per citarne
alcune, attraggono un numero elevatissimo di utenti sulla rete. Come risultato il
1
In effetti questa distinzione viene applicata ai media distribuiti sulle reti di telecomunicazioni
tramite un flusso di dati (stream in inglese), visto che altri sistemi di distribuzione sono
interamente in streaming (come ad esempio radio o televisione), mentre altri non lo sono (come ad
esempio libri, CD e DVD).
Capitolo 2. Video streaming Stream video
6
video streaming è stata una delle aree di ricerca più prolifiche degli ultimi
decenni.
In questo capitolo esamineremo le caratteristiche che riguardano le applicazioni
per il video streaming in modo da ottenere una comprensione più approfondita
degli aspetti che lo riguardano sia nell’ambito di utilizzo in sistemi Client/Server
sia nelle reti Peer-to-Peer, che per le loro caratteristiche, stanno riscuotendo un
significativo interesse nell’Internet video broadcast.
2.1. Stream video
I sistemi per il video streaming possono essere suddivisi in due categorie
principali in base al tipo di stream offerto: Video-on-Demand (VoD) e Live
streaming.
2.1.1. Video-on-Demand (VoD)
I sistemi Video-on-Demand offrono un servizio interattivo che dedica a ciascun
utente un singolo canale e gli permette di iniziare in qualsiasi momento la visione
di un video scelto con la possibilità di controllarne l’esecuzione in stile VCR
(pausa, avanti, indietro, etc.).
E’ necessario considerare alcuni aspetti critici dell’implementazione di questi
sistemi: in primo luogo essi devono poter offrire una quantità di materiale da
visionare comparabile con quello disponibile in un videostore di medie
dimensioni e ciò comporta l’utilizzo di notevoli quantità di spazio dove mantenere
i dati. Tuttavia questo non è più un problema considerando la notevole capacità di
archiviazione disponibile negli attuali servers.
Capitolo 2. Video streaming Stream video
7
Un secondo aspetto, più critico, risulta essere la banda necessaria a fornire un
simile servizio: se bisogna distribuire brevi contenuti video a bassa qualità verso
pochi utenti è facile implementare un sistema con dei cluster servers e un
architettura di tipo client/server, mentre invece se i filmati da distribuire sono
molto lunghi (come può essere ad esempio un film) e la qualità richiesta deve
essere di tipo DVD o HD, per migliaia di persone allo stesso tempo, il problema
diventa molto complesso in termini di scalabilità.
Un terzo punto da considerare riguarda il fatto che ciascun utente ha la possibilità
di guardare un filmato a partire da qualsiasi istante desideri: anche se nello stesso
momento un notevole numero di utenti sta guardando lo stesso filmato, essi sono
asincroni tra loro e in ogni istante di tempo si trovano in porzioni differenti
all’interno di esso. Ciò comporta problemi addizionali da risolvere per venire
incontro alle esigenze del punto precedente quando si utilizzano reti Peer-to-Peer
per la distribuzione dei contenuti.
Un ultimo aspetto fondamentale da tenere in considerazione riguarda la Qualità
del servizio (QoS) nel supportare l’interazione. Mettere in pausa un filmato o
spostarsi indietro richiede l’utilizzo di memoria nei clients per allocare buffers più
lunghi, la ricerca veloce fa aumentare i tempi di latenza mentre lo spostarsi avanti
richiede di ricevere dati più velocemente del normale.
La maggior parte dei sistemi VoD riesce a risolvere alcuni di questi problemi, ma
nessuno di essi li risolve tutti in maniera eccellente, specialmente per quanto
riguarda le funzioni interattive disponibili all’utente che, quindi, non dispone di
un pieno servizio VoD.
Capitolo 2. Video streaming Stream video
8
2.1.2. Live Streaming
Anche i sistemi in live streaming offrono anche essi la possibilità di visionare un
canale video; tuttavia, a differenza del caso precedente, gli utenti che sono
collegati allo stesso canale video hanno una visione temporale del filmato
sincronizzata. In altre parole nel medesimo istante ogni utente guarda la stessa
porzione di filmato di un altro utente collegato allo stesso canale (a meno di un
lieve ritardo di sincronizzazione); la sola cosa che è permessa agli utenti è il
cambio di canale.
Anche nei sistemi in live streaming si presentano certi aspetti critici che debbono
essere presi in considerazione.
Un primo punto riguarda la richiesta di banda per mantenere il flusso dati quanto
più costante possibile (streaming rate costante) in modo da avere una visione del
filmato omogenea e senza arresti dell’esecuzione o improvvisi salti. In genere, i
dati da inviare si presentano man mano che la visione del filmato avanza e, quindi,
essi sono approssimativamente in ordine sequenziale; il problema che si pone,
invece, è quello di soddisfare per ogni utente la domanda di banda per garantire il
rate richiesto.
Il secondo punto riguarda la tempestività (timeliness) nella ricezione dei dati
inviati definita come il ritardo (chiamato anche play-out delay) tra il momento in
cui lo stream è stato prodotto alla sorgente e il momento nel quale viene riprodotto
dal ricevente. E’ chiaro che il valore massimo di questa grandezza deve essere
quanto più basso possibile se si vuole che il ricevente abbia la sensazione di
vedere dati recenti (ad esempio è impensabile vedere una partita di calcio con un