选择链路的方法、装置及存储介质与流程

文档序号:16582633发布日期:2019-01-14 18:06阅读:163来源:国知局
选择链路的方法、装置及存储介质与流程

本申请涉及通信技术领域,特别涉及选择链路的方法、装置及存储介质。



背景技术:

随着公司业务的发展,很多公司会设立多个分部,分别设置在不的地理区域,例如:设置在不同的城市,或者设置在不同国家等。分部与总部之间,或者分部与分部之间,通常采用ipsec(internetprotocolsecurity)协议来实现远程通信,对传输的数据进行加密和验证,以确保数据传输的安全性。

在使用ipsec协议进行通信前,先确定进行远程通信的两个端设备,两个端设备之间存在多条链路,从多条链路中选择一条链路建立ipsec隧道,在所建立的ipsec隧道上采用ipsec协议实现远程安全通信。其中,两个端设备之间的链路质量,会影响到远程通信的稳定性,若建立ipsec隧道的链路故障,ipsec隧道断开,则会导致两个端设备之间的远程通信中断。从而,分部与总部之间,或者分部与分部之间的数据无法传输,影响公司业务的正常开展。

因此,需要探测两个端设备之间存在多条链路的链路质量,从多条链路中选择质量好的链路建立ipsec隧道。探测链路质量的方法如下:选择两个端设备之间的一条链路建立ipsec隧道,一个端设备作为发送端设备,发送一个探测报文,并记录发送该探测报文的发送时刻,该探测报文包括报文id;另一个端设备作为接收端设备,接收该探测报文,并返回一个响应报文,该响应报文的报文id与该探测报文的报文id相同。当发送设备接收到该响应报文时,记录接收时刻,根据相同报文id的探测报文的发送时刻,可以计算该探测报文对应的传输延时。若发送设备没有接收到该响应报文,则表示报文传输过程中丢失。按照预设的探测统计间隔,统计在一个预设的探测统计间隔的平均传输延时,以及丢包率(丢包率=接收响应报文的个数/发送探测报文的个数)。其中,预设的探测统计间隔指的是,对一条链路完成一次平均传输延时和丢包率的统计时,发送的探测报文的总个数。但是,采用上述探测链路的方式,选择的链路质量稳定性无法确定。



技术实现要素:

本申请提供选择链路的方法、装置及存储介质,能够选择链路质量稳定性高的链路建立ipsec隧道。

具体地,本申请是通过如下技术方案实现的:

本申请第一方面提供一种选择链路的方法,所述方法包括:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

在一个示例中,按照预设的探测周期,统计任意一个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率包括:

获取所述链路每次建立ipsec隧道的时间信息和探测统计信息,每次建立ip隧道的所述时间信息用于指示所述链路该次建立ipsec隧道的建立时长,每次建立ip隧道的所述探测统计信息包括至少一个所述预设的探测统计间隔统计的平均延时和丢包率;

统计所述链路建立ipsec隧道的次数获得在所述链路上建立ipsec隧道的所述累计建立次数;

根据所述链路每次建立ipsec隧道的所述时间信息,统计所述链路的所述累积建立时长;

根据所述链路每次建立ipsec隧道的所述探测统计信息,统计所述链路的所述周期平均延时和周期丢包率。

在一个示例中,所述获取所述链路每次建立ipsec隧道的时间信息和探测统计信息包括:

当在所述链路上建立ipsec隧道时,获取初始建立时刻;

利用在所述链路上建立的ipsec隧道发送探测报文,按照所述预设的探测统计间隔,获取所述链路当前探测统计所得的平均延时和丢包率;

根据所述链路当前探测统计所得的平均延时和丢包率,确定所述链路质量是否满足要求;

若所述链路质量满足要求,返回执行利用在所述链路上建立的ipsec隧道发送探测报文,按照所述预设的探测统计间隔,获取所述链路下一次探测统计所得的平均延时和丢包率;

若所述链路质量不满足要求,切换至另一条链路上建立ipsec隧道,获取终止建立时刻。

