Dynamic Load Balancing of Software-Defined Networking Based on Genetic-Ant Colony Optimization

Load Balancing (LB) is one of the most important tasks required to maximize network performance, scalability and robustness. Nowadays, with the emergence of Software-Defined Networking (SDN), LB for SDN has become a very important issue. SDN decouples the control plane from the data forwarding plane to implement centralized control of the whole network. LB assigns the network traffic to the resources in such a way that no one resource is overloaded and therefore the overall performance is maximized. The Ant Colony Optimization (ACO) algorithm has been recognized to be effective for LB of SDN among several existing optimization algorithms. The convergence latency and searching optimal solution are the key criteria of ACO. In this paper, a novel dynamic LB scheme that integrates genetic algorithm (GA) with ACO for further enhancing the performance of SDN is proposed. It capitalizes the merit of fast global search of GA and efficient search of an optimal solution of ACO. Computer simulation results show that the proposed scheme substantially improves the Round Robin and ACO algorithm in terms of the rate of searching optimal path, round trip time, and packet loss rate.


Introduction
The traditional Internet Protocol (IP) networks need to be enhanced to efficiently deal with huge volume of network traffic generated due to the rapid growth of Internet of Things (IoT). As an outcome of the search for an efficient solution for this issue, a new type of networking paradigm called Software-Defined Networking (SDN) has been proposed [1]. SDN changes the way of traditional network management by breaking the vertical integration of network components, separating the network control logic from the underlying routers and switches, promoting (logical) centralization of network control, and introducing the ability of programming the network operation. OpenFlow is the most widely used communication protocol between the controller plane and switch plane in SDN.
As aforementioned, SDN is quite different from the traditional IP network, and several issues need to be resolved including data forwarding, load balancing (LB), energy management, and so on. In SDN, flow tables are widely used of which entry consists of some fields including the header, counter, and action. When a packet arrives at a switch, lookup of the flow entries is carried out. The header and counter of a network flow are updated when it is changed for some reason such as LB or rerouting. The switch processes the data flow based on the header information and preset rules to control the network traffic. The flow control is based on the algorithm employed to balance the traffic

Related Work
In this section SDN, GA, ACO, and LB are briefly discussed. LB is a crucial problem with SDN, while GA and ACO are the algorithms which are adopted in the proposed scheme for solving the problem.

SDN
SDN is a new technology in the field of computer networking, which is presently receiving a great deal of attention. It originated from a project in academia [5]. In SDN, the network control making decisions on traffic routing (control plane) is decoupled from the part forwarding the traffic to the destination (data plane). The network is directly programmable, and the infrastructure is allowed to be abstracted for the applications and network services. The experts and vendors claim that this greatly simplifies the networking task [6]. Here, balancing the traffic load of the switches is a very important issue.
LB has been extensively studied for traditional IP network. Recently, some studies were conducted on SDN. Since SDN decouples the control plane and data plane of the network, LB between the controller and switches directly affects the stability of the whole network. The controller running on  Table 1 [7]. Among several protocols proposed for SDN, the OpenFlow protocol [8] is the most commonly used one for the implementation of SDN. The main feature of OpenFlow is the programmability. By programming the controller, one can easily achieve the required network functionality. There is a total of three layers in the entire infrastructure of SDN. On top of the control plane is the application layer and below is the data forwarding layer. The structure of SDN based on the OpenFlow protocol is shown in Figure 1.  Among several protocols proposed for SDN, the OpenFlow protocol [8] is the most commonly used one for the implementation of SDN. The main feature of OpenFlow is the programmability. By programming the controller, one can easily achieve the required network functionality. There is a total of three layers in the entire infrastructure of SDN. On top of the control plane is the application layer and below is the data forwarding layer. The structure of SDN based on the OpenFlow protocol is shown in Figure 1.

