Nel corso degli ultimi anni, la comunità scientifica si è prodigata nell'esplorazione delle potenzialità fornite dal Software-Defined Networking, un paradigma che prevede la netta separazione tra piano dati e piano di controllo all'interno di una rete. Così facendo, il comportamento dei dispositivi risulta programmabile tramite un'applicazione di controllo.
In questo contesto, il presente elaborato documenta il lavoro di tesi intrapreso per progettare, realizzare e validare una tale applicazione avente funzionalità di Traffic Recovery e Load Balancing. Le stime riguardanti l'utilizzazione dei collegamenti e la banda occupata dai vari flussi, così come la rivelazione dei malfunzionamenti, sono state gestite sfruttando le peculiarità del protocollo OpenFlow.
L'aspetto relativo alla Traffic Recovery è stato affrontato con strategie sia reattive che proattive. In particolare, il traffico generato dalle sorgenti può essere suddiviso in quattro classi, caratterizzate da un livello di protezione via via crescente. Riguardo alla funzionalità di Load Balancing, sono state adottate e confontate tre possibili metriche per l'assegnazione dei costi ai vari collegamenti, in funzione del carico da essi sperimentato.
During the last years, Software-Defined Networking (SDN) has been widely explored in order to understand the possibilities provided by this kind of architecture. Introducing a clean separation between the control plane and the data plane within the network, SDN allows a control application to program the behavior of the underlying infrastructure.
This thesis deals with designing, fulfilling and validating such an application with Traffic Recovery and Load Balancing tasks. The features of the OpenFlow protocol have been exploited in order to provide an estimate of links utilization and flows bandwidth, as well as to effectively detect link failures.
Traffic Recovery has been handled adopting both reactive and proactive strategies. More precisely, network traffic can be grouped into four classes with an increasing level of protection. With respect to Load Balancing, three alternative ways of assigning a cost to a certain link, as a function of its load, have been defined and compared