基于深度强化学习的软件定义网络QoS优化

2019-04-01 11:44兰巨龙张学帅胡宇翔孙鹏浩
通信学报 2019年12期
关键词:数据流链路架构

兰巨龙,张学帅,胡宇翔,孙鹏浩

(国家数字交换系统工程技术研究中心,河南 郑州 450001)

1 引言

近年来,互联网规模越来越大,网络应用越来越多,网络流量呈爆炸式增长。Cisco公司的《思科视觉网络索引:预测和趋势》白皮书指出,2022年全球网络总流量将达4.8 ZB。面对如此庞大的网络需求,现有有限的网络资源正面临重大挑战。当前,以软件定义网络(SDN,software-defined networking)为代表的新型网络结构正促进互联网领域的重大变革。SDN将原来高度耦合的控制逻辑与转发行为解耦,通过控制平面的开放接口获得全局网络视图,并提供给上层网络服务程序,实现了对全网的集中统一控制[1]。由于其在简化网络管理、降低运营成本、促进网络创新方面的卓越表现,SDN架构现已被包括Google、微软、Facebook在内的世界著名互联网公司应用在内部网络建设中[2]。

因此,结合SDN的优势,充分发挥现有网络潜能,提高网络资源利用率,改善网络传输性能,对保证网络的服务质量有重要意义[3]。但Hartman等[4]指出在带宽受限的网络架构中寻找传输最大流量的链路集是NP完全问题,启发式算法仍是研究人员的首选思路。当前广泛采用的开路最短路径优先(OSPF,open shortest path first)算法和负载均衡(VLB,valiant load balancing)算法[5],将所有流请求单一地路由到最短路径上或平均地路由到若干可用路径上,忽视了瓶颈链路的传输能力,难以取得最优结果。此外,在人工智能领域,深度强化学习(DRL,deep reinforcement learning)算法[6]借助深层神经网络[7]取得了突破性进展,而且已经有部分研究人员将DRL应用到网络控制场景中[8-9]。基于此,本文将长短期记忆(LSTM,long short-term memory)网络与DRL相结合,设计了软件定义网络的QoS优化机制,从而使SDN能够在满足QoS目标的基础上完成数据流调度。

具体而言,本文主要贡献包括以下3个方面。

1)架构层面,提出了针对网络数据流的自动控制架构,实现了对数据流的自动化控制与调度。

2)建模层面,通过建立软件定义网络QoS优化模型,引入经改进的深度强化学习算法对问题进行求解。

3)实现层面,搭建了软件定义网络QoS优化实验环境,通过测试验证了算法的有效性。

2 相关工作

在QoS优化问题研究方面,现有主流方法可以分为启发式算法和机器学习算法2种,现对这2种方法总结概括如下。

2.1 启发式算法

Chen等[10]为提高SDN云数据中心内部混合流的调度效率,设计了Karuna算法,在保证时延敏感性高的流传输的同时提高其他流的吞吐率;针对含有交叉节点和链路的网络流量QoS保障问题,Ongaro等[11]设计提出了MCFCSP(multi-commodity flow and constrained shortest path)算法,该算法先为多个流选择合适的路径,而后在满足链路带宽约束下将各流分到不同的路径中;Alizadeh等[12]将拥塞控制和负载均衡联合考虑,针对网络流量的分层控制响应机制慢问题设计拥塞感知(CONGA,congestion aware)模型,将数据中心网络对拥塞问题的响应缩短到毫秒级。

以上算法主要通过建模来近似拟合当前的网络状态,并采用启发式方法为数据流请求实时计算路由配置,因此此类算法有严格的适用场景,链路带宽和长度的变化都可能导致状态拟合算法出现较大误差,进而对算法的整体性能产生显著影响。

2.2 机器学习算法

Xu等[13]结合SDN架构和深度强化学习算法提出模型无关的流调度算法,利用网络自身的数据通过自学习的方式产生流控制逻辑,将一条数据流按照权重比例分配在选定的多条流通路上,避免建模过程中因近似处理带来的误差,具备良好的性能。但是本文分流(flow splitting)时采用的路径仍由k路最短路径(KSP,k-shortest path)算法产生,数据流仍会被分配在前k条较短路径上,难以避免链路瓶颈问题。在网络的拥塞控制方面,Xu等[14]结合多路径传输控制协议(MPTCP,multi-path transmission control protocol)引入深度强化学习算法,以最大化网络利用率为目标,通过自学习实现了对MPTCP流的自动化拥塞控制。但是此算法只是在只有一台交换机的简单拓扑上进行了可行性验证,将算法扩展到较为复杂的网络拓扑中还有待进一步研究。

3 QoS优化架构与建模

本节对基于深度强化学习的软件定义网络QoS优化算法中的具体元素进行阐述,并依据优化目标建立数学模型。

3.1 优化架构

本文提出的软件定义网络QoS优化架构的主要结构如图1所示,其中,各平面的具体介绍如下。

1)数据平面。主要由一系列可编程交换机组成,接收控制器经南向接口发送控制策略并完成对数据分组的监测、处理和转发等操作,具体地,控制策略的载体可以是OpenFlow流表[15]或P4程序[16]。

2)控制平面。负责连接应用平面与数据平面,维护全网视图,向下传递控制策略,向上将底层网络资源信息通过北向接口提供给应用平面。在北向接口选取上,基于REST架构的RESTful[17]在响应时间方面表现出了特有优势,因此架构中采用RESTful作为控制平面与应用平面的通信接口,以保证两平面间的通信效率。

图1 基于深度强化学习的软件定义网络QoS优化架构

3)应用平面。运行负责网络QoS优化的强化学习智能体,智能体通过控制平面提供的全网逻辑视图和数据平面网络资源信息生成控制策略,而后将控制策略经北向接口向控制平面下发。

3.2 QoS优化模型

1)链路资源

SDN拓扑模型记为无向图G=(V,E),V为图G的节点集,代表实际网络中交换机集合;E为图G的边集,代表实际网络中物理链路;网络链路用e表示,则e∈E。系统中的每条网络链路的传输能力不尽相同,记SDN中链路e的带宽为ce。

2)流量传输

节点集V中任意2个节点称作一组节点对,记K为所有节点对组成的集合。节点对间的一条路径记为一条转发路径p,图G中所有节点对之间的所有转发路径组成的集合记为P,节点对k间所有转发路径组成的集合记为Pk。网络中所有节点对间的流请求矩阵记为D,对应的节点对k间的流请求记为dk。定义变量表示节点对k间的流请求分配至路径p上的比重,变量lk表示节点对k间的链路时延。

定义1链路利用率ue。链路利用率表示分配在链路e上的流量大小与链路带宽的比值,反映了链路的负载程度,如式(1)所示。

定义2网络使用率U。网络使用率定义为各链路利用率的最大值,如式(2)所示。

定义3负载均衡程度σ。用所有链路中链路利用率的最大值和最小值之差表示链路的负载均衡程度,可以表示为式(3),因此σ越小,链路负载越均衡。

基于以上分析,软件定义网络QoS优化问题可以建模为

其中,式(4)为优化目标,即最小化网络利用率U;式(5)表示网络节点对间的所有流请求都分配到节点对间的转发路径上;式(6)确保任意链路的链路利用率不超过网络使用率;式(7)表示分配至各转发路径上的流不能为负值。

4 算法设计

为解决上述NP完全问题,本节将引入基于深度强化学习的QoS优化算法,利用神经网络感知网络状态,并通过自学习的方法做出满足优化目标的分流决策。

4.1 强化学习算法

在一个典型的强化学习模型中,智能体与环境彼此交互状态(state)、动作(action)、奖赏(reward)信息,通过训练逐步取得优化目标。具体来说,每一个步长t,强化学习智能体获得当前环境的状态st,并根据策略函数π生成动作at,环境在执行动作at后,将自身状态st转变为st+1,同时将动作的奖赏rt反馈给智能体。在这个过程中,四元组数据(st,at,rt,st+1)将作为经验保存在Q表[6]中,训练的目标就是利用Q表不断优化策略函数π的参数来最大化未来累积折扣奖赏Rt的期望E(Rt)。E(Rt)可以表示为

其中,T为迭代次数,γ是折扣因子,反映了当前动作对后续决策的影响程度。

在软件定义网络QoS优化问题中,状态、动作、奖赏的具体含义如下所示。

状态(state)。在此模型中,状态是指某一次网络测量[18]时网络中的流请求信息和所有链路的时延和利用率信息,用向量st表示,则st=[Dt,lt,ut],其中Dt表示t时刻的流请求矩阵,lt表示t时刻各节点对之间的传输时延,ut示t时刻网络中各链路的链路利用率。

