APP下载

基于深度强化学习的转发效能感知流量调度算法

2022-09-03沙宗轩霍如孙闯汪硕黄韬

通信学报 2022年8期
关键词:交换机时延调度

沙宗轩,霍如,2,孙闯,汪硕,黄韬

(1.北京工业大学信息学部,北京 100124;2.网络通信与安全紫金山实验室,江苏 南京 211111;3.清华大学自动化系,北京 100084;4.北京邮电大学网络与交换国家重点实验室,北京 100876)

0 引言

互联网日益成为人们生产生活中不可或缺的基础设施,随着网络应用和服务的进一步发展,对网络数据流实施有效的监测管理愈发重要,研究人员提出了多种类型的流量工程(TE,traffic engineering)技术以完成网络优化任务。流量工程,或称流量管理,是指针对网络中数据流的行为进行动态的分析预测和有目的的管理[1]。在20 世纪80 年代的异步传输模式(ATM,asynchronous transfer mode)网络中,拥塞最小化是TE 最常见的目标之一[2]。到了20 世纪90 年代,IP 网络逐渐成为主流,TE 常用于路由优化;有研究结合ATM 和IP 的优点提出了多协议标签交换(MPLS,multiprotocol label switching)技术。与传统IP 路由方式相比,MPLS 不需要在每一跳都分析IP 报文头,节约了处理时间。但随着网络需求的不断变化,以IP 为网络层的体系架构存在扩展性差、缺乏安全机制、不具备虚拟化特征等问题使其难以持续发展[3]。

软件定义网络(SDN,software defined network)将数据平面与控制平面分离,为有效解决上述问题提供了思路。一方面,SDN 控制器具有全局视野,可实现灵活控制流量、降低网络运营成本以及促进网络创新[4-5]。该架构目前已广泛部署在Google、微软、Facebook 等公司的内网建设中。例如,Google 希望通过SDN 使资源利用率提升20%~30%,同时优化网络传输性能。另一方面,不同厂商的设备使用统一的编程接口,可以提供充分的开放性。

近年来,SDN 与深度强化学习(DRL,deep reinforcement learning)算法的结合引起了人们的广泛关注。DRL 是由深度学习(DL,deep learning)[6]与强化学习(RL,reinforcement learning)融合产生的智能决策工具[7]。凭借深度模型强大的表示能力,与传统RL 算法相比,DRL 在处理具有连续状态空间及动作空间的复杂问题时具有更好的性能,已被证明是一种可行有效的复杂系统自主控制解决方案。利用DRL 的优势解决动态网络下的流量调度问题正成为领域内的热点[8-9]。

提高网络资源利用率和改善数据传输性能对保障网络服务质量具有重要意义。Hartman 等[10]指出在资源受限的网络环境中输出具有最大流量的链路集是NP 完全问题。目前解决此问题广泛使用两类算法:开路最短路径优先(OSPF,open shortest path first)算法和负载均衡(LB,load balance)算法,将流量分配到最短路径或考虑负载均衡的传输路径上。流量调度算法通常会面临以下挑战。

1)根据网络环境变化快速调整策略。由于大量用户请求的网络服务种类繁多,使网络环境快速变化。在复杂动态的网络环境中,传统基于规则的启发式算法适应性较差。各种约束条件也增加了启发式流量调度算法的求解效率。这就要求流量调度算法必须高效,能够快速根据网络环境及时调整输出策略[11-12]。

2)调度算法需考虑多维因素的影响。基于RL的流量调度算法可以适应动态变化的网络环境。在目前的研究中,相关算法常常根据跳数、链路时延及拥塞情况等因素产生流量调度方案。而SDN 架构中数据包端到端的完整传输时间还包含流量调度策略生成时间和数据包在交换机的转发时延等,传统方法考虑因素不足,也导致在复杂网络环境中流量调度的性能不是最优[13-14]。

