掌桥专利:专业的专利平台
掌桥专利
首页

链路确定方法、装置、控制器及存储介质

文献发布时间:2023-06-19 19:28:50


链路确定方法、装置、控制器及存储介质

技术领域

本申请涉及网络技术领域,尤其涉及一种链路确定方法、装置、控制器及存储介质。

背景技术

软件定义网络(SDN,Software Defined Network),可通过软件编程的形式定义和控制网络,从而能够有效降低设备负载。SDN在网络架构中增加了SDN控制器,把原来的分布式控制平面集中到SDN控制器上,由SDN控制器实现网络集中控制。

为了进行链路故障恢复,控制器通常预先为网络中的数据流确定备用路径,并将备用路径下发到对应的交换机,在网络故障时,交换机能够将数据流重定向到备用路径,从而完成数据转发操作。相关技术中,在进行链路故障恢复时,存在备用路径的性能不佳的问题。

发明内容

有鉴于此,本申请实施例提供一种链路确定方法、装置、控制器及存储介质,以至少解决相关技术中备用路径的性能不佳的问题。

本申请实施例的技术方案是这样实现的:

本申请实施例提供了一种链路确定方法,所述方法包括:

获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;所述第一矩阵中的每个第一元素表征对应的单向链路的节点对;所述第二矩阵中的每个第二元素表征对应的单向链路的对应链路参数;所述节点对包括对应的单向链路或路径的起始节点和终止节点;

基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵;

基于对应的第三矩阵,在第一单向链路对应的至少一条第一路径中确定出第二路径,以在所述第一单向链路故障时基于确定出的第二路径进行链路故障恢复;其中,

所述第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励;所述第一路径表征由至少两条单向链路组成的路径,且所述第一路径对应的节点对与对应的第一单向链路对应的节点对相同。

其中,上述方案中,所述基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵时,所述方法包括:

将所述第一矩阵中一个第一元素表征的第一单向链路的节点对中的起始节点确定为当前节点;

对每条第一单向链路,在确定出当前节点的情况下,以当前节点为起始节点选择第二单向链路,并根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵;

在选择的第二单向链路的终止节点不为对应的第一单向链路的终止节点的情况下,确定选择的第二单向链路的终止节点为当前节点;

在选择的第二单向链路的终止节点为对应的第一单向链路的终止节点的情况下,确定对应的第一单向链路的起始节点为当前节点;

在第一次数等于设定阈值的情况下,输出对应的第一单向链路对应的第三矩阵;其中,

所述第一次数表征将对应的第一单向链路的起始节点确定为当前节点的次数。

上述方案中,所述根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵,包括:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵。

上述方案中,所述根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵,包括:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素和对应的第二单向链路的链路复用参数,更新对应的第三矩阵;其中,

所述链路复用参数表征对应的单向链路被确定为第二路径的次数。

上述方案中,在所述在第一单向链路对应的至少一条第一路径中确定出第二路径之后,所述方法还包括:

更新构成所述第二路径的至少一条单向链路的链路复用参数。

上述方案中,所述至少一种链路参数包括:

链路剩余带宽;

和/或,

链路时延。

上述方案中,所述获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵,包括:

在检测到至少一条单向链路发生故障的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;或,

在到达设定时刻的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵。

本申请实施例还提供了一种链路确定装置,包括:

获取单元,用于获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;所述第一矩阵中的每个第一元素表征对应的单向链路的节点对;所述第二矩阵中的每个第二元素表征对应的单向链路的对应链路参数;所述节点对包括对应的单向链路或路径的起始节点和终止节点;

第一处理单元,用于基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵;

第二处理单元,用于基于对应的第三矩阵,在第一单向链路对应的至少一条第一路径中确定出第二路径,以在所述第一单向链路故障时基于确定出的第二路径进行链路故障恢复;其中,

所述第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励;所述第一路径表征由至少两条单向链路组成的路径,且所述第一路径对应的节点对与对应的第一单向链路对应的节点对相同。

本申请实施例还提供了一种控制器,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行上述链路确定方法的步骤。

本申请实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述链路确定方法的步骤。

