1 Introduction

Referring to a traditional network essentially is a mix of switches and routers that enable the transmission of packets from the source to the destination network. The routers use routing protocols to transfer these packets through the network efficiently. Packets comprise sets of data transported over a physical link. On the transmitter side, data is alienated into chunks based on which data link method has been used to transmit the packets. On the other hand, at the destination side, the receiver reassembles the packet. The control plane mounted in every switch and router determines the final destination address of each packet via the routing protocols installed on the network. Software Defined Network (SDN) is an evolving new network architecture that decoupled the data (forwarding) plane and the control plane and makes forwarding decisions based on a flow table rather than destination based [1]. The Software-defined network helps to speed up the innovation progression; lowers the complexity and the cost of hardware implementation with its open-source features. Accordingly, network management has become flexible and programmability compared to those conventional networking. SDN is currently highly implemented in many applications [1], such as Internet-of-Things (IoT), data centers (e.g. Google, Facebook, etc.), cloud computing, and wireless mesh networks (WSN). SDN is made up of 3 layers which are the application plane, the control plane and, the data plane. In recent years, SDN-CPP is the hottest research topic which can be expressed as NP-hard or known as a facility location problem (FLP) which normally concerns the number and location of controllers in the network [2]. due to the inefficient controller placement strategy stated in [3,4,5,6,7,8,9,10], the network performance might be affected. For example, moments under poor controller location selection may introduce lower failure tolerance and may take a long recovery time after failures. As discussed in some related work, the Controller Placement Problem (CPP) is an NP-hard optimization problem [3, 11,12,13], where the following issues should be considered whenever designing an SDN controller placement approach:

  1. A.

    The control processing delay The switches receive an instruction from the controller on how to transmit the new flows. Whenever the delay between switches and controllers’ extents is above the threshold, the delay on the entire network will increase significantly. In this case, the OpenFlow controller processing delay may have a great influence on the total round-trip latency [3].

  2. B.

    The optimal number of controllers In Software Defined-Wide Area Network (SD-WAN) networks, a large number of switches in the forwarding plane build a complex network. It is hard for administrators to numeral out how many OpenFlow controllers should be installed. Some paper uses the iterative method to find the best optimal controller number, which may possibly lead to high optimization time [3].

  3. C.

    Inter-controller communication In multi-controller SDNs, each switch is controlled by a single controller. If a controller needs to transmit messages to an openVswitch managed by another controller, the controllers need to communicate with each other [3]. Therefore, the controller-to-controller communication may affect the performance of communication between different switches managed by different controllers.

  4. D.

    Load balance In SDN-based networks, the forwarding (data) plane and the control plane are physically separated. When load balancing is used in the SDN network it is possible to manage more than one switch at the same time. This global objective may lead to further optimized load-balancing networks [14].

To our best understanding, there is no approach to take into account all these issues for solving the SDN-CPP. For this purpose, we propose a heuristic placement strategy named Ant Colony Optimization Controller Placement Algorithm to solve the above problems.

2 Related Works

The authors of this thesis propose a solution to handle the controller placement in SDN-based WAN architecture. In this paper, they compare both population-based CPP algorithms called CPP-PSO and CPP-FFA and they conclude CPP-FFA algorithm has better performance than CPP-PSO but the optimal controller placement is optimized only on propagation delay parameters [1]. This paper considers the average latency of a reliable network for the first time. In this thesis, they discuss and analyze the reliable CPP. Their network performance shows that TLBO based solution gives better results as compared to PSO based solution for CPP [2]. The authors in [15] have presented a mathematical model for finding the optimal location for an SDN controller in the Bell Canada WAN. Measurement of the overall latency of this network was based on the delay in propagation among the forwarding and control planes. The proposed model was assessed with respect to answering an essential question associated with the planned implementation of an SDN network: how many SDN controllers are needed in the network topology? However, this research for CPP tries to solve using cluster-based (k-median) rather than metaheuristic and it only deals with propagation delay.

