Tutorial on Software‐defined Networking

Software‐defined networking is currently a big trend in networking with strong support from both academia and industry (e.g., Google, NEC, IBM, Cisco, HP, VMware, etc.) giving applications and middleware systems more control over the communication network.
The basic concept of SDN is the separation of network control (control plane) and forwarding functionality (forwarding plane). The control plane is implemented by a controller hosted on a server, which programs the forwarding tables of switches to define communication “flows” in the network. Formerly distributed control logic like distributed routing algorithms are replaced by logically centralized control based on a global view onto the network.
SDN promises various advantages:
Great flexibility – Rather than relying on “hard‐coded” protocols and control logic implemented by the switches (in firmware), the control logic is implemented in software than can be easily changed through the controller. This concept also enables applications or middleware systems to “program” the network according to their specific needs like security or quality of service requirements and using application layer metrics such as end system load.
Ease of implementation and testing – Network control is greatly simplified by the concept of logical centralization and the global view onto network resources. Network control logic can be implemented using modern programming languages such as C++, Java, or Python, and utilizing powerful integrated developing environments like Eclipse. Instead of falling back to network simulation, the actual control logic implementation can be tested and debugged more easily using network emulation. Moreover, centralized control facilitates the verification of control logic compared to distributed protocols, and enables stricter notions of consistency during network updates (strict vs. eventual consistency).
High performance – Although control functionality is implemented in software, packet forwarding can utilize the hardware support of switches enabling low‐latency forwarding and line‐rate throughput. Moreover, network resources can be optimized based on a global view onto network resources, and the time to react to link and switch failures can be reduced.
With OpenFlow, a standard protocol for SDN is available that is implemented by hardware switches from major vendors like NEC, IBM, Cisco, or HP and software switches like Open vSwitch as used in data centers to connect virtual machines. Moreover, several open source controller implementations are available, e.g., OpenDaylight (Java), Floodlight (Java), NOX/POX (C/Python).
The goal of this tutorial is to introduce the audience to the basic concepts of SDN, to provide the basic practical knowledge to program software‐defined networks using OpenFlow, and to demonstrate how applications and middleware systems can benefit from utilizing SDN.
In more detail, the following topics are addressed in this tutorial:
  1. Basic SDN concepts: Control plane/data plane separation; SDN architectures; logical centralization
  2. Introduction to the OpenFlow protocol (southbound interface between controller and switches): Definition of flows and flow tables; configuration of flow tables; monitoring network state
  3. Programming SDNs using the OpenDaylight controller (Java‐based) as prominent example supported by major companies: REST interfaces for proactive flow programming; module (OSGI) interface for reactive flow programming
    • Applications of SDN (network‐supported applications and middleware systems), e.g., optimizing communication middleware (event service), or load balancing
Target audience of the tutorial: practitioners, students, researchers
Technical background of the audience: basic knowledge about networking and programming, e.g., C/C++, Java, or similar languages.

Dr. rer. nat. Frank Dürr
Dr. rer. nat. Frank Dürr

Dr. rer. nat. Frank Dürr

Frank Dürr is a postdoctoral (senior) researcher and lecturer at the Distributed Systems Department of the Institute of Parallel and Distributed Systems (IPVS) at University of Stuttgart. He received his doctoral degree and diploma in computer science, both with distinction, from University of Stuttgart. Frank Dürr has been with the IPVS since 2001, first during his PhD studies investigating geographic communication mechanisms (geocast protocols), and then as senior researcher leading the mobile context-aware systems group of the Distributed Systems Department. He is managing and coordinating the research projects of this group, co-supervising PhD students associated with these projects, and doing research in the research areas of these projects. Moreover, he was technical coordinator of the Collaborative Research Center 627 “Nexus: Spatial World Models for Mobile Context-Aware Applications” funded by the German Research Foundation (DFG).
Dr. Boris Koldehofe
Dr. Boris Koldehofe

Dr. Boris Koldehofe

Boris Koldehofe is the managing director of the DFG Collabortive Research Centre MAKI at TU Darmstadt. Formerly he worked as senior researcher and lecturer at the IPVS of the University of Stuttgart and postdoctoral researcher at the EPFL. He obtained his Ph.D in 2005 at Chalmers University of Technology. He has extensive research and teaching experience in the area of Distributed Systems and Algorithms. In particular, he has focused in the past adaptive communication middleware and distributed event-based systems.