The Basics of Computer Networks: Software Defined Networking (SDN)
This is a multi-part series on DevOps 101. Access the complete DevOps series by clicking HERE
Access the The Basics of Computer Networks: Types of Network Architecture (Previous post in Networking) by clicking HERE
Access the The Basics of Computer Networks: Network Virtualization (Next post in Networking) by clicking HERE
Software-defined networking (SDN) is a networking paradigm that decouples the control plane from the data plane. In traditional networks, the control plane and data plane are tightly coupled, meaning that the control plane is implemented in the same hardware as the data plane. This makes it difficult to dynamically control and optimize the network.
SDN separates the control plane from the data plane by moving the control plane to a software-based controller. The controller has a global view of the network and can use this view to make decisions about how to route traffic. The data plane is still implemented in the hardware, but it simply follows the instructions of the controller.

The Planes of SDN
Software-defined networking (SDN) is a networking paradigm that decouples the control plane from the data plane. This allows for greater flexibility and agility in network management, as well as the ability to implement new features and services more easily.
The three planes of SDN are:
- The control plane is responsible for making decisions about how traffic should flow through the network. It does this by maintaining a global view of the network and using this information to create routing tables.
- The data plane is responsible for forwarding traffic according to the instructions of the control plane. It does this by inspecting the headers of packets and forwarding them to the appropriate destination.
- The management plane is responsible for managing the SDN infrastructure. This includes tasks such as configuring devices, monitoring performance, and troubleshooting problems.
The three planes of SDN are logically separated, but they communicate with each other through APIs. This allows for a high degree of flexibility and scalability, as the different planes can be implemented on different hardware or software platforms.
The Control Plane

The control plane is a key part of the software-defined networking (SDN) architecture. It is responsible for making decisions about how traffic should flow through the network. The control plane typically consists of a software controller that runs on a dedicated server or cloud platform. The controller has a global view of the network, which it uses to create routing tables. These routing tables are then used by the data plane to forward traffic.
The control plane also includes other functions such as:
- Policy enforcement: The control plane can be used to enforce policies across the entire network. For example, the control plane could be used to implement a policy that only allows certain types of traffic to flow through the network.
- Load balancing: The control plane can be used to load balance traffic across the network. This can help to improve performance and reliability.
- Security: The control plane can be used to implement security policies across the network. This can help to protect the network from unauthorized access and malicious attacks.
The control plane is a critical part of the SDN architecture. It allows for greater flexibility and agility in network management, as well as the ability to implement new features and services more easily.
The Data Plane

The data plane is a key part of the software-defined networking (SDN) architecture. It is responsible for forwarding traffic according to the instructions of the control plane. The data plane typically consists of network switches and routers that are configured to forward traffic based on the headers of packets.
The data plane is typically implemented in hardware, as this is the most efficient way to forward traffic at line speed. However, the data plane can also be implemented in software, which can be useful for testing and prototyping new SDN features.
The data plane performs the following functions:
- Forwarding: The data plane forwards traffic according to the instructions of the control plane. This includes inspecting the headers of packets and forwarding them to the appropriate destination.
- QoS: The data plane can be used to implement quality of service (QoS) policies. This can help to ensure that certain types of traffic, such as voice or video, are given priority over other types of traffic.
- Security: The data plane can be used to implement security policies. This can help to protect the network from unauthorized access and malicious attacks.
The data plane is a critical part of the SDN architecture. It is responsible for actually forwarding traffic, which is essential for the network to function. The data plane also offers a number of benefits, including improved performance, scalability, and security.
The Management Plane

The management plane is a key part of the software-defined networking (SDN) architecture. It is responsible for managing the SDN infrastructure. This includes tasks such as configuring devices, monitoring performance, and troubleshooting problems.
The management plane typically consists of a software management console that runs on a dedicated server or cloud platform. The management console can be used to configure devices, monitor performance, and troubleshoot problems.
The management plane performs the following functions:
- Configuration: The management plane is used to configure the SDN infrastructure. This includes configuring the control plane, the data plane, and the management plane itself.
- Monitoring: The management plane is used to monitor the SDN infrastructure. This includes monitoring performance, traffic flows, and security.
- Troubleshooting: The management plane is used to troubleshoot problems in the SDN infrastructure. This includes identifying and resolving problems with the control plane, the data plane, and the management plane itself.
The management plane is a critical part of the SDN architecture. It is responsible for ensuring that the SDN infrastructure is properly configured, monitored, and troubleshooted. The management plane also offers a number of benefits, including improved visibility, control, and flexibility.
Uses of SDN
- Improved performance: SDN can improve network performance by allowing for more efficient routing and traffic management. For example, SDN can be used to create traffic policies that prioritize certain types of traffic, such as voice or video traffic. This can help to ensure that critical applications have the bandwidth they need to perform at their best.
- Increased scalability: SDN can help to scale networks more easily, as it is easier to add new nodes and devices to an SDN network. This is because the control plane can be centralized, which makes it easier to manage and configure the network.
- Enhanced security: SDN can improve network security by providing a centralized view of the network and by making it easier to implement security policies. For example, SDN can be used to create security policies that restrict access to certain parts of the network. This can help to protect sensitive data from unauthorized access.
- Reduced costs: SDN can help to reduce network costs by simplifying network management and by making it easier to deploy new services. For example, SDN can be used to automate the provisioning of new network resources. This can help to reduce the need for manual configuration, which can save time and money.
In addition to these uses, SDN is also being used for a variety of other applications, such as:
- Cloud computing: SDN is being used to improve the performance and scalability of cloud computing networks. For example, SDN can be used to create virtual networks that are isolated from each other. This can help to improve security and performance.
- Internet of Things (IoT): SDN is being used to manage the networks that connect IoT devices. For example, SDN can be used to create policies that prioritize traffic from IoT devices. This can help to ensure that IoT devices have the bandwidth they need to operate.
- Telecom networks: SDN is being used to improve the performance and scalability of telecom networks. For example, SDN can be used to create dynamic routing paths that respond to changes in traffic patterns. This can help to improve network performance and reliability.
Components of SDN
- Controller: The controller is the brain of the SDN network. It is responsible for managing the network configuration and for forwarding traffic. The controller typically communicates with the switches in the network using a southbound API.
- Switches: The switches are the devices that forward traffic in the SDN network. They are responsible for receiving and sending packets, and they also maintain a flow table that stores information about how to forward packets. The switches typically communicate with the controller using a southbound API.
- Applications: The applications are the software that runs on the controller. They are responsible for managing the network configuration, for forwarding traffic, and for providing additional services, such as security and load balancing. The applications typically communicate with the controller using a northbound API.
- APIs: The APIs are the interfaces that allow the different components of the SDN network to communicate with each other. The southbound API is used to communicate between the controller and the switches, and the northbound API is used to communicate between the controller and the applications.
Architecture of SDN
- Application layer: The application layer is the top layer of the SDN architecture. It contains the applications that use the SDN network. These applications can be used to manage the network, to provide additional services, or to run applications that require network connectivity.
- Control layer: The control layer is the middle layer of the SDN architecture. It contains the controller, which is responsible for managing the network configuration and for forwarding traffic. The controller typically communicates with the switches in the network using a southbound API.
- Infrastructure layer: The infrastructure layer is the bottom layer of the SDN architecture. It contains the switches and routers that forward traffic in the network. The switches and routers typically communicate with the controller using a southbound API.
The three layers of the SDN architecture are connected using APIs. The southbound API is used to communicate between the controller and the switches and routers in the infrastructure layer. The northbound API is used to communicate between the controller and the applications in the application layer.
Models of SDN
- Open SDN: This is the most common model of SDN. It uses an open protocol, such as OpenFlow, to communicate between the controller and the switches. This makes it easy to deploy and manage Open SDN networks, and it also makes it possible to use different controllers and switches from different vendors.
- SDN by APIs: This model uses application programming interfaces (APIs) to communicate between the controller and the switches. This gives more flexibility to the network administrator, as they can choose the APIs that best suit their needs. However, it can also be more complex to deploy and manage SDN by APIs networks.
- SDN overlay: This model creates a virtual network on top of the physical network. This can be useful for applications that require a specific network topology or for applications that need to be isolated from the rest of the network. However, it can also add complexity to the network and can reduce performance.
- Hybrid SDN: This model combines elements of open SDN, SDN by APIs, and SDN overlay. This can be a good option for organizations that need the flexibility of SDN by APIs and the performance of open SDN.
Here is a table that summarizes the different models of SDN:
Model | Protocol | Flexibility | Complexity | Performance |
---|---|---|---|---|
Open SDN | OpenFlow | High | Low | High |
SDN by APIs | Custom APIs | High | High | Medium |
SDN overlay | Custom APIs | High | Medium | Low |
Hybrid SDN | OpenFlow, custom APIs | Medium | Medium | High |
Advantages of SDN
- Improved performance: SDN can improve network performance by allowing for more efficient routing and traffic management. For example, SDN can be used to create traffic policies that prioritize certain types of traffic, such as voice or video traffic. This can help to ensure that critical applications have the bandwidth they need to perform at their best.
- Increased scalability: SDN can help to scale networks more easily, as it is easier to add new nodes and devices to an SDN network. This is because the control plane can be centralized, which makes it easier to manage and configure the network.
- Enhanced security: SDN can improve network security by providing a centralized view of the network and by making it easier to implement security policies. For example, SDN can be used to create security policies that restrict access to certain parts of the network. This can help to protect sensitive data from unauthorized access.
- Reduced costs: SDN can help to reduce network costs by simplifying network management and by making it easier to deploy new services. For example, SDN can be used to automate the provisioning of new network resources. This can help to reduce the need for manual configuration, which can save time and money.
Disadvantages of SDN
- Complexity: SDN can be complex to implement and manage, as it requires a deep understanding of both the control plane and the data plane.
- Security: SDN can introduce new security vulnerabilities, as the control plane is a centralized point of failure.
- Vendor lock-in: SDN is still a relatively new technology, and there is no single standard for SDN. This can make it difficult to choose an SDN solution, and it can also make it difficult to move between SDN vendors.
- Latency: SDN can introduce latency, as the controller needs to be consulted for every network decision.
SDN vs Traditional Networking
Feature | SDN | Traditional Networking |
---|---|---|
Control plane | Software-based | Hardware-based |
Data plane | Hardware-based | Hardware-based |
Centralization | Centralized control plane | Distributed control plane |
Programmability | Highly programmable | Less programmable |
Flexibility | Highly flexible | Less flexible |
Security | Improved security | Less secure |
Scalability | Scalable | Less scalable |
Cost | More expensive | Less expensive |
More great stuff related to networking coming soon! Stay tuned and share and subscribe for more!
Access the The Basics of Computer Networks: Network Virtualization (Next post in Networking) by clicking HERE
Access the The Basics of Computer Networks: Types of Network Architecture (Previous post in Networking) by clicking HERE
This is a multi-part series on DevOps 101. Access the complete DevOps series by clicking HERE