In the thesis [16] they propose the controller placement optimization problem in large-scale IoT-like SDNs. Multiple performance and reliability metrics were considered based on the context. In these strategies, two heuristics were put forward to find high-quality approximate solutions in an equitable computation time: A Clustering approach and a Genetic approach. Their results showed the potential of clustering methods in delivering proper solutions that achieve balanced trade-offs among the competing performance and reliability criteria; however, they use the JAVA-based framework Sinalgo (Simulator for Network Algorithms) to simulate the SDN performance hence mininet software is better simulation software and also the CPP algorithm is only based on scalability and reliability parameters. The SDN-CPP primarily concentrated on two questions: the optimal number of controllers and where should be placed these controllers. This paper discussed the controller problem placement and offers a general algorithm, called Density Based Controller Placement (DBCP), that computes the optimal OpenFlow controller number based on the load density clustering and then deployed the controllers. They validate that DBCP has numerous advantages compared with other algorithms; however, the proposed algorithm is only based on propagation delay and reliability parameters and also is cluster-based rather than a metaheuristic solution [3]. In this research paper, they proposed a traffic model which considers, user demands depending both on response time and the user’s terrestrial position. Moreover, they proposed an integer linear programming (ILP) to solve the dynamic OpenFlow CPP for the LEO constellation topology, which minimizes the average flow setup time. However, the simulation result only shows an average flow setup time and the number of controllers hence, it is required to show SDN latency, average time delay throughput and so on [4]. The author’s thesis [6], propose a new method for searching the optimal locations to deploy SDN controllers, which takes into account average latency (including processing, queuing, and propagation delays), and control plane overhead metrics; however, the result is on specific topology (SANReN) doesn’t show its performance on other popular topologies and the SDN-CPP is based on Haversine great circle approach rather than optimization technique.

In the thesis [8], they propose a named set covering controller placemat problem (SC-CPP) for SDN resilience based on propagation delay parameter; however, the simulation result shows the number of controllers on different topologies, and SDN performance based on the proposed CPP solution. However, it doesn’t show the impact of the optimal number of controllers on the network. In thesis [9] and [10], they surveyed the CPP research initiatives and already identified issues in CPP. Finally, they investigated the open research issues of CPP which are not explicitly addressed in the literature. So there is a necessity to address these open research issues through future research efforts. A potential research effort in this direction could gain a truly reliable solution to SDN-CPP. However, the paper is only a survey of CPP’s different algorithms there is no comparison Simulation result or the proper solution for the CPP. In the thesis [17] they presents a clustering-based model for finding the minimum numbers and optimal location for in ethio-telecom WAN. However, the work is done on existing Matlab framework without any modification or novel idea and only tested on ethiotelecom network (Table 1).

Table 1 Summary of the related work

3 Problem Formulation

In this work, a network is expressed using a weighted graph, \(G(N,L)\), where N and L represent the network node set and link edge set, respectively. Each element in the node set is a probable place for the controller placement. Let \(\left|N\right|=n\), we need to place \(k\) number of controller where \(k<n\). Let \({S}^{\prime}=\{{s}_{1},{s}_{2},\ldots ,{s}_{n}\}\) is the set of Open switches and \({C}^{\prime}=\{{c}_{1},{c}_{2},\ldots ,{c}_{m}\}\) is the set of controllers [4]. Therefore, in general, \(V={S}^{\prime}\cup {C}^{\prime}\). In general, open switches and routers are considered as the data forwarding elements. Let \(d({s}_{i}{c}_{j})\) be the shortest path distance from a forwarding node \({s}_{i}\in S^{\prime}\) to one of the controller \({c}_{j}\in C^{\prime}\). For a particular placement, \(\left|{C}^{\prime}\right|=k\), where \({C}^{\prime}\subset V\). The following assumptions and definitions are used in this paper:

  • Assumption 1 The main path is the controller path between the controller and the switch, which continuously follows the shortest path;

  • Assumption 2: Two or more different controllers can’t be allocated in a single location;

  • Assumption 3: An open switch is controlled only by single controller; and

  • Assumption 4: The link between the controller and is switch assumed to be failure free.

