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

一种链路选择系统及方法

文献发布时间:2023-06-19 10:32:14


一种链路选择系统及方法

技术领域

本公开涉及网络通信技术领域,尤其涉及一种链路选择系统及方法。

背景技术

随着企业业务系统的不断发展,企业的IT架构也在不断升级。软件定义广域网(SD-WAN)被越来越多的企业使用。SD-WAN支持对多种类型链路的链路状态进行监测,可以让用户直观的看到链路的实时状态,并为多链路选路提供数据支持。SD-WAN智能路由可以制定不同的选路策略,根据每条链路的健康检查状态进行链路评分,选择满足要求的链路;具体是应用层链路健康检查模块通过系统调用将检查结果频繁的同步给内核,选路模块在内核进行选路计算。然后,应用层链路健康检查模块将检查结果频繁的同步给内核进行选路,系统开销大,消耗较多资源;而且,链路健康检查结果为浮点数,内核中进行浮点数计算,容易产生异常,系统稳定性较差。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种链路选择系统及方法。

本公开提供了一种链路选择系统,所述系统包括运行在应用层的链路检查模块、选路模块和运行在内核层的路由模块;所述链路检查模块,用于对链路的时延、抖动和丢包率进行探测,得到所述链路的状态结果,并将所述状态结果和预先配置的选路策略同步至所述选路模块;其中,所述选路策略中包括待选链路和选路算法;所述选路模块,用于根据所述选路策略和所述状态结果对多条所述待选链路进行选路,当选路得到的目标链路与历史链路不同时,将所述目标链路同步至所述路由模块;其中,所述历史链路为上一次的选路结果;所述路由模块,用于根据所述目标链路进行路由。

进一步,所述选路模块包括判断单元和选路单元;所述判断单元,用于判断所述选路策略对应的多条所述待选链路,是否均已获取对应的状态结果,并在是的情况下,确定多条所述待选链路的目标状态结果;所述选路单元,用于根据所述选路算法和所述目标状态结果对多条所述待选链路进行选路,得到目标链路。

进一步,所述选路算法包括最佳质量算法;所述选路单元,用于基于所述最佳质量算法,并根据所述目标状态结果在多条所述待选链路中确定状态结果为最佳的候选链路;以及,比较所述候选链路的状态结果与所述历史链路的状态结果是否相差在预设阈值内,并在是的情况下,将所述历史链路确定为所述目标链路,以及在否的情况下,将所述候选链路确定为所述目标链路。

进一步,所述选路算法包括质量保证算法;所述选路单元,用于基于所述质量保证算法,并按照所述待选链路的优先级由高到低,判断当前待选链路的所述目标状态结果是否达到预设的质量要求值,并在达到的情况下,将所述当前待选链路确定为目标链路并停止对下一所述待选链路的判断,以及在未达到的情况下,将下一所述待选链路确定为新的当前链路。

进一步,所述选路算法包括会话负载算法;所述选路单元,用于基于所述会话负载算法,并根据所述目标状态结果在多条所述待选链路中确定满足预设链路状态阈值的目标链路。

进一步,所述选路模块还用于:通过写程序PROC文件将所述目标链路同步至所述路由模块。

进一步,所述链路检查模块还用于:通过预设的探测方法对所述链路的时延、抖动和丢包率进行探测,得到所述链路的状态结果;其中,所述探测方法包括:控制报文协议ICMP探测方法或超文本传输协议HTTP探测方法。

本公开提供了一种链路选择方法,所述方法包括:对链路的时延、抖动和丢包率进行探测,得到所述链路的状态结果;根据预先配置的选路策略和所述状态结果对多条待选链路进行选路;其中,所述选路策略中包括所述待选链路和选路算法;当选路得到的目标链路与历史链路不同时,将所述目标链路同步至路由模块,以使所述路由模块根据所述目标链路进行路由;其中,所述历史链路为上一次的选路结果。

本公开提供了一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行上述方法。

本公开提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法。

本公开实施例提供的技术方案与现有技术相比具有如下优点:

本公开实施例提供了一种链路选择系统及方法,该系统包括运行在应用层的链路检查模块、选路模块和运行在内核层的路由模块。链路检查模块用于对链路的时延、抖动和丢包率进行探测,得到链路的状态结果,并将状态结果和预先配置的选路策略同步至选路模块,该选路策略中包括待选链路和选路算法;选路模块用于根据选路策略和状态结果对多条待选链路进行选路,当选路得到的目标链路与历史链路不同时,将目标链路同步至路由模块,该历史链路为上一次的选路结果。在本实施例中,将涉及到浮点数运算的链路探测过程和链路选路过程,通过运行在应用层的模块(即:链路检查模块和选路模块)实现,避免了在内核层中频繁地进行浮点运算,能够提高系统稳定性;以及,相比于现有技术中,通过系统调用将检查结果频繁的同步给内核进行选路的方式,本实施例只有当选路得到的目标链路与历史链路不同时,才将目标链路同步至内核层的路由模块,也即只有当选路结果发生变化后才通知内核层,由此大幅度减少系统调用次数,从而减少系统开销,提高性能。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种链路选择系统结构框图;

图2为本公开实施例提供的一种链路选择方法流程图;

图3为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。

参照图1所示的链路选择系统结构框图,本实施例提供的一种链路选择系统可以包括运行在应用层的链路检查模块102、选路模块104和运行在内核层的路由模块106。

链路检查模块102,用于对链路的时延、抖动和丢包率进行探测,得到链路的状态结果,并将状态结果和预先配置的选路策略同步至选路模块104。其中,选路策略中包括选择出的待进行选路的待选链路和选路算法。选路策略可以是用户根据实际业务需求预先配置好的,且当变更选路策略后,可以将变更后的新选路策略同步至选路模块104。

在本实施中,链路检查模块102具体用于通过预设的探测方法对链路的时延、抖动和丢包率进行探测,得到链路的状态结果;其中,探测方法包括:ICMP(Internet ControlMessage Protocol,控制报文协议)探测方法或HTTP(Hypertext Transfer Protocol,超文本传输协议)探测方法。链路检查模块102通过探测得到链路的包括时延、抖动和丢包率的状态结果后,可以将该状态结果通过任务队列同步至选路模块104。

上述状态结果为浮点数,本实施例将探测链路的状态结果的过程配置于应用层中实现,能够避免在内核中频繁进行浮点运算,从而提高了系统稳定性。

选路模块104,用于根据选路策略和状态结果对多条待选链路进行选路,当选路得到的目标链路与历史链路不同时,将目标链路同步至路由模块106;其中,历史链路为上一次的选路结果。

在本实施例中,选路模块104通过任务队列获取链路检查模块102中实时的状态结果,并判断选路策略对应的多条待选链路,是否均已获取对应的状态结果。如果是,表示该选路策略下所有的待选链路均已完成状态结果的探测,在此情况下,可以确定该选路策略对应的多条待选链路的目标状态结果。而后,按照诸如最佳质量算法、质量保证算法或会话负载算法等预设的选路算法,并结合每条待选链路的目标状态结果,在多条待选链路中选出满足选路算法的目标链路。上述利用选路算法对多条待选链路进行选路的过程为浮点运算过程,本实施例将该过程配置于应用层中实现,能够避免在内核中频繁的进行浮点运算,从而提高了系统稳定性。

如果本次选出的目标链路与上一次选出的历史链路不同,则将目标链路通过系统调用同步至路由模块106;如果本次的目标链路与上一次的历史链路相同,则不进行信息同步,由此减少应用层与内核层之间频繁的系统调用,从而能够减少系统开销。可以理解,上述历史链路的选出方式与本次选目标链路的方式相同。本实施例通过比较目标链路和历史链路,只有当选路得到的目标链路与历史链路不同时,才将目标链路同步至内核层的路由模块106,也即只有当选路结果发生变化后才通知内核层,由此大幅度减少系统调用次数,从而减少系统开销,提高性能。

选路模块104在将目标链路同步至路由模块106时,具体可以通过写PROC文件将目标链路同步至路由模块106。

路由模块106,用于根据目标链路进行路由。具体的,当本次的目标链路与历史链路不同时,将目标链路同步至路由模块106,以使路由模块106根据目标链路进行路由。此外,当本次的目标链路与上次的历史链路相同时,不会进行信息同步,路由模块106将继续根据历史链路进行路由。

