本发明涉及网络流量调度的,尤其是指一种基于强化学习的网络流量负载均衡方法。
背景技术:
1、随着互联网的飞速发展,数据中心的流量呈爆发式增长,且业务流量需求呈不均匀分布,为了提高数据中心的处理能力,通过流量工程来优化路由,实现网络中各链路负载均衡是一种可行的解决方案。传统的流量工程方案通过重路由尽可能多的数据流来实现最佳或接近最佳的性能;但重路由带来的数据包乱序问题、时延抖动对业务有影响。为了在均衡链路负载的同时降低对业务的影响,可以采用部分重路由的方案,只对少部分的关键数据流进行重路由。
2、部分重路由方案中,关键数据流的选择策略需要随着网络结构和业务种类的变化进行动态调整,而主流的启发式流量负载均衡方法在关键数据流的选择上,无法随着网络结构变化作出自适应的调整。
技术实现思路
1、本发明的目的在于克服现有技术的缺点与不足,提出了一种基于强化学习的网络流量负载均衡方法,实现负载均衡的同时兼顾对业务的影响,尽可能通过重路由尽量少的业务流、重路由时延不敏感型业务流来实现较好的均衡效果,从而提高网络的处理能力与效率。
2、为实现上述目的,本发明所提供的技术方案为:基于强化学习的网络流量负载均衡方法,包括以下步骤:
3、1)软件定义网络sdn控制器获取交换机流表信息,构建端到端的流量矩阵和网络拓扑;
4、2)基于网络拓扑和流量矩阵,采用线性规划模型求解以最小化最大链路带宽利用率为目标的最优化问题,并将结果以数据对形式存储到数据库;
5、3)建立以最优带宽利用率和最小业务扰动为优化目标的强化学习模型,并提取数据库中的数据来训练;
6、4)采集实际流量转发需求,送入强化学习模型,得到关键数据流集合,并用线性规划模型解得关键数据流集合的重路由方案;
7、5)将重路由方案解析为传输路径;
8、6)根据传输路径更新网络配置,优化链路负载。
9、进一步,在步骤1)中,软件定义网络sdn控制器获取交换机流表信息,构建端到端的流量矩阵和网络拓扑,过程如下:
10、sdn控制器遍历每个交换机的流表项,收到交换机回复的flowstatsreply报文后,提取报文的ip字段和bytecount字段,根据ip字段所映射的接入交换机id进行流量聚合,得到当前交换机发送给其它交换机的累积数据总量;在t1时刻获取到数据总量bytecounttotal1,在t2时刻获取到数据总量bytecounttotal2,通过数据量差值bytediff=bytecounttotal2-bytecounttotal1与统计时间差值timediff=t2-t1,计算出当前交换机发送到其它交换机的流量速率,处理完所有交换机流表就能够得到全网的流量矩阵;对于网络拓扑,sdn控制器通过监听交换机及其端口的接入与退出事件来构建网络拓扑图。
11、进一步,在步骤2)中,所述线性规划模型的情况如下:
12、g(v,e)有向图表示网络拓扑,v代表交换机节点,e代表交换机之间的链路,i,j,k代表交换机节点的编号;
13、ci,j表示链路<i,j>的容量带宽,<i,j>∈e;
14、li,j表示链路<i,j>的总负载,<i,j>∈e;
15、表示链路<i,j>的初始负载,<i,j>∈e;
16、ds,d表示流量矩阵中从源交换机节点s到目的交换机节点d的带宽需求,s,d∈v,s≠d;
17、表示s到d的流量通过链路<i,j>进行传输的概率,s,d∈v,s≠d,<i,j>∈e;
18、最小化最大链路带宽利用率问题建模如下:
19、目标:最小化最大带宽利用率u;
20、约束:链路负载i,j:<i,j>∈e;
21、负载约束li,j≤ci,j·u;i,j:<i,j>∈e;
22、路径约束
23、表示s到d的流量通过以节点k为起点的链路<k,i>进行传输的概率,表示s到d的流量通过以节点k为终点的链路<i,k>进行传输的概率。
24、进一步,在步骤3)中,将关键流选择问题建模为马尔科夫决策过程,包括执行动作、更新状态和获得奖励,其对应的动作空间a、状态空间s′和奖励函数r三要素具体定义如下:
25、动作空间a:以节点对<s,d>,s≠d作为动作空间,在给定n个节点的网络中,动作空间大小为n*(n-1),每次交互选择其中的m个元素,将该m个元素的集合作为选择的动作;
26、状态空间s′:以流量矩阵作为状态空间,每一项代表源节点到目的节点的流量传输需求,在给定n个节点的网络中,状态空间大小为n*n;
27、奖励函数r:对选择m个节点对在流量矩阵中所对应的数据流fm=(f1,f2,...,fm),fm为第m个节点对,采用步骤2)的线性规划模型求解,此时为去除数据流(f1,f2,...,fm)之后的链路负载,得出优化后的带宽利用率指标u;同时对数据流(f1,f2,...,fm)进行评估,得出时延敏感数据流占比p1=时延敏感数据流个数c/数据流总数m;奖励值ε为微小常量,用来消除p1为0带来的异常;
28、采用深度神经网络作为强化学习模型来逼近最优策,初始时随机设置动作空间元素的概率值,为了提高网络的整体性能,将最大化奖励作为训练目标,采用梯度上升的方法来更新神经网络参数,同时在训练过程中引入baseline和信息熵来优化模型,加速模型的收敛;
29、所述深度神经网络是通过一个卷积层来提取流量矩阵的特征信息,再以全连接层来实现网络的表达能力,得出的策略为流量矩阵中节点对的概率值,选择其中概率最大的前m项作为需要重新路由的关键数据流集合f″m。
30、进一步,所述步骤4)包括以下步骤:
31、4.1)通过同步骤1)的方法收集当前网络中的流量转发需求;
32、4.2)通过同步骤3)的强化学习模型筛选出关键数据流集合f″m;
33、4.3)通过同步骤2)的线性规划模型求解出关键数据流集合的重路由方案<s,d>∈f″m。
34、进一步,所述步骤5)包括以下步骤:
35、5.1)去除solu中值为0的元素;
36、5.2)选择关键数据流集合f″m中的一条数据流fy,确定其源节点和目的节点<sy,dy>,并从solu中筛选出数据流fy所对应的路由方案子集同时创建三个空队列q1、q2、q3,将源节点sy加入到队列q1,记录当前节点值st=sy;
37、5.3)从中选择一个元素将节点sj加入到队列q1,节点概率值加入到q2,记录当前节点为st=sj;
38、5.4)如果当前节点st为目的节点dy,将q1中的路径加入到q3,并记录该路径概率将q1、q2的末尾元素弹出,回到步骤5.3);
39、5.5)根据路径概率从q3队列中选择数据流fy的重路由路径path;
40、5.6)依次选择下一条数据流,按照步骤5.2)到5.5)的步骤处理,得到关键数据流集合f′m的重路由后的传输路径paths;
41、进一步,在步骤6)中,根据得到的传输路径更新网络配置的过程如下:
42、将得出的传输路径paths,在ryu控制器转化成相应的流表修改指令flowmod,通过南向接口下发给交换机,达到流量负载均衡效果。
43、本发明与现有技术相比,具有如下优点与有益效果:
44、1、本发明提高了流量负载均衡的效率,重路由少量的关键数据流就可以实现接近最优的网络负载均衡效果,同时缩短了计算出优化方案的时间,更适用于实时优化网络数据流传输的场景。
45、2、本发明减少了流量负载均衡过程对业务的扰动,重路由关键流的选择过程中,引入了数据流重要程度的概念,通过对数据流的分类与评估,优先选择时延不敏感的数据流进行重路由,在优化负载均衡效果的同时尽可能降低对业务的影响。
46、3、本发明方法完成了从理论优化到路由部署的探索,在计算机网络流量调度领域具有较好的应用前景。