在一个示例中,所述方法还包括:

在一个探测周期内,若达到预设的循环切换次数,优先级最高的链路质量仍不满足要求,停止切换至另一条链路,其中,在每个链路上都建立一次ipsec隧道为执行一次循环切换。

在一个示例中,

相邻的两次预设的探测统计间隔仅存在一个不同的探测报文。

在一个示例中,所述方法还包括:

设置探测报文的标识,所述探测报文的标识的高16位为传输所述探测报文的进程号,所述探测报文的标志的低16位为发送所述探测报文的序号。

在一个示例中,所述根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定任意一个链路的链路质量等级包括:

确定所述链路的所述累计建立次数与所述累计建立时长的积作为第一值;

确定所述链路的所述周期平均延时与所述周期丢包率的积作为第二值;

确定所述第一值与所述第二值的比作为所述链路的链路质量。

本申请第二方面提供一种选择链路的装置,所述装置包括:

统计模块,用于按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

确定模块,用于根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

建立模块,用于从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

在一个示例中,统计模块包括:

获取单元,用于获取所述链路每次建立ipsec隧道的时间信息和探测统计信息,每次建立ip隧道的所述时间信息用于指示所述链路该次建立ipsec隧道的建立时长,每次建立ip隧道的所述探测统计信息包括至少一个所述预设的探测统计间隔统计的平均延时和丢包率;

第一统计单元,用于统计所述链路建立ipsec隧道的次数获得在所述链路上建立ipsec隧道的所述累计建立次数;

第二统计单元,用于根据所述链路每次建立ipsec隧道的所述时间信息,统计所述链路的所述累积建立时长;

第三统计单元,用于根据所述链路每次建立ipsec隧道的所述探测统计信息,统计所述链路的所述周期平均延时和周期丢包率。

在一个示例中,所述获取单元包括:

第一获取子单元,用于当在所述链路上建立ipsec隧道时,获取初始建立时刻;

第二获取子单元,用于利用在所述链路上建立的ipsec隧道发送探测报文,按照所述预设的探测统计间隔,获取所述链路当前探测统计所得的平均延时和丢包率;

确定子单元,用于根据所述链路当前探测统计所得的平均延时和丢包率,确定所述链路质量是否满足要求;

若所述链路质量满足要求,返回所述第二获取子单元;

切换子单元,用于若所述链路质量不满足要求,切换至另一条链路上建立ipsec隧道,获取终止建立时刻。

在一个示例中,所述获取单元还包括:

停止切换子单元,用于在一个探测周期内,若达到预设的循环切换次数,优先级最高的链路质量仍不满足要求,停止切换至另一条链路,其中,在每个链路上都建立一次ipsec隧道为执行一次循环切换。

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

设置模块,用于设置探测报文的标识,所述探测报文的标识的高16位为传输所述探测报文的进程号,所述探测报文的标志的低16位为发送所述探测报文的序号。

在一个示例中,所述确定模块包括:

第一确定单元,用于确定所述链路的所述累计建立次数与所述累计建立时长的积作为第一值;

第二确定单元,用于确定所述链路的所述周期平均延时与所述周期丢包率的积作为第二值;

第三确定单元,用于确定第一值与第二值的比作为所述链路的链路质量。

本申请第三方面提供一种选择链路的设备,所述设备包括:内部总线,以及通过内部总线连接的存储器、处理器和外部接口;其中,

所述存储器,用于存储文件存储的控制逻辑对应的机器可读指令;

所述处理器,用于读取所述存储器上的所述机器可读指令,并执行所述指令以实现如下操作:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

本申请第四方面提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

应用本申请提供的实施例,按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,确定各个链路的链路质量等级,选择链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。一个预设的探测周期包括多个预设的探测统计周期,能够提供在一个较长的探测周期中,各个链路的链路质量等级,一个链路的链路质量等级能够体现该链路在一个探测周期中链路质量的稳定性,从而,能够选择质量稳定性高的链路建立ipsec隧道。

附图说明

