发明内容
本发明实施例提供一种软件定义网络中的节能方法和节能控制设备,能够使得求解效率提高,并且能够进一步提升节能效果。
本发明第一方面提供一种软件定义网络中的节能方法,包括:
节能控制设备获取软件定义网络SDN的物理网络信息,所述SDN包括多个路由器,所述每个路由器包括多个单板,所述每个单板有多个接口,所述每个路由器上的接口分别与其他路由器上的任意接口连接形成一条链路;
所述节能控制设备根据所述物理网络信息建立以所述各路由器为节点,以所述各链路为边,以所述各链路的费用、实际时延、容量为权值的原始网络图G(N,A),所述原始网络图G为赋权有向图,其中,N为所述原始网络图G的各节点的集合,A为所述原始网络图G的各边的集合,其中,所述各链路分别对应两条有向边;
所述节能控制设备根据所述各路由器、所述各路由器上的单板以及所述各链路的接口的连接关系,将所述原始网络图G中的每个节点拓展成以所述节点对应的路由器为中心,以所述节点对应的路由器上的各单板为叶节点的星型图,按照所述各链路的连接情况将所述各星型图连接得到拓展网络图G'=(N',A'),所述各路由器和所述各路由器上的各单板均为所述拓展网络图G'的节点,所述拓展网络图G'为赋权有向图,N'为所述拓展网络图G'的各节点的集合,A'为所述拓展网络图的各边的集合,所述星型图的各边容量为∞,费用为0,实际时延为0;
所述节能控制设备根据所述拓展网络图G'和所述物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,所述整数规划模型的目标优化函数为所述SDN中已建立的请求使用的单板总数;
所述节能控制设备采用启发式算法求解所述整数规划模型,获得所述SDN中各单板的使用状态;
所述节能控制设备根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式。
在本发明第一方面的第一种可能的实现方式中,所述物理网络信息包括:所述SDN中的所有路由器的总数、所述各链路的费用、所述各链路的实际时延、所述各链路的容量、所述各链路的连接情况、所述各链路的接口所属的路由器的信息、各请求的起点、所述各请求的终点、所述各请求的申请带宽、所述各请求的时延阈值、已分配路径信息。
在本发明第一方面的第二种可能的实现方式中,所述请求约束条件包括:带宽约束、时延约束、不可分流约束,其中,所述带宽约束是指分配给各请求的实际带宽不能小于所述各请求的申请带宽,所述时延约束是指分配给所述各请求的实际时延不能大于所述各请求的时延阈值,所述不可分流约束是指所述各请求只能分配一条传输路径;
所述容量约束条件是指每条边经过的流量之和不能大于所述每条边的容量。
结合本发明第一方面以及第一方面的第一种和第二种可能的实现方式,在本发明第一方面的第三种可能的实现方式中,所述目标优化函数为:
其中,N1表示所述SDN中所有单板构成的集合,x
v表示第v个单板是否为使用,若x
v的取值为1,则表示所述第v个单板被使用,若x
v的取值为0,则表示所述第v个单板没有被使用;
所述目标优化函数需要满足以下6个约束条件:
其中,D表示所述已建立的请求的总数,N1表示所述SDN中所有单板构成的集合,x
v表示是否使用了所述第v个单板,
表示所述第v个单板是否被第i个请求使用,
表示边(u,v)是否被所述第i个请求使用,
约束条件(1)中,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用,若
的取值为1,则表示所述第v个单板被所述第i个请求使用;
约束条件(2)和约束条件(3)中,s
i表示所述第i个请求的起点,t
i表示所述第i个请求的终点,
表示边(u,v)是否被所述第i个请求使用,若
的取值为1,则表示边(u,v)被所述第i个请求使用,若
的取值为0,则表示边(u,v)没有被所述第i个请求使用,
表示边(v,u)是否被所述第i个请求使用,若
的取值为1,则表示边(v,u)被所述第i个请求使用,若
的取值为0,则表示边(v,u)没有被所述第i个请求使用;
约束条件(4)中,A1表示所述各链路的集合,
表示所述第v个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第v个单板被所述第i个请求使用,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用第,
表示第u个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第u个单板被所述第i个请求使用,若
的取值为0,则表示所述第u个单板没有被所述第i个请求使用;
约束条件(5)中,di表示所述第i个请求的申请带宽,Cuv表示边(u,v)的容量;
约束条件(6)中,deluv表示边(u,v)的实际时延,delayi表示所述第i个请求的时延阈值。
在本发明第一方面的第四种可能的实现方式中,所述节能控制设备采用启发式算法求解所述整数规划模型,获得所述SDN网络中各单板的使用状态,包括:
第一步、将所述D个请求按照优先级从高到低的顺序排序,得到新请求序列,所述新请求序列的顺序依次为1…D,假设没有为所述D个请求分配初始路径,则令所述D个请求使用的单板总数fbest的初始值为0,所述D个请求对应的路径集合Paths=φ,i表示所述新请求序列的顺序,i的初始值为1;
第二步、判断i是否小于等于D;
若是,执行第四步,若否,执行第三步;
第三步、输出所述单板总数fbest和所述路径集合Paths,根据所述单板总数fbest和所述路径集合Paths确定所述SDN中各单板的使用状态;
第四步、根据所述拓展网络图G'构造所述第i个请求对应的第一剩余网络图G'f,其中,所述根据所述拓展网络G'构造所述第i个请求对应的第一剩余网络图G'f包括:
计算所述拓展网络图G'中每条边的第一剩余容量,所述每条边的第一剩余容量等于所述每条边的50%容量减去前i-1个请求占用的容量;
判断所述每条边的第一剩余容量是否小于所述第i个申请的申请带宽,将第一剩余容量小于所述第i个请求的申请带宽的边删除,将所述拓展网络图G'中被所述前i-1个请求使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i个请求对应的第一剩余网络图G'f;
第五步、在所述第一剩余网络G'
f中为所述第i个请求分配第一最短路径P
i,所述第一最短路径P
i满足以下条件:
其中,P表示在所述第一剩余网络图G'
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述单板总数fbest为fbest=f(Paths∪{Pi}),并更新所述路径集合Paths为Paths=Paths∪{Pi},其中,Pi为所述第i个请求的所述第一最短路径;
第七步、i=i+1,返回执行第二步。
在本发明第一方面的第五种可能的实现方式中,所述节能控制设备采用启发式算法求解所述整数规划模型,获得所述SDN网络中各单板的使用状态,包括:
第一步、根据所述D个请求的初始路径,确定所述D个请求使用的第一单板总数fbest,其中,fbest=f(Paths),Paths表示所述D个请求的所述初始路径的集合,S={1,…,D}表示所述D个请求的集合,令第二单板总数gbest=fbest,迭代次数的num初始值为1;
第二步、判断迭代次数num是否小于等于预设迭代次数M;
若是,执行第三步,若否,执行第十二步;
第三步、判断S是否为空集;
若是,执行第四步,若否,执行第五步;
第四步、num=num+1,执行第十步;
第五步、计算
S=S-{i
*},其中,P
i表示第i个请求对应的路径;
第六步、根据所述拓展网络图G'构造所述第i*个请求对应的第二剩余网络图G″f;
其中,所述根据所述拓展网络G'构造所述第i*个请求对应的第二剩余网络图G″f包括:
释放所述第i
*个请求占用的容量,计算所述拓展网络图G'中每条边的第二剩余容量,所述第二剩余容量等于所述每条边的50%容量减去路径集合
使用的每条边的容量,
为所述第i
*个请求的初始路径;
判断所述每条边的第二剩余容量是否小于所述第i
*个请求的申请带宽
将第二剩余容量小于所述第i
*个请求的申请带宽的边删除,将所述拓展网络图G'中已经被使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i
*个请求对应的第二剩余网络图
第七步、在所述第二剩余网络G″
f中为所述第i
*个请求分配第二最短路径
所述第二最短路径
满足以下条件:
其中,
为所述第i
*个请求的初始路径,P为在所述第二剩余网络图G″
f中满足所述第i
*个请求的带宽约束条件和时延约束条件的路径集合,计算第三单板总数fnew,
第八步、判断所述第三单板总数fnew是否小于所述第二单板总数gbest;
若是,执行第九步,若否,执行第三步;
第十步、判断所述第二单板总数gbest是否大于等于第一单板总数fbest;
若是,执行第十二步,若否,执行第十一步;
第十一步、令fbest=gbest,S={1,…,D},返回执行第二步;
第十二步、结束。
在本发明第一方面的第六种可能的实现方式中,所述节能控制设备根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式之后,还包括:
所述节能控制设备对所述SDN进行拓扑修补,得到修补后的SDN,所述节能控制设备对所述SDN进行拓扑修补包括:为所述SDN中的每个请求分配一条新路径,使所述每个请求均有两条可用路径,将所述SDN中新路径对应的新增单板打开,且所述新路径应该满足使所述修补后的SDN使用的单板总数最少。
在本发明第一方面的第七种可能的实现方式中,所述节能控制设备为所述SDN中的每个请求分配一条新路径,包括:
第一步、假设共有D个请求,对所述D个请求按照使用单板总数f(Pi)从小到大排序,得到排序后的新请求序列为1…D,排序后的所述D个请求的路径集合Paths={P1,…,PD},其中,f(Pi)表示第i个请求使用的单板总数,所述D个请求使用的单板总数为fbest,其中,fbest=f(Paths),Paths表示所述D个请求对应的路径集合;
第二步、判断i是否小于等于D,i表示请求的顺序,若是,执行第三步,若否,执行第四步;
第三步、根据所述拓展网络图G'构造所述第i个请求的第三剩余网络图G″′f,执行第五步;
所述根据所述拓展网络G'构造所述第i个请求的第三剩余网络图G″′f包括:
删除所述第i个请求的初始路径Pi;
计算所述拓展网络图G'中每条边的第三剩余容量,所述第三剩余容量等于所述每条边50%容量减去所述路径集合Paths使用的每条边的容量;
判断所述每条边的第三剩余容量是否小于所述第i个请求的申请带宽di,将第三剩余容量小于所述第i个请求的申请带宽di的边删除,将所述拓展网络图G'中已经被使用的单板对应的节点的入边权值赋为0,其余没有被使用的单板对应的节点的入边权值赋为1,得到所述第i个请求对应的第三剩余网络图G″′f;
第四步、输出所述单板总数fbest和所述路径集合Paths;
第五步、在所述第三剩余网络G″′
f中为所述第i个请求分配第三最短路径P′
i,所述第三最短路径P′
i满足以下条件:
其中,P表示在所述第三剩余网络G″′
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述D个请求对应的路径集合Paths为Paths=Paths∪{P′i},并根据所述更新后的路径集合Paths更新所述D个请求使用的单板总数fbest为fbest=f(Paths);
第七步、i=i+1,返回执行第二步。
本发明第二方面提供一种节能控制设备,包括:
获取模块,用于获取软件定义网络SDN的物理网络信息,所述SDN包括多个路由器,所述每个路由器包括多个单板,所述每个单板有多个接口,所述每个路由器上的接口分别与其他路由器上的任意接口连接形成一条链路;
原始网络图建立模块,用于根据所述物理网络信息建立以所述各路由器为节点,以所述各链路为边,以所述各链路的费用、实际时延、容量为权值的原始网络图G(N,A),所述原始网络图G为赋权有向图,其中,N为所述原始网络图G的各节点的集合,A为所述原始网络图G的各边的集合,其中,所述各链路分别对应两条有向边;
拓展网络图建立模块,用于根据所述各路由器、所述各路由器上的单板以及所述各链路的接口的连接关系,将所述原始网络图G中的每个节点拓展成以所述节点对应的路由器为中心,以所述节点对应的路由器上的各单板为叶节点的星型图,按照所述各链路的连接情况将所述各星型图连接得到拓展网络图G'=(N',A'),所述各路由器和所述各路由器上的各单板均为所述拓展网络图G'的节点,所述拓展网络图G'为赋权有向图,N'为所述拓展网络图G'的各节点的集合,A'为所述拓展网络图的各边的集合,所述星型图的各边容量为∞,费用为0,实际时延为0;
整数规划模型建立模块,用于根据所述拓展网络图G'和所述物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,所述整数规划模型的目标优化函数为所述SDN中已建立的请求使用的单板总数;
整数规划模型求解模块,用于采用启发式算法求解所述整数规划模型,获得所述SDN中各单板的使用状态;
节能控制模块,用于根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式。
在本发明第二方面的第一种可能的实现方式中,所述物理网络信息包括:所述SDN中的所有路由器的总数、所述各链路的费用、所述各链路的实际时延、所述各链路的容量、所述各链路的连接情况、所述各链路的接口所属的路由器的信息、各请求的起点、所述各请求的终点、所述各请求的申请带宽、所述各请求的时延阈值、已分配路径信息。
在本发明第二方面的第二种可能的实现方式中,所述请求约束条件包括:带宽约束、时延约束、不可分流约束,其中,所述带宽约束是指分配给各请求的实际带宽不能小于所述各请求的申请带宽,所述时延约束是指分配给所述各请求的实际时延不能大于所述各请求的时延阈值,所述不可分流约束是指所述各请求只能分配一条传输路径;
所述容量约束条件是指每条边经过的流量之和不能大于所述每条边的容量。
结合本发明第二方面以及第二方面的第一种和第二种可能的实现方式,在本发明第二方面的第三种可能的实现方式中,所述目标优化函数为:
其中,N1表示所述SDN中所有单板构成的集合,x
v表示第v个单板是否为使用,若x
v的取值为1,则表示所述第v个单板被使用,若x
v的取值为0,则表示所述第v个单板没有被使用;
所述目标优化函数需要满足以下6个约束条件:
其中,D表示所述已建立的请求的总数,N1表示所述SDN中所有单板构成的集合,x
v表示是否使用了所述第v个单板,
表示所述第v个单板是否被第i个请求使用,
表示边(u,v)是否被所述第i个请求使用,
约束条件(1)中,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用,若
的取值为1,则表示所述第v个单板被所述第i个请求使用;
约束条件(2)和约束条件(3)中,s
i表示所述第i个请求的起点,t
i表示所述第i个请求的终点,
表示边(u,v)是否被所述第i个请求使用,若
的取值为1,则表示边(u,v)被所述第i个请求使用,若
的取值为0,则表示边(u,v)没有被所述第i个请求使用,
表示边(v,u)是否被所述第i个请求使用,若
的取值为1,则表示边(v,u)被所述第i个请求使用,若
的取值为0,则表示边(v,u)没有被所述第i个请求使用;
约束条件(4)中,A1表示所述各链路的集合,
表示所述第v个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第v个单板被所述第i个请求使用,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用第,
表示第u个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第u个单板被所述第i个请求使用,若
的取值为0,则表示所述第u个单板没有被所述第i个请求使用;
约束条件(5)中,di表示所述第i个请求的申请带宽,Cuv表示边(u,v)的容量;
约束条件(6)中,deluv表示边(u,v)的实际时延,delayi表示所述第i个请求的时延阈值。
在本发明第二方面的第四种可能的实现方式中,所述整数规划模型求解模块具体用于:
第一步、将所述D个请求按照优先级从高到低的顺序排序,得到新请求序列,所述新请求序列的顺序依次为1…D,假设没有为所述D个请求分配初始路径,则令所述D个请求使用的单板总数fbest的初始值为0,所述D个请求对应的路径集合Paths=φ,i表示所述新请求序列的顺序,i的初始值为1;
第二步、判断i是否小于等于D;
若是,执行第四步,若否,执行第三步;
第三步、输出所述单板总数fbest和所述路径集合Paths,根据所述单板总数fbest和所述路径集合Paths确定所述SDN中各单板的使用状态;
第四步、根据所述拓展网络图G'构造所述第i个请求对应的第一剩余网络图G'f,其中,所述根据所述拓展网络G'构造所述第i个请求对应的第一剩余网络图G'f包括:
计算所述拓展网络图G'中每条边的第一剩余容量,所述每条边的第一剩余容量等于所述每条边的50%容量减去前i-1个请求占用的容量;
判断所述每条边的第一剩余容量是否小于所述第i个申请的申请带宽,将第一剩余容量小于所述第i个请求的申请带宽的边删除,将所述拓展网络图G'中被所述前i-1个请求使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i个请求对应的第一剩余网络图G'f;
第五步、在所述第一剩余网络G'
f中为所述第i个请求分配第一最短路径P
i,所述第一最短路径P
i满足以下条件:
其中,P表示在所述第一剩余网络图G'
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述单板总数fbest为fbest=f(Paths∪{Pi}),并更新所述路径集合Paths为Paths=Paths∪{Pi},其中,Pi为所述第i个请求的所述第一最短路径;
第七步、i=i+1,返回执行第二步。
在本发明第二方面的第五种可能的实现方式中,所述整数规划模型求解模块具体用于:
第一步、根据所述D个请求的初始路径,确定所述D个请求使用的第一单板总数fbest,其中,fbest=f(Paths),Paths表示所述D个请求的所述初始路径的集合,S={1,…,D}表示所述D个请求的集合,令第二单板总数gbest=fbest,迭代次数的num初始值为1;
第二步、判断迭代次数num是否小于等于预设迭代次数M;
若是,执行第三步,若否,执行第十二步;
第三步、判断S是否为空集;
若是,执行第四步,若否,执行第五步;
第四步、num=num+1,执行第十步;
第五步、计算
S=S-{i
*},其中,P
i表示第i个请求对应的路径;
第六步、根据所述拓展网络图G'构造所述第i*个请求对应的第二剩余网络图G″f;
其中,所述根据所述拓展网络G'构造所述第i*个请求对应的第二剩余网络图G″f包括:
释放所述第i
*个请求占用的容量,计算所述拓展网络图G'中每条边的第二剩余容量,所述第二剩余容量等于所述每条边的50%容量减去路径集合
使用的每条边的容量,
为所述第i
*个请求的初始路径;
判断所述每条边的第二剩余容量是否小于所述第i
*个请求的申请带宽
将第二剩余容量小于所述第i
*个请求的申请带宽的边删除,将所述拓展网络图G'中已经被使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i
*个请求对应的第二剩余网络图G″
f;
第七步、在所述第二剩余网络G″
f中为所述第i
*个请求分配第二最短路径
所述第二最短路径
满足以下条件:
其中,
为所述第i
*个请求的初始路径,P为在所述第二剩余网络图G″
f中满足所述第i
*个请求的带宽约束条件和时延约束条件的路径集合,计算第三单板总数fnew,
第八步、判断所述第三单板总数fnew是否小于所述第二单板总数gbest;
若是,执行第九步,若否,执行第三步;
第十步、判断所述第二单板总数gbest是否大于等于第一单板总数fbest;
若是,执行第十二步,若否,执行第十一步;
第十一步、令fbest=gbest,S={1,…,D},返回执行第二步;
第十二步、结束。
在本发明第二方面的第六种可能的实现方式中,所述节能控制设备还包括:
拓扑修补模块,用于对所述SDN进行拓扑修补,得到修补后的SDN,所述拓扑修补模块为所述SDN中的每个请求分配一条新路径,使所述每个请求均有两条可用路径,将所述SDN中新路径对应的新增单板打开,且所述新路径应该满足使所述修补后的SDN使用的单板总数最少。
在本发明第二方面的第七种可能的实现方式中,所述拓扑修补模块具体用于:
第一步、假设共有D个请求,对所述D个请求按照使用单板总数f(Pi)从小到大排序,得到排序后的新请求序列为1…D,排序后的所述D个请求的路径集合Paths={P1,…,PD},其中,f(Pi)表示第i个请求使用的单板总数,所述D个请求使用的单板总数为fbest,其中,fbest=f(Paths),Paths表示所述D个请求对应的路径集合;
第二步、判断i是否小于等于D,i表示请求的顺序,若是,执行第三步,若否;
第三步、根据所述拓展网络图G'构造所述第i个请求的第三剩余网络图G″′f,执行第五步;
所述根据所述拓展网络G'构造所述第i个请求的第三剩余网络图G″′f包括:
删除所述第i个请求的初始路径Pi;
计算所述拓展网络图G'中每条边的第三剩余容量,所述第三剩余容量等于所述每条边50%容量减去所述路径集合Paths使用的每条边的容量;
判断所述每条边的第三剩余容量是否小于所述第i个请求的申请带宽di,将第三剩余容量小于所述第i个请求的申请带宽di的边删除,将所述拓展网络图G'中已经被使用的单板对应的节点的入边权值赋为0,其余没有被使用的单板对应的节点的入边权值赋为1,得到所述第i个请求对应的第三剩余网络图G″′f;
第四步、输出所述单板总数fbest和所述路径集合Paths;
第五步、在所述第三剩余网络G″′
f中为所述第i个请求分配第三最短路径P′
i,所述第三最短路径P′
i满足以下条件:
其中,P表示在所述第三剩余网络G″′
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述D个请求对应的路径集合Paths为Paths=Paths∪{P′i},并根据所述更新后的路径集合Paths更新所述D个请求使用的单板总数fbest为fbest=f(Paths);
第七步、i=i+1,返回执行第二步。
本实施例提供的软件定义网络中的节能方法和节能控制设备,节能控制设备根据原始网络构造了能直观显示路由器、单板和链路连接关系的拓展网络,并在拓展网络的基础上,将所有的考察因素通过数学抽象建立了一个节能优化的0-1整数规划模型,在求解该整数规划模型时采用启发式求解方法,而非通过软件求解,由此提高了计算收敛速度,同时,通过整数规划模型使网络中使用的单板总数减少,节能控制设备根据网络中各单板的使用情况将没有被使用的单板睡眠,提高了能源有效利用率,减少了网络的总能耗。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种软件定义网络中的节能方法的流程图,该方法可以由节能控制设备执行,该节能控制设备可以为SDN网络中的控制器,也可以是一个独立设置的设备,如图1所示,本实施例的方法可以包括以下步骤:
步骤101、节能控制设备获取SDN的物理网络信息。
软件定义网络(Software Defined Network,简称SDN)包括多个路由器,每个路由器包括多个单板,每个单板有多个接口,每个路由器上的每个接口分别与其他路由器上的任意接口连接形成一条链路。虽然,每个路由器上的接口可以与其他路由器上的任意接口连接形成一条,但是一个接口只能形成一条链路。
本实施例中,节能控制设备获取的SDN的物理网络信息包括:SDN中的所有路由器的总数、各链路的费用、各链路的实际时延、各链路的容量、各链路的连接情况、各链路的接口所属的路由器的信息、各请求的起点、各请求的终点、各请求的申请带宽、各请求的时延阈值、已分配路径信息。这里,各链路的费用可以为路由器的跳数,也可以是使用该链路需要支付给运营商的费用,或者,费用也可以是路由器跳数和运营商费用综合考虑的结果。各请求的时延阈值是指各请求对应的路径上各边时延的和,节能控制设备在获取SDN的物理网络信息之前,网络中已经存在一些请求,并且为这些请求分配了路径,已分配路径信息就是指在使用本实施例的节能方法之前,SDN中分配给每个请求的初始路径,各链路的连接情况是指SDN网络中实际链路的连接情况。
步骤102、节能控制设备根据物理网络信息建立以各路由器为节点,以各链路为边,以各链路的费用、实际时延、容量为权值的原始网络图G(N,A)。
其中,原始网络图G为赋权有向图,N为原始网络图G的各节点的集合,即各路由器的结合,A为原始网络图G的各边的集合,其中,各链路分别对应两条有向边,一条边为入边,一条边为出边。
步骤103、节能控制设备根据各路由器、各路由器上的单板以及各链路的接口的连接关系,将原始网络图G中的每个节点拓展成以节点对应的路由器为中心,以节点对应的路由器上的各单板为叶节点的星型图,按照各链路的连接情况将各星型图连接得到拓展网络图G'。
本实施例中,节能控制设备以每个路由器为中心,各路由器上的单板为叶节点为每个路由器构造一个星型图,然后,按照各链路的实际连接情况将对应的链路连接起来就得到了原始网络图G的拓展网络图G'=(N',A'),各路由器和各路由器上的各单板均为拓展网络图G'的节点,拓展网络图G'为赋权有向图,N'为拓展网络图G'的各节点的集合,A'为拓展网络图G'的各边的集合,星型图的各边容量为∞,费用为0,实际时延为0,单板之间形成的各边的容量、费用、实际时延和原始网络图G中各边的容量、费用、实际时延相等。
步骤104、节能控制设备根据拓展网络图G'和物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,整数规划模型的目标优化函数为SDN中已建立的请求使用的单板总数。
其中,请求约束条件包括:带宽约束、时延约束、不可分流约束,其中,带宽约束是指分配给各请求的实际带宽不能小于各请求的申请带宽,时延约束是指分配给各请求的实际时延不能大于各请求的时延阈值,不可分流约束是指各请求只能分配一条传输路径。容量约束条件是指每条边经过的流量之和不能大于每条边的容量。
本实施例中,目标优化函数为:其中,N1表示SDN中所有单板构成的集合,xv表示第v个单板是否为使用,若xv的取值为1,则表示第v个单板被使用,若xv的取值为0,则表示第v个单板没有被使用。
该整数规划模型的目的就是通过优化使网络中使用的单板总数尽可能的少,为了实现这个目的,目标优化函数需要满足以下6个约束条件:
其中,D表示已建立的请求的总数,N1表示SDN中所有单板构成的集合,x
v表示是否使用了第v个单板,
表示第v个单板是否被第i个请求使用,
表示边(u,v)是否被第i个请求使用,
约束条件(1)中,若
的取值为0,则表示第v个单板没有被第i个请求使用,若
的取值为1,则表示第v个单板被第i个请求使用;
约束条件(2)和约束条件(3)中,s
i表示第i个请求的起点,t
i表示第i个请求的终点,
表示边(u,v)是否被第i个请求使用,若
的取值为1,则表示边(u,v)被第i个请求使用,若
的取值为0,则表示边(u,v)没有被第i个请求使用,
表示边(v,u)是否被第i个请求使用,若
的取值为1,则表示边(v,u)被第i个请求使用,若
的取值为0,则表示边(v,u)没有被第i个请求使用。这里边(v,u)和边(u,v)属于同一条链路,该链路是单板u和v之间形成的链路。
约束条件(4)中,A1表示各链路的集合,
表示第v个单板是否被第i个请求使用,
若
的取值为1,则表示第v个单板被第i个请求使用,若
的取值为0,则表示第v个单板没有被第i个请求使用第,
表示第u个单板是否被第i个请求使用,
若
的取值为1,则表示第u个单板被第i个请求使用,若
的取值为0,则表示第u个单板没有被第i个请求使用;
约束条件(5)中,di表示第i个请求的申请带宽,Cuv表示边(u,v)的容量;
约束条件(6)中,deluv表示边(u,v)的实际时延,delayi表示第i个请求的时延阈值。
步骤105、节能控制设备采用启发式算法求解整数规划模型,获得SDN中各单板的使用状态。
本实施例中,在求解整数规划模型时采用启发式算法进行求解,和现有技术中采用软件Cplex求解整数规划模型相比,本实施例采用启发式算法求解的效率更高。
本实施例中主要采用以下两种启发式算法求解,这里先简单介绍一下两种方法,具体的求解步骤在其他实施例中详细说明。第一种启发式算法:首先,按各请求的优先级为各请求排序,然后,按照各请求的顺序,依次为各请求在剩余网络中分配满足该请求的新增单板数最少的路径,直至为所有请求分配完路径为止。第一种启发式算法的主要思想在于,假设预先没有为各请求分配路径,首先,在拓展网络图中为第一个请求分配一个使用单板数最少的路径,然后,确定第二个请求的剩余网络,在剩余网络中为第二个请求分配一个路径,该请求满足使用的新增单板数最少,依次类推,直到为所有请求分配完路径,由于为每一个请求分配路径时都选择新增单板数最少的路径,从而保证了所有请求使用的单板总数最少。
第二种启发算法是按从初始路径出发,尽量少调整的思路提出的。从所有请求的已有分配路径出发,找到去除某条路径后,使用单板总数最少的对应请求,为该请求在剩余网络中重新分配新路径;若重新分配路径后,使用的单板总数降低,则更新路径及该轮循环的最优值;重复上述步骤,直至所有请求均考虑过为止;若该轮循环的最优值较初始目标值降低,可考虑多轮循环,直至相邻两轮循环目标没有改善或达到最大迭代数目为止。
步骤106、节能控制设备根据SDN中各单板的使用状态,控制SDN中没有被使用的单板进入睡眠模式。
节能控制设备获知SDN中各单板的使用状态后,使空闲的单板睡眠,本实施例中,通过整数规划模型,使得网络中使用的单板总数减少,而空闲单板的数量增加,通过使空闲单板睡眠,达到了节能的目的。
本实施例提供的软件定义网络中的节能方法,节能控制设备根据原始网络构造了能直观显示路由器、单板和链路连接关系的拓展网络,并在拓展网络的基础上,将所有的考察因素通过数学抽象建立了一个节能优化的0-1整数规划模型,在求解该整数规划模型时采用启发式求解方法,而非通过软件求解,由此提高了计算收敛速度,同时,通过整数规划模型使网络中使用的单板总数减少,节能控制设备根据网络中各单板的使用情况将没有被使用的单板睡眠,提高了能源有效利用率,减少了网络的总能耗。
下面采用几个具体的实施例,对图1所示方法实施例的技术方案进行详细说明。
图2为本发明实施例提供的一种启发式算法的流程图,该启发式算法可以用于求解实施例一中的整数规划模型,该启发式算法的主要思想在于,首先,假设预先没有为各请求分配路径,按各请求的优先级顺序为各请求排序,然后,按照各请求的顺序,依次为各请求在剩余网络中分配满足该请求的新增单板数最少的路径,直至为所有请求分配完路径为止。如图2所示,本实施例的方法可以包括以下步骤:
步骤201、将D个请求按照优先级从高到低的顺序排序,得到新请求序列。
排序后的新请求序列的顺序依次为1…D,本实施例的一个前提条件是不考虑为D个请求预先分配的初始路径,重新为这D个请求分配路径,因此,在本实施例中,令D个请求使用的单板总数fbest的初始值为0,D个请求对应的路径集合Paths=φ,i表示新请求序列的顺序,i的初始值为1。
步骤202、判断i是否小于等于D。
若是,执行步骤204,若否,执行步骤203。
步骤203、输出单板总数fbest和路径集合Paths。
当步骤202的判断结果为否,即i大于D,则执行本步骤,节能控制设备输出单板总数fbest和路径集合Paths,输出的单板总数fbest即重新为D个请求分配的新路径使用的单板总数,路径集合Paths即重新为D个请求分配的新路径的集合,节能控制设备在输出单板总数fbest和路径集合Paths之后,根据单板总数fbest和路径集合Paths确定SDN中各单板的使用状态,即根据单板总数fbest和路径集合Paths确定SDN中哪些单板被使用了哪些没有被使用。
步骤204、根据拓展网络图构造第i个请求对应的第一剩余网络图。
当步骤202的判断结果为是的情况下,即i小于等于D,则执行本步骤,其中,根据拓展网络G'构造第i个请求对应的第一剩余网络图G'f,具体为:
首先,计算拓展网络图G'中每条边的第一剩余容量,每条边的第一剩余容量等于每条边的50%容量减去前i-1个请求占用的容量,由于已经为前i-1个请求分配了路径,这前i-1个请求占用了拓展网络图G'中的一些边,因此,在计算第i个请求对应的第一剩余容量时,将前i-1个请求占用的容量减去。
然后,判断每条边的第一剩余容量是否小于第i个申请的申请带宽,将第一剩余容量小于第i个请求的申请带宽的边删除,将SDN中被前i-1个请求使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到第i个请求对应的第一剩余网络图G'f。
步骤205、在第一剩余网络图中为第i个请求分配第一最短路径。
该第一最短路径P
i应该满足以下条件:
其中,P表示在第一剩余网络图G'
f中满足第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示路径集合P使用的单板总数。在剩余网络图G'
f中满足带宽约束条件和时延约束条件的路径可能有多条,本实施例中需要从这多条路径中选择一条最短路径,该最短路径即使用单板总数最少的路径。这里,带宽约束条件指分配给第i个请求的路径上的每条边的实际带宽不能大于该边的容量的一半,时延约束条件指分配给第i个请求的路径的总的时延不能大于该第i个请求的时延阈值。
步骤206、更新单板总数fbest和路径集合Paths。
具体地,将单板总数fbest更新为fbest=f(Paths∪{Pi}),将路径集合Paths更新为Paths=Paths∪{Pi},也就是说,在为前i-1个请求分配的路径的基础上并上为第i个请求分配的新路径,得到前i个请求的路径集合,根据新的路径集合更新使用的单板总数,其中,Pi为步骤206中计算得到的第i个请求的第一最短路径。
步骤207、i=i+1。
步骤207之后,返回执行步骤202。
图3为本发明实施例提供的另一种启发式算法的流程图,该启发式算法可用于求解实施例一中的整数规划模型,该启发式算法的主要思想是按从初始路径出发,尽量少调整的思路提出的。从所有请求的已有分配路径出发,找到去除某条路径后,使用单板总数最少的对应请求,为该请求在剩余网络中重新分配新路径;若重新分配路径后,使用的单板总数降低,则更新路径及该轮循环的最优值;重复上述步骤,直至所有请求均考虑过为止;若该轮循环的最优值较初始目标值降低,可考虑多轮循环,直至相邻两轮循环目标没有改善或达到最大迭代数目为止。如图3所示,本实施例提供的方法,包括以下步骤:、
步骤301、根据D个请求的初始路径,确定D个请求使用的第一单板总数fbest,令fbest=f(Paths),令第二单板总数gbest=fbest,迭代次数num的初始值为1,S={1,…,D}表示D个请求的集合。
其中,Paths表示D个请求对应的初始路径的集合,S={1,…,D}表示D个请求的集合,第一单板总数
步骤302、判断num是否小于等于预设的迭代次数M。
若是,执行步骤303、若否,执行步骤312。
步骤303、判断S是否为空集。
当步骤302中的判断结果为是的情况下,即num小于等于M,执行本步骤,判断S是否为空集,若是,执行步骤304,若否,执行步骤305。
步骤304、num=num+1,执行步骤310。
当步骤303的判断结果为是,即S为空集时,执行本步骤。
步骤305、计算
S=S-{i
*},其中,P
i表示第i个请求的初始路径。
当步骤303的判断结果为否,即S不为空集时,执行本步骤,即从S中的所有请求中找到去除某条路径后,使用单板总数最少的请求i*,并在找出该请求i*后,从S中删除请求i*。
步骤306、根据拓展网络图构造第i*个请求对应的第二剩余网络图。
其中,根据拓展网络G'构造第i*个请求对应的第二剩余网络图G″f,具体为:
首先,释放第i
*个请求占用的容量,由于要为第i
*个请求重新分配新路径,需要将第i
*个请求占用的容量释放,这里,释放第i
*个请求占用的容量,即将第i
*个请求分配的初始路径上各边对应的容量释放,而并不是删除各边。释放第i
*个请求占用的容量后,计算拓展网络图G'中每条边的第二剩余容量,第二剩余容量等于每条边的50%容量减去路径集合
使用的每条边的容量,
为第i
*个请求的初始路径。即第i
*个请求对应的第二剩余容量等于每条边的50%容量减去除第i
*个请求外的其他请求的容量。
判断每条边的第二剩余容量是否小于第i
*个请求的申请带宽
将第二剩余容量小于第i
*个请求的申请带宽的边删除,将SDN网络中已经被使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到第i
*个请求对应的第二剩余网络图G″
f。
步骤307、在第二剩余网络图中为第i*个请求分配第二最短路径。
该第二最短路径
需要满足以下条件:
其中,
为第i
*个请求的初始路径,P为在第二剩余网络图G″
f中满足第i
*个请求的带宽约束条件和时延约束条件的路径集合,计算第三单板总数fnew,
步骤308、判断第三单板总数fnew是否小于第二单板总数gbest。
若是,执行步骤309,若否,执行步骤303。
步骤309、令gbest=fnew,并更新路径集合Paths,返回执行步骤303。
当步骤308的判断结果为是,即fnew小于gbest,执行本步骤,令gbest=fnew,并更新路径集合Paths为
步骤310、判断第二单板总数gbest是否大于等于第一单板总数fbest。
当步骤308的判断结果为否,执行本步骤,若是,执行步骤312,若否,执行步骤311。
步骤311、令fbest=gbest,S={1,…,D},返回执行步骤302。
步骤312、结束。
在上述实施例一的基础上,本发明实施例四中,在节能控制设备控制SDN中没有被使用的单板进入睡眠模式之后,节能控制设备对SDN进行拓扑修补,得到修补后的SDN,节能控制设备对SDN进行拓扑修补具体为:节能控制设备为SDN网络的每个请求分配一条新路径,使每个请求均有两条可用路径,将SDN中新路径对应的新增单板打开,且新路径应该满足使修补后的SDN使用的单板总数最少。如图4所示,图4为本发明实施例提供的一种拓扑修补的方法的流程图,本实施例提供的方法包括以下步骤:
步骤401、对D个请求按照使用单板总数从小到大排序,得到排序后的新请求序列为1…D,新请求序列的路径集合用Paths表示,D个请求使用的单板总数为fbest,fbest=f(Paths)。
本实施例中,假设SDN网络中有D个请求,第i个请求的使用单板总数用f(Pi)表示,按照使用单板总数从小到大排序,排序后的D个请求的路径集合Paths={P1,…,PD},D个请求使用的单板总数为fbest,fbest=f(Paths),这里的单板总数为使用本发明实施例一的方法进行节能后的单板总数,路径集合也是指使用本发明实施例一的方法进行节能后分配的路径集合。
步骤402、判断i是否小于等于D。
i表示请求的顺序,若是,执行步骤403,若否,执行步骤404。
步骤403、根据拓展网络图构造第i个请求对应的第三剩余网络图,执行步骤405。
当步骤402中的判断结果为是,即i小于等于D时,执行本步骤,根据拓展网络G'构造第i个请求的第三剩余网络图G″′f,具体为:
首先,删除第i个请求的初始路径Pi,这里的初始路径是指通过上述的节能优化方法重新为第i个请求分配的路径。
然后,计算拓展网络图G'中每条边的第三剩余容量,第三剩余容量等于每条边的50%容量减去路径集合Paths使用的每条边的容量,这里的路径集合包括D个请求的初始路径以及为前i-1个请求分配的新增路径。
最后,判断每条边的第三剩余容量是否小于第i个请求的申请带宽di,将第三剩余容量小于第i个请求的申请带宽di的边删除,将拓展网络图G'中已经被使用的单板对应的节点的入边权值赋为0,其余没有被使用的单板对应的节点的入边权值赋为1,得到第i个请求对应的第三剩余网络图G″′f。
步骤404、输出单板总数fbest和路径集合Paths。
当步骤402中的判断结果为否,即i大于D时,执行本步骤,输出单板总数fbest和路径集合Paths,这里输出的单板总数fbest是为每个请求新增加一条路径后,各路径使用的总单板数,需要明确的是,增加新路径后的单板总数不一定增加,如果在已经开启的单板中能够为每个请求寻找到一条新增路径,那么单板总数将保持不变。在输出单板总数fbest和路径集合Paths后,控制根据单板总数fbest和路径集合Paths确定SDN中各单板的使用状态,如果为各请求分配另一条新路径,增加了单板数量,则需要开启新增的单板。
步骤405、在第三剩余网络G″′f中为第i个请求分配第三最短路径P′i。
第三最短路径P′
i满足以下条件:
其中,P表示在第三剩余网络G″′
f中满足第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示路径集合P使用的单板总数。
步骤406、更新单板总数fbest和路径集合Paths。
具体地,更新D个请求对应的路径集合Paths为Paths=Paths∪{P′i},并根据更新后的路径集合Paths更新D个请求使用的单板总数fbest为fbest=f(Paths)。
步骤407、i=i+1。
步骤407之后,返回执行步骤402。
本实施例提供的方法,针对节能后网络进行拓扑修补,为每个请求重新增加一条路径,使每个请求都以后两条可用路径,增加整个网络的可靠性。
以下通过一个具体的例子说明,对本发明图1所示的方法进行说明,图5为一个SDN网络的结构意图,图6为图5所示SDN网络的原始网络图的结构示意图,图7为图5所示的SDN网络的拓展网络图的结构示意图,请参照图5-图7。
如图5所示,SDN网络包括三个路由器A、B、C,每个路由器各有4个单板,路由器A的单板分别为A1、A2、A3、和A4,路由器B的单板分别为B1、B2、B3、B4,路由器C的单板分别为C1、C2、C3、C4。单板间通过接口有链路相连。假设每条边的费用为1,容量均为20M,时延阈值为1。现有3个请求分配在网络上,具体如下:
Lsp1:{A,B,5M,∞},路径为P1:A->A1->B2->B;
Lsp2:{A,C,5M,∞},路径为P2:A->A2->B4->B->B3->C1->C;
Lsp3:{B,C,5M,∞},路径为P3:B->B4->C4->C。
可见,初始情况下,使用的单板总数为7,分别使用了单板A1、B2、A2、B4、B3、C1、B4、C4。使用了4条边A1->B2、A2->B4、B3->C1和B4->C4,总费用为4,用到的链路利用率为25%。
对该问题进行节能优化的步骤如下:
首先,建立原始网络图G(N,A),N为路由器代表的节点集合,A为边集,如图6所示,图6即为SDN网络的原始网络图G。
其次,根据原始网络图G(N,A)构建拓展网络图G'(N',A'),如图7所示,拓展网络图G'(N',A')是以路由器A、B、C为中心、各路由器的单板为叶节点形成的三个星型图连接组成,以路由器A为中心构成的星型图的叶节点分别为路由器A的四个单板A1、A2、A3、A4,以路由器B为中心构成的星型图的叶节点分别为路由器B的单板B1、B2、B3、B4,以路由器C为中心构成的星型图的叶节点分别为路由器C的单板C1、C2、C3、C4。图7中,N'为路由器和单板代表的所有节点集合,N'的元素个数为15。A'为实线和虚线构成集合,其中虚线表示路由器和单板之间的链路,实现表示单板和单板之间的链路,每条链路均为双向边,虚线表示的边容量为∞,费用为0。
节能控制设备根据拓展网络图G'和物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,可得到整数规划模型如下:
采用第一种启发式算法求解该整数规划模型,具体包括以下步骤:
(1)按照各请求优先级对各请求排序,假设排序后顺序为请求1、2、3;
(2)为请求1在G'(N',A')中分配路径,得到请求1的路径P1:A->A1->B2->B,该路径P1,在请求1的所有路径中使用的单板数最少。
(3)为请求2分配路径,计算请求2对应的第一剩余网络,由于边A-B可用容量为0,小于请求2的申请带宽,因此,删去边A-B,由于单板A1、B2已经被请求1使用,因此,将单板A1、B2的入边权值设为0,将拓展网络图G'(N',A')中其余单板的入边权值设为1,得到请求2对应的第一剩余网络G'f,该第一剩余网络图G'f为赋权有向图。以新增单板数最少为目标为请求2分配路径,即在请求2对应的第一剩余网络G'f中找从A到C的最短路径,即权重最小的路。可以利用Dijkstra算法求最短路径,得到最短路径P2:A->A1->C1->C。
(4)为请求3分配路径。按照步骤(3)的方法构造请求3对应的第一剩余网络,以新增单板数最少为目标为请求3分配路径,即在请求3对应的第一剩余网络中为请求3分配一条从B到C的最短路径,得到最短路径:B->B2->C1->C,结束。
通过本实施例提供的方法,使得使用的单板总数为3,总费用为3,用到的链路利用率均为25%。在没有优化之前,使用的单板总数为7,总费用为4,通过该结果可知,使得单板使用总数大大降低,总费用也降低。
以下将以第二种启发式算法求解上述的整数规划模型,具体包括以下步骤:
(1)使用的第一单板总数fbest=f(Paths)=7,Paths表示3个请求使用的路径集合,请求集合S={1,2,3},第二单板总数gbest=fbest=7,迭代次数的初始值num=1;
(2)计算
S=S-{i
*}得到S={1,3},即先调整请求2的路径。释放P2占用容量,计算拓展网络图G'中各边的第二剩余容量,减去路径集合
使用的边的容量,即减去边A1-B2、B4-C4,将单板A1、B2、B4、C4的入边权重设为0,其余单板权重设为1,得到第i
*个请求对应的第二剩余网络G'
f。在G'
f中利用Dijkstra求从A到C的最短路径,得到新路径P2:A- >A1->C1->C,请求2的初始路径为A ->A2->B4->B->B3->C1->C,计算第三单板总数fnew,
即请求1和请求3的初始路径并上请求2的新路径所使用的单板数,得到fnew=5,gbest=fnew=5,更新路径集合Paths。
(3)计算
S=S-{i
*}得到S={1},即调整请求3的路径。类似(2)的步骤,得到新路径P3:B->B2->C1->C,请求3的初始路径为B->B4->C4->C,计算第三单板总数fnew,
得到fnew=3,gbest=fnew=3,更新路径集合Paths。
(4)i*=1,S=φ,即调整请求1的路径。类似(2)的步骤,得到的请求1的新路径仍为P1:A->A1->B2->B,即请求1新路径和初始路径相同;
(5)num=num+1,即num=2,判断第二单板总数gbest是否大于等于第一单板总数fbest,若否,即gbest小于fbest,则令fbest=gbest=3,S={1,2,3};
(6)重复(2)~(4),直至迭代条件不满足,即迭代次数达到了预设的最大迭代次数,得到新路径保持不变,则输出fbest=gbest=3,结束。
通过第二种启发式算法的结果可知,使用的单板总数为3,总费用为3,用到的链路利用率均为25%。即两种启发式算法得到的结果是相同的。
本实施例中所举的例子,在节能后该SDN网络已经是2-连通网络,即3个请求均有两条可用路径,故不需要进行拓扑修补。为详细介绍修补步骤,将节能后的网络当做非2-连通情形处理,拓扑修补步骤如下:
(1)按照f(Pi)的值从小到大排序,排序后顺序为请求1、2、3;
(2)为请求1构造第三剩余网络G'f,请求1的初始路径P1:A->A1->B2->B,删除边A1-B2,单板A1、B2入边权重设为0,其余单板的入边权重设为1。
(3)以新增单板数最少为目标为请求1计算新路径,得到新路径A->A1->C1->B2->B;
(4)为请求2计算新路径,计算方法和步骤(2)、(3)类似,得到请求2的新路径:A->A1->B2->C1->C。
(5)为请求3计算新路径:计算方法和步骤(2)、(3)类似,得到请求3的新路径:B->B2->A1->C1->C,结束。此例无新增节点,若有新增节点,需打开相应单板。
图8为本发明实施例提供的一种节能控制设备的结构示意图,如图8所示,本实施例提供的节能控制设备包括:获取模块51、原始网络图建立模块52、拓展网络图建立模块53、整数规划模型建立模块54、整数规划模型求解模块55、节能控制模块56。
获取模块51,用于获取软件定义网络SDN的物理网络信息,所述SDN包括多个路由器,所述每个路由器包括多个单板,所述每个单板有多个接口,所述每个路由器上的接口分别与其他路由器上的任意接口连接形成一条链路;
原始网络图建立模块52,用于根据获取模块51获取的所述物理网络信息建立以所述各路由器为节点,以所述各链路为边,以所述各链路的费用、实际时延、容量为权值的原始网络图G(N,A),所述原始网络图G为赋权有向图,其中,N为所述原始网络图G的各节点的集合,A为所述原始网络图G的各边的集合,其中,所述各链路分别对应两条有向边;
拓展网络图建立模块53,用于根据所述各路由器、所述各路由器上的单板以及所述各链路的接口的连接关系,将原始网络图建立模块52建立所述原始网络图G中的每个节点拓展成以所述节点对应的路由器为中心,以所述节点对应的路由器上的各单板为叶节点的星型图,按照所述各链路的连接情况将所述各星型图连接得到拓展网络图G'=(N',A'),所述各路由器和所述各路由器上的各单板均为所述拓展网络图G'的节点,所述拓展网络图G'为赋权有向图,N'为所述拓展网络图G'的各节点的集合,A'为所述拓展网络图的各边的集合,所述星型图的各边容量为∞,费用为0,实际时延为0;
整数规划模型建立模块54,用于根据所述拓展网络图G'和所述物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,所述整数规划模型的目标优化函数为所述SDN中已建立的请求使用的单板总数;
整数规划模型求解模块55,用于采用启发式算法求解所述整数规划模型,获得所述SDN中各单板的使用状态;
节能控制模块56,用于根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式。
本实施例中,所述物理网络信息包括:所述SDN中的所有路由器的总数、所述各链路的费用、所述各链路的实际时延、所述各链路的容量、所述各链路的连接情况、所述各链路的接口所属的路由器的信息、各请求的起点、所述各请求的终点、所述各请求的申请带宽、所述各请求的时延阈值、已分配路径信息。
本实施例中,所述请求约束条件包括:带宽约束、时延约束、不可分流约束,其中,所述带宽约束是指分配给各请求的实际带宽不能小于所述各请求的申请带宽,所述时延约束是指分配给所述各请求的实际时延不能大于所述各请求的时延阈值,所述不可分流约束是指所述各请求只能分配一条传输路径;所述容量约束条件是指每条边经过的流量之和不能大于所述每条边的容量。
在本实施例中,所述目标优化函数为:
其中,N1表示所述SDN中所有单板构成的集合,x
v表示第v个单板是否为使用,若x
v的取值为1,则表示所述第v个单板被使用,若x
v的取值为0,则表示所述第v个单板没有被使用;
所述目标优化函数需要满足以下6个约束条件:
其中,D表示所述已建立的请求的总数,N1表示所述SDN中所有单板构成的集合,x
v表示是否使用了所述第v个单板,
表示所述第v个单板是否被第i个请求使用,
表示边(u,v)是否被所述第i个请求使用,
约束条件(1)中,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用,若
的取值为1,则表示所述第v个单板被所述第i个请求使用;
约束条件(2)和约束条件(3)中,s
i表示所述第i个请求的起点,t
i表示所述第i个请求的终点,
表示边(u,v)是否被所述第i个请求使用,若
的取值为1,则表示边(u,v)被所述第i个请求使用,若
的取值为0,则表示边(u,v)没有被所述第i个请求使用,
表示边(v,u)是否被所述第i个请求使用,若
的取值为1,则表示边(v,u)被所述第i个请求使用,若
的取值为0,则表示边(v,u)没有被所述第i个请求使用;
约束条件(4)中,A1表示所述各链路的集合,
表示所述第v个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第v个单板被所述第i个请求使用,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用第,
表示第u个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第u个单板被所述第i个请求使用,若
的取值为0,则表示所述第u个单板没有被所述第i个请求使用;
约束条件(5)中,di表示所述第i个请求的申请带宽,Cuv表示边(u,v)的容量;
约束条件(6)中,deluv表示边(u,v)的实际时延,delayi表示所述第i个请求的时延阈值。
一种实现方式中,整数规划模型求解模块55具体用于通过以下方式求解该整数规划模块:
第一步、将所述D个请求按照优先级从高到低的顺序排序,得到新请求序列,所述新请求序列的顺序依次为1…D,假设没有为所述D个请求分配初始路径,则令所述D个请求使用的单板总数fbest的初始值为0,所述D个请求对应的路径集合Paths=φ,i表示所述新请求序列的顺序,i的初始值为1;
第二步、判断i是否小于等于D。
若是,执行第四步,若否,执行第三步;
第三步、输出所述单板总数fbest和所述路径集合Paths,根据所述单板总数fbest和所述路径集合Paths确定所述SDN中各单板的使用状态;
第四步、根据所述拓展网络图G'构造所述第i个请求对应的第一剩余网络图G'f,其中,所述根据所述拓展网络G'构造所述第i个请求对应的第一剩余网络图G'f包括:
计算所述拓展网络图G'中每条边的第一剩余容量,所述每条边的第一剩余容量等于所述每条边的50%容量减去前i-1个请求占用的容量;
判断所述每条边的第一剩余容量是否小于所述第i个申请的申请带宽,将第一剩余容量小于所述第i个请求的申请带宽的边删除,将所述拓展网络图G'中被所述前i-1个请求使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i个请求对应的第一剩余网络图G'f;
第五步、在所述第一剩余网络G'
f中为所述第i个请求分配第一最短路径P
i,所述第一最短路径P
i满足以下条件:
其中,P表示在所述第一剩余网络图G'
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述单板总数fbest为fbest=f(Paths∪{Pi}),并更新所述路径集合Paths为Paths=Paths∪{Pi},其中,Pi为所述第i个请求的所述第一最短路径;
第七步、i=i+1,返回执行第二步。
另一种实现方式中,所述整数规划模型求解模块55具体用于通过以下方式求解整数规划模型:
第一步、根据所述D个请求的初始路径,确定所述D个请求使用的第一单板总数fbest,其中,fbest=f(Paths),Paths表示所述D个请求的所述初始路径的集合,S={1,…,D}表示所述D个请求的集合,令第二单板总数gbest=fbest,迭代次数的num初始值为1;
第二步、判断迭代次数num是否小于等于预设迭代次数M;
若是,执行第三步,若否,执行第十二步;
第三步、判断S是否为空集;
若是,执行第四步,若否,执行第五步;
第四步、num=num+1,执行第十步;
第五步、计算
S=S-{i
*},其中,P
i表示第i个请求对应的路径;
第六步、根据所述拓展网络图G'构造所述第i*个请求对应的第二剩余网络图G″f;
其中,所述根据所述拓展网络G'构造所述第i*个请求对应的第二剩余网络图G″f包括:
释放所述第i
*个请求占用的容量,计算所述拓展网络图G'中每条边的第二剩余容量,所述第二剩余容量等于所述每条边的50%容量减去路径集合
使用的每条边的容量,
为所述第i
*个请求的初始路径;
判断所述每条边的第二剩余容量是否小于所述第i
*个请求的申请带宽
将第二剩余容量小于所述第i
*个请求的申请带宽的边删除,将所述拓展网络图G'中已经被使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i
*个请求对应的第二剩余网络图G″
f;
第七步、在所述第二剩余网络G″
f中为所述第i
*个请求分配第二最短路径
所述第二最短路径
满足以下条件:
其中,
为所述第i
*个请求的初始路径,P为在所述第二剩余网络图G″
f中满足所述第i
*个请求的带宽约束条件和时延约束条件的路径集合,计算第三单板总数fnew,
第八步、判断所述第三单板总数fnew是否小于所述第二单板总数gbest;
若是,执行第九步,若否,执行第三步;
第十步、判断所述第二单板总数gbest是否大于等于第一单板总数fbest;
若是,执行第十二步,若否,执行第十一步;
第十一步、令fbest=gbest,S={1,…,D},返回执行第二步;
第十二步、结束。
本实施例提供的节能控制设备,可用于执行本发明图1-图3所示的方法,具体实现方式和技术效果类似,这里不再赘述,
图9为本发明实施例提供的另一种节能控制设备的结构示意图,本实施例的节能控制设备在图8所示的节能控制设备的基础上,还包括拓扑修补模块57,拓扑修补模块57于对所述SDN进行拓扑修补,得到修补后的SDN,所述拓扑修补模块为所述SDN中的每个请求分配一条新路径,使所述每个请求均有两条可用路径,将所述SDN中新路径对应的新增单板打开,且所述新路径应该满足使所述修补后的SDN使用的单板总数最少。
本实施例中,所述拓扑修补模块57具体用于通过以下方式对SDN进行拓扑修补:
第一步、假设共有D个请求,对所述D个请求按照使用单板总数f(Pi)从小到大排序,得到排序后的新请求序列为1…D,排序后的所述D个请求的路径集合Paths={P1,…,PD},其中,f(Pi)表示第i个请求使用的单板总数,所述D个请求使用的单板总数为fbest,其中,fbest=f(Paths),Paths表示所述D个请求对应的路径集合;
第二步、判断i是否小于等于D,i表示请求的顺序,若是,执行第三步,若否,执行第四步;
第三步、根据所述拓展网络图G'构造所述第i个请求的第三剩余网络图G″′f,执行第五步;
所述根据所述拓展网络G'构造所述第i个请求的第三剩余网络图G″′f包括:
删除所述第i个请求的初始路径Pi;
计算所述拓展网络图G'中每条边的第三剩余容量,所述第三剩余容量等于所述每条边50%容量减去所述路径集合Paths使用的每条边的容量;
判断所述每条边的第三剩余容量是否小于所述第i个请求的申请带宽di,将第三剩余容量小于所述第i个请求的申请带宽di的边删除,将所述拓展网络图G'中已经被使用的单板对应的节点的入边权值赋为0,其余没有被使用的单板对应的节点的入边权值赋为1,得到所述第i个请求对应的第三剩余网络图G″′f;
第四步、输出所述单板总数fbest和所述路径集合Paths;
第五步、在所述第三剩余网络G″′f中为所述第i个请求分配第三最短路径P′i,所述第三最短路径P′i满足以下条件:其中,P表示在所述第三剩余网络G″′f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述D个请求对应的路径集合Paths为Paths=Paths∪{P′i},并根据所述更新后的路径集合Paths更新所述D个请求使用的单板总数fbest为fbest=f(Paths);
第七步、i=i+1,返回执行第二步。
本实施例提供的节能控制设备,可用于执行图4所示方法实施例提供的技术方案,具体实现方式和技术效果类似,这里不再赘述。
图10为本发明实施例提供又一种节能控制设备的结构示意图,如图10所示,本实施提供的节能控制设备600包括:处理器61和存储器62,处理器61和存储器62通过总线连接,其中,存储器62用于存储指令,当节能控制设备600运行时,处理器61和存储器62之间通信,处理器61执行指令,使得节能控制设备600执行本发明实施例提供的SDN中的节能方法,本实施例中,处理器61具体用于执行以下步骤:
获取软件定义网络SDN的物理网络信息,所述SDN包括多个路由器,所述每个路由器包括多个单板,所述每个单板有多个接口,所述每个路由器上的接口分别与其他路由器上的任意接口连接形成一条链路;
根据所述物理网络信息建立以所述各路由器为节点,以所述各链路为边,以所述各链路的费用、实际时延、容量为权值的原始网络图G(N,A),所述原始网络图G为赋权有向图,其中,N为所述原始网络图G的各节点的集合,A为所述原始网络图G的各边的集合,其中,所述各链路分别对应两条有向边;
根据所述各路由器、所述各路由器上的单板以及所述各链路的接口的连接关系,将所述原始网络图G中的每个节点拓展成以所述节点对应的路由器为中心,以所述节点对应的路由器上的各单板为叶节点的星型图,按照所述各链路的连接情况将所述各星型图连接得到拓展网络图G'=(N',A'),所述各路由器和所述各路由器上的各单板均为所述拓展网络图G'的节点,所述拓展网络图G'为赋权有向图,N'为所述拓展网络图G'的各节点的集合,A'为所述拓展网络图的各边的集合,所述星型图的各边容量为∞,费用为0,实际时延为0;
根据所述拓展网络图G'和所述物理网络信息,构建满足请求约束条件和容量约束条件的整数规划模型,所述整数规划模型的目标优化函数为所述SDN中已建立的请求使用的单板总数;
采用启发式算法求解所述整数规划模型,获得所述SDN中各单板的使用状态;
根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式。
本实施例中,所述物理网络信息包括:所述SDN中的所有路由器的总数、所述各链路的费用、所述各链路的实际时延、所述各链路的容量、所述各链路的连接情况、所述各链路的接口所属的路由器的信息、各请求的起点、所述各请求的终点、所述各请求的申请带宽、所述各请求的时延阈值、已分配路径信息。
本实施例中,所述请求约束条件包括:带宽约束、时延约束、不可分流约束,其中,所述带宽约束是指分配给各请求的实际带宽不能小于所述各请求的申请带宽,所述时延约束是指分配给所述各请求的实际时延不能大于所述各请求的时延阈值,所述不可分流约束是指所述各请求只能分配一条传输路径;
所述容量约束条件是指每条边经过的流量之和不能大于所述每条边的容量。
本实施例中,所述目标优化函数为:
其中,N1表示所述SDN中所有单板构成的集合,x
v表示第v个单板是否为使用,若x
v的取值为1,则表示所述第v个单板被使用,若x
v的取值为0,则表示所述第v个单板没有被使用;
所述目标优化函数需要满足以下6个约束条件:
其中,D表示所述已建立的请求的总数,N1表示所述SDN中所有单板构成的集合,x
v表示是否使用了所述第v个单板,
表示所述第v个单板是否被第i个请求使用,
表示边(u,v)是否被所述第i个请求使用,
约束条件(1)中,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用,若
的取值为1,则表示所述第v个单板被所述第i个请求使用;
约束条件(2)和约束条件(3)中,s
i表示所述第i个请求的起点,t
i表示所述第i个请求的终点,
表示边(u,v)是否被所述第i个请求使用,若
的取值为1,则表示边(u,v)被所述第i个请求使用,若
的取值为0,则表示边(u,v)没有被所述第i个请求使用,
表示边(v,u)是否被所述第i个请求使用,若
的取值为1,则表示边(v,u)被所述第i个请求使用,若
的取值为0,则表示边(v,u)没有被所述第i个请求使用;
约束条件(4)中,A1表示所述各链路的集合,
表示所述第v个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第v个单板被所述第i个请求使用,若
的取值为0,则表示所述第v个单板没有被所述第i个请求使用第,
表示第u个单板是否被所述第i个请求使用,
若
的取值为1,则表示所述第u个单板被所述第i个请求使用,若
的取值为0,则表示所述第u个单板没有被所述第i个请求使用;
约束条件(5)中,di表示所述第i个请求的申请带宽,Cuv表示边(u,v)的容量;
约束条件(6)中,deluv表示边(u,v)的实际时延,delayi表示所述第i个请求的时延阈值。
处理器61采用启发式算法求解所述整数规划模型,获得所述SDN网络中各单板的使用状态,具体为:
第一步、将所述D个请求按照优先级从高到低的顺序排序,得到新请求序列,所述新请求序列的顺序依次为1…D,假设没有为所述D个请求分配初始路径,则令所述D个请求使用的单板总数fbest的初始值为0,所述D个请求对应的路径集合Paths=φ,i表示所述新请求序列的顺序,i的初始值为1;
第二步、判断i是否小于等于D。
若是,执行第四步,若否,执行第三步;
第三步、输出所述单板总数fbest和所述路径集合Paths,根据所述单板总数fbest和所述路径集合Paths确定所述SDN中各单板的使用状态;
第四步、根据所述拓展网络图G'构造所述第i个请求对应的第一剩余网络图G'f,其中,所述根据所述拓展网络G'构造所述第i个请求对应的第一剩余网络图G'f包括:
计算所述拓展网络图G'中每条边的第一剩余容量,所述每条边的第一剩余容量等于所述每条边的50%容量减去前i-1个请求占用的容量;
判断所述每条边的第一剩余容量是否小于所述第i个申请的申请带宽,将第一剩余容量小于所述第i个请求的申请带宽的边删除,将所述拓展网络图G'中被所述前i-1个请求使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i个请求对应的第一剩余网络图G'f;
第五步、在所述第一剩余网络G'
f中为所述第i个请求分配第一最短路径P
i,所述第一最短路径P
i满足以下条件:
其中,P表示在所述第一剩余网络图G'
f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述单板总数fbest为fbest=f(Paths∪{Pi}),并更新所述路径集合Paths为Paths=Paths∪{Pi},其中,Pi为所述第i个请求的所述第一最短路径;
第七步、i=i+1,返回执行第二步。
处理器61采用启发式算法求解所述整数规划模型,获得所述SDN网络中各单板的使用状态,具体为:
第一步、根据所述D个请求的初始路径,确定所述D个请求使用的第一单板总数fbest,其中,fbest=f(Paths),Paths表示所述D个请求的所述初始路径的集合,S={1,…,D}表示所述D个请求的集合,令第二单板总数gbest=fbest,迭代次数的num初始值为1;
第二步、判断迭代次数num是否小于等于预设迭代次数M;
若是,执行第三步,若否,执行第十二步;
第三步、判断S是否为空集;
若是,执行第四步,若否,执行第五步;
第四步、num=num+1,执行第十步;
第五步、计算S=S-{i*},其中,Pi表示第i个请求对应的路径;
第六步、根据所述拓展网络图G'构造所述第i*个请求对应的第二剩余网络图G″f;
其中,所述根据所述拓展网络G'构造所述第i*个请求对应的第二剩余网络图G″f包括:
释放所述第i
*个请求占用的容量,计算所述拓展网络图G'中每条边的第二剩余容量,所述第二剩余容量等于所述每条边的50%容量减去路径集合
使用的每条边的容量,
为所述第i
*个请求的初始路径;
判断所述每条边的第二剩余容量是否小于所述第i*个请求的申请带宽将第二剩余容量小于所述第i*个请求的申请带宽的边删除,将所述拓展网络图G'中已经被使用的单板的入边权值赋为0,其余没有被使用的单板的入边权值赋为1,得到所述第i*个请求对应的第二剩余网络图G″f;
第七步、在所述第二剩余网络G″
f中为所述第i
*个请求分配第二最短路径
所述第二最短路径
满足以下条件:
其中,
为所述第i
*个请求的初始路径,P为在所述第二剩余网络图G″
f中满足所述第i
*个请求的带宽约束条件和时延约束条件的路径集合,计算第三单板总数fnew,
第八步、判断所述第三单板总数fnew是否小于所述第二单板总数gbest;
若是,执行第九步,若否,执行第三步;
第十步、判断所述第二单板总数gbest是否大于等于第一单板总数fbest;
若是,执行第十二步,若否,执行第十一步;
第十一步、令fbest=gbest,S={1,…,D},返回执行第二步;
第十二步、结束。
处理器61根据所述SDN中各单板的使用状态,控制所述SDN中没有被使用的单板进入睡眠模式之后,还用于:
对所述SDN进行拓扑修补,得到修补后的SDN,所述处理器61对所述SDN进行拓扑修补具体为:为所述SDN中的每个请求分配一条新路径,使所述每个请求均有两条可用路径,将所述SDN中新路径对应的新增单板打开,且所述新路径应该满足使所述修补后的SDN使用的单板总数最少。
处理器61具体用于通过以下方式对SDn进行拓扑修补:
第一步、假设共有D个请求,对所述D个请求按照使用单板总数f(Pi)从小到大排序,得到排序后的新请求序列为1…D,排序后的所述D个请求的路径集合Paths={P1,…,PD},其中,f(Pi)表示第i个请求使用的单板总数,所述D个请求使用的单板总数为fbest,其中,fbest=f(Paths),Paths表示所述D个请求对应的路径集合;
第二步、判断i是否小于等于D,i表示请求的顺序,若是,执行第三步,若否,执行第四步;
第三步、根据所述拓展网络图G'构造所述第i个请求的第三剩余网络图G″′f,执行第五步;
所述根据所述拓展网络G'构造所述第i个请求的第三剩余网络图G′′f包括:
删除所述第i个请求的初始路径Pi;
计算所述拓展网络图G'中每条边的第三剩余容量,所述第三剩余容量等于所述每条边50%容量减去所述路径集合Paths使用的每条边的容量。
判断所述每条边的第三剩余容量是否小于所述第i个请求的申请带宽di,将第三剩余容量小于所述第i个请求的申请带宽di的边删除,将所述拓展网络图G'中已经被使用的单板对应的节点的入边权值赋为0,其余没有被使用的单板对应的节点的入边权值赋为1,得到所述第i个请求对应的第三剩余网络图G″′f;
第四步、输出所述单板总数fbest和所述路径集合Paths;
第五步、在所述第三剩余网络G″′
f中为所述第i个请求分配第三最短路径P′
i,所述第三最短路径P′
i满足以下条件:
其中,P表示在所述第三剩余网络G″
′f中满足所述第i个请求的带宽约束条件和时延约束条件的路径集合,f(P)表示所述路径集合P使用的单板总数;
第六步、更新所述D个请求对应的路径集合Paths为Paths=Paths∪{P′i},并根据所述更新后的路径集合Paths更新所述D个请求使用的单板总数fbest为fbest=f(Paths);
第七步、i=i+1,返回执行第二步。
本实施例提供的节能控制设备可用于执行图1-图4所示方法实施例提供的技术方案,具体实现方式和技术效果类似,这里不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。