CN109039942B - 一种基于深度强化学习的网络负载均衡系统及均衡方法 - Google Patents
一种基于深度强化学习的网络负载均衡系统及均衡方法 Download PDFInfo
- Publication number
- CN109039942B CN109039942B CN201810996894.2A CN201810996894A CN109039942B CN 109039942 B CN109039942 B CN 109039942B CN 201810996894 A CN201810996894 A CN 201810996894A CN 109039942 B CN109039942 B CN 109039942B
- Authority
- CN
- China
- Prior art keywords
- network
- node
- module
- state
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于深度强化学习的网络负载均衡系统及均衡方法,均衡系统包括控制平面和数据平面,控制平面包括INT模块、网络模块,INT模块通过发送探测包获取网络模块中各个节点上的网络信息,并发送给控制平面;控制平面包括DQN模块、网络状态信息模块、最短路径路由算法模块以及节点源路由路径更新网络模块,网络状态信息模块接收控制平面发送的网络信息,并发送给DQN模块;DQN模块输出动作调用dijkstra算法模块进行最优路径的计算,并将节点流表的更新结果传递给网络中相应的节点设备。该方案基于P4的INT技术和人工智能中的深度强化学习Deep Q Network模型实现SDN网络的智能负载均衡,从而实现网络资源的合理利用,有效提高网络效率,减少网络中的拥塞。
Description
技术领域
本发明涉及计算机网络技术领域,尤其是一种基于深度强化学习的网络负载均衡方法。
背景技术
INT(In-band Network Telemetry)是被设计用来收集和报告网络状态的一个框架,它通过数据平面实现,不需要控制平面的干涉。在INT的架构模型里,数据包包含被网络设备称为“探测指令”的包头字段。这些字段对应的指令告诉支持INT的设备它需要收集何种状态信息,并将这些信息写入INT包。INT流量源(可以是应用,网络终端,等)能够将这些指令嵌入到普通数据包或者INT数据包中。同样,INT流量池(traffic sink)收集这些指令执行的结果,以此准确地监控着数据层面的状态。
强化学习是一种重要的机器学习方法,与机器学习中常见的监督学习和非监督学习方式不同,强化学习是一个序贯决策(Sequential Decision Making)问题,通过连续选择一系列行为(即一个动作序列),以这些行为完成后得到最终收益的最大化作为最优的目标。该过程通常可以用马尔可夫决策过程(Markov Decision Process,MDPs)来进行描述,主要由智能主体(Agent),环境(Environment),状态(State),动作(Action),策略(Policy)和奖励(Reward)等要素构成。MDPs简单来说就是一个可以进行决策的智能主体(Agent)根据其所处的状态(State)进行决策,执行相应的决策行动(Action),并根据动作执行后从环境(Environment)中获得的奖励或惩罚(Reward)来优化自己的策略(Policy),从而实现与环境(Environment)交互的循环过程。经过反复的循环过程,智能主体(Agent)可以学习到如何解决一个问题的最优策略。
深度学习是一种机器学习中通过多层表达的方式,对数据的隐含分布进行建模的算法。深度学习算法自动提取分类中所需要的低层次或者高层次特征。因此深度学习能够更好的表示数据的特征,同时由于模型的层次、参数很多,容量也足够,因此,深度学习模型有能力表示大规模数据,所以对于图像、语音这种特征不明显的棘手问题,能够借助深度学习在大规模训练数据上取得更好的效果。而且由于深度学习将特征和分类器结合到一个框架中,用数据去学习特征,在使用中减少了手工提取特征的巨大工作量,因此,不仅仅效果可以更好,而且应用起来也非常方便。因此深度学习在图像识别和语音识别方面获得了巨大的进步。
深度强化学习是一种将强化学习和深度学习结合起来的全新的算法,以强化学习中的状态输入--动作输出模式为基本框架,配合深度神经网络从而使较复杂问题的解决成为可能。近年大热的AlphaGo背后便是被DeepMind团队发扬光大的深度强化学习算法。深度强化学习最具代表性的算法是DeepMind在NIPS 2013上发表的《Playing Atari with DeepReinforcement Learning》一文中所提出的DQN算法,之后DeepMind在Nature上提出了DQN的改进方法,引起广泛的关注。
Q-learning算法是一种用于机器学习的强化学习技术。该技术不需要环境模型。它可以处理随机过渡和奖励的问题。
对于任何有限的马尔可夫决策过程(FMDP),Q-Learning算法最终会找到一个最优策略。 Q-learning可以为任何给定的FMDP确定最优的行动选择策略。
在现实中,状态的数量极多,并且需要人工去设计特征,而且一旦特征设计不好,则得不到想要的结果。神经网络正是能处理解决这个问题,取代原来 Q 表来进行特征的描述和区分。
一种常用的网络负载均衡技术是ECMP,ECMP(Equal Cost Multi-path Routing)是一种基于链路开销路径算法的负载均衡技术。由于ECMP简单并且易于实现,一些经典的网络路由协议(如OSPF)都支持ECMP功能。ECMP的基本原理是:当网络中源地址和目的地址之间存在多条不同链路时,支持ECMP的网络协议可以同时使用多条等价的链路进行源地址和目的地址之间数据的传输。不同于传统的路由方法只能利用一条链路发送数据给目的地址的方式,ECMP这种同时使用多条链路的方式,一方面可以实现网络的负载均衡,另一方面还可以备份链路上传输的数据。
现有技术存在的缺点
虽然借助ECMP可以通过多路径分流的方式实现网络负载均衡,降低网络拥塞的发生,但ECMP在实际网络环境中也存在着一些问题。
首先,ECMP只是简单地将数据平均分配给各条等价链路,在一般的通信网络中,ECMP所使用的多条等价链路虽然在链路代价上相等,但每条链路的带宽、时延等往往并不一样,甚至差别很大,这导致了实际的传输带宽和时延往往会受到多条等价链路中最差链路的制约。例如,在部署了ECMP的网络中,如果两个设备间的数据传输通过两条等价链路同时进行,我们必须等待两条链路的数据全部传输完毕后才能进行数据的重组和确认,而整个传输过程的时延不是由两条链路中时延较低的那条链路来决定,而是由时延较高的链路来决定。
另一方面,ECMP无法有效解决由于流量分布不均而产生的网络拥塞问题。一个具体的表现是,在拥有对称拓扑结构的网络(例如数据中心网络)中,由于流量和拓扑结构的对称性,ECMP能有效地减少网络拥塞的产生,但是在拥有非对称拓扑结构的网络(例如一般通信网络)中,使用ECMP带来的负载均衡效果很有限。网络中流量分布越不均衡,我们就越难以通过ECMP来避免网络中拥塞的产生。
发明内容
针对上述技术问题,本发明旨在提供一种均衡网络负载的技术方案,该方案基于P4的INT技术和人工智能中的深度强化学习Deep Q Network模型实现SDN网络的智能负载均衡,从而实现网络资源的合理利用,有效提高网络效率,减少网络中的拥塞。
为解决上述技术问题,本发明提供基于深度强化学习的网络负载均衡系统,其特征在于,所述均衡系统包括控制平面和数据平面,
所述控制平面包括INT模块、网络模块,所述INT模块通过发送探测包获取网络模块中各个节点上的网络信息,并发送给控制平面;
所述控制平面包括DQN模块、网络状态信息模块、最短路径路由算法模块节点源路由路径更新模块,所述网络状态信息模块接收所述控制平面发送的网络信息,并发送给所述DQN模块;所述DQN模块输出动作调用最短路径路由算法模块进行最优路径的计算,并将节点流表的更新结果传递给网络中相应的节点设备。
进一步的,所述网络模块由互联的OpenFlow交换机组成,交换机根据控制平面的指令进行相应的转发动作。
进一步的,所述网络信息为网络中各节点的队列长度信息和排队时延状态信息。
在上述系统的基础上,本发明还提供一种基于深度强化学习的网络负载均衡方法,所述均衡方法包括以下步骤:
1)INT模块采集网络状态信息,并将整个网络的网络信息采集完毕后汇总上报到控制平面;
2)将网络信息作为状态输入给DQN模块进行训练;
3)根据动作选择的边缘节点使用最短路径路由算法进行最短路径计算,重新计算所有流到该节点流量的路由;
4)根据新的路由信息更新全网转发流表;
5)控制平面将更新后的流表下达到网络中的OpenFlow交换机;
6)交换机根据流表改变转发策略;
7)回到步骤1)循环整个过程,直到达到预设的循环次数,完成控制流程。
进一步的,所述步骤2)具体为:
控制平面整理INT模块上传的网络状态信息,将其整理为一组可以描述网络状态的特征features,所述描述网络状态的特征是网络中所有链路上的负载;所述描述网络状态的特征作为状态输入给所述DQN模块,所述DQN则输出相应的动作来进行负载均衡,为了保证DQN输出的动作能有较理想的效果。
进一步的,
步骤2.1,设定网络中的所有的边缘节点即为网络中流量的源节点和目的节点,所有流量的大小不变,无其他流量干扰;
步骤2.2,输入状态为一组数据,表示网络中各条链路的负载状态;
步骤2.3,输出状态为一个源节点ID或者无节点ID None,表示需要更新该节点的流表或者不更新;
步骤2.4,状态奖励:普通情况下的状态奖励为当前状态的时延和与上一状态时延和的差值,另一种情况是如果当前状态的时延和比之前的所有状态的时延和j=0,1,2,3…都要小,说明该状态是一个较优的状态,此时的奖励为,其中为最初始状态的时延之和。
进一步的,所述步骤3)中所采用的最短路径路由算法为dijkstra算法,步骤3)具体为:
步骤3.1,首先,指定一个起始节点,并且定义节点X的距离为节点X到起始节点的距离,将所有节点标记为未访问的节点,并创建一个包含所有未访问节点的集合U;
步骤3.2,为每个节点设定一个暂定距离值:将起始节点的暂定距离设为0,将其他所有节点的暂定距离设为无穷大,并将起始节点设置为当前节点;
步骤3.3,对当前节点,考虑其所有相邻的未访问节点,并计算这些节点经过当前节点到达起始点的路径的暂定距离;比较新计算出的暂定距离与节点已经设定的距离,将较小的那一个设定为节点的新距离;
步骤3.4,当完成了对于当前节点所有相邻的未访问节点的计算后,将当前节点标记为已访问节点,并将其从集合U中除去;
步骤3.5,如果目的节点已经被标记为已访问节点,或者未访问集合U中的节点的最小的暂定距离为无穷大,则最短路径路由;
步骤3.6,如果情况与步骤3.5不同,则选择所有未访问节点中标记的暂定距离最小的节点,将其设为当前节点,回到步骤3.3。
本发明的有益效果为:本发明建立了一个结构简单的网络系统,通过该系统可以有效实现网络的负载均衡。虽然在一开始本发明的效果与随机策略方案的效果相似,这是因为对于DQN来说,前期的学习过程需要进行随机的探索以寻找最优策略。在DQN中我们通过参数来调整前期学习中执行随机策略的概率,而随着学习到的步数逐渐增长,DQN开始在每一步中逐渐以最优策略取代随机策略(但仍然会在保留较小的概率进行随机探索),所以我们才能看到后6000回合的结果趋于收敛。
附图说明
图1为本发明基于深度强化学习的网络负载均衡系统基本架构图;
图2为实施例1的网络拓扑结构图;
图3为采用随机策略进行负载调控的结果示意图;
图4为本发明基于深度强化学习的网络负载均衡方法进行负载调控的结果示意图;
图5、图6、图7分别为采用随机策略与采用本发明方法对负载调控的输出对比图;
图8、图9分别为网络最初始状态的链路负载和DQN方案策略执行25步后网络中链路的负载示意图。
具体实施方式
下面结合附图和具体实例对本发明做更进一步的解释:
本方案依托基于P4的INT技术和人工智能中的深度强化学习Deep Q Network模型实现SDN网络的智能负载均衡,从而实现网络资源的合理利用,有效提高网络效率,减少网络中的拥塞。
(1)通过INT实现全局网络信息的采集和汇总
INT是一种P4数据平面网络上的网络信息采集技术,基于SDN中数据平面和控制平面分离的基本思想,在本方案中,INT模块通过INT“探测包”将网络中数据平面上各个节点上的队列长度,排队时延状态信息实时传递给控制平面,从而使得控制平面可以掌握网络中数据平面的状态信息。
(2)使用深度强化学习根据全局网络状态信息进行源路由决策
本方案采用的深度强化学习方法是经典DQN算法,利用INT采集到的数据平面网络状态信息作为DQN的状态输入,选择网络中的一个边缘节点作为动作输出,然后根据实时网络状态使用最短路径算法计算该边缘节点到所有目的节点的最优路径,并在控制平面根据最优路径为该节点更新流表,之后根据INT采集到的新的网络状态作为评判标准决定动作的奖励反馈,同时以新的网络状态信息作为下一个状态输入来继续输入--决策—输出—反馈过程,最终以实现网络中流量的负载均衡,减少网络拥塞为目标。
图1为本方案的基本架构图,本方案中将网络分为数据平面和控制平面两个部分。网络模块是由OpenFlow交换机组成的,INT模块与底层SDN网络一起构成了数据平面,DQN模块及其相关模块(state模块,Action模块),最短路径路由算法模块,网络状态信息模块以及节点源路由路径更新模块共同构成了控制平面。数据平面通过INT模块向控制平面发送汇总的网络状态信息,控制平面则通过节点源路由更新模块向数据平面下发更新流表的指令,完成对网络中设备流表的控制。
数据平面
数据平面由SDN网络与INT模块构成。网络由互联的OpenFlow交换机组成,交换机可以根据控制平面的指令进行相应的转发动作;INT模块是P4设备中的功能模块,可以通过INT探测包收集网络信息并上传至控制平面。
在数据平面中,我们关注的对象主要是网络中的数据流,网络中的数据流的流动方向,路由方式和流量增减影响着整个网络的状态。依赖于INT探测包,我们可以记录网络中各个节点上的队列长度,排队时延状态信息,经过汇总上传到控制平面后,控制平面就可以掌握到实时的网络的状态信息。
在数据平面中INT模块承担的工作虽然看似简单,但却是本方案中极为重要的组成部分。由于方案中控制平面从网络中得到的反馈都需要通过INT模块得到,如果得到的网络状态信息与实际情况相差过大或者信息更新过于滞后,都会影响方案的最终效果和效率。因此保证数据平面中INT模块的精确性和实时性是本方案有效和可行的关键。
除了INT模块以外,数据平面与控制平面的交互还体现在控制平面更新节点设备流表带来数据平面网络变化,变化后的网络状态还是通过INT模块继续上传给控制平面。
控制平面
在本方案中,控制平面的工作主要可以分为两个部分。
第一部分是整理INT模块上传的网络状态信息(网络中各个节点上的队列长度,排队时延状态信息),将其整理为一组可以描述网络状态的特征(features),在本方案中,这组描述网络状态的特征是抽象化的网络中所有链路上的负载。但实际上,根据INT模块上传的网络状态信息,我们也可以选择其他的特征来描述网络的实时状态。
第二部分是根据DQN的输出动作调用最短路径路由算法进行最优路径的计算,并将节点流表的更新结果传递给网络中相应的节点设备。在这一部分里,最短路径路由算法模块计算最优路径的依据是第一部分中从INT模块得到的网络实时状态信息。dijkstra算法模块在得到DQN的输出动作(节点ID)后,根据网络实时状态信息,计算该状态下从该节点处出发的流量到达目的节点的最优路径,并更新该节点的流表。
在整个控制平面中,对网络的控制主要体现在对网络中设备流表的更新,而决策工作则由DQN部分完成。
DQN模块
DQN是本方案中的另一个关键部分,DQN模块的目标就是根据输入的网络状态信息输出一系列动作来使网络状态得到改善,减少网络时延和拥塞。
对于网络的流量调度问题,DQN模块的设计中需要考虑的问题主要有以下几个:
1.如何将复杂的网络负载均衡问题简化为DQN可以解决的序贯决策问题;
2.输入的状态特征(state features)能否完整描述该状态(state)的信息;
3.如何在输出动作(action)空间维度不能过大的限制下定义输出的动作;
4.如何保证状态(state)->动作(action)->状态(state)间的确定关系;
5.如何设定在不同的环境下执行不同动作得到的奖励(reward);
6.避免因网络的特殊结构而采用特殊奖励(reward)方式以保证方案的一般性;
7.是否能在有限时间和空间内能够找到最优或较优的解决策略(policy);
8.如何在寻找更优策略和当前策略之间平衡以保证策略(policy)收敛。
基于对上述问题的考虑,本方案的DQN采用了如下的设计:
网络环境限制条件:给定网络拓扑,网络中的所有的边缘节点即为网络中流量的源节点和目的节点,所有流量的大小不变,无其他流量干扰。
1.输入状态:一组数据,表示网络中各条链路的负载状态;
2.输出状态:一个源节点ID或者无节点ID(None),表示需要更新该节点的流表或者不更新;
3.状态奖励:分为两种情况,普通情况下的状态奖励为当前状态的时延和与上一状态时延和的差值,另一种情况是如果当前状态的时延和比之前的所有状态的时延和(j=0,1,2,3…)都要小,说明该状态是一个较优的状态(也可能是最优的),此时的奖励为,其中为最初始状态的时延之和。
两种奖励情况的目的不同,第一种是为了让DQN学习在各种状态下如何选择动作以使得网络的总时延逐渐减少,第二种则是让DQN以快速到达较优的状态(总时延少)为目标,将两种奖励方式结合可以让DQN在逐渐降低网络总时延的同时学会如何快速到达那些较优的状态,在设计过程中我们发现将两种奖励方式结合在一起比起单独使用两种方式中的一种更有效。
当DQN的输入状态,输出状态和奖励函数均确定以后,DQN还需要考虑神经网络的层数,一些模型参数(learning rate,e greedy increment,reward decay,memory size,batch size等等)的配置。这些配置需要根据对应的网络规模和环境来进行相应的设置。
本发明的控制流程为:
1)INT采集网络状态信息;
INT模块通过向网络中发出和回收INT探测包来收集网络的信息(主要包括网络中各个节点上的队列长度,排队时延等状态信息);
2)将整个网络的网络信息采集完毕后汇总上报到控制平面;
3)将网络信息作为状态输入给DQN模块进行训练;
控制平面整理INT模块上传的网络状态信息,将其整理为一组可以描述网络状态的特征(features),在本方案的一个实施例中,这组描述网络状态的特征是网络中所有链路上的负载。根据INT模块上传的网络状态信息,我们也可以选择其他的特征来描述网络的实时状态。
4)训练好的DQN 会根据输入输出合适的动作来进行负载均衡;
未完成训练的DQN会继续之后的步骤来进行训练。
5)根据动作选择的边缘节点执行最短路径算法,重新计算所有流到该节点流量的路由;
在本方案的一个实施例中使用dijkstra算法进行最优路径的计算。
上述dijkstra 算法具体为:
(1)首先,指定一个起始节点。并且定义节点X的距离为节点X到起始节点的距离。将所有节点标记为未访问的节点,并创建一个包含所有未访问节点的集合U。
(2)为每个节点录入一个暂定距离值:将起始节点的暂定距离设为0,将其他所有节点的暂定距离设为无穷大,并将起始节点设置为当前节点。
(3)对当前节点,考虑其所有相邻的未访问节点,并计算这些节点经过当前节点到达起始点的路径的暂定距离。比较新计算出的暂定距离与节点已经录入的距离,将较小的那一个录入为节点的新距离。例如,当前节点A已经录入的距离为6,与其相邻的节点为B,AB之间连接的边的边长为2,故B经过A到达起始点的距离为2+6=8,如果B节点之前录入的距离比8大,那么将8作为新的距离至录入节点B,否则保持已录入的值不变。
(4)当完成了对于当前节点所有相邻的未访问节点的计算后,将当前节点标记为已访问节点,并将其从集合U中除去。已访问节点将不会被再次进行计算。
(5)如果目的节点已经被标记为已访问节点(在进行两个特定节点间路由时),或者未访问集合U中的节点的最小的暂定距离为无穷大(在计算全局路由时,表现为起始节点和集合U中的节点没有连接),dijkstra算法计算结束。
(6)如果并非情况5),选择所有未访问节点中标记的暂定距离最小的节点,将其设为当前节点,回到步骤(3).
6)根据新的路由信息更新全网转发流表;
7)控制平面将更新后的流表下达到网络中的OpenFlow交换机;
8)交换机根据流表改变转发策略;
9)回到步骤1循环整个过程,直到达到预设的循环次数,完成控制流程。
实施例1
在本方案的一个实施例中,我们建立了一个具有非对称拓扑结构的简单网络模型用于测试DQN模型是否能够学习到有利于网络负载均衡的流量调度策略。该模型的网络拓扑结构如图2所示。
其中A,B,C,D,E,F,G七个节点设为边缘节点,作为网络中发送流量的源节点和接收流量的目的节点,在图中标识为黑色。
R1,R2,R3,R4,R5,R6,R7,R8和R9作为网络中的中继节点,自身不会产生流量,但是可以接收和转发来自其他节点的流量,在图中标识为白色。
我们规定以上文所述的初始状态为起点,执行25步动作为一回合,共运行10000回合。
作为本方案的对比,我们在同环境下进行了随机策略方案的仿真,该方案和DQN方案相比,在进行动作选择时不是根据学习到的策略选择动作,而是完全随机选择,除此之外其他的部分完全相同。
为了直观地观察随机策略方案和基于DQN方案的不同效果,我们以点阵图的形式输出10000回合的实验结果(即每回合的改善效果)。两种方案的每回合改善效果如图3、图4所示,其中图3为随机策略方案的结果,图4为基于DQN的方案的结果。
在10000回合的运行中,随机策略方案的10000回合平均改善效果为132.7个时间单位,而使用DQN的方案的10000回合平均改善效果为190.8个时间单位。
从图4可以看出在4000回合之前DQN方案的效果与随机策略方案的效果相似,这是因为对于DQN来说,前期的学习过程需要进行随机的探索以寻找最优策略。在DQN中我们通过参数来调整前期学习中执行随机策略的概率,而随着学习到的步数逐渐增长,DQN开始在每一步中逐渐以最优策略取代随机策略(但仍然会在保留较小的概率进行随机探索),所以我们才能看到后6000回合的结果趋于收敛。
在本实施例中,当10000回合的运行完成后, DQN已经学习到了一个较为确定的策略,虽然该策略并不是绝对意义上最优的,但可以认为是在有限的时间和空间内能够找到的一个相对较优的策略。
为了检验学习到的策略的效果,我们不再保留决策时的随机探索,而是尝试以确定的策略执行1回合的实验。图5、图6和图7均为10000回合训练完成后,根据确定的DQN策略在1回合(25步)内输出动作带来的状态改变与随机策略在1回合内表现的对比(图中输出为每一步动作执行后后网络状态的总时延)。由于在这里随机策略每次的状态改变是随机的,为了保证实验结果的一般性,所以使用了三种不同的随机种子分别进行了三次独立的实验。
在三次实验中,我们根据确定的DQN策略执行一回合的改善效果分别为210.2个时间单位,208.2个时间单位,208.2个时间单位(后两次学到的策略相同),而随机策略的改善效果分别149.2个时间单位,106.7个时间单位,91.5个时间单位。
由图5、图6和图7可以看出,DQN方案学习到的策略在初始几步内快速找到最优状态,后面的步数在最优状态附近上下波动或保持,而随机策略方案则不能保证能够找到最优状态,也难以保证找到最优状态后保持在最优状态上下。
由于随机策略的不确定性,我们以之前得到的随机策略的10000回合平均改善效果132.7个时间单位为基准,计算出三次实验中DQN学习到的策略相比随机策略对网络总时延的改善效果分别提高了58.4,%56.9%和56.9%。在之后经过多次独立实验后,总体上能够确定,在本实验环境下DQN学习到的策略相比随机策略的改善效果提高在50%到60%之间。
除了总时延的改善效果外,我们还可以从实验中得到网络初始状态时的25条链路负载状况以及DQN方案策略执行25步动作完毕后网络中各条链路上的负载状况:
init: 1510 [13 9 5 13 1 7 1 15 11 1 1 1 11 5 5 7 1 5 5 13 7 7 11 313]
final: 1296 [13 5 9 6 8 6 4 10 10 7 2 3 9 3 5 7 5 6 5 13 6 8 7 7 13]
图8和图9分别为网络最初始状态的链路负载和DQN方案策略执行25步后网络中链路的负载。
我们由之前图2的网络拓扑图可以看出网络中R1-R4,R2-R5,R3-R6三条路径是连接左侧三个源节点和右侧四个源节点的必经路径。
如图6所示,在初始时各个源节点根据dijkstra算法得到的最优路径,使得网络中R1-R4,R2-R5,R3-R6三条链路上的负载为15,11,1,其中R1-R4链路上的负载过重,R3-R6链路上负载较少使得网络负载并不均衡,整个网络的总时延较高,此时的网络中存在一定程度的拥塞,而通过DQN策略输出一系列动作后,网络中R1-R4,R2-R5,R3-R6三条链路上的负载平衡为了10,10,7,网络中的拥塞得到了减少,网络的总时延也得到了降低。
虽然在我们建立的模型中DQN策略的奖励值是网络总时延的改善,并没有直接奖励网络的负载均衡行为,但由于我们的动作空间只是改变网络中流量的路径选择,所以实际上是DQN模型本身学习到了以对网络中的流量进行负载均衡的方式来实现网络总时延的改善。
综上所述,由仿真的实验结果可以看出本方案可以有效实现网络的负载均衡。本技术领域技术人员可以理解的是,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.基于深度强化学习的网络负载均衡系统,其特征在于,所述均衡系统包括控制平面和数据平面,
所述控制平面包括INT模块、网络模块,所述INT模块通过发送探测包获取网络模块中各个节点上的网络信息,并发送给控制平面;
所述控制平面包括DQN模块、网络状态信息模块、最短路径路由算法模块以及节点源路由路径更新网络模块,所述网络状态信息模块接收所述控制平面发送的网络信息,并发送给所述DQN模块;所述DQN模块输出动作调用最短路径路由算法模块进行最优路径的计算,并将节点流表的更新结果传递给网络模块中相应的节点设备;
所述均衡系统用于实现一种基于深度强化学习的网络负载均衡方法,所述均衡方法包括以下步骤:
1)INT模块采集网络状态信息,并将整个网络的网络信息采集完毕后汇总上报到控制平面;
2)将网络信息作为状态输入给DQN模块进行训练;
步骤2.1,设定网络中的所有的边缘节点即为网络中流量的源节点和目的节点,所有流量的大小不变,无其他流量干扰;
步骤2.2,输入状态为一组数据,表示网络中各条链路的负载状态;
步骤2.3,输出状态为一个源节点ID或者无节点ID None,表示需要更新该节点的流表或者不更新;
步骤2.4,状态奖励:普通情况下的状态奖励为当前状态的时延和与上一状态时延和的差值,另一种情况是如果当前状态的时延和比之前的所有状态的时延
和,j=0,1,2,3…都要小,说明该状态是一个较优的状态,此时的奖励为,其中为最初始状态的时延之和;
3)根据动作选择的边缘节点使用最短路径路由算法进行最短路径计算,重新计算所有流到该节点流量的路由;
4)根据新的路由信息更新全网转发流表;
5)控制平面将更新后的流表下达到网络中的OpenFlow交换机;
6)交换机根据流表改变转发策略;
7)回到步骤1)循环整个过程,直到达到预设的循环次数,完成控制流程。
2.根据权利要求1所述的基于深度强化学习的网络负载均衡系统,其特征在于,所述网络模块由互联的OpenFlow交换机组成,交换机根据控制平面的指令进行相应的转发动作。
3.根据权利要求1所述的基于深度强化学习的网络负载均衡系统,其特征在于,所述网络信息为网络模块中各节点的队列长度信息和排队时延状态信息。
4.基于深度强化学习的网络负载均衡方法,其特征在于,所述均衡方法包括以下步骤:
1)INT模块采集网络状态信息,并将整个网络的网络信息采集完毕后汇总上报到控制平面;
2)将网络信息作为状态输入给DQN模块进行训练;
步骤2.1,设定网络中的所有的边缘节点即为网络中流量的源节点和目的节点,所有流量的大小不变,无其他流量干扰;
步骤2.2,输入状态为一组数据,表示网络中各条链路的负载状态;
步骤2.3,输出状态为一个源节点ID或者无节点ID None,表示需要更新该节点的流表或者不更新;
步骤2.4,状态奖励:普通情况下的状态奖励为当前状态的时延和与上一状态时延和的差值,另一种情况是如果当前状态的时延和比之前的所有状态的时延
和,j=0,1,2,3…都要小,说明该状态是一个较优的状态,此时的奖励为,其中为最初始状态的时延之和;
3)根据动作选择的边缘节点使用最短路径路由算法进行最短路径计算,重新计算所有流到该节点流量的路由;
4)根据新的路由信息更新全网转发流表;
5)控制平面将更新后的流表下达到网络中的OpenFlow交换机;
6)交换机根据流表改变转发策略;
7)回到步骤1)循环整个过程,直到达到预设的循环次数,完成控制流程。
5.根据权利要求4所述的基于深度强化学习的网络负载均衡方法,其特征在于,所述步骤2)具体为:
控制平面整理INT模块上传的网络状态信息,将其整理为一组可以描述网络状态的特征features,所述描述网络状态的特征是网络中所有链路上的负载;所述描述网络状态的特征作为状态输入给所述DQN模块,所述DQN模块则输出相应的动作来进行负载均衡,为了保证DQN模块输出的动作能有理想的效果。
6.根据权利要求4所述的基于深度强化学习的网络负载均衡方法,其特征在于,所述步骤3)中所采用的最短路径路由算法为dijkstra算法,步骤3)具体为:
步骤3.1,首先,指定一个起始节点,并且定义节点X的距离为节点X到起始节点的距离,将所有节点标记为未访问的节点,并创建一个包含所有未访问节点的集合U;
步骤3.2,为每个节点设定一个暂定距离值:将起始节点的暂定距离设为0,将其他所有节点的暂定距离设为无穷大,并将起始节点设置为当前节点;
步骤3.3,对当前节点,考虑其所有相邻的未访问节点,并计算这些节点经过当前节点到达起始点的路径的暂定距离;比较新计算出的暂定距离与节点已经设定的距离,将较小的那一个设定为节点的新距离;
步骤3.4,当完成了对于当前节点所有相邻的未访问节点的计算后,将当前节点标记为已访问节点,并将其从集合U中除去;步骤3.5,如果目的节点已经被标记为已访问节点,或者未访问集合U中的节点的最小的暂定距离为无穷大,则最短路径路由;
步骤3.6,如果情况与步骤3.5不同,则选择所有未访问节点中标记的暂定距离最小的节点,将其设为当前节点,回到步骤3.3。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810996894.2A CN109039942B (zh) | 2018-08-29 | 2018-08-29 | 一种基于深度强化学习的网络负载均衡系统及均衡方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810996894.2A CN109039942B (zh) | 2018-08-29 | 2018-08-29 | 一种基于深度强化学习的网络负载均衡系统及均衡方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039942A CN109039942A (zh) | 2018-12-18 |
CN109039942B true CN109039942B (zh) | 2022-08-12 |
Family
ID=64625391
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810996894.2A Active CN109039942B (zh) | 2018-08-29 | 2018-08-29 | 一种基于深度强化学习的网络负载均衡系统及均衡方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039942B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3715608B1 (en) * | 2019-03-27 | 2023-07-12 | Siemens Aktiengesellschaft | Machine control based on automated learning of subordinate control skills |
CN110213025A (zh) * | 2019-05-22 | 2019-09-06 | 浙江大学 | 基于深度强化学习的专用自组网抗干扰方法 |
CN110535723B (zh) * | 2019-08-27 | 2021-01-19 | 西安交通大学 | 一种sdn中采用深度学习的消息异常检测方法 |
CN110535770B (zh) * | 2019-08-30 | 2021-10-22 | 西安邮电大学 | 一种SDN环境下基于QoS感知的视频流智能路由方法 |
CN111191918A (zh) * | 2019-12-27 | 2020-05-22 | 国网江苏省电力有限公司信息通信分公司 | 一种智能电网通信网的业务路由规划方法及装置 |
CN111343095B (zh) * | 2020-02-15 | 2021-11-05 | 北京理工大学 | 一种在软件定义网络中实现控制器负载均衡的方法 |
CN111917657B (zh) * | 2020-07-02 | 2022-05-27 | 北京邮电大学 | 一种流量传输策略的确定方法及装置 |
CN112437020B (zh) * | 2020-10-30 | 2022-06-24 | 天津大学 | 一种基于深度强化学习的数据中心网络负载均衡方法 |
CN112486690B (zh) * | 2020-12-11 | 2024-01-30 | 重庆邮电大学 | 一种适用于工业物联网的边缘计算资源分配方法 |
CN112887214B (zh) * | 2021-01-08 | 2022-10-25 | 北京灵汐科技有限公司 | 广播方法、第一节点、片上网络、传输方法、设备、介质 |
CN113518039B (zh) * | 2021-03-03 | 2023-03-24 | 山东大学 | Sdn架构下基于深度强化学习的资源优化方法及系统 |
CN113347108B (zh) * | 2021-05-20 | 2022-08-02 | 中国电子科技集团公司第七研究所 | 一种基于q-学习的sdn负载均衡方法及系统 |
CN113572697B (zh) * | 2021-07-20 | 2023-09-22 | 电子科技大学 | 一种基于图卷积神经网络与深度强化学习的负载均衡方法 |
CN113992595B (zh) * | 2021-11-15 | 2023-06-09 | 浙江工商大学 | 一种基于优先经验回放dqn的sdn数据中心拥塞控制方法 |
CN114500386B (zh) * | 2022-01-18 | 2023-05-30 | 南京邮电大学 | 一种基于强化学习和sdn的负载均衡系统 |
CN114938374B (zh) * | 2022-05-10 | 2023-05-23 | 北京交通大学 | 跨协议负载均衡方法及系统 |
CN114640568B (zh) * | 2022-05-18 | 2022-08-19 | 南京邮电大学 | 基于深度强化学习的网络智能管控架构系统和运行方法 |
CN115037667B (zh) * | 2022-08-10 | 2022-11-08 | 北京邮电大学 | 一种细粒度网络态势感知与源路由智能优化方法与装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571570A (zh) * | 2011-12-27 | 2012-07-11 | 广东电网公司电力科学研究院 | 一种基于强化学习的网络流量负载均衡控制方法 |
CN107579922A (zh) * | 2017-09-08 | 2018-01-12 | 北京信息科技大学 | 网络负载均衡装置和方法 |
CN108401015A (zh) * | 2018-02-02 | 2018-08-14 | 广州大学 | 一种基于深度强化学习的数据中心网络路由方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11137987B2 (en) * | 2016-08-22 | 2021-10-05 | Oracle International Corporation | System and method for automated mapping of data types for use with dataflow environments |
-
2018
- 2018-08-29 CN CN201810996894.2A patent/CN109039942B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571570A (zh) * | 2011-12-27 | 2012-07-11 | 广东电网公司电力科学研究院 | 一种基于强化学习的网络流量负载均衡控制方法 |
CN107579922A (zh) * | 2017-09-08 | 2018-01-12 | 北京信息科技大学 | 网络负载均衡装置和方法 |
CN108401015A (zh) * | 2018-02-02 | 2018-08-14 | 广州大学 | 一种基于深度强化学习的数据中心网络路由方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109039942A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039942B (zh) | 一种基于深度强化学习的网络负载均衡系统及均衡方法 | |
CN110611619B (zh) | 一种基于ddpg强化学习算法的智能化路由决策方法 | |
CN112491714B (zh) | SDN环境下基于深度强化学习的智能QoS路由优化方法、系统 | |
CN112437020B (zh) | 一种基于深度强化学习的数据中心网络负载均衡方法 | |
CN109413707B (zh) | 无线网络环境下基于深度强化学习技术的智能路由方法 | |
CN114697229B (zh) | 一种分布式路由规划模型的构建方法及应用 | |
CN111211987B (zh) | 网络中流量动态调整方法、系统、电子设备及存储介质 | |
CN114143264B (zh) | 一种SRv6网络下基于强化学习的流量调度方法 | |
CN108076158A (zh) | 基于朴素贝叶斯分类器的最小负载路由选择方法及系统 | |
CN103971160A (zh) | 基于复杂网络的粒子群优化方法 | |
CN115396366B (zh) | 基于图注意力网络的分布式智能路由方法 | |
CN113612692B (zh) | 基于dqn算法的集中式光片上网络自适应路由规划方法 | |
CN114710439B (zh) | 基于深度强化学习的网络能耗与吞吐量联合优化路由方法 | |
CN113395207A (zh) | 一种sdn架构下基于深度强化学习的路由优化架构及方法 | |
CN111917642A (zh) | 分布式深度强化学习的sdn网络智慧路由数据传输方法 | |
CN111556173A (zh) | 一种基于强化学习的服务链映射方法 | |
CN117041129A (zh) | 一种基于多智能体强化学习的低轨卫星网络流路由方法 | |
Mai et al. | Packet routing with graph attention multi-agent reinforcement learning | |
CN114298178A (zh) | 一种多智能体的通信学习方法 | |
Sun et al. | Improving the scalability of deep reinforcement learning-based routing with control on partial nodes | |
Abdel-Kader | An improved discrete PSO with GA operators for efficient QoS-multicast routing | |
Wei et al. | GRL-PS: Graph embedding-based DRL approach for adaptive path selection | |
CN112529148B (zh) | 一种基于图神经网络的智能QoS推理方法 | |
CN107169561A (zh) | 面向功耗的混合粒子群脉冲神经网络映射方法 | |
CN115022231B (zh) | 一种基于深度强化学习的最优路径规划的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |