Traditional computer networks include packet forwarding and specialized devices (middle-boxes) running vertically integrated data and control planes, each one with their own low-level vendor-proprietary configuration interface, making networks complex and difficult to manage. Software-Defined Networking (SDN) is a computer networking paradigm based on the decoupling of the control plane from the data plane. The control plane is logically centralized in an external device (the network controller) while network devices just run the data plane, effectively forwarding the traffic, and expose a common programming interface to the controller to configure the network forwarding policies. Rather than designing complex distributed protocols to achieve the desired global network behavior, network managers can now directly operate on the global network view offered by the controller to configure the network and to deploy new services and applications more easily. With SDN, innovation happens at software speed: a network can be reconfigured by running a different application on top of the controller, bringing to the networking domains software engineering best practices such as code modularity and reusability. An SDN device can be re-purposed without waiting for the slow development cycle from vendors and at the same time the introduction of new networking programming abstractions and high-level languages simplifies the network management and facilitates the evolution of the network. In this thesis work we analyzed the network programmability opportunities for traffic management offered by SDN at three different layers: control plane programmability, data plane programmability and in-network computing. The thesis can be accordingly divided in three macro sections. We started from the control plane programmability and exploited its global view to design a Traffic Engineering framework to enable online traffic optimization based on periodic traffic measurements and predictions. Even if the SDN paradigm provides the needed flexibility for frequent network updates, the achievable network reconfiguration rate is limited by several aspects including the uncertain nature of the traffic, the limited speed of flow programming in hardware and the traffic monitoring overhead. In order to avoid too frequent network reconfigurations, we defined an optimization model to cluster the observed Traffic Matrices in the time, traffic and routing domains to build a limited set of corresponding routing configurations to be proactively applied with a guaranteed minimum holding time. By tuning the model's parameters we can explore the trade-off between Static TE and Dynamic TE approaches and reduce the number of reconfigurations with a small deviation of performance with respect to the continuous update of the network configuration. We also allow adjacent clusters to overlap to make smoother the transition between routing configurations and help consistent update mechanisms. Moreover, we show how to implement our solution in a production-ready SDN platform for network operators (ONOS) through a new service which have been included in the project's codebase as official open-source contribution. Despite the robust nature of each routing configuration, the controller intervention is still required to handle exceptional events such as network failures and congestion. These kinds of scenarios challenge the strict decoupling of the control plane from the data plane of the SDN paradigm, because the intrinsic control channel delay and control traffic processing time at the controller prevent a prompt and scalable reaction. Switches are indeed unable to modify their configuration without relying on the external controller. To cope with such events, in the second part of the thesis we designed two applications based on the capabilities provided by advanced stateful programmable data planes which enable the offloading of control functions to the device to support the adaptation of the forwarding configuration in the fast-path according to the locally observable state of the network. In the first application we offload to the data plane the detection and the recovery of network failures in order to reduce both the recovery latency and packet loss while avoiding to rely on the external controller, even for the case of distant failures. In the second application we instead focus on data-center scenarios and show that we can delegate to the networking device the tasks of monitoring and re-routing large flows colliding on a same path in order to quickly balance the load and improve the flow completion times without the intervention of the remote controller. Latest advances in the data plane programmability pushed further the potential of SDN. The possibility of programming the packet parser and defining custom per-packet actions enables a new class of applications beyond pure packet forwarding under the in-network computing paradigm: the network is not just a pipe which merely forwards packets among endpoints, rather it can modify the application data while it flows into the network, effectively making the network part of the pool of computing resources of the infrastructure. As a third contribute, we investigated the option of offloading the execution of neural network inferences on a commodity SmartNICs. By adopting neural network quantization techniques, we simplified the set of operations required to execute a neural network inference to fit the computational and memory limits of the networking hardware. The ability to run a traffic analysis task directly where the forwarding decision is accordingly taken allows to achieve lower latency and higher throughput compared to an equivalent system implemented on a general purpose CPU while freeing an entire CPU core.

