SDN - Overview
SDN stands for 'Software Defined Network'. When we say 'Software Define Something', it usually mean a system or a component implemented in software and in conventional way, that system/component used to be implemented in Hardware or configured by human intervention (manually). Applying this to SDN (Software Defined Network), the term SDN implies that we want to implement a Network (or Network Components) by software and those component used to be implemented hardware or configured by human intervention.
Then you may ask 'which part of Network will be replaced by Software in SDN ?' How ? and Why ?
Just keep these questions in mind and follow along following sections and the answer gradually emerge.
What is the typical structure of current network ?
Before we talk of the new system (SDN), let's briefly think of how we implement and configure the network in current (conventional) way.
In a very simple representation, a network can be represented as a lot of switches (routers) connected together to form a fishing net or spider web like architecture.
Each componet (Switch in this case) is made up of roughly two parts. One part is for forwarding a packets from a port to another port and the other part is for setting up various information/configuration that directs how those packets should be forwarded.
This is very simple (oversimplified in some aspect) description of the networking with current (conventional, non-SDN) switches/routers. Getting into a little bit further details, followings are considered as characterisfics of the network based on conventional switch/routers. Most of these are targets to be improved in the new network called SDN.
How do we configure (change configure) in conventional (non-SDN) network ?
Now let's suppose that we need to change the configuration of a network to optimize it for a specific purpose or specific use model. The most typical way would be to dispatch tech people to the location of each switch and configure each of the switch manually.
What is problem with the current (conventional) way ?
If they are only a few switches/routers that you need to reconfigure, there wouldn't be much problem. Or even if you need to reconfigure much more of them (like hundreds or thousands), that may be tolerable if it happens very seldom (like once or twice a year), but there are many cases where these kind of manual/local reconfiguration become impractical or almost impossible. Some of these cases would as follows (Most of these items are based on Ref ):
You can see a couple of examples of this kind of problem with conventional network in the video (Around 5 min at the beginning of Ref )
How do we configure (change configure) in SDN network ?
Naturally, you would come up with a question. How do we cope with those issues listed above ? The new technology that came out to cope with these issue was SDN (Software Defined Networking). The fundamental idea on SDN can be illustrated as shown below. It is to setup a centeralized Control Center and hook up all the individual network components to the centeralized Control Center. And then, configure those individual components remotely with software technology.
What is to be done to realize SDN ?
It may sound good and easy. But 'sound easy' does not always mean 'easily doable'. There will be many things to be done first in order for SDN to be realized. Followings are a couple of things you have to consider first
One best known control protocol and tools to handle these issue are OpenFlow (I will handle about OpenFlow in a separate page)
 Stanford Seminar - Software-Defined Networking at the Crossroads : A Lecture from an early inventor of SDN