动作(action)。动作是指强化学习智能体根据QoS策略函数和网络状态信息st生成的上述优化问题的解,也就是各节点对之间可用转发路径的分流比重。若QoS策略函数用变量π表示,动作向量at可由式(9)表示,其中at中各分量的关系满足式(5)。

奖赏(reward)。奖赏是对上一次动作所获收益的QoS评价。本模型中,软件定义网络QoS优化模型的优化目标是最小化网络使用率U,为最大化奖赏符合优化目标,定义奖赏为U的相反数。当前t的奖赏rt如式(10)所示,Ut表示t时刻的网络利用率。

4.2 QoS优化算法

深度强化学习是深度学习和强化学习结合的产物,它综合了深层神经网络和强化学习的优势,利用神经网络代替传统Q表,具有更优的性能。将基于Actor-Critic架构的强化学习算法与神经网络相结合生成的DDPG(deep deterministic policy gradient)算法[19]表现出优越的模型无关(model-free)特性,为强化学习在SDN的QoS优化问题中的应用提供了可能。在DDPG算法中共包含4个神经网络,即在线Q网络Q(s,a|θQ)、在线策略网络μ(s|θμ)、目标Q网络和目标策略网络。DDPG算法把环境与智能体交互产生的四元组(st,at,rt,st+1)作为训练数据训练各Q网络和策略网络。为避免训练阶段的在线神经网络的参数θQ和θμ变化幅度过大使无法收敛,DDPG算法更新目标Q和目标策略网络的参数θQ'和θμ'时采取平稳更新方法。

注意到,在网络场景中,网络状态常常随时间变化,具有明显的时间相关性,LSTM在处理和预测表现出明显时间相关性的数据中取得了优良的成果[14]。本文在DDPG的基础上,引入LSTM层提出R-DRL算法,如图2所示。

