链路状态提供方法、装置、路由器及计算机可读存储介质转让专利

申请号 : CN201910356835.3

文献号 : CN110098982B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨涛

申请人 : 深信服科技股份有限公司

摘要 :

本申请提供的链路状态提供方法、装置路由器及计算机可读存储介质,依据预设的配置信息,通过相同端口发送多种预设类型的探测数据包,并依据探测数据包和接收到的数据包,确定包括端口的链路针对多种预设类型的数据包的状态信息,依据状态信息定制方的定制类型,向状态信息定制方发送定制类型的状态信息,用于指示链路对于定制类型的数据包可用或不可用,可见,能够获取多种类型的链路探测结果,并依据状态信息定制方的需求提供链路探测结果,从而满足作为状态信息定制方的不同网络模块的需求。

权利要求 :

1.一种链路状态提供方法,其特征在于,包括:依据预设的配置信息,通过相同端口发送预设类型的探测数据包,所述预设类型包括预设的多种类型;

依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,所述状态信息包括所述预设类型的状态信息,其中,任意一种类型的状态信息用于指示所述链路对于该类型的数据包可用或不可用;

依据状态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息,所述定制类型为所述预设类型中的至少一种类型,所述定制类型的状态信息用于指示所述链路对于所述定制类型的数据包可用或不可用;

其中,所述预设类型包括:Ping、Dns和Arp的至少一项;

在所述通过相同端口发送预设类型的探测数据包之前,还包括:在依据所述配置信息生成所述预设类型的探测数据包后,存储所述预设类型的探测数据包的标识,其中,任意一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生成的ID确定,任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发送端口的信息确定,任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的地址确定。

2.根据权利要求1所述的方法,其特征在于,所述预设类型中的任意一种类型的配置信息包括:该类型对应的目的地址,所述目的地址的数量为多个;

所述预设类型中的任意一种类型的探测数据包分别依据所述多个目的地址配置生成。

3.根据权利要求1所述的方法,其特征在于,在所述存储所述预设类型的探测数据包的标识之后,还包括:

对于所述标识中的任意一个标识,在该标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探测数据包;

在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包;

存储重新生成的探测数据包的标识。

4.根据权利要求3所述的方法,其特征在于,所述预设类型中的任意一种类型的配置信息还包括:

发送间隔和失败次数;

所述依据预设的配置信息,通过相同端口发送预设类型的探测数据包,包括:在任意一种类型连续探测失败的次数小于所述失败次数的情况下,按照该类型的配置信息指示的所述发送间隔,发送已存储的标识对应的该类型的探测数据包。

5.根据权利要求3所述的方法,其特征在于,所述依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,包括:调用第一进程,实现依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息的过程;

所述第一进程还用于:在确定包括所述端口的链路的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并后的状态信息。

6.根据权利要求1所述的方法,其特征在于,所述向所述状态信息定制方发送所述定制类型的状态信息包括:

在所述端口的链路的状态信息发送变更的情况下,如果发生变更的为所述定制类型的状态信息,则向所述状态信息定制方发送所述定制类型的状态信息。

7.一种链路状态提供装置,其特征在于,包括:发送模块,用于依据预设的配置信息,通过相同端口发送预设类型的探测数据包,所述预设类型包括预设的多种类型;

确定模块,用于依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,所述状态信息包括所述预设类型的状态信息,其中,任意一种类型的状态信息用于指示所述链路对于该类型的数据包可用或不可用;

状态提供模块,用于依据状态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息,所述定制类型为所述预设类型中的至少一种类型,所述定制类型的状态信息用于指示所述链路对于所述定制类型的数据包可用或不可用;

其中,所述预设类型包括:Ping、Dns和Arp的至少一项;

所述装置还包括:

存储模块,用于在所述发送模块通过相同端口发送预设类型的探测数据包之前,在依据所述配置信息生成所述预设类型的探测数据包后,存储所述预设类型的探测数据包的标识,其中,任意一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生成的ID确定,任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发送端口的信息确定,任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的地址确定。

8.根据权利要求7所述的装置,其特征在于,所述预设类型中的任意一种类型的配置信息包括:该类型对应的目的地址,所述目的地址的数量为多个;

