CN111294284B - 流量调度方法及装置 - Google Patents
流量调度方法及装置 Download PDFInfo
- Publication number
- CN111294284B CN111294284B CN201811505121.6A CN201811505121A CN111294284B CN 111294284 B CN111294284 B CN 111294284B CN 201811505121 A CN201811505121 A CN 201811505121A CN 111294284 B CN111294284 B CN 111294284B
- Authority
- CN
- China
- Prior art keywords
- state information
- traffic scheduling
- scheduling instruction
- long
- reward value
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种流量调度方法及装置。包括:网络设备向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;网络设备接收控制器发送的第一全局状态信息;网络设备根据第一全局状态信息生成第一流量调度指令,网络设备接收控制器发送的第一流量调度指令,网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流量调度方法及装置。
背景技术
网络流量调度是指为待传输的数据流生成流量调度指令,通过该流量调度指令进行流量调度的过程。例如:流量调度指令可以是待传输的数据流在至少一条链路上的流量调度比例。而对于用户来讲,待传输的数据流的传输时间越短、网络拥塞程度最小,则表示网络的可靠性越高。
现有技术提供了深度强化学习方式来为待传输的数据流生成流量调度指令,为每个路由器训练一个深度神经网络(Deep Neural Network,DNN),通过训练后的DNN确定待传输的数据流生成流量调度指令。其中,在该深度强化学习方式中,一个路由器需要向其他路由器发送广播消息,并且接收其他路由器发送的广播消息,这些广播消息作为训练后的DNN的输入参数,以得到该路由器的流量调度指令,这种广播方式势必造成通信量过大的问题。
发明内容
本申请提供一种流量调度方法及装置。由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。
第一方面,本申请提供一种流量调度方法,包括:网络设备向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;网络设备接收控制器发送的第一全局状态信息;网络设备根据第一全局状态信息生成第一流量调度指令,网络设备接收控制器发送的第一流量调度指令,网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。
本申请有益效果包括:由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。在一种可能的设计中,本申请技术方案可以与Actor-Critic和深度学习结合,而Actor-Critic本身是无模型,从而可以解决非平稳训练问题。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的;方法还包括:网络设备对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,网络设备对训练前的第一神经网络进行的多轮训练中的每轮训练,包括:网络设备获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为网络设备在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;网络设备根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数。
这种可能的设计带来的有益效果包括:在训练第一神经网络过程中,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。
在一种可能的设计中,网络设备对训练前的第一神经网络进行的多轮训练中的每轮训练,还包括:网络设备获取第三长期奖励值,第三长期奖励值表示第四流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第四流量调度指令为在本轮训练不发送第二局部状态信息时生成的流量调度指令;网络设备根据第一长期奖励值、第三长期奖励值和本轮训练中的预设阈值确定概率参数,概率参数为局部状态信息的发送概率涉及的参数,控制门用于控制是否发送局部状态信息;其中,网络设备向控制器发送网络设备的第一局部状态信息,包括:网络设备根据第一局部状态信息和概率参数,确定第一局部状态信息的发送概率;当第一局部状态信息的发送概率大于预设概率时,网络设备发送第一局部状态信息。
这种可能的设计带来的有益效果包括:网络设备或者控制器可以训练概率参数,以使网络设备或者控制器根据该概率参数确定局部状态信息的发送概率,当局部状态信息的发送概率大于预设概率时,网络设备发送该局部状态信息,相反,当局部状态信息的发送概率小于或等于预设概率时,网络设备不发送该局部状态信息,从而进一步降低了通信量。
在一种可能的设计中,方法还包括:网络设备根据本轮训练的前一轮训练中的预设阈值、第一长期奖励值和第三长期奖励值确定本轮训练中的预设阈值。这种动态方式可以得到更加准确的概率参数。
在一种可能的设计中,网络设备获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,包括:网络设备根据第二流量调度指令和第二局部状态信息,生成第一局部传输消息;网络设备向控制器发送第一局部传输消息,第一局部传输消息用于生成网络设备的第一全局传输消息;网络设备接收控制器发送的第一全局传输消息;网络设备根据第二流量调度指令对待传输的第二数据流进行流量调度,以确定当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;网络设备根据第三流量调度指令和第三局部状态信息,生成第二局部传输消息,第三局部状态信息用于生成第三流量调度指令;网络设备向控制器发送第二局部传输消息,第二局部传输消息用于生成网络设备的第二全局传输消息;网络设备接收控制器发送的第二全局传输消息;网络设备根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;方法还包括:网络设备对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,网络设备对训练前的第三神经网络进行的多轮训练中的每轮训练,包括:网络设备根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
这种可能的设计带来的有益效果包括:控制器根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,以得到一个可靠性较高的第三神经网络。进而提高流量调度的可靠性。
下面将提供一种控制器侧所执行的流量调度方法、以及流量调度装置、网络设备、控制器、存储介质及计算机程序产品,其效果可参考上述网络设备侧所执行的方法对应的效果。
第二方面,本申请提供一种流量调度方法,包括:控制器接收网络设备发送的网络设备的第一局部状态信息;控制器根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息;控制器向网络设备发送第一全局状态信息,第一全局状态信息用于生成网络设备的第一流量调度指令;第一流量调度指令用于对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的;方法还包括:控制器对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,控制器对训练前的第一神经网络进行的多轮训练中的每轮训练,包括:控制器获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为控制器在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;控制器根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数;控制器将训练后的第一神经网络的参数发送给网络设备。
在一种可能的设计中,控制器对训练前的第一神经网络进行的多轮训练中的每轮训练,还包括:控制器获取第三长期奖励值,第三长期奖励值表示第四流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第四流量调度指令为在本轮训练不发送第二局部状态信息时生成的流量调度指令;控制器根据第一长期奖励值、第三长期奖励值和本轮训练中的预设阈值确定概率参数,概率参数为局部状态信息的发送概率涉及的参数,控制门用于控制是否发送局部状态信息;控制器将训练后的概率参数发送给网络设备。
在一种可能的设计中,还包括:控制器根据前一轮训练中的预设阈值、第一长期奖励值和第三长期奖励值确定本轮训练中的预设阈值。
在一种可能的设计中,控制器获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,包括:控制器接收第一局部传输消息,第一局部传输消息是根据第二流量调度指令和第二局部状态信息生成得到的;控制器根据第一局部传输消息生成第一全局传输消息;控制器根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;控制器接收第二局部传输消息,第二局部传输消息是根据第三流量调度指令和第三局部状态信息生成得到的,第三局部状态信息用于生成第三流量调度指令;控制器根据第二局部传输消息生成第二全局传输消息;控制器根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;方法还包括:控制器对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,控制器对训练前的第三神经网络进行的多轮训练中的每轮训练,包括:控制器根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
第三方面,本申请提供一种流量调度装置,用于执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,所述装置包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。
第四方面,本申请提供一种流量调度装置,用于执行第二方面或第二方面的任意一种可能的实现方式中的方法。具体地,所述装置包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元。
第五方面,本申请提供一种网络设备,包括:收发器和处理器;收发器用于向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;接收控制器发送的第一全局状态信息;处理器用于根据第一全局状态信息生成第一流量调度指令;根据第一流量调度指令对待传输的第一数据流进行流量调度。
第六方面,本申请提供一种控制器,包括:收发器和处理器;收发器用于接收网络设备发送的网络设备的第一局部状态信息;处理器用于根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息;收发器还用于向网络设备发送第一全局状态信息,第一全局状态信息用于生成网络设备的第一流量调度指令;第一流量调度指令用于对待传输的第一数据流进行流量调度。
第七方面,本申请提供一种计算机存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第八方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请提供一种流量调度方法及装置。包括:网络设备向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;网络设备接收控制器发送的第一全局状态信息;网络设备根据第一全局状态信息生成第一流量调度指令,网络设备接收控制器发送的第一流量调度指令,网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。基于此,在解决部分可观察问题的同时,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。
附图说明
图1为本申请一实施例提供的网络拓扑图;
图2为本申请一实施例提供的应用场景图;
图3为本申请另一实施例提供的应用场景图;
图4为本申请一实施例提供的一种流量调度方法的交互流程图;
图5为本申请一实施例提供的一种深度强化学习的示意图;
图6为本申请另一实施例提供的一种流量调度方法的交互流程图;
图7为本申请一实施例提供的一种神经网络训练方法的交互流程图;
图8为本申请一实施例提供的获取当前的奖励值、第一长期奖励值和第二长期奖励值的方法交互流程图;
图9为本申请一实施例提供的一种神经网络训练方法的交互流程图;
图10为本申请一实施例提供的获取当前的奖励值、第一长期奖励值和第二长期奖励值的方法交互流程图;
图11为本申请另一实施例提供的一种神经网络训练方法的流程图;
图12A至图12D为本申请一实施例提供的ACCNet的四种示意图;
图13为本申请一实施例提供的一种流量调度装置1300的结构示意图;
图14为本申请一实施例提供的一种流量调度装置1400的结构示意图;
图15为本申请一实施例提供的一种网络设备1500的结构示意图;
图16为本申请一实施例提供的一种控制器1600的结构示意图。
具体实施方式
图1为本申请一实施例提供的网络拓扑图,如图1所示,该网络拓扑涉及的网元是路由器,包括:路由器A、B、C、D、E和Z。边缘路由器包括:路由器A、B、E和Z,有向边包括:AB、AD、AC、BD、CD、CZ、CE、DZ和EZ、边属性包括:带宽、传播时延等、节点属性包括:缓冲队列容量、队列时延等。该网络拓扑中存在四个数据流(也被称为聚合流),包括:AZ、AE、BD、CD、CZ上的数据流。
对于每个数据流,路由器通常可以选择多条路径进行数据传输,假设对于AZ上的数据流,路由器A可以选择路径A-B-D-Z,A-D-Z,A-C-E-Z,A-C-Z进行数据传输,相应的,现有的路由器A的路由转发表为(A,Z,B,D,C),A表示源点路由器,Z表示目标路由器,B,D,C分别表示下一跳。基于该网络拓扑结构,可以确定数据流转发到下一跳的流量调度比例。即在本申请中,路由器A的路由转发表为(A,Z,B,rate1%,D,rate2%,C,rate3%),rate1%、rate2%和rate3%分别表示数据流转发到B、D和C的流量调度比例,其中rate1%+rate2%+rate3%=100%。
如上所述,DIAL、MADDPG等方式可以为待传输的数据流生成流量调度指令,即上述的流量调度比例,其中,这些方法均为分布式通信方法,即为每个路由器训练一个DNN,通过训练后的DNN确定待传输的数据流生成流量调度指令。其中,在DIAL方法中,一个路由器需要向其他路由器发送广播消息,并且接收其他路由器发送的广播消息,这些广播消息作为训练后的DNN的输入参数,以得到该路由器的流量调度指令,这种广播方式势必造成通信量过大的问题。
为了解决上述技术问题,本申请提供一种流量调度方法及装置。本申请技术方案的主旨思想是:在现有的网络拓扑中设置控制器,该控制器作为网络拓扑的中心节点,基于该网络拓扑结构,路由器之间无需通过广播方式进行通信,而是将局部状态信息发送给控制器,控制器根据接收到的部分或者全部路由器的局部状态信息生成各个路由器的全局状态信息,基于此,各个路由器或者控制器可以根据各个路由器的全局状态信息生成各个路由器的流量调度指令,从而实现对待传输的数据流的流量调度。
结合上述的主旨思想,下面对本申请技术方案的应用场景进行说明,其中本申请技术方案至少可以适用于如下两种应用场景:
场景一:图2为本申请一实施例提供的应用场景图,如图2所示,该应用场景涉及的网元包括:路由器21和作为中心节点的控制器22,其中,多个路由器21与控制器22构成单层网络架构。
场景二:图3为本申请另一实施例提供的应用场景图,如图3所示,该应用场景涉及的网元包括:路由器31、软件定义网络(Software Defined Network,SDN)控制器32和作为中心节点的控制器33。其中,每个SDN控制器32和它所负责的至少一个路由器31构成一层较小的子网络;而至少一个SDN控制器32和作为中心节点的控制器33构成另一层较大的网络。在执行阶段,作为中心节点的控制器33会根据本发明提供的技术方案生成每个子网络的流量调度指令,并将这些指令发送给对应的SDN控制器32;每个SDN控制器32再根据传统SDN控制方法将该流量调度指令分解成每个路由器31应该执行的具体流量调度指令。
基于上述应用场景,下面对本申请技术方案进行详细介绍,其中,本申请涉及网元包括:网络设备和控制器,该网络设备可以是场景一中的任一个路由器,也可以是场景二中的SDN控制器,本申请涉及的控制器特指作为中心节点的控制器。
图4为本申请一实施例提供的一种流量调度方法的交互流程图,如图4所示,该方法包括如下步骤:
步骤S401:网络设备向控制器发送网络设备的第一局部状态信息。
步骤S402:控制器根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息。
步骤S403:控制器向网络设备发送第一全局状态信息。
步骤S404:网络设备根据第一全局状态信息生成第一流量调度指令。
步骤S405:网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络生成得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的。第一全局状态信息是基于第二神经网络生成得到的。
下面对第一神经网络和第二神经网络进行详细说明:
考虑到流量调度问题是一个序列决策问题,即在训练第一神经网络的过程中,通过网络设备发送的局部状态信息,得到网络设备的流量调度指令,经过多轮训练可以得到由局部状态信息和流量调度指令构成的经验序列,例如:得到的经验序列为(o(1),a(1),o(2),a(2)......o(n),a(n)),其中o(i)表示在第i轮训练中所述网络设备的局部状态信息,a(i)表示在第i轮训练中所述网络设备的流量调度指令,i=1,2......n。通过所述经验序列对第一神经网络中的参数进行训练,得到训练后的第一神经网络,基于此,网络设备将第一局部状态信息作为第一神经网络的输入参数,以得到第一流量调度指令。
进一步地,由于深度强化学习为复杂的序列决策任务提供了一种端到端的解决方案。因此,在本申请中,结合深度强化学习来实现本申请技术方案。具体地,深度强化学习是一种结合了深度学习(Deep Learning,DL)与强化学习(Reinforcement Learning,RL)的技术。深度强化学习的基本思想是:用深度学习技术对问题进行特征抽象,在此基础上利用强化学习技术进行策略学习。图5为本申请一实施例提供的一种深度强化学习的示意图,如图5所示,在深度强化学习中存在两个实体,分别是智能体和环境;在每个时刻,智能体可以感知到当前环境状态,并生成相应的动作,并基于该动作与环境交互,环境对该动作做出反应,反馈给智能体一个奖励值和一个新的环境状态,其中该奖励值表示智能体的动作对于解决当前问题的价值大小;在这个交互过程中,会生成一系列的局部状态信息以及动作构成的经验序列,智能体的通过该经验序列,学习一个从局部状态信息到动作的策略,以便可以得到最大化长期的累积奖励值。其中,该本申请中,上述深度强化学习中的当前环境状态为本申请的局部状态信息,所述动作为本申请的流量调度指令。
单纯的将深度强化学习与本申请技术方案进行结合还存在如下问题:1、部分可观察问题(Partial Observation),由于每个网络设备只能感知整个网络的一部分信息,独立决策必然不是最优选择;2、非平稳训练问题(Non-stationary Training),由于多个网络设备同时学习路由策略,那么对单个网络设备而言,它的学习环境在不断变化,这样很难学到好的策略。
对于部分可观察问题,本申请技术方案引入了通信机制,即网络设备之间设置有作为中心节点的控制器,网络设备可以和控制器进行通信,以解决上述的部分可观察问题。即在本申请中,可以通过第二神经网络(也被称为通信信道(Communication Chanel,CC)网络)将局部状态信息生成全局状态信息,该第二神经网络可以将局部状态信息压缩成固定维度的局部状态信息。
对于非平稳训练问题,本申请技术方案引入了无模型(Model-Free)机制,该机制指的是在强化学习中,不需要对环境信息进行建模。因此,本申请技术方案可以基于演员-评论家强化学习(Actor-Critic Reinforcement Learning,简称Actor-Critic)和深度学习。因为Actor-Critic本身是无模型的RL方法,因此不需要知道环境信息即可通过不断试错学习最优控制策略,其中,上述的第一神经网络可以是Actor所涉及的神经网络,本申请所涉及的第三神经网络可以是Critic。
在一种可能的设计中,所述的第一局部状态信息包括以下至少一项:所述网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。例如:路由器A的第一局部状态信息包括以下至少一项:直连链路AB的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值、直连链路AD的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值、直连链路AC的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值。
进一步地,所述网络设备可以直接将所述第一局部状态信息发送给控制器,也可以通过第一神经网络的处理,并将处理后的第一局部状态信息发送给控制器。同样的,其他网络设备也可以将各自的局部状态信息发送给控制器,每个网络设备的局部状态信息包括以下至少一项:该网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。或者,每个网络设备的局部状态信息为经过神经网络处理之后的局部状态信息。
控制器在接收到所述第一局部状态信息和其他网络设备的局部状态信息之后,根据所述第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息。具体地,如上所述,各个网络设备的局部状态信息包括以下至少一项:该网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。或者,各个网络设备的局部状态信息是经过神经网络处理之后的局部状态信息。总之,各个网络设备的局部状态信息可以被理解为一个向量,向量中的各个元素即为局部状态信息包括的各项信息。其中向量维度固定。基于此,控制器可以对所有网络设备对应的局部状态信息进行加权平均,以得到每个网络设备对应的全局状态信息,由此可知,每个网络设备对应的全局状态信息也是一个与局部状态信息维度相同的向量。
在一种可能的设计中,网络设备还可以通过第一神经网络的浅层神经网络层对第一局部状态信息进行处理,得到临时变量。在网络设备接收到控制器发送的第一全局状态信息之后,该网络设备对得到的所述临时变量和第一全局状态信息进行拼接,得到拼接信息,并通过第一神经网络的深层神经网络层对所述拼接信息进行处理,以得到第一流量调度指令。例如:针对AZ上的数据流,该第一流量调度指令为(A,Z,B,rate1%,D,rate2%,C,rate3%)。最后,网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。
综上,本申请提供一种流量调度方法,包括:网络设备向控制器发送网络设备的第一局部状态信息。控制器根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息。控制器向网络设备发送第一全局状态信息。网络设备根据第一全局状态信息生成第一流量调度指令。网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。基于此,在解决部分可观察问题的同时,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。在一种可能的设计中,本申请技术方案可以与Actor-Critic和深度学习结合,而Actor-Critic本身是无模型,从而可以解决非平稳训练问题。
与上一实施例不同的是,在本实施例中,第一流量调度指令由控制器生成。具体地,图6为本申请另一实施例提供的一种流量调度方法的交互流程图,如图6所示,该方法包括如下步骤:
步骤S601:网络设备向控制器发送网络设备的第一局部状态信息。
步骤S602:控制器根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息。
步骤S603:控制器根据第一全局状态信息生成第一流量调度指令。
步骤S604:控制器向网络设备发送第一流量调度指令。
步骤S605:网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络生成得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的。第一全局状态信息是基于第二神经网络生成得到的。其中关于第一神经网络和第二神经网络可参考实施例一,对此不再赘述。
在一种可能的设计中,所述的第一局部状态信息包括以下至少一项:所述网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。例如:路由器A的第一局部状态信息包括以下至少一项:直连链路AB的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值、直连链路AD的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值、直连链路AC的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值。
进一步地,所述网络设备可以直接将所述第一局部状态信息发送给控制器,也可以通过第一神经网络的处理,并将处理后的第一局部状态信息发送给控制器。同样的,其他网络设备也可以将各自的局部状态信息发送给控制器,每个网络设备的局部状态信息包括以下至少一项:该网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。或者,每个网络设备的局部状态信息为经过神经网络处理之后的局部状态信息。
控制器在接收到所述第一局部状态信息和其他网络设备的局部状态信息之后,根据所述第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息。具体地,如上所述,各个网络设备的局部状态信息包括以下至少一项:该网络设备所属的直连链路的当前负载情况、该直连链路的历史负载情况、该直连链路当前可调度的流量值等。或者,各个网络设备的局部状态信息是经过神经网络处理之后的局部状态信息。总之,各个网络设备的局部状态信息可以被理解为一个向量,向量中的各个元素即为局部状态信息包括的各项信息。其中向量维度固定。基于此,控制器可以对所有网络设备对应的局部状态信息进行加权平均,以得到每个网络设备对应的全局状态信息,由此可知,每个网络设备对应的全局状态信息也是一个与局部状态信息维度相同的向量。
在一种可能的设计中,网络设备还可以通过第一神经网络的浅层神经网络层对第一局部状态信息进行处理,得到临时变量。网络设备可以将所述临时变量发送给控制器,基于此,控制器对接收到的所述临时变量和第一全局状态信息进行拼接,得到拼接信息,并通过第一神经网络的深层神经网络层对所述拼接信息进行处理,以得到第一流量调度指令。由此可知,第一神经网络的浅层部分设置在网络设备中,其深层部分设置在控制器中。进一步地,控制器将第一流量调度指令发送给网络设备,以使网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。
综上,本申请提供一种流量调度方法,包括:网络设备向控制器发送网络设备的第一局部状态信息。控制器根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息,并根据第一全局状态信息生成第一流量调度指令,并将该第一流量调度指令发送给网络设备,以使网络设备根据第一流量调度指令对待传输的第一数据流进行流量调度。基于此,在解决部分可观察问题的同时,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。在一种可能的设计中,本申请技术方案可以与Actor-Critic和深度学习结合,而Actor-Critic本身是无模型,从而可以解决非平稳训练问题。
在上述实施例中,介绍的是如何通过训练后的第一神经网络和第二神经网络得到网络设备的第一流量调度指令。下面将介绍训练第一神经网络的方法。
具体地,所述流量调度方法还包括对训练前的第一神经网络进行多轮训练,所谓对第一神经网络进行训练指的是对第一神经网络的参数进行训练。
具体包括如下两种可选方式:
可选方式一:网络设备对训练前的第一神经网络进行多轮训练。
可选方式二:控制器对训练前的第一神经网络进行多轮训练。
下面对上述训练第一神经网络的可选方式一进行如下说明:
图7为本申请一实施例提供的一种神经网络训练方法的交互流程图,如图7所示,该方法包括如下步骤:
步骤S701:网络设备获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值。
步骤S702:网络设备根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数。
针对步骤S701进行说明:
当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第三流量调度指令为第二流量调度指令的下一条流量调度。
第二流量调度指令可以通过如下方式获取:
一种可选方式:网络设备向控制器发送第二局部状态信息。控制器根据第二局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第二全局状态信息。控制器向网络设备发送第二全局状态信息。网络设备根据第二全局状态信息生成第二流量调度指令。其内容可参考步骤S401-步骤S405的具体解释。不同的是,第一局部状态信息、第一全局状态信息以及第一流量调度指令分别指的是网络设备在第一神经网络的执行阶段发送的局部状态信息、全局状态信息和流量调度指令,第二局部状态信息指的是网络设备在第一神经网络的训练阶段发送的局部状态信息、全局状态信息和流量调度指令。
另一种可选方式:网络设备向控制器发送网络设备的第二局部状态信息。控制器根据第二局部状态信息和其他网络设备的局部状态信息生成网络设备的第二全局状态信息。控制器根据第二全局状态信息生成第二流量调度指令。网络设备根据第二流量调度指令对待传输的第二数据流进行流量调度。其内容可参考步骤S601-步骤S605的具体解释,对此不再赘述。
第三流量调度指令可以通过如下方式获取:
一种可选方式:网络设备向控制器发送第三局部状态信息。控制器根据第三局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第三全局状态信息。控制器向网络设备发送第三全局状态信息。网络设备根据第三全局状态信息生成第三流量调度指令。
另一种可选方式:网络设备向控制器发送网络设备的第三局部状态信息。控制器根据第三局部状态信息和其他网络设备的局部状态信息生成网络设备的第三全局状态信息。控制器根据第三全局状态信息生成第三流量调度指令。控制器向网络设备发送第三流量调度指令。其内容可参考步骤S601-步骤S605的具体解释,对此不再赘述。
图8为本申请一实施例提供的获取当前的奖励值、第一长期奖励值和第二长期奖励值的方法交互流程图,如图8所示,该方法包括如下步骤:
步骤S801:网络设备根据第二流量调度指令和第二局部状态信息,生成第一局部传输消息;
步骤S802:网络设备向控制器发送第一局部传输消息。
步骤S803:控制器根据第一局部传输消息生成网络设备的第一全局传输消息。
步骤S804:控制器向网络设备发送第一全局传输消息。
步骤S805:网络设备根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值。
步骤S806:网络设备根据第三流量调度指令和第三局部状态信息,生成第二局部传输消息。
步骤S807:网络设备向控制器发送第二局部传输消息。
步骤S808:控制器根据第二局部传输消息生成网络设备的第二全局传输消息。
步骤S809:控制器向网络设备发送第二全局传输消息。
步骤S810:网络设备根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
其中,第一局部传输消息可以是第二流量调度指令和第二全局状态信息构成的拼接信息,或者,该第一局部传输消息是第二流量调度指令和第二全局状态信息构成的拼接信息经过第三神经网络处理之后的信息。
进一步地,控制器接收所述网络设备的第一局部传输消息和其他网络设备的局部传输消息之后,控制器将网络设备的第一局部传输消息和其他网络设备的局部传输消息作为第四神经网络的输入参数,以得到各个网络设备的第一全局传输消息。具体地,如上所述,所述第一局部传输消息至少包括:第二流量调度指令和第二全局状态信息。或者,所述第一局部传输消息是经过第三神经网络处理之后的局部传输消息。第一局部传输消息可以被理解为一个向量,该向量中的各个元素即为第一局部传输消息包括的各项信息。其中该向量维度固定。同理,其他网络设备的局部传输消息也可以被理解为向量。基于此,控制器可以对所有网络设备对应的局部传输消息进行加权平均,以得到每个网络设备对应的全局传输消息,由此可知,每个网络设备对应的全局传输消息也是一个与局部传输消息维度相同的向量。
进一步地,网络设备根据第二流量调度指令对待传输的第二数据流进行流量调度,从而确定所述当前的奖励值。具体至少包括如下三种可选方式:
可选方式一:控制器可以采用现有技术获取网络架构中所涉及的所有直连链路的负载率,如图1所示的网络拓扑结构,针对路由器A,其可以统计在任一轮训练中直连链路AB上发送的流量值,并用该流量值除以该直连链路的带宽,以得到该直连链路的负载率。进一步地,网络设备将该直连链路的负载率发送给控制器,同样地,控制器还可以获取AD、AC、CD、CZ、CE等直连链路各自的负载率。基于此,控制器可以统计出整个网络架构中所有负载率中最大的负载率,并将该最大的负载率下发给每个网络设备,此时每个网络设备将1减去最大的负载率作为当前的奖励值(即第t轮训练的奖励值)r(t)。
可选方式二:每个网络设备统计其所属的直连链路的负载率,并选择最大的负载率,将1减去该最大的负载率作为当前的奖励值(即第t轮训练的奖励值)r(t)。
可选方式三:网络设备根据上述可选方式一计算一个奖励值,根据上述可选方式二计算一个奖励值,最后对这两个奖励值进行加权平均,以得到所述当前的奖励值。
在一种可能的设计中,第一长期奖励值为Q(t),其中γ为折扣因子,其取值范围为【0,1】。r(t+k)表示第t+k轮训练的奖励值。实际上,由于与r(t)有关,而r(t)是根据第二流量调度指令a(t)生成的,a(t)是根据第二局部状态信息o(t)生成的,并且依赖于第一全局传输消息M'(t)训练得到的在第t轮训练的第一神经网络的参数ω(t),因此,Q(t)也被表示为Q(o(t),a(t),M'(t),ω(t))。
第三流量调度指令的生成方法可参考上述第二流量调度指令的生成方法,第二局部传输消息的生成方法可参考上述第一局部传输消息的生成方法,第二全局传输消息的生成方法可参考可参考上述第一全局传输消息的生成方法,本申请对此不再赘述。
在一种可能的设计中,第二长期奖励值为Q(t+1),则同样,γ为折扣因子,其取值范围为【0,1】。r(t+k+1)表示第t+k+1轮训练的奖励值。同样,Q(t+1)也被表示为Q(o(t+1),a(t+1),M'(t+1),ω(t))。
针对步骤S702进行说明:
其中,可以通过如下两个公式对第一神经网络的参数进行训练。
其中,r(t)表示当前的奖励值,Q(o(t+1),a(t+1),M'(t+1),ω(t))即为上述的Q(t+1),表示第二长期奖励值,Q(o(t),a(t),M'(t),ω(t))即为上述的Q(t),表示第一长期奖励值,o(t+1)表示第三局部状态信息,a(t+1)表示第三流量调度指令,M'(t+1)表示第二全局传输消息,ω(t)表示在第t轮训练的第一神经网络的参数,ω(t+1)表示在第t+1轮训练的第一神经网络的参数,第一神经网络o(t)表示第二局部状态信息,a(t)表示第二流量调度指令,M'(t)表示第一全局传输消息,M'(t),ω(t))表示对第一长期奖励值关于ω(t)求梯度,γ为折扣因子,其取值范围为【0,1】α为学习率,通常小于1,例如可以取0.01,0.001等。
下面对上述训练第一神经网络的可选方式二进行如下说明:
图9为本申请一实施例提供的一种神经网络训练方法的交互流程图,如图9所示,该方法包括如下步骤:
步骤S901:控制器获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值。
步骤S902:控制器根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数。
针对步骤S901进行说明:
当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第三流量调度指令为第二流量调度指令的下一条流量调度。
第二流量调度指令可以通过如下方式获取:
一种可选方式:网络设备向控制器发送第二局部状态信息。控制器根据第二局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第二全局状态信息。控制器向网络设备发送第二全局状态信息。网络设备根据第二全局状态信息生成第二流量调度指令。其内容可参考步骤S401-步骤S405的具体解释。不同的是,第一局部状态信息、第一全局状态信息以及第一流量调度指令分别指的是网络设备在第一神经网络的执行阶段发送的局部状态信息、全局状态信息和流量调度指令,第二局部状态信息指的是网络设备在第一神经网络的训练阶段发送的局部状态信息、全局状态信息和流量调度指令。
另一种可选方式:网络设备向控制器发送网络设备的第二局部状态信息。控制器根据第二局部状态信息和其他网络设备的局部状态信息生成网络设备的第二全局状态信息。控制器根据第二全局状态信息生成第二流量调度指令。网络设备根据第二流量调度指令对待传输的第二数据流进行流量调度。其内容可参考步骤S601-步骤S605的具体解释,对此不再赘述。
第三流量调度指令可以通过如下方式获取:
一种可选方式:网络设备向控制器发送第三局部状态信息。控制器根据第三局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第三全局状态信息。控制器向网络设备发送第三全局状态信息。网络设备根据第三全局状态信息生成第三流量调度指令。
另一种可选方式:网络设备向控制器发送网络设备的第三局部状态信息。控制器根据第三局部状态信息和其他网络设备的局部状态信息生成网络设备的第三全局状态信息。控制器根据第三全局状态信息生成第三流量调度指令。控制器向网络设备发送第三流量调度指令。其内容可参考步骤S601-步骤S605的具体解释,对此不再赘述。
图10为本申请一实施例提供的获取当前的奖励值、第一长期奖励值和第二长期奖励值的方法交互流程图,如图10所示,该方法包括如下步骤:
步骤S1001:网络设备根据第二流量调度指令和第二局部状态信息生成第一局部传输消息。
步骤S1002:网络设备向控制器发送第一局部传输消息。
步骤S1003:控制器根据第一局部传输消息生成第一全局传输消息。
步骤S1004:控制器根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到所述当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值。
步骤S1005:网络设备根据第三流量调度指令和第三局部状态信息生成第二局部传输消息。
步骤S1006:网络设备向控制器发送第二局部传输消息。
步骤S1007:控制器根据第二局部传输消息生成第二全局传输消息。
步骤S1008:控制器根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
其中,第一局部传输消息可以是第二流量调度指令和第二全局状态信息构成的拼接信息,或者,该第一局部传输消息是第二流量调度指令和第二全局状态信息构成的拼接信息经过第三神经网络处理之后的信息。
进一步地,控制器接收所述网络设备的第一局部传输消息和其他网络设备的局部传输消息之后,控制器将网络设备的第一局部传输消息和其他网络设备的局部传输消息作为第四神经网络的输入参数,以得到各个网络设备的第一全局传输消息。具体地,如上所述,所述第一局部传输消息至少包括:第二流量调度指令和第二全局状态信息。或者,所述第一局部传输消息是经过第三神经网络处理之后的局部传输消息。第一局部传输消息可以被理解为一个向量,该向量中的各个元素即为第一局部传输消息包括的各项信息。其中该向量维度固定。同理,其他网络设备的局部传输消息也可以被理解为向量。基于此,控制器可以对所有网络设备对应的局部传输消息进行加权平均,以得到每个网络设备对应的全局传输消息,由此可知,每个网络设备对应的全局传输消息也是一个与局部传输消息维度相同的向量。
进一步地,控制器根据第二流量调度指令对待传输的第二数据流进行流量调度,从而确定所述当前的奖励值。具体至少包括如下三种可选方式:
可选方式一:控制器可以采用现有技术获取网络架构中所涉及的所有直连链路的负载率,如图1所示的网络拓扑结构,针对路由器A,其可以统计在任一轮训练中直连链路AB上发送的流量值,并用该流量值除以该直连链路的带宽,以得到该直连链路的负载率。进一步地,网络设备将该直连链路的负载率发送给控制器,同样地,控制器还可以获取AD、AC、CD、CZ、CE等直连链路各自的负载率。基于此,控制器可以统计出整个网络架构中所有负载率中最大的负载率,并将1减去最大的负载率作为当前的奖励值(即第t轮训练的奖励值)r(t)。
可选方式二:控制器统计每个网络设备统计其所属的直连链路的负载率,并选择最大的负载率,将1减去该最大的负载率作为当前的奖励值(即第t轮训练的奖励值)r(t)。
可选方式三:控制器根据上述可选方式一计算一个奖励值,根据上述可选方式二计算一个奖励值,最后对这两个奖励值进行加权平均,以得到所述当前的奖励值。
在一种可能的设计中,第一长期奖励值为Q(t),其中γ为折扣因子,其取值范围为【0,1】。r(t+k)表示第t+k轮训练的奖励值。实际上,由于与r(t)有关,而r(t)是根据第二流量调度指令a(t)生成的,a(t)是根据第二局部状态信息o(t)生成的,并且依赖于第一全局传输消息M'(t)训练得到的在第t轮训练的第一神经网络的参数ω(t),因此,Q(t)也被表示为Q(o(t),a(t),M'(t),ω(t))
第三流量调度指令的生成方法可参考上述第二流量调度指令的生成方法,第二局部传输消息的生成方法可参考上述第一局部传输消息的生成方法,第二全局传输消息的生成方法可参考可参考上述第一全局传输消息的生成方法,本申请对此不再赘述。
在一种可能的设计中,第二长期奖励值为Q(t+1),则同样,γ为折扣因子,其取值范围为【0,1】。r(t+k+1)表示第t+k+1轮训练的奖励值。同样,Q(t+1)也被表示为Q(o(t+1),a(t+1),M'(t+1),ω(t))。
针对步骤S702进行说明:
其中,可以通过如下两个公式对第一神经网络的参数进行训练。
δ(t)=r(t)+γQ(o(t+1),a(t+1),M'(t+1),ω(t))-Q(o(t),a(t),M'(t),ω(t))(1)
其中,r(t)表示当前的奖励值,Q(o(t+1),a(t+1),M'(t+1),ω(t))即为上述的Q(t+1),表示第二长期奖励值,Q(o(t),a(t),M'(t),ω(t))即为上述的Q(t),表示第一长期奖励值,o(t+1)表示第三局部状态信息,a(t+1)表示第三流量调度指令,M'(t+1)表示第二全局传输消息,ω(t)表示在第t轮训练的第一神经网络的参数,ω(t+1)表示在第t+1轮训练的第一神经网络的参数,第一神经网络o(t)表示第二局部状态信息,a(t)表示第二流量调度指令,M'(t)表示第一全局传输消息,M'(t),ω(t))表示对第一长期奖励值关于ω(t)求梯度,γ为折扣因子,其取值范围为【0,1】,α为学习率,通常小于1,例如可以取0.01,0.001等。
综上,本申请实施例提供了训练第一神经网络的方法,其中在训练第一神经网络过程中,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息以生成全局状态信息即可,从而解决了通信量过大的问题。
进一步地,如上所述,所述网络设备的局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的。相应地,流量调度方法还包括:网络设备对训练前的第三神经网络进行多轮训练。或者,控制器对训练前的第三神经网络进即行多轮训练。其中,网络设备和控制器对第三神经网络的训练方法相同,下面以网络设备对训练前的第三神经网络进行训练来举例说明。
在一种可能的设计中,网络设备对训练前的第三神经网络进行的多轮训练中的每轮训练,包括:网络设备根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
在一种可能的设计中,网络设备可以根据如下公式训练第三神经网络的参数:
通过上述公式的不断迭代,直到得到的θ序列收敛为止。
其中,θ(t+1)表示在第t+1轮训练的第三神经网络的参数,θ(t)表示在第t轮训练或者第t个时间段的第三神经网络的参数,M'(t),ω(t))表示对第一长期奖励值关于a(t)求梯度,μ(o(t),θ(t))为第一神经网络中的最后一个神经网络层,用于根据局部状态信息生成流量调度指令,表示对所述最后一个神经网络层关于θ(t)求梯度。
在本申请实施例中,网络设备或者控制器根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,以得到一个可靠性较高的第三神经网络。进而提高流量调度的可靠性。
为了进一步降低通信量,本申请实施例还提供了设置控制门的方式,以使网络设备根据局部状态信息的发送概率与预设概率的关系,判断是否打开控制门,当确定打开控制门时,网络设备向控制器发送局部状态信息,当确定不打开控制门时,网络设备不向控制器发送局部状态信息。即控制门用于控制是否发送局部状态信息。该控制门设置在第一神经网络和第二神经网络之间。其中,局部状态信息的发送概率由局部状态信息和概率参数确定,该概率参数为局部状态信息的发送概率涉及的参数。因此,对于第一神经网络的训练还包括对上述概率参数的训练。
具体地,图11为本申请另一实施例提供的一种神经网络训练方法的流程图,如图11所示,该方法包括如下步骤:
步骤S1101:网络设备获取第三长期奖励值,第三长期奖励值表示第四流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第四流量调度指令为在本轮训练不发送第二局部状态信息时生成的流量调度指令。
其中,第三长期奖励值的计算方法与第一长期奖励值的计算方法类似,对此不再赘述。
步骤S1102:网络设备根据第一长期奖励值、第三长期奖励值和本轮训练中的预设阈值确定概率参数。
具体地,Y(o(t))=I[Q'(t)-Q(t)]>T(t)(4)
I[*]为指示函数,如果*为真,则I[*]为1,如果*为假,则I[*]为0,Q'(t)表示第三长期奖励值,Q(t)表示第一长期奖励值,T(t)表示预设阈值。为了使我们的方法更好的在无模型设置下执行,在本申请中,使用指数移动平均(Exponential Moving Average)方法来动态地设置T(t):
T(t)=(1-β)T(t-1)+β(Q'(t)-Q(t))(5)
β表示平滑系数,取值范围为【0,1】。
θop表示概率参数,E[]表示期望函数,p(o|θop)表示概率参数为θop时,局部状态信息o的发送概率。
基于此,对于步骤S401:网络设备根据第一局部状态信息和概率参数,确定第一局部状态信息的发送概率。当第一局部状态信息的发送概率大于预设概率时,网络设备发送第一局部状态信息。当第一局部状态信息的发送概率小于或等于预设概率时,网络设备不发送第一局部状态信息。或者,控制器根据第一局部状态信息和概率参数,确定第一局部状态信息的发送概率。控制器将第一局部状态信息的发送概率发送给网络设备,当第一局部状态信息的发送概率大于预设概率时,网络设备发送第一局部状态信息。当第一局部状态信息的发送概率小于或等于预设概率时,网络设备不发送第一局部状态信息。
在本申请实施例中,网络设备或者控制器可以训练概率参数,以使网络设备或者控制器根据该概率参数确定局部状态信息的发送概率,当局部状态信息的发送概率大于预设概率时,网络设备发送该局部状态信息,相反,当局部状态信息的发送概率小于或等于预设概率时,网络设备不发送该局部状态信息,从而进一步降低了通信量。在一种可能的设计中,在本申请实施例中,还可以依据指数移动平均方法确定预设概率,这种动态方式可以得到更加准确的概率参数。
进一步地,对于本申请涉及的应用场景二,即本申请技术方案应用于双层网络架构,这种情况下,网络设备(即SDN控制器)将获取到的流量调度指令配置到转发表中,转发表包括待传输的数据流的标识、下一跳地址、下一跳地址掩码以及流量调度指令。其中,数据流的标识可以是域入口因特网协议(Internet Protocol,IP)地址+域出口IP地址。例如,网络设备A的路由转发表为(数据流1,Z的地址,Z的地址掩码,B,rate1%,D,rate2%,C,rate3%……),
基于这种双层架构的网络划分,对于控制器来讲,其容易执行上层强化学习控制器,对于网络设备来讲,其只要将流量调度指令下发给其他路由器即可,因此这种方案适合于规模较大的网络拓扑结构。
下面通过结合附图对本申请技术方案进行进一步的说明,如上所述,在本申请中,结合深度强化学习来实现本申请技术方案,进一步地,在本申请中还引入了第二神经网络(也被称为通信信道(Communication Channel,简称CC))用于根据各个网络设备的局部状态信息生成各个网络设备对应的全局状态信息,并引入了第四神经网络(也被称为通信信道网络)用于根据各个网络设备的局部传输消息生成各个网络设备对应的全局传输消息。假设强化学习模型为Actor-Critic模型,在此基础上增加了两个通信信道,即第二神经网络和第四神经网络,基于此,可以将本申请涉及的网络架构称为ACCNet。其中图12A至图12D为本申请一实施例提供的ACCNet的四种示意图。其中,如图12A-12D所示,每个梯形表示一个神经网络层,AN表示Actor Net中的一个神经网络层,CN表示Critic Net中的一个神经网络层,o1表示第一网络设备的局部状态信息,h1表示第一网络设备的临时变量,m1表示第一网络设备经过处理后的局部状态信息,mN表示第N网络设备经过处理后的局部状态信息,M1表示第一网络设备的全局状态信息,MN表示第N网络设备的全局状态信息,m1'表示第一网络设备的局部传输消息,M'N表示第N网络设备的局部传输消息,a1表示第一网络设备的流量调度指令,Q1表示第一网络设备的长期奖励值,该长期奖励值可以被理解为上述的第一长期奖励值。
如图12A所示,Actor(即本申请所述的第一神经网络)的所有神经网络层设置在网络设备中,两个CC网络(下方的CC为本申请所述的第二神经网络,上方的CC为本申请所述的第二神经网络)设置在控制器中,Critic设置在网络设备中。
如图12B所示,Actor的浅层神经网络层(用于生成临时变量和经处理后的局部状态信息)设置在网络设备中,Actor的深层神经网络层(用于生成流量调度指令)设置在控制器中,两个CC设置在控制器中,Critic设置在网络设备中。
如图12C所示,Actor的所有神经网络层设置在网络设备中,两个CC设置在控制器中,Critic设置在控制器中。
如图12D所示,Actor的浅层神经网络层设置在网络设备中,Actor的深层神经网络层设置在控制器中,两个CC设置在控制器中,Critic设置在控制器中。
如上所述,在本申请中,第一神经网络和第二神经网络之间可以设置控制门,例如:如图12A-图12D所示,网络设备或者控制器训练概率θop,通过训练后的θop以及局部状态信息o1得到局部状态信息o1的发送概率p,这里假设预设概率为Tp=0.5,当局部状态信息o1的发送概率p大于预设概率时,控制门g为1,表示发送局部状态信息o1,当局部状态信息o1的发送概率p小于或等于预设概率时,控制门g为0,表示不发送局部状态信息o1。
综上,通过图12A-图12D所示的ACCNet示意图,可以看出,本申请技术方案在解决部分可观察问题的同时,由于各个网络设备无需采用广播方式实现通信,而是与控制器进行通信,控制器基于各个局部状态信息生成全局状态信息,从而解决了通信量过大的问题。在一种可能的设计中,本申请技术方案可以与Actor-Critic和深度学习结合,而Actor-Critic本身是无模型,从而可以解决非平稳训练问题。在一种可能的设计中,网络设备或者控制器可以训练概率参数,以使网络设备或者控制器根据该概率参数确定局部状态信息的发送概率,当局部状态信息的发送概率大于预设概率时,网络设备发送该局部状态信息,相反,当局部状态信息的发送概率小于或等于预设概率时,网络设备不发送该局部状态信息,从而进一步降低了通信量。
图13为本申请一实施例提供的一种流量调度装置1300的结构示意图,该装置为网络设备的部分或者全部,该流量调度装置1300包括:
发送模块1301,用于向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;
接收模块1302,用于接收控制器发送的第一全局状态信息;
生成模块1303,用于根据第一全局状态信息生成第一流量调度指令;
流量调度模块1304,用于根据第一流量调度指令对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的;
装置还包括:
第一训练模块1305,用于对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,第一训练模块1305具体用于:获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为网络设备在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数。
在一种可能的设计中,第一训练模块1305具体用于:根据第二流量调度指令和第二局部状态信息,生成第一局部传输消息;向控制器发送第一局部传输消息,第一局部传输消息用于生成网络设备的第一全局传输消息;接收控制器发送的第一全局传输消息;根据第二流量调度指令对待传输的第二数据流进行流量调度,以确定当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;根据第三流量调度指令和第三局部状态信息,生成第二局部传输消息,第三局部状态信息用于生成第三流量调度指令;向控制器发送第二局部传输消息,第二局部传输消息用于生成网络设备的第二全局传输消息;接收控制器发送的第二全局传输消息;根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
装置还包括:
第二训练模块1306,用于对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,第二训练模块1306具体用于:根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
本申请提供的流量调度装置,可以执行上述网络设备侧所执行的流量调度方法,其内容和效果可参考方法实施例部分,在此不再赘述。
图14为本申请一实施例提供的一种流量调度装置1400的结构示意图,该装置为控制器的部分或者全部,该流量调度装置1400包括:
接收模块1401,用于接收网络设备发送的网络设备的第一局部状态信息;
生成模块1402,用于根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息;
发送模块1403,用于向网络设备发送第一全局状态信息,第一全局状态信息用于生成网络设备的第一流量调度指令;第一流量调度指令用于对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的;
装置还包括:
第一训练模块1404,用于对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,第一训练模块1404具体用于:获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为控制器在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数;将训练后的第一神经网络的参数发送给网络设备。
在一种可能的设计中,第一训练模块1404具体用于:接收第一局部传输消息,第一局部传输消息是根据第二流量调度指令和第二局部状态信息生成得到的;根据第一局部传输消息生成第一全局传输消息;根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;接收第二局部传输消息,第二局部传输消息是根据第三流量调度指令和第三局部状态信息生成得到的,第三局部状态信息用于生成第三流量调度指令;根据第二局部传输消息生成第二全局传输消息;根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
装置还包括:
第二训练模块1405,用于对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,第二训练模块1405具体用于:根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
本申请提供的流量调度装置,可以执行上述控制器侧所执行的流量调度方法,其内容和效果可参考方法实施例部分,在此不再赘述。
图15为本申请一实施例提供的一种网络设备1500的结构示意图,该网络设备1500包括:收发器1501、处理器1502和存储器1503,其中存储器1503用于存储计算机指令,以使处理器1503通过执行该指令,以实现如下功能。
收发器1501用于:向控制器发送网络设备的第一局部状态信息,第一局部状态信息用于生成网络设备的第一全局状态信息;接收控制器发送的第一全局状态信息。
处理器1502用于:根据第一全局状态信息生成第一流量调度指令;根据第一流量调度指令对待传输的第一数据流进行流量调度。
在一种可能的设计中,处理器1502还用于对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,处理器1502具体用于:获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为网络设备在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数。
在一种可能的设计中,处理器1502具体用于:根据第二流量调度指令和第二局部状态信息,生成第一局部传输消息;向控制器发送第一局部传输消息,第一局部传输消息用于生成网络设备的第一全局传输消息;接收控制器发送的第一全局传输消息;根据第二流量调度指令对待传输的第二数据流进行流量调度,以确定当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;根据第三流量调度指令和第三局部状态信息,生成第二局部传输消息,第三局部状态信息用于生成第三流量调度指令;向控制器发送第二局部传输消息,第二局部传输消息用于生成网络设备的第二全局传输消息;接收控制器发送的第二全局传输消息;根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;处理器1502还用于对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,处理器1502具体用于:根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
本申请提供的网络设备,可以执行上述网络设备侧所执行的流量调度方法,其内容和效果可参考方法实施例部分,在此不再赘述。
图16为本申请一实施例提供的一种控制器1600的结构示意图,该控制器1600包括:收发器1601、处理器1602和存储器1603,其中存储器1603用于存储计算机指令,以使处理器1603通过执行该指令,以实现如下功能。
收发器1601用于接收网络设备发送的网络设备的第一局部状态信息;
处理器1602用于根据第一局部状态信息和其他网络设备的局部状态信息生成网络设备的第一全局状态信息;
收发器1601还用于向网络设备发送第一全局状态信息,第一全局状态信息用于生成网络设备的第一流量调度指令;第一流量调度指令用于对待传输的第一数据流进行流量调度。
在一种可能的设计中,第一局部状态信息和第一流量调度指令是基于训练后的第一神经网络得到的,或者,第一流量调度指令是基于训练后的第一神经网络得到的;
处理器1602还用于对训练前的第一神经网络进行多轮训练。
在一种可能的设计中,处理器1602具体用于:获取网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,第一长期奖励值表示第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,第二流量调度指令为控制器在本轮训练中根据第二局部状态信息生成的流量调度指令,第三流量调度指令为第二流量调度指令的下一条流量调度指令;根据当前的奖励值、第一长期奖励值和第二长期奖励值训练第一神经网络的参数;将训练后的第一神经网络的参数发送给网络设备。
在一种可能的设计中,处理器1602具体用于:接收第一局部传输消息,第一局部传输消息是根据第二流量调度指令和第二局部状态信息生成得到的;根据第一局部传输消息生成第一全局传输消息;根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到当前的奖励值,并根据第二流量调度指令、第二局部状态信息和第一全局传输消息生成第一长期奖励值;接收第二局部传输消息,第二局部传输消息是根据第三流量调度指令和第三局部状态信息生成得到的,第三局部状态信息用于生成第三流量调度指令;根据第二局部传输消息生成第二全局传输消息;根据第三流量调度指令、第三局部状态信息和第二全局传输消息生成第二长期奖励值。
在一种可能的设计中,局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
处理器1602还用于对训练前的第三神经网络进行多轮训练。
在一种可能的设计中,处理器1602具体用于:根据第一长期奖励值和第一神经网络中的一个神经网络层,训练第三神经网络的参数,一个神经网络层用于根据局部状态信息生成流量调度指令。
本申请提供的控制器,可以执行上述控制器侧所执行的流量调度方法,其内容和效果可参考方法实施例部分,在此不再赘述。
本申请还提供一种计算机存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
Claims (20)
1.一种流量调度方法,其特征在于,包括:
网络设备向控制器发送所述网络设备的第一局部状态信息,所述第一局部状态信息用于生成所述网络设备的第一全局状态信息;
所述网络设备接收所述控制器发送的所述第一全局状态信息;
所述网络设备根据所述第一全局状态信息生成第一流量调度指令;
所述网络设备根据所述第一流量调度指令对待传输的第一数据流进行流量调度;
所述方法还包括:
所述网络设备获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,所述当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,所述第一长期奖励值表示所述第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二流量调度指令为所述网络设备在所述本轮训练中根据第二局部状态信息生成的流量调度指令,所述第三流量调度指令为所述第二流量调度指令的下一条流量调度指令;
所述网络设备根据所述当前的奖励值、所述第一长期奖励值和所述第二长期奖励值训练第一神经网络的参数,所述第一流量调度指令是基于训练后的第一神经网络得到的。
2.根据权利要求1所述的方法,其特征在于,所述第一局部状态信息和所述第一流量调度指令是基于训练后的第一神经网络得到的。
3.根据权利要求1所述的方法,其特征在于,所述网络设备获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,包括:
所述网络设备根据所述第二流量调度指令和所述第二局部状态信息,生成第一局部传输消息;
所述网络设备向所述控制器发送所述第一局部传输消息,所述第一局部传输消息用于生成所述网络设备的第一全局传输消息;
所述网络设备接收所述控制器发送的所述第一全局传输消息;
所述网络设备根据所述第二流量调度指令对待传输的第二数据流进行流量调度,以确定所述当前的奖励值,并根据所述第二流量调度指令、所述第二局部状态信息和所述第一全局传输消息生成所述第一长期奖励值;
所述网络设备根据所述第三流量调度指令和第三局部状态信息,生成第二局部传输消息,所述第三局部状态信息用于生成所述第三流量调度指令;
所述网络设备向所述控制器发送所述第二局部传输消息,所述第二局部传输消息用于生成所述网络设备的第二全局传输消息;
所述网络设备接收所述控制器发送的所述第二全局传输消息;
所述网络设备根据所述第三流量调度指令、所述第三局部状态信息和所述第二全局传输消息生成所述第二长期奖励值。
4.根据权利要求3所述的方法,其特征在于,所述局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,所述第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
所述方法还包括:
所述网络设备对训练前的所述第三神经网络进行多轮训练。
5.根据权利要求4所述的方法,其特征在于,所述网络设备对训练前的所述第三神经网络进行的所述多轮训练中的每轮训练,包括:
所述网络设备根据所述第一长期奖励值和所述第一神经网络中的一个神经网络层,训练所述第三神经网络的参数,所述一个神经网络层用于根据局部状态信息生成流量调度指令。
6.一种流量调度方法,其特征在于,包括:
控制器接收网络设备发送的所述网络设备的第一局部状态信息;
所述控制器根据所述第一局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第一全局状态信息;
所述控制器向所述网络设备发送所述第一全局状态信息,所述第一全局状态信息用于生成所述网络设备的第一流量调度指令;所述第一流量调度指令用于对待传输的第一数据流进行流量调度;
所述方法还包括:
所述控制器获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,所述当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,所述第一长期奖励值表示所述第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二流量调度指令为所述控制器在所述本轮训练中根据第二局部状态信息生成的流量调度指令,所述第三流量调度指令为所述第二流量调度指令的下一条流量调度指令;
所述控制器根据所述当前的奖励值、所述第一长期奖励值和所述第二长期奖励值训练第一神经网络的参数,所述第一流量调度指令是基于训练后的第一神经网络得到的;
所述控制器将训练后的第一神经网络的参数发送给所述网络设备。
7.根据权利要求6所述的方法,其特征在于,所述第一局部状态信息和所述第一流量调度指令是基于训练后的第一神经网络得到的。
8.根据权利要求6所述的方法,其特征在于,所述控制器获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,包括:
所述控制器接收第一局部传输消息,所述第一局部传输消息是根据所述第二流量调度指令和所述第二局部状态信息生成得到的;
所述控制器根据所述第一局部传输消息生成第一全局传输消息;
所述控制器根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到所述当前的奖励值,并根据所述第二流量调度指令、所述第二局部状态信息和所述第一全局传输消息生成所述第一长期奖励值;
所述控制器接收第二局部传输消息,所述第二局部传输消息是根据所述第三流量调度指令和第三局部状态信息生成得到的,所述第三局部状态信息用于生成所述第三流量调度指令;
所述控制器根据所述第二局部传输消息生成第二全局传输消息;
所述控制器根据所述第三流量调度指令、所述第三局部状态信息和所述第二全局传输消息生成所述第二长期奖励值。
9.根据权利要求8所述的方法,其特征在于,所述局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,所述第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
所述方法还包括:
所述控制器对训练前的所述第三神经网络进行多轮训练。
10.根据权利要求9所述的方法,其特征在于,所述控制器对训练前的所述第三神经网络进行的所述多轮训练中的每轮训练,包括:
所述控制器根据所述第一长期奖励值和所述第一神经网络中的一个神经网络层,训练所述第三神经网络的参数,所述一个神经网络层用于根据局部状态信息生成流量调度指令。
11.一种流量调度装置,其特征在于,包括:
发送模块,用于向控制器发送网络设备的第一局部状态信息,所述第一局部状态信息用于生成所述网络设备的第一全局状态信息;
接收模块,用于接收所述控制器发送的所述第一全局状态信息;
生成模块,用于根据所述第一全局状态信息生成第一流量调度指令;
流量调度模块,用于根据所述第一流量调度指令对待传输的第一数据流进行流量调度;
所述装置还包括:
第一训练模块,具体用于获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,所述当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,所述第一长期奖励值表示所述第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二流量调度指令为所述网络设备在所述本轮训练中根据第二局部状态信息生成的流量调度指令,所述第三流量调度指令为所述第二流量调度指令的下一条流量调度指令;
根据所述当前的奖励值、所述第一长期奖励值和所述第二长期奖励值训练第一神经网络的参数,所述第一流量调度指令是基于训练后的第一神经网络得到的。
12.根据权利要求11所述的装置,其特征在于,所述第一局部状态信息和所述第一流量调度指令是基于训练后的第一神经网络得到的。
13.根据权利要求11所述的装置,其特征在于,所述第一训练模块具体用于:
根据所述第二流量调度指令和所述第二局部状态信息,生成第一局部传输消息;
向所述控制器发送所述第一局部传输消息,所述第一局部传输消息用于生成所述网络设备的第一全局传输消息;
接收所述控制器发送的所述第一全局传输消息;
根据所述第二流量调度指令对待传输的第二数据流进行流量调度,以确定所述当前的奖励值,并根据所述第二流量调度指令、所述第二局部状态信息和所述第一全局传输消息生成所述第一长期奖励值;
根据所述第三流量调度指令和第三局部状态信息,生成第二局部传输消息,所述第三局部状态信息用于生成所述第三流量调度指令;
向所述控制器发送所述第二局部传输消息,所述第二局部传输消息用于生成所述网络设备的第二全局传输消息;
接收所述控制器发送的所述第二全局传输消息;
根据所述第三流量调度指令、所述第三局部状态信息和所述第二全局传输消息生成所述第二长期奖励值。
14.根据权利要求13所述的装置,其特征在于,所述局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,所述第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
所述装置还包括:
第二训练模块,用于对训练前的所述第三神经网络进行多轮训练。
15.根据权利要求14所述的装置,其特征在于,所述第二训练模块具体用于:
根据所述第一长期奖励值和所述第一神经网络中的一个神经网络层,训练所述第三神经网络的参数,所述一个神经网络层用于根据局部状态信息生成流量调度指令。
16.一种流量调度装置,其特征在于,包括:
接收模块,用于接收网络设备发送的所述网络设备的第一局部状态信息;
生成模块,用于根据所述第一局部状态信息和其他网络设备的局部状态信息生成所述网络设备的第一全局状态信息;
发送模块,用于向所述网络设备发送所述第一全局状态信息,所述第一全局状态信息用于生成所述网络设备的第一流量调度指令;所述第一流量调度指令用于对待传输的第一数据流进行流量调度;
所述装置还包括:
第一训练模块,具体用于获取所述网络设备的当前的奖励值、第一长期奖励值和第二长期奖励值,所述当前的奖励值表示第二流量调度指令在本轮训练中对流量调度问题的价值大小,所述第一长期奖励值表示所述第二流量调度指令在本轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二长期奖励值表示第三流量调度指令在下一轮训练及之后的各轮训练中对流量调度问题的价值大小,所述第二流量调度指令为控制器在所述本轮训练中根据第二局部状态信息生成的流量调度指令,所述第三流量调度指令为所述第二流量调度指令的下一条流量调度指令;
根据所述当前的奖励值、所述第一长期奖励值和所述第二长期奖励值训练第一神经网络的参数,所述第一流量调度指令是基于训练后的第一神经网络得到的;
将训练后的所述第一神经网络的参数发送给所述网络设备。
17.根据权利要求16所述的装置,其特征在于,所述第一局部状态信息和所述第一流量调度指令是基于训练后的第一神经网络得到的。
18.根据权利要求16所述的装置,其特征在于,所述第一训练模块具体用于:
接收第一局部传输消息,所述第一局部传输消息是根据所述第二流量调度指令和所述第二局部状态信息生成得到的;
根据所述第一局部传输消息生成第一全局传输消息;
根据第二流量调度指令对待传输的第二数据流进行流量调度,以得到所述当前的奖励值,并根据所述第二流量调度指令、所述第二局部状态信息和所述第一全局传输消息生成所述第一长期奖励值;
接收第二局部传输消息,所述第二局部传输消息是根据所述第三流量调度指令和第三局部状态信息生成得到的,所述第三局部状态信息用于生成所述第三流量调度指令;
根据所述第二局部传输消息生成第二全局传输消息;
根据所述第三流量调度指令、所述第三局部状态信息和所述第二全局传输消息生成所述第二长期奖励值。
19.根据权利要求18所述的装置,其特征在于,所述局部传输消息、第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的,或者,所述第一长期奖励值和第二长期奖励值是基于训练后的第三神经网络得到的;
所述装置还包括:
第二训练模块,用于对训练前的所述第三神经网络进行多轮训练。
20.根据权利要求19所述的装置,其特征在于,所述第二训练模块具体用于:
根据所述第一长期奖励值和所述第一神经网络中的一个神经网络层,训练所述第三神经网络的参数,所述一个神经网络层用于根据局部状态信息生成流量调度指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505121.6A CN111294284B (zh) | 2018-12-10 | 2018-12-10 | 流量调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505121.6A CN111294284B (zh) | 2018-12-10 | 2018-12-10 | 流量调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111294284A CN111294284A (zh) | 2020-06-16 |
CN111294284B true CN111294284B (zh) | 2022-04-26 |
Family
ID=71021844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811505121.6A Active CN111294284B (zh) | 2018-12-10 | 2018-12-10 | 流量调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111294284B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116324809A (zh) * | 2020-10-20 | 2023-06-23 | 华为技术有限公司 | 通信方法、装置及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106997488A (zh) * | 2017-03-22 | 2017-08-01 | 扬州大学 | 一种结合马尔科夫决策过程的动作知识提取方法 |
WO2017219890A1 (zh) * | 2016-06-23 | 2017-12-28 | 华为技术有限公司 | 软件定义网络中生成路由控制动作的方法和相关设备 |
CN108880909A (zh) * | 2018-07-10 | 2018-11-23 | 北京邮电大学 | 一种基于强化学习的网络节能方法及装置 |
CN108923975A (zh) * | 2018-07-05 | 2018-11-30 | 中山大学 | 一种面向分布式网络的流量行为分析方法 |
-
2018
- 2018-12-10 CN CN201811505121.6A patent/CN111294284B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017219890A1 (zh) * | 2016-06-23 | 2017-12-28 | 华为技术有限公司 | 软件定义网络中生成路由控制动作的方法和相关设备 |
CN106997488A (zh) * | 2017-03-22 | 2017-08-01 | 扬州大学 | 一种结合马尔科夫决策过程的动作知识提取方法 |
CN108923975A (zh) * | 2018-07-05 | 2018-11-30 | 中山大学 | 一种面向分布式网络的流量行为分析方法 |
CN108880909A (zh) * | 2018-07-10 | 2018-11-23 | 北京邮电大学 | 一种基于强化学习的网络节能方法及装置 |
Non-Patent Citations (3)
Title |
---|
Flow Based Anomaly Detection in Software Defined Networking: A Deep Learning Approach With Feature Selection Method;Samrat Kumar Dey;《2018 4th International Conference on Electrical Engineering and Information & Communication Technology》;20180915;第1-6页 * |
深度学习在未来SDN网络布局中应用探讨;李海枫;《广西通信技术》;20170915(第3期);第38-40页 * |
深度强化学习综述;刘全等;《计算机学报》;20170119;第1-27页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111294284A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Qiong et al. | Towards V2I age-aware fairness access: A DQN based intelligent vehicular node training and test method | |
CN112491714B (zh) | SDN环境下基于深度强化学习的智能QoS路由优化方法、系统 | |
CN114286413B (zh) | Tsn网络联合路由选择与流分配方法及相关设备 | |
Bhattacharyya et al. | QFlow: A reinforcement learning approach to high QoE video streaming over wireless networks | |
CN111654438B (zh) | 一种网络中建立转发路径的方法、控制器及系统 | |
JP2010500837A (ja) | 遠隔通信ネットワークにおける情報転送の最適化方法 | |
CN108684046A (zh) | 一种基于随机学习的接入网服务功能链部署方法 | |
CN103621167A (zh) | 基于与移动装置关联的网络地址调整服务质量 | |
CN113726656B (zh) | 时延敏感流转发的方法及装置 | |
CN115484205B (zh) | 确定性网络路由与队列调度方法及装置 | |
Chiu et al. | Reinforcement Learning‐Based Service‐Oriented Dynamic Multipath Routing in SDN | |
CN105409168A (zh) | 通信系统 | |
CN111294284B (zh) | 流量调度方法及装置 | |
CN116527565A (zh) | 基于图卷积神经网络的互联网路由优化方法及装置 | |
CN114422453A (zh) | 一种在线规划时间敏感流的方法、装置及存储介质 | |
CN105684362A (zh) | 流保留协议的第一协议实体与路由选择协议的第二协议实体之间的互相配合 | |
Mazandarani et al. | A Semantic-Aware Multiple Access Scheme for Distributed, Dynamic 6G-Based Applications | |
CN114205300B (zh) | 一种能够在流量信息不完整情况下保证coflow传输截止期限的流量调度方法 | |
Roy et al. | Optimizing QoS-based multicast routing in wireless networks: A multi-objective genetic algorithmic approach | |
DE112010002237T5 (de) | Bandbreitenzuweisung in einem Resilient Packet Ring-Netzwerk durch einen PI-Regler | |
CN113992595B (zh) | 一种基于优先经验回放dqn的sdn数据中心拥塞控制方法 | |
CN116094983A (zh) | 基于深度强化学习的智能路由决策方法、系统及存储介质 | |
Wei et al. | G-Routing: Graph Neural Networks-Based Flexible Online Routing | |
Zhang et al. | A dual price-based congestion control mechanism for optical burst switching networks | |
CN116743582A (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 |