SDN环境下基于深度强化学习的智能QoS路由优化方法、系统与流程

    专利2022-07-07  178


    本发明属于网络路由优化技术,具体涉及一种sdn环境下基于深度强化学习的智能qos路由优化方法、系统。



    背景技术:

    近些年来,伴随着互联网的蓬勃发展,网络应用越来越多,网络流量呈爆炸式增长。随着网络规模和用户数量的快速增长,网络结构也越来越复杂,网络安全和路由优化面临着越来越大的挑战。同时,针对异构终端用户的新型网络应用服务应运而生,例如,网络电视,在线游戏,视频会议等多媒体流应用在互联网上变得越来越流行,网络数据的急剧增加导致了网络管理设备变量复杂。随着网络的灵活性的提升,也给网络资源的管控带来前所未有的挑战。另外,在一些实时多媒体的应用场景当中,传统网络中的多媒体服务器仅凭单播模式将相同的视频流传输到异构客户端。但是,单播传输模式会产生冗余流量并浪费大量的网络带宽,因此,利用组播传输模式可以有效地减少网络流量并降低网络的负载。

    在传统网络中,控制和转发紧紧耦合的网络架构与“尽力而为”的服务模式,需要在不同的路由节点上执行相关的路由协议和算法来找到源到目的节点的最佳路径。正是因为传统网络分布式体系,使得每个节点只具有部分网络视图,导致很多全局的路由策略难以部署,所以很难进行智能qos路由,而软件定义网络(software-definenetworking)作为一种新的体系架构(如图1所示)。

    目前,在调研到的sdn环境下的智能qos路由优化方案中,主要分为启发式方法和机器学习方法两种。通过建模来近似拟合当前的网络状态,并采用启发式方法来为多媒体流请求实时计算路由配置,缺点是具有严格的适用场景,计算开销巨大,难以应对未来实时高动态的网络环境;然而,多媒体流应用,特别是实时视频流应用,通常对视频流的传输有严格的端到端的时延限制,从而保证用户的网络质量服务体验。

    与传统方法相比,深度学习适用于处理不规则,大规模非线性问题,在许多复杂问题上具有无可比拟的优势。同时,采用与网络环境交互更好的深度强化学习模型,来实现网络流量的实时智能控制。

    因此,如何在sdn网络架构下利用全局网络拓扑视图实现智能的qos路由优化,在满足qos要求的同时,进而保障用户的网络服务质量体验,成为当下研究需要解决的问题。



    技术实现要素:

    发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种sdn环境下基于深度强化学习的智能qos路由优化方法、系统;本发明在sdn多媒体系统模型上基于深度强化学习算法设计的智能qos路由优化方法,从而保证用户的网络服务质量体验。由于在一些实时的视频流应用场景中,不仅网络业务具有高带宽,而且用户对端到端的时延也具有很严格的要求,因此,本发明无需专注sdn多媒体系统模型的设计。同时本发明使用了分布式控制平面的设计,从而解决了单点的脆弱性问题,同时提高网络的可扩展性;另外,在qos路由过程考虑了链路时延和网络拥塞情况,从而有效地改善了网络的负载。

    技术方案:本发明的一种sdn环境下基于深度强化学习的智能qos路由优化方法,包括以下步骤:

    步骤s1:深度强化学习训练

    本发明优化深度强化学习方法,并采用其深度确定性策略梯度ddpg模型,将基于策略的强化学习和基于价值的强化学习方法结合,然后利用神经网络生成策略函数和价值估计函数来输出稳定的连续动作;其中μ和q分别表示确定性策略函数和价值估计函数,并由神经网络形成;具体步骤如下:

    步骤s1.1、媒体服务器mediaserver提供相应多媒体业务(包括视频、音频等),且所述多媒体业务通过openflow网络进行传输;

    步骤s1.2、sdn控制器中视频管理模块接收多媒体业务的会话请求,多媒体业务的会话请求集合为γt集合γt中的每一个具体会话请求则表示为k是会话请求的索引,vk表示传输第k个会话请求的视频服务器,ck表示第k个会话请求的客户端,bk表示第k个会话请求的带宽大小;k∈[1,n];

    所述步骤s1.2中sdn控制平面的详细内容为:

    步骤s1.2.1、sdn控制平面中,sdn网络包括n个控制器和k个交换机,n个控制器集合为c={c1,c2,……,cn},该集合中所有控制器性能相同并将控制器c1设为住控制器,k个交换机集合为e={e1,e2,……,ek};sdn网络划分为n个域,每个域中的网络流量和每个域的负载均为动态变化;

    步骤s1.2.2、对于每个会话请求在每个时间间隔内,统计每个交换机ei发送的packet_in消息数目和每个交换机中流表的占有率

    步骤s1.2.3、在每个时间间隔内,统计不同控制器cn的消息数目和流表占用率

    其中,表示交换机ei的流表大小,表示占用流表的数目;|ci|表示ci控制器下包括的交换机数目;

    步骤s1.2.4、处理会话请求集合γt中所有不同的会话请求,得到n个域中各个域的负载和流表使用情况;

    步骤s1.3、使用与sdn控制器相连的ddpg代理进行智能路由决策,sdn控制器定期向ddpg提供用于训练的流量数据;且在训练期间,将与环境每次交互后的状态信息(st,at,rt,st 1)存储于经验池,神经网络的学习批次n*(si,ai,ri,s 1)由从经验池中采样的数据组成,i是指数据的索引下标;其中,st是t时刻的网络状态,at和st 1分别表示在st网络状态下采取的动作和转换的状态,rt表示网络状态转换后获得的回报;

    步骤s1.3.1、通过控制平面收集网络状态st,包括链路带宽控制负载以及流表占用率

    步骤s1.3.2、将收集到的网络状态st作为输入,代理决定下一跳分配到哪一个交换机,这个动作用at来表示,即:

    其中,表示一个向量,有表示交换机ei和ej的连接关系,当时,表示ej被分配为ei下一跳节点的权值大小,反之时,即交换机ej与交换机ei节点无连接关系;

    步骤s1.3.3、代理在强化学习中根据奖励qπ(st,at)来评估行动的准确性,并以此来改进策略π(st,at),奖励的指标包括流表占用率转发延迟链路丢包率以及控制器负载所有指标的权重之和,即为:

    其中,|k|表示在时间t接收到的会话请求的总数,0<α<1表示权重因子,表示控制负载奖励,表示网络服务质量奖励;

    对于由不同节点以及节点所在的域决定,控制器的负载越大,获得的奖励就会越少,可表示为:

    对于是基于链路质量设计的qos奖励,转发延迟和链路的丢包率越大,获得的奖励就会减少,反之亦反,可表示为:

    其中,是交换机ei和交换机ej之间的传输延迟,是交换机ei和交换机ej之间的丢包率;

    步骤s1.3.4、深度强化学习时采用actor-critic模式,即采用使用确定性策略梯度方法的actor模块和使用深度q-learning方法的critic模块;所述两个模块均包括一个在线网络(primarynetwork)和一个目标网络(targetnetwork),且二者的神经网络结构相同;在线网络将自己的参数传递给目标网络进行目标网络的参数更新;在训练期间,设置一个存储样本数据的缓冲区d,将与环境交互的转换信息存储在d中,神经网络学习从d中随机读取来进行学习;

    步骤s1.3.5、首先随机选取缓存区d中存储采用的数据n*(si,ai,ri,si 1),其中,si是初始化状态,ai是网络输出动作,在状态si下执行动作ai,会得到相应的奖励ri和下一时刻状态si 1;然后,初始化在线网络μ(s|θμ)的权重参数为θμ和θq,在将参数更新到目标网络q(s,a|θq),即:

    θq′←θqμ′←θμ

    将收集到的环境状态信息st作为actor在线网络的输入,输出相应的动作at=(st|θμ),最后执行动作获得相应的奖励rt和转移状态st 1,再存储到缓冲区d中;

    步骤s1.3.6、对于在线actor网络μ(s|θμ)输出的动作at=(st|θμ),作为在线critic网络q(s,a|θq)的输入,得到相应的q-value,然后通过均方误差去计算损失函数,即:

    其中,yi表示目标critic网络获得的q-value,相应的yi具体表示为:

    yi=ri γ·q′(si 1,μ′(si 1|θμ′)|θq′)

    其中,γ表示折扣因子用于反映奖励不断衰减的过程;

    通过均方误差计算完损失函数之后,再去调整主动actor网络的权重参数,更新参数的过程为:

    最后再对分别对目标网络参数进行更新,即:

    θμ′←σθμ (1-σ)θμ′

    θq′←σθq (1-σ)θq′

    θq′是critic目标网络的权重参数,

    θμ′是actor目标网络的权重参数。

    步骤s1.4、sdn控制器中的qos路由管理模块与ddpg代理交互,即:ddpg代理为每个会话请求找到合适的动作之后,再由sdn控制器中的qos路由管理模块转换成具体的相应流表指令下发到openflow交换机中执行;

    本发明的深度强化学习训练完成后,会得到最优的路由策略,也就是传输路径,得到是连续的交换机节点,再将其转换成流表项下发到交换机中,qos路由管理模块将合适的动作转为为流表规则。

    步骤s2:qos路由优化

    通过从sdn网络中获取全局网络状态,然后sdn控制器生成网络策略动作,选择不同的路由路径,再由控制平面基于相应路由路径下发相应的规则(即组表、流表),按照集合顺序依次对流量路由;具体步骤如下:

    步骤s2.1、客户端发送请求消息到数据平面的openflow交换机中,交换机检查是否有与流相匹配的流表项,如果流表项存在,则根据流表项执行转发,否则,发送packet_in消息到sdn控制器中,然后sdn控制器接收代理训练完成后的动作,再按照相应的策略部署新的流表项到openflow交换机中,获得更加合理的路由;

    步骤s2.2、sdn控制器按照相应时间周期获取网络状态信息,时间间隔根据网络变化来设定,每获取一次网络状态,就相应进行一次路由优化,并按照路由策略去配置相应的流表;上述过程中,对于相同网络业务的会话请求,则下发配置相应的组表和流表进行组播传输,对于不同网络业务的请求,则配置相应的流表项进行单播传输。组表和流表的下发操作是仿真环境中基本的指令操作,通过相应命令实现。

    本发明还公开一种sdn环境下基于深度强化学习的智能qos路由优化系统,包括控制平面层和数据平面层,控制平面层中包括多个sdn控制器,数据平面中包括多个媒体服务器、openflow网络以及客户端;

    数据平面层包括由支持openflow交换机的转发设备,数据平面报告网络资源的信息、网络状态以及数据的转发;控制平面层由南向接口与数据平面进行交互,通过集中控制来收集网络状态,网络状态发生变化时,控制器根据变化更新网络,调整路由路径;

    其中,媒体服务器提供各种多媒体业务;客户端发送业务请求,接收请求视频内容等功能;openflow交换机接收到客户端请求以后将其转发给sdn控制器,sdn控制器与ddpg代理进行交互,执行相应的路由策略,再通过sdn控制器下发流表项到交换机中。

    有益效果:与现有技术相比,本发明具有以下优点:

    1、本发明采用分布式控制平面设计方式来传输实时视频流。openflow交换机一旦收到与之非对应流表条目匹配的数据包,就需要将该数据包的头封装成一个报文中的数据包,发送给控制器进行路由和流表条目安装。因此,报文中数据包的数量可能导致控制器负载增加,控制器可能会达到性能瓶颈。与单一的控制器平面的域内传输相比,本发明采用多个控制器的分布式控制平面上进行数据平面的管理,解决单一集中式控制器中的可伸缩性问题。

    2、本发明考虑传输流量过程中的网络负载以及sdn交换机内存大小(tcam)的限制因素,根据本发明中的深度确定性策略梯度模型,优化网络负载奖励和网络qos奖励来评估行动的有效性,提高整个sdn网络的可靠性;

    3、本发明采用深度强化学习来解决sdn路由问题,相比传统启发式算法,需要简化建立数学模型并针对优化问题求解,具有较高的计算时间成本而言,深度强化学习方法只需要设计不同网络决策和优化目标,无需精确可解的数学模型,同时可以处理复杂的网络状态,从而减少了网络传输时延,解决大规模网络决策问题,提供了更好的网络服务质量。

    附图说明

    图1为现有技术中的sdn架构示意图;

    图2为本发明的分布式控制平面示意图;

    图3为本发明的网络模型系统架构图;

    图4为本发明中消息交互时间图;

    图5为本发明的整体流程图;

    图6为本发明中数据采集阶段流程图;

    图7为本发明中深度强化学习训练阶段流程图;

    图8为本发明中qos路由阶段流程图;

    图9为本发明中实施例的网络拓扑示意图。

    具体实施方式

    下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

    如图3至图8所示,本发明,本发明的一种sdn环境下基于深度强化学习的智能qos路由优化方法,包括以下步骤:

    步骤s1:深度强化学习训练

    优化深度强化学习方法,并采用其深度确定性策略梯度ddpg模型,将基于策略的强化学习和基于价值的强化学习方法结合,然后利用神经网络生成策略函数和价值估计函数来形成稳定的连续动作,其中μ和q分别表示确定性策略函数和价值估计函数,并由神经网络形成;具体步骤如下:

    步骤s1.1、媒体服务器mediaserver提供相应多媒体业务(包括视频、音频等),且所述多媒体业务通过openflow网络进行传输;

    步骤s1.2、sdn控制器中视频管理模块接收多媒体业务的会话请求,多媒体业务的会话请求集合为γt集合γt中的每一个具体会话请求则表示为k是会话请求的索引,vk表示传输第k个会话请求的视频服务器,ck表示第k个会话请求的客户端,bk表示第k个会话请求的带宽大小;k∈[1,n];

    所述步骤s1.2中sdn控制平面的详细内容为:

    步骤s1.2.1、sdn控制平面中,sdn网络包括n个控制器和k个交换机,n个控制器集合为c={c1,c2,……,cn},该集合中所有控制器性能相同并将控制器c1设为住控制器,k个交换机集合为e={e1,e2,……,en};sdn网络划分为n个域,每个域中的网络流量和每个域的负载均为动态变化;

    步骤s1.2.2、对于每个会话请求在每个时间间隔内,统计每个交换机ei发送的packet_in消息数目和每个交换机中流表的占有率

    步骤s1.2.3、统计不同控制器cn的消息数目和流表占用率

    其中,表示交换机ei的流表大小,表示占用流表的数目;

    步骤s1.2.4、处理会话请求集合γt中所有不同的会话请求,得到n个域中各个域的负载和流表使用情况;

    步骤s1.3、使用与sdn控制器相连的ddpg代理进行智能路由决策,sdn控制器定期向ddpg提供用于训练的流量数据;且在训练期间,将与环境每次交互后的状态信息(st,at,rt,st 1)存储于经验池,神经网络的学习批次n*(si,ai,ri,si 1)由从经验池中采样的数据组成;其中,st是t时刻的网络状态,at和st 1分别表示在st状态下采取的动作和转换的状态,rt表示状态转换后获得的回报;

    步骤s1.3.1、通过控制平面收集网络状态st,包括链路带宽控制负载以及流表占用率

    步骤s1.3.2、将收集到的网络状态st作为输入,主体决定下一跳分配到哪一

    个交换机,这个动作用at来表示,即:

    其中,表示一个向量,有表示交换机ei和ej的连接关系,当时,表示ej被分配为ei下一跳节点的权值大小,反之时,即ej与ei节点无连接关系;

    步骤s1.3.3、主体在强化学习中根据奖励qπ(st,at)来评估行动的准确性,并以此来改进策略π(st,at),奖励的指标包括流表占用率转发延迟链路丢包率以及控制器负载所有指标的权重之和,即为:

    其中,h为控制器在时间t接收到的所有请求数目,0<α<1表示权重因子,表示控制负载奖励,表示网络服务质量奖励;

    对于由不同节点以及节点所在的域决定,控制器的负载越大,获得的奖励就会越少,可表示为:

    对于是基于链路质量设计的qos奖励,转发延迟和链路的丢包率越大,获得的奖励就会减少,反之亦反,可表示为:

    其中,是交换机ei和交换机ej之间的传输延迟,是交换机ei和交换机ej之间的丢包率;

    步骤s1.3.4、深度强化学习时采用actor-critic模式,即采用使用确定性策略梯度方法的actor模块和使用深度q-learning方法的critic模块;所述两个模块均包括一个在线网络(primarynetwork)和一个目标网络(targetnetwork),且二者的神经网络结构相同;在线网络将自己的参数传递给目标网络进行目标网络的参数更新;在训练期间,设置一个存储样本数据的缓冲区d,将与环境交互的转换信息存储在d中,神经网络学习从d中随机读取来进行学习;

    步骤s1.3.5、首先随机选取缓存区d中存储采用的数据n*(si,ai,ri,si 1),其中,si是初始化状态,ai是网络输出动作,在状态si下执行动作ai,会得到相应的奖励ri和下一时刻状态si 1;然后,初始化在线网络μ(s|θμ)的权重参数为θμ和θq,在将参数更新到目标网络q(s,a|θq),即:

    θq′←θqμ′←θμ

    将收集到的环境状态信息st作为actor在线网络的输入,输出相应的动作at=(st|θμ),最后执行动作获得相应的奖励rt和转移状态st 1,再存储到缓冲区d中;

    步骤s1.3.6、对于在线actor网络μ(s|θμ)输出的动作at=(st|θμ),作为在线critic网络q(s,a|θq)的输入,得到相应的q-value,然后通过均方误差去计算损失函数,即:

    其中,yi表示目标critic网络获得的q-value,相应的yi具体表示为:

    yi=ri γ·q′(si 1,μ′(si 1|θμ′)|θq′)

    其中,γ表示折扣因子用于反映奖励不断衰减的过程;

    通过均方误差计算完损失函数之后,再去调整主动actor网络的权重参数,更新参数的过程为:

    最后再对分别对目标网络参数进行更新,即:

    θμ′←σθμ (1-σ)θμ′

    θq′←σθq (1-σ)θq′

    步骤s1.4、sdn控制器中的qos路由管理模块与ddpg代理交互,即:ddpg代理为每个会话请求找到合适的动作之后,再由sdn控制器中的qos路由管理模块转换成具体的相应流表指令下发到openflow交换机中执行;

    步骤s2:qos路由优化

    通过从sdn网络中获取全局网络状态,然后sdn控制器生成网络策略动作,选择不同的路由路径,再由控制平面基于相应路由路径下发相应的规则(即组表、流表),按照集合顺序依次对流量路由;具体步骤如下:

    步骤s2.1、客户端发送请求消息到数据平面的openflow交换机中,交换机检查是否有与流相匹配的流表项,如果流表项存在,则根据流表项执行转发,否则,发送packet_in消息到sdn控制器中,然后sdn控制器接收代理训练完成后的动作,再按照相应的策略部署新的流表项到openflow交换机中,获得更加合理的路由;

    步骤s2.2、sdn控制器按照相应时间周期获取网络状态信息,时间间隔根据网络变化来设定。,每获取一次网络状态,就相应进行一次路由优化,并按照路由策略去配置相应的流表;上述过程中,对于相同网络业务的请求,则配置相应的组表和流表进行组播传输,对于不同网络业务的请求,则配置相应的流表项进行单播传输。

    如图4所示,本发明中,深度强化学习模块包括环境(environment)、主体(agent)、状态(state)、动作(action)以及奖励(reward)。

    所述深度强化学习设置包括两个基本的部分:环境和代理。sdn的多媒体系统环境主要包括:多媒体服务器、异构客户端和openflow网络三个部分;代理用于与网络环境交互,类似于软件定义网络的应用层,通过与控制器交互来收集网络状态,做出决策和采取行动。经过神经网络训练,代理根据历史交互记录学习到的足够多的数据,为实时多媒体服务提供最优路由策略。

    所述深度强化学习的状态空间反映网络环境的变化。对于视频流传输问题,环境状态是指流量的变化,它包括链路带宽、数据包的丢失率、延迟和抖动。

    所述深度强化学习代理的任务是将状态空间映射到动作空间的过程。其中,任一个动作都是在每种状态下可供选择的下一跳集合,来确定最优的路由策略。当代理使用路由策略在某个状态下执行某个动作之后,当前状态就会转移到下一个状态。

    基于当前状态和动作,主体从环境中获得奖励。不同的网络优化目标,可以定义不同的奖励机制,采取不同的行动也会获得不同的奖励。当主体执行相应的策略π(st,at),即由初始状态执行一系列的行动后,主体就会得到一个累计奖励qπ(st,at),通过学习找到最大化累计奖励来确定最优策略。

    如图2所示,,本实施例的sdn环境下基于深度强化学习的智能qos路由优化系统,参与角色包括sdn控制器,视频服务器,openflow交换机和客户端。其中,视频服务器(mediaserver)提供各种多媒体业务,如视频、音频等,客户端负责发送请求,接收视频内容,交换机接收到请求以后将其发送给控制器,控制器负责与深度强化学习主体进行交互,并下发相应路由策略。

    实施例:

    实验环境:本实施例中的sdn控制器采用floodlight1.2,网络拓扑搭建采用网络仿真器mininet2.3,使用python程序实现深度强化学习的代理,选择iperf工具来模拟网络业务的传输。

    网络拓扑:如图9所示,在mininet网络仿真软件中部署真实的nsfnet网络,包含13个交换机节点和20条链路,其中,节点0作为源节点,连接着视频服务器,8,9,11,12,13作为5个连接客户端的节点,2,4,7作为拥塞节点。

    实验参数:服务器(server)负责发送视频流量,视频比特率大小设置为1mbps,传输过程中允许的最大时延和抖动分别设置为150ms和30ms。深度强化学习中神经网络参数设置如下:奖励折扣因子γ=0.9,奖励函数权重因子α=0.5,学习率δ=0.1,目标网络参数更新σ=0.01,训练批处理大小m=64。

    实施过程:

    1、首先,设置好主动网络和目标网络参数信息,再将缓冲区d初始化,对于每一次的迭代过程,去观察采取的行动,执行行动之后获得的奖励以及转换的状态,然后将状态,行动,奖励和转移状态存储在缓冲区中。其次,从缓存区d中随机读取一定批量的数据进行训练,计算目标critic网络q值,再通过损失函数以及策略迭代方法去更新主动critic网络和主动actor网络,找到累计q值最大的行动,最后更新目标网络的参数。

    2、通过训练完成神经网络可以直接获得路由策略,然后将获得的路由策略转换成相应的流表项安装到交换机中,在使用iperf工具发送视频流量到5个不同的客户端,发送视频流量大小1mbps,持续发包时间为200s,测量所有客户端的平均丢包率以及链路时延大小。

    通过上述实施例可以看出,本发明使用分布式控制器平面设计提供的全局网络拓扑为深度学习代理提供网络状态,从而减少控制平面的单点故障问题,提高网络的可扩展性。

    在构建网络业务传输路径过程中,本发明充分考虑交换机tcam空间大小以及流表的占用率,从而有效地利用了流表空间,减少网络传输过程中的时延和丢包率情况,提高网络的可靠性和可扩展性;同时,本发明使用深度强化学习算法,大大避免网络拥塞出现的情况,降低传输过程中端到端的时延,从而提高用户的网络服务质量体验。


    技术特征:

    1.一种sdn环境下基于深度强化学习的智能qos路由优化方法,其特征在于:包括以下步骤:

    步骤s1:深度强化学习训练

    步骤s1.1、媒体服务器mediaserver提供相应多媒体业务,且所述多媒体业务通过openflow网络进行传输;

    步骤s1.2、sdn控制器中视频管理模块接收多媒体业务的会话请求,多媒体业务的会话请求集合为γt集合γt中的每一个具体会话请求则表示为k是会话请求的索引,vk表示传输第k个会话请求的视频服务器,ck表示第k个会话请求的客户端,bk表示第k个会话请求的带宽大小;k∈[1,n];

    步骤s1.3、使用与sdn控制器相连的ddpg代理进行智能路由决策,sdn控制器定期向ddpg代理提供用于训练的流量数据;且在训练期间,将与环境每次交互后的状态信息(st,at,rt,st 1)存储于经验池,神经网络的学习批次n*(si,ai,ri,si 1)由从经验池中采样的数据组成;其中,st是t时刻的网络状态,at和st 1分别表示在st网络状态下采取的动作和转换的状态,rt表示网络状态转换后获得的回报;

    步骤s1.4、sdn控制器中的qos路由管理模块与ddpg代理交互,即:ddpg代理为每个会话请求找到合适的动作之后,再由sdn控制器中的qos路由管理模块转换成具体的相应流表指令下发到openflow交换机中执行;

    步骤s2:qos路由优化

    通过从sdn网络中获取全局网络状态,然后sdn控制器生成网络策略动作,选择不同的路由路径,再由控制平面基于相应路由路径下发相应的规则,按照集合顺序依次对流量路由;具体步骤如下:

    步骤s2.1、客户端发送请求消息到数据平面的openflow交换机中,交换机检查是否有与流相匹配的流表项,如果流表项存在,则根据流表项执行转发,否则,发送packet_in消息到sdn控制器中,然后sdn控制器接收ddpg代理训练完成后的动作,再按照相应的策略部署新的流表项到openflow交换机中,获得更加合理的路由;

    步骤s2.2、sdn控制器按照相应时间周期获取网络状态信息,每获取一次网络状态,就相应进行一次路由优化,并按照路由策略去配置相应的流表;

    上述过程中,对于相同网络业务的会话请求,则下发相应的组表和流表进行组播传输,对于不同网络业务的请求,则配置相应的流表项进行单播传输。

    2.根据权利要求1所述的sdn环境下基于深度强化学习的智能qos路由优化方法,其特征在于:所述步骤s1.2中sdn控制平面的详细内容为:

    步骤s1.2.1、sdn控制平面中,sdn网络包括n个控制器和k个交换机,n个控制器集合为c={c1,c2,……,cn},该集合中所有控制器性能相同并将控制器c1设为住控制器,k个交换机集合为e={e1,e2,……,ek};sdn网络划分为n个域,每个域中的网络流量和每个域的负载均为动态变化;

    步骤s1.2.2、对于每个会话请求在每个时间间隔内,统计每个交换机ei发送的packet_in消息数目和每个交换机中流表的占用率

    步骤s1.2.3、在每个时间间隔内,统计不同控制器cn的消息数目和流表占用率

    其中,表示交换机ei的流表大小,表示占用流表的数目;|ci|表示ci控制器下包括的交换机数目;

    步骤s1.2.4、处理会话请求集合γt中所有不同的会话请求,得到n个域中各个域的负载和流表使用情况。

    3.根据权利要求1所述的sdn环境下基于深度强化学习的智能qos路由优化方法,其特征在于:所述步骤s1.3的具体过程为:

    步骤s1.3.1、通过控制平面收集网络状态st,包括链路带宽控制负载以及流表占用率

    步骤s1.3.2、将收集到的网络状态st作为输入,代理决定下一跳分配到哪一个交换机,这个动作用at来表示,即:

    其中,表示一个向量,有表示交换机ei和ej的连接关系,当时,表示ej被分配为ei下一跳节点的权值大小,反之时,即交换机ej与交换机ei节点无连接关系;

    步骤s1.3.3、代理在强化学习中根据奖励qπ(st,at)来评估行动的准确性,并以此来改进策略π(st,at),奖励的指标包括流表占用率转发延迟链路丢包率以及控制器负载所有指标的权重之和,即为:

    其中,|k|表示在时间t接收到的会话请求的总数,0<α<1表示权重因子,表示控制负载奖励,表示网络服务质量奖励;

    对于由不同节点以及节点所在的域决定,控制器的负载越大,获得的奖励就会越少,可表示为:

    对于是基于链路质量设计的qos奖励,转发延迟和链路的丢包率越大,获得的奖励就会减少,反之亦反,可表示为:

    其中,是交换机ei和交换机ej之间的传输延迟,是交换机ei和交换机ej之间的丢包率;

    步骤s1.3.4、深度强化学习时采用actor-critic模式,即采用使用决定性策略梯度方法的actor模块和使用深度q-learning方法的critic模块;所述两个模块均包括一个在线网络和一个目标网络,且二者的神经网络结构相同;在线网络将自己的参数传递给目标网络进行目标网络的参数更新;在训练期间,设置一个存储样本数据的缓冲区d,将与环境交互的转换信息存储在d中,神经网络学习从d中随机读取来进行学习;

    步骤s1.3.5、首先随机选取缓存区d中存储采用的数据n*(si,ai,ri,si 1),其中,si是初始化状态,ai是网络输出动作,在状态si下执行动作ai,会得到相应的奖励ri和下一时刻状态si 1;然后,初始化在线网络μ(s|θμ)的权重参数为θμ和θq,在将参数更新到目标网络q(s,a|θq),即:

    θq′←θqμ′←θμ

    将收集到的环境状态信息st作为actor在线网络的输入,输出相应的动作at=(st|θμ),最后执行动作获得相应的奖励rt和转移状态st 1,再存储到缓冲区d中;

    步骤s1.3.6、对于在线actor网络μ(s|θμ)输出的动作at=(st|θμ),作为在线critic网络q(s,a|θq)的输入,得到相应的q-value,然后通过均方误差去计算损失函数,即:

    其中,yi表示目标critic网络获得的q-value,相应的yi具体表示为:

    yi=ri γ·q′(si 1,μ′(si 1|θμ′)|θq′)

    其中,γ表示折扣因子用于反映奖励不断衰减的过程;

    通过均方误差计算完损失函数之后,再去调整主动actor网络的权重参数,更新参数的过程为:

    最后再对分别对目标网络参数进行更新,即:

    θμ′←σθμ (1-σ)θμ′

    θq′←σθq (1-σ)θq′

    θq′是critic目标网络的权重参数,θμ′是actor目标网络的权重参数。

    4.一种sdn环境下基于深度强化学习的智能qos路由优化系统,其特征在于:包括控制平面层和数据平面层,控制平面层中包括多个sdn控制器,数据平面中包括多个媒体服务器、openflow网络以及客户端;

    数据平面层包括由支持openflow交换机的转发设备,数据平面报告网络资源的信息、网络状态以及数据的转发;控制平面层由南向接口与数据平面进行交互,通过集中控制来收集网络状态,网络状态发生变化时,控制器根据变化更新网络,调整路由路径;

    其中,媒体服务器提供各种多媒体业务;客户端发送业务请求,接收请求视频内容等功能;openflow交换机接收到客户端请求以后将其转发给sdn控制器,sdn控制器与ddpg代理进行交互,执行相应的路由策略,再通过sdn控制器下发流表项到交换机中。

    技术总结
    本发明公开一种SDN环境下基于深度强化学习的智能QoS路由优化方法、系统,首先将网络中所有流媒体服务表示为一个服务请求集合,然后对其中每一个请求,从流媒体服务器到异构客户端寻找满足网络服务质量的路径,依次确定出每一个流请求的路由,最后采用一种QoS路由优化算法构建出组播树。对于网络拥塞链路或者是恶意节点,通过深度强化学习的方法可以寻找出当前最合适的下一节点进行路由。通过采用深度学习和强化学习结合的方法,本发明可以有效地减少视频流的传输时延并提高路由决策的准确性。同时,本发明采用了分布式控制平面的设计,并可以在各种网络拓扑在实现,不仅可以避免网络网络拥塞,提高了网络的可扩展性,而且减少与单一控制器的交互,提高了网络的整体效用。

    技术研发人员:孔令彪;崔杰;杨明;仲红;许艳;马建峰
    受保护的技术使用者:安徽大学
    技术研发日:2020.11.13
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8348.html

    最新回复(0)