ACO
The ACO algorithm employs a probabilistic approach for solving the target problem such as GA, simulated annealing, and so on. All such algorithms are based on some heuristics. The ACO algorithm was inspired by the behavior of ants. Initially, all the ants wander aimlessly, but they return the nest after laying down pheromone on the trails while searching for food. Other ants then can follow the pheromone trails instead of travelling randomly. This approach has been adopted to solve the problem of computer networking such as finding the best path in the network. There are various schemes based on the ACO algorithm such as AntNet, AntHocNet, HopNet and Stigmetry, which can be applied to solve the routing problem for computer network [9,10].
The ACO algorithm works in two steps. In the first step, the preceding ants discover new possible routes as well as gather information on the existing paths, which are referred to as forward update. If one of them successfully reaches the destination node, in the second step, some ants are sent back to the source node along the path previously explored by the preceding ant. During the backward trip, the routing tables of the nodes along the path are updated called backward update. With SDN, the forward update and backward update can be eliminated since the controller has the global view of the entire network [11].

GA
As aforementioned, GA is also a heuristic algorithm based on the evolutionary steps of natural selection and genetics. It is commonly used to generate high-quality solutions for the optimization and search problems using bio-inspired operators such as mutation, crossover, and selection [12].

ACO
The ACO algorithm employs a probabilistic approach for solving the target problem such as GA, simulated annealing, and so on. All such algorithms are based on some heuristics. The ACO algorithm was inspired by the behavior of ants. Initially, all the ants wander aimlessly, but they return the nest after laying down pheromone on the trails while searching for food. Other ants then can follow the pheromone trails instead of travelling randomly. This approach has been adopted to solve the problem of computer networking such as finding the best path in the network. There are various schemes based on the ACO algorithm such as AntNet, AntHocNet, HopNet and Stigmetry, which can be applied to solve the routing problem for computer network [9,10].
The ACO algorithm works in two steps. In the first step, the preceding ants discover new possible routes as well as gather information on the existing paths, which are referred to as forward update. If one of them successfully reaches the destination node, in the second step, some ants are sent back to the source node along the path previously explored by the preceding ant. During the backward trip, the routing tables of the nodes along the path are updated called backward update. With SDN, the forward update and backward update can be eliminated since the controller has the global view of the entire network [11].

GA
As aforementioned, GA is also a heuristic algorithm based on the evolutionary steps of natural selection and genetics. It is commonly used to generate high-quality solutions for the optimization and search problems using bio-inspired operators such as mutation, crossover, and selection [12]. Some researchers explored an intelligent exploitation of random search used to solve the optimization problem involving global search of a large space. Generally, there exist five steps in GA for solving a problem; initial population, fitness function, selection operation, crossover operation, and mutation operation. In the proposed scheme, the five steps are also adopted as a supplement to ACO in the second stage of the search of the path. It applies selection, intercross and mutation on the solution of each generation to broaden the search domain and reduce the search time of optimal path.

LB of SDN
There exist two ways of classifying the LB approach of traditional network. One is based on the object to which LB is applied; hardware LB and software LB. With hardware LB, LB is applied to individual hardware device, and thus its effect on the network operation is more direct and faster than software LB. However, it is costlier due to the involvement of hardware implementation. Another way of classification is static LB and dynamic LB, determined based on the adaptability of the traffic management policy. With static LB, the performance parameters are analyzed at the start of the network operation, and then the LB policy is determined based on that. It is easy to deploy and not costly, but the performance is low. With dynamic LB, the LB policy is dynamically updated based on the current condition of the network to achieve higher performance. However, it usually involves several steps of operations and the cost is higher. Due to the versatile characteristics of SDN, the software LB and dynamic LB policy are adopted in the proposed scheme.
Various LB algorithms have been developed for evenly distributing the traffic to the nodes in the network including the RR algorithm, Weighted Round Robin (WRR), Least-Connection (LC), Weighted Least-Connections (WLC), Fastest Response-Time (FRT) algorithm, and so on. With the RR algorithm, a round link table is managed, which holds the information on the nodes of the network. The tasks are forwarded to each node by circular turns so that each node gets the task equally likely. This algorithm is easy to implement, but it does not consider the condition of the nodes and thus congestion may easily occur. Unlike the RR algorithm, the WRR algorithm assigns a weight value to each node which is determined by the specification parameter of the nodes. A large weight means higher processing capability. WRR is obviously more effective than RR.
The LC algorithm assigns a new connection request to the node of least connection since the load condition of a node is estimated based on the number of connections. The device managing LB needs to keep and update the number whenever a new connection is made or one is disconnected. The WLC algorithm uses the weight with the LC algorithm. The node of higher weight is assigned more connections. The FRT algorithm analyzes the load condition of a device by sending a probe request to it (for example ping). Here, the server responding to the probe fast is deemed to be less busy. Since it is not the response time to an actual task but a probe, it may not be able to deliver the real load condition. We next present the proposed scheme combining GA with ACO, the G-ACO scheme, which capitalizes the key properties of SDN for LB.

