1. Introduction
Recently, the Internet has become an essential tool for human activities. With the Internet of Things (IoT) and Internet of Everything (IoE), the growth in communication technology is closely tied to energy consumption. The current demand for energy in communication technologies represents 8% of the total energy consumption. Studies anticipate that this percentage will continue to increase to 21% by 2030 [
1,
2]. Another forecast predicts that this figure will reach 51%, according to an updated global survey [
3].
Figure 1 depicts the trend of the growth rate over the years. Consequently, this growth will demand higher operational expenditure (OPEX) due to increased energy expenditures.
Traditional energy-saving research has traditionally focused on battery-operated devices. However, the fixed infrastructure and data center networks, which include routers, switches, transponders, repeaters, and other network devices, still require effective centralized power management solutions [
4]. This limitation compels us to explore energy conservation strategies aimed at reducing OPEX costs. Given the redundancy of paths and the underutilization of links in certain traffic scenarios, GreenT has proposed putting some devices and links to sleep [
5]. If data demand increases, dummy packets are sent to activate these devices or links to turn them on again before transmitting data [
6]. Network interface cards can transition at the physical layer transitions in just ten milliseconds, while line cards may require more time [
7].
The Software-Defined Networking (SDN) concept decouples the control plane from the data plane, wherein a logically centralized controller manages multiple devices [
8]. Due to this separation, the controller maintains an overview of the system’s status and can provide instructions to devices that support SDN to operate optimally. Specifically, the controller can implement energy-saving functions.
The SDN architecture consists of several layers [
9], as illustrated in
Figure 2. SDN applications reside at the top layer, enabling users or network administrators to interact with the network. This layer incorporates algorithms for decision making and energy conservation. Moving down, the next layer is the
control layer, responsible for managing and controlling the network. Below that, we have the
data layer, which handles the forwarding of application data based on the flow rules calculated in the control plane. The OpenFlow protocol facilitates communication between the data plane and the control plane [
10]. Finally, at the base of the architecture, there is the infrastructure where servers host SDN-based data centers.
The control layer or management layer in SDN consists of one or more controller processes, as shown in
Figure 3. Controller processes collaborate to provide the network monitoring and control functionalities [
12]. The management layer exposes a network management interface (the so-called “Northbound API”) for management (or user) application processes to manage the network [
8]. At the bottom are the network devices, including switches or routers. There is a process (switch process) running on each network device, and this process hides the internal details of the physical device but exposes a network device interface (the so-called “Southbound API”) [
8]. The network device interface provides a standardized way to access the switch processes that operate on the switches. The switch process is responsible for low-level operations on switches such as adding/removing packet flow entries and the configuration of ports and queues [
12].
1.1. The Problem
Various layers and strategies are employed to address energy-saving aspects within SDN. These strategies encompass enhancements in hardware design, network planning, network operations, component placement, dynamic activation and deactivation of network elements, and resource allocation [
11,
13]. The allocation of network resources is contingent on meeting demands, and, in certain cases, fulfilling a demand may necessitate the activation of all available network resources [
14]. The efficient location and utilization of resources rely on algorithmic approaches. Nonetheless, a significant portion of these challenges remains to be addressed, with many underlying problems classified as Nondeterministic Polynomial Time Complete (NP-C) [
15,
16]. Metaheuristics have demonstrated their viability as a suitable alternative for approximating optimal solutions within reasonable computation times [
17].
This problem can be addressed through heuristic techniques or optimization techniques [
11,
18]. Heuristic techniques are efficient for the scenarios for which they were designed. However, this limitation can be overcome by using machine learning-based techniques, albeit at the expense of high computational cost during the training phase [
19]. Nevertheless, when the traffic pattern for which the machine was trained changes, its performance may significantly degrade, leading to a new retraining phase. Clearly, if the analyzed traffic pattern changes frequently, the application of machine-learning-based techniques may become impractical. On the other hand, optimization-based techniques can also be applied to Routing and Device Assignment (RDA). In this regard, we observe both exact and metaheuristic techniques. These techniques are efficient when the traffic load is low or moderate, providing optimal solutions. When the network traffic load is high, metaheuristic techniques show promise by delivering solutions close to optimal within short computation times. Due to the aforementioned reasons, in this work, we develop optimization-based techniques, both exact and metaheuristic, emphasizing their strengths in considering multiple criteria and constraints.
The RDA problem involves the optimization of multiple criteria, such as minimizing energy consumption and maximizing traffic efficiency. Mixed Integer Linear Programming (MILP) and Genetic Algorithms (GAs) are known for their ability to handle Multiobjective Optimization Problems (MOPs) [
20], making them suitable for addressing our challenge.
Furthermore, our research focuses on the allocation of SDN devices to traffic flows and route optimization. This entails searching for solutions within an extremely large and complex solution space. GAs are inherently parallelizable and can effectively explore this solution space in pursuit of optimal or near-optimal solutions.
1.2. Key Contributions
The main contributions of this paper are summarized as follows:
Formulation of the RDA problem seeking to maximize energy savings and the number of installed flows using all energy-saving factors reported in the literature.
Section 2 explains these factors in detail.
Design of a Mixed-Integer Linear Programming (MILP) solution for the proposed RDA problem.
Design of a Genetic Algorithm (GA) for the proposed RDA problem.
Analysis of the Controller Placement (CP) problem to maximize energy savings.
Study the performance of the proposed methods and the state of the art in the face of static, semidynamic, incremental, and dynamic traffic environment scenarios to enable divisible flows.
According to our knowledge, this approach has yet to be proposed in the literature.
The rest of the work is organized as follows:
Section 2 cites works related to energy saving.
Section 3 presents the proposed strategy for optimal use of devices, and
Section 4 shows the proposed MILP model.
Section 5 introduces the proposed metaheuristics based on GA, and
Section 6 explains the experimental tests. Finally,
Section 7 summarizes the final conclusions and some future works.
2. Related Works
The simulation of GreenTE in [
5] demonstrated that the energy-saving ratio decreases as the traffic load increases at the link level. In a normally operating network with a maximum link utilization (MLU) below 40%, there is a more substantial energy-saving potential compared with overloading some links.
Schaap et al. [
21] estimated the power consumption of the switch based on the NEC PF5240 OpenFlow model, which has a maximum power consumption of 264 Watts (W) [
22]. The concept behind this approach is to compile statistics on power consumption within the network using the sFlow-RT protocol [
23]. The sFlow agents transmit traffic data and energy consumption statistics to the controller for measuring the network’s total energy consumption. Furthermore, Wang et al. [
24] confirmed that the power consumption percentages for a 100G integrated chassis, line card, and port are 56.3%, 43.6%, and 0.1%, respectively.
In their work [
25], Priyadarsini et al. introduced a heuristic algorithm for efficient route selection with minimal energy consumption, based on the ERAS Framework (Efficient Routing Algorithm Selection).
As noted earlier, an alternative approach to energy conservation involves placing idle devices into sleep mode and adjusting routing to minimize link utilization. Depending on the traffic scenario, devices without ongoing traffic can be either powered off or put into a suspension state. In the case of static or semidynamic traffic, devices can be powered off, while in dynamic traffic scenarios, devices must remain in a suspended state (rather than powered off). According to Heller et al. [
26], this state entails slightly higher energy consumption but significantly shorter activation times.
Furthermore, other related works focus on achieving energy savings by placing idle devices on standby and constraining link usage. For example, Awad et al. [
27] propose minimizing energy consumption in the links while considering link speed and flow conservation. Their work introduces an integer linear programming model for optimal results and an approximate solution based on a heuristic algorithm. In a different study, Wang et al. [
24] examined the energy consumption of chassis, line cards, and link utilization, although they did not address the energy consumption of links themselves. In a subsequent publication [
14], Wang et al. presented an energy-saving model for hybrid SDN that considers the shutdown of switches and SDN links to accommodate varying traffic loads, recognizing that traditional switches operate independently and present difficulties when put into sleep mode.
In addition, Fernandez-Fernandez et al. [
28] introduce an approach focused on minimizing active links, taking into account the controller’s location in terms of energy efficiency. In a different study, Xu et al. [
29] present an energy efficiency algorithm for data center networks, considering aspects like link utilization and network equipment, including chassis and ports.
Xie et al. [
30] introduced E3MC, a mechanism aimed at enhancing the energy efficiency of DCN through elastic multicontroller SDN. In E3MC, energy optimizations are realized for both the forwarding and control planes by leveraging SDN’s fine-grained routing and dynamic control mapping.
Table 1 provides a summary of the previously mentioned studies, along with the energy-saving factors in SDN that each model takes into account. It is worth noting that none of the cited studies simultaneously consider all the energy-saving factors. This underscores the necessity for an approach that encompasses all these aspects.
As a result, this research proposes a model to minimize energy consumption considering all the above characteristics and obtain values for more significant energy savings. The last row of
Table 1 indicates the factors considered for energy saving for the solution proposed in this work. Note that several studies have addressed the CP problem [
31,
32,
33,
34,
35,
36,
37]. However, only some of them consider energy savings as a location criterion [
28,
38,
39].
Table 1.
Reported energy saving types.
Table 1.
Reported energy saving types.
Ref. | Link Usage | Chassis | Line Card | Port | Controller Placement | Blocking Aware |
---|
[28] | - | - | - | Yes | Yes | - |
[24] | Yes | Yes | Yes | - | - | - |
[25] | - | Yes | - | Yes | - | - |
[27] | Yes | - | - | - | - | - |
[14] | - | Yes | - | Yes | - | Yes |
[29] | Yes | Yes | - | - | - | - |
[40] | - | Yes | - | Yes | - | Yes |
[30] | Yes | Yes | - | Yes | - | - |
Proposed Schema | Yes | Yes | Yes | Yes | Yes | Yes |
The CP problem is a central topic in SDN [
41] and can be categorized as either multicontroller or single-controller. In the case of a multicontroller, the approaches partition an SDN into sub-SDN segments and determine the controller’s location for each subnet [
42,
43].
The multicontroller approach is employed in large networks to address the issues related to single points of failure and potential delays in switches and controllers. In situations where a single controller oversees all the nodes in the network, we have a straightforward case.
In particular, efficiency studies have shown that in the majority of cases, a single controller is sufficient for the entire network, even without meeting the fault tolerance requirements [
41,
42,
44].
The studies mentioned [
41,
42,
44,
45] did not take into account the impact of energy consumption. The CP problem has been tackled by considering both energy-saving and non-energy-saving aspects in previous studies [
42,
43,
44,
46,
47,
48,
49,
50,
51,
52,
53,
54].
In the context of energy-saving scenarios, there are two possibilities: a controller with an attached switch and a dedicated controller within the node. In the latter case, the data plane is unable to route traffic through the controller’s node.
Table 2 displays the provided classification. It is important to note that only a limited number of studies take energy consumption into account. The majority of these studies consider other criteria, such as average delay [
38], the average distance of nodes to the controller latency [
52,
55], or the tolerance to link failures [
47].
This study deals with the problem of determining the optimal location for a single controller to achieve maximum energy savings, with the constraint that data traffic should not traverse the node where the controller is located. This will prevent additional traffic load on the controllers, and performance degradations in the data plane due to saturation will not affect connections with the controller [
18].
The model presented in this paper determines the routes based on the controller’s placement within the network. Consequently, we conducted an analysis of controller allocation, aiming to identify the optimal node for Controller Placement to maximize energy savings. We conducted tests for energy consumption at all potential controller locations and compared the results with prior work that takes energy savings into account.
3. Optimal Device Usage Strategy
This work considers a network with SDN switches and a single SDN controller. The SDN controller is responsible for managing the routing table, the flow table, and the control of network power consumption. Data forwarding within SDN switches is carried out in accordance with their respective routing tables, which have been computed by the SDN controller.
The SDN controller gathers network information from its comprehensive perspective. Additionally, SDN switches conduct traffic measurements and relay the results to the controller [
56]. This global network oversight and management enable us to achieve system-wide optimization, consistently surpassing local optimizations in terms of energy efficiency [
24,
57].
This work will also emphasize energy-saving measures for SDN switches, aiming to attain global optimization. An SDN switch comprises an integrated chassis, line cards, and ports, as illustrated in
Figure 4.
The integrated chassis and line cards are the primary contributors to energy consumption, but it is also crucial to take into account port consumption and the utilization rate of the links. For instance, if a link operates at a service rate lower than 50% of its data traffic capacity, it can be configured for operation with a minimum consumption of 30% at nominal levels, as described in [
24].
5. Genetic Algorithm
This section introduces a metaheuristic implementation utilizing Genetic Algorithms (GAs).
The proposed implementation focuses on the permutation, routing table, and configuration of SDN devices to achieve energy savings within the SDN framework while satisfying the flow demands. GAs are global search and optimization techniques inspired by natural genetic and evolutionary selection processes, as described in [
58].
GAs simulate this process using coding and specialized operators, maintaining a population of individuals, where each individual represents a candidate solution known as a chromosome. A chromosome is a collection of genes that usually encode binary values. However, some successful implementations utilize nonbinary encoding [
59]. Given the problem’s structure under investigation, we employ nonbinary permutation coding for chromosomes in this paper.
Each individual is evaluated and classified according to the fitness quality function. This function plays a fundamental role in GAs because it provides information about each individual’s performance and, therefore, the possibility of evolving and generating new similar solutions. The first step is to initialize the population with random operators. Then, the evolution from one generation to the next to create a new population involves three steps: evaluation of each individual’s fitness, selection of parents, and reproduction of new individuals by recombining the parents.
This process simulates evolution iteratively until it meets the termination criteria explained in
Section 5.9, at which point it returns the best individual found.
5.1. RDA-GA
For the GA implementation in the RDA problem, SDN is represented as a graph with
N nodes, which expands to model the connections between ports.
Figure 5 illustrates this diagram.
Algorithm 1 presents the proposed algorithm, named RDA-GA. The optimization metric in this algorithm includes the total energy consumption of the chassis, line cards, ports, utilization of links, and the count of blocked flows. The primary objective is to find a solution that simultaneously minimizes the global energy consumption cost of the SDN while maximizing the number of unblocked flows.
Algorithm 1 RDA-GA |
- Require:
Network Parameters, Evolutionary Parameters, Flow List K, and State Matrix - Ensure:
Best solution - 1:
- 2:
Initialize_population() - 3:
Evaluate_population() - 4:
while stop criterion is not met do - 5:
P’ ← Select_parents() - 6:
N ← Crossover(P’) - 7:
N’ ← Mutation(N) - 8:
S ← Select_the_best_individual() - 9:
← Unite_populations(N’,S) - 10:
Evaluate_population() - 11:
- 12:
end while - 13:
S ← Select_the_best_individual() - 14:
return Best Solution S
|
The RDA-GA takes as input the network and evolutionary parameters. Network parameters include a set of nodes, a set of links, and the controller’s location. Evolutionary parameters encompass the population size, tournament size, mutation probability, crossover rate, stop criterion, flow list
K, and the State Matrix
. The route table is an
-Shortest Path for each flow, as described in [
60].
5.2. Chromosome Representation
The RDA-GA chromosome is an integer vector of elements that encodes the sequence of requests. The individual population is a set of chromosomes in this context, i.e., .
The
-th gene (
) of the
-th chromosome encodes an address to the flow table
. For example, in
Figure 6, we can see that
indicates the third request to be met to the third flow of table
, while
corresponds to the fourth flow
of the table. Note that the encoding corresponds to a permutation. RDA-GA explores a solution in the permutation space. In this context, if there are
K flows (
), there are possible solutions in total
5.3. Initial Population
As shown in line 2 of Algorithm 1, the first step is initializing the population for the first generation . The indexes of the flow requests or genes are randomly initialized to form a permutation.
5.4. Evaluation
After initializing or evolving a population, RDA-GA evaluates the candidate solutions in lines 3 and 10 of Algorithm 1 by calling the function
Evaluate_population. Algorithm 2 performs the evaluation process. It receives a population, an
-Shortest Path table, a network topology, and a controller’s location as input data. Each individual is then independently evaluated on line 2 of Algorithm 2 by
Evaluate_individual. The evaluation of each individual consists of two parts according to Algorithm 3. In the first part, the routing and assignment are performed and stored in a State Matrix (Algorithm 3, line 3). The RDA algorithm calculates the routes and assignments solution, as explained in
Section 5.4.1 and
Section 5.4.2. The second part obtains the SDN’s power consumption according to the active devices (Algorithm 3, lines 10 to 14).
Section 5.4.3 explains this process.
If a flow has no routing or available resources, its state is marked as blocked on lines 3 to 5. Consequently, an individual’s quality is determined by the number of blocked requests and the energy consumption generated by unblocked requests on line 16.
Algorithm 2 Evaluate Population |
- Require:
Network Parameters and Population P - Ensure:
Evaluated Population P - 1:
for do - 2:
fitness ← Evaluate_individual() - 3:
Update_Fitness(, fitness) - 4:
end for - 5:
return P
|
Algorithm 3 Evaluate Individual |
- Require:
Network Parameters, Individual I, and Actual States Matrix SM - Ensure:
Fitness f; - 1:
← SM ▹ New States Matrix - 2:
for do - 3:
(, blocking) ← RDA(, ) - 4:
if blocking == true then - 5:
← - 6:
else - 7:
← Update States Matrix - 8:
end if - 9:
end for - 10:
← Chasis_Consumption() - 11:
← LineCards_Consumption() - 12:
← Ports_Consumption() - 13:
← Link_over_50_Consumption() - 14:
- 15:
- 16:
return
|
5.4.1. Routing
Algorithm 4 shows the calculation of an RDA solution. Note that the routing is based on multipath, which implies that each flow can be routed independently by the R routes, subject to the total flow being served. In line 2, the flow is assigned to the paths. The candidate paths are rearranged according to their current usage. If another flow previously used a route, it is preferable to use it. The above maximizes the reuse of already activated devices and thus achieves energy savings. The first route is taken in that new order of routes, and the highest possible flow percentage is assigned. Then, the following route is loaded with the maximum flow rate possible , and so on in the following routes. Note that the condition must be met to be considered a successful routing. If it is successful, the port assignment is made according to the availability of the network and proceeds to update the State Matrix on the corresponding paths, as seen in line 4.
If a flow cannot be satisfied due to network capacity saturation, it is stated by the
blocking variable on line 6. The advantage of multipath routing is to minimize the bottleneck; however, it introduces packet misalignment at the destination, which is resolved by the TCP/IP protocol [
61].
Algorithm 4 RDA |
- Require:
Network Parameters, Flow List K, and State Matrix SM - Ensure:
Multipath Routing, Port Assignment, and Updated State Matrix - 1:
blocking ← 0 - 2:
multipath ← Flow_Assignment(SM) - 3:
if multipath ≠ NULL then - 4:
← Port_Assignment(multipath,SM) - 5:
else - 6:
blocking ← 1 - 7:
end if - 8:
return , multipath
|
5.4.2. Device Assignment
After the flow assignment in the candidate routes, the assignment of devices is conducted. The First-Fit strategy assigns devices to the subflows. For a subflow, we look for the port with the lowest possible index with enough bandwidth to satisfy the requested subflow . The corresponding port is assigned if the condition is met, and the remaining capacity status in the State Matrix is updated. Setting ports to flows is performed on lines 3 and 4 of Algorithm 4.
5.4.3. Energy Consumption Calculation
The evaluation function of a chromosome determines the quality of the individual. The number of blocked flows and energy consumption in this work determines quality. The latter is evaluated after routing all flows and assigning the corresponding active devices ordered by the chromosome. The objective function (f) to be minimized is the weighted sum of the number of installed flows () and the network energy consumption (), both normalized. The network energy consumption is a sum of the energy consumption of chassis (), line cards (), links (), and links with use greater than 50% (), and they are all normalized.
Note that the functions are normalized by the values of A, B, C, and , representing the total consumption power of the chassis, line cards, links, and links with use over 50%, respectively. The represents the total number of flows in the network.
5.5. Selection Operator
Algorithm 1 shows us that the evolutionary cycle begins with the selection of parents on line 5. This study uses the tournament selection method [
62] to produce new individuals for the next generation. This operator performs the following steps:
The size of the tournament is chosen.
A random permutation is made on the population P.
The first parent is chosen from the first members.
The second parent is chosen from the second members.
Both parents are stored in the mating pool .
The selection process is carried out until the size of equals that of the population P.
5.6. Crossover Operator
The crossover method is applied on line 6 of Algorithm 1 for each pair of
individuals. Because a chromosome is an index of flow requests, an orderly crossing is necessary to produce a valid chromosome, and the partial map crossover (PMX) [
63] is used. This method selects a subset of the permutation vector of the first parent and adds it to the descent. Next, missing locations are added in the order of the second parent until the permutation vector of the descent does not have any remaining empty values, as shown in
Figure 7. The new individual is added to the set N, which is carried out until the size of N equals
− 1.
5.7. Mutation Operator
The mutation operator avoids GA converging to a local optimum by introducing new genetic information to the evolved population. The mutation procedure is applied after the crossover to each individual in step 7 of Algorithm 1.
The coin is tossed with each individual’s probability of . If the probability indicates no mutation, the individual is copied directly to the set ; otherwise, the operator mutates the individual, and it is added to the set .
The mutation method must mix genes and never add or remove a gene; otherwise, an invalid solution would be generated. The type of mutation method used is exchange mutation [
64]. With exchange mutation, two chromosome locations are randomly selected, and their positions are exchanged.
5.8. New Evolved Population
The generated solutions by the crossing and mutation operations are added to the new population
, the best individual of the population
. This step is observed in lines 8 and 9 of Algorithm 1. In this context, our implementation is elitist [
59]. The algorithm performs the next evolutionary step until the stop condition is reached.
5.9. Stop Criterion
This implementation runs while the best individual is not updated in the last iterations.
7. Conclusions and Future Work
In this paper, we address the problem of optimizing Software-Defined Networking (SDN) power consumption, considering two issues: the Controller Placement (CP) problem and the Routing and Device Assignment (RDA) problem. For CP, a study was conducted that highlights the benefits of considering the placement of the controller node. In RDA, considering all the devices of the SDN switch proved advantageous for achieving more significant energy savings, we proposed a Mixed-Integer Linear Programming (MILP) model and Genetic Algorithm (GA) strategy.
Four experiments were performed. The first experiment determined that the controller’s placement had a significant impact depending on the controller’s location. In this regard, there was a 10% improvement in energy savings for Abilene and 2% for Atlanta.
The RDA-MILP solution model achieves significant energy savings in the second experiment compared with the state-of-the-art predecessors’ proposals from Wang-Jiang, Wang-Jin, Fernandez-Ochoa, and Xu-Dai.
The third experiment examined the significance of re-routing. The results indicate that the energy savings achieved through a re-routing approach are insignificant compared with those without re-routing. However, the computational time for calculations with re-routing increases dramatically with traffic load, while computation times remain constant without the re-routing approach. Based on the experiments with 100 demands, the RDA-MILP without re-routing takes only 16 and 40 s, whereas the RDA-MILP with re-routing takes 18,936 and 18,995 s for Abilene and Atlanta, respectively. On the other hand, the RDA-GA without re-routing requires 9 and 10 s, while the RDA-GA with re-routing takes 92 and 133 s for Atlanta and Abilene, respectively.
In the fourth simulation on dynamic traffic, we observed that energy consumption reaches a maximum value when the load increases. This consumption is due to all devices being active in the system. Simultaneously, RDA-GA achieves a considerably lower blocking rate than heuristics based on the Shortest Path and the First Fit. The number of blocks is more significant for smaller network topologies.
As a future work, the authors propose extending the problem by considering other aspects, such as analyzing the performance of the proposed algorithms based on the traffic pattern, quality of service, and studying the efficiency of other metaheuristics and machine learning techniques.