Software Defined Networking, abbreviated as SDN, is an approach to networking that separates the control plane from the data plane. This architecture allows for the management and configuration of the network by administrators through software rather than through hardware. Overall, SDN allows for easier scaling and management of the network and consequently allows the development of better network automation capabilities. Further, similar to how virtualization revolutionized the utilization of compute systems, SDN in conjunction with NFV (Network Function Virtualization) better utilizes the compute systems for networking.
Before diving into the technical details of SDN, one needs to understand the difference between the control plane and the data plane.
Control plane vs Data plane
The control plane is a subset of the network that deals with functional traffic. The functional traffic includes those packets and protocols used to learn about the network and use that information to handle and route packets coming to it. For example, the L3 (OSI level 3 — network layer) network switches exchange OSPF packets in the control plane and use this information to learn about the network and evaluate the next hop for packets flowing in the data plane. The data plane is the other subset of the network that deals with consumer traffic. The consumer traffic includes those packets that are exchanged for business purposes. For example, an HTTP packet from a computer to a hashnode.com server asking for the Hashnode blog home page runs on the data plane.
Analogies for control plane vs. data plane
The time spent to chart an action plan happens in the control plane, while the time spent executing the action plan happens in the data plane.
In a business setting, the services and money involved between the organization and the employees happen in a control plane. While the services and money involved between the organization and the customers happen in the data plane.
In a computer systems setting, the CPU utilized by the Operating System happens in the control plane, while the CPU utilized for user processes happens in the data plane.
Traditional Network vs Software-Defined Network
In a traditional network, the control plane traffic and the data plane intersect significantly as shown in the illustration below. The brain of the network is distributed across different network devices, and they work in tandem to move packets in the data plane from one end to another end.
While in SDN the control plane is separated from the data plane as shown in the illustration below. The brain of the network is centralized at the SDN controller. The SDN switches and routers consult the SDN controller to determine what action to take for this packet.
To avoid burdening the SDN controller for every packet by every switch, the SDN controller could install rules in SDN switches and routers which could be of the (simplest) form (in the RYU controller):
if(condition X) perform action Y
For example, condition X can be, the packet is entering the port swt0
and the corresponding action Y can be packet should exit port swt1
. This way whenever an SDN switch that has the above rule installed receives a packet from the port swt0
it would route the packet to port swt1
without consulting the SDN controller.
That is a short introduction to Software Defined Networks. I hope you gained a basic understanding of how SDN is different from traditional networks and what are the basic constructs and components of an SDN network.