图1是本申请实施例示出的选择链路的方法流程图;

图2是本申请实施例示出的获取时间信息和探测统计信息示意图;

图3是本申请实施例示出的统计平均延时和丢包率示意图;

图4是本申请实施例示出的选择链路的装置结构示意图;

图5是本申请实施例示出的链路选择设备的实施例示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

为了确保在不同地区的办公地点之间建立的ipsec隧道的稳定性,需要探测建立ipsec隧道的链路质量的稳定性。目前采用的方法如下:选择一条链路建立ipsec隧道,在所建立的ipsec隧道上发送探测报文。记录带有相同标识的探测报文和响应报文之间的延时。按照预设的探测统计间隔统计平均延时和丢包率。平均延时指的是,在预设的探测统计间隔内,所有探测报文的延时的平均值。丢包率指的是,在预设的探测统计间隔内,发送探测报文的个数与接收响应报文的个数的差,与发送探测报文的个数的比。

其中,预设的探测统计间隔为对一条链路完成一次平均传输延时和丢包率的统计时,发送的探测报文的总个数。预设的探测统计间隔可以根据实际需要具体设置。

按照预设的探测统计间隔,统计得到平均延时和丢包率后,与预设的延时阈值和预设的丢包率阈值进行比较,当该平均延时小于预设的延时阈值,并且,丢包率小于预设的丢包率阈值时,表示该链路的质量符合要求,可以建立ipsec隧道实现安全的数据传输;当平均延时大于预设的延时阈值,或者,丢包率大于预设的丢包率阈值时,表示该链路的质量不符合要求,不能建立ipsec隧道,需要切换至另一条链路。

以预设的探测统计间隔为5个探测报文为例:发送探测报文a1,接收到与探测报文a1标识相同的响应报文b1,发送探测报文a1和接收响应报文b1之间的延时为100ms;发送探测报文a2,接收到与探测报文a2标识相同的响应报文b2,发送探测报文a2和接收响应报文b2之间的延时为80ms;发送探测报文a3,没有接收到与探测报文a3标识相同的响应报文b3;发送探测报文a4,接收到与探测报文a4标识相同的响应报文b4,发送探测报文a4和接收响应报文b4之间的延时为90ms;发送探测报文a5,接收到与探测报文a5标识相同的响应报文b5,发送探测报文a5和接收响应报文b1之间的延时为110ms。则在该预设的探测统计间隔中,统计的平均延时为(100+80+90+110)/4=95ms;丢包率为(5-4)/5=20%。

若预设的延时阈值为100ms,预设的丢包率阈值为30%,则由于统计的平均延时95ms小于100ms,并且,丢包率小于预设的丢包率阈值,表示该链路质量满足要求,可以建立ipsec隧道进行安全的数据传输。

若预设的延时阈值设置为90ms,预设的丢包率阈值为30%,则由于统计的平均延时95ms大于90ms,即使丢包率小于预设的丢包率阈值,表示该链路质量不满足要求,需要切换另一条链路建立ipsec隧道。

由上述内容可知,上述选择链路的方式中,根据一个预设的探测统计间隔统计的平均延时和丢包率选择的链路,只能确定在该预设的探测统计间隔期间,该链路质量符合要求,即只能确定链路质量在一个很短的时间内满足要求,并不能确定该链路在该预设的探测统计间隔后链路质量是否满足要求。因此,无法确定链路质量的稳定性。

为了解决上述问题,本申请实施例提供的选择链路的方法,一个预设的探测周期包括多个预设的探测统计周期,按照预设的探测周期统计得到的累计建立时长,周期平均延时,以及周期丢包率,能够反应一个较长的时间段内的各个链路的链路质量等级,一个链路的链路质量等级能够体现该链路在一个预设的探测周期中链路质量的稳定性,从而,能够选择质量稳定性高的链路建立ipsec隧道。

下面结合幅图对本申请的具体实例进行详细说明。

示例性方法

图1为本申请实施例示出的选择链路的方法流程图,包括:

101:按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,预设的探测周期中包括多个预设的探测统计间隔。

102:根据各个链路的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,确定各个链路的链路质量等级。

103:从各个链路中,选择链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

一个预设的探测周期内,按照预设的报文发送间隔,不间断的发送探测报文。两个端设备之间存在多条链路,对于每条链路,会设置一个预设的优先级。在该预设的探测周期内,每条链路按照预设的优先级由高到低进行切换,先在预设的优先级最高的第一链路上建立ipsec隧道,当探测到第一链路的链路质量不满足要求时,切换至优先级次于第一链路的第二链路上建立ipsec隧道;当探测到第二链路的链路质量不满足要求时,切换至优先级次于第二链路的第三链路上建立ipsec隧道;以此类推,当所有链路上都建立过ipsec隧道时,当预设的优先级最低的链路的链路质量也不满足要求时,再返回切换至预设的优先级最高的第一链路上建立ipsec隧道。此时,完成一次循环切换。

这里需要说明的是,在一个预设的探测周期内,若没有完成一次循环切换,则表示有的链路上建立了一次ipsec隧道,有的链路上没有建立过ipsec隧道;若完成了多次循环切换,则表示在每个链路上都至少建立了一次ipsec隧道。

可以理解的是,若每个链路上都建立过一次ipsec隧道,则对于一个链路来说,切换至该链路建立ipsec隧道的时刻为初始建立时刻,在预设的探测统计间隔期间统计的该链路的平均延时大于预设的延时阈值,或者丢包率大于预设的丢包率阈值时,切换至另一个链路,此时,记录该链路的终止建立时刻,完成在该链路建立一次ipsec隧道。因此,获得在该链路建立一次ipsec隧道的时间信息,包括初始建立时刻和终止建立时刻;还获得在该链路建立一次ipsec隧道的探测统计信息,即在每个预设的探测统计间隔期间统计的平均延时和丢包率。

对于任意一个链路来说,在不同的循环切换中,每次在该链路上建立ipsec隧道,都可以获取此次建立ipsec隧道的时间信息和探测统计信息。则在该链路上建立多少次ipsec隧道,则存在多少个统计得到的时间信息和探测统计信息。即对于一个链路来说,每次建立ipsec隧道都对应于一个时间信息和探测统计信息。根据在该链路上每次建立ipsec隧道对应的时间信息,统计得到该链路的累计建立次数,累计建立时长,根据在该链路上每次建立ipsec隧道对应的探测统计信息,统计得到该链路的周期平均延时,以及周期丢包率。

对于每个链路,都按照上述方式,在一个预设的探测周期中,统计每个链路在建立一次ipsec隧道对应的时间信息和探测统计信息,从而各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率。

在一个例子中,如图2所示,获取链路每次建立ipsec隧道的时间信息和探测统计信息包括:

201:当在链路上建立ipsec隧道时,获取初始建立时刻;

202:利用在链路上建立的ipsec隧道发送探测报文,按照预设的探测统计间隔,获取链路当前探测统计所得的平均延时和丢包率;

203:根据链路当前探测统计所得的平均延时和丢包率,确定链路质量是否满足要求,如果是,返回执行202,获取链路下一次探测统计所得的平均延时和丢包率;如果否,执行204。

204:切换至另一条链路上建立ipsec隧道,获取终止建立时刻。

下面以两个端设备之间的多个链路中的一个链路为例,详细说明按照预设的探测统计间隔,统计该链路每次建立ipsec隧道的探测统计信息和时间信息。

在该链路建立ipsec隧道,发送探测报文,接收与探测报文的标识相同的响应报文,统计探测报文与响应报文之间的延时,获得探测报文对应的报文延时。按照预设的探测统计间隔,统计接收到响应报文的探测报文对应的报文延时的和,再除以接收到响应报文的探测报文的个数,得到在该预设的探测统计间隔内的平均延时。