在本申请实施例中,获取表征对应的单向链路的节点对的第一矩阵和表征对应的单向链路的链路参数的第二矩阵,基于第一矩阵和至少一个第二矩阵通过强化学习得到每条第一单向链路对应的第三矩阵,基于对应的第三矩阵在第一单向链路对应的至少一条第一路径中确定出对应的第二路径,以在第一单向链路故障时基于确定出的第二路径进行链路故障恢复,其中,第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励,第一路径表征由至少两条单向链路组成的路径,且第一路径对应的节点对与对应的第一单向链路对应的节点对相同。这样,基于单向链路的节点对和对应的链路参数,通过强化学习得到路径的奖励,根据第一单向链路对应的至少一条路径的奖励,从至少一条路径中确定出链路性能较优的第二路径为备用路径,也就是说,相较于相关技术选择备用路径的方法,本申请实施例能够从路径中选出性能更好的备用路径,从而提高被选出的备用路径的性能,提升了故障恢复后的网络性能。

附图说明

图1为本申请应用实施例提供的多设备组成的网络拓扑示意图;

图2为本申请实施例提供的链路确定方法的流程示意图;

图3为本申请应用实施例提供的SDN链路确定方法的流程示意图;

图4为本申请实施例提供的链路确定装置的结构示意图;

图5为本申请实施例提供的一种控制器的结构示意图。

具体实施方式

对于网络而言,稳定性和可靠性是重要的性能指标,但在现实网络中,由于存在链路故障等情况,无法避免网络改变。针对该现状,链路故障恢复技术受到广泛关注。

对于SDN,由于交换机的转发行为由控制器决定,当交换机或链路发生故障时,不仅影响到数据流的正常转发,也会造成控制器与交换机间控制流的中断。因而,从控制器的角度衍生出了两种恢复方案,即主动故障恢复和被动故障恢复。

被动故障恢复。在检测到故障之前,不会预先为数据流分配备用资源。当检测到故障时,故障交换机需要向控制器发送消息,控制器会根据当前网络状态为故障流计算一条工作路径。对于被动故障恢复,该恢复机制需要控制器的参与,实时监视网络中的链路状态,从而产生额外的控制开销。针对大规模网络,被动故障恢复的恢复时延会随着网络规模的增大而延长,被动恢复方案通常不能满足运营商对恢复时延的要求,因而很少采用。

主动故障恢复。控制器预先为网络中的数据流提供备用路径,并将备用路径转换为流表项下发到对应交换机,由交换机进行存储。当检测到故障时,交换机直接将数据流重定向到预先建立的备用路径,以此完成数据转发操作。对于主动故障恢复,该恢复机制可以通过提前规划备用路径并下发交换机,减少控制器的额外开销,实现降低故障恢复时延。由于网络性能的动态变化,而备用路径的规划与使用存在时间差,备用路径的性能难以保障,存在备用路径的性能不佳的问题。

基于此,在本申请的各种实施例中,获取表征对应的单向链路的节点对的第一矩阵和表征对应的单向链路的链路参数的第二矩阵,基于第一矩阵和至少一个第二矩阵通过强化学习得到每条第一单向链路对应的第三矩阵,基于对应的第三矩阵在第一单向链路对应的至少一条第一路径中确定出对应的第二路径,以在第一单向链路故障时基于确定出的第二路径进行链路故障恢复,其中,第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励,第一路径表征由至少两条单向链路组成的路径,且第一路径对应的节点对与对应的第一单向链路对应的节点对相同。这样,基于单向链路的节点对和对应的链路参数,通过强化学习得到路径的奖励,根据第一单向链路对应的至少一条路径的奖励,从至少一条路径中确定出链路性能较优的第二路径为备用路径,也就是说,相较于相关技术选择备用路径的方法,本申请实施例能够从路径中选出性能更好的备用路径,从而提高被选出的备用路径的性能,提升了故障恢复后的网络性能。

同时,相关技术中,通常采用Dijkstra算法进行路径规划,只能基于一个网络性能参数进行规划。本申请实施例通过将强化学习应用于链路故障恢复,支持在路径规划中分析至少一种影响因素,使规划得到的备用路径更符合网络的真实情况,提升了备用路径的性能。

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

首先,对链路故障恢复场景进行相关说明:

结合图1示出的多设备组成的网络拓扑示意图。以交换机A和交换机B间的链路“交换机A-交换机B”为例,对应的备用路径可以是“交换机A-交换机C-交换机B”,在链路“交换机A-交换机B”故障时,通过将数据流重定向到备用路径“交换机A-交换机C-交换机B”,实现交换机A和交换机B间的数据转发操作。

