What is Software Defined Networking?
If you have been paying a lot of attention to networking trends in recent times, you have with no doubt seen the name Software Defined Networking(SDN) pop up a couple of times.
It is mentioned alongside other largely vaguely understood networking concepts such as Network Virtualization and Cloud computing. This article aims to clear one or two things up by explaining what exactly SDN is.
SDN in it's most fundamental is a concept used to give a network engineer more power and control over the network. This enables customization according to business needs, optimization and development of the network without too many of the constraints that were present in the traditional networks.
By definition, SDN is the decoupling of the control plane and the data plane. But what exactly is the control plane and data plane? To understand this we need to first understand how the networking equipment work.
Networking devices work in a manner that is not too hard to understand. When a networking device(router or switch) receives a packet, it has to first analyze the packet. This involves looking at the header and carrying out the necessary protocols and procedures that need to be taken. The protocols and procedures include routing protocols (OSPF, EIGRP etc), switching algorithms(Spanning Tree), management procedures (Access Lists) and so much more. Basically it analyzes the packet and finds out what is the needed action to be done. This is basically the brain of the networking device. The networking device will then perform a specific action on the packet based on the results from the brain. It may drop, multicast, unicast, broadcast, modify header then multicast etc. based on the output from the brain. This is basically the muscle of the routers and the switches. This just waits for output from the brain before it takes any action.
The brain of the networking devices(routing algorithms, Access Lists...), that is the control plane. The muscle of the system (pushing packets, dropping packets...) is the data plane. That needs to be clearly understood before we go on. Therefore, SDN basically separates the brain and the muscle of the networking devices.
As you can see, the control plane(brain of the network) is something that can be programmed. A routing algorithm, for instance OSPF uses Djikstras algorithm which can be programmed. SDN therefore takes all this thinking to a central place, the controller. The networking devices will henceforth only have to forward, modify or drop the packets based on what the controller tells them.
Next, I will be having a look at Openflow, a protocol that enables communication of these networking devices and the controller (which is basically a server)
It begins with the understanding of field programmable gate arrays (FPGA).