3)模型收敛慢且优化目标单一。在一些利用RL 算法解决网络流量调度的研究中,由于训练初期缺乏知识,智能体在接近随机策略的控制下输出动作,从环境获得的正反馈低,导致模型训练速度慢。且由于优化目标单一,使模型在某一性能方面表现较为突出,而整体网络的其他指标不稳定[15]。

为此,本文针对SDN 架构下的流量调度问题,综合考虑了交换机状态,如流表项数量、设备负载率及连接主机数量等因素对其转发效能的影响,进而影响端到端数据传输时延,提出了一种转发效能感知流量调度(FEATS,forwarding efficiency aware traffic scheduling)算法。FEATS 算法通过神经网络对设备的转发效能进行估计,并利用DRL 结合该估计值和网络状态信息产生流量调度策略。具体来说,本文的主要贡献介绍如下。

1)针对考虑交换机转发效能的SDN 流量调度问题,设计了基于DL 的转发效能估计模块,通过采集交换机状态数据,对其转发效能进行准确估计,为控制器输出传输时延更低的流量调度方案提供依据。

2)提出了FEATS 算法,该算法在考虑SDN架构中交换机转发效能对数据传输时延影响的基础上,进一步结合流量需求及当前网络状态,实现对数据流更合理的自动化控制与调度。

3)设计了专家样本产生模块,利用在同属性同参数的平行虚拟网络环境中运行具有不同优化目标的流量调度算法,如OSPF 和LB 算法,产生专家样本注入经验池。从经验池中提取样本引导模型训练,一方面可以加速模型初期的训练速度,另一方面可以使模型吸取不同优化目标的专家样本中包含的经验,优化模型多方面的性能。

1 相关工作

传统基于规则的流量调度算法需要对网络环境和流量请求进行建模,这种方式在网络环境动态变化时暴露出适应性差的缺点[16]。因此,基于机器学习的算法成为流量调度领域的主要工具,其中利用DRL 的自主学习机制,通过构建智能体与环境交互采集状态数据,在观察到的网络状态的基础上,根据策略产生一系列行动,即可实现智能化的流量调度[17]。目前,对于讨论如何在SDN 中进行流量调度相关工作的主要目标集中在降低传输时延和平衡链路负载两方面,对这两方面的研究概括如下。

1.1 降低传输时延

网络用户追求更低的数据传输时延,以获得更高的体验质量。Huang 等[13]认为对数据流的控制是优化用户体验质量(QoE,quality of experience)的关键问题,其首先利用DRL 动态分配网络资源来实现QoE 驱动的无模型流量调度,利用SDN 控制器具有网络的全局视图以获取环境状态,输出数据流路径和明确的带宽分配。其次,利用QoE 作为奖励参数,但频繁地与用户进行交互是不现实的,这会使来自用户的真实QoE 数据反馈周期变长,因此,采用多层神经网络捕获特征,将网络和应用指标映射到平均意见评分(MOS,mean opinion score)。利用该模型,可以根据数据流状态快速得到MOS 值,支持流量调度模型的训练。Huang 等[13]进一步利用 DDPG(deep deterministic policy gradient)算法将SDN中的数据分流问题构建为一个深度强化学习模型,该模型将QoS 指标作为奖励函数用于训练神经网络训练,以优化QoS 性能。

Zhang 等[18]提出了一种时延优化的多播树封装问题,即交付时延最小化多播树封装(DDMMTP,delivery delay minimized multicast tree packing)。该问题的目标是根据可用网络资源,在网络带宽和最大源−目的时延约束下,最小化平均传输时延。通过利用批量多播树封装算法并根据需要调整现有多播路径的网络容错容量改进算法来近似求解,提出一种基于可用网络资源的源−目的时延改进算法,以进一步减少传输时延。

Wu 等[19]提出了一种多信道重分配和流量控制框架,通过在神经网络中增加 LSTM(long short-term memory)层来提取信道的时序信息,将每个信道的预测流量负载作为链路的状态信息之一,结合丢包率、时延、吞吐量等数据,由多智能体DRL 模型根据局部状态选择决策,从而实现最大化吞吐量、最小化丢包率和时延。