接下来,结合上文提供的对链路故障恢复场景,对链路确定方法进行详细说明:

图2为本申请实施例提供的链路确定方法的实现流程示意图,其中,流程的执行主体包括但不限于控制器等电子设备。如图2示出的,链路确定方法,包括:

步骤201:获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵。

其中,所述第一矩阵中的每个第一元素表征对应的单向链路的节点对;所述第二矩阵中的每个第二元素表征对应的单向链路的对应链路参数;所述节点对包括对应的单向链路或路径的起始节点和终止节点。

这里,第一矩阵表征网络拓扑连接。第一矩阵中的每个第一元素表征对应的节点对之间是否存在单向链路,以使起始节点和终止节点通过链路邻接。对于一个包括N个交换机的网络,第一矩阵可以通过式(1)N×N的矩阵T

其中,T

这里,根据至少一种链路参数,对应获取至少一个第二矩阵,每个第二矩阵表征一种对应的链路参数。第二矩阵中的每个第二元素表征对应的节点对之间直接连接的单向链路的链路参数,对于不邻接的节点对,对应的第二元素可以为零或负数。第二矩阵与第一矩阵存在对应关系,第二元素表征对应的第一元素的链路参数。

在实际应用中,仍然结合图1示出的多设备组成的网络拓扑示意图,交换机B和交换机D之间不存在单向链路,则T

步骤202:基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵。

其中,所述第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励;所述第一路径表征由至少两条单向链路组成的路径,且所述第一路径对应的节点对与对应的第一单向链路对应的节点对相同。

这里,以第一矩阵和至少一个第二矩阵为强化学习的探索环境,根据第一矩阵,将网络中存在的第一单向链路对应的节点对依次作为强化学习模型的输入,得到每条第一单向链路对应的第三矩阵,第三矩阵表征每条第一路径包括每个单向链路的奖励。其中,第一路径表征对应的第一单向链路的备用路径。

这里,强化学习模型的训练通过第一矩阵和至少一个第二矩阵实现,第一矩阵作为模型的动作集合,至少一个第二矩阵作为模型的状态集合。模型通过对环境的不断探索,得到每条第一单向链路对应的第三矩阵作为输出结果。

步骤203:基于对应的第三矩阵,在第一单向链路对应的至少一条第一路径中确定出第二路径,以在所述第一单向链路故障时基于确定出的第二路径进行链路故障恢复。

这里,基于对应的第三矩阵,能够确定第一单向链路对应的至少一条第一路径包括的单向链路的奖励。根据第一单向链路对应的每条第一路径包括的单向链路的奖励。这样,根据对应的第三矩阵,为每个第一单向链路确定出第二路径。

结合图1示出的多设备组成的网络拓扑示意图为例进行说明,以第一单向链路“交换机A-交换机C”为例,对应的第一路径至少包括“交换机A-交换机B-交换机C”和“交换机A-交换机D-交换机C”,第一单向链路对应的第三矩阵包括单向链路“交换机A-交换机B”、“交换机B-交换机C”、“交换机A-交换机D”、“交换机D-交换机C”的奖励,奖励分别为0.90、0.85、0.10和0.20,则两条第一路径的总奖励分别为1.75、0.30,将总奖励值较大的第一路径确定为第二路径,即:将“交换机A-交换机B-交换机C”确定为第二路径。

在本申请实施例中,基于单向链路的节点对和对应的链路参数,通过强化学习得到路径的奖励,根据第一单向链路对应的至少一条路径的奖励,从至少一条路径中确定出链路性能较优的第二路径为备用路径,也就是说,相较于相关技术选择备用路径的方法,本申请实施例能够从路径中选出性能更好的备用路径,从而提高被选出的备用路径的性能,提升了故障恢复后的网络性能。

前文提及,根据链路确定中需要使用的至少一种链路参数,对应获取至少一个第二矩阵,每个第二矩阵表征一种对应链路参数,因此,在一些可能的实施例中,所述至少一种链路参数包括:

链路剩余带宽;

和/或,

链路时延。

在步骤201中,在获取的至少一个第二矩阵中,至少能够表征网络的链路剩余带宽和/或链路时延。

