一种SDN架构下基于深度强化学习的路由优化架构及方法

文档序号:26642974发布日期:2021-09-15 01:00阅读:425来源:国知局
一种SDN架构下基于深度强化学习的路由优化架构及方法
一种sdn架构下基于深度强化学习的路由优化架构及方法
技术领域
1.本发明属于网络技术领域,特别涉及一种sdn架构下基于深度强化学习的路由优化架构及方法。


背景技术:

2.在通信网络中,路由规划是一个进行流量分配的在线决策问题,对于网络性能的提升起到至关重要的作用。随着智能设备和网络流量呈现爆炸式增长,网络功能虚拟化以及云计算的出现推动行业重新审视传统的网络体系结构。一方面,当前流量模式已经发生重大变化,传统网络的静态体系架构已经不适合数据中心、云计算等环境的动态计算和存储需求,也无法满足在当前网络中对数据流进行细粒度控制的需求。软件定义网络(software

defined networking,sdn)作为一种网络重构技术,通过将数据转发过程与逻辑控制过程分离,实现网络的可观可控。sdn将在整个网络的垂直方向变得开放、标准化、可编程,且可在不改变硬件设备的前提下,以中央控制方式重新规划网络,为控制网络流量提供了新方案。另一方面,基于规则的路由协议在动态的网络环境中暴露出不适用性及效率低下等问题。强化学习(reinforcement learning,rl)通过构建智能体(agent)与环境交互,从经验中学习,使在不同状态下输出的动作能获得的累积奖励最大。由于rl可自主学习智能控制策略,使其广泛使用在机器人控制、自动驾驶、游戏及路径规划等领域。本发明使用rl解决sdn中的路由规划问题,利用agent与网络环境互动更新自身策略,使其可根据不同的网络状态及时调整数据传输的路由,实现比基于规则的路由算法更加动态及智能化的路由选择。
3.对当前数据流的路由规划,必然引发网络状态的变化,进一步影响对后续数据流的路由规划,这种经典的马尔可夫决策过程可用rl解决。基于强化学习的网络路由规划算法将网络作为rl中的环境,获取网络状态信息作为状态(state),agent根据当前状态和自身策略(policy)输出相应的行为(action)。在路由规划问题中,action即为数据传输的路由。sdn中的控制器(controller)根据action构建流表下发给switch,由switch完成数据传输。agent通过获取网络状态,如链路利用率、网络负载等数据作为奖励(reward),调整policy使可以获得更多累积reward的action输出的机率增加,并且在一定程度上尝试新action以探索更多的状态空间,使其具备发现更好路由的能力。当完成了模型训练,agent可以根据不同的网络状态输出最优的数据转发路由。
4.传统的基于强化学习的路由规划算法存在着考虑因素不全面、训练效率低、无法应对网络故障等问题。具体来说,传统的算法仅考虑了当前网络状态对后续路由规划的影响,可根据不同网络链路的性能和使用情况产生路由,使整体网络的性能维持在良好的水平。在sdn中,controller通过下发流表给switch,由switch根据流表决定数据流的转发规则,实现对数据流的控制。受到匹配项数量的增加以及switch本身性能的影响,switch匹配到对应转发规则的时间会显著增加。switch的转发效能成为路由规划中不可忽视的因素。另外,强化学习虽然可以与环境自主交互,在不断尝试中更新自身策略。但算法本身在初期
没有任何经验,agent在未知环境中往往执行的是随机策略,学习到知识的效率很低。最后,现有的基于强化学习的路由规划算法,缺少针对网络故障的处理模块。根据链路的状态调整模型结构则需要重新训练,网络健壮性较差。


技术实现要素:

5.为了解决数据传输效率受switch转发性能的影响,本发明在传统的路由规划算法基础上,提出了一种sdn架构下基于深度强化学习的路由优化架构及方法。本发明在传统基于机器学习的路由算法的基础上,考虑转发设备的性能对数据传输的影响,使用深度模型对其转发效能进行估计,并且将该估计值作为输入传给深度强化学习(deep reinforcement learning,drl)算法,使agent输出的决策受到对switch转发效能的估计值影响。由于考虑的因素更全面,因此产生的最优路由更加合理。本发明设计了专家样本,在另一个具有相同网络状态和拓扑的环境中,使用成熟的路由协议如ospf产生路由,将网络状态的变化、执行的路由以及奖励作为专家样本存入经验池。在经验池中还存储着agent自身与环境交互产生的训练样本。在数据传输完成后,agent从经验回放池中抽取部分样本进行模型训练。其中的专家样本将会引导agent的训练方向,并且加速其初期的训练效率。另外,本发明在drl模型中设计了与当前网络链路可用性紧密相关的过滤层。该过滤层使用和神经网络的输出具有相同维度的二进制向量表示链路的可用性。当网络节点或者链路变为不可用时,通过调整过滤层中的值,即可影响最优路由的输出概率。通过以上的改进,本发明考虑设备的转发效能,输出更合理的最优路由,并使用专家样本引导及加速模型训练,同时增强了网络的健壮性。
6.具体技术方案如下:
7.一种sdn架构下基于深度强化学习的路由优化架构,具体的,控制平面内,controller获取数据平面的网络状态信息,一方面将网络链路状态和switch数据传给agent,另一方面,在与agent运行具有相同网络拓扑、相同参数、相同网络状态的若干并行的虚拟网络环境中,利用现有协议,产生现有协议在当前网络状态下的传输路由并生成专家样本,与agent和环境交互产生的训练样本一起放入经验池中;不同的样本具有相同的结构,均为<当前网络状态,输出路由,反馈的奖励,下一个网络状态>四元组,表示为<s
t
,a
t
,r
t+1
,s
t+1
>,奖励函数定义为:

(max{u}+d
s,d
),u为表示当前网络环境下各链路利用率的向量,d
s,d
表示数据流从源节点s到目的节点d的延迟。算法的目标是使奖励最大化,即是使当前网络中的最大链路利用率和端到端传输延迟尽可能小。
8.所述的agent采用改进后的actor

critic算法,actor

critic算法包括actor网络、softmax、网络链路可用性分析模块、critic网络,改进之处在于,在actor

critic算法中的actor和softmax之间增加了过滤层,过滤层为二进制向量,其数值与网络链路可用性相关,actor模块的输出与过滤层逐位相乘,当网络中出现链路不可用时,表示该链路可用性的对应位置为0,否则为1;agent的输入包括网络链路状态和switch数据,网络链路状态包括传输延迟、抖动、丢包率、带宽、流类型数量,switch数据为switch效能估计模块根据switch状态估计的转发性能,switch状态估计包括吞吐量、cpu、内存、转发延迟、数据包转发率、流表数量、匹配项总数、当前流类型;switch效能估计模块由一个3层的神经网络实现,该神经网络第一层包含8个神经元,用于接受输入向量,第二层为全连接层,分别包含10
个神经元,激活函数为relu,最后一层包含1个神经元,输出对switch性能的估计值。
9.一种基于sdn架构下基于深度强化学习的路由优化方法,包括以下步骤:
10.(1)switch接收到业务数据流,查询流表;若匹配到转发规则,根据规则进行数据转发,将产生的<当前网络状态,输出路由,反馈的奖励,下一个网络状态>四元组加入经验池,否则继续步骤;
11.(2)分为两路并行分支,
12.分支一依次包括以下步骤:
13.由switch向controller发送流规则请求;
14.controller获取当前网络链路状态以及switch状态信息;
15.controller将吞吐量、cpu、内存、转发延迟、数据包转发率、流表数量、匹配项总数、当前流类型作为输入传给switch效能估计模块,输出对应switch效能的估计值;
16.controller将当前网络链路状态和switch效能估计值作为输入,记为s
t
,将s
t
传入改进的actor

critic,由actor网络输出对所有传输链路的估计;
17.根据当前的网络状况确定过滤层的值;
18.actor输出的向量依次经过过滤层和softmax层,产生执行动作的概率分布,即确定当前数据流的传输路径,记为a
t

19.controller根据a
t
进行数据传输后,获取网络状态信息,记为s
t+1
,同时根据奖励函数计算奖励值,记为r
t+1
,将<s
t
,a
t
,r
t+1
,s
t+1
>四元组作为训练样本存入经验回放池中;
20.分支二依次包括以下步骤:
21.controller在具有相同参数和状态的虚拟网络中,在s
t
状态下根据现有协议产生数据传输路由a
t
,获取数据传输后的网络状态s
t+1
及链路利用率r
t+1
,产生用为四元组<s
t
,a
t
,r
t+1
,s
t+1
>的专家样本存入经验回放池;
22.(3)从经验池中随机抽取一批样本,记为mini

batch;
23.(4)将mini

batch中的s
t
和s
t+1
作为输入传进critic网络,产生会v(s
t
)和v(s
t+1
),分辨表示对s
t
和s
t+1
这两个状态价值的估计;
24.(5)根据v(s
t
)、v(s
t+1
)和r
t+1
计算td error,用于更新actor和critic网络中的参数;
25.(6)当actor

critic收敛,则完成模型训练,利用训练完成的agent进行最优路由估计,否则转到步骤(1)。
26.有益效果
27.本发明提供了一种综合考虑了switch转发效能的路由规划算法。随着流表中匹配项数量的增加,switch匹配和转发的时间增加,转发效能成为路由规划时需要考虑的重要因素之一。由于考虑的因素更全面,因此可产生更合理的数据传输路由。
28.本发明设计了专家样本产生模块,利用现有的成熟协议产生专家样本放入经验池中,可快速加快模型初期的训练速度,并引导模型参数调整的方向。深度强化学习具有探索状态空间的特征,最终可产生超过专家样本性能的最佳路由。
29.本发明设计了过滤层,使用二进制向量表示网络链路的可用性。当网络节点或链路出现故障时,网络链路可用性模块通过调整过滤层中数值,可无需改变模型结构并继续使用训练过程中获得的知识,输出不同网络链路可用性情况下的最优路由方案。
30.本发明考虑设备的转发效能,输出更合理的最优路由,并使用专家样本引导及加速模型训练,同时增强了网络的健壮性。
附图说明
31.图1、sdn架构下基于深度强化学习的路由优化架构示意图;
32.图2、本发明所述agent工作过程示意图;
33.图3、本发明方法流程图。
具体实施方式
34.sdn架构下基于深度强化学习的路由优化架构如图1所示。controller获取数据平面的网络状态信息,一方面将网络链路和switch数据传给agent。另一方面,在与agent运行具有相同网络拓扑、相同参数、相同网络状态的若干并行的虚拟网络环境中,利用如ospf、load balance等协议,产生该协议在当前网络状态下的传输路由并生成专家样本,与agent和环境交互产生的训练样本一同放入经验回放池中。不同的样本具有相同的结构,均为<当前网络状态,输出路由,反馈的奖励,下一个网络状态>四元组,可表示为<s
t
,a
t
,r
t+1
,s
t+1
>,专家样本中包含不同的网络状态与输出路由的映射关系。在模型的训练过程中,通过随机采样从经验池中抽取样本计算损失函数更新agent模型参数。若采样到由agent产生的训练样本,则通过算法流程更新自身模型参数;若采样到由其他路由协议产生的专家样本,路由协议在不同网络状态下产生路由的知识可引导模型的训练方向,agent可从将不同策略的优化目标集成在一起,并加快模型初期的训练速度。drl算法自身具备对于状态空间的探索能力,使其具有尝试专家样本以外的动作的机制,最终达到超越专家样本的性能。
35.具有不同性能参数的switch具有不同的转发效率,并且在sdn中switch通过流表匹配实现基于规则的数据转发。流表项数量的增加对匹配速度产生较大影响,进而影响转发效率。同时,即使是具有相同的源地址和目的地址的数据流,传输的数据类型不同所需要的网络资源也存在较大差异。例如,带宽要求很小的图片和带宽要求较大的视频流可能具有相同的源地址和目的地址、相同的端口id和相同的传输协议。由于难以使用多项式准确表示由多种因素共同影响的转发性能,本发明中设计了sdn交换机效能估计模块,该模块通过获取吞吐量、cpu、内存、转发延迟、流表数量等switch状态信息,使用人工神经网络对switch转发性能进行评估,switch数据为switch效能估计模块根据switch状态估计的转发性能,switch状态估计包括吞吐量、cpu、内存、转发延迟、数据包转发率、流表数量、匹配项总数、当前流类型;switch效能估计模块由一个3层的神经网络实现,该神经网络第一层包含8个神经元,用于接受输入向量,第二层为全连接层,分别包含10个神经元,激活函数为relu,最后一层包含1个神经元,输出对switch性能的估计值。同时结合当前网络状态信息,如传输延迟、抖动、丢包率等对agent进行训练,最终产生考虑转发设备效能的细粒度最优数据转发路由。本发明设计的sdn架构下基于深度强化学习的路由优化算法模型结构如图2所示。
36.在本发明中设计了过滤层,该层位于人工神经网络actor的输出和softmax层之间,其数值与网络链路可用性模块紧密相关,用二进制向量表示链路的可用性。当网络中出现由于节点、可用带宽等因素造成某些链路不可用时,表示该链路可用性的对应位置为0。
actor模块的输出与过滤层逐位相乘,可在不改变模型结构的情况,针对网络中突发故障,快速产生新的网络状态下的最优数据传输路由。
37.本发明方法流程如图3所示:
38.在controller中部署本发明设计的路由算法;
39.1.switch接收到业务数据流,查询流表;若匹配到转发规则,根据规则进行数据转发,将产生的<当前网络状态,输出路由,反馈的奖励,下一个网络状态>四元组加入经验池,否则继续步骤;
40.2.分为两路并行分支,
41.分支一依次包括以下步骤:
42.由switch向controller发送流规则请求;
43.controller获取当前网络链路状态以及switch状态信息;
44.controller将吞吐量、cpu、内存、转发延迟、数据包转发率、流表数量、匹配项总数、当前流类型作为输入传给switch效能估计模块,输出对应switch效能的估计值;
45.controller将当前网络链路状态和switch效能估计值作为输入,记为s
t
,将s
t
传入改进的actor