Saha 等[20]针对通用拓扑提出了一种QoS 感知的流规则聚合方案,该方案考虑了网络应用的不同QoS 需求和交换机的流规则容量,自适应聚合流规则。实验结果显示,该方案能够减少22%的平均端到端传输时延。

在复杂的SDN 中,往往存在多个控制器应对请求。合理的控制器分配方法可以最小化数据流设置时延,进而影响数据平面性能。Filali 等[21]将控制器的分配问题表述为基于请求数量的一对多匹配博弈,并使控制器在满足最小资源利用率和容量约束的前提下实现负载均衡,以最小化控制平面的响应时间。Savas 等[22]考虑了网络故障后需要多个阶段恢复交换机和控制器之间的控制路径的问题,提出了一种多级控制路径恢复方法。Wang 等[23]结合随机固定水平控制框架,提出了一种结合匹配理论和联盟博弈的控制器分配方法,降低控制器响应时间。Bera 等[24]提出动态控制器分配方案,考虑了特定的流量需求,利用FlowVisor 模型,构建了一个虚拟平台,作为SDN 架构的控制面和数据面之间的管理器,使用动态稳定匹配机制,通过定义偏好列表以最小化数据流设置时延和相关控制开销。Bouzidi 等[25]动态计算控制器的最优数量,确定它们的最优位置,同时将交换机集划分为集群,利用DRL 解决分配控制器的优化问题。Lin 等[26]提出了最小化控制器选择机制,保证控制器的区域覆盖率,并利用改进的多目标人工蜂群算法,根据实时流量判断需要打开哪个控制器进行数据传输,大幅降低了传输时延。

1.2 平衡链路负载

对于网络管理者来说,在满足用户需求的前提下,还需要考虑链路负载均衡,保证网络性能长期稳定。Zhang 等[11-12]考虑网络中由于频繁重路由带来的负面影响,提出了一种针对SDN 流量调度的强化学习方法,该方法可自动选择流量矩阵中的关键数据流,通过有选择地重路由少数关键流量,以平衡网络的链路利用率。

Huang 等[14]针对SDN 和遗留设备共存的混合环境给路由策略带来挑战的问题,提出一种QoS 优化的近似最优流量控制方法,利用DRL 输出多路可拆分路由的流量分流比,在链路利用率方面取得了显著改善。

Zhang 等[15]提出了使用DL 进行网络内容感知以及使用DRL 进行流量调度的方法。作者认为SDN 提供对流的控制粒度,但不是对内容的适当抽象,如带宽要求很小的图片和带宽要求很大的视频可能具有相同的源地址和目的地址、相同的端口ID 和传输协议。因此,提取网络传输内容的属性是合理分配带宽等网络资源的关键,在SDN架构中,没有深度数据包检测,控制器很难获取内容属性。通过DL 模型建立起带宽需求和内容属性的关联性,将对带宽的预测输入基于DRL 的流量调度模块,输出数据流的传输路径。该方法在网络吞吐量、带宽利用率和负载平衡方面显著提高了网络性能。

Maity 等[27]针对防止控制器过载和优化分配流量的问题,根据马尔可夫预测器对设备移动性的预测结果,实现了流量感知的规则缓存机制和主控制器分配方案,降低了23.08%控制流量峰值强度。

以上方法针对不同的优化目标,利用深度模型强大的特征表达能力和强化学习的自主学习机制,可不需要精确的环境建模,为数据流请求实时计算调度方案。然而,随着流表项数量、设备负载率和连接主机数等因素变化,SDN 交换机具有不同的转发效能,进而影响数据传输。因此,将SDN 交换机的转发效能作为影响数据传输的重要因素,同时考虑多维优化目标,才能够输出更合理的流量调度策略。

2 转发效能感知流量调度算法

