Moving the control function out of data plane elements is the main concept behind Software Defined Networking (SDN).
Features
· Decoupled Data and Control plane
Can Evolve Independently
· Can have different Network Topologies
· Can use Different Technologies
Why SDN ?
One Possible SDN Design: Push all the control functionality to a Centralized Controller
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.
Some more examples will be Hyper Flow and Kandoo.
Steps of Flow setup process
Steps involved in Converging on a link Failure
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