所述预设类型中的任意一种类型的探测数据包分别依据所述多个目的地址配置生成。

9.根据权利要求7所述的装置,其特征在于,所述存储模块还用于:在所述存储所述预设类型的探测数据包的标识之后,对于所述标识中的任意一个标识,在该标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探测数据包;在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包;存储重新生成的探测数据包的标识。

10.根据权利要求9所述的装置,其特征在于,所述预设类型中的任意一种类型的配置信息还包括:

发送间隔和失败次数;

所述发送模块用于依据预设的配置信息,通过相同端口发送预设类型的探测数据包,包括:

所述发送模块具体用于,在任意一种类型连续探测失败的次数小于所述失败次数的情况下,按照该类型的配置信息指示的所述发送间隔,发送已存储的标识对应的该类型的探测数据包。

11.根据权利要求9所述的装置,其特征在于,所述确定模块用于依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,包括:所述确定模块具体用于,调用第一进程,实现依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息的过程;

所述第一进程还用于:在确定包括所述端口的链路的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并后的状态信息。

12.根据权利要求7所述的装置,其特征在于,所述状态提供模块用于向所述状态信息定制方发送所述定制类型的状态信息包括:所述状态提供模块具体用于,在所述端口的链路的状态信息发送变更的情况下,如果发生变更的为所述定制类型的状态信息,则向所述状态信息定制方发送所述定制类型的状态信息。

13.一种路由器,其特征在于,包括:处理器和存储器;

所述处理器用于,依据预设的配置信息,通过相同端口发送预设类型的探测数据包,依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,依据状态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息;

其中,所述预设类型包括预设的多种类型,所述状态信息包括所述预设类型的状态信息,任意一种类型的状态信息用于指示所述链路对于该类型的数据包可用或不可用;所述定制类型为所述预设类型中的至少一种类型,所述定制类型的状态信息用于指示所述链路对于所述定制类型的数据包可用或不可用;

其中,所述预设类型包括:Ping、Dns和Arp的至少一项;

在所述通过相同端口发送预设类型的探测数据包之前,还包括:在依据所述配置信息生成所述预设类型的探测数据包后,存储所述预设类型的探测数据包的标识,其中,任意一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生成的ID确定,任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发送端口的信息确定,任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的地址确定;所述存储器用于存储所述处理器运行的应用程序,以及所述处理器运行过程中产生的数据。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1-6任一项所述的链路状态提供方法。

说明书 :

链路状态提供方法、装置、路由器及计算机可读存储介质

技术领域

[0001] 本申请涉及电子信息领域,尤其涉及一种链路状态提供方法、装置、路由器及计算机可读存储介质。

背景技术

[0002] 转发数据包是路由器的基本功能。路由器通常包括多个与网络相连的端口,用于通过网络将数据包发送到目的设备。数据包从端口传输到目的设备的路径,称为链路(包括
端口)。
[0003] 针对任意一个端口的链路探测是指,通过该端口向目的设备发送探测数据包,如果接收到探测数据包的反馈数据包,则说明该端口连接的链路可用,否则,说明该端口连接
的链路不可用。
[0004] 现有的链路探测方法,往往只对链路进行单一类型的探测,所以不能满足不同网络模块对于不同类型探测结果的需求。

发明内容

