Software defined networks
Computer networks currently undergo a phase transition. By outsourcing and consolidating the control over network elements to a logically centralized software controller, the Software-Defined Networking paradigm introduces programmability and unprecedented flexibilities in how computer networks can be operated and reasoned about. In particular, Software-Defined Networks (SDNs) are currently deployed, e.g., in data centers (for network virtualization) as well as in Wide-Area Networks (for improved bandwidth utilization or efficient failover). The standard SDN protocol today is OpenFlow, and is based a match-action paradigm: the controller installs rules on the OpenFlow switch which consist of a match and an action part. The match part can be defined over multiple packet header fields (Layer-2 to Layer-4) and beyond, and packets matching these rules are subject to the corresponding actions (e.g., forward to a port, drop, or change header field).
Being a relatively new paradigm, Software-Defined Networks pose many research questions. For example, regarding the control plane: while the controller is logically centralized, for performance and fault-tolerance reasons, it is physically distributed. However, today, we still do not have a good understanding of how to design efficient and highly available distributed control planes. But there are also research challenges in the data plane: while SDN outsources much of the switch/router logic to the controller, for efficiency reasons, some functionality should remain in the data plane, e.g., for local fast failover. Which functionality should be located where and how to optimally exploit these functionalities, is discussed intensively today. But also the decoupling of the control plane from the data plane itself poses challenges: for example, the controller may miss important events occurring in the data plane, or messages communicated from the controller to the switches may take effect in an asynchronous manner, introducing consistent network update problems.
More generally, with our research we aim to understand how to algorithmically exploit the opportunities introduced by SDN, while understanding its limitations and ensuring a correct and formally verifiable network operation. Indeed, formal verifiability is considered a key feature of the Software-Defined Networking paradigm, and accordingly, we also develop models, formal languages as well as verification tools for SDNs.