按照预设的探测统计间隔进行统计,即发送的探测报文的个数一定,与预设的探测统计间隔设置的探测报文的个数一致,而接收到的响应报文可能比发送的探测报文的个数少。也就是说,可能存在有些探测报文的响应报文无法接收到,存在丢包的情况。因此,每发送预设的探测统计间隔的探测报文,统计接收的响应报文的个数,确定发送探测报文的个数与接收的响应报文的个数的差,再用所得的差除以发送探测报文的个数,获得该预设的探测统计间隔的丢包率。

将所获得的预设的探测统计间隔的平均延时与预设的延时阈值相比较,将所获得的该预设的探测统计间隔的丢包率与预设的丢包率阈值相比较,若同时满足平均延时小于预设的延时阈值,并且,丢包率小于预设的丢包率阈值,则表示链路的链路质量满足要求,可以继续采用该链路建立ipsec隧道。继续按照预设的探测统计间隔,获得每次按照预设的探测统计间隔统计的平均延时和丢包率。

直至平均延时不满足预设的延时阈值,或者丢包率不满足预设的丢包率阈值时,表示该链路的链路质量不满足要求,停止在该链路上建立ipsec隧道,切换至另一条链路。可以理解的是,在使用该链路建立ipsec隧道的期间内,每次按照预设的探测统计间隔统计得到的平均延时和丢包率,都会作为该链路在该次建立ipsec隧道的探测统计信息。

在一个示例中,为了确保能够及时探测到链路质量的变化,需要尽可能的缩短各个预设的探测统计间隔之间的时间差。因此,相邻的两次预设的探测统计间隔仅存在一个不同的探测报文。每次统计的预设的探测统计间隔之间间隔一个探测报文即可,这样,每次按照预设的探测统计间隔进行统计时,去除前一个预设的探测统计间隔中最早发送的探测报文,再增加一个在前一个预设的探测统计间隔后发送的探测报文,组成下一个预设的探测统计间隔进行统计。这样,每次前后相邻的两个预设的探测统计间隔包含的探测报文,仅存在一个不同的探测报文,从而,在该链路的链路质量发生变化时,能够很快的统计到不满足要求的平均延时,或者丢包率,尽快的切换至另一条链路。

举例说明:如图3所示,预设的延时阈值为60ms,预设的丢包率阈值为30%。在链路建立的ipsec隧道上,发送探测报文t1,获取探测报文t1的报文延时50ms;发送探测报文t2,获取探测报文t2的报文延时60ms;发送探测报文t3,没有收到响应报文;发送探测报文t4,获取探测报文t4的报文延时45ms;发送探测报文t5,获取探测报文t5的报文延时55ms。预设的探测统计间隔为5,则统计探测报文t1~t5对应的平均延时为52.5ms,丢包率为20%。按照上述统计方式,以此类推,统计探测报文t2~t6对应的平均延时为50ms,丢包率为20%。统计探测报文t3~t7对应的平均延时为45ms,丢包率为20%。统计探测报文t4~t8对应的平均延时为50ms,丢包率为40%。此时,由于丢包率大于预设的丢包率阈值,切换至另一条链路建立ipsec隧道。

其中,第一次预设的探测统计间隔统计的平均延时为52.5ms,丢包率为20%,第二次预设的探测统计间隔统计的平均延时为50ms,丢包率为20%,第三次预设的探测统计间隔统计的平均延时为45ms,丢包率为20%,第四次预设的探测统计间隔统计的平均延时为50ms,丢包率为40%,都作为该链路在一次建立ipsec隧道所获得的探测统计信息。

与此同时,在该链路上建立ipsec隧道的过程中,可以记录初始建立时刻和终止建立时刻,还可以确定在该链路上一次建立ipsec隧道的时间信息,即初始建立时刻与终止建立时刻之间的时间差。

下面以两个端设备之间的多个链路为例,说明如何在多条链路之间切换。