[0005] 本申请提供了一种链路状态提供方法、装置路由器及计算机可读存储介质,目的在于解决如何获取多种类型的链路探测结果,以满足不同网络模块的需求的问题。
[0006] 为了实现上述目的,本申请提供了以下技术方案:
[0007] 一种链路状态提供方法,包括:
[0008] 依据预设的配置信息,通过相同端口发送预设类型的探测数据包,所述预设类型包括预设的多种类型;
[0009] 依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,所述状态信息包括所述预设类型的状态信息,其中,任意一种类型的状态信息用于指示所
述链路对于该类型的数据包可用或不可用;
[0010] 依据状态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息,所述定制类型为所述预设类型中的至少一种类型,所述定制类型的状态信息用于
指示所述链路对于所述定制类型的数据包可用或不可用。
[0011] 可选的,所述预设类型中的任意一种类型的配置信息包括:该类型对应的目的地址,所述目的地址的数量为多个;
[0012] 所述预设类型中的任意一种类型的探测数据包分别依据所述多个目的地址配置生成。
[0013] 可选的,所述预设类型包括:Ping、Dns和Arp的至少一项;
[0014] 在所述通过相同端口发送预设类型的探测数据包之前,还包括:
[0015] 在依据所述配置信息生成所述预设类型的探测数据包后,存储所述预设类型的探测数据包的标识,其中,任意一个Ping类型的探测数据包的标识由该探测数据包的序列号
和随机生成的ID确定,任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成
的ID和发送端口的信息确定,任意一个Arp类型的探测数据包的标识由该探测数据包源地
址和目的地址确定。
[0016] 可选的,在所述存储所述预设类型的探测数据包的标识之后,还包括:
[0017] 对于所述标识中的任意一个标识,在该标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探测数据包;
[0018] 在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包;
[0019] 存储重新生成的探测数据包的标识。
[0020] 可选的,所述预设类型中的任意一种类型的配置信息还包括:
[0021] 发送间隔和失败次数;
[0022] 所述依据预设的配置信息,通过相同端口发送预设类型的探测数据包,包括:
[0023] 在任意一种类型连续探测失败的次数小于所述失败次数的情况下,按照该类型的配置信息指示的所述发送间隔,发送已存储的标识对应的该类型的探测数据包。
[0024] 可选的,所述依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,包括:
[0025] 调用第一进程,实现依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息的过程;
[0026] 所述第一进程还用于:在确定包括所述端口的链路的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并后的状态信息。
[0027] 可选的,所述向所述状态信息定制方发送所述定制类型的状态信息包括:
[0028] 在所述端口的链路的状态信息发送变更的情况下,如果发生变更的为所述定制类型的状态信息,则向所述状态信息定制方发送所述定制类型的状态信息。
[0029] 一种链路状态提供装置,包括:
[0030] 发送模块,用于依据预设的配置信息,通过相同端口发送预设类型的探测数据包,所述预设类型包括预设的多种类型;
[0031] 确定模块,用于依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,所述状态信息包括所述预设类型的状态信息,其中,任意一种类型的状态信
息用于指示所述链路对于该类型的数据包可用或不可用;
[0032] 状态提供模块,用于依据状态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息,所述定制类型为所述预设类型中的至少一种类型,所述定制
类型的状态信息用于指示所述链路对于所述定制类型的数据包可用或不可用。
[0033] 可选的,所述预设类型中的任意一种类型的配置信息包括:该类型对应的目的地址,所述目的地址的数量为多个;
[0034] 所述预设类型中的任意一种类型的探测数据包分别依据所述多个目的地址配置生成。
[0035] 可选的,所述预设类型包括:Ping、Dns和Arp的至少一项;
[0036] 所述装置还包括:
[0037] 存储模块,用于在所述发送模块通过相同端口发送预设类型的探测数据包之前,在依据所述配置信息生成所述预设类型的探测数据包后,存储所述预设类型的探测数据包
的标识,其中,任意一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生
成的ID确定,任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发
送端口的信息确定,任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的
地址确定。
[0038] 可选的,所述存储模块还用于:
[0039] 在所述存储所述预设类型的探测数据包的标识之后,对于所述标识中的任意一个标识,在该标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探
测数据包;在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包;存
储重新生成的探测数据包的标识。
[0040] 可选的,所述预设类型中的任意一种类型的配置信息还包括:
[0041] 发送间隔和失败次数;
[0042] 所述发送模块用于依据预设的配置信息,通过相同端口发送预设类型的探测数据包,包括:
[0043] 所述发送模块具体用于,在任意一种类型连续探测失败的次数小于所述失败次数的情况下,按照该类型的配置信息指示的所述发送间隔,发送已存储的标识对应的该类型
的探测数据包。
[0044] 可选的,所述确定模块用于依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,包括:
[0045] 所述确定模块具体用于,调用第一进程,实现依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息的过程;
[0046] 所述第一进程还用于:在确定包括所述端口的链路的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并后的状态信息。
[0047] 可选的,所述状态提供模块用于向所述状态信息定制方发送所述定制类型的状态信息包括:
[0048] 所述状态提供模块具体用于,在所述端口的链路的状态信息发送变更的情况下,如果发生变更的为所述定制类型的状态信息,则向所述状态信息定制方发送所述定制类型
的状态信息。
[0049] 一种路由器,包括:
[0050] 处理器和存储器;
[0051] 所述处理器用于,依据预设的配置信息,通过相同端口发送预设类型的探测数据包,依据所述探测数据包和接收到的数据包,确定包括所述端口的链路的状态信息,依据状
态信息定制方的定制类型,向所述状态信息定制方发送所述定制类型的状态信息;
[0052] 其中,所述预设类型包括预设的多种类型,所述状态信息包括所述预设类型的状态信息,任意一种类型的状态信息用于指示所述链路对于该类型的数据包可用或不可用;
所述定制类型为所述预设类型中的至少一种类型,所述定制类型的状态信息用于指示所述
链路对于所述定制类型的数据包可用或不可用;
[0053] 所述存储器用于存储所述处理器运行的应用程序,以及所述处理器运行过程中产生的数据。
[0054] 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述链路状态提供方法。
[0055] 本申请所述的技术方案,依据预设的配置信息,通过相同端口发送多种预设类型的探测数据包,并依据探测数据包和接收到的数据包,确定包括端口的链路针对多种预设
类型的数据包的状态信息,依据状态信息定制方的定制类型,向状态信息定制方发送定制
类型的状态信息,用于指示链路对于定制类型的数据包可用或不可用,可见,能够获取多种
类型的链路探测结果,并依据状态信息定制方的需求提供链路探测结果,从而满足作为状
态信息定制方的不同网络模块的需求。