critic,由actor网络输出对所有传输链路的估计;
46.根据当前的网络状况确定过滤层的值;
47.actor输出的向量依次经过过滤层和softmax层,产生执行动作的概率分布,即确定当前数据流的传输路径,记为a
t

48.controller根据a
t
进行数据传输后,获取网络状态信息,记为s
t+1
,同时计算链路利用率,记为r
t+1
,将<s
t
,a
t
,r
t+1
,s
t+1
>四元组作为训练样本存入经验回放池中;分支二依次包括以下步骤:
49.controller在具有相同参数和状态的虚拟网络中,在s
t
状态下根据现有协议产生数据传输路由a
t
,获取数据传输后的网络状态s
t+1
及链路利用率r
t+1
,产生用为四元组<s
t
,a
t
,r
t+1
,s
t+1
>的专家样本存入经验回放池;
50.3.从经验池中随机抽取一批样本,记为mini

batch;
51.4.将mini

batch中的s
t
和s
t+1
作为输入传进critic网络,产生会v(s
t
)和v(s
t+1
),分辨表示对s
t
和s
t+1
这两个状态价值的估计;
52.5.根据v(s
t
)、v(s
t+1
)和r
t+1
计算td error,用于更新actor和critic网络中的参数;
53.6.当actor

critic收敛,则完成模型训练,利用训练完成的agent进行最优路由估计,否则转到步骤(1)。
54.根据上面的描述,本发明设计的算法首先估计考虑了sdn中switch的不同性能及不同数量的匹配项对转发效率的影响,使用一个深度模型对switch的效能进行估计,该并将此作为路由规划的考虑因素;设计了专家样本产生模块以引导actor

critic模型训练;同时考虑了网络中节点或链路故障的情况,可不改变模型结构以及无需重新训练,产生新的最佳路由。采用该方法后,在sdn中可以产生考虑switch转发效能的更合理的数据传输路由,同时具有较快的训练效率及增强网络健壮性。
55.本发明提出了一种sdn架构下基于深度强化学习的路由优化架构及方法,通过构建agent在不同的网络状态下根据当前策略产生转发路由,利用反馈评价所执行数据转发
路由的好坏,并调整策略使可以获得更多累积奖励的路由出现的机率增加。在训练完成后agent可根据当前的网络状态快速产生传输路径,且具有一定的泛化能力。
56.本发明在计算最优路由的过程中考虑了设备转发效能对传输速度的影响。在sdn中当匹配项数量增多时,switch的流表的匹配时间也会相应增加,并且switch的性能也会影响规则匹配和转发的效率。本发明使用深度模型对switch的转发效能进行估计,可以更合理的表示switch的转发效能,其估计值作为整体模型中的内部变量参与路由计算,可输出更合理的最优路由。
57.本发明设计了专家样本。由于drl算法在初期的训练效率很低,故使用成熟的路由协议产生专家样本,与agent自身产生的训练样本一同放入经验回放池中,通过从经验回放池中抽取一定数量的样本进行模型训练。专家样本引导agent训练的方向,并加速初期的训练效率。drl算法具有探索未知状态空间的特性,使其可能发现超越专家样本性能的结果。
58.本发明在actor网络输出后设计了过滤层。这是一种二进制向量用于表示当前网络链路的可用性,过滤层的数值与当前的网络状态紧密相关。当网络节点或者链路由于故障等原因不可用时,通过对过滤层中表示该链路的位置的数值进行调整,使actor输出的均为可用的路由。该方法可以应对网络故障,且无需调整模型结构,也无需重新训练,可直接获得新的网络状态下的最优路由。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1