基于OpenFlow 协议的SDN 端到端的数据传输模型如图1 所示。

图1 基于OpenFlow 协议的SDN 端到端的数据传输模型

当主机1 向主机2 发送的数据流经过交换机时,交换机将数据包的匹配域与自身保存的流表项进行对比。如果有匹配流表项,根据对应动作执行;如果没有匹配流表项,交换机和控制器交互PACKET_IN 和PACKET_OUT 消息,数据流首个报文由交换机发送至控制器,控制器在接收到报文后,根据转发策略产生数据转发路径,并发送到路径上的各个交换机安装更新规则。因此,端到端的数据传输时延可表示为

其中,tl为链路传输时延,L为链路集合,ts为交换机转发时延,S为交换机集合。数据传输时延T为链路传输时延和交换机转发时延的总和,且ts与交换机状态紧密相关。

本文除了考虑网络资源和链路状态等因素外,还综合考虑了SDN 交换机的转发效能对数据传输效率的影响,结合深度学习和深度强化学习的特点,提出了FEATS 算法求解该问题。FEATS 算法的整体架构如图2 所示。首先,对于SDN 流量调度问题,定义网络拓扑为无向图Graph=(N,E),N为节点集合,E为链路集合,从源节点src 到目的节点dst 的链路为esrc,dst,∀esrc,dst∈E。接下来,将对算法中的核心模块和算法流程进行阐述。

图2 FEATS 算法的整体架构

2.1 转发效能估计模块

由于SDN 交换机的转发效能与其本身的性能及实时状态有关,且这种映射关系很难通过数学多项式精确表达。因此本文设计了一种基于深度学习的SDN 交换机转发效能估计模块。该模块的输入向量Intrans=[entriesi,tablei,hostesi,lri,rfi]为SDN 交换机状态参数,其中,entries 为流表项数量,table 为流表数量,hostes 为连接主机数,lr 为设备负载率,rf 为出入口流量。模块的输出向量为Outtrans,表示模块预测数据包从进入交换机到输出的完整时延,其中包含了流表项的匹配时间,以及当接收新数据流时交换机与控制器的交互时间。模块主要由一个3 层sequential神经网络实现。该神经网络第一层包含5 个神经元,用于接收输入向量;第二层为全连接层,分别包含64 个神经元,与第一层全连接,激活函数为ReLU;最后一层包含一个神经元,输出对交换机转发时延的估计值。模型以均方误差(MSE,mean square error)作为损失函数,表示为

其中,n为样本数量,Outtrans,i为模型输出估计值,tin,i和tout,i分别为数据包进出交换机的时刻。随着最小化损失函数通过反向传播更新模型参数,模型估计的转发时延与真实值逐渐接近。

2.2 流量调度模块

为了解决动态复杂环境下的流量调度问题,本节将引入基于深度强化学习的流量调度算法。在一个典型的强化学习模型中,智能体与环境交互,利用状态(state)、策略(policy)、动作(action)和奖励(reward)逐步实现优化目标。定义智能体的状态空间为S,动作空间为A。具体来说,在每个时间步t,智能体首先观察当前状态st∈S,结合自身策略π产生对应动作at∈A,通过执行该动作实现智能体与环境的互动,获得奖励rt并同时观察到下一个状态st+1。通过构建四元组以最大化未来的累计奖励的期望E(Rt)为目标调整模型参数。E(Rt)可表示为

其中,T为迭代上限,t为当前时间步,γ∈[0,1]为折扣因子,γ越大表示算法越重视长期的累计奖励,γ越小则反之。在本文的研究场景中,状态、动作和奖励的具体含义如下所示。

状态(state)。状态是指在时刻t时,SDN 交换机的转发效能Outtrans、链路的传输时延dt、丢包率lt和网络抖动jt,用向量st表示,即st=[Outtrans,dt,lt,jt]。若令拓扑中交换机数量为m,源节点src 和目的节点dst 间可用的链路数为e,则st为3e+m维向量。

