Le applicazioni di video streaming (ad esempio YouTube, Netflix) generano oggi più della metà del traffico su Internet in ragione della diffusione di Smart TV, tablets, smartphone. Per questo motivo la gestione della banda all’interno delle reti di distribuzione di contenuti (CDN, cloud providers), e sui relativi egress-link, diventa un importante problema di ricerca. E’ all’interno di questo contesto che si colloca questo lavoro di tesi. Lo standard de-facto impiegato dalle applicazioni di video streaming è il Dynamic Adaptive Streaming over HTTP (DASH). In tali sistemi il player video ospita un controllore, lo stream-switching controller, che ha l’obiettivo di scegliere la rappresentazione video più adeguata al fine di massimizzare la Quality of Experience (QoE) percepita dall’utente. In particolare, tali sistemi di controllo hanno l’obiettivo di scegliere la rappresentazione a più elevata qualità video data la banda end-to-end disponibile. Il player generalmente non ha visione della topologia della rete e può solo operare misure della banda end-to-end disponibile e del livello del buffer del player video. La novità e l’innovazione del presente lavoro di tesi consiste nell’affiancare agli stream-switching controllers ospitati sui video players un Video Control Plane (VCP). Il lavoro di tesi ha comportato il progetto e relativa implementazione di un’applicazione per elementi di rete che impiegano il paradigma delle Software Defined Networks (SDN) che consente di implementare la cooperazione fra le applicazioni di video streaming e gli apparati di rete coinvolti, ovvero gli switch SDN. Il risultato finale è l’ottimizzazione e la gestione efficiente di parametri influenti in termini di QoE percepita dall’utente. Elemento fondamentale su cui si è posta particolare attenzione è stata la fairness, ossia la suddivisione della banda disponibile fra i vari flussi concorrenti al fine di garantire che client video ottengano una QoE equa. Per questo motivo, si è adottato un meccanismo di suddivisione della capacità del link in slice (slicing) con capacità variabili e gestite a runtime dal modulo solver del VCP. Il sistema di controllo descritto brevemente sopra è stato realizzato utilizzando un approccio modulare di sviluppo tramite un controller SDN scritto in Python con il supporto delle direttive della piattaforma SDN Pyretic. La topologia scelta è costituita da una rete magliata con tre nodi principali (Distribution Network) da cui si diramano altri nodi (Access Network).Elemento centrale del VCP è il controller che agisce direttamente sui parametri dei link di collegamento fra i nodi della Distribution Network, agendo quindi da attuatore della catena di controllo. Il controller esegue due operazioni fondamentali. In primo luogo all’arrivo di un nuovo flusso video, calcola il percorso ottimale (in riferimento alla topologia) che quel dato flusso deve seguire. La soluzione ottenuta dipende da numerosi parametri tra i quali: traffico istantaneo, domanda media degli utenti e classe di traffico richiesta (ad es. massima risoluzione supportata dal device). La seconda operazione è svolta dal modulo solver del controller e consiste nella inizializzazione e risoluzione periodica di un problema di ottimizzazione. L’output del solver costituisce il valore di banda da impostare sulle slice di traffico relative ai vari link e dipende da numerosi parametri in input come lo stato del sistema in un dato istante. Sostanzialmente il sistema di controllo complessivo realizza, a intervalli periodici, la modulazione e variazione continua della capacità della singola slice. In questo modo, in maniera assolutamente trasparente, i meccanismi di controllo realizzati dallo stream-switch controller sul player DASH selezioneranno un livello video che garantisce QoE fairness tra gli utenti.
Progetto ed implementazione di un piano di controllo per application-aware video streaming su reti SDN
COLANGIULO, GIOVANNI
2015/2016
Abstract
Le applicazioni di video streaming (ad esempio YouTube, Netflix) generano oggi più della metà del traffico su Internet in ragione della diffusione di Smart TV, tablets, smartphone. Per questo motivo la gestione della banda all’interno delle reti di distribuzione di contenuti (CDN, cloud providers), e sui relativi egress-link, diventa un importante problema di ricerca. E’ all’interno di questo contesto che si colloca questo lavoro di tesi. Lo standard de-facto impiegato dalle applicazioni di video streaming è il Dynamic Adaptive Streaming over HTTP (DASH). In tali sistemi il player video ospita un controllore, lo stream-switching controller, che ha l’obiettivo di scegliere la rappresentazione video più adeguata al fine di massimizzare la Quality of Experience (QoE) percepita dall’utente. In particolare, tali sistemi di controllo hanno l’obiettivo di scegliere la rappresentazione a più elevata qualità video data la banda end-to-end disponibile. Il player generalmente non ha visione della topologia della rete e può solo operare misure della banda end-to-end disponibile e del livello del buffer del player video. La novità e l’innovazione del presente lavoro di tesi consiste nell’affiancare agli stream-switching controllers ospitati sui video players un Video Control Plane (VCP). Il lavoro di tesi ha comportato il progetto e relativa implementazione di un’applicazione per elementi di rete che impiegano il paradigma delle Software Defined Networks (SDN) che consente di implementare la cooperazione fra le applicazioni di video streaming e gli apparati di rete coinvolti, ovvero gli switch SDN. Il risultato finale è l’ottimizzazione e la gestione efficiente di parametri influenti in termini di QoE percepita dall’utente. Elemento fondamentale su cui si è posta particolare attenzione è stata la fairness, ossia la suddivisione della banda disponibile fra i vari flussi concorrenti al fine di garantire che client video ottengano una QoE equa. Per questo motivo, si è adottato un meccanismo di suddivisione della capacità del link in slice (slicing) con capacità variabili e gestite a runtime dal modulo solver del VCP. Il sistema di controllo descritto brevemente sopra è stato realizzato utilizzando un approccio modulare di sviluppo tramite un controller SDN scritto in Python con il supporto delle direttive della piattaforma SDN Pyretic. La topologia scelta è costituita da una rete magliata con tre nodi principali (Distribution Network) da cui si diramano altri nodi (Access Network).Elemento centrale del VCP è il controller che agisce direttamente sui parametri dei link di collegamento fra i nodi della Distribution Network, agendo quindi da attuatore della catena di controllo. Il controller esegue due operazioni fondamentali. In primo luogo all’arrivo di un nuovo flusso video, calcola il percorso ottimale (in riferimento alla topologia) che quel dato flusso deve seguire. La soluzione ottenuta dipende da numerosi parametri tra i quali: traffico istantaneo, domanda media degli utenti e classe di traffico richiesta (ad es. massima risoluzione supportata dal device). La seconda operazione è svolta dal modulo solver del controller e consiste nella inizializzazione e risoluzione periodica di un problema di ottimizzazione. L’output del solver costituisce il valore di banda da impostare sulle slice di traffico relative ai vari link e dipende da numerosi parametri in input come lo stato del sistema in un dato istante. Sostanzialmente il sistema di controllo complessivo realizza, a intervalli periodici, la modulazione e variazione continua della capacità della singola slice. In questo modo, in maniera assolutamente trasparente, i meccanismi di controllo realizzati dallo stream-switch controller sul player DASH selezioneranno un livello video che garantisce QoE fairness tra gli utenti.I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.
https://hdl.handle.net/20.500.14253/85442