在训练过程中,LSTM网络负责对网络状态信息s进行预处理生成隐含状态h,并将该隐含状态传输给Actor和Critic架构中的神经网络,提高神经网络的决策的效率和准确性;Actor和Critic架构中的神经网络依据LSTM网络提供的网络状态数据生成动作,并更新内部网络参数。具体来看,目标策略网络μ'(s|θμ')将参数θμ'传递给目标Q网络Q'(s,a|θQ')用于函数评估,在线Q网络Q(s,a|θQ)将参数θQ传递给在线策略网络μ(s|θμ)用于该网络的梯度计算,R-DRL算法的训练过程如算法1所示。

算法1R-DRL算法训练过程

图2 R-DRL算法架构

5 仿真评估

为验证R-DRL算法的性能,本节将通过实验仿真与其他方案进行对比,评价指标包括时延、分组丢失率和负载均衡程度3个方面。

5.1 实验方案

本文实验利用Mininet网络仿真平台来搭建虚拟SDN,并采用开源Ryu控制器作为整个网络的控制器。采用Iperf流生成工具模拟真实网络流量,R-DRL算法基于Keras+TensorFlow框架实现,算法和Mininet运行在一台服务器上,服务器具体配置如表1所示。

表1 配置信息

实验中,SDN的拓扑为认可度较高的GEANT网络,该网络中包含22个网络节点和36条链路,每条链路的传输能力各不相同。网络数据采用由UPC大学提供的基于GEANT拓扑收集的数据集,取85%作训练集,15%作测试集。任意节点对之间的路由路径由生成树方法[20]生成,每个节点对之间采用4条备选转发路径。

5.2 对比方案

DDPG:DDPG方案中不采用LSTM层,其余神经网络参数设置与本文所提R-DRL算法一致,用来验证LSTM层对DDPG算法改进效果。

OSPF:OSPF即开路最短路径优先,依据该规则,网络会把数据流转发在长度最短的路径上,由于没有考虑链路的传输能力,个别链路容易陷入拥塞。

MCFCSP:多物网络流流约束最短路径方案将链路的传输能力作为约束条件,在保证网络不出现拥塞的条件下传输数据流。

KSP:k路最短路径方案会在两节点对间选择前k条最短的路径作为路由路径对数据流完成转发操作,本次实验中取k=4。

5.3 实验结果

首先分析改变LSTM网络层数对R-DRL性能的影响,分别用R1、R2、R3表示层数为1、2、3层的LSTM网络,R0表示不含LSTM层,即为DDPG算法。图3展示了训练过程中不同LSTM网络层数对R-DRL算法奖赏值rt相对变化的影响。通过对比可知,使用LSTM可以明显提高算法的奖赏值,但不同的LSTM层数对rt值的变化无明显影响。图4是不同LSTM层数的R-DRL算法的运行时间对比。当LSTM网络层数增加时,R-DRL算法的所需的运行时间明显增加。结合图3,为保证R-DRL算法的性能,以下实验取LSTM层数为1。

图3 不同LSTM层数时奖赏rt变化

图5(a)展示了在软件定义网络QoS优化场景中不同数据流调度算法在时延方面的性能对比。从图5(a)中可以看出,R-DRL算法可以满足在流请求速率增长时网络的低时延需求,而且在时延方面的优化效果优于其他算法。DDPG算法缺少LSTM网络层,对网络状态表现出的时间相关性无法有效感知,因此DDPG算法生成的优化策略不能准确反映网络的具体状态,陷入次优解;KSP算法将数据流转发至较短的前k条路径上,因此这k条路径可能共用一条至多条较短的路径,由于传输能力限制,因此出现拥塞导致时延增加;MCFCSP、OSPF算法和KSP情况一致,容易出现链路瓶颈问题。

图4 R-DRL算法时运行时间对比

图5(b)展示了在软件定义网络QoS优化场景中不同数据流调度算法在链路负载均衡方面的性能对比。从图5(b)中可以看出,OSPF、MCFCSP和KSP算法中衡量链路负载均衡程度的参数σ逐渐增大,相对于R-DRL和DDPG链路负载更不均衡,还可以注意到应用R-DRL算法的链路负载均衡程度总体要优于DDPG算法约22.7%。

图5(c)展示了不同数据流调度算法在分组丢失率方面的性能对比。从图5(c)中可以看出,MCFCSP以降低链路传输能力为代价保证各路径上的数据流不出现拥塞,分组丢失率最低,但R-DRL算法取得了接近于MCFCSP的性能。

图6联合采用箱线图和折线图展示了路由算法R-DRL和KSP对网络吞吐率的影响程度。其中折线图的连接点表示不同流请求速率条件下吞吐量数据的平均值,箱线图表示吞吐量数据的分布情况,箱线图的上下短横线表示箱线图上下限,叉号表示异常值。由于DDPG、MCFCSP和OSPF算法的吞吐率效果整体都没有超过KSP,图6中省去了这3种算法的对比。通过图6可知,相对于KSP算法,R-DRL将网络吞吐率提高了约8.2%,这是因为生成树算法在生成路由路径时尽量减少各路径共用一条链路的情况出现,避免了瓶颈链路的产生,提高了网络的传输能力。

6 结束语

图5 不同算法在软件定义网络QoS优化方面的性能对比

图6 不同算法对SDN网络吞吐率的影响

软件定义网络的QoS优化问题本质上是NP完全问题,为了实现QoS的自动化优化,国内外相关研究人员已经进行了深入研究,然而当前主流的启发式解决方案存在算法参数与场景绑定,应用场景受限问题,而在尝试应用深度强化学习的方案中,仍然采用KSP算法生成路由路径,难免出现链路瓶颈问题。基于此,本文借助长短期记忆网络和DDPG提出了用于软件定义网络QoS优化的R-DRL算法,通过将网络资源和状态信息统一到网络模型中,借助深层神经网络生成满足QoS优化的目标的动态流量调度策略。在网络拓扑GEANT上的仿真实验说明,结合长短期记忆网络设计的R-DRL算法提升了深度强化学习算法的流量感知能力,表现出比原有算法更好的性能。与其他算法相比,R-DRL保证了传输时延和分组丢失率,提高了约22.7%的网络的负载均衡程度和约8.2%网络吞吐率,对解决SDN中的QoS优化问题有一定实用价值。

猜你喜欢
数据流链路架构
基于FPGA的RNN硬件加速架构
数据流计算研究进展与概述
天空地一体化网络多中继链路自适应调度技术
功能架构在电子电气架构开发中的应用和实践
汽车维修数据流基础(上)
基于星间链路的导航卫星时间自主恢复策略
汽车维修数据流基础(下)
浅析民航VHF系统射频链路的调整
基于云服务的图书馆IT架构
AADL端对端数据流一致性验证方法