动作(action)。动作是指智能体根据策略π和状态st生成的流量调度方案,即数据流最优的转发路径,动作向量可表示为策略π和状态st的函数,如式(4)所示。at=[e1,e2,…,el]用于表示输出的可用传输路径。

奖励(reward)。奖励是指环境针对智能体的行为做出的反馈,用于表示所执行动作的好坏,同时也体现了模型训练的目标。流量调度模块中奖励函数定义为

其中,U表示当前网络环境下各链路利用率的矩阵,D表示对应流量需求的传输时延矩阵,Dsrc,dst表示从源节点src 到目的节点dst 的特定数据流的传输时延。算法的目标是使奖励最大化,即使当前网络中的最大链路利用率和端到端传输时延尽可能小。

深度强化学习是深度学习和强化学习结合的产物。传统的强化学习算法分为基于策略的算法和基于价值的算法,而将2 种方法结合起来就是Actor-Critic 算法。该算法由Actor 和Critic 这2 个神经网络组成,Actor 网络负责生成动作并和环境交互,产生四元组作为训练数据,而Critic 网络负责评估Actor 的表现。

具体来说,此模块中的Actor 网络由3 层构成,分别包含3e+m、128 和e个神经元,其中,e和m分别为源节点src 和目的节点dst 间可用的链路数和拓扑中包含的交换机数。第一层3e+m神经元数量与DRL 状态向量st=[Outtrans,dt,lt,jt]的维度对应。模块后两层为全连接层,激活函数分别为ReLU 和softmax。Critic 网络由3 层构成,分别包含e、128和一个神经元,后两层为全连接层,激活函数使用ReLU,损失函数为Huber。令Actor 网络的参数为θ,Critic 网络的参数为w,则Actor 网络的参数更新计算式为

其中,∇θlogπθ(St,At)是策略梯度的分值函数,α是学习率,δ(t)是TD-error,γ是折扣率。Critic 网络使用Huber 损失函数作为参数w的梯度更新,该损失函数为

其中,λ为超参数,当|Ocri–Rt|≤λ时,损失函数等价为MSE;反之则等价于平均绝对误差(MAE,mean absolute error),该方法同时具备MSE 和MAE这2 种损失函数的优点,能够降低奇异点数据对拟合效果的影响。

2.3 专家样本产生模块

本文提出的FEATS 算法中的流量调度模块是基于DRL 实现的。在复杂环境下,面临奖励稀疏的问题,即模型在训练初期执行随机策略,难以学习到有效的知识,导致模型训练时间增加。

FEATS 算法设计了专家样本产生模块,即构建和网络拓扑具有相同结构、参数和状态的并行虚拟环境。令初始网络拓扑为Graph=(N,E),则平行网络拓扑=Graph=(N,E)。在中运行最短路径和负载均衡算法,生成具有相同格式的四元组作为专家样本,其中

其中,at是控制器利用最短路径和负载均衡算法的策略πex,根据当前状态st产生的流量调度方案。

将专家样本和由智能体与环境交互产生的一般样本分别放入专家样本经验池和一般样本经验池中,利用随机采样方法从上述2 个经验池中抽取样本组成mini-batch 用于模型训练。通过控制随机采样因子逐渐递减,实现mini-batch 中专家样本数量随着训练过程逐渐降低。该模块的主要作用介绍如下。1)在训练初期,利用更多的专家样本引导模型训练,一方面,可加速模型在训练初期的学习速度。由于RL 智能体在训练初期由于缺乏知识,自身策略接近于随机策略,输出的动作无法从环境中获得足够的正反馈,因此仅靠智能体与环境交互产生的样本进行训练的效率较低。另一方面,专家样本也可辅助模型学习到专家样本中的知识,实现多目标优化。2)在训练后期,即在智能体学习到了专家样本的知识后,降低专家样本在mini-batch 中的比例,发挥RL 算法在环境中探索的能力,增加智能体学习到综合性能高于单一性能优秀的专家样本知识的概率,实现FEATS 算法的优化目标。