本公开实施例提供的链路选择系统,包括运行在应用层的链路检查模块、选路模块和运行在内核层的路由模块。链路检查模块用于对链路的时延、抖动和丢包率进行探测,得到链路的状态结果,并将状态结果和预先配置的选路策略同步至选路模块,该选路策略中包括待选链路和选路算法;选路模块用于根据选路策略和状态结果对多条待选链路进行选路,当本次选路得到的目标链路与上次的历史链路不同时,将目标链路同步至路由模块。在本实施例中,将涉及到浮点数运算的链路探测过程和链路选路过程,通过运行在应用层的模块(即:链路检查模块和选路模块)实现,避免了在内核层中频繁地进行浮点运算,能够提高系统稳定性;以及,相比于现有技术中,通过系统调用将检查结果频繁的同步给内核层进行选路的方式,本实施例只有当选路得到的目标链路与历史链路不同时,才将目标链路同步至内核层的路由模块,也即只有当选路结果发生变化后才通知内核层,由此大幅度减少系统调用次数,从而减少系统开销,提高性能。

在一种实施例中,上述选路模块包括判断单元和选路单元。

判断单元,用于判断选路策略对应的多条待选链路,是否均已获取对应的状态结果,并在是的情况下,确定多条待选链路的目标状态结果。

在具体实现时,链路检查模块每探测得到一条链路的状态结果,均生成该状态结果的标识,且不同链路的状态结果对应不同的标识。通常待探测的链路是确定的,基于此,可以根据上述标识判断选路策略对应的多条待选链路,是否均已获取对应的状态结果。在确定该选路策略对应的多条待选链路均已探测完成时,将该选路策略对应的多条待选链路的目标状态结果进行统一收集。

选路单元,用于根据选路算法和目标状态结果对多条待选链路进行选路,得到目标链路。

在本实施例中,对上述选路单元根据选路算法和目标状态结果对多条待选链路进行选路的过程展开描述,具体可参照如下多种方式。

在一种实现方式中,选路算法包括最佳质量算法;选路单元具体用于实现如下步骤a和b:

步骤a,基于最佳质量算法,并根据目标状态结果在多条待选链路中确定状态结果为最佳的候选链路。以目标状态结果为时延结果为例,基于最佳质量算法,根据各待选链路的时延结果,在多条待选链路中确定时延最短的链路为最佳的候选链路。

步骤b,比较候选链路的状态结果与历史链路的状态结果是否相差在预设阈值内,并在是的情况下,将历史链路确定为目标链路,以及在否的情况下,将候选链路确定为目标链路。

具体的,比较候选链路的时延结果是否优于历史链路的时延结果;如果否,将历史链路确定为目标链路;如果是,则继续比较两条链路的时延相差是否在预设阈值内。如果相差在预设阈值内,表示候选链路和历史链路的质量相差不大,为了进一步减少因选路结果改变引起的应用层与内核层之间的调用,本实施例可以将历史链路确定为目标链路。在此情况下,本次选出的目标链路即为上次的历史链路,选路结果不会发生改变,从而无需进行信息同步,减少应用层与内核层之间的系统调用,从而进一步地减少系统开销。当然,如果候选链路的时延结果与历史链路的时延结果相差超过预设阈值,表示候选链路具有明显的质量优势,从而将本次选出的候选链路确定为目标链路。

在另一种实现方式中,选路算法包括质量保证算法;选路单元具体用于:

基于质量保证算法,并按照待选链路的优先级由高到低,判断当前待选链路的目标状态结果是否达到预设的质量要求值,并在达到的情况下,将当前待选链路确定为目标链路并停止对下一待选链路的判断,以及在未达到的情况下,将下一待选链路确定为新的当前链路。

具体的,假设有三条待选链路,且按照优先级由高到低为:待选链路A、待选链路B和待选链路C,在此情况下,基于质量保证算法,首先将待选链路A作为当前待选链路,判断待选链路A的状态结果是否达到预设的质量要求值。如果达到,将待选链路A确定为目标链路并停止对下一待选链路的判断;如果未达到,则按照优先级,将待选链路B作为新的当前待选链路,继续判断待选链路B的状态结果是否达到预设的质量要求值。

