Networking | Programming | Security | Linux | Computer Science | About

Understanding Software-Defined Networking

The term Software Defined Networking was originally created based on the idea and work of OpenFlow to refer to a network architecture where the packet forwarding states in networking devices are managed by a separated controller. With the development of SDN technologies, the networking community has broadened the notion of SDN and tends to refer to anything that involves software-based network control as being SDN. The Open Networking Foundation (ONF) has provided an explicit and well-received definition of SDN as follows: “Software-defined networking (SDN) is an emerging network architecture where network control is decoupled from forwarding and is directly programmable”.

Key Objective of SDN

A key objective of SDN is to provide open interfaces that enable the development of software that can define the data forwarding and processing operations performed by a set of network resources on traffic flows. In order to achieve the objective, SDN separates the control functions and data forwarding functions, and relocates network control to a dedicated element called an SDN controller. The SDN controller provides an approach to controlling and managing network resources through software that are typically called SDN applications. Therefore, key components of the SDN paradigm can be organized into three groups: the data plane, control plane, and application plane.

The Data Plane

The data plane comprises distributed network resources that perform functions of data transport and processing. Network elements on the data plane expose their capabilities and resource states to the control plane via a standard interface. The behaviors of data plane resources are directly controlled through this interface. The SDN controller manages distributed network resource states and provides a global abstract view of the data plane to the application plane via another standardized interface. The SDN applications specify their networking requirements to the controller and define operations of the abstracted network resources through this interface. The SDN controller translates applications’ requirements to low-level control instructions that may be performed by the network elements on the data plane.

Architectural Principles

The SDN concept is based on the following architectural principles:

Resource Abstraction

A fundamental idea of the SDN paradigm lies in resource abstraction. Abstraction is an essential method of research in computer science and information technology that has already been employed in many computer architecture and system designs. Resource abstraction is a key capability for supporting network programmability. Information and data models are means to provide an abstracted view of the underlying network resources to SDN applications, so that application developers can simplify their program logic without the need for detailed knowledge of the underlying network resources and technologies.

SDN is expected to provide abstractions from the following three aspects: forwarding abstraction, distribution abstraction, and specification abstraction. The forwarding abstraction should allow any forwarding behavior required by the network controller (and applications) while hiding details of the underlying data plane operations. An SDN controller acts as a driver to data plane switches to support this abstraction. The distribution abstraction shield network control and management functions from the distributed resource states, thus transforming distributed control problems to logically centralized problems. SDN controllers realize such an abstraction by collecting state information about data plane devices to form a global network view. The specification abstraction should allow a network application to express the desired network behaviors without being responsible for implementing those behaviors by itself. Network programmability provided by SDN controller allows the abstract configurations expressed by network applications to be mapped to physical configurations of data plane devices, thus supporting the specification abstraction .

Published on Fri 21 May 2010 by Adi Wagstaff in Networking with tag(s): sdn