3 算法设计与实现

为了解决上述流量调度问题,本文提出FEATS算法,首先使用基于DL 的转发效能估计模块预测SDN 交换机转发时延,之后将该估计值作为输入变量传递给基于DRL 的流量调度模块,使控制器输出的最优决策受到该估计值的影响。

3.1 交换机转发效能估计

在FEATS 中,利用DL 强大的表示能力拟合交换机的转发效能和多维状态数据之间映射关系。转发效能估计算法的训练流程如算法1 所示。

随着对流量需求的执行,可以获取数据流传输路径上交换机的状态信息及转发时延,根据模块输出估计结果,通过最小化损失函数调整模型参数以提升预测准确度。

3.2 转发效能感知流量调度

在估计交换机转发效能后,FEATS 根据该估计值和当前网络状态,针对流量需求产生对应的调度策略。基于深度强化学习的智能流量调度算法流程如算法2 所示。定义当前的训练时长为timer,模型训练时间上限为DT,一次迭代内最大时间步上限为T。定义random(α)为随机采样方法,随机采样因子α∈(0,1),表示以α为概率抽取样本。

FEATS 在同参数同状态的虚拟环境中运行最短路径和负载均衡算法,由此产生专家样本及其自身与环境交互产生的数据共同组成训练集,在随机因子α的作用下从中采样。随着α逐渐降低,算法抽取到专家样本的概率减小,即专家样本在训练初期对模型的影响大,不仅可以加速训练速度,也可使模型学习到专家样本中的知识,而在训练后期更强调模型自身对环境的“探索”。模型根据交换机状态预测数据包经过该设备转发时产生的时延,输出综合考虑传输时延和网络负载均衡的流量调度方案。

4 仿真分析

为了验证FEATS 算法的性能,本节通过实验仿真将其与迪杰斯特拉(Dijkstra)算法、轮询(Round Robin)调度算法及加权最小连接(Weighted Least Connection)调度算法的评价指标对比。

1)Dijkstra 算法是OSPF 协议的核心算法,使用广度优先搜索解决赋权有向图或者无向图的单源最短路径问题。

2)Round Robin 是一种以轮询方式将负载请求分配给设备的负载均衡调度算法。

3)Weighted Least Connection 可为设备赋值权重,算法通过连接数和权重调整设备被轮询到的概率,以实现更平均的负载均衡。

本节实验利用Mininet 和Python 构建实验环境及采集数据,使用Ryu 作为SDN 控制器,通过Iperf工具产生数据流。FEATS 模型采用Keras 实现,Keras 是一种基于Tensorflow 的高阶API。服务器硬件配置及软件版本如表1 所示。

表1 服务器硬件配置及软件版本

本文从SNDLib 获取GEANT 网络拓扑和流量需求,该拓扑具有22 个节点及72 条链路。初始化实验参数,随机采样因子α=0.9,各节点根据高斯分布随机产生流表项及流表数量,设置最小传输时延为1 ms,最大传输时延为200 ms。

4.1 算法评价指标

本文提出的FEATS 算法由于考虑了设备转发效能,并且由最短路径和负载均衡算法产生的专家样本训练,可输出综合考虑了网络负载均衡的最短传输时延的流量调度方案。因此,实验部分针对以下评价指标进行对比分析。令F为流量需求矩阵,f∈F为单个流量需求命令,n为流量需求命令的数量,L为全部交换机负载率矩阵,lr∈L为交换机负载率,m为交换机数量。

平均跳数为

其中,numhop为完成流量需要跳转的设备数量,每经过一台交换机,numhop加1。

平均传输时延为

其中,tend和tstart分别为数据包从发送端发出和到目的端接收的时刻。

最大负载率为

其中,max 函数为获取L中的最大值,即计算各算法在执行流量需求的过程中全部交换机的负载率最大值。