接下来,比较本次基于质量保证算法选出的目标链路与上一次的历史链路是否相同,且只有在不同的情况下,将目标链路同步至路由模块。

在又一种实现方式中,选路算法包括会话负载算法;选路单元具体用于:

基于会话负载算法,并根据目标状态结果在多条待选链路中确定满足预设链路状态阈值的目标链路。具体的,基于会话负载算法并根据每条待选链路的目标状态结果,对每条待选链路均判断是否满足预设链路状态阈值,并将所有满足链路状态阈值的待选链路均确定为目标链路,从而,目标链路可以有多条。

接下来,比较本次基于会话负载算法选出的多条目标链路,是否均与上一次的历史链路相同。如果存在至少一条目标链路与历史链路不同,则确定目标链路与历史链路不同,选路结果发生改变。在此情况下,将目标链路同步至路由模块。如果多条目标链路与多条历史链路都相同,表示选路结果没有发生改变,无需通知内核层选路结果,减少系统开销。

综上,本实施例提供的链路选择系统,将涉及到浮点数运算的链路探测过程和链路选路过程,分别通过运行在应用层的链路检查模块和选路模块实现,避免了在内核层中频繁地进行浮点运算,能够提高系统稳定性。以及,本实施例只有当选路得到的目标链路与历史链路不同时,才将目标链路同步至内核层的路由模块,也即只有当选路结果发生变化后才通知内核层,由此大幅度减少系统调用次数,从而减少系统开销,提高性能。此外在选路过程中,提供最佳质量算法、质量保证算法和会话负载算法等多种选路算法,方便用户灵活的选用适合的选路算法。

根据上述实施例提供的链路选择系统,如图2所示,本实施例提供一种链路选择方法,该方法包括如下步骤:

步骤S202,对链路的时延、抖动和丢包率进行探测,得到链路的状态结果。

步骤S204,根据预先配置的选路策略和状态结果对多条待选链路进行选路;其中,选路策略中包括待选链路和选路算法。具体的,(1)从任务队列获取链路的状态结果。(2)判断选路策略对应的多条待选链路,是否均已获取对应的状态结果,并在是的情况下,执行如下步骤(3):确定多条待选链路的目标状态结果,以及在否的情况下,继续获取状态结果。(4)根据选路算法和目标状态结果对多条待选链路进行选路,得到目标链路。其中,选路算法包括:最佳质量算法、质量保证算法或会话负载算法。

步骤S206,当选路得到的目标链路与历史链路不同时,将目标链路同步至路由模块,以使路由模块根据目标链路进行路由;其中,历史链路为上一次的选路结果。具体的,(5)比较目标链路与历史链路是否相同;如果相同,表示选路结果没有改变,无需更新信息,确定退出;如果不相同,执行如下步骤(6):通过写PROC文件将目标链路同步至路由模块。

本实施例提供的链路选择方法,将涉及到浮点数运算的链路探测过程和链路选路过程,分别通过运行在应用层的链路检查模块和选路模块实现,避免了在内核层中频繁地进行浮点运算,能够提高系统稳定性。以及,本实施例只有当选路得到的目标链路与历史链路不同时,才将目标链路同步至内核层的路由模块,也即只有当选路结果发生变化后才通知内核层,由此大幅度减少系统调用次数,从而减少系统开销,提高性能。

图3为本公开实施例提供的一种电子设备的结构示意图。如图3所示,电子设备300包括一个或多个处理器301和存储器302。

处理器301可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备300中的其他组件以执行期望的功能。

存储器302可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器301可以运行所述程序指令,以实现上文所述的本公开的实施例的链路选择方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

在一个示例中,电子设备300还可以包括:输入装置303和输出装置304,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

此外,该输入装置303还可以包括例如键盘、鼠标等等。

该输出装置304可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置304可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图3中仅示出了该电子设备300中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备300还可以包括任何其他适当的组件。

进一步,本实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述链路选择方法。

本公开实施例所提供的一种链路选择方法、电子设备及介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的系统,具体实现可参见系统实施例,在此不再赘述。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 基于链路选择和破碎重组的多链路传输方法及系统
  • 基于链路选择和破碎重组的多链路传输方法及系统
技术分类

06120112587710