Computer networks are hard to manage. Given a set of high-level requirements (e.g., connectivity, security, reliability), networks operators have to specify and coordinate the individual behavior of potentially hundreds of devices running complex distributed protocols so that they, collectively, compute a compliant forwarding state. If this was not hard enough, operators have to specify the behavior of each device using low-level (and quite arcane) configuration languages which vary across vendors, models, and software version. Not surprisingly, this complexity leads to many mistakes. Nowadays the majority of the network downtimes are caused by humans, not equipment failures.
In the last few years our group has taken pioneering steps to enable declarative network programming, a new network management paradigm in which network operators only need specify the high-level policies they want enforced in their network (the what) not how.
"What is my network doing?" What looks like a simple (if not trivial) question is actually almost impossible to answer today and this, for at least two reasons. First, existing network measurements tools only provide operators with coarse-grained traffic statistics (typically as a result of heavy sampling by the devices). Second, network operators have to manually bridge the large semantic gap separating these imperfect observations from the corresponding high-level insights that explain them.
Our group is investigating new kinds of measurement and reasoning techniques enabling to: (i) collect high-quality network statistics in a scalable way; and (ii) extract meaningful insights from them.
Network controllers are complex and highly critical software systems in charge of enforcing a wide range of policies and services on top of a highly asynchronous environment (the network). As with any complex software, network controllers are likely to be plagued by bugs that must be discovered and fixed. While discovering these bugs is often hard, fixing them is even harder as controllers cannot simply be "rebooted" but need to be upgraded on-the-fly.
Our group is involved in verifying that network controllers are correct through static and dynamic analysis. We are also studying how we can make network controller "hot-swappable", enabling network controllers to be upgraded at runtime without creating any disruption.
Nowadays the Internet routing system does not optimize for performance and often end up directing traffic along suboptimal paths. Even more frustrating, the Internet routing system is slow at computing these non-optimal decisions, and will get slower as it continues to grow. A recent survey we conducted in 2017 amongst 72 operators revealed that the Internet convergence time reaches 30 seconds on average during which traffic is often lost.
Our group works towards developing data-driven techniques for improving Internet path selection by building upon the capabilities offered by the new generation of programmable network devices. Specifically, we are developing scalable and safe (i.e. provably correct) techniques to enable programmable network devices to quickly detect performance problems across a large numbers of flows, dynamically evaluate alternative paths and reroute traffic accordingly.
Find out more
Today's networks are not strictly speaking "safe" places. New attacks on connected infrastructures are reported literally every day leading to loss of connectivity, reduced performance or violation of privacy. Moreover, while these attacks used to originate mostly from the Internet, nowadays however, the majority of them are performed by insiders, acting directly from within the network. The advent of the Internet-of-Things (IoT) obviously does not help — many of these devices have serious security vulnerabilities.
Our group investigates how we can build more secure networked systems by: (i) analyzing the effects of important attack vectors such as Internet routing attacks; and (ii) enabling the network itself to detect and mitigate insider attacks instead of relying purely on perimeter-based protection.