The Proposed Scheme
In this section, first, the way the basic ACO algorithm is used for the LB of SDN is introduced along with its shortcomings. Then, the proposed LB scheme based on G-ACO is presented.

LB with ACO
In order to illustrate the concept of ACO employed in the proposed scheme, the topology shown in Figure 2 is used. Each ant in the ant-world can be viewed as a packet transmitted in the network, and it is started randomly at any node of the topology. Assume that m and n are the total number of ants and switches, respectively, and bi(t) represents the number of ants in Switch-i, Si, at time t. Then, Each ant, Ak (k = 1,2, …, m), bears a taboo table to avoid visiting the same switch again, which holds the switches already passed by. It also calculates the state transition probability between two switches based on the remained pheromone on each path. They select the next switch to visit depending on the calculated probability. Denoting Pij k (t) as the probability of Ak to visit Sj from Si [13], then: , j∊ a k 0 Others Here ak represents the switches available to be selected when Ak is in Si. τij(t) denotes the total pheromone laid on the path from Si to Sj. τij(0) = δ indicates that the amount of pheromones on path is initially δ. α and β are the weight of the remaining pheromone and path distance in making the selection, respectively. ηij is a heuristic function defined as: Here, dij represents the distance between Si and Sj. Therefore, the probability of visiting Sj from Si becomes higher as dij gets smaller. The two issues with the current mechanism of ACO in selecting the next switch are as follows.

•
If α is small, it depends mainly on the value of dij.

•
If β is small, it is selected randomly.
The first issue may cause the local optimal solution, while the second one does not guarantee finding any good solution. To resolve the issue of too much remaining pheromone, an update algorithm was proposed considering the behavior of real ants in nature [14]. Here, the pheromone of a path is updated when an ant passes a switch (partial renewal) or whole path (global renewal), and the update rule is as follows. Figure 2. The test topology.
Assume that m and n are the total number of ants and switches, respectively, and b i (t) represents the number of ants in Switch-i, S i , at time t. Then, Each ant, A k (k = 1,2, . . . , m), bears a taboo table to avoid visiting the same switch again, which holds the switches already passed by. It also calculates the state transition probability between two switches based on the remained pheromone on each path. They select the next switch to visit depending on the calculated probability. Denoting P ij k (t) as the probability of A k to visit S j from S i [13], then: , j ∈ a k 0 Others Here a k represents the switches available to be selected when A k is in S i . τ ij (t) denotes the total pheromone laid on the path from S i to S j . τ ij (0) = δ indicates that the amount of pheromones on path is initially δ. α and β are the weight of the remaining pheromone and path distance in making the selection, respectively. η ij is a heuristic function defined as: Here, d ij represents the distance between S i and S j . Therefore, the probability of visiting S j from S i becomes higher as d ij gets smaller. The two issues with the current mechanism of ACO in selecting the next switch are as follows.

