Software Defined Networking (SDN)

Moving the control function out of data plane elements is the main concept behind Software Defined Networking (SDN). 

http://3.bp.blogspot.com/-gcCGtyMzhX0/UlbUZnTi-WI/AAAAAAAAAxU/Qg5G7nbsgjk/s1600/SDN1.webp



Features

 

·         Decoupled Data and Control plane                                            

       Can Evolve Independently

·         Can have different Network Topologies

·         Can use Different Technologies

 

     Why SDN ?

http://4.bp.blogspot.com/-PdqKBUBzT_A/Ulbaqn8RegI/AAAAAAAAAyQ/KTetIBhVqrE/s1600/y.webp

 

 

One Possible SDN Design: Push all the control functionality to a Centralized Controller

 

http://3.bp.blogspot.com/-rVA9DHGPyFY/UlbZGQmuhcI/AAAAAAAAAx0/RNfxOk_5um0/s1600/flow.webp



But Controller may become the Bottleneck in this kind of a setup. As the network grows there will be more events and requests sent to the controller. At some stage controller unable to handle all those requests. In a typical design we may go up to about 30k requests per second which will be sufficient for a sizable enterprise. But we can’t go for Data-centre like environment with this setup. 

 

 

How we can overcome?

·         Level Parallelism in multicore systems

·         Improve I/O performance

·         Reduce the number of requests forwarded to controller: Short lived packets will be handled in the data path. Only larger flows are forwarded to the controller.

Another possible SDN Design: Distribute state and/or Computation of the Control Functionality over Multiple Controllers

Having a centralized view is by no means an intrinsic characteristic of SDN. All we need is a unified network wide view to get benefits of SDN. Following are few examples of such implementations.

 

Onix

NIB (Network Information Base): Holds a collection of Network Entities, each of which holds a set of key-value pairs. If a state changes such as adding new switches and ports will be registered in the NIB.

 

http://4.bp.blogspot.com/-6QF-8DCtE8w/UlbVBRIEytI/AAAAAAAAAxs/LnqY85yUdzs/s1600/onix.webp




Some more examples will be Hyper Flow and Kandoo.

 

Steps of Flow setup process

http://1.bp.blogspot.com/-ilgupR_mJ5s/UlbUgzLVCaI/AAAAAAAAAxc/IGDnnCgiVZA/s1600/flowsetup.webp

 

Steps involved in Converging on a link Failure

 

http://3.bp.blogspot.com/-AocluRZPybE/UlbUvLq_NOI/AAAAAAAAAxk/xFaPysL6gfs/s1600/linkfail.webp

 

Resiliency to failures and convergence time are key concerns in Network Performance. If we use a single controller, resiliency to failures will be a major issue. We can use multi-controller networks with appropriate controller discovery mechanisms.

 

SDN @ Different Network settings

·         Data Centres

o   Thousands of Switching Elements

o   Grow at a fast rate

o   Large number of requests for controller

o   Use Kandoo, Onix or Hyper Flow

 

·         Service Provider Networks

o   Don’t have as many switches as in Data centres

o   Partition into separate groups