附图说明

[0056] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其他的附图。
[0057] 图1为本申请实施例公开的一种链路状态提供方法的流程图;
[0058] 图2为本申请实施例公开的又一种链路状态提供方法的流程图;
[0059] 图3为本申请实施例公开的又一种链路状态提供方法的流程图;
[0060] 图4为本申请实施例公开的一种链路状态提供装置的结构示意图。

具体实施方式

[0061] 本申请实施例公开的链路状态提供方法及装置,可以应用在设置于网络中的路由器中。路由器通过端口接收并发送数据包,所述链路状态提供方法及装置的目的在于,获取
一个端口的多种类型的探测结果,并向其它模块提供定制类型的链路探测结果。
[0062] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他
实施例,都属于本申请保护的范围。
[0063] 图1为本申请实施例公开的一种链路状态提供方法,包括以下步骤:
[0064] S101:依据预设的配置信息,通过相同端口发送预设类型的探测数据包。
[0065] 其中,配置信息为用于配置探测数据包的信息。
[0066] 预设类型包括预设的多种类型。预设类型为预先设定的类型,可以为从现有的探测数据包的类型中,预先指定的类型。
[0067] S102:依据探测数据包和接收到的数据包,确定包括端口的链路的状态信息。
[0068] 其中,状态信息包括预设类型的状态信息。因为本实施例中,使用多种类型的探测数据包进行探测,因此,状态信息包括多种类型的状态信息,任意一种类型的状态信息用于
指示链路对于该类型的数据包可用或不可用。
[0069] S103:依据状态信息定制方的定制类型,向状态信息定制方发送定制类型的状态信息。
[0070] 其中,定制类型为预设类型中的至少一种类型,定制类型的状态信息用于指示链路对于定制类型的数据包可用或不可用。
[0071] 从图1所示的流程可以看出,对于任意一个端口,可以实现多种类型数据包的链路探测,因此,能够为不同的模块提供不同类型的探测结果,从而满足不同模块对于不同类型
探测结果的需求。
[0072] 图2为本申请实施例公开的又一种链路状态提供方法,在图1所示的流程的基础上,重点说明如何配置生成及发送预设类型的探测数据包,图2所示的流程中包括以下步
骤:
[0073] S201:获取配置信息。
[0074] 配置信息用于配置探测数据包。
[0075] 具体的,获取配置信息的具体实现方式为以下任意一种:
[0076] 1、接收用户输入的命令行,通过解析命令行获取配置信息。
[0077] 2、显示配置界面,并通过配置界面接收用户输入的配置信息。
[0078] 具体的,配置信息包括但不限于:目的地址、发送间隔和失败次数。
[0079] 其中,目的地址作为探测数据包的目的地址,可选的,目的地址的数量为多个(例如两个),以向不同的目的设备发送探测数据包,探测一个端口连接的多条链路的状态。目
的地址具体可以为目的设备的IP地址或目的设备域名。
[0080] 本实施例中,以三种类型的探测数据包,分别为:Ping探测数据包、Dns探测数据包和Arp探测数据包为例。用户可以对三种类型的探测数据包分别设置配置信息。三种类型探
测数据包的配置信息可以相同,也可以不同。
[0081] 以配置界面为例,配置界面上显示三种类型的探测数据包的配置项,用户可以一次性配置三种类型的探测数据包。
[0082] S202:依据配置信息,生成探测数据包,并存储探测数据包的标识。
[0083] Ping探测数据包、Dns探测数据包和Arp探测数据包的生成方式,与现有技术相同,这里不再赘述。
[0084] 需要说明的是,对于任意一种类型,在目的地址为多个的情况下,分别依据不同的目的地址配置该类型的探测数据包,即该类型的探测数据包分别依据多个目的地址配置生
成。
[0085] 举例说明,在Ping类型的配置信息中包括两个目的IP地址:IP1和IP2,则生成两部分Ping类型的探测数据包,一部分Ping类型的探测数据包使用IP1,另一部分Ping类型的探
测数据包使用IP2。可以看出,这两部分探测数据包将被分别发送至IP1设备和IP2设备,因
此,能够通过一个端口探测两条链路。
[0086] 本实施例中,对于不同类型的探测数据包,存储的标识的确定方式不同:
[0087] 任意一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生成的ID确定。具体的,可以随机生成16位的ID,并配置16位的序列号,ID和序列号构成32位的标
识。可选的,也可以将ID和序列号进行哈希运算,得到标识。
[0088] 任意一个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发送端口的信息确定。具体的,可以随机生成16位的ID,与发出该探测数据包的端口的16位序号,
构成32位的标识。可选的,也可以将ID和端口序号进行哈希运算,得到标识。
[0089] 任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的地址确定。具体的,源地址和目的地址可以均为32位的IP地址,构成64位的标识。可选的,也可以将源
地址和目的地址进行哈希运算,得到标识。
[0090] 可选的,可以将使用哈希运算得到的标识存储在哈希表中。
[0091] 进一步的,为上述每个标识(及具有该标识的探测数据包)统计设置时长。任意一个标识的设置时长为该标识(及具有该标识的探测数据包)从生成到当前时刻的时长。
[0092] 可选的,为了便于实现,可以为哈希表中的每个标识均设置一个定时器,任意一个标识的定时器从该标识生成开始计时。
[0093] S203:删除设置时长超过预设时长的标识和探测数据包。
[0094] 即对于标识中的任意一个标识,在该标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探测数据包。
[0095] S203的目的在于,降低探测数据包被破解的可能性,从而提高安全性。
[0096] S204:在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包,并存储重新生成的探测数据包的标识。
[0097] 有可能,某个类型的探测数据包全部因为设置时长过长而被全部删除,因此,需要重新生成该类型的探测数据包,并存储标识,以保证对于预设类型的链路状态探测。
[0098] S205:依据预设的配置信息,通过相同端口发送预设类型的探测数据包。
[0099] 具体的,在任意一种类型连续探测失败的次数小于配置信息指示的失败次数的情况下,按照该类型的配置信息指示的发送间隔,发送已存储的标识对应的该类型的探测数
据包。
[0100] 需要说明的是,前述设置时长的计时,在标识生成的时刻即开始计时,并且,只要有标识存在,计时始终持续,与是否发送探测数据包、以及是否接收到数据包均无关。但发
送探测数据包时需要按照标识,发送具有未超时标识的探测数据包。
[0101] 需要说明的是,可以同步发送多种类型的探测数据包,在此情况下,同步发送的多种类型的数据包的配置信息里的发送间隔需要相同。
[0102] S206:依据探测数据包和接收到的数据包,确定包括端口的链路的状态信息。
[0103] S207:依据状态信息定制方的定制类型,向状态信息定制方发送定制类型的状态信息。
[0104] 图2所示的链路状态提供方法,具有以下优点:
[0105] 1、对于任意一个端口,可以实现多种类型数据包的链路探测,因此,能够为不同的模块提供不同类型的探测结果,从而满足不同模块对于不同类型探测结果的需求。
[0106] 2、用户通过一次配置,可以实现多种类型数据包的链路探测。
[0107] 进一步的,从逻辑角度划分,路由器通常包括控制层和转发层,图2所示的方法中,S201-S204由控制层实现,S205-S206由转发层实现。
[0108] S207中,与状态信息定制方的通信接口,设置在控制层,该通信接口用于接收状态信息定制方的定制类型,定制类型的状态信息的发送,由转发层实现。
[0109] 需要强调的是,转发层实现S206的具体方式可以为:调用第一进程实现S206。
[0110] 第一进程还具有以下功能:在确定包括端口的链路的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并后的状态信息。
[0111] 其中,合并同一个端口的链路状态信息,并按照预设间隔时长,周期性发送合并后的状态信息,能够减少路由器内运行的各个进程之间的通信次数,尤其在网络不稳定,同时
配置了大量链路探测的情况下,能够显著降低链路探测的资源占用量,从而降低链路探测
对需要获取探测结果的进程的不利影响。
[0112] 图3为本申请实施例公开的又一种链路状态提供方法,在上述实施例相比,重点说明如何依据发送和接收到的数据包,确定链路状态,以及向定制方提供的定制的状态信息
的具体方式,图3所示的流程中包括以下步骤:
[0113] S301:依据预设的配置信息,通过相同端口发送预设类型的探测数据包。
[0114] S302:依据探测数据包的标识和接收到的数据包的标识,确定包括端口的链路的状态信息。
[0115] 具体的,在接收到任意一个数据包后,先确定该数据包的类型,并调用类型对应的解析程序解析数据包,再使用解析得到的对照参数进行哈希运算,得到对照标识。最后,如
果对照标识能够在上述实施例中所述的已存储的标识中查找到相同的标识,则确定链路对
于该类型的数据包可用,否则,确定链路对于该类型的数据包不可用。
[0116] 其中,Ping类型的数据包的对照参数为数据包的序列号和随机生成的ID,Dns类型的数据包的对照参数为数据包的ID和发送端口的信息确定。Arp类型的数据包的对照参数
为数据包的源地址和目的地址。对照参数得到对照标识的方式,与上述得到标识的方式相
同。更为详细的实现方式可以参见现有技术,这里不再赘述。
[0117] 因为本实施例中,使用多种类型的探测数据包进行探测,因此,状态信息包括多种类型的状态信息,其中,任意一种类型的状态信息用于指示链路对于该类型的数据包可用
或不可用。
[0118] S303:在状态信息发送变更的情况下,如果发生变更的为定制类型的状态信息,则向状态信息定制方发送定制类型的状态信息。
[0119] 其中,定制类型为所述预设类型中的至少一种类型,对于本实施例举例的三种类型,定制类型可以为Ping类型、Dns类型和Arp类型中的至少一种。
[0120] 状态信息定制方可以为路由器中的模块,例如双机备份模块或路由模块。不同的状态信息定制方依据自身的业务逻辑,设置的定制类型有可能不同,例如双机备份模块的
定制类型为Arp类型,而路由模块的定制类型为Ping类型和Dns类型。
[0121] 可选的,为了保证链路探测状态的时效性,在状态信息发送变更的情况下,如果发生变更的为定制类型的状态信息,则向状态信息定制方发送所述定制类型的状态信息。
[0122] 图3所示的链路状态提供方法,使得需求模块可以定制状态探测的类型,有利于需求模块更好地执行业务逻辑。
[0123] 图4为本申请实施例公开的一种链路状态提供装置,包括:发送模块41、确定模块42和状态提供模块43,可选的,还可以包括存储模块44。
[0124] 具体的,发送模块41用于依据预设的配置信息,通过相同端口发送预设类型的探测数据包,预设类型包括预设的多种类型。
[0125] 可选的,预设类型包括:Ping、Dns和Arp的至少一项。
[0126] 其中,预设类型中的任意一种类型的配置信息包括:该类型对应的目的地址,目的地址的数量为多个。预设类型中的任意一种类型的探测数据包分别依据多个目的地址配置
生成。可选的,预设类型中的任意一种类型的配置信息还包括:发送间隔和失败次数。
[0127] 在此情况下,发送模块41依据预设的配置信息,通过相同端口发送预设类型的探测数据包的具体实现方式为:在任意一种类型连续探测失败的次数小于失败次数的情况
下,按照该类型的配置信息指示的发送间隔,发送已存储的标识对应的该类型的探测数据
包。
[0128] 确定模块42用于依据探测数据包和接收到的数据包,确定包括端口的链路的状态信息,状态信息包括预设类型的状态信息,其中,任意一种类型的状态信息用于指示链路对
于该类型的数据包可用或不可用。
[0129] 进一步的,确定模块42依据探测数据包和接收到的数据包,确定包括端口的链路的状态信息的具体实现方式为:调用第一进程,实现依据探测数据包和接收到的数据包,确
定包括端口的链路的状态信息的过程。进一步的,第一进程还用于:在确定包括端口的链路
的状态信息后,合并同一个端口的链路的状态信息,并按照预设间隔时长,周期性发送合并
后的状态信息。
[0130] 状态提供模块43用于依据状态信息定制方的定制类型,向状态信息定制方发送定制类型的状态信息,定制类型为预设类型中的至少一种类型,定制类型的状态信息用于指
示链路对于定制类型的数据包可用或不可用。
[0131] 进一步的,状态提供模块43在端口的链路的状态信息发送变更的情况下,如果发生变更的为定制类型的状态信息,则向状态信息定制方发送定制类型的状态信息。
[0132] 存储模块44用于在发送模块通过相同端口发送预设类型的探测数据包之前,在依据配置信息生成预设类型的探测数据包后,存储预设类型的探测数据包的标识,其中,任意
一个Ping类型的探测数据包的标识由该探测数据包的序列号和随机生成的ID确定,任意一
个Dns类型的探测数据包的标识由该探测数据包的随机生成的ID和发送端口的信息确定,
任意一个Arp类型的探测数据包的标识由该探测数据包源地址和目的地址确定。以及,存储
模块还用于:在存储预设类型的探测数据包的标识之后,对于标识中的任意一个标识,在该
标识的设置时长超过预设时长的情况下,删除已存储的该标识和具有该标识探测数据包;
在任意一种类型不存在探测数据包的情况下,重新生成该类型的探测数据包;存储重新生
成的探测数据包的标识。
[0133] 图4所示的链路状态提供装置,能够使用相同的端口探测链路的对于多种类型的数据包是否可用,并能够依据状态信息定制方指定的定制类型,向状态信息定制方发送定
制类型的状态信息,从而满足状态信息定制方对于不同类型的链路探测结果的需求。
[0134] 本申请实施例还公开了一种路由器,包括处理器和存储器,处理器和存储器可以通过总线连接。
[0135] 其中,处理器用于:依据预设的配置信息,通过相同端口发送预设类型的探测数据包,依据探测数据包和接收到的数据包,确定包括端口的链路的状态信息,依据状态信息定
制方的定制类型,向状态信息定制方发送定制类型的状态信息。存储器用于存储处理器运
行的应用程序,以及处理器运行过程中产生的数据。
[0136] 具体的,处理器的功能的具体实现方式,可以参见图1、图2或图3所示的流程,这里不再赘述。
[0137] 本实施例的路由器,作为数据转发设备,能够满足其中不同模块探测不同类型的链路状态的需求,因此,具有更优的性能。
[0138] 本申请实施例还公开了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行图1、图2或图3所示的链路状态提供方法。
[0139] 本申请实施例方法所述的功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算设备可读取存储介质中。基于这样的理解,本申请实
施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,
该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计
算机,服务器,移动计算设备或者网络设备等)执行本申请各个实施例所述方法的全部或部
分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随
机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介
质。
[0140] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
[0141] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一
致的最宽的范围。