Abstract:
Controller Placement Problem (CPP) is a promising research interest in the field of Software Defined Networking (SDN). SDN decouples the network layer of the traditional network model into a control plane and a data plane. The control plane consists of controllers that provide the routing decisions for the switches. CPP places an optimal number of controllers in the network so that the data transfer throughput of the network is maximum, which is NP-Hard. For years, several impressive solutions have been proposed with a goal to create an optimal network for SDN, one of such solutions is Density Based Controller Placement (DBCP). DBCP clusters the network based on the local density of the switches. DBCP uses hop count to calculate the latencies between switches and minimizes the overall latency, so it works with unweighted graphs. However, an unweighted graph is not a good representation of a real network. In this paper, we propose four algorithms, where three are inspired by SPICi, a protein-clustering algorithm of Bioinformatics and they work on weighted graphs. Our algorithms cluster a network based on the maximum connectivity of the nodes and then uses the local search technique to improve the clustering in terms of latency in polynomial time complexity, and our simulation results show that our proposed algorithms outperform the existing algorithms in terms of latency.
The CPP also aims to minimize different latencies like flow-setup latency and route- synchronization latency. In recent years, many solutions to the CPP have been proposed– some approaches work with a single parameter like the total delay of a network, reliability, load balancing, etc., while some other approaches provide exhaustive solutions which optimize multiple parameters. However, very few researches propose non-exhaustive solutions which simultaneously optimize more than one parameter. We propose another novel controller placement algorithm which clusters the SDNs in polynomial time complexity.
Our proposed algorithm Degree-based Balanced Clustering (DBC) minimizes overall flow-setup latency as well as route-synchronization latency and balances the loads of the controllers at the same time. DBC divides a network into several clusters, places a controller in each cluster, and also selects an optimal number of controllers. Simulation results suggest that DBC outperforms existing state-of-the-art algorithms in terms of different latencies and also performs load balancing among the controllers.