这样,将链路剩余带宽、链路时延等链路参数纳入备用路径规划中来提升备用路径的性能,将至少一种链路参数作为备用路径规划的判断因素,使规划得到的备用路径更符合网络的真实情况,提升了备用路径的性能。

在实际应用中,电子设备如SDN控制器,可以通过控制逻辑集中化特性,获取网络拓扑信息、链路参数。

接下来,对通过强化学习得到第一单向链路对应的第三矩阵的方式进行进一步说明:

在一些可能的实施例中,所述基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵时,所述方法包括:

将所述第一矩阵中一个第一元素表征的第一单向链路的节点对中的起始节点确定为当前节点;

对每条第一单向链路,在确定出当前节点的情况下,以当前节点为起始节点选择第二单向链路,并根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵;

在选择的第二单向链路的终止节点不为对应的第一单向链路的终止节点的情况下,确定选择的第二单向链路的终止节点为当前节点;

在选择的第二单向链路的终止节点为对应的第一单向链路的终止节点的情况下,确定对应的第一单向链路的起始节点为当前节点;

在第一次数等于设定阈值的情况下,输出对应的第一单向链路对应的第三矩阵;其中,

所述第一次数表征将对应的第一单向链路的起始节点确定为当前节点的次数。

这里,节点对包括对应的单向链路或路径的起始节点和终止节点。对于每个第一单向链路,在输入模型时将节点对中的起始节点确定为当前节点,并以当前节点为起始节点选择第二单向链路,更新第三矩阵。在选择的第二单向链路的终止节点不为第一单向链路的终止节点的情况下,则确定选择的第二单向链路的终止节点为当前节点,并继续以当前节点为起始节点选择第二单向链路;在选择的第二单向链路的终止节点为第一单向链路的终止节点的情况下,确定对应的第一单向链路的起始节点为当前节点,并累计第一次数(即模型的训练次数),判断第一次数是否等于设定阈值,在第一次数小于设定阈值的情况下,继续训练模型;在第一次数等于设定阈值的情况下,输出第一单向链路对应的第三矩阵。

这里,选择第二单向链路时,以当前节点为起始节点,基于第一矩阵(动作集合)进行选择。在选择第二单向链路时可以需要采用对应的策略,如ε-贪心策略。

这里,以更新第二单向链路在第三矩阵中对应的元素的方式实现对第三矩阵的更新。可以将每次选择的第二单向链路的奖励进行累加,实现对在第三矩阵中对应的元素的更新。

考虑到链路的稳定性、可靠性,备用路径包括的单向链路的数量有一个最佳范围。在一些实施例中,累计选择第二单向链路的第二次数(可以认为是从起始节点选择动作的步数),在第二次数等于另一设定阈值的情况下,即使选择的第二单向链路的终止节点不为第一单向链路的终止节点,也将第一单向链路的起始节点确定为当前节点,并累计第一次数。

在一些实施例中,所述根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵,包括:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵。

这里,在更新第三矩阵时,根据第二单向链路对对应的第三矩阵的元素进行更新。

控制器预先为网络中的数据流提供备用路径,并将备用路径转换为流表项下发到对应交换机,由交换机进行存储。提前规划的备用路径需要占用交换机大量的流表空间。在一些实施例中,所述根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵,包括:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素和对应的第二单向链路的链路复用参数,更新对应的第三矩阵;其中,

所述链路复用参数表征对应的单向链路被确定为第二路径的次数。

这里,链路复用参数可以反映对应的单向链路作为备用路径的次数,换句话说,在模型训练过程中,链路复用参数取决于在这个第一单向链路之前的至少一条第一单向链路的备用路径所使用的单向链路。越多的备用路径使用这个单向链路,则链路复用参数越大。单向链路的链路复用参数可以通过公式(2)计算得到:

其中,

x表征单向链路被用于备用路径的次数。

这样,在强化学习的奖励函数中,以链路复用参数作为正反馈来鼓励agent探索已作为备用路径使用的链路,提高复用为备用路径的单向链路的奖励,引导模型规划备用路径时提高链路的复用率,从而降低主动故障恢复中备用路径对流表资源消耗。

在实际应用中,以两个分别表征链路剩余带宽、链路时延的第二矩阵为例进行说明,第二单向链路(s,a)对应第一元素为T

R

其中,

R′

B表征第二单向链路对应的链路剩余带宽;

M表征单向链路的链路复用参数;

t表征第二单向链路对应的链路时延;

