本发明涉及计算机网络
技术领域:
,特别是涉及一种sdn网络中数据流的备选路径确定方法及装置。
背景技术:
:软件定义网络(softwaredefinednetwork,sdn)是网络虚拟化的一种实现方式,通过将网络设备的控制面和数据面分离开来,实现了网络流量的灵活控制。sdn控制器可以收集网络中的各类信息,这些信息包括设备信息,链路信息,隧道信息等,并用拓扑图结构来存储这些收集的信息。其中,用户定义的应用流量会通过引流技术进入端到端的隧道中。sdn控制器根据数据流带宽范围、路径约束、路径优先级等选路策略,通过算路模块得到最优路径,并通过下发隧道及路径配置,使用户的应用数据流走到对应的隧道中,从而实现流量调度。通常情况下,为了保证数据流的路径发生故障时业务流量不中断,需要为数据流同时选择多条路径,即包括主路径和备选路径。如图1所示,图1展示了为a-e链路规划了两条路径。在正常情况下,用户的业务流量将通过主路径a-b-e,但如果b设备出现故障,可以迅速切换到备选路径a-d-e,从而保证业务流量不中断。随着sdn技术的发展,传统的只需要避开主路径的备选路径计算方法已经不能满足用户需求。技术实现要素:本发明实施例的目的在于提供一种基于sdn网络的备选路径计算方法及装置,以确定能够满足业务质量要求,且允许定制节点、总代价值较低的备选路径。具体技术方案如下:为实现上述目的,本发明实施例提供了一种sdn网络中数据流的备选路径确定方法,所述方法包括:确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,所述必经路径信息包括必经节点和必经链路;根据所述源节点、所述目的节点、所述必经节点和所述必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,所述sdn网络中的链路包括主路径链路和非主路径链路;所述主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。可选的,所述针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径的步骤,包括:针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,所述不可选链路包括:所述源节点的入度链路、所述目的节点的出度链路、所述必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,所述不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点;针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在所述代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到所述预设数目个候选路径。可选的,所述主路径链路的代价值是根据如下公式进行代价补偿的:c′l=cl+ncavg其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,cavg表示主路径包含的链路的均值代价值。可选的,在确定sdn网络中待转发数据流的源节点和目的节点之后,所述方法还包括:根据备选路径需求的质量参数,以及所述sdn网络中各链路的质量参数,计算所述sdn网络中各链路的质量指标;以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算质量指标最低的优选路径;判断所述优选路径是否满足所述备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目。可选的,所述质量参数包括:时延、抖动和丢包率;链路的质量指标根据如下公式进行计算:ql=dl/dp+jl/jp+ll/lp其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示所述备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示所述备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示所述备选路径需求的丢包率参数。为实现上述目的,本发明实施例还提供了一种sdn网络中数据流的备选路径确定装置,所述装置包括:确定模块,用于确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,所述必经路径信息包括必经节点和必经链路;划分模块,用于根据所述源节点、所述目的节点、所述必经节点和所述必经链路进行路径划分,得到多个待规划的子路径;规划模块,用于针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,所述sdn网络中的链路包括主路径链路和非主路径链路;所述主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;拼接模块,用于按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。可选的,所述规划模块,具体用于:针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,所述不可选链路包括:所述源节点的入度链路、所述目的节点的出度链路、所述必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,所述不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点;针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在所述代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到所述预设数目个候选路径。可选的,所述主路径链路的代价值是根据如下公式进行代价补偿的:c′l=cl+ncavg其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,cavg表示主路径包含的链路的均值代价值。可选的,所述装置还包括:质量估计模块,用于:根据备选路径需求的质量参数,以及所述sdn网络中各链路的质量参数,计算所述sdn网络中各链路的质量指标;以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算质量指标最低的优选路径;判断所述优选路径是否满足所述备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目;其中,所述质量参数包括:时延、抖动和丢包率;链路的质量指标根据如下公式进行计算:ql=dl/dp+jl/jp+ll/lp其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示所述备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示所述备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示所述备选路径需求的丢包率参数。为实现上述目的,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一方法步骤。为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法步骤。本发明实施例有益效果:采用本发明实施例提供的sdn网络中数据流的备选路径确定方法及装置,确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。能够在满足质量需求的前提下,确定定制必经节点、规避主路径且总代价值较低备选路径。可以生成更有针对性的灾备方案,实用性更强。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为主路径和备选路径的一种示意图;图2为本发明实施例提供的sdn网络中数据流的备选路径确定方法的一种流程示意图;图3为本发明实施例提供的路径划分的一种示意图;图4为本发明实施例提供的备选路径规划的一种流程示意图;图5为本发明实施例提供的sdn网络中数据流转发的一种示意图;图6为本发明实施例提供的sdn网络中数据流的备选路径确定装置的一种结构示意图;图7为本发明实施例提供的电子设备的一种结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了解决传统的只需要避开主路径的备选路径计算方法无法满足用户需求的技术问题,本发明实施例提供了一种sdn网络中数据流的备选路径确定方法及装置。为了便于理解,下面先对本发明的应用场景进行简要介绍。针对sdn网络中的待转发业务数据流,已知该业务数据流的主选路径,为了避免主选路径部分节点故障导致主选路径不可用,需要为业务数据流选择备选路径。为了选取能够满足业务质量要求,且允许定制节点、总代价值较低的备选路径,可以采用本发明实施例提供的sdn网络中数据流的备选路径确定方法进行路径规划,具体参见下文。参见图2,图2为本发明实施例提供的sdn网络中数据流的备选路径确定方法的一种流程示意图,该方法可以应用于sdn网络中的sdn控制器,方法可以包括以下步骤:s201:确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,必经路径信息包括必经节点和必经链路。本步骤中,可以确定sdn网络中待转发业务数据流的源节点、目的节点以及预先设定的必经路径信息,必经路径信息进行包括必经节点和必经链路。其中源节点表示数据流的起始节点,目的节点表示数据流的终止节点,例如某数据流需要从节点a转发至节点b,则该数据流的源节点为节点a,目的节点为节点b。本发明实施例中,节点可以是网络设备,例如路由器、交换机等,为了描述方便,本发明实施例中节点均表示网络设备节点。其中,针对待转发数据流,必经节点和必经链路可以是用户预先设定的。举例来讲,若节点n2和链路l2较为稳定,则用户可以选取节点n2为必经节点,链路l2为必经链路,以降低故障率。又例如,节点n3是具备流量统计功能的节点,则可以预先设定节点n3为必经节点,以进行流量统计。针对不同的待转发数据流,必经节点和必经链路都可以根据实际需求进行设定,本发明实施例对此不作限定。此外,对于必经链路,该链路两端的节点也必然是必经节点。s202:根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径。本发明实施例中,可以以必经节点和必经链路为依据,进行路径划分,得到多个待规划的子路径。也就是说,将以源节点为起始节点,以目的节点为终止节点的选路任务分割成多个子选路任务。作为一个示例,参见图3,如图3所示,源节点为nsrc,目的节点为ndst,必经路径信息包括:n1,l1,n2,l2,其中n1和n2是必经节点,l1和l2是必经链路,由于必经链路的两端节点也必然是必经节点,因此,根据上述必经路径信息,可以进行路径划分,得到以下子路径:nsrc→n1、n1→lsrc1、l1、ldst1→n2、n2→lsrc2、l2和ldst2→ndst为了便于说明,定义链路的入端点和出端点,在数据传输过程中,数据流经过链路的入端点进入链路,并经过链路的出端点离开链路。上述lsrc1表示链路l1的入端点,ldst1表示链路l1的出端点;lsrc2表示链路l2的入端点,ldst2表示链路l2的出端点。上述子路径中,l1和l2是已知的链路,无需进行路径规划。针对子路径:nsrc→n1、n1→lsrc1、ldst1→n2、n2→lsrc2以及ldst2→ndst,图3所示例子中,由于n1与l1的入端点重合,也就是说n1就是l1的入端点,因此子路径n1→lsrc1实际上是不存在的,因此是无需计算的;同理子路径ldst1→n2和ldst2→ndst也是无需计算的。因此可以确定上述子路径中待规划的子路径包括:nsrc→n1和n2→lsrc2。s203:针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径,其中,sdn网络中的链路包括主路径链路和非主路径链路;主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的。其中,各链路的代价值可以是用户根据实际需求配置的,代价值可以表示流量经过该链路进行转发的成本,例如流量转发费用cost。比如,对于链路l1,该链路转发流量的费用较高,则用户可以将链路l1的代价值设置的较高。本发明实施例中,sdn控制器中可以预先保存sdn网络中各链路的代价值。本发明实施例中,主路径是预先确定的,为了避免备选路径与主路径重复,可以对主路径链路进行代价补偿,主路径链路即主路径经过的链路。具体的,在主路径链路的原始代价值的基础上,提高代价值,一般来说,可以将主路径的代价值调整为在待规划的子路径中最大值,从而使得计算出的备选路径能够排除掉主路径链路。在本发明的一种实施例中,主路径链路的代价值可以根据如下公式进行代价补偿的:c′l=cl+ncavg其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,具体数值可以根据实际需求进行设定,由于业内很少有调度超过10跳的路径,因此可以根据经验设置n=10。cavg表示主路径包含的链路的均值代价值。其中,主路径包含的链路的总代价值除以主路径包含的链路总数量,即可得到主路径包含的链路的均值代价值。用公式可以表示为:cavg=∑cl/n,其中∑cl表示主路径包含的链路的总代价值,n表示主路径包含的链路总数量。后续在计算备选路径时,针对这些主路径链路,均采用代价补偿后的代价值c′l。可见,对主路径经过的链路进行代价补偿,提高主路径链路的代价值,使得计算备选路径时能够尽可能的绕开这些主路径链路,以避免主路径和备选路径相同。进而,在主路径链路代价补偿的基础上,针对每个待规划的子路径,可以根据各链路的代价值,进行备选路径规划,得到预设数目个候选路径。本发明实施例中,由于根据必经路径信息进行了路径划分,针对每个待规划的子路径的算路任务都是独立的,为了代价值最低,可能出现绕行跳数更多的路径,甚至可能出现环路。针对每个待规划的子路径,为了规避环路,可以设定不可选链路和不可选节点,其中不可选链路包括:源节点的入度链路、目的节点的出度链路、必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路;不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点。由此,在本发明的一种实施例中,参见图4,上述步骤s203中的:针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径,具体可以包括以下细化步骤:s401:针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,不可选链路包括:源节点的入度链路、目的节点的出度链路、必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点。其中,节点的入度链路是以该节点为终止节点的链路;节点的出度链路是以该节点为起始节点的链路。因此,源节点的入度链路和目的节点的出度链路需设置为不可选链路,基于同样的理由,待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路也需设置为不可选链路。此外,如上文所述,在根据必经路径信息进行路径划分后,得到的子路径中包含待规划的子路径和无需规划的子路径,特殊的,必经链路也被单独划分为子路径,由于必经链路是已知的链路,无需进行路径规划,因此必经链路不属于待规划的子路径。并且,针对待规划的子路径,在进行路径规划时,不能再将必经链路考虑在内,否则得到的路径规划结果与必经链路拼接之后可能会生成环路。因此,针对每个待规划的子路径,需要将必经链路设置为不可选链路。举例来讲,承接图3所示例子,根据必经路径信息进行路径划分后,得到以下子路径:nsrc→n1、n1→lsrc1、l1、ldst1→n2、n2→lsrc2、l2和ldst2→ndst参见上文分析,上述子路径中待规划的子路径包括:nsrc→n1和n2→lsrc2,在对这两个待规划的子路径进行路径规划时,不能将必经链路l1和l2考虑在内,否则最终路径规划结果可能会出现环路,也就是说,针对待规划的子路径nsrc→n1和n2→lsrc2,需要将必经链路设置为不可选链路,以规避环路。此外,在根据必经路径信息进行路径划分后,相当于得到了相互独立的多个算路任务,针对某一待规划子路径,除该待规划子路径的起始节点和终止节点之外的其他必经节点都属于其他的待规划子路径,因此,在对该待规划子路径进行路径规划时,不应将除待规划子路径的起始节点和终止节点之外的其他必经节点考虑在内,否则不同待规划子路径的路径规划结果拼接之后可能会生成环路。承接图3所示例子,对于待规划的子路径:nsrc→n1,在对该待规划的子路径进行路径规划时,不应将属于另一个待规划子路径的必经节点n2考虑在内,否则最终路径规划结果可能出现环路。s402:针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到预设数目个候选路径。进而排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径。其中,预设的路径规划算法可以是dijkstra算法,采用该算法可以计算得到代价值最低的候选路径。本发明实施例中,由于在将针对各待规划的子路径计算得到的代价值最低的候选路径拼接起来之后,可能无法满足备选路径所需求的质量参数,例如时延、抖动和丢包率等,因此在路径计算过程中,需要计算出更多的次优解,以便为后续算法提供选择。具体的,可以采用偏移路径算法计算其他候选路径。例如,若路径p包含n条链路,将路径p的每一链路依次设置为排除链路,重新采用预设的路径规划算法进行计算,则可得到n条次优路径;如果将得到的n条次优路径的链路依次设置为排除链路,再次进行上述路径规划计算,就可以得到大量的次优解。本发明实施例中,可以预先设置候选路径的数目,在代价值最低的候选路径的基础上,采用上述偏移路径算法计算其他候选路径,直到得到预设数目个候选路径。s204:按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。本发明实施例中,针对每个待规划的子路径,都优先选择代价值低的候选路径,因此可以按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接。在路径拼接时,需要连同必经链路一起拼接,得到拼接路径。判断拼接路径是否满足质量参数,如果满足则将拼接路径确定为备选路径。如果不满足,则选择下一代价值的候选路径继续拼接,直到获取满足质量参数的备选路径。结合图3所示实施例,若预设的候选路径的数目为s,则针对待规划的子路径nsrc→n1和n2→lsrc2,所计算的候选路径可以存储至结果栈,结果栈是栈结构的存储空间,用于存储候选路径。可以根据预设的候选路径数目来设置结果栈的深度,例如,当预设的候选路径的数目为s,可以设置结果栈的深度为s。并且,为了便于优先取出代价值低的候选路径进行拼接,可以根据代价值的高低决定候选路径在结果栈中的存储位置,例如按照代价值从低到高的顺序依次排列,代价值最低的候选路径存储在结果栈的最上端。进而可以通过拼接获得完整路径。图3所示例子中,根据必经路径信息进行路径划分后得到的子路径包括:nsrc→n1、n1→lsrc1、l1、ldst1→n2、n2→lsrc2、l2和ldst2→ndst其中n1→lsrc1、ldst1→n2和ldst2→ndst实际是不存在的,因此完整路径包括以下子路径:nsrc→n1、l1、n2→lsrc2和l2。针对子路径nsrc→n1和n2→lsrc2,优先选取结果栈上端的候选路径进行拼接,判断拼接路径是否满足质量参数,如果满足则将拼接路径确定为备选路径。如果不满足质量参数,则可以选择nsrc→n1的结果栈中存储的下一层的候选路径与n2→lsrc2的结果栈中最优路径进行拼接;如果仍不满足质量参数,则可以选择nsrc→n1的结果栈中存储的下一层的候选路径与n2→lsrc2的结果栈中存储的下一层的候选路径继续拼接,直到获取满足质量参数的备选路径。可见,采用本发明实施例提供的sdn网络中数据流的备选路径确定方法,确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。能够在满足质量需求的前提下,确定定制必经节点、规避主路径且总代价值较低备选路径。可以生成更有针对性的灾备方案,实用性更强。在本发明的一种实施例中,在确定sdn网络中待转发数据流的源节点和目的节点之后,可以进行路径质量故计,以大致确定是否容易找到符合质量需求的备选路径,进而设置合适的候选路径的数目,以避免资源浪费。具体的,路径质量估计可以包括以下步骤:步骤11:根据备选路径需求的质量参数,以及sdn网络中各链路的质量参数,计算sdn网络中各链路的质量指标;其中,质量参数可以包括:时延、抖动和丢包率。在本发明的一种实施例中,可以根据如下公式计算链路的质量指标:ql=dl/dp+jl/jp+ll/lp其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示备选路径需求的丢包率参数。容易理解的,链路的时延、抖动和丢包率越小越好,因此上述链路l的质量指标的值越小,表示链路l质量越好。步骤12:以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算总质量指标最低的优选路径。本步骤中,以链路的质量指标替代链路的代价值,根据路径规划算法进行计算,能够得到总质量指标最低的优选路径。其中总质量指标表示优选路径中包含的所有链路的质量指标的总和。其中,路径规划算法也可以是dijkstra算法。步骤13:判断优选路径是否满足备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目。本发明实施例中,如果优选路径能够同时满足备选路径需求的时延、抖动和丢包率的参数,则表示容易找到符合质量需求的备选路径,进而可以设置较大的候选路径的预设数目,例如20;反之,如果优选路径无法同时满足备选路径需求的时延、抖动和丢包率的参数,则大概率无法找到合适的备选路径,在这种情况下,为了避免资源浪费,可以设置较小的候选路径的预设数目,例如10。可见,本发明实施例中,在备选路径规划之前,先进行路径质量故计,以判断是否容易找到符合质量需求的备选路径,进而设置合适的候选路径的数目,尽可能的避免资源浪费。为了便于理解,下面结合具体例子对本发明实施例提供的sdn网络中数据流的备选路径确定方法进行进一步介绍。参见图5,图5为本发明实施例提供的sdn网络中数据流转发的一种示意图。图5所示实施例中,设所有链路的代价值为10,时延2ms,没有丢包率和抖动,其中a-d段时延为5ms。待转发数据流的源节点为a,目的节点为c,时延要求小于8ms。主路径预先选在了a-b-c这条代价值最低的路径上。此时需要计算备选路径作为容灾备份,且要求必须经过链路de。具体的算路步骤如下:步骤(1):对主路径链路进行代价补偿,根据上文中公式,链路ab和bc的代价补偿后的代价值为10+n*cavg,其中当n=10,cavg=10时,链路ab和bc的代价补偿后的代价值为110。步骤(2):根据必经链路de进行路径划分,得到待规划子路径a-d、必经链路de和待规划子路径e-c。步骤(3):进行路径质量估计,得到优选路径a-b-c,显然满足时延要求,因此可以设置较大的候选路径的预设数目。步骤(4):针对待规划的子路径,计算代价值最低的候选路径,算路结果表如下:子路径a→lde1delde2→c最优解addeec其中,lde1表示链路de的入端点,也就是节点d,lde2表示链路de的出端点,也就是节点e。步骤(5):拼接得到路径a-d-e-c,时延累加为9ms,大于要求的8ms,因此本次选路失败,结果写入失败队列,失败队列用于存储不符合质量需求的选路路径。步骤(6):偏移路径算法计算其他候选路径,算路结果表如下:子路径a→lde1ldelde2→c最优解a-ddee-c次优解a-b-ddee-f-c步骤(7):循环校验结果,按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,得到拼接路径:a-d-e-f-c、a-b-d-e-c和a-b-d-e-f-c。其中若a-d-e-f-c时延校验失败,a-b-d-e-c校验成功,则将a-b-d-e-c确定为备选路径。可见,在尽可能避开主路径的情况下满足用户的质量要求,同时分段算路设计也可实现用户的定制化需求,可以达到指定灾备的效果。相应于本发明实施例提供的sdn网络中数据流的备选路径确定方法实施例,本发明实施例还提供了一种sdn网络中数据流的备选路径确定装置,参见图6,装置可以包括以下模块:确定模块601,用于确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,必经路径信息包括必经节点和必经链路;划分模块602,用于根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;规划模块603,用于针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,sdn网络中的链路包括主路径链路和非主路径链路;主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;拼接模块604,用于按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。采用本发明实施例提供的sdn网络中数据流的备选路径确定装置,确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。能够在满足质量需求的前提下,确定定制必经节点、规避主路径且总代价值较低备选路径。可以生成更有针对性的灾备方案,实用性更强。在本发明的一种实施例中,规划模块603,具体可以用于:针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,不可选链路包括:源节点的入度链路、目的节点的出度链路、必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点;针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到预设数目个候选路径。在本发明的一种实施例中,主路径链路的代价值是根据如下公式进行代价补偿的:c′l=cl+ncavg其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,cavg表示主路径包含的链路的均值代价值。在本发明的一种实施例中,在图6所示装置基础上,还可以包括质量估计模块,用于:根据备选路径需求的质量参数,以及sdn网络中各链路的质量参数,计算sdn网络中各链路的质量指标;以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算质量指标最低的优选路径;判断优选路径是否满足备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目;在本发明的一种实施例中,质量参数包括:时延、抖动和丢包率;链路的质量指标根据如下公式进行计算:ql=dl/dp+jl/jp+ll/lp其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示备选路径需求的丢包率参数。本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信,存储器703,用于存放计算机程序;处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,必经路径信息包括必经节点和必经链路;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,sdn网络中的链路包括主路径链路和非主路径链路;主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。采用本发明实施例提供的电子设备,确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。能够在满足质量需求的前提下,确定定制必经节点、规避主路径且总代价值较低备选路径。可以生成更有针对性的灾备方案,实用性更强。在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一sdn网络中数据流的备选路径确定方法的步骤。在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一sdn网络中数据流的备选路径确定方法的步骤。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于sdn网络中数据流的备选路径确定装置、电子设备、计算机可读存储介质及计算机程序产品实施例而言,由于其基本相似于sdn网络中数据流的备选路径确定方法实施例,所以描述的比较简单,相关之处参见sdn网络中数据流的备选路径确定方法实施例的部分说明即可。以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
技术特征:1.一种sdn网络中数据流的备选路径确定方法,其特征在于,所述方法包括:
确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,所述必经路径信息包括必经节点和必经链路;
根据所述源节点、所述目的节点、所述必经节点和所述必经链路进行路径划分,得到多个待规划的子路径;
针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,所述sdn网络中的链路包括主路径链路和非主路径链路;所述主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;
按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。
2.根据权利要求1所述的方法,其特征在于,所述针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径的步骤,包括:
针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,所述不可选链路包括:所述源节点的入度链路、所述目的节点的出度链路、所述必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,所述不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点;
针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在所述代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到所述预设数目个候选路径。
3.根据权利要求1所述的方法,其特征在于,所述主路径链路的代价值是根据如下公式进行代价补偿的:
c′l=cl+ncavg
其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,cavg表示主路径包含的链路的均值代价值。
4.根据权利要求1所述的方法,其特征在于,在确定sdn网络中待转发数据流的源节点和目的节点之后,所述方法还包括:
根据备选路径需求的质量参数,以及所述sdn网络中各链路的质量参数,计算所述sdn网络中各链路的质量指标;
以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算总质量指标最低的优选路径;
判断所述优选路径是否满足所述备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目。
5.根据权利要求4所述的方法,其特征在于,所述质量参数包括:时延、抖动和丢包率;
链路的质量指标根据如下公式进行计算:
ql=dl/dp+jl/jp+ll/lp
其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示所述备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示所述备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示所述备选路径需求的丢包率参数。
6.一种sdn网络中数据流的备选路径确定装置,其特征在于,所述装置包括:
确定模块,用于确定sdn网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息,所述必经路径信息包括必经节点和必经链路;
划分模块,用于根据所述源节点、所述目的节点、所述必经节点和所述必经链路进行路径划分,得到多个待规划的子路径;
规划模块,用于针对每个待规划的子路径,基于预先保存的所述sdn网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;其中,所述sdn网络中的链路包括主路径链路和非主路径链路;所述主路径链路的代价值是在该主路径链路的原始代价值的基础上进行代价补偿得到的;
拼接模块,用于按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。
7.根据权利要求6所述的装置,其特征在于,所述规划模块,具体用于:
针对每个待规划的子路径,确定该待规划的子路径的不可选链路和不可选节点,所述不可选链路包括:所述源节点的入度链路、所述目的节点的出度链路、所述必经链路、该待规划的子路径的起始节点的入度链路和该待规划的子路径的终止节点的出度链路,所述不可选节点包括:除该待规划的子路径的起始节点和终止节点之外的其他必经节点;
针对每个待规划的子路径,排除该待规划的子路径的不可选链路和不可选节点,以该待规划的子路径包含的链路的代价值总和最低为目标,基于预设的路径规划算法,计算代价值最低的候选路径,并在所述代价值最低的候选路径的基础上,采用偏移路径算法计算其他候选路径,直到得到所述预设数目个候选路径。
8.根据权利要求6所述的装置,其特征在于,所述主路径链路的代价值是根据如下公式进行代价补偿的:
c′l=cl+ncavg
其中,c′l表示主路径链路l的代价补偿后的代价值,cl表示主路径链路l的原始代价值,n表示预设系数,cavg表示主路径包含的链路的均值代价值。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:质量估计模块,用于:
根据备选路径需求的质量参数,以及所述sdn网络中各链路的质量参数,计算所述sdn网络中各链路的质量指标;
以备选路径包含的链路的质量指标最小为目标,基于预设的路径规划算法,计算质量指标最低的优选路径;
判断所述优选路径是否满足所述备选路径需求的质量参数,并根据判断结果确定候选路径的预设数目;
其中,所述质量参数包括:时延、抖动和丢包率;
链路的质量指标根据如下公式进行计算:
ql=dl/dp+jl/jp+ll/lp
其中,ql表示链路l的质量指标,dl表示链路l的时延参数,dp表示所述备选路径需求的时延参数,jl表示链路l的抖动参数,jp表示所述备选路径需求的抖动参数,ll表示链路l的丢包率参数,lp表示所述备选路径需求的丢包率参数。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
技术总结本发明实施例提供了一种SDN网络中数据流的备选路径确定方法及装置,确定SDN网络中待转发数据流的源节点、目的节点以及预先设定的针对该数据流的必经路径信息;根据源节点、目的节点、必经节点和必经链路进行路径划分,得到多个待规划的子路径;针对每个待规划的子路径,基于预先保存的SDN网络中各链路的代价值,进行备选路径规划,得到预设数目个候选路径;按照代价值从低到高的顺序,分别选取每个待规划的子路径的候选路径进行路径拼接,并从拼接得到的路径中确定满足质量参数的备选路径。能够在满足质量需求的前提下,确定定制必经节点、规避主路径且总代价值较低备选路径。
技术研发人员:李月光;丁鹏程
受保护的技术使用者:新华三大数据技术有限公司
技术研发日:2020.12.03
技术公布日:2021.04.06