By separating control plane from data plane, software-defined network (SDN) adopts centralized controllers to manage data flows in the network. Nevertheless, the rapid growth of network service traffic requires a large number of controllers, reducing network performance due to the scalability constraint. Therefore, we consider distributed placement of controllers in wide-area network to construct a scalable SDN architecture, by taking service traffics, traffic propagation delay, and load balancing into account. Specifically, we first partition the network into several small sections (named SDN domains) and then place the least amount of controllers to a proper node in each domain. The architecture provides a control channel to deliver requested messages for each SDN domain, so it reduces the link delay (which is assumed to be proportional to the physical length of the link) between switches and SDN controllers. Unfortunately, it also introduces extra latency among controller sets at different SDN domain. Accordingly, we formulate an integer linear program to optimize network cost and performance by considering all those conflicting factors and propose an efficient heuristic algorithm called distributed SDN placement to solve the problem. Simulation results confirm that our proposed heuristic distributed SDN placement can achieve suboptimal solutions as compared with the integer linear program results.
KEYWORDScontroller sets (CSs), integer linear program (ILP), placement, scalability, software-defined network (SDN)