δ(s′-d)为激励函数,s‘表示在当前节点选择第二单向链路后所转移的节点,如果s’为终止节点d,则表示agent完成一次训练,δ(s′-d)=1,给予1的奖励;

α、β、γ、σ表征为各项的权值。

前文提及,在模型训练过程中,链路复用参数取决于在这个第一单向链路之前的至少一条第一单向链路的备用路径所使用的单向链路。在一些实施例中,在所述在第一单向链路对应的至少一条第一路径中确定出第二路径之后,所述方法还包括:

更新构成所述第二路径的至少一条单向链路的链路复用参数。

这里,在确定出第一单向链路对应的备用路径后,根据备用路径所使用的单向链路,更新对应的链路复用参数。在实际应用中,可以将这个第一单向链路的备用路径所使用的每个单向链路的链路复用参数加一。

这样,能够实时更新训练过程中的单向链路复用情况,从而精确地引导模型规划备用路径时提高链路的复用率。

在一些实施例中,所述获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵,包括:

在检测到至少一条单向链路发生故障的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;或,

在到达设定时刻的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵。

这里,设定时刻可以根据设定周期确定,在到达设定时刻的情况下,对应地表示设定周期结束。

在链路故障或周期期满的情况下,网络状态可能发生较大变化,以此作为获取网络状态、备用路径更新的条件,这样,能够在动态网络中提高备用路径的性能,从而提升了链路故障恢复后的网络性能。

下面以SDN控制器和交换机构成的网络为具体场景,结合应用实施例对本申请再作进一步详细的描述。

由于SDN中交换机的转发行为完全由控制器决定,当交换机或链路发生故障时,不仅会影响数据流的正常转发,也会造成控制器与交换机间控制流的中断。相关技术中,通常采用主动链路故障恢复方法,通过提前规划备用路径并下发交换机,实现降低故障恢复时延。由于网络性能的动态变化,而备用路径的规划与使用存在一定的时间差,备用路径的性能难以保障,存在备用路径的性能不佳的问题。同时,提前规划的备用路径需要占用交换机大量的流表空间。

基于此,图3示出了本申请一种应用实施例提供的SDN链路确定方法的流程示意图,包括以下步骤:

步骤301:控制器通过网络全局视图获取全局参数。

在设定周期开端,控制器通过网络拓扑全局视图获取全局参数。SDN控制器通过控制逻辑集中化特性,获取当前时刻的网络拓扑信息,链路剩余带宽和链路时延的全局参数

步骤302:处理全局参数。

构建网络拓扑连接矩阵T、链路剩余带宽矩阵B、链路时延矩阵D。以网络拓扑连接矩阵T为第一矩阵,以链路剩余带宽矩阵B、链路时延矩阵D为两个第二矩阵。

这里,根据控制器感知的网络拓扑全局视图,构建网络拓扑连接矩阵T,如式(1)所示。网络拓扑连接矩阵T是一个N×N的矩阵,N表示网络中的交换机总数。

这里,对剩余带宽和链路时延进行归一化处理,得到剩余带宽矩阵B和链路时延矩阵D。链路剩余带宽矩阵B和链路时延矩阵D在网络拓扑连接矩阵T的基础上构建。

步骤303:矩阵T、B、D构成强化学习agent的探索环境,将网络中存在单向链路的节点对依次作为强化学习模型的输入,训练模型,规划备用路径。

这里,为改善主动故障恢复中备用路径对流表资源消耗的问题,提出备用路径的链路复用方法。定义链路复用参数。设置链路l

这里,设置强化学习模型的奖励函数,如公式(3)所示。

这里,模型训练和规划备用路径过程如下:

设置训练次数(即第一次数)episodes和单次训练最大步数(即第二次数)t;

(1)遍历网络中的单向链路的节点对:

(2)对于第一单向链路的节点对,初始化起始节点s、终止节点d、Q值表(即第三矩阵)和奖励函数R

(3)采取动作ε-贪心策略,选择动作a(即第二单向链路);

(4)执行动作a,转移到状态s′(即第二单向链路的终止节点),用奖励函数R计算奖励值,更新Q值表;

(5)判断s′是否为终止节点。若是,跳到步骤(7);若不是,使当前节点s=s′;

(6)训练步数加1,判断该次训练的步数是否达到最大步数t。若没有,返回步骤(2);