负载率方差为

式(13)用于计算各算法在执行流量需求的过程中各交换机负载率方差的最大值。该指标越大,表示各交换机之间负载率的差异越大,反之则表示负载率越均衡。

4.2 专家样本产生模块支持模型训练效果分析

FEATS 算法中设计了专家样本产生模块,在同结构同参数的虚拟环境中,利用成熟的算法产生专家样本,帮助算法学习到对应方面的知识,加速模型在训练初期的训练效率。本节实验通过控制有无专家样本产生模块参与训练,验证该模块对模型训练的影响。无专家样本模块支持的FEATS 算法在实验中用“FEATS 无专家样本”表示。同时,本节实验还与同属 Actor-Critic 架构的 A3C(asynchronous advantage actor-critic)和DDPG(deep deterministic policy gradient)算法进行了更广泛的分析对比。在实验环境中部署上述4 种算法,分别进行20 次实验,收集模型从环境中获取的累计奖励值。平均奖励值对比结果如图3 所示。

图3 平均奖励值对比结果

从图3 可以看出,FEATS 算法的训练效率高于FEATS 无专家样本、A3C 和DDPG 算法的情况。FEATS、A3C 和DDPG 都是基于DRL 的算法,在复杂环境中同样面临奖励稀疏的问题,表现为模型训练的前中期很难获得有效的正反馈,使奖励值难以扩展至环境的大部分状态。图3 中的结果显示,FEATS 无专家样本、A3C 和DDPG 算法在第1~2 000 次迭代期间获取的奖励值在较低水平浮动,说明模型输出的动作难以获得环境给予的正反馈,导致模型在前中期训练效率低,并分别在迭代4 439 次、3 485 次、4 101 次后收敛。对于有专家样本支持的情况,由成熟的算法产生的动作在训练初期就可以获得较高的奖励值,缩短了FEATS 在没有足够知识的情况下盲目探索的过程,使模型在迭代3 295 次后完成训练。DDPG 具有经验回放功能,但训练样本来自自身与环境交互,相当于FEATS 算法中的一般样本,其功能更多是为了打破数据相关性,在训练初期对加速模型收敛的影响不大。A3C 通过异步方式执行多个Actor 进行学习,并行的方式对加速模型训练起到了一定的积极效果,但在初期依然难以获得正反馈。本节实验证明了专家样本产生模块使FEATS 模型训练效率提升了25.78%。

4.3 数据传输性能对比分析

路由跳数和数据传输时延是评价数据传输性能的重要指标。本节实验在GEANT 拓扑中执行流量需求指令,记录各算法完成流量需求的平均跳数和平均传输时延,实验结果如图4 所示。

图4 数据传输性能对比

图4(a)显示出Dijkstra 作为一种最短路径算法,在平均跳数方面取得了最好的性能,为3.77;负载均衡算法Round Robin 和Weighted Least Connection的平均跳数分别为4.72 和9.75。在平均传输时延方面,如图4(b)所示,Dijkstra 为15.61 ms,Round Robin和Weighted Least Connection 分别为20.38 ms 和23.56 ms。

本文提出的FEATS 算法的平均跳数为4.13,平均传输时延为13.22 ms,较Dijkstra 算法分别增加了9.55%及降低了15.31%,呈现出跳数高、传输时延低的结果。这是因为在数据转发过程中,交换机具有不同数量的流表项和连接主机数以及不同程度的负载等因素,使其转发效能呈现较大差异。FEATS 算法的转发效能估计模块预测的转发时延最小值为0.9 ms,最大值为9.3 ms。因此,存在在跳数最少的数据传输路径上某些交换机的转发时延较高的情况。FEATS 算法可以有效感知交换机的转发效能,在预测到交换机的转发时延较高时,选择跳数多但交换机可以更快完成数据转发的路径,从而实现更低的传输时延。

4.4 负载均衡性能对比分析