•
If α is small, it depends mainly on the value of d ij .
• If β is small, it is selected randomly.
The first issue may cause the local optimal solution, while the second one does not guarantee finding any good solution. To resolve the issue of too much remaining pheromone, an update algorithm was proposed considering the behavior of real ants in nature [14]. Here, the pheromone of a path is Sensors 2019, 19, 311 6 of 17 updated when an ant passes a switch (partial renewal) or whole path (global renewal), and the update rule is as follows.
Here ρ is the percentage of pheromone volatilization on the path, and thus (1−ρ) represents the portion of remaining pheromone. ∆τ ij k (t) is the amount of pheromone increased by A k on the path from S i to S j in one cycle. ∆τ ij k (0) is 0 as it represents the initial state of each path.
In the process of searching an optimal path with ACO, each ant selects the next switch based on the probability of Equation (2). Meanwhile, a positive feedback mechanism is adopted to assign more weight to the current optimal path. In other words, the information on the traversed path is given more weight after each iteration. This approach can easily cause local optimum. If the random selection policy is employed to avoid local optimum, even a good solution is not guaranteed to be found or it may take long time. These issues are resolved by the proposed scheme explained next.

The Proposed G-ACO Scheme
Delay time and packet loss rate are the two criteria evaluating the Quality of Service (QoS) of the network [15]. To deal with the limitation of the ACO algorithm applied to the SDN for LB, the G-ACO algorithm is proposed. As in the typical GA, it involves selection, crossover, and mutation operation. The motivation is to enhance the rate of convergence to optimal LB and the capability of finding the global optimum. The delay time in sending packets and the packet loss rate will then be decreased. It is known that GA is effective for the global search of a large space. However, feedback information cannot be used and a lot of redundant iterations occur with a certain search space. The efficiency of finding the solution is also very low. On the other hand, ACO employs a positive feedback mechanism. However, in the second stage, the searching speed is very low due to the limited pheromone on the paths. The proposed G-ACO algorithm capitalizes the merit of the GA and ACO such that GA is used to properly distribute the pheromone and then the ACO algorithm is used to seek the solution. It lets the two algorithms complement each other for effective LB in SDN. The larger the network and the longer it has been operated, the more the proposed G-ACO scheme will decrease the RTT and packet loss rate using the accumulated information compared to the existing schemes. The steps of G-ACO algorithm are as follows.
• Step 1. Initial population With G-ACO, the path is encoded for searching the path which involves integral number. For example, assume that a packet reaches a host in one iteration through several switches, which are S 7 , S 5 , S 1 , S 4 , and S 8 . Then, the code of the path of this packet is (7,5,1,4,8).
One path is generated with each ant in one iteration. Since there are m ants, m paths are obtained, which are selected as the initial population.

• Step 2. Fitness function
There are several factors that need to be considered for deciding the fitness function of GA, including the length of path, energy consumed for receiving or sending a packet in each switch, energy status of the whole network, and so on. In this paper the length of the path is considered as the primary factor. The fitness function for path-p is then as follows: Here W is the weight value of the length and l(p) is the length of the path. Note that the path of smallest f (p) is selected. In the selection process, the code of a path is obtained after each iteration of search. The load is calculated by the fitness function, and then the optimal one is selected for the next iteration. After several selection operations, the pheromone on the optimal path will be larger than the others, indicating that it will be more likely to be selected. As a result, the speed for searching the optimal path is increased.

• Step 4. Crossover
In order to avoid the situation of stagnation during the search operation, the crossover operation is adopted. It can expand the search scope and avoid the local optimum. After an iteration of search by ACO, some sub-optimal paths and optimal path might be obtained. Then, the crossover operation is applied to them. The aim of this step is to include more candidate paths leading to the optimal one.
In this paper P 1 is assumed to be the optimal path, while P 2 is sub-optimal. Procedure 1 of crossover operation is as follows. Procedure 1. Crossover operation of G-ACO 1: Assume that the path of P 1 is (x 1 , y 1 , z 1 ) and that of P 2 is (x 2 , y 2 , z 2 ). The crossover operation occurs with y 1 and y 2 , and one of the new paths obtained is P 3 : (x 1 , y 2 , y 1 , z 1 ). 2: Deleting the duplicated switch, the new path P 3 is determined. 3: By the same way, another new path P 4 is obtained. 4: Applying the fitness function to P 1 , P 2 , P 3 , P 4 , an optimal path is selected Mutation operation is based on the predefined mutation probability. Two points from the paths of the offspring are randomly selected for mutation operation. For example, for the given g 1 , After the mutation operation of exchanging '5' and '3', g 1 becomes: g = (2, 4| 7, 6, 3| 8, 9, 5) Procedure 2 of mutation operation is given below. The mutation occurrence is based on the frequency which is defined in the simulation part, and the number of switches in the optimal path is m. 2: Randomly generate two natural numbers, n 1 and n 2 (n 2 < n 1 < m).
3: By exchanging the switch at the location of n 1 and n 2 of the optimal path, P 0 , a new path, P n is obtained. 4: Obtain the fitness of P 0 and P n , and the one of the smaller value is selected as the optimal path After the operations of G-ACO, the optimal path is determined and packets are transmitted along it. The basic steps of the proposed G-ACO are summarized in Procedure 3, and the flowchart of the proposed G-ACO Algorithm is shown in Figure 3.

