1.本技术涉及网络通信技术领域,具体而言,涉及一种链路选择方法、装置、电子设备及存储介质。
背景技术:2.为了避免网络故障带来的网络可用性风险,以及解决网络带宽不足带来的网络访问问题,企业往往会使用多个运营商网络,因此涉及到在多条链路中选择一条链路,合理运用网络资源。传统的策略路由可以在一定程度上实现静态选路,业务流量优先从第一条链路外出,当该链路异常后,流量切换到第二条链路外出,直至第一条链路恢复之后切换回第一条链路。目前的这种链路选择方法会发生多次链路切换,导致业务波动。
技术实现要素:3.本发明实施例的目的在于一种链路选择方法、装置、电子设备及存储介质,基于健康检查探测时间进行链路选择,改善在多出口链路的情况下,因为链路动荡而使外出流量在不同链路之间来回切换的问题。
4.第一方面,本技术实施例提供了一种链路选择方法,包括:获得用于通信的待选链路,以及待选链路的链路健康时间;链路健康时间为检测到链路处于正常状态,对待选链路的正常状态进行计时获得的;根据链路健康时间,从待选链路中确定目标链路;目标链路用于承载通信流量。
5.在上述的实现过程中,根据链路健康时间,从待选链路中确定目标链路,外出的流量不会因为链路动荡而频繁切换,减少外出流量因链路异常从而在不同链路间来回切换的次数,保证业务流量稳定持续外出。
6.可选的,在本技术实施例中,在根据链路健康时间,从待选链路中确定目标链路之前,方法还包括:从待选链路中确定首选链路,并将通信流量分发至首选链路;若首选链路发生异常,则将首选链路的链路健康时间重置;在根据链路健康时间,从待选链路中确定目标链路之后,方法还包括:将通信流量迁移至目标链路。
7.在上述的实现过程中,在首选链路发生异常后,则将首选链路的链路健康时间重置,并根据链路健康时间,从待选链路中确定目标链路,将通信流量迁移至目标链路。根据链路健康时间确定目标链路在一定程度上选择了稳定性较高的链路作为目标链路,以使业务更加稳定;并且在首选链路恢复之后,无需将流量再次迁移回首选链路,改善多次切换链路导致业务不稳定的情况。
8.可选的,在本技术实施例中,根据链路健康时间,从待选链路中确定目标链路,包括:将链路健康时间最长的待选链路作为目标链路。
9.在上述的实现过程中,链路健康时间可以从一定程度上反映一个时间段内链路的稳定情况,通过将链路健康时间最长的待选链路作为目标链路,提高业务的稳定性。
10.可选的,在本技术实施例中,方法还包括:若首选链路恢复健康状态,则对首选链
路的健康时间重新计时,获得首选链路健康时间;若目标链路未发生异常,则由目标链路继续承载通信流量。
11.在上述的实现过程中,首选链路恢复健康状态,则对首选链路的健康时间重新计时,而目标链路的链路健康时间持续计时,目标链路的链路健康时间大于首选链路,无需将流量迁移至目标链路,改善流量因为链路动荡而频繁切换,减少外出流量因链路异常从而在不同链路间来回切换的次数,保证业务流量稳定持续外出。
12.可选的,在本技术实施例中,方法还包括:接收链路手动切换请求,链路手动切换请求用于将承载通信流量的目标链路进行手动切换;将目标链路的链路健康时间进行重置;根据待选链路的链路健康时间确定新的目标链路,将通信流量迁移至新的目标链路。
13.在上述的实现过程中,通过控制链路的链路健康时间实现链路的切换,丰富链路负载均衡算法,使链路负载均衡可以适用于更多的场景。
14.可选的,在本技术实施例中,在接收链路手动切换请求之后,方法还包括:若链路手动切换请求中包括待切换目标链路;待切换目标链路为用户指定的新的目标链路;则将除待切换目标链路以外的待选链路,以及目标链路的链路健康时间进行批量重置,以使通信流量迁移至待切换目标链路。
15.在上述的实现过程中,可以通过将除待切换目标链路以外的待选链路,以及目标链路的链路健康时间进行批量重置,以使通信流量迁移至待切换目标链路,实现将通信流量迁移至用户指定的新的目标链路,实现链路的随意切换。
16.可选的,在本技术实施例中,在获得用于通信的待选链路,以及待选链路的链路健康时间之后,方法还包括:若检测到链路处于异常状态,则将待选链路进行剔除;直至检测到处于异常状态的待选链路恢复正常状态,则开始对恢复正常状态的待选链路进行正常状态计时。
17.在上述的实现过程中,对待选链路进行的链路健康状态进行实时检测,对处于异常状态的链路进行剔除,确保链路池中的待选链路都是可以进行通信的健康状态的链路。
18.第二方面,本技术实施例还提供了一种链路选择装置,包括:获得模块,用于获得用于通信的待选链路,以及待选链路的链路健康时间;链路健康时间为检测到链路处于正常状态,对待选链路的正常状态进行计时获得的;确定链路模块,用于根据链路健康时间,从待选链路中确定目标链路;目标链路用于承载通信流量。
19.第三方面,本技术实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
20.第四方面,本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上面描述的方法。
21.采用本技术提供链路选择方法、装置、电子设备及存储介质,根据链路健康时间,从待选链路中确定目标链路,减少外出流量因链路异常从而在不同链路间来回切换的次数,保证业务流量稳定持续外出。根据链路健康时间确定目标链路在一定程度上选择了稳定性较高的链路作为目标链路,以使业务更加稳定;并且在首选链路恢复之后,无需将流量再次迁移回首选链路,改善多次切换链路导致业务不稳定的情况。
附图说明
22.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
23.图1为本技术实施例提供的一种链路选择方法的流程示意图;
24.图2为本技术实施例提供的基于链路健康时间进行链路选择方法的流程示意图;
25.图3为本技术实施例提供的链路选择装置的结构示意图;
26.图4为本技术实施例提供的电子设备的结构示意图。
具体实施方式
27.下面将结合附图对本技术技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本技术的技术方案,因此只作为示例,而不能以此来限制本技术的保护范围。
28.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
29.在本技术实施例的描述中,技术术语“第一”、“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本技术实施例的描述中,“多个”的含义是两个及以上,除非另有明确具体的限定。
30.请参见图1示出的本技术实施例提供的一种链路选择方法的流程示意图。本技术实施例提供的链路选择方法可以应用于电子设备,该电子设备可以包括终端以及服务器;其中终端具体可以为智能手机、平板电脑、计算机、个人数字助理(personal digital assitant,pda)等;服务器具体可以为应用服务器,也可以为web服务器。
31.步骤s110:获得用于通信的待选链路,以及待选链路的链路健康时间;链路健康时间为检测到链路处于正常状态,对待选链路的正常状态进行计时获得的。
32.网络中两个节点之间的物理通道称为通信链路。通信链路包括传输的物理媒体、链路协议、有关设备以及有关计算机程序。通信链路即为本技术实施例中用于通信的待选链路。
33.通常一个企业用户可能会在业务出口处的网络设备上部署多个待选链路,比如联通出口链路以及电信出口链路等。业务出口处的网络设备需要定期或者依据其他时间策略来检查各个待选链路的健康状况。对待选链路进行链路健康检查之后,确认链路为正常可通信的状态,即可对链路的正常状态进行计时,获得每一条链路的链路健康时间。
34.可以通过计时表对每一条待选链路的链路健康时间进行实时记录,若待选链路发生异常,则需要将链路健康时间进行重置;若待选链路未发生异常,则可以对链路健康时间进行持续计时。
35.步骤s120:根据链路健康时间,从待选链路中确定目标链路;目标链路用于承载通信流量。
36.其中,目标链路可以是在首选链路异常之后从多条备选链路中确定的用于切换的
链路;目标链路还可以是在流量还未进行转发时,且没有设定首选流量的情况下,根据每一待选链路的链路健康时间确定的首选链路。需要说明的是,如果是目标链路是首选链路异常之后,在多条备选链路中确定的用于切换的链路,则首选链路在恢复正常状态之后,无需将通信流量自动迁移至首选链路,而是由该目标链路继续承接通信流量。
37.根据链路健康时间从待选链路中确定目标链路的实施方式可以包括:第一种方式:将链路健康时间最长的链路,作为目标链路;第二种方式:将链路健康时间重置次数最少的链路,作为目标链路。将链路健康时间重置即为在链路发生异常后,将该链路的链路健康时间重置为0,因此,链路健康时间重置次数最少则表示该链路发生异常的次数最少,链路发生异常的次数最少即表征该链路较为稳定,将其作为目标链路。在第二种确定目标链路的方式中,即使链路的链路健康时间不是最长的,也可以作为目标链路。
38.在上述的实现过程中,根据链路健康时间,从待选链路中确定目标链路,外出的流量不会因为链路动荡而频繁切换,减少外出流量因链路异常从而在不同链路间来回切换的次数,保证业务流量稳定持续外出。
39.可选的,在本技术实施例中,在根据链路健康时间,从待选链路中确定目标链路之前,方法还包括:从待选链路中确定首选链路,并将通信流量分发至首选链路;若首选链路发生异常,则将首选链路的链路健康时间重置;在根据链路健康时间,从待选链路中确定目标链路之后,方法还包括:将通信流量迁移至目标链路。
40.在具体的实现过程中:在确定首选链路前,待选链路中的所有待选链路都会进行链路健康检查,若检测到链路处于异常状态,则将待选链路进行剔除,仅将处于正常状态的链路作为待选链路,并开始对链路池中的所有正常状态的待选链路进行正常状态计时。随后可以手动指定首选链路,在手动指定首选链路时,可以不比较链路健康时间,仅需确保首选链路处于正常状态。
41.在确定首选链路后,由首选链路承接通信流量,直至首选链路发生异常,则将首选链路的链路健康时间重置,链路健康时间重置即为将首选链路的链路健康时间设置为0,该链路健康时间重置动作可以在首选链路发生异常之后自动触发。并且可以对首选链路进行实时检测,确认首选链路是否恢复正常状态,若检测到首选链路恢复正常状态,则对首选链路的正常状态时间进行重新计时。
42.同时在首选链路发生异常后,根据链路健康时间,从待选链路中确定目标链路,具体实现方式可以为选择备选链路中链路健康时间最长的链路,作为目标链路。之后将通信流量迁移至目标链路,以使业务正常运行。目标链路承接通信流量之后,目标链路的链路健康时间持续计时,链路池中的其他备选链路的链路健康时间同样持续计时。
43.在上述的实现过程中,在首选链路发生异常后,则将首选链路的链路健康时间重置,并根据链路健康时间,从待选链路中确定目标链路,将通信流量迁移至目标链路。根据链路健康时间确定目标链路在一定程度上选择了稳定性较高的链路作为目标链路,以使业务更加稳定;并且在首选链路恢复之后,无需将流量再次迁移回首选链路,改善多次切换链路导致业务不稳定的情况。
44.可选的,在本技术实施例中,根据链路健康时间,从待选链路中确定目标链路,包括:将链路健康时间最长的待选链路作为目标链路。
45.在具体的实现过程中:在首选链路发生异常之后,需要将流量切换至目标链路,可
以将链路健康时间最长的待选链路作为目标链路。在待选链路进行链路健康检查之后即可以进行正常状态的计时,若中途待选链路发生异常,则待选链路的健康状态时间进行重置,直至该待选链路恢复正常之后,且通过了链路健康检查,则可以对该待选链路进行重新计时。若链路未发生异常,则会持续计时。因此,链路健康时间可以从一定程度上反映一个时间段内链路的稳定情况,在未指定首选链路的情况下,可以将链路健康时间最长的待选链路作为首选链路,
46.在一个可选的实施例中,若链路发生多次异常,则链路健康时间多次重置,同时可以对该待选链路发生异常的次数进行标记,当异常次数达到阈值后,则将该链路剔除,直至待选链路恢复到较为稳定的状态,例如在预设的周期内未发生异常,则可以将该被踢出的链路重新作为待选链路。
47.在上述的实现过程中,链路健康时间可以从一定程度上反映一个时间段内链路的稳定情况,通过将链路健康时间最长的待选链路作为目标链路,提高业务的稳定性。
48.可选的,在本技术实施例中,方法还包括:若首选链路恢复健康状态,则对首选链路的健康时间重新计时,获得首选链路健康时间;若目标链路未发生异常,则由目标链路继续承载通信流量。
49.在具体的实现过程中:若首选链路发生异常,则首选链路的链路健康时间重置,并且对首选链路进行实时检测,确认首选链路是否恢复正常状态,待首选链路再次通过链路健康检查,即检查结果表征首选链路恢复健康状态,则对首选链路的健康时间重新计时,获得首选链路健康时间。
50.若目标链路未发生异常,则目标链路的链路健康时间持续计时,而首选链路的链路健康时间是在恢复健康之后重新计时的,因此目标链路的链路健康时间大于首选链路,则无需将流量迁移至目标链路,而是由目标链路继续承载通信流量。
51.在一个可选的实施例中,若正在承接通信流量的待选链路也发生异常,此时待选链路的正常时间重置为0,此时可以通过手动设置健康事件的方式将通信流量迁回至首选链路;也可以获取首选链路以及其他的备选链路的链路健康时间,获得链路健康时间最长的作为下一个目标链路,将流量迁移至下一个目标链路。
52.在上述的实现过程中,首选链路恢复健康状态,则对首选链路的健康时间重新计时,而目标链路的链路健康时间持续计时,目标链路的链路健康时间大于首选链路,无需将流量迁移至目标链路,改善流量因为链路动荡而频繁切换,减少外出流量因链路异常从而在不同链路间来回切换的次数,保证业务流量稳定持续外出。
53.可选的,在本技术实施例中,方法还包括:接收链路手动切换请求,链路手动切换请求用于将承载通信流量的目标链路进行手动切换;将目标链路的链路健康时间进行重置;根据待选链路的链路健康时间确定新的目标链路,将通信流量迁移至新的目标链路。
54.在具体的实现过程中:若流量从目标链路外出,且目标链路不发生异常,则不会进行自动切换链路的动作。此时,若想将流量迁移至其他待选链路,可以发起手动切换请求,手动切换请求可以确定指定链路,即表示将流量从目标链路迁移至指定链路;手动切换请求也可以不含指定链路,即表示将流量从目标链路迁移至新的目标链路。
55.具体的切换方式例如:将目标链路的链路健康时间进行重置,则目标链路的链路健康时间为0,若手动切换请求不含指定链路,此时根据链路池中其他待选链路的链路健康
时间确定新的目标链路,新的目标链路可以是目标链路中链路健康时间最长的,将通信流量迁移至新的目标链路,由新的目标链路承接通信流量。
56.在上述的实现过程中,通过控制链路的链路健康时间实现链路的切换,丰富链路负载均衡算法,使链路负载均衡可以适用于更多的场景。
57.可选的,在本技术实施例中,在接收链路手动切换请求之后,方法还包括:若链路手动切换请求中包括待切换目标链路;待切换目标链路为用户指定的新的目标链路;则将除待切换目标链路以外的待选链路,以及目标链路的链路健康时间进行批量重置,以使通信流量迁移至待切换目标链路。
58.在具体的实现过程中:用户在指定新的目标链路时,需要确认待切换目标链路处于正常状态,但无需比较链路健康时间。也就是说即使该待选链路的链路健康时间不是最长的,也可以作为用户指定的新的目标链路。
59.确定待切换目标链路之后,将链路池中其他正在健康计时的待选链路的链路健康时间重置,并且将目标链路的链路健康时间也重置,此过程可以批量操作。待切换目标链路的链路健康时间并未重置,则待切换目标链路的链路健康时间为最长,将通信流量迁移至待切换目标链路。
60.在上述的实现过程中,可以通过将除待切换目标链路以外的待选链路,以及目标链路的链路健康时间进行批量重置,以使通信流量迁移至待切换目标链路,实现将通信流量迁移至用户指定的新的目标链路,实现链路的随意切换。
61.可选的,在本技术实施例中,在获得用于通信的待选链路,以及待选链路的链路健康时间之后,方法还包括:若检测到链路处于异常状态,则将待选链路进行剔除;直至检测到处于异常状态的待选链路恢复正常状态,则开始对恢复正常状态的待选链路进行正常状态计时。
62.在具体的实现过程中:获得用于通信的待选链路,并对待选链路进行链路健康检查,若检查结果表征该待选链路处于异常状态,则将待选链路进行剔除,在该待选链路恢复正常之前即不会将其作为用于通信的待选链路。直至检测到处于异常状态的待选链路恢复正常状态,则开始对恢复正常状态的待选链路进行正常状态计时,可以将其作为待选链路。
63.在上述的实现过程中,对待选链路进行的链路健康状态进行实时检测,对处于异常状态的链路进行剔除,确保链路池中的待选链路都是可以进行通信的健康状态的链路。
64.请参见图2示出的本技术实施例提供的基于链路健康时间进行链路选择方法的流程示意图。
65.在一个可选的实施例中,当出口链路存在多运营商的情况时,为每条链路配置健康检查方法,当链路状态为正常可用时,设备链路状态正常计时器开始计时,维护链路状态正常的时间表,时间表上记录所有处于正常状态的链路的状态健康时间。
66.在收到链路外出的流量之后,确认是否选择基于链路健康时间进行链路选择方法,若否,则按照其他的链路选择方法进行选路。若选择基于链路健康时间进行链路选择,则判断链路池中用于通信的所有待选链路进行链路健康检查,确认链路池中的链路是否处于正常状态,对处于健康状态的链路进行链路健康计时,将处于异常状态的链路进行剔除。
67.可以理解的,若链路池中仅包括两条链路,且检测到其中一条处于异常状态,则流量选择处于健康状态的另外一条链路外出。若链路池中的链路均为正常的,可以手动指定
首选链路和备选链路,此时流量从首选链路外出,且无需比较链路健康时间。也可以不指定首选链路,通过比较链路状态正常的时间确定链路,外出流量选择链路状态正常时间长的链路外出。
68.当处于转发状态的链路异常后,例如首选链路的状态发生异常后,该首选链路的健康状态正常时间重置为0,此时,在链路池中找到链路健康时间最长的链路作为目标链路,所有的业务流量从目标链路外出;当首选链路的状态恢复正常后,首选链路的计时器重新开始计时,但是因为首选链路状态正常的时间小于目标链路的状态正常时间,所以流量保持在目标链路外出,不会来回切换,从而保证用户业务的稳定。
69.还可以设置链路状态正常时间的手动重置开关,当需要把流量迁回到指定链路时,只需要重置当前正在转发的链路的健康时间,即可实现业务流量的迁移。
70.在一些应用场景中,例如直播和视频通话等场景,对网速和网络的稳定性要求比较高,不希望出现网络动荡的情况。一般设置流量从一个首选链路外出,其他链路作为备份。一旦承载业务流量的链路发生问题时,其他健康的链路将继续承载所有的网络访问。而首选链路恢复后,若流量再次迁移至首选链路,会影响直播的业务稳定性,因此通过本技术实施例根据链路健康时间,从待选链路中确定目标链路,减少外出流量因链路异常导致的不同链路间来回切换的次数,一定程度上保证业务流量稳定持续外出。
71.请参见图3示出的本技术实施例提供的链路选择装置的结构示意图;本技术实施例提供了一种链路选择装置200,包括:
72.获得模块,用于获得用于通信的待选链路,以及待选链路的链路健康时间;链路健康时间为检测到链路处于正常状态,对待选链路的正常状态进行计时获得的;
73.确定链路模块,用于根据链路健康时间,从待选链路中确定目标链路;目标链路用于承载通信流量。
74.可选地,在本技术实施例中,链路选择装置,还包括:链路切换模块,用于从待选链路中确定首选链路,并将通信流量分发至首选链路;若首选链路发生异常,则将首选链路的链路健康时间重置;在根据链路健康时间,从待选链路中确定目标链路之后,方法还包括:将通信流量迁移至目标链路。
75.可选地,在本技术实施例中,链路选择装置,确定链路模块,具体用于将链路健康时间最长的待选链路作为目标链路。
76.可选地,在本技术实施例中,链路选择装置,还包括:处理模块,用于若首选链路恢复健康状态,则对首选链路的健康时间重新计时,获得首选链路健康时间;若目标链路未发生异常,则由目标链路继续承载通信流量。
77.可选地,在本技术实施例中,链路选择装置,还包括:手动切换模块,用于接收链路手动切换请求,链路手动切换请求用于将承载通信流量的目标链路进行手动切换;将目标链路的链路健康时间进行重置;根据待选链路的链路健康时间确定新的目标链路,将通信流量迁移至新的目标链路。
78.可选地,在本技术实施例中,链路选择装置,指定切换模块,用于若链路手动切换请求中包括待切换目标链路;待切换目标链路为用户指定的新的目标链路;则将除待切换目标链路以外的待选链路,以及目标链路的链路健康时间进行批量重置,以使通信流量迁移至待切换目标链路。
79.可选地,在本技术实施例中,链路选择装置,检测模块,用于若检测到链路处于异常状态,则将待选链路进行剔除;直至检测到处于异常状态的待选链路恢复正常状态,则开始对恢复正常状态的待选链路进行正常状态计时。
80.应理解的是,该装置与上述的链路选择方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,os)中的软件功能模块。
81.请参见图4示出的本技术实施例提供的电子设备的结构示意图。本技术实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
82.本技术实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上的方法。
83.其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random accessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
84.本技术实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
85.另外,在本技术实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
86.以上的描述,仅为本技术实施例的可选实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。