| With the rapid development of science and technology, the scale of.networks is becoming larger and larger. An increasing number of functions and protocols are added to the network equipments, making the network become more closed. As a result, traditional networks are complex and difficult to be managed, hindering the innovation of the network. SDN is a newly-developing technology, and it puts forward a new concept of network architecture. The core ideas of SDN are the separation of the control plane and data plane, the implementation of the programmable interfaces and the centralization of the network controlling. These advantages of SDN promote the network innovation by making it programmable and extendible.Controller is the core of SDN. It manages all the network devices in data plane, and offers resource schedualing for the upper-layer applications. Therefore, the reliability, efficiency and scalability of the network controller are the premise for keeping SDN in normal operation. The operators’networks have large scale coverage, complex protocals, huge amounts of information and traditional rigid closed model. Therefore, they need a network with high reliability and stability. However, the existing controllers cannot meet the efficiency and reliability requirements for the network operators.A modular SDN controller is designed and implemented according to the characteristics of the operators’ networks. Hierarchical architecture is used in the controller which is programmed by C langurage. The controller uses optimized working process, efficient routing algorithm, static memory allocation strategy and multithreaded techniques to improve the performance. In addition, the controller communicates with the underlying devices using the Openflow-based southbound interfaces. The REST API-based northbound interfaces are used to cooperate with OpenStack which is the data center management platform. Moreover, ZooKeeper and HBase technologies are applied in the east-westbound interfaces of the controller in order to realize the high availability of the controller cluster.In this dissertation, firstly the author studies related techniques of the SDN controller, such as the implementation of SDN system, typical architecture, OpenFlow protocol and multiple implementation techniques for SDN controllers. Secondly, the detail solution of the SDN-controller, which the author participated in the designing, is introduced in detail. The solution includes the controller architecture, function modules and interfaces system. Moreover, the author focuses on the research, design and implementation of the controller’s working logic, link discovery module, topology module and routing algorithm. Finally, a real SDN environment was set up to test the function and performance of this controller, using tools like Open vSwitch, Mininet and Cbench. The testing result shows that the controller has high availability and high performance. |