Active and programmable networks were a popular research area over 20 years ago but eventually faded due to the lack of adoption by the industry that was at the time focusing almost exclusively at increasing bandwidth capacity.
All this has now changed: resource virtualisation allows the efficient sharing of the physical infrastructure; and network operators and service providers now try to differentiate based on services they offer over virtualised infrastructures. In this new landscape, Software-Defined Networking (SDN) has emerged over the past decade as a new paradigm for dynamically-configured next generation networks, and has already been embraced by equipment vendors and service providers (e.g., Google, Facebook, etc.).
Fundamental to SDN has been the idea that a network’s entire control plane is logically centralised and abstracted from individual switches which are stripped from their legacy functionality to reduced complexity devices that are configured through an established API (e.g., OpenFlow). This mode of operation demonstrated the great potential of SDN but also highlighted shortcomings in real-time packet processing: the (simplified) SDN switches are not capable to make stateful, per-packet decisions at line-rate and hence to implement advanced services such as telemetry, intrusion and anomaly detection, and in-network compute acceleration. For this reason, over the past five years, a significant fraction of SDN research has been steered towards making the dataplane of individual switches itself programmable and independent of specific protocols like OpenFlow. This way, using domain-specific programming languages (e.g., P4), packet processing programs can be composed and execute on the switch, making the device itself programmable and able to support custom functionality at high-speeds.
So, research has been fragmented and focusing either on service orchestration through a network-wide control-plane or on the programmable dataplane of individual switches with a very limited and sometime device-local control plane, with relatively very few studies tackling both.
The overarching objective of this PhD project is to look at these two areas in synergy, and devise network-wide control plane(s) able to orchestrate individually-programmable and potentially diverse dataplanes for the development of advanced and high-speed services over heterogeneous networked infrastructures. The work will entail experimental research in protocols and languages for network programmability, in switch architectures, and the software-hardware interface. It will explore platform-independent language representations and runtimes (e.g., bytecodes and intermediate representations) that can allow custom pipelines on the switches without requiring the manual extension of protocol fields to support new functionality and at the same time offer bound data forwarding performance independent of bespoke hardware support. The work will also include the design of exemplar time-critical services that will benefit from such underlying network architecture.
The research will be conducted as part of the Networked Systems Research Laboratory (netlab) at the School of Computing Science and the student will be given access to a state-of-the-art SDN testbed with fully programmable platforms at all software and hardware layers. Through the strong experimental nature of this project, the student will contribute to a currently buzzing research area, and will be equipped with highly demanded expertise in Software-Defined Networks, and next generation network architectures.