1. Introduction
Since McKeown et al. proposed OpenFlow in 2008 [
1], the concept of software defined network (SDN) has gradually rooted in the network field. Different from traditional networks, SDN moves the control function from the data forwarding devices to a centralized control plane, simplifying data forwarding devices and providing more flexibility and controllability to the network administrators. In the centralized control plane, one or more controllers manage the traffic flow according to the global view of the network, providing a higher capability for handling network problems. In this paper, we mainly focus on the energy waste problem in SDN.
As reported in [
2], the energy consumption of information and communication technologies (ICT) were responsible for more than 8% of the global electricity consumption in 2008. Furthermore, it has been predicted that this percentage will increase dramatically in future years. Under such high energy consumption, the efficiency of the network energy is very low, which results in a serious energy waste problem. Generally, networks are always designed to satisfy the peak periods of the network traffic. However, for most of the time, the traffic load of the network is far below that in peak periods. This causes underutilization of the network devices. For example, in the previous network of Google, the average utilization of all the links was 30∼40% [
3]. Yet the energy consumption of the devices in low utilization periods is almost as same as that in heavy load periods [
4], resulting in low energy efficiency of the network devices. It is of great importance to improve the energy efficiency of the network, both for reducing the operation cost of internet service provider (ISP) and for environment pollution reasons.
Much research has studied the energy waste problem from different network levels. For both wireless networks and core wired networks, a common way to reduce energy waste is by putting the idle devices into low-power sleep mode or switching them off when in low traffic periods. For example, in [
5,
6], the authors propose a switch on/off algorithm to improve the energy efficiency of the base stations in LTE-Advanced networks. The work in [
7,
8] considers the problem in general cellular networks, and addresses the problem on the premise of switching off base stations. Reference [
9] works on the energy saving problem in heterogeneous networks based on the switch off strategy.
For core wired networks, instead of base stations, the devices such as routers and switches (or parts of them, such as ports) are considered to turn to sleep mode for energy saving. In [
10], sleeping methods are divided into two categories, uncoordinated sleeping and coordinated sleeping. Uncoordinated sleeping refers to systems where network devices determine whether turn to sleep according to their own respective status. In coordinated sleeping which devices turn to sleep is determined by all the network devices jointly, routing the traffic on part of the devices according to the current traffic load, and sleeping the idle part. Obviously, in regard to the ability of saving energy coordinated sleeping performs better than uncoordinated sleeping. Much research such as [
4,
11,
12] based on the premise of coordinated sleeping made efforts to improve the energy efficiency of the network. However, there are many difficulties in executing the coordinated sleeping in traditional networks. As discussed in [
10], first, some network protocols must be changed. For example, the Hello message should be sent only among the active devices. Secondly, which devices should be put into sleep mode is a complicated problem for distributed control networks. Thirdly, some unexpected side effects such as route oscillation may be caused. Thanks to the centralized controller(s), in SDN coordinated sleeping will be easy to deploy without these difficulties.
At present, several works have focused on the energy waste problem in SDN based on coordinated sleeping and considered the problem from the different aspects [
13,
14,
15,
16,
17,
18]. The closest work to this paper is [
13], where a typical architecture called ElasticTree is proposed for improving energy efficiency in SDN. The traditional energy saving strategies also can be deployed in ElasticTree to determine which devices can be shut down. While ElasticTree treats all the traffic demand as new traffic demand (as described in our previous work [
14]), for energy saving, the paths of the uncompleted traffic demands generated before current optimization will be changed, which may result in route oscillation, and causes additional energy consumption for state transition. In [
14], to avoid these problems, we designed a new green scheme named GreSDN for energy saving, and presented two routing algorithms that can be used in GreSDN, the constant weight greedy algorithm (CWGA) and the dynamic weight greedy algorithm (DWGA). In this extended version, with regard to the previous work [
14], the main contributions of this paper are summarized as follows:
The process of GreSDN has been improved to make GreSDN more rigorous.
To find the optimal solution of energy saving in GreSDN, the problem is formulated as a mixed integer linear programming (MILP) problem, and the problem is found to be a NP-hard problem.
As proved in our previous work, for the two green algorithms, CWGA performs better than DWGA in energy saving, but the computation complexity of CWGA is higher than that of DWGA. In this extended version, we further work on decreasing the computation complexity of CWGA, and the improved algorithm is named as improved constant weight greedy algorithm (ICWGA).
In addition to studying the performance profile of ICWGA, we further examine the effect of some other factors on the performance of ICWGA, such as link density and the processing sequence of the traffic demands.
The remainder of this paper is organized as follows. In
Section 2, previous energy-saving research for SDN networks is reviewed. In
Section 3, we describe the green scheme and then formulate the problem in
Section 4. In
Section 5, the improved heuristic green routing algorithm is presented in detail. Then the performance of the green routing algorithm is evaluated through simulation in
Section 6. Finally, in
Section 7, we conclude the paper.
2. Related Work
At present, the energy waste problem in SDN has been considered from different aspects. In [
13], Heller et al. propose an energy saving scheme called ElasticTree for software defined data center networks. An optimizer is added in the controller to calculate the devices that can be put into sleep based on the traffic load. However besides the route oscillation problem, for the TCP-based traffic, when the traffic load increases, the network capacity won’t be increased due to the adaptive congestion control of TCP, which will affect user experience as mentioned in [
13].
In [
16], Ruiz-Rivera et al. propose an energy saving algorithm based on the switch assignment problem. In this algorithm, controllers act as switches at the same time. Links are switched off under the condition of ensuring that all switches are connected to one controller, and all the paths satisfy delay and load constraints at the same time. A severe limitation of this algorithm is that once the links that will be shut down are determined, communication demands that can’t find a feasible path in the sub-topology will be rejected. This will affect the Quality of Service (QoS) of the network.
Giroire et al. consider the memory size of switches, modeling the energy saving problem in SDN as an integer linear programming (ILP) problem under the constraint of limiting the number of the rules in the switches [
18], and propose a greedy heuristic algorithm due to the high complexity of the problem. In this heuristic algorithm, the controller routes the traffic on the switches with fewer rules through setting the link weights according to the numbers of rules in the connected switches, and determines the links that can be set to sleep mode iteratively.
In [
15], the authors consider energy saving based on the controller placement problem, aiming at minimizing the energy consumption of the control network, but the energy consumption of the data forwarding plane was neglected.
Two energy-saving models are proposed for software defined data center networks in [
17]. One is a 0–1 integer programming model which is a superior model for small scale networks. The other one is a greedy algorithm model which is not limited by the network scale. To find the optimal paths of energy consumption for traffic demands, the two models both need to traverse all the paths from source node to destination node of all communication pairs; this causes a lot of redundant computation.
The above works address the energy saving problem in SDN from different perspectives respectively. But as regards the energy saving problem in the data forwarding plane, most research works assume that the network is without traffic load when new traffic arrives. In our previous work [
14], we proposed a real-time dynamical energy saving optimization scheme combined with routing algorithm based on the current working state of the network, and presented two routing algorithms that can be used in the scheme. In this extended version, we do a series of work to make the work more meaningful.
4. Problem Formulation
Since we focus on the energy saving problem in the data forwarding plane, we assume that each switch connects to the controller with a direct link in this paper. The topology of the network without the controller is modeled as a di-graph , where V denotes the set of nodes (switches), and E denotes the set of edges (links) among the nodes. and denote the number of the switches and links respectively. Since the links between the controller and switches won’t be turned to sleep, the controller is neglected in this topology. The following symbols are used in the problem description.
: virtual topology .
K: the number of new demands.
: source and destination nodes of the kth communication demand, .
: requested bandwidth of the kth communication demand, .
: power consumption of link when in active mode, .
: the capacity of link , .
: the used bandwidth of link , .
: binary variable indicating whether link belongs to , equals 1 if link belongs to , and otherwise equals 0.
: binary variable indicating the status of link , equals 1 if in working state, and otherwise equals 0.
: the traffic of the demand along link , , .
As analyzed in
Section 3, the problem can be modeled as a MILP problem as following. The objective function is:
The objective function minimizes the energy consumption of all the links. In the formulations, the energy consumption of sleep mode is neglected since it is always far less than that of active mode. Constraint (
2) ensures that the loads of links meet their capacity threshold after taking the new loads. Constraint (
3) ensures that the demands are routed beginning with their source nodes and ending in their destination nodes. Constraint (
4) guarantees that the links in the virtual topology are in the working state. The decision variable domains are specified in (
5) and (
6).
Note that, in the above model, we assume that each switch connects to the controller with a direct link ideally. For the networks where the switches connect to the controller in a multihop way, links used in the switch-to-controller paths should always remain in the working state since the controller messages must be transmitted quickly. Then, these links can be treated as the links in the virtual topology in GreSDN, i.e., the variables of these links are always equal to 1.
Once the above model is resolved, the optimal path set for energy saving can be acquired by the values of variables
, and the links that need to be woken up can be acquired through comparing
with
. Unfortunately, without constraint (
4), the above model is a multi-commodity flow problem, which is well known as a NP-hard problem. Thus the model can only be used for relatively small scale networks. Therefore, we construct a heuristic least energy consumption routing algorithm having polynomial time complexity to find a sub-optimal solution.
5. Heuristic Green Routing Algorithm
In our previous work [
14], two routing algorithms, CWGA and DWGA, that can be used in the green scheme were presented. As analyzed in [
14], CWGA performs better than DWGA in saving energy, but the computation complexity of CWGA is higher than that of DWGA. In this section, we work on decreasing the computation complexity of CWGA.
The distance between two subgraphs in a connected graph which will be used in the algorithm, is defined.
Definition 1. If and are two subgraphs in a connected graph , the distance from to is the shortest distance from to in G, , , i.e., We call this shortest distance between two subgraphs the vertical distance, and the path between two subgraphs with this vertical distance the vertical path. Note that
and
can be a single node in graph
G. For example, in
Figure 2a, graph
G consists of 10 nodes and 21 links. Denote
as
, and the part with solid lines in
Figure 2b as
. Assuming that each edge has the same weight, and equals to 1, the distances between
and the nodes in
are
,
,
, and
; then the vertical paths between
and
are
,
and
.
The capacity constraint is considered first before calculating the path for the demand. For all the links in G, if the load of this link will exceed its capacity after taking the current demand bandwidth, then remove it from G temporarily, and the new physical topology is denoted as . If this link belongs to too, remove it from at the same time and denote the new virtual topology as . After this action, all links in the new topology and will meet the bandwidth demand. So the paths calculated based on and can always satisfy the capacity constrain.
To decrease the complexity of CWGA, the communication demands are classified into four cases based on the source node and destination node : (1) and both belong to the virtual topology; (2) belongs to the virtual topology, and not; (3) doesn’t belong to the virtual topology, and does; (4) Neither nor belongs to the virtual topology. The four cases will be treated differently; after calculating the path for , and will be updated according to this path. In the following text, the four cases will be described, each in turn.
CASE (1): and both belong to the virtual topology
As described in Algorithm 1, in this case, first we calculate whether there is a feasible path in (Line 2). To do this, the classical shortest path algorithm (Dijkstra algorithm) is used in function . If there is a path, then a path without changing virtual topology is acquired. Obviously, this is the optimal path for saving energy. If there is not a path, then find the connected nodes of in by calling function (Line 4). Similarly, the Dijkstra algorithm is used in function to get the distances from to the other nodes in . is connected to another node if the distance between them is limited, otherwise they are unconnected. Note that the connected nodes include itself. Then the connected nodes and the links among them in construct a connected sub-topology including of . Similarly, another connected sub-topology including can be revealed by finding the connected nodes of (Line 5). Now we have gotten two connected sub-topologies of . One includes , and the other includes . Since there is no path between and in , the two sub-topologies are not connected. According to the vertical path defined at the beginning of this section, the vertical path of two sub-topologies in can be found (Line 6). Note that, in order to find the least energy consumption path, the energy consumption is used as the weight of link instead of distance in function . Through , the two sub-topologies can be connected. Denote as , so the path from to consists of three parts: to , to , and to . The path from to denoted as can be calculated by calling the function (Line 7), likewise the path from to denoted as (Line 8). In the three parts of the , only the middle part represents additional energy consumption.
Looking at the time complexity of Algorithm 1, the complexity of the Dijkstra algorithm is known as
[
19]; then the complexity of function
is equal to the Dijkstra’s. The maximum complexity of function
and DistanceTopology are
and
, respectively. Thus, the complexity of Algorithm 1 is
.
The functions , and are used for the same objective in the other cases; they are omitted to eliminate repetition in the following.
Algorithm 1 GreenRoutingBoth |
Input: , , , |
Output: ; |
- 1:
procedure GreenRoutingBoth - 2:
- 3:
if is empty then - 4:
- 5:
- 6:
- 7:
- 8:
- 9:
- 10:
end if - 11:
end procedure
|
CASE (2): belongs to the virtual topology, and not
As described in Algorithm 2, in this case, we find the connected set of in first (Line 2), then calculate the vertical path in the next step (Line 3). Denote as . The path from to denoted as in can be calculated by (Line 4). Then the path from to can be acquired through two parts: to , and to .
In Algorithm 2, the complexity of in line 3 is . Then the complexity of Algorithm 2 is .
Algorithm 2 GreenRoutingOneVs |
Input: , , , |
Output: ; |
- 1:
procedure GreenRoutingOneVs - 2:
- 3:
- 4:
- 5:
- 6:
end procedure
|
CASE (3): doesn’t belong to the virtual topology, and does
This case is similar to the case 2. The difference is that the vertical paths are from to the connected set of . The algorithm is named as . The complexity of this algorithm is the same as Algorithm 2.
CASE (4): Neither nor belongs to the virtual topology
The processing of this case is described in Algorithm 3. In such a situation, may be empty. If it is, calculate a path in directly by calling function (Line 3). Then end the algorithm. Note that in function , the Dijkstra algorithm is used similarly, but the link weights are set to be the energy consumptions of the links. If it is not, finding the optimal path begins with . Firstly, the vertical path between and is calculated (Line 6). Denote as , then calculate the connected set of in (Line 7). and construct a connected sub-topology which includes (Line 8). Now the case is as same as the case 2, so call the Algorithm 2 in the next step (Line 9); and the optimal path will be obtained. Doing the same procedure begins with , which means calculating vertical paths between and first, then doing the series of steps gets the optimal path (Lines 10∼13). The topology consisting of the sleepy links is denoted as (Line 14). The least energy consumption path from to in denoted as is calculated in the next step (Line 15). Comparing the three paths acquired above, get one with the least additional energy consumption to . If their energy consumptions are the same, then choose the shortest one. If the distance of the paths are the same, choose one randomly (Line 16).
In this case, the complexity of function is equal to Dijkstra’s, and the complexity of other functions is . Thus the complexity of Algorithm 3 is .
Algorithm 3 GreenRoutingNone |
Input: , , , |
Output: ; |
- 1:
procedure GreenRoutingNone - 2:
if is empty then - 3:
- 4:
return - 5:
else - 6:
- 7:
- 8:
- 9:
- 10:
- 11:
- 12:
- 13:
- 14:
- 15:
- 16:
- 17:
end if - 18:
end procedure
|
Based on the complexity analysis of the four cases, the complexity of CWGA is decreased in three cases. The improved algorithm is called as ICWGA.