Software Defined Networking, popularly known as SDN, is an umbrella term that covers several kinds of network technology aimed at making networks more dynamic and flexible. The main goal of Software Defined Network is for the network to be open and programmable. Let’s say an organization requires a specific function in their network such as traffic management, security, routing, switching, monitoring, load balancing, etc.
Using SDN, they can develop an application to carry out these functionalities. The core of SDN is creating an environment where this type of flexibility can exist.
Why is SDN required?
Managing a vast network is an intensive task, both regarding labour and time. A large network uses a mixture of devices such as routers, switches, access points for clients to connect, etc. A network has two main goals.
The first is to transfer data from one point to another while the second is to manage the flow of that data. Consider you are streaming a video hosted in California while sitting in Georgia. Routing the data through Europe and Japan would not be efficient and will introduce delays.
While transferring the data, it is essential to find the optimum route to transfer the data. At the same time, if there is a physical failure between Georgia and California, the data might have to be rerouted to ensure delivery.
One way to handle the routes is to install firmware on each physical device that decides the next node in communication. However, this is very rigid and time-consuming.
This is where Software Defined Networking comes into the picture. Assume that you have all the nodes in the network physically connected. SDN acts as a virtual switch or router in conjunction with the physical network devices.
Instead of each switch/router deciding on the next node in the route, they will receive instructions from an external device/software. This makes the network very flexible as changes can be made to the existing system remotely and on the fly.
How does SDN work?
For a more natural understanding of Software Defined Networking, a network can be divided into two parts – a data plane and a controller. A data plane consists of the physical devices in the network such as routers and switches, which carry out the actual process of data transfer.
Here a controller is considered the “brains” of the network. It relays information to switches/routers and performs functions such as optimizing data routes, traffic management, handling physical failures, etc.
In a nutshell, a controller instructs how data should be routed in a physical network (data plane).
Technology Standard for SDN – OpenFlow
OpenFlow (OF) is the first standard developed for SDN. This standard defined the communication protocol in SDN environments that enables the controller to interact with the device in the data plane directly so that it can adapt to changing requirements.
To work in an OpenFlow (OF) environment, all devices must support “OF” protocol to be able to communicate to an SDN Controller. The OF protocol provides an interface for the controller to push down changes to switch/router flow-tables.
This allows network administrators to optimize performance by controlling flows, partitioning traffic and also to test any new applications or configurations.
Several big companies such as IBM, Google and Hewlett Packard (HP) have either used or announced the intention to use the OpenFlow standard. By early 2012, Google’s internal network fully utilized OpenFlow network protocol.
OpenFlow standard has made its way in commercial use as well. Big Switch Networks is an SDN firm stationed in Palo Alto, California. It has implemented OpenFlow networks that can smoothly run on top of traditional networks.
With SDN, you can place virtual machines anywhere in a data centre and use them to reclaim any stranded computing capacity.