Performance Evaluation
In this section an experiment is conducted to evaluate the performance of the proposed scheme. Also, it is compared with the RR and ACO scheme used for LB of SDN to verify its effectiveness.

Environment of Experiment
There exist separate tools used for the SDN controller and switch as the control plane and data plane are decoupled. In this paper OpenDayLight and Mininet are employed for setting up the controller and switch, respectively. First, a brief introduction of these tools is given.
Mininet is a network emulator creating a network of virtual hosts, switches, controllers, and links. It hosts standard Linux network software, and the switches employ OpenFlow for flexible routing with the SDN. Mininet supports research, development, learning, prototyping, testing, debugging, and many other tasks that could benefit from having a complete experimental network on a laptop or PC [17]. Some key features of Mininet are listed below.

Performance Evaluation
In this section an experiment is conducted to evaluate the performance of the proposed scheme. Also, it is compared with the RR and ACO scheme used for LB of SDN to verify its effectiveness.

Environment of Experiment
There exist separate tools used for the SDN controller and switch as the control plane and data plane are decoupled. In this paper OpenDayLight and Mininet are employed for setting up the controller and switch, respectively. First, a brief introduction of these tools is given.
Mininet is a network emulator creating a network of virtual hosts, switches, controllers, and links. It hosts standard Linux network software, and the switches employ OpenFlow for flexible routing with the SDN. Mininet supports research, development, learning, prototyping, testing, debugging, and many other tasks that could benefit from having a complete experimental network on a laptop or PC [17]. Some key features of Mininet are listed below.

Test Topology
At first, some flow tables were sent to the specified switch with the topology of Figure 2 to verify proper connection of OpenDayLight and Mininet. Some flow tables were sent to S 5 (OpenFlow:5), and the flow table delivery was verified as the snapshot shown in Figure 4.

Test Topology
At first, some flow tables were sent to the specified switch with the topology of Figure 2 to verify proper connection of OpenDayLight and Mininet. Some flow tables were sent to S5 (OpenFlow:5), and the flow table delivery was verified as the snapshot shown in Figure 4.  A fat-tree topology is adopted to verify the effectiveness of the proposed LB scheme. The fat-tree topology has numerous advantages as elaborated in [19,20], and the target fat-tree topology consisting of 1 controller and 10 switches is shown in Figure 5. A fat-tree topology is adopted to verify the effectiveness of the proposed LB scheme. The fat-tree topology has numerous advantages as elaborated in [19,20], and the target fat-tree topology consisting of 1 controller and 10 switches is shown in Figure 5.

Simulation Results
For fair comparison of the proposed scheme with the existing schemes, the Ant-Cycle method is employed for pheromone update [21]. The update rule and increment of pheromone are based on Eq. (4) and (5), respectively. However, Δτij k (t) is modified as follows:

Simulation Results
For fair comparison of the proposed scheme with the existing schemes, the Ant-Cycle method is employed for pheromone update [21]. The update rule and increment of pheromone are based on Equations (4) and (5), respectively. However, ∆τ ij k (t) is modified as follows: if A k moves from S i to S j in one iteration 0 otherwise (11) Here, L k is the total length of A k for finishing a round trip. As both the ACO and GA have the characteristics of astringency, the proposed G-ACO scheme may also have similar property. The factor ρ in Equation (4) can affect the search capability and the speed of astringency of the whole network. If ρ is too large, the volatilization rate of pheromone is high, leading to random selection. On the contrary, if it is too small, the volatilization rate will be low, resulting in local optimum. Therefore, selecting a proper value of ρ is very important. In the experiment, m (the number of ant) = 6, α (pheromone weight) = 1, β (distance weight) = 2 and Q (constant) = 1, which are determined empirically. The numbers of iteration steps allowing optimal path are listed in Table 3 as ρ is varied. Notice from Table 3 that the number of iterations increases when ρ is raised. This implies that the amount of pheromone on a path significantly delays the path selection. On the contrary, when ρ is as low as 0.1, the amount of pheromone on the path imposes too much influence on the path selection. Referring to Table 3, the reasonable range for ρ seems to be 0.3~0.5, and thus the value of ρ is set to be 0.4 in the experiment.
In Equation (2) α and β are important parameters of G-ACO for an ant to select a path.
α determines the dependency on the pheromone. If α increases, the probability for an ant to follow the path taken by a previous one will be higher. Then, the random nature of path selection will become smaller, leading to local optimum. On the contrary, β is the factor for randomness in path selection. If β increases, the probability for an ant to randomly select the next path becomes higher. Then, an optimal path may not be found in reasonable amount of time. Therefore, a simulation was carried out to determine a proper value of α and β. First, the value of α and β is set empirically. Then, α is changed while β is fixed. Similarly, β is changed while α is fixed. The simulation results are shown in Table 4, which show that the number of iterations decreases while α and β get larger. Here, α and β are set to 1 and 2, respectively. In the proposed G-ACO scheme there is another important factor which is the number of ants, m. If it is too small, the search of the whole network will be limited, leading to local optimum. If it is too large, however, the effect of positive feedback diminishes in path selection, resulting in random path selection. Considering the importance of the number of ants, simulation has been carried out again to determine the number. The simulation result is shown in Table 5. Considering the convergence and randomness of G-ACO, m is set to 8. In summary, the parameters are set as ρ = 0.4, α = 1, β = 2, m = 8. For the GA, the probability of crossover and mutation are set to be 0.9, and 0.04, respectively. Finally, the convergence condition, which is the difference in the amount of pheromone on the largest and smallest path, is set to 0.1. Figure 6 shows the success rate of finding the optimal path with the proposed G-ACO, ACO and GA scheme. An optimal path from the initial node to the end node can be determined by the calculation of the fitness function. Then, a path is obtained with the respective scheme after each simulation run. By the comparison with the optimal path, it is judged whether it is an optimal path or not. A 10-minute simulation time is executed for each of the three schemes, and the success rates are compared in Figure 6. Observe from the figure that the proposed G-ACO scheme allows an approximately 95% success rate which is much higher than the other two schemes. In the target network, the bandwidth of each load is assumed to be 100 Mbps. The iperf software tool [22] is used for the simulation run for 5 minutes and 10 minutes. The RR, ACO and the proposed G-ACO are simulated, RTT and packet loss rate are collected with h1 of Figure 5 as the source node of the packet. The simulation results with 5-minute simulation time are shown in Figure 7 and 8. Observe from the figures that the RTT and packet loss rate of the proposed G-ACO scheme are almost same as the ACO scheme. When the simulation time is as small as 5 minutes the computation overhead of the GA in the initial phase is high while the accumulated information required for the path selection with the proposed G-ACO scheme is insufficient. This causes similar performance between G-ACO and ACO. In the target network, the bandwidth of each load is assumed to be 100 Mbps. The iperf software tool [22] is used for the simulation run for 5 min and 10 min. The RR, ACO and the proposed G-ACO are simulated, RTT and packet loss rate are collected with h 1 of Figure 5 as the source node of the packet. The simulation results with 5-minute simulation time are shown in Figures 7 and 8. Observe from the figures that the RTT and packet loss rate of the proposed G-ACO scheme are almost same as the ACO scheme. When the simulation time is as small as 5 min the computation overhead of the GA in the initial phase is high while the accumulated information required for the path selection with the proposed G-ACO scheme is insufficient. This causes similar performance between G-ACO and ACO. of the packet. The simulation results with 5-minute simulation time are shown in Figure 7 and 8. Observe from the figures that the RTT and packet loss rate of the proposed G-ACO scheme are almost same as the ACO scheme. When the simulation time is as small as 5 minutes the computation overhead of the GA in the initial phase is high while the accumulated information required for the path selection with the proposed G-ACO scheme is insufficient. This causes similar performance between G-ACO and ACO.   Figure 9 and 10 are the results with the increased network running time of 10 minutes. Notice that the proposed G-ACO scheme significantly reduces the RTT and packet loss rate compared to the other two schemes. This is due to the fact that more information can be accumulated as the operation of the network lasts longer. Recall that the proposed G-ACO scheme takes advantages of the merits of both GA and ACO, the fast global search of GA and optimal search of ACO. Notice that the proposed G-ACO scheme significantly reduces the RTT and packet loss rate compared to the other two schemes. This is due to the fact that more information can be accumulated as the operation of the network lasts longer. Recall that the proposed G-ACO scheme takes advantages of the merits of both GA and ACO, the fast global search of GA and optimal search of ACO.
From the simulation results above, it was identified that the proposed G-ACO scheme substantially reduces the RTT and packet loss rate compared to the other two schemes. Notice that the packet loss rate of h 1 -h 6 is very high with RR. This is because the load of h 1 -h 6 causes congestion on the path. For this load, the time delay and packet loss rate are very large. With ACO, RTT is slightly improved compared to RR, while packet loss rate is significantly reduced as around 0.28% (h 2 )~0.38% (h 8 ). This indicates the effectiveness of the use of the ACO algorithm in distributing the load. Notice that the proposed G-ACO algorithm is very effective for LB as the time delay and packet loss rate are almost the same regardless of the destinations. In particular, the packet loss rate is as low as 0.13% (h 2 )~0.20% (h 8 ). Figure 9 and 10 are the results with the increased network running time of 10 minutes. Notice that the proposed G-ACO scheme significantly reduces the RTT and packet loss rate compared to the other two schemes. This is due to the fact that more information can be accumulated as the operation of the network lasts longer. Recall that the proposed G-ACO scheme takes advantages of the merits of both GA and ACO, the fast global search of GA and optimal search of ACO.  From the simulation results above, it was identified that the proposed G-ACO scheme substantially reduces the RTT and packet loss rate compared to the other two schemes. Notice that the packet loss rate of h1-h6 is very high with RR. This is because the load of h1-h6 causes congestion on the path. For this load, the time delay and packet loss rate are very large. With ACO, RTT is slightly improved compared to RR, while packet loss rate is significantly reduced as around 0.28% (h2)~0.38% (h8). This indicates the effectiveness of the use of the ACO algorithm in distributing the load. Notice that the proposed G-ACO algorithm is very effective for LB as the time delay and packet loss rate are almost the same regardless of the destinations. In particular, the packet loss rate is as low as 0.13% (h2)~0.20% (h8). Table 6 lists the path from h1 to other hosts. Observe that same paths are taken by the RR and ACO scheme, while the proposed G-ACO scheme more widely distributes the packets throughout the network than the other schemes. With RR and ACO, seven nodes (e7, a3, e8, c2, a6, e9. e10) are visited for the seven destinations, while nine nodes (e7, a4, e8, c1, a6, e9, a3, e9, e10) are visited with the proposed G-ACO scheme. With the involvement of two additional nodes, the packets can be more evenly distributed, which allows the enhancement in the performance of networking.   Table 6 lists the path from h 1 to other hosts. Observe that same paths are taken by the RR and ACO scheme, while the proposed G-ACO scheme more widely distributes the packets throughout the network than the other schemes. With RR and ACO, seven nodes (e 7 , a 3 , e 8 , c 2 , a 6 , e 9 . e 10 ) are visited for the seven destinations, while nine nodes (e 7 , a 4 , e 8 , c 1 , a 6 , e 9 , a 3 , e 9 , e 10 ) are visited with the proposed G-ACO scheme. With the involvement of two additional nodes, the packets can be more evenly distributed, which allows the enhancement in the performance of networking. h 1 -e 7 -a 3 -c 2 -a 6 -e 9 -h 5 h 1 -e 7 -a 4 -c 1 -a 6 -e 9 -h 5 h 6 h 1 -e 7 -a 3 -c 2 -a 6 -e 9 -h 6 h 1 -e 7 -a 4 -c 1 -a 6 -e 9 -h 6 h 7 h 1 -e 7 -a 3 -c 2 -a 6 -e 10 -h 7 h 1 -e 7 -a 3 -c 1 -a 6 -e 10 -h 7 h 8 h 1 -e 7 -a 3 -c 2 -a 6 -e 10 -h 8 h 1 -e 7 -a 3 -c 1 -a 6 -e 10 -h 8 For more comprehensive evaluation, the schemes are also tested with another topology of 14 nodes of Figure 11 [4]. Here, srcNode = 1 and dstNode = 13, and file data are transmitted at the rate of 1 Mbps. Notice from Figure 12 that the proposed G-ACO scheme consistently reduces the run time compared to the general ACO scheme.

