Load balancing of software-defined network controller using genetic algorithm

A software-defined network (SDN) provides flexible network management using centralized and open control. It separates the control and data planes, and the controller is responsible for the control plane. Network administrators can apply new services to their network and expand or downscale it by programming the controller. Switches communicate with controllers through an OpenFlow protocol to synchronize and receive a flow table. When there are considerable requests for routing information from multiple switches to a controller, the controller overflows and the performance deteriorates. OpenFlow allows the use of multiple controllers in the network to solve this problem. All the controllers should be well balanced to avoid failure of a heavy-loaded controller. In this paper, we suggest a loadbalancing algorithm based on a genetic algorithm. If controller load is not well balanced, our algorithm performs selection, crossover, and mutation to determine optimal load balancing.