SDN: Introduction, Working, Architecture
6. CONTROLLER
Among the three layers of SDN architecture, controller resides in the control layer. It is the main part of SDN that works between network devices and various applications which provide a programmatic interface to the network. An SDN controller has the sole responsibility to manage the network protocols, policies and establish the network path of a flow by installing flow rules on the network devices.
6.1 Implementation Structure
An OpenFlow switch can establish a secured connection between a single controller and multiple controllers. The usage of multiple controllers in SDN, basically addresses two major issues: system failover and load balancing. In a typical SDN network scenario the controller runs on a network-attached server. The implementation structure of SDN controller follows either centralized or distributed structure. Single point of failure is a problem to the centralized structure hence to allow for the backup process, OpenFLow introduced multiple controller connections for a single network device. Thus the idea is to maintain a logically centralized but physically distributed control plane . This mechanism reduces the overhead of the local controllers but the centralized view of the entire network can be achieved through specific applications.
6.2 Flow-setup Mode
There is two flow set up modes i.e. proactive and reactive modes are followed by the controller. In proactive flow setup mode, the flow rules are installed in the flow table before the processing of the packet of a flow start. The flow entries of the table installed before the first packet of a flow arrive to the switch. In proactive mode, since the flow rules are pre-installed in the device, the flow setup delay and the controller to the device is minimized. But the disadvantage is,it may overflow the flow table since it does not require the prior knowledge of the flow table size. On the other hand in reactive flow setup, as soon as the first packet reaches to the switch the flow rules are established in the flow table by the controller. In a regular time interval, the flow rules become inactive, hence drain out the previous rules from the flow table is essential. Upon getting a flow setup request, the controller checks the policies of the flow and takes the decision what action has to be taken. Among many commercially available controller, NOX was the first OpenFlow based single threaded controller. The controllers′ performance can be measured by testing the number of flow request handled per second and time taken to respond to these request.