Conclusion
In this paper we have presented the G-ACO scheme for LB of SDN. The proposed G-ACO scheme combines the selection, crossover and mutation operation of GA with the ACO algorithm to enhance the path search speed and the capability of searching an optimal path. LB is a very important issue for SDN due to the decoupling of the control plane and data forwarding plane. By implementing the proposed scheme into the LB module of OpenDayLight controller, an experiment was carried out with two networks topologies. The proposed scheme was also compared with the RR algorithm and ACO algorithm. The simulation results show that the proposed G-ACO scheme significantly improves the transmission time and packet loss rate. This is due to the effectiveness of the proposed scheme in searching the path and LB.
In the proposed G-ACO scheme, several factors were determined empirically, which significantly affect the overall performance. In the future, analytical models will be developed by which the value of the factors can be properly determined. Also, more comprehensive experiments will be conducted to investigate the relationships between the design parameters of SDN, and thereby the management of entire network can be finely tuned according to various operational conditions.

Conclusion
In this paper we have presented the G-ACO scheme for LB of SDN. The proposed G-ACO scheme combines the selection, crossover and mutation operation of GA with the ACO algorithm to enhance the path search speed and the capability of searching an optimal path. LB is a very important issue for SDN due to the decoupling of the control plane and data forwarding plane. By implementing the proposed scheme into the LB module of OpenDayLight controller, an experiment was carried out with two networks topologies. The proposed scheme was also compared with the RR algorithm and ACO algorithm. The simulation results show that the proposed G-ACO scheme significantly improves the transmission time and packet loss rate. This is due to the effectiveness of the proposed scheme in searching the path and LB.
In the proposed G-ACO scheme, several factors were determined empirically, which significantly affect the overall performance. In the future, analytical models will be developed by which the value of the factors can be properly determined. Also, more comprehensive experiments will be conducted to investigate the relationships between the design parameters of SDN, and thereby the management of entire network can be finely tuned according to various operational conditions.

Conclusions
In this paper we have presented the G-ACO scheme for LB of SDN. The proposed G-ACO scheme combines the selection, crossover and mutation operation of GA with the ACO algorithm to enhance the path search speed and the capability of searching an optimal path. LB is a very important issue for SDN due to the decoupling of the control plane and data forwarding plane. By implementing the proposed scheme into the LB module of OpenDayLight controller, an experiment was carried out with two networks topologies. The proposed scheme was also compared with the RR algorithm and ACO algorithm. The simulation results show that the proposed G-ACO scheme significantly improves the transmission time and packet loss rate. This is due to the effectiveness of the proposed scheme in searching the path and LB.
In the proposed G-ACO scheme, several factors were determined empirically, which significantly affect the overall performance. In the future, analytical models will be developed by which the value of the factors can be properly determined. Also, more comprehensive experiments will be conducted to investigate the relationships between the design parameters of SDN, and thereby the management of entire network can be finely tuned according to various operational conditions.

Conflicts of Interest:
The authors declare no conflicts of interest.