Some performance parameters that are considered for designing the placement strategy, which is described below:

3.1 Switch to Controller Delay

Propagation delay is the most widely used metric in SDN-CPP. It gives an idea (or information) about the longest distance between switches \({(s}_{i})\) and controllers \({(c}_{j})\) i.e., max \(({s}_{i}\),\({c}_{j})\). The switch-to-controller delay gives the worst case and average switch to controller delay which are given in Eqs. (1) and (2), respectively [11].

$${\pi }^{avglatency}\left({P}_{i}\right)= \frac{1}{\left|V\right|}\sum_{{c}_{j}\in {C}^{\prime}}{Min}_{c\in {C}^{\prime}}d({s}_{i},{c}_{j})$$
(1)
$${\pi }^{worstlatency}\left({P}_{i}\right)={Min}_{{s}_{i}}\in S{^{\prime}}{Max}_{{c}_{j}\in C{^{\prime}}}d({s}_{i},{c}_{j})$$
(2)

3.2 Inter Controller Delay

The latency has a major impact because communications between these controllers are needed to reach accurate synchronization of the network environment. A high controller-to-controller latency may affect the network performance due to that controllers can make incorrect decisions if control instruction is not updated accurately in a short period of time. Equations (3) and (4) are used to minimize both the average and maximum (worst) controller-to-controller delay metric [3].

$${\pi }^{avgconlatency}\left({P}_{i}\right)= \frac{1}{\left|p\right|}\sum_{{c}_{i},{c}_{j}\in {C}^{\prime}}d({c}_{i},{c}_{j})$$
(3)
$${\pi }^{worstconlatency}\left({P}_{i}\right)={Min}_{{s}_{i}}\in S{^{\prime}}{Max}_{{c}_{j}\in C{^{\prime}}}d({c}_{i},{c}_{j})$$
(4)

3.3 Load Balance

Load balance is calculated from the difference between the controller with the maximum allotted nodes and with the minimum, it works as an live routing protocol in SDN, it is an essential parameter that contributes to the reliability and scalability that leads to achieving the minimal request time. Millions of devices are connected to the internet which causes high web traffic that leads to network overloading and losses of packets. However, to solve this challenge Load balancing method may increase the network performance [20]. As it is expressed in [20] the optimal load balancing is given when every controller has allocated between \((\frac{n}{k})\) and \((\frac{n}{k})+1\) switches (nodes). Equation (5) is used to compute the load balance in the SDN.

$${\pi }^{loadbalance}\left({P}_{i}\right)= {max}_{(p\epsilon p)}{n}_{p}-{min}_{(p\epsilon p)}{n}_{p}$$
(5)

where G = (N, L) is the graph with V nodes and L edges, \(d({s}_{i},{c}_{j})\) Distance matrix between node and controller, \(d({c}_{i},{c}_{j})\) is the distance matrix between the controller in the network, \({P}_{i}\) set of optimal location of controllers in a network. \({n}_{p}\) is the total number of nodes allocated to controller set p.

3.4 Objective Function

The objective of this research is to find an optimal controller location such that, it minimizes the average global delay and at the same time maximizes the controller reliability and scalability by proper assignment OpenFlow switches for every controller.

For example, let us introduce two variables \({x}_{ij}\) and \({y}_{j};\;\forall\text{i} \in \text{S}^{\prime}\;\text{and}\;\forall\text{j} \in \text{C}^{\prime}.\) The two variables can be defined as follows:

