[en] Software-Defined Networking (SDN) has been recognized as the next-generation networking paradigm. It is a fast-evolving technology that decouples the network data plane, which are the network devices that forward traffic, from the network control plane, which is the software logic that controls ultimately how traffic is forwarded through the network. A logically centralized controller is responsible for all the control decisions and communication among the forwarding elements. It allows to control the network behavior from a single high level control program. However, Software-Defined Networks use many of its network resources inefficiently, which leads to over-loading network links, congestion in the queues and end-to-end packet delays. Consequently, it becomes clear that routing decisions affect the overall performance of a communication's network. Performance is determined in terms of Quality of Service guarantees, i.e. throughput, average packet delay, jitter and losses. Thus, a QoS-aware routing algorithm is required. Current traffic engineering techniques and state-of-the-art routing algorithms do not effectively use the merits of SDNs, such as global centralized visibility, real-time fast decisions, control and data plane decoupling, network management simplification and portability. In this thesis, we developed two new QoS-aware routing algorithms that exploit the advantages that SDN brings to improve the network performance. Two different scenarios have been studied: a centralized and a distributed models. The centralized scenario simplifies the management of complex flows and the customization, but scalability issues arise. In contrast, the distributed scenario is more scalable, but there may be state inconsistency and increase of shared information. In general, a centralized approach is better for data centers or home networks, whereas a distributed approach is better for large scale networks, e.g. cloud environments. First, the centralized SDN controller model is discussed, for which a multi-tenancy management framework is proposed to fulfill the quality-of-services (QoSs) requirements through tenant isolation, prioritization and flow allocation. A network virtualization algorithm is provided to isolate and prioritize tenants from different clients. Furthermore, a novel routing scheme, called QoS-aware Virtualization-enabled Routing (QVR), is presented. It combines the proposed virtualization technique and a QoS-aware framework to enable flow allocation with respect to different tenant applications. Simulation results confirm that the proposed QVR algorithm surpasses the conventional algorithms with less traffic congestion and packet delay. This facilitates reliable and efficient data transportation in generalized SDNs. Therefore, it yields to service performance improvement for numerous applications and enhancement of client isolation. Second, a distributed SDN controller model is analyzed. The network is divided into different clusters, and hierarchically split in two levels. This architecture leads to smaller sizes of routing tables in the switches, and substantially lesser calculations and updates of routing tables from the controller. Moreover, a new algorithm is developed, called QoS-aware Reinforcement Learning Routing (QRLR), where reinforcement learning is applied to the routing problem. The modeling of the reward function calculation solution allows the customization of the different requirements for each type of traffic, thus providing flexibility and adaptability to different flows and its requirements.

[es] Las redes definidas por software (SDN) han sido reconocidas como el paradigma de las redes de nueva generación. Es una tecnología de rápida evolución que desacopla el plano de datos de la red, que son los dispositivos de la red que transmiten el tráfico, desde el plano de control de la red, que es la lógica de software que controla en última instancia cómo el tráfico se transmite a través de la red. En SDN, un controlador centralizado es responsable de todas las decisiones de control y la comunicación entre los elementos de la red. Permite controlar el comportamiento de la red desde un único punto de control de alto nivel. Sin embargo, las redes definidas por software utilizan muchos de sus recursos de manera ineficiente, lo que conduce a un exceso de carga de los enlaces de la red, congestión en las colas y retrasos en el envió de los paquetes. En consecuencia, se hace evidente que las decisiones de enrutamiento afectan el rendimiento global de la red de una comunicación. El rendimiento se determina en función de la calidad de servicio (QoS), es decir, el rendimiento, la demora media de paquetes, el jitter y las pérdidas de paquetes. Por lo tanto, se requiere un algoritmo de encaminamiento con QoS. Las técnicas de ingeniería de tráfico actuales y algoritmos de enrutamiento no utilizan eficazmente los méritos de SDN, tales como la visibilidad global centralizada, las decisiones rápidas en tiempo real, el desacoplamiento de los planos de control y de datos, la simplificación de la gestión de redes y la portabilidad. En esta tesis, hemos desarrollado dos nuevos algoritmos de encaminamiento con QoS que explotan las ventajas que trae SDN para mejorar el rendimiento de la red. Dos escenarios diferentes se han estudiado: un modelo centralizado y un modelo distribuido. El escenario centralizado simplifica la gestión de los flujos complejos y la personalización, pero surgen problemas de escalabilidad. En contraste, el escenario distribuido es más escalable, pero puede haber inconsistencia en los estados, y la información compartida entre los elementos de la red aumenta. En general, un enfoque centralizado es mejor para centros de datos o redes domésticas, mientras que un enfoque distribuido es mejor para las redes a gran escala, por ejemplo, entornos de la nube. En primer lugar, se analiza el modelo de controlador SDN centralizado, para el que se propone una gestión para cumplir los requisitos de QoS a través de aislamiento, priorización y enrutamiento. Un algoritmo de virtualización de la red se proporciona para aislar y dar prioridad a los datos de los diferentes clientes. Resultados de la simulación confirman que el algoritmo propuesto supera los algoritmos convencionales con menor congestión de tráfico y retardo de los paquetes. En segundo lugar, se analiza un modelo de controlador SDN distribuido. La red se divide en diferentes grupos, y jerárquicamente se dividide en dos niveles. Esta arquitectura conduce a tamaños más pequeños de las tablas de enrutamiento, cálculos sustancialmente menores y actualizaciones de las tablas de enrutamiento desde el controlador. Por otra parte, el aprendizaje por refuerzo se aplica al problema de enrutamiento. El modelado de la función recompensa permite la personalización de los diferentes requisitos para cada tipo de tráfico, lo que proporciona flexibilidad y capacidad de adaptación a los diferentes flujos y sus requisitos.