Le reti di calcolatori tradizionali includono dispositivi per l'inoltro del traffico e dispositivi specializzati (middle-boxes) costituiti da un piano dati e un piano di controllo verticalmente integrati, ciascuno con la propria interfaccia di configurazione a basso livello e proprietaria, rendendo le reti complesse e difficili da gestire. Il Software-Defined Networking (SDN) è un paradigma di rete basato sul disaccoppiamento del piano di controllo dal piano dati. Il piano di controllo è logicamente centralizzato in un dispositivo esterno (il controllore di rete) mentre i dispositivi di rete eseguono unicamente il piano dati, instradando effettivamente il traffico, ed allo stesso tempo espongono al controllore un'interfaccia comune di programmazione per permettere la configurazione delle politiche di instradamento nella rete. Al posto di progettare complessi protocolli distribuiti per ottenere un certo comportamento di rete globale, i gestori della rete possono ora operare direttamente sulla visione globale della rete offerta dal controllore per poter configurare la rete in modo più semplice e sviluppare più facilmente nuovi servizi e applicazioni. Grazie alle SDN, l'innovazione può avvenire alla velocità del software: una rete può essere riconfigurata semplicemente eseguendo una diversa applicazione al controllore, di fatto portando nel dominio del networking, le migliore pratiche dell'ingegneria del software quali la modularità e il riuso del codice. Un dispositivo SDN può essere riconfigurato senza dover attendere il lento ciclo di sviluppo da parte del produttore e allo stesso tempo la disponibilità di nuove astrazioni e linguaggi ad alto livello per programmare la rete ne semplificano la gestione e ne facilitano l'evoluzione. In questo lavoro di tesi abbiamo analizzato le opportunità di programmabilità della rete per la gestione del traffico offerte dalle SDN a tre diversi livelli: programmabilità del piano di controllo, programmabilità del piano dati e in-network computing. La tesi può essere perciò divisa in tre macro sezioni. Partendo dalla programmabilità del piano di controllo e sfruttando la sua visione globale della rete, abbiamo sviluppato un framework di Traffic Engineering che permette l'ottimizzazione del traffico a partire da misure periodiche e predizioni del traffico. Nonostante il paradigma SDN fornisca la flessibilità richiesta per aggiornare frequentemente la rete, il tasso di riconfigurazione è limitato da diversi aspetti tra cui la natura incerta del traffico, la lentezza della riprogrammazione dei flussi in hardware e il carico dato dal monitoraggio del traffico. Per evitare di riconfigurare la rete troppo frequentemente, abbiamo definito un modello di ottimizzazione per raggruppare le matrici di traffico nel domino del tempo, del traffico e del routing per poter di conseguenza calcolare un limitato insieme di configurazioni di routing, da applicare in modo proattivo, ciascuna con una garanzia sul tempo minimo di applicazione. Variando i parametri del modello, siamo in grado di esplorare il compromesso tra approcci di Traffic Engineering puramente statici e puramente dinamici e allo stesso tempo di ridurre il numero di riconfigurazioni con una piccola perdita di prestazioni rispetto alla riconfigurazione continua delle rete. La possibilità di sovrapporre i clusters permette di rendere meno critica la transizione tra configurazioni di routing facilitando i meccanismi di aggiornamento consistente della rete. Abbiamo inoltre mostrato come implementare la nostra soluzione in una piattaforma SDN per operatori di rete in produzione (ONOS) sviluppando un nuovo servizio che è stato integrato come contributo open-source nella distribuzione ufficiale del codice. Nonostante la natura robusta di ciascuna configurazione di routing, l'intervento del controllore è comunque richiesto per la gestione di eventi eccezionali nella rete quali i guasti e la congestione. Questi tipi di scenario mettono alla prova il rigido disaccoppiamento del piano di controllo dal piano dati previsto dal paradigma SDN, perché il ritardo intrinseco del canale di controllo e il tempo di processamento del traffico di controllo al controllore impediscono una reazione tempestiva e scalabile. I dispositivi di rete non sono infatti in grado di modificare la propria configurazione senza l'intervento del controllore esterno. Per far fronte a questi eventi, nella seconda parte della tesi abbiamo sviluppato due applicazioni basate sulle caratteristiche fornite dai piani dati programmabili stateful, che permetto di delegare ai dispositivi delle funzioni di controllo abilitando l'adattamento della configurazione di instradamento a partire dallo stato della rete osservabile localmente dai dispositivi stessi. In una prima applicazione abbiamo delegato al dispositivo di rete sia il rilevamento che la gestione del guasto, riducendo sia il tempo di reazione che le perdite di pacchetti grazie al non coinvolgimento del controllore esterno, anche nei casi di guasti distanti. Nella seconda applicazione ci siamo invece concentrati sugli scenari data-center e abbiamo mostrato come sia possibile delegare al dispositivo di rete il compito di monitorare e re-instradare flussi grandi che collidono sullo stesso percorso, in modo da bilanciare velocemente il carico e migliorare il tempo di completamento dei flussi senza l'intervento del controllore esterno. Gli ultimi sviluppi nella programmabilità del piano dati hanno spinto oltre il potenziale delle reti SDN. La possibilità di programmare il parsing dei pacchetti e di definire azioni personalizzate sulla base dei singoli pacchetti abilita una nuova classe di applicazioni che va ben oltre il semplice instradamento del traffico e può essere racchiusa nel paradigma dell'in-network computing: la rete non è più semplicemente un mezzo per interconnettere i dispositivi finali, ma è ora in grado di modificare i dati applicativi mentre viaggiano all'interno della rete stessa, rendendo effettivamente la rete parte dell'insieme di risorse ci computazione disponibili nell'infrastruttura. Come terzo contributo, abbiamo investigato la possibilità di eseguire l’inferenza di reti neurali sulle SmartNICs. Adottando tecniche di quantizzazione della rete neurale, abbiamo semplificato l'insieme di operazioni necessarie ad eseguire un'inferenza per adattarsi ai limiti computazionali e di memoria del dispositivo hardware. La possibilità di eseguire un programma di analisi del traffico direttamente dove la decisione di instradamento deve essere conseguentemente presa, permette di ottenere una latenza più bassa e un tasso di inferenza più elevato rispetto ad un sistema equivalente implementato su una CPU general purpose e allo stesso tempo libera un intero core della CPU.

