In a traditional network switch, the packet forwarding (done by the data plane) and the high-level routing decisions (done by the control plane) occur on the same hardware or device. The purpose of SDN (Software-defined networking) approach is to separate the system that makes decisions about where the traffic is sent or the high-level routing decisions (the control plane), from the system that actually sends or forwards the traffic (the data plane).
The concept of separating the control plane and the data plane is not new, and is being implemented in technologies like network virtualization. This concept of separating out the control and data plane helps in reducing the network latency. The control plane functions like prioritizing, de-prioritizing, shaping, blocking and routing of traffic are performed by a centralized control console in a flexible and more efficient manner. The data forwarding functions are taken care by the less expensive switches. The communication between the two systems, i.e. control console and the switch is done using the Open Flow protocol. This protocol allows the control console to tell the switches where to send packets.
Decoupling the network control planes and forwarding planes is not the only definition for SDN. A new definition of SDN on which most of the network equipment vendors are working these days, focuses more on providing programmatic interfaces or APIs into their network equipment.
The older definition of SDN, limited its advantage to reducing the network latency. The latest explanation of SDN however broadens its scope. Providing APIs will help IT organizations to replace the manual interface into network equipment with a programmatic interface that will help in automation of tasks such as configuration and policy management and can also enable the network to dynamically respond to application requirements.
SDN will combine the benefits of hardware and software across physical and virtual offerings. It will make our network and applications to work together. Those applications can be executed from virtual machines hosted on cloud software.