(7)训练次数加1,判断训练次数是否达到episodes。若没有,返回步骤(2)。

(8)使用Q值表计算第一单向链路的备用路径path(s,d);

(9)更新备用路径path(s,d)中各条链路的备用路径复用指数M;

(10)判断网络中的节点对是否遍历完。若没有,返回步骤(1)。

步骤304:当在周期中发生链路故障,使用备用路径完成链路故障恢复,并提前结束该周期。

步骤305:周期结束,转到步骤301更新备用路径的规划。

在本申请应用实施例中,将强化学习应用到SDN链路故障领域,支持在路径规划中同时分析至少一种影响因素,克服了相关技术中备用路径规划无法考虑较多因素的问题,使规划得到的备用路径更符合网络的真实情况,提升了备用路径的性能。在实际应用中,基于强化学习的SDN域内单向链路故障恢复方法,基于主动链路故障恢复,利用强化学习自我探索环境的特性,将链路剩余带宽、链路时延等网络性能参数纳入备用路径规划中,提升规划得到的备用路径的性能。

同时,针对主动链路故障恢复中存在的备用路径流表资源消耗问题,提出备用路径的单向链路复用,通过对强化学习agent选择已是备用路径的动作给予正向奖励,引导模型规划备用路径时提高链路的复用率,减少流表资源消耗。

最后,考虑到网络性能是随时间动态变化的,备用路径的规划和使用存在一定的时间差,设置了备用路径的性能保证周期,通过周期性的更新备用路径,保障网络链路故障恢复后的网络性能。

为实现本申请实施例的方法,本申请实施例还提供了一种链路确定装置,如图4所示,该装置包括:

获取单元401,用于获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;所述第一矩阵中的每个第一元素表征对应的单向链路的节点对;所述第二矩阵中的每个第二元素表征对应的单向链路的对应链路参数;所述节点对包括对应的单向链路或路径的起始节点和终止节点;

第一处理单元402,用于基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵;

第二处理单元403,用于基于对应的第三矩阵,在第一单向链路对应的至少一条第一路径中确定出第二路径,以在所述第一单向链路故障时基于确定出的第二路径进行链路故障恢复;其中,

所述第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励;所述第一路径表征由至少两条单向链路组成的路径,且所述第一路径对应的节点对与对应的第一单向链路对应的节点对相同。

其中,在一个实施例中,所述第一处理单元402,用于:

将所述第一矩阵中一个第一元素表征的第一单向链路的节点对中的起始节点确定为当前节点;

对每条第一单向链路,在确定出当前节点的情况下,以当前节点为起始节点选择第二单向链路,并根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵;

在选择的第二单向链路的终止节点不为对应的第一单向链路的终止节点的情况下,确定选择的第二单向链路的终止节点为当前节点;

在选择的第二单向链路的终止节点为对应的第一单向链路的终止节点的情况下,确定对应的第一单向链路的起始节点为当前节点;

在第一次数等于设定阈值的情况下,输出对应的第一单向链路对应的第三矩阵;其中,

所述第一次数表征将对应的第一单向链路的起始节点确定为当前节点的次数。

在一个实施例中,所述第一处理单元402,用于:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵。

在一个实施例中,所述第一处理单元402,用于:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素和对应的第二单向链路的链路复用参数,更新对应的第三矩阵;其中,

所述链路复用参数表征对应的单向链路被确定为第二路径的次数。

在一个实施例中,所述装置还包括:

更新单元,用于更新构成所述第二路径的至少一条单向链路的链路复用参数。

在一个实施例中,所述至少一种链路参数包括:

链路剩余带宽;

和/或,

链路时延。

在一个实施例中,所述获取单元401,用于:

在检测到至少一条单向链路发生故障的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;

或,

在到达设定时刻的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵。