Traffic management in networks with programmable data planes

SANVITO, DAVIDE

Abstract

Traditional computer networks include packet forwarding and specialized devices (middle-boxes) running vertically integrated data and control planes, each one with their own low-level vendor-proprietary configuration interface, making networks complex and difficult to manage. Software-Defined Networking (SDN) is a computer networking paradigm based on the decoupling of the control plane from the data plane. The control plane is logically centralized in an external device (the network controller) while network devices just run the data plane, effectively forwarding the traffic, and expose a common programming interface to the controller to configure the network forwarding policies. Rather than designing complex distributed protocols to achieve the desired global network behavior, network managers can now directly operate on the global network view offered by the controller to configure the network and to deploy new services and applications more easily. With SDN, innovation happens at software speed: a network can be reconfigured by running a different application on top of the controller, bringing to the networking domains software engineering best practices such as code modularity and reusability. An SDN device can be re-purposed without waiting for the slow development cycle from vendors and at the same time the introduction of new networking programming abstractions and high-level languages simplifies the network management and facilitates the evolution of the network. In this thesis work we analyzed the network programmability opportunities for traffic management offered by SDN at three different layers: control plane programmability, data plane programmability and in-network computing. The thesis can be accordingly divided in three macro sections. We started from the control plane programmability and exploited its global view to design a Traffic Engineering framework to enable online traffic optimization based on periodic traffic measurements and predictions. Even if the SDN paradigm provides the needed flexibility for frequent network updates, the achievable network reconfiguration rate is limited by several aspects including the uncertain nature of the traffic, the limited speed of flow programming in hardware and the traffic monitoring overhead. In order to avoid too frequent network reconfigurations, we defined an optimization model to cluster the observed Traffic Matrices in the time, traffic and routing domains to build a limited set of corresponding routing configurations to be proactively applied with a guaranteed minimum holding time. By tuning the model's parameters we can explore the trade-off between Static TE and Dynamic TE approaches and reduce the number of reconfigurations with a small deviation of performance with respect to the continuous update of the network configuration. We also allow adjacent clusters to overlap to make smoother the transition between routing configurations and help consistent update mechanisms. Moreover, we show how to implement our solution in a production-ready SDN platform for network operators (ONOS) through a new service which have been included in the project's codebase as official open-source contribution. Despite the robust nature of each routing configuration, the controller intervention is still required to handle exceptional events such as network failures and congestion. These kinds of scenarios challenge the strict decoupling of the control plane from the data plane of the SDN paradigm, because the intrinsic control channel delay and control traffic processing time at the controller prevent a prompt and scalable reaction. Switches are indeed unable to modify their configuration without relying on the external controller. To cope with such events, in the second part of the thesis we designed two applications based on the capabilities provided by advanced stateful programmable data planes which enable the offloading of control functions to the device to support the adaptation of the forwarding configuration in the fast-path according to the locally observable state of the network. In the first application we offload to the data plane the detection and the recovery of network failures in order to reduce both the recovery latency and packet loss while avoiding to rely on the external controller, even for the case of distant failures. In the second application we instead focus on data-center scenarios and show that we can delegate to the networking device the tasks of monitoring and re-routing large flows colliding on a same path in order to quickly balance the load and improve the flow completion times without the intervention of the remote controller. Latest advances in the data plane programmability pushed further the potential of SDN. The possibility of programming the packet parser and defining custom per-packet actions enables a new class of applications beyond pure packet forwarding under the in-network computing paradigm: the network is not just a pipe which merely forwards packets among endpoints, rather it can modify the application data while it flows into the network, effectively making the network part of the pool of computing resources of the infrastructure. As a third contribute, we investigated the option of offloading the execution of neural network inferences on a commodity SmartNICs. By adopting neural network quantization techniques, we simplified the set of operations required to execute a neural network inference to fit the computational and memory limits of the networking hardware. The ability to run a traffic analysis task directly where the forwarding decision is accordingly taken allows to achieve lower latency and higher throughput compared to an equivalent system implemented on a general purpose CPU while freeing an entire CPU core.
PERNICI, BARBARA
CESANA, MATTEO
6-mar-2020
Le reti di calcolatori tradizionali includono dispositivi per l'inoltro del traffico e dispositivi specializzati (middle-boxes) costituiti da un piano dati e un piano di controllo verticalmente integrati, ciascuno con la propria interfaccia di configurazione a basso livello e proprietaria, rendendo le reti complesse e difficili da gestire. Il Software-Defined Networking (SDN) è un paradigma di rete basato sul disaccoppiamento del piano di controllo dal piano dati. Il piano di controllo è logicamente centralizzato in un dispositivo esterno (il controllore di rete) mentre i dispositivi di rete eseguono unicamente il piano dati, instradando effettivamente il traffico, ed allo stesso tempo espongono al controllore un'interfaccia comune di programmazione per permettere la configurazione delle politiche di instradamento nella rete. Al posto di progettare complessi protocolli distribuiti per ottenere un certo comportamento di rete globale, i gestori della rete possono ora operare direttamente sulla visione globale della rete offerta dal controllore per poter configurare la rete in modo più semplice e sviluppare più facilmente nuovi servizi e applicazioni. Grazie alle SDN, l'innovazione può avvenire alla velocità del software: una rete può essere riconfigurata semplicemente eseguendo una diversa applicazione al controllore, di fatto portando nel dominio del networking, le migliore pratiche dell'ingegneria del software quali la modularità e il riuso del codice. Un dispositivo SDN può essere riconfigurato senza dover attendere il lento ciclo di sviluppo da parte del produttore e allo stesso tempo la disponibilità di nuove astrazioni e linguaggi ad alto livello per programmare la rete ne semplificano la gestione e ne facilitano l'evoluzione. In questo lavoro di tesi abbiamo analizzato le opportunità di programmabilità della rete per la gestione del traffico offerte dalle SDN a tre diversi livelli: programmabilità del piano di controllo, programmabilità del piano dati e in-network computing. La tesi può essere perciò divisa in tre macro sezioni. Partendo dalla programmabilità del piano di controllo e sfruttando la sua visione globale della rete, abbiamo sviluppato un framework di Traffic Engineering che permette l'ottimizzazione del traffico a partire da misure periodiche e predizioni del traffico. Nonostante il paradigma SDN fornisca la flessibilità richiesta per aggiornare frequentemente la rete, il tasso di riconfigurazione è limitato da diversi aspetti tra cui la natura incerta del traffico, la lentezza della riprogrammazione dei flussi in hardware e il carico dato dal monitoraggio del traffico. Per evitare di riconfigurare la rete troppo frequentemente, abbiamo definito un modello di ottimizzazione per raggruppare le matrici di traffico nel domino del tempo, del traffico e del routing per poter di conseguenza calcolare un limitato insieme di configurazioni di routing, da applicare in modo proattivo, ciascuna con una garanzia sul tempo minimo di applicazione. Variando i parametri del modello, siamo in grado di esplorare il compromesso tra approcci di Traffic Engineering puramente statici e puramente dinamici e allo stesso tempo di ridurre il numero di riconfigurazioni con una piccola perdita di prestazioni rispetto alla riconfigurazione continua delle rete. La possibilità di sovrapporre i clusters permette di rendere meno critica la transizione tra configurazioni di routing facilitando i meccanismi di aggiornamento consistente della rete. Abbiamo inoltre mostrato come implementare la nostra soluzione in una piattaforma SDN per operatori di rete in produzione (ONOS) sviluppando un nuovo servizio che è stato integrato come contributo open-source nella distribuzione ufficiale del codice. Nonostante la natura robusta di ciascuna configurazione di routing, l'intervento del controllore è comunque richiesto per la gestione di eventi eccezionali nella rete quali i guasti e la congestione. Questi tipi di scenario mettono alla prova il rigido disaccoppiamento del piano di controllo dal piano dati previsto dal paradigma SDN, perché il ritardo intrinseco del canale di controllo e il tempo di processamento del traffico di controllo al controllore impediscono una reazione tempestiva e scalabile. I dispositivi di rete non sono infatti in grado di modificare la propria configurazione senza l'intervento del controllore esterno. Per far fronte a questi eventi, nella seconda parte della tesi abbiamo sviluppato due applicazioni basate sulle caratteristiche fornite dai piani dati programmabili stateful, che permetto di delegare ai dispositivi delle funzioni di controllo abilitando l'adattamento della configurazione di instradamento a partire dallo stato della rete osservabile localmente dai dispositivi stessi. In una prima applicazione abbiamo delegato al dispositivo di rete sia il rilevamento che la gestione del guasto, riducendo sia il tempo di reazione che le perdite di pacchetti grazie al non coinvolgimento del controllore esterno, anche nei casi di guasti distanti. Nella seconda applicazione ci siamo invece concentrati sugli scenari data-center e abbiamo mostrato come sia possibile delegare al dispositivo di rete il compito di monitorare e re-instradare flussi grandi che collidono sullo stesso percorso, in modo da bilanciare velocemente il carico e migliorare il tempo di completamento dei flussi senza l'intervento del controllore esterno. Gli ultimi sviluppi nella programmabilità del piano dati hanno spinto oltre il potenziale delle reti SDN. La possibilità di programmare il parsing dei pacchetti e di definire azioni personalizzate sulla base dei singoli pacchetti abilita una nuova classe di applicazioni che va ben oltre il semplice instradamento del traffico e può essere racchiusa nel paradigma dell'in-network computing: la rete non è più semplicemente un mezzo per interconnettere i dispositivi finali, ma è ora in grado di modificare i dati applicativi mentre viaggiano all'interno della rete stessa, rendendo effettivamente la rete parte dell'insieme di risorse ci computazione disponibili nell'infrastruttura. Come terzo contributo, abbiamo investigato la possibilità di eseguire l’inferenza di reti neurali sulle SmartNICs. Adottando tecniche di quantizzazione della rete neurale, abbiamo semplificato l'insieme di operazioni necessarie ad eseguire un'inferenza per adattarsi ai limiti computazionali e di memoria del dispositivo hardware. La possibilità di eseguire un programma di analisi del traffico direttamente dove la decisione di instradamento deve essere conseguentemente presa, permette di ottenere una latenza più bassa e un tasso di inferenza più elevato rispetto ad un sistema equivalente implementato su una CPU general purpose e allo stesso tempo libera un intero core della CPU.
Tesi di dottorato
File allegati
File Dimensione Formato  
PhD_Thesis.pdf

non accessibile

Descrizione: Testo della tesi
Dimensione 13.11 MB
Formato Adobe PDF
13.11 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/153337