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.
The SDN concept is based on the following architectural principles:
Decoupling network control and management from data forwarding and processing: The purpose of this principle is to permit independent development and deployment of network control/management functionalities and data forwarding/processing capabilities. Decoupling between control/management and data forwarding/processing makes logically centralized control possible. Decoupling also allows for separate optimization and lifecycle management for data plane technologies and network control mechanisms. An important consequence of the decoupling principle is the separation of concerns introduced between definition of network policies, their implementations in network devices, and the forwarding actions performed on traffic. The separation of concerns plays a key role in enabling the desired network flexibility, breaking networking problems into tractable pieces, simplifying network control and management, and facilitating network evolution and innovation.
Logically centralized network control: The centralized control principle allows network resources to be utilized more efficiently when viewed from a global perspective. A centralized SDN controller can abstract the distributed states of data plane resources to form a global network view, upon which control applications can program the underlying network infrastructure. A centralized controller may orchestrate resources that span multiple network elements and thereby offer better abstraction than if it could only abstract subsets of individual elements. It is worth noting that the logically centralized SDN control plane might have a distributed physical implementation in order to meet the challenges of scalability, reliability, performance, and security in large scale networks.
Programmability of network services: Network programmability permits application software to program data plane operations through the SDN controller. The centralized control platform in SDN enables a programmable API to the controller. Through this API, applications may exchange information with an SDN controller in order to specify their service requests and achieve agile control of service states provisioned by network resources on the data plane. The programmable API to SDN controller allows applications to express their desired network services but leave the service realization and real-time resource optimization to the SDN controller. The network programmability principle decouples service provisioning from specific data plane operations, thus allowing SDN applications to be developed independently with the underlying network infrastructure.
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