将两个端设备之间存在的多条链路,按照预设的优先级排序,先在优先级高的链路上建立ipsec隧道。按照上述方法,在优先级最高的链路上统计平均延时和丢包率,当在优先级最高的链路上统计的平均延时和丢包率不满足要求时,切换至优先级排在第二的链路上统计平均延时和丢包率;当在优先级最高的链路上统计的平均延时和丢包率不满足要求时,切换至优先级排在第三的链路上统计平均延时和丢包率;以此类推,直至切换至优先级最低的链路上统计平均延时和丢包率。此时,完成一次循环切换。

若此时一个预设的探测周期没有结束,则重新切换至优先级最高的链路上建立ipsec隧道,在优先级最高的链路上再统计平均延时和丢包率,当在优先级最高的链路上统计的平均延时和丢包率不满足要求时,切换至优先级排在第二的链路上统计平均延时和丢包率,重复上述循环切换。

因此,在一个预设的探测周期内,往往存在很多个预设的探测统计间隔,持续的对链路质量进行探测,当一个链路质量不符合要求时,切换至另一个链路建立ipsec隧道,以在两个端设备之间的链路上进行切换,从而,确保使用符合要求的链路建立ipsec隧道。

在一个示例中,所述方法还包括:

在一个预设的探测周期内,若达到预设的循环切换次数,优先级最高的链路质量仍不满足要求,停止切换至另一条链路,其中,在每个链路上都建立一次ipsec隧道为执行一次循环切换。

若在一个预设的探测周期内,两个端设备之间的链路经过过多次循环切换,也就是从优先级最高的链路逐步切换至优先级最低的链路存在多次,超过了预设的循环切换次数。则表示两个端设备之间的多条链路的链路质量都经常不满足要求。此时,不再继续切换,使用优先级最高的链路建立ipsec隧道。这是为了防止多个链路之间过于频繁的切换,影响两个端设备之间的数据传输。

完成一个预设的探测周期的统计后,以一个链路为例,详细说明统计该链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率。

在一个示例中,按照预设的探测周期,统计任意一个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率包括:

获取链路每次建立ipsec隧道的时间信息和探测统计信息,每次建立ip隧道的时间信息用于指示链路该次建立ipsec隧道的建立时长,每次建立ip隧道的探测统计信息包括至少一个预设的探测统计间隔统计的平均延时和丢包率;

统计链路建立ipsec隧道的次数获得在链路上建立ipsec隧道的累计建立次数;

根据链路每次建立ipsec隧道的时间信息,统计链路的累积建立时长;

根据链路每次建立ipsec隧道的探测统计信息,统计链路的周期平均延时和周期丢包率。

完成一个预设的探测周期的统计后,按照上述描述,能够获得多个链路的时间信息和探测统计信息。对于一个链路来说,获取该链路多次建立ipsec隧道的时间信息和探测统计信息。

其一,在一个预设的探测周期中,该链路每次建立ipsec隧道都存在记录,因此,能够根据记录统计该链路的累计建立次数,即获得在该链路上建立ipsec隧道的次数。

其二,在一个预设的探测周期中,记录了该链路每次建立ipsec隧道的时间信息,该时间信息可以是每次建立ipsec隧道的建立时长;改时间信息还可以是每次建立ipsec隧道的起始建立时刻和终止建立时刻,以获得每次建立ipsec隧道的建立时长。因此,将该链路每次建立ipsec隧道的建立时长相加求和,则获得在该链路上建立ipsec隧道的累计建立时长。

举例说明:该链路存在3次建立ipsec隧道的记录,第1次建立ipsec隧道为5分钟,第2次建立ipsec隧道为7分钟,第3次建立ipsec隧道为4分钟。则在该链路上建立ipsec隧道的累计建立时长为16分钟。

其三,在一个预设的探测周期中,记录了该链路每次建立ipsec隧道的探测统计信息,每次建立ip隧道的探测统计信息包括至少一个预设的探测统计间隔统计的平均延时和丢包率。将该链路所有探测统计信息中包括的预设的探测统计间隔的平均延时计算平均值,获得该链路的周期平均延时。将该链路的所有探测统计信息中包括的预设的探测统计间隔的丢包率计算平均值,获得该链路的周期丢包率。

