SDN Architecture and Components

Software-Defined Networking (SDN) is an innovative approach to network architecture that separates the control plane from the data plane and provides centralized control and programmability to networks. SDN simplifies network management, improves scalability, and facilitates network automation. In this article, we will delve into the architecture and components of SDN.

SDN Architecture

SDN architecture is built around three key components: the application layer, the control layer, and the infrastructure layer.

Application Layer

The application layer in SDN is where network applications reside. These applications could include network monitoring, traffic engineering, security, load balancing, and more. The applications leverage the programmable nature of SDN to control and manage the network according to specific requirements.

Control Layer

The control layer is responsible for managing and controlling the network. At this layer, the SDN controller plays a vital role. The SDN controller acts as the brain of the network, receiving information from the application layer and translating it into instructions for the infrastructure layer. It is responsible for making real-time decisions about how network traffic should be handled. The controller communicates these decisions to the network devices through a protocol called OpenFlow.

Infrastructure Layer

The infrastructure layer comprises physical and virtual network devices such as switches, routers, and access points. These devices make up the data plane and are responsible for forwarding network traffic based on the instructions received from the control layer. In an SDN architecture, these devices are often called forwarding elements. Unlike traditional networking, where network devices have embedded control logic, in SDN, the control logic is centralized in the SDN controller.

SDN Components

To facilitate the architecture, various components work together in an SDN environment. Let's explore some of the key components:

SDN Controller

As mentioned earlier, the SDN controller is a critical component of the control layer. It is responsible for managing and controlling the network devices. The controller receives instructions from applications, communicates with network devices through OpenFlow or other protocols, and maintains a global view of the network.

OpenFlow Protocol

The OpenFlow protocol enables communication between the SDN controller and the network devices. It standardizes the way the controller and devices exchange information. OpenFlow allows the controller to instruct network devices on how to handle packets and defines commands like add, modify, or delete flows within the forwarding elements.

Forwarding Elements

Forwarding elements include switches, routers, and other network devices that form the infrastructure layer. These devices receive instructions from the SDN controller and forward packets accordingly. The forwarding elements are responsible for packet forwarding, traffic filtering, and other network functions. They adhere to the instructions provided by the controller and ensure proper transmission of network traffic.

SDN Applications

SDN applications are software programs that run on top of the SDN controller. These applications leverage the programmability of the network to provide various network services. SDN applications can be developed by third-party vendors, network administrators, or researchers, allowing for easy customization and extension of network capabilities.


SDN architecture and its components provide a flexible and scalable approach to network management. By decoupling the control plane from the data plane, SDN allows for centralized control, improved automation, and dynamic network configuration. Understanding the different layers and components of SDN is essential for grasping the potential and possibilities of this transformative networking paradigm.

noob to master © copyleft