一种面向sdn网络基于q学习的节能路由方法

文档序号:1508526 发布日期:2020-02-07 浏览:24次 >En<

阅读说明:本技术 一种面向sdn网络基于q学习的节能路由方法 (SDN-oriented energy-saving routing method based on Q learning ) 是由 龙恳 吴翰 蒋明均 李伟 于 2019-11-05 设计创作,主要内容包括:本发明涉及一种面向SDN网络基于Q学习的节能路由方法,属于网络节能技术领域。核心方法包括:统计当前时刻网络流需求,根据源节点和目标节点不同存入任务队列;为网络流的每个目标节点构建一张Q表并初始化;从队列中取出元素,根据目的节点不同输入对应的Q表,输出下一跳节点位置并得到奖励,更新Q表;反复迭代更新Q表;利用训练好的Q表处理网络流需求。特点:SDN控制器直接为每个网络流提供路由路径,动态调整路由器和链路的开关闭状态使网络在满足流量需求条件下达到能效最优。(The invention relates to an SDN-oriented energy-saving routing method based on Q learning, and belongs to the technical field of network energy saving. The core method comprises the following steps: counting the network flow requirements at the current moment, and storing the network flow requirements into a task queue according to the difference between a source node and a target node; establishing a Q table for each target node of the network flow and initializing; taking out the elements from the queue, inputting corresponding Q tables according to different destination nodes, outputting the position of the next hop node and obtaining reward, and updating the Q tables; repeatedly and iteratively updating the Q table; and processing the network flow requirement by using the trained Q table. The method is characterized in that: the SDN controller directly provides a routing path for each network flow, and the switch closing state of the router and the link is dynamically adjusted to enable the network to achieve optimal energy efficiency under the condition of meeting flow requirements.)

一种面向SDN网络基于Q学习的节能路由方法

技术领域

本发明属于网络节能技术领域,涉及一种面向SDN网络基于Q学习的节能路由方法。

背景技术

随着云计算技术的发展,不仅网络规模呈现爆发性增长,而且网络数据不断增长,导致数据中心能耗急剧增加。此外,为了满足服务要求,提供高性能和高可靠性的路由,大多数新数据中心使用Fat-Tree,BCube等丰富的网络拓扑结构,这将引入许多交换设备。这种方法使网络性能变得更好,但带来了大量的网络能耗。调制解调器大规模数据中心网络拥有数百万台服务器和带宽密集的特性,传统网络难以实现灵活的网,络资源调度需求。因此SDN(软件定义的网络)应运而生,其解耦传统网络设备的控制平面和数据平面,可以提供高可扩展性,灵活的资源调度,高带宽和其他网络要求。

借助于SDN控制平面对全网络信息的实时获取能力和对路由节点的控制力,有人提出面向SDN网络的基于链路利用率的自适应节能路由算法(申请公布号:CN106161257A),通过实时获取全局拓扑信息和带宽利用率,为长度超过阈值的路径重新设置路径。这些方法运算量过大,不能实时处理实际路由问题。

发明内容

有鉴于此,本发明的目的在于提供一种面向SDN网络基于Q学习的节能路由方法。

为达到上述目的,本发明提供如下技术方案:

一种面向SDN网络基于Q学习的节能路由方法,该方法包括以下步骤:

S1:获取网络流信息,根据源节点和目标节点不同存入任务队列;

S2:为网络流的每个目标节点构建一张Q表并初始化;

S3:从队列中依次取出元素输入对应的Q表,输出下一跳位置;

S4:根据下一跳位置和当前网络状态得到不同的奖励值,依此更新Q表;

S5:重复S3,S4过程直到队列中所有任务都完成,即完成一次训练;

S6:重置队列和网络状态,重复S3~S5过程完成多次训练,得到最终的Q表;

S7:将待处理网络流输入对应Q表,步进得到路由路径,同时比较最终网络状态和初始状态得到网络节点链路开关闭策略。

本发明的有益效果在于:

1.全局分析网络状态,实时每个网络流设置一条路由路径可以解决OSPF等传统路由协议所带来的拥塞问题。

2.用Q学习可以实时决定开关闭节点和链路策略使系统达到能耗最低。

3.为全网络生成一棵MST树,只有当流需求超过阈值流量时才启用算法,平衡了算法开销和网络能效。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:

图1为本发明基于强化学习的节能路由方法的整体流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

SDN控制器能获取全网络状态,生成一棵全网的最小生成树(MST)其中容量最小的边作为该树的阈值,当网络流量到来时,分析流量大小,若不超过阈值,则不启用算法,超过则启用。

算法实施需要实时获得网络代表的无向图G的邻接矩阵A,其横纵轴代表网络的所有节点,矩阵值代表对应横纵轴节点的边容量,当网络流量通过时此矩阵值也会动态改变,初始值记为A0。同时为每个目标节点生成一张Q表,根据实时的邻接矩阵A和流任务E(s,d,q,c),其中s代表起始节点,d代表目的节点,q代表流量需求,c代表当前流任务所处的节点,初始值等于s,输出流任务的下一跳位置并更新Q表。

S1:读取当前时刻待处理的网络流,按起始节点s,目的节点d不同划分成不同任务存入任务队列T,T长度记为L(L>0),设置迭代次数N;

S2:判断L是否为0,是则跳转步骤5,否则从队列头取出一个任务E(s,d,q,c);

S3:根据E的目的结点d选择对应的Q表,根据该任务的当前位置节点c,在Q表中找到对应的最大Q值节点作为下一跳节点i;

S4:根据下一跳位置i和当前网络的邻接矩阵A,得到不同的奖励值,依此更新Q表;

S41:下一跳位置是目的节点(即i=d),任务完成,L=L-1,并将T移出队列,返回奖励

r=ra

S42:下一跳为不可达结点,则将T初始化(即c=s),并将T挂到任务队列末端,返回奖励r=rb

S43:下一跳在当前网络G内却是未开启结点时,即对比当前A和初始值A0,i行i列所有值相等,则置c=i,返回奖励r=rc

S44:下一跳节点开启,但当前位置和下一跳的连接未启用时,即A(c,i)=A0(c,i),置c=i,返回奖励r=rd;(ra>0>rb>rc>rd)

用Bellman方程更新Q值:

NewQ(s,a)=Q(s,a)+α[r+γmaxa′Q(s′,a′)-Q(s,a)]

其中α为学习率,γ为奖励性衰变系数。

随机打乱任务队列,跳转执行S2。

S5:队列T中所有任务完成后,N=N-1,判断N是否为0,是则训练完成,否则重置任务队列T和网络状态A,并跳转执行S2。

S6:获取网络流信息,存入任务队列,创建链表数组R记录结果。

S7:依次从队列头取出任务,根据目的节点不同,查找对应Q表,得到下一跳位置,若可达则修改当前任务状态和网络状态,将任务挂到队列末端,向R中添加记录;若不可达,重置任务后置于队列末端。

S8:重复执行S7直到所有队列中所有任务都被完成得到路由策略结果R以及最终网络状态Af,比较A0和Af得到节点链路开关闭策略结果。

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

6页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种管理FPGA异构加速卡集群的方法、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!