实际应用时,所述获取单元401、所述第一处理单元402、所述第二处理单元403、所述更新单元可由基于链路确定装置中的处理器,比如中央处理器(CPU,CentralProcessing Unit)、数字信号处理器(DSP,Digital Signal Processor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。

需要说明的是:上述实施例提供的链路确定装置在进行链路确定时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的链路确定装置与链路确定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于上述程序模块的硬件实现,且为了实现本申请实施例链路确定方法,本申请实施例还提供了一种控制器,如图5所示,该控制器500包括:

通信接口510,能够与其它设备比如网络设备等进行信息交互;

处理器520,与所述通信接口510连接,以实现与其它设备进行信息交互,用于运行计算机程序时,执行上述一个或多个技术方案提供的方法。而所述计算机程序存储在存储器530上。

具体地,所述处理器520,用于:

获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;所述第一矩阵中的每个第一元素表征对应的单向链路的节点对;所述第二矩阵中的每个第二元素表征对应的单向链路的对应链路参数;所述节点对包括对应的单向链路或路径的起始节点和终止节点;

基于所述第一矩阵和至少一个第二矩阵,通过强化学习得到每条第一单向链路对应的第三矩阵;

基于对应的第三矩阵,在第一单向链路对应的至少一条第一路径中确定出第二路径,以在所述第一单向链路故障时基于确定出的第二路径进行链路故障恢复;其中,

所述第三矩阵表征至少一条第一路径中每条第一路径对应的单向链路的奖励;所述第一路径表征由至少两条单向链路组成的路径,且所述第一路径对应的节点对与对应的第一单向链路对应的节点对相同。

其中,在一个实施例中,所述处理器520,用于:

将所述第一矩阵中一个第一元素表征的第一单向链路的节点对中的起始节点确定为当前节点;

对每条第一单向链路,在确定出当前节点的情况下,以当前节点为起始节点选择第二单向链路,并根据选择的第二单向链路更新对应的第一单向链路对应的第三矩阵;

在选择的第二单向链路的终止节点不为对应的第一单向链路的终止节点的情况下,确定选择的第二单向链路的终止节点为当前节点;

在选择的第二单向链路的终止节点为对应的第一单向链路的终止节点的情况下,确定对应的第一单向链路的起始节点为当前节点;

在第一次数等于设定阈值的情况下,输出对应的第一单向链路对应的第三矩阵;其中,

所述第一次数表征将对应的第一单向链路的起始节点确定为当前节点的次数。

在一个实施例中,所述处理器520,用于:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素,更新对应的第三矩阵。

在一个实施例中,所述处理器520,用于:

根据选择的第二单向链路在每个第二矩阵中对应的第二元素和对应的第二单向链路的链路复用参数,更新对应的第三矩阵;其中,

所述链路复用参数表征对应的单向链路被确定为第二路径的次数。

在一个实施例中,所述处理器520,用于:

更新构成所述第二路径的至少一条单向链路的链路复用参数。

在一个实施例中,所述至少一种链路参数包括:

链路剩余带宽;

和/或,

链路时延。

在一个实施例中,所述处理器520,用于:

在检测到至少一条单向链路发生故障的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵;或,

在到达设定时刻的情况下,获取第一矩阵和至少一种链路参数中的每种链路参数对应的第二矩阵。

当然,实际应用时,控制器500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统540。

本申请实施例中的存储器530用于存储各种类型的数据以支持控制器500的操作。这些数据的示例包括:用于在控制器500上操作的任何计算机程序。

可以理解,存储器530可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器530旨在包括但不限于这些和任意其它适合类型的存储器。

上述本申请实施例揭示的方法可以应用于处理器520中,或者由处理器520实现。处理器520可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器520中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器520可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器520可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器530,处理器520读取存储器530中的程序,结合其硬件完成前述方法的步骤。

可选地,所述处理器520执行所述程序时实现本申请实施例的各个方法中由控制器实现的相应流程,为了简洁,在此不再赘述。

在示例性实施例中,本申请实施例还提供了一种存储介质,即计算机存储介质,具体为计算机可读存储介质,例如包括存储计算机程序的存储器530,上述计算机程序可由电子设备的处理器520执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、电子设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。除非另有说明和限定,术语“连接”应做广义理解,例如,可以是电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

另外,在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解“第一第二第三”区分的对象在适当情况下可以互换,以使这里描述的本申请的实施例可以除了在这里图示或描述的那些以外的顺序实施。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一个”表示多个中的任意一个或多个中的至少两个的任意组合,例如,包括A、B、C中的至少一个,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

在具体实施方式中所描述的各个实施例中的各个具体技术特征,在不矛盾的情况下,可以进行各种组合,例如通过不同的具体技术特征的组合可以形成不同的实施方式,为了避免不必要的重复,本申请中各个具体技术特征的各种可能的组合方式不再另行说明。

技术分类

06120115926377