Abstract
Computer networks are becoming increasingly complex, with several interconnected devices, protocols, control knobs, and applications sharing a physical infrastructure. Different applications can have different Quality of Service (QoS) requirements to operate correctly. The user-perceived experience, i.e., Quality of Experience (QoE), when consuming network applications is also a relevant indicator that must be accounted for, to minimize customer churn and offer a satisfactory experience to the users. Such complexity of the networks and applications makes it difficult for network operators to define a one-fits-all configuration or manually set device parameters tailored to each application. Thus, automating the configuration of network functions and enabling the allocation of the appropriate resources for each application is crucial to support the scaling of future networks. To realize this automation, several components are required for monitoring network performance, acting to control the behavior of network flows, and managing the available resources to accommodate the different applications sharing the infrastructure. Network slicing is one of the main technologies enabling such tailored configurations, but other supporting enablers must still be integrated and combined into an overarching solution. This thesis presents solutions tackling the different activities required for automating the management of network slices including real-time monitoring of their performances, estimating user experience when applicable, exerting control over network flows, and automatically adjusting resources in the face of issues. Therefore, we build a complete solution to realize network slicing using both QoS and QoE measurements as feedback signals, implemented in real devices with a strong experimental component. Each component presented in this thesis was experimentally evaluated using real testbeds including wired and wireless segments, highlighting the feasibility of our solutions.