$${x}_{ij}=\left\{\begin{array}{ll}1,& \quad \text{if\; switch\; i\; is\; managed\; by\; controller\; placed\; at}\; j\\ 0,& \quad \text{otherwise}\end{array}\right.$$
(6)
$${y}_{j}=\left\{\begin{array}{ll}1,& \quad \text{if\; there\; is\; a\; controller\; placed\; at}\; j\\ 0,& \quad \text{otherwise} \end{array}\right.$$
(7)

The aggregate objective function \(f({C}_{i})\) minimizes the ratio of combined latency and increases the reliability factor for the optimal controller placement instance (\({C}_{i}\) ), which is defined as:

$$f\left({C}_{i}\right)=min\left\{\left({\pi }^{avglatency}+{\pi }^{avgconlatency}\right)\right\},{\pi }^{loadbalance}$$
(8)

3.5 Algorithm for the Objective Function

Algorithm 1
figure b

Algorithm for the cost function

4 Proposed Algorithm

4.1 Ant Colony Optimization

Ant colony optimization is a metaheuristic solution in which a collection of artificial ants cooperates in searching for an optimal solution to software-defined network controller placemat problem (SDN-CPP). Collaboration is a key strategy component of ACO algorithms in searching for an optimal solution: The choice is to assign the computational means to a set of comparatively simple agents (simulated ants) that information is shares indirectly by stigmergy, that is, by indirect communication intermediated by the situation [21, 22].

The ant colony algorithm in this work, return the best ants position based on the cost function out of a number of nodes (noNodes). The mathematical analysis is described below.

All artificial ants builds, beginning from the randomly selected node, a solution to the optimization problem by applying a step-by-step resolution strategy. At each node, local data is stored on the node itself or on its leaving paths, and it is sensed by each ant and used in a probabilistic way to decide from which node to travel to the next node. At the start of the search process, a persistent amount of pheromone (e.g., \({\tau }_{ij}=1, \quad \forall (i,j)\in \text{A})\) is allocated to all the paths (links) [23]. When positioned at a node \(i\) an ant \(k\) uses the pheromone traces \({\tau }_{ij}\) to compute the stochastically of selecting j as the next node [23]:

$${{p}_{ij}}^{k}=\left\{\begin{array}{ll}\frac{{\tau }_{ij}^{\alpha } \cdot {\eta }_{ij}^{\beta }}{\sum_{l\in {N}_{i}^{k}}{\tau }_{ij }^{\alpha} \cdot {\eta }_{ij}^{\beta }},& \quad \text{if}\; j \in {N}_{i}^{k};\\ 0 & \quad \text{if}; j \notin {N}_{i}^{k};\end{array}\right.$$
(9)

where \({N}_{i}^{k}\) is the neighborhood for ant \(k\) when it is in node \(i,\) In ACO the backward of a node i holds all the nodes directly linked to node \(i\) in the graph \(G(N,L)\) except for the precursor of node \(i\) (i.e., the last node the ant reached before moving to \(i\)). Where \({\tau }_{ij}^{\alpha }\) is a total pheromone put down on the path from \({s}_{i}\) to \({s}_{j}\). The parameter describe by \({\eta }_{ij}\), Is a heuristic function expressed by:

$${\eta }_{ij}=\frac{1}{{d}_{ij}}$$
(10)

Where, \({d}_{ij}\) is distance between each switch (\({s}_{i}\) to \({s}_{j}\)). Therefore, the stochastics of moving from \({s}_{i}\) to \({s}_{j}\) will be higher as distance (\({d}_{ij}\)) grows smaller. Selecting next node (switch) depend on two conditions:

  • If alpha (\(\alpha \)) is small, the \({{p}_{ij}}^{k}\) depends more likely on the value of (\({d}_{ij}\)).

  • However, if beta \(\left(\beta \right)\) becomes small the node selected randomly.

The first concern may lead us to the local optimum solution, while the second one doesn’t guarantee searching for any good optimal solution [23].

Before starting the return trip, an ant removes the loops it has built while searching for its destination node. The problem with loops in the return trip they may receive pheromone trails several times when an ant retraces its path backward to deposit a pheromone trail, this leads to the problem of self-reinforcing loops. In ACO, loop removal is implemented so that the loops could be eliminated in the same order as they were created [21, 22]. During the ant’s return back to the source node the \(k\)-th \(\Delta {\tau }^{k}\) ant deposits \(\Delta {\tau }^{k}\) value of the pheromone level on its paths (links) it has addressed. Precise, if the ant \(k\) is in the return travel mode and it crosses the path \((i,j)\) it updates the pheromone value \({\tau }_{ij}\) as follows:

$${\tau }_{ij}\leftarrow {\tau }_{ij}+\Delta {\tau }^{k}$$
(11)

By using this strategy an artificial ant using the edge (link) connecting node \(i\) to node \(j\) increases the stochastically that the upcoming ants will use the same edge (link) in the future.

The pheromone level evaporation rate decreases the pheromone levels with exponential speed. In an ACO, the pheromone level evaporation is incorporated with the deposited pheromone level of the ants on the path. After each ant \(k\) has moved to the next node according to the ant’s search behavior explained earlier, pheromone trails (level) are vaporized by applying the following equation to all the edges (links):

$${\tau }_{ij}\leftarrow \left(1-\rho \right){\tau }_{ij}, \quad \forall \left(i,j\right)\in \text{A},$$
(12)

where \(\rho \) is the evaporation rate parameter that is given between 0 and 1, after pheromone evaporation has been applied to all edges, an amount \(\Delta {\tau }^{k}\) of pheromone is added to the edges.

Assume that there are NoAnt ants that represent the potential solutions and each ant is represented as a d-dimension vector. Let, the current position of the swarm particle be \({X}_{i}={[x}_{i1},{x}_{i1},\ldots {,x}_{id}]\), where \(i \in 1,2,\ldots n.\) The recent pheromone level is \({tau}_{i}={[tau}_{i1},{tau}_{i2},\ldots ,{tau}_{id}].\) The best position of the ant is P is \({P}_{i}={P}_{i1},{P}_{i2},\ldots , {P}_{id}.\) The P optimized cost (gbest) is the global best optimal location vector.

4.1.1 The Proposed ACO Algorithm

Algorithm 2
figure c

SDN controller placement with ACO

At time \(t+1\), it updates the position using Eq. (9).

4.1.2 Updating Final Ants Position

Algorithm 4
figure d

Updating final ants position (finalPos)

5 Results and Analysis

The ant colony optimization which was conducted using MATLAB 2018b in internet2 topology. After solving the CPP, the network topology was implemented using a network emulator called Mininet, along with the Python 2.7 programming language, and opendaylight controller. Table 2 shows the metrics of the simulation environment.

Table 2 Simulation parameters

The proposed algorithm called Ant Colony Optimization compared with existing algorithms named Pareto Simulated Annealing (PSA) [19] and k-medoid [24].

In PSA [19], the work builds directly on the efforts of [3] and extends the program to include the Simulated Annealing (SA). PSA is a metaheuristic search algorithm designed to and approximate solutions to problems that may be computationally intractable. The work it includes the average and maximum switch-to-controller latency, average and maximum controller-to-controller latency, load imbalance, and controller-less nodes. However, the ACO optimal location compared with the best placement concerning (maximum node-to-controller latency and load balance). In K-medoid [24], introduces a different clustering meant to further speed up the solution process when dealing with certain specialized use cases of networks. While this work focuses on two parameters, which are maximum node-to-controller latency and load balance.

5.1 Controller Location with Proposed Algorithm (ACO)

Figure 1 shows the Inernet2 OS3E network, when the controller number is one (k = 1), the optimal controller location is at the city of Kansas-city (node 20), which is the best location for the controller to minimize the global latency (\({L}_{global}=1.222 {\text{ms}}\)). The average switch-to-controller and maximum switch-to-controller latency for this location are 1.1222 ms, and 6.37888 ms respectively. The average and maximum controller-to-controller latency (\(maxC2Clat\)) are ignored for a single controller.

Fig. 1
figure 1

The optimal location for Internet2 OS3E network topology when controller number is one (k = 1)

When the number of the controller is two (k = 2), the optimal location for those controllers are at Denver (node 6) and Ashburn (node 34) as displayed in Fig. 2.

Fig. 2
figure 2

The optimal location in the Internet2 OS3E network topology when the controller numbers are two (k = 2)

For the optimal location of controller number two (K = 2), indicates an intermediate location for average switch-to-controller latency (\(avgS2Clat= 1.111 ms\)), maximum switch-to-controller latency (\(maxS2Clat=3.1199 ms\)), average controller-to-controller latency (\(avgC2Clat=0.6745 ms\)), maximum controller-to-controller latency (\(maxC2Clat=1.6465 ms\)).

When the number of controller increases switch-to-controller latency decrease and also load becomes more balanced, however, it introduces controller-to-controller latency. Therefore, the number of controllers should be decided carefully to satisfy the performance of the commercial network.

The result presented in Fig. 3 show the optimal location of controller where, controller number are six (K = 6). The average switch-to-controller latency decreased by \(0.0194\,\text{ms}\) from \(2.7468\,\text{ms}\) to \(2.7274\,\text{ms}\). However, it also increases the average controller-to-controller latency (\(avgC2Clat=0.9159 ms\)) and maximum controller-to-controller latency (\(maxC2Clat=1.8477 ms\)). The switches are distributed for the optimal controller located at Seattle, Tucson, Baton Rouge, Nashville, Atlanta, and New York with 6,4,3,8,4, and 8 switches respectively.

Fig. 3
figure 3

The optimal location for the Internet2 OS3E network topology when the controller numbers are six (k = 6)

5.2 Switch to Controller Latency

From Fig. 4, the average switch-to-controller latency for a smaller number of controllers (i.e. k = 1, 2), even though the placement selected by the three algorithms are in different sites, the measured latency for the PSA is bigger than those of ACO and k-medoid. However, when the controller numbers are three and four, the average switch-to-controller latency is smaller than both of ACO and k-medoid. When the controller numbers are reached six (k = 6), there is no big difference in the measured latencies for all three algorithms. However, when the controller’s number reaches seven (k = 7), the measured latency of the Ant Colony Algorithm is smaller than those of a k-medoid and PSA algorithms. Increasing the value of \(k\) beyond this value will further decrease the average latency but it will increase controller deployment cost.

Fig. 4
figure 4

The average switch-to-controller latency (Internet2 OS3E topology)

In Fig. 5, when the controller number is one (k = 1), the maximum switch-to-controller latency has a bigger value than the standard latency. However, for a controller numbers reached two, the maximum latency dramatically decreases nearly by 4.2 ms equally in both k-medoid and ant colony optimization, while that in PSA decreases only by 2 ms.

Fig. 5
figure 5

The maximum switch-to-controller latency (Internet2 OS3E topology)

5.3 Controller to Controller Latency

In Fig. 6, when the value of \(k\) is more than one, the ACO, k-medoid, and PSA algorithms introduce a new controller-to-controller latency. In both results on PSA and k-medoid the latency increases dramatically as we increase the number of the controllers, however, PSA has better performance than k-medoid until the number of controllers reaches six, then k-medoid becomes better than PSA.

Fig. 6
figure 6

The average controller-to-controller latency (Internet2 OS3E topology)

The latency measured between each controller in ACO increases slightly until the controller number reaches four. And the latency is almost the same for \(k\) values between four to six, then starts to increase for k = 7.

Figure 6 shows that the proposed model ant colony optimization in this work has better performance than both PSA and k-medoid algorithms. This result is due to that both PSA [19] and k-medoid [24], algorithms implemented only on the maximum switch-to-controller latency and load balance. However, in the proposed algorithm (ACO), we also cosider average and maximum controller-to-controller latency and load balance.

With the measured latency (Fig. 7), the Ant Colony Optimization conroller assignment has better performance than the two algorithms, and also PSA has better performance than k-medoid for the controller number reaches \(k\le 6\).

Fig. 7
figure 7

The maximum controller-to-controller latency (Internet2 OS3E topology)

In Figs. 6 and 7, it is observed that increasing the value of \(k\) controllers increases both the average controller-to-controller latency and the maximum controller-to-controller latency. As shown in Fig. 7, in both PSA and ant colony optimization, maximum latency slightly increases until the controller number reaches six. However, for k = 7, the latency for PSA is increased dramatically, and the latency for ACO starts to decrease.

5.4 Average Global Latency

Figure 8 shows the overall global latency for each number of controller placements. The overall global latency is an average of all switch-to-controller and controller-to-controller latency. The proposed Ant Colony Optimization, in this research has better performance than both PSA and k-medoid on its global latency as plotted in Fig. 8.

Fig. 8
figure 8

The average global latency (Internet2 OS3E topology)

From results (in Fig. 8), the proposed algorithm shows better performance on the average global latency. From this result we can conclude that considering multi-objective optimization leads us to the better performance (low latency and high throughput) compared to single objective optimization.

5.5 Load Balance

The measured result (in Fig. 9) shows that, the numeral value of switches allocated to each controller, where the number of controllers increases from one to seven. As can be seen in Fig. 9, as the value of the controllers increases, the numeral value of nodes (switches) that a controller should handle decreases continuously resulting in a more balanced load.

Fig. 9
figure 9

Total allocated nodes for each controller (Internet2 OS3E topology)

The difference between the maximum and the minimal number of switches (nodes) assigned to a controller is plotted for all models according to Eq. (5).

As the result is shown (in Fig. 10) the result for the k-medoid-clustering based model is better in evenly distributing nodes to their nearest controller. The load balance described in Eq. (5) is smaller than both PSA and ACO algorithms except for those K equal to three. For controller numbers equal to five PSA, ACO, and k-medoid the load balance is more likely equally. The percentage of load balance for K equals two the k-medoid plot shows that zero, which means the load assignments are equal.

Fig. 10
figure 10

The percentage of load balance (Internet2 OS3E topology)

5.6 Throughput

The result shown (in Fig. 11), is the throughput characteristics measured for controller placement, which are measured for the algorithms named PSA, k-medoid, and ACO for twenty (20) seconds. To Measure the throughput, we only consider the propagation delay. The measured throughput is expressed in megabytes (Mb) per second. In throughput measurement, we set each controller as a server, and each switch as a client, and finally we measure for twenty seconds with the iperf tool every second. The maximum and minimum values of throughput measured for the ACO model are 11.8 Mb and 8.9 Mb, respectively. The maximum and minimum throughput values for the PSA model are 9.25 Mb and 7.26 Mb, and for the k-medoid model are 8.28 Mb and 6.21 Mb, respectively.

Fig. 11
figure 11

Throughput measured with 136 Kbytes TCP size (Internet2 OS3E topology)

6 Conclusion

In this work, an ant colony optimization algorithm was applied to calculate the optimal required value of controllers and their optimal placements in the network topology. ACO algorithm's objective is to find the minimal value of controllers and optimal placing of the controllers by considering average global latency and switches to controller assignment. It presented a heuristic algorithm based model for finding the minimum numbers of SDN controllers and their optimal location for Internet2 OS3E WAN network topology. The measured result of the latency and throughput of the Internet2 OS3E network was based on the propagation delay between the control and forwarding plane and between controllers.

The network topology is encoded and the ACO algorithm was applied to find the optimal placement and compared with existing algorithms named PSA and k-medoid. As discussed in the above results, maximizing the optimal value of controllers decreases the switch-to-controller latency, however, it also increases the controller-to-controller latency, which affects the capability of the controller to answer to network deals in minimal delay. Due to this reality, there is always required to select the optimal value of controllers. In this work, the proposed algorithm achieved superior network performance than both PSA and k-medoid algorithms, especially on the controller-to-controller latency, global latency and throughput. This result achived by considering multi-objective function ratherthan single objective function.