最短路径算法往往仅考虑数据传输效率,导致不同重要程度的链路和节点之间负载率差距较大,不利于网络整体性能和稳定性。各算法执行流量需求指令时,交换机的负载均衡性能对比如图5 所示。

图5(a)显示了FEATS、Dijkstra、Round Robin和Weighted Least Connection 的最大负载率分别为78.92%、75.73%、79.07%和85.14%。其中,Dijkstra算法的最大负载率最低,主要原因是该算法的目标为经过数量最少的交换机完成数据传输,因此在执行相同的流量需求时,全部交换机的负载率总和最低。Round Robin 和Weighted Least Connection 需要考虑负载均衡,输出的传输路径通常要比Dijkstra算法的更长,导致网络整体的负载率有所增加。

在负载均衡方面,如图5(b)所示,负载率方差反映了交换机负载率的差异性。FEATS、Dijkstra、Round Robin 和Weighted Least Connection 的最大负载率方差分别为7.39%、8.93%、7.21%和6.51%。Dijkstra 算法虽然产生最短传输路径,但输出的路径可能频繁经过在网络拓扑中占据重要位置的节点,而边界节点常处于闲置或低负载状态,造成节点负载率差距较大,在图5(b)中表现为最大负载率方差最大。Round Robin 按顺序调度流量,起到了负载均衡的作用,其最大负载率方差与Dijkstra 相比有显著的降低。Weighted Least Connection 算法由于存在加权系数,使流量可以更均匀地调度到低负载的交换机,实现各设备之间负载率更均衡,因此其最大负载率方差最低。FEATS 算法在负载均衡方面取得了和Round Robin 算法接近的水平。由于在训练过程中,模型有利用负载均衡算法产生的样本参与训练,且rt与最大负载率紧密相关,因此,产生的决策也具备较好的负载均衡效果。

图5 负载均衡性能对比

综合以上结果分析,本文提出的FEATS 算法可以根据交换机状态有效估计交换机转发时延,并基于转发时延规划更合理的数据传输路径。通过利用专家样本缩短了25.78%的训练时间,并且实现了在具备一定负载均衡效果的基础上平均降低15.31%的端到端传输时延。

5 结束语

在SDN 架构中,流表项数量、设备负载率及连接主机数量增加,会导致SDN 交换机的转发效能降低,进而影响端到端数据传输时延。本文提出的FEATS 算法利用DL 的强大表示能力,建立起SDN 交换机的多维状态数据与转发效能之间的映射关系,并根据转发效能、网络状态和流量需求输出兼顾最低时延和网络负载均衡的流量调度策略。实验表明,FEATS 算法的专家样本产生模块可提升25.78%的模型训练效率。同时,由于FEATS算法可以有效评估交换机转发效能,端到端传输时延比Dijkstra 算法降低15.31%,负载均衡性能与Round Robin 算法接近。说明FEATS 算法学习到了最短路径和负载均衡专家样本的知识,并在自身奖励函数的引导下可以输出综合考虑了传输时延和网络负载均衡的流量调度方案。FEATS 算法对解决SDN 的流量调度问题、提升网络性能有一定的实用价值。

需要注意的是,FEATS 算法在实验环境下验证了有效性。在实际场景中,交换机转发效能还会额外受到硬件性能和状态等多种因素的影响,在针对实际场景调整模型输入维度后,可更好地满足实际使用需求。

猜你喜欢

交换机时延调度
面向未来网络的白盒交换机体系综述
局域网交换机管理IP的规划与配置方案的探讨
5G承载网部署满足uRLLC业务时延要求的研究
《调度集中系统(CTC)/列车调度指挥系统(TDCS)维护手册》正式出版
电力调度自动化中UPS电源的应用探讨
基于强化学习的时间触发通信调度方法
更换汇聚交换机遇到的问题
基于动态窗口的虚拟信道通用调度算法
基于地铁交换机电源设计思考
基于GCC-nearest时延估计的室内声源定位