举例说明:该链路存在3次建立ipsec隧道的记录,第1次建立ipsec隧道的探测统计数据包括:平均延时50ms和丢包率20%;平均延时45ms和丢包率25%;平均延时65ms和丢包率15%;第2次建立ipsec隧道的探测统计数据包括:平均延时30ms和丢包率15%,平均延时40ms和丢包率35%;第3次建立ipsec隧道的探测统计数据包括:平均延时45ms和丢包率10%;平均延时35ms和丢包率25%;平均延时60s和丢包率15%。则在该链路上建立ipsec隧道的周期平均延时为46.25ms,周期丢包率为20%。

按照上述方式,逐一统计两个端设备之间的每个链路的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率。这里不再一一赘述。

下面详细说明本申请提供的选择链路的方法。

在一个示例中,选择链路的方法包括:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据各个链路的所述累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,确定各个链路的链路质量等级;

从各个链路中,选择链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

在一个示例中,根据各个链路的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,确定任意一个链路的链路质量等级包括:

确定链路的累计建立次数与累计建立时长的积作为第一值;

确定链路的周期平均延时与周期丢包率的积作为第二值;

确定第一值与第二值的比作为所述链路的链路质量。

按照上述描述的方式,在一个预设的探测周期内,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,然后按照下述公式确定各个链路的链路质量等级。

链路质量等级=(累计建立次数×累计建立时长)/(周期平均延时×周期丢包率)

可以理解的是,在一个统计周期内统计得到的各个链路的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,能够反应在一个较长的时间段内,该链路的链路质量。因此,按照上述公式所得的链路质量等级,能够准确的反应链路质量的稳定性。链路质量等级越高,链路质量的稳定性越好;链路质量等级越低,链路质量的稳定性越差。因此,按照链路质量等级给两个端设备之间的链路进行排序。在下一个预设的探测周期中,按照链路质量等级由高到低的顺序建立ipsec隧道。则选择链路质量等级最高的链路,认为该链路的链路质量稳定性最高,在下一个预设的探测周期中,最先使用该链路建立ipsec隧道。采用链路质量稳定性高的链路建立ipsec隧道,减少链路之间的切换,增加ipsec隧道的稳定性,即提高两个端设备之间数据传输的稳定性。

在一个示例中,所述方法还包括:

设置探测报文的标识,探测报文的标识的高16位为传输探测报文的进程号,探测报文的标志的低16位为发送探测报文的序号。

现有技术中,探测报文的标识都是采用随机数,当发送的探测报文数量很大时,发送的不同探测报文的标识可能相同,会导致统计延时和丢包率时出现错误。

为了确保发送探测报文的唯一性,本申请示例中设置探测报文的标识不采用随机数方式。在链路上建立的ipsec隧道是多进程的,每个ipsec隧道都在发送探测报文。探测报文的标识为32位,高16位设置为发送该探测报文的进程号;低16位设置为在该ipsec隧道的进程中,该探测报文的序号,即低16位表示在该ipsec隧道的进程中,该探测报文为第几个被发送的探测报文。

高16位为进程号,因此,不同ipsec隧道的进程发送的探测报文的高16位不同;在同一个ipsec隧道的进程中,探测报文只能被一个一个的发送,不能同时发送两个探测报文,因此,探测报文的序号不同,则探测报文的低16位不同。即在同一个ipsec隧道的进程中,前一个探测报文的低16位,比后一个探测报文的低16位少1。从而,确保该探测报文的标识的唯一性,避免统计延时和丢包率时出现错误。

根据上述内容可知,本申请提供的示例,不仅能够确定链路的链路质量等级,表示该链路的稳定性,从而选择稳定性高的链路建立ipsec隧道;还能够设置发送的探测报文的标识,确保每个探测报文的标识的唯一性,进而确保响应报文的标识的唯一性,以避免统计延时和丢包率时出现错误。

示例性装置

图4为本申请实施例示出的选择链路的装置结构示意图,包括:

统计模块401,用于按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔。

确定模块402,用于根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级。

建立模块403,用于从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

在一个示例中,统计模块包括:

获取单元,用于获取所述链路每次建立ipsec隧道的时间信息和探测统计信息,每次建立ip隧道的所述时间信息用于指示所述链路该次建立ipsec隧道的建立时长,每次建立ip隧道的所述探测统计信息包括至少一个所述预设的探测统计间隔统计的平均延时和丢包率;

第一统计单元,用于统计所述链路建立ipsec隧道的次数获得在所述链路上建立ipsec隧道的所述累计建立次数;

第二统计单元,用于根据所述链路每次建立ipsec隧道的所述时间信息,统计所述链路的所述累积建立时长;

第三统计单元,用于根据所述链路每次建立ipsec隧道的所述探测统计信息,统计所述链路的所述周期平均延时和周期丢包率。

在一个示例中,所述获取单元包括:

第一获取子单元,用于当在所述链路上建立ipsec隧道时,获取初始建立时刻;

第二获取子单元,用于利用在所述链路上建立的ipsec隧道发送探测报文,按照所述预设的探测统计间隔,获取所述链路当前探测统计所得的平均延时和丢包率;

确定子单元,用于根据所述链路当前探测统计所得的平均延时和丢包率,确定所述链路质量是否满足要求;

若所述链路质量满足要求,返回所述第二获取子单元;

切换子单元,用于若所述链路质量不满足要求,切换至另一条链路上建立ipsec隧道,获取终止建立时刻。

在一个示例中,所述获取单元还包括:

停止切换子单元,用于在一个探测周期内,若达到预设的循环切换次数,优先级最高的链路质量仍不满足要求,停止切换至另一条链路,其中,在每个链路上都建立一次ipsec隧道为执行一次循环切换。

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

设置模块,用于设置探测报文的标识,所述探测报文的标识的高16位为传输所述探测报文的进程号,所述探测报文的标志的低16位为发送所述探测报文的序号。

在一个示例中,所述确定模块包括:

第一确定单元,用于确定所述链路的所述累计建立次数与所述累计建立时长的积作为第一值;

第二确定单元,用于确定所述链路的所述周期平均延时与所述周期丢包率的积作为第二值;

第三确定单元,用于确定第一值与第二值的比作为所述链路的链路质量。

上述示例性装置,是与示例性方法所对应的装置,具体实现方法类似,参考示例性方法中的描述,这里不再赘述。

参见图5,为本申请选择链路设备的一个实施例示意图,该选择链路设备可以包括:内部总线510,以及通过内部总线510连接的存储器520、处理器530和外部接口740。

其中,所述存储器520,用于存储文件转换的控制逻辑对应的机器可读指令;

所述处理器530,用于读取所述存储器上的所述机器可读指令,并执行所述指令以实现如下操作:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

此外,本申请实施例示出的文件转换流程还可以被包括在计算机可读存储介质中,该存储介质可以与执行指令的处理设备连接,该存储介质上存储有文件转换的控制逻辑对应的机器可读指令,这些指令能够被处理设备执行,上述机器可读指令用于实现如下操作:

按照预设的探测周期,统计在各个链路上建立ipsec隧道的累计建立次数,累计建立时长,周期平均延时,以及周期丢包率,所述预设的探测周期中包括多个预设的探测统计间隔;

根据所述各个链路的所述累计建立次数,所述累计建立时长,所述周期平均延时,以及所述周期丢包率,确定所述各个链路的链路质量等级;

从所述各个链路中,选择所述链路质量等级最高的链路,在下一个预设的探测周期建立ipsec隧道。

在本申请实施例中,计算机可读存储介质可以是多种形式,比如,在不同的例子中,所述机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。特殊的,所述的计算机可读介质还可以是纸张或者其他合适的能够打印程序的介质。使用这些介质,这些程序可以被通过电学的方式获取到(例如,光学扫描)、可以被以合适的方式编译、解释和处理,然后可以被存储到计算机介质中。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1