网络探测方法、装置、计算机设备和存储介质转让专利

申请号 : CN201811638816.1

文献号 : CN111385162B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孟蕊张冠星

申请人 : 广州市百果园信息技术有限公司

摘要 :

本发明提供一种网络探测方法、装置、计算机设备和存储介质,所述方法包括:获取与本服务器建立过连接的网络地址;根据所述网络地址生成记录所述服务器的上下游关系的探测列表;根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测。上述网络探测方法,考虑了服务本身的服务依赖关系,关注服务对应服务器之间的上下游关系以及上下游关系对应的网络,减少关注许多不必要的网络,降低网络探测的规模,提高网络探测的效率。

权利要求 :

1.一种网络探测方法,其特征在于,包括如下步骤:

获取与本服务器建立过连接的网络地址,包括:基于针对请求的所述服务器与其他服务器之间的服务依赖关系,确定其他服务器的网络地址;

根据所述网络地址生成记录所述服务器的上下游关系的探测列表,包括:根据网络地址和本服务器所在网络拓扑结构生成探测列表,其中,探测列表用于记录与服务器具有上下游关系的设备的网络地址;

根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测,包括:将服务器按所述网络拓扑结构进行排序,得到展示各所述网络地址的分位时延信息的网络连通图表,根据所述网络连通图表对网络故障位置进行定位,所述分位时延信息由网络地址对应的服务器针对网络探测做出响应的延时时间确定。

2.根据权利要求1所述的网络探测方法,其特征在于,所述根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测的步骤,包括:向所述探测列表的网络地址发送探测包,对所述服务器与所述上下游关系的设备之间进行网络探测。

3.根据权利要求2所述的网络探测方法,其特征在于,在所述获取与本服务器建立过连接的网络地址的步骤之前,还包括:与网络设备建立连接,并采集所述网络设备的网络地址;

在网络地址记录表中存储所述网络设备的网络地址,其中,所述网络地址记录表用于记录与所述服务器建立过连接的网络地址。

4.根据权利要求2所述的网络探测方法,其特征在于,所述根据所述网络地址和所述本服务器所在网络拓扑结构生成探测列表的步骤,包括:根据所述网络地址在所述网络拓扑结构的位置,确定所述网络地址与所述服务器之间的上下游关系;

将所述网络地址按照所述上下游关系进行排序;

将排序后的网络地址作为所述探测列表。

5.根据权利要求4所述的网络探测方法,其特征在于,所述方法还包括:获取已部署服务的网络地址,其中,所述已部署服务的网络地址为已部署网络探测服务的服务器的网络地址,所述网络探测服务用于响应所述探测包;

根据所述已部署服务的网络地址从所述建立过连接的网络地址中提取未部署网络地址,其中,未部署服务的网络地址为未部署所述网络探测服务的网络地址;

触发所述未部署服务的网络地址对应的设备部署所述网络探测服务;

所述将排序后的网络地址作为所述探测列表的步骤,包括:从所述排序后的网络地址中移除所述未部署服务的网络地址;

将移除后剩余的网络地址作为所述探测列表。

6.根据权利要求2所述的网络探测方法,其特征在于,所述方法还包括:向所述探测列表中的网络地址发送探测请求,其中,所述探测请求为请求包;

启动所述网络地址的延时时间的计时;

在接收任一个网络地址的响应时,停止该网络地址的延时时间的计时;

根据所述延时时间获取与所述网络地址之间的延时信息。

7.根据权利要求6所述的网络探测方法,其特征在于,所述方法还包括:在任一个网络地址的延时时间等于超时阈值时,向该网络地址的设备重新发送所述探测请求;

根据该网络地址的延时时间和发送所述网络请求的发包次数计算与所述网络地址的设备之间的丢包率。

8.根据权利要求7所述的网络探测方法,其特征在于,所述根据该网络地址的延时时间和发送所述网络请求的发包次数计算与所述网络地址的设备之间的丢包率的步骤,包括:统计单位时间内的丢包个数和单位时间内的发包次数,其中,所述丢包个数是根据该网络地址的延时时间确定;

将所述丢包个数除以所述发包次数,得到所述丢包率。

9.根据权利要求6所述的网络探测方法,其特征在于,所述延时信息包括分位时延信息;所述根据所述延时时间获取与所述网络地址之间的延时信息的步骤,包括:根据所述网络地址的延时时间统计所述网络地址的分位时延信息。

10.根据权利要求9所述的网络探测方法,其特征在于,所述延时时间包括当前延时时间和历史延时时间;

所述根据所述网络地址的延时时间统计所述网络地址的分位时延信息的步骤,包括:获取所述网络地址的当前延时时间,获取所述网络地址最近的历史延时时间;

根据所述当前延时时间和所述历史延时时间的总个数,以及分位时延信息的分位数,确定取样位置数;

将所述历史延时时间和当前延时时间按照时间从短向长的顺序进行排序,获得延时时间序列;

提取所述延时时间序列中处于所述取样位置数对应位置的取样延时时间,将所述取样延时时间作为所述分位时延信息。

11.一种网络探测装置,其特征在于,包括:

网络地址获取模块,用于获取与本服务器建立过连接的网络地址,包括:基于针对请求的所述服务器与其他服务器之间的服务依赖关系,确定其他服务器的网络地址;

探测列表生成模块,用于根据所述网络地址生成记录所述服务器的上下游关系的探测列表,包括:根据网络地址和本服务器所在网络拓扑结构生成探测列表,其中,探测列表用于记录与服务器具有上下游关系的设备的网络地址;

网络探测模块,用于根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测,包括:将服务器按所述网络拓扑结构进行排序,得到展示各所述网络地址的分位时延信息的网络连通图表,根据所述网络连通图表对网络故障位置进行定位,所述分位时延信息由网络地址对应的服务器针对网络探测做出响应的延时时间确定。

12.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至

10中任一项所述网络探测方法的步骤。

13.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至10中任一项所述网络探测方法的步骤。

说明书 :

网络探测方法、装置、计算机设备和存储介质

技术领域

[0001] 本发明涉及计算机网络技术领域,具体而言,本发明涉及一种网络探测方法、网络探测装置、计算机设备和存储介质。

背景技术

[0002] 随着互联网的发展和普及,互联网网络的规模日趋扩大,许多企业也都建立了自己的网络。现在互联网服务的企业一般使用高速网络连接的服务器,该网络内部一般采用以太网交换机和路由器来构建。
[0003] 一般企业中网络的网络拓扑结构会随着业务的发展而不断地变化,大多数互联网服务要求网络能够提供一定的稳定性保证,因此需要定时对网络进行探测,以保障网络的稳定性。
[0004] 现有网络探测方法一般是两个服务器之间互相通过网络诊断工具发送网络检测包进行网络探测,此时网络探测的规模较大,获得很多不必要的网络信息,浪费网络资源和探测时间,导致网络探测的效率低。

发明内容

[0005] 本发明的目的旨在至少能解决上述的技术缺陷之一,特别是网络探测效率低的技术缺陷。
[0006] 本发明提供一种网络探测方法,包括如下步骤:
[0007] 获取与本服务器建立过连接的网络地址;
[0008] 根据所述网络地址生成记录所述服务器的上下游关系的探测列表;
[0009] 根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测。
[0010] 在一个实施例中,所述根据所述网络地址生成记录所述服务器的上下游关系的探测列表的步骤,包括:根据所述网络地址和所述本服务器所在网络拓扑结构生成所述探测列表,其中,所述探测列表用于记录与所述服务器具有所述上下游关系的设备的网络地址;
[0011] 所述根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测的步骤,包括:向所述探测列表的网络地址发送探测包,对所述服务器与所述上下游关系的设备之间进行网络探测。
[0012] 在一个实施例中,在所述获取与本服务器建立过连接的网络地址的步骤之前,还包括:与网络设备建立连接,并采集所述网络设备的网络地址;在网络地址记录表中存储所述网络设备的网络地址,其中,所述网络地址记录表用于记录与所述服务器建立过连接的网络地址。
[0013] 在一个实施例中,所述根据所述网络地址和所述本服务器所在网络拓扑结构生成探测列表的步骤,包括:
[0014] 根据所述网络地址在所述网络拓扑结构的位置,确定所述网络地址与所述服务器之间的上下游关系;将所述网络地址按照所述上下游关系进行排序;将排序后的网络地址作为所述探测列表。
[0015] 在一个实施例中,所述方法还包括:
[0016] 获取已部署服务的网络地址,其中,所述已部署服务的网络地址为已部署网络探测服务的服务器的网络地址,所述网络探测服务用于响应所述探测包;根据所述已部署服务的网络地址从所述建立过连接的网络地址中提取未部署网络地址,其中,未部署服务的网络地址为未部署所述网络探测服务的网络地址;触发所述未部署服务的网络地址对应的设备部署所述网络探测服务;
[0017] 所述将排序后的网络地址作为所述探测列表的步骤,包括:
[0018] 从所述排序后的网络地址中移除所述未部署服务的网络地址;将移除后剩余的网络地址作为所述探测列表。
[0019] 在一个实施例中,所述方法还包括:
[0020] 向所述探测列表中的网络地址发送探测请求,其中,所述探测请求为请求包;启动所述网络地址的延时时间的计时;在接收任一个网络地址的响应时,停止该网络地址的延时时间的计时;根据所述延时时间获取与所述网络地址之间的延时信息。
[0021] 在一个实施例中,所述方法还包括:
[0022] 在任一个网络地址的延时时间等于超时阈值时,向该网络地址的设备重新发送所述探测请求;根据该网络地址的延时时间和发送所述网络请求的发包次数计算与所述网络地址的设备之间的丢包率。
[0023] 在一个实施例中,所述根据该网络地址的延时时间和发送所述网络请求的发包次数计算与所述网络地址的设备之间的丢包率的步骤,包括:
[0024] 统计单位时间内的丢包个数和单位时间内的发包次数,其中,所述丢包个数是根据该网络地址的延时时间确定;将所述丢包个数除以所述发包次数,得到所述丢包率。
[0025] 在一个实施例中,所述延时信息包括分位时延信息;根据所述延时时间获取与所述网络地址之间的延时信息的步骤,包括:
[0026] 根据所述网络地址的延时时间统计所述网络地址的分位时延信息。
[0027] 在一个实施例中,所述延时时间包括所述当前延时时间和历史延时时间;所述根据所述网络地址的延时时间统计所述网络地址的分位时延信息的步骤,包括:
[0028] 获取所述网络地址的当前延时时间,获取所述网络地址最近的历史延时时间;根据所述当前延时时间和所述历史延时时间的总个数,以及分位时延信息的分位数,确定取样位置数;将所述历史延时时间和当前延时时间按照时间从短向长的顺序进行排序,获得延时时间序列;提取所述延时时间序列中处于所述取样位置数对应位置的取样延时时间,将所述取样延时时间作为所述分位时延信息。
[0029] 在一个实施例中,在根据所述网络地址的延时时间统计所述网络地址的分位时延信息之后,还包括:
[0030] 根据各所述网络地址的分位时延信息生成可视化的网络连通图表;根据所述网络连通图表对网络故障位置进行定位。
[0031] 本发明还提供一种网络探测装置,包括:
[0032] 网络地址获取模块,用于获取与本服务器建立过连接的网络地址;
[0033] 探测列表生成模块,用于根据所述网络地址生成记录所述服务器的上下游关系的探测列表;
[0034] 网络探测模块,用于根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测。
[0035] 本发明还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上述任一实施例所述网络探测方法的步骤。
[0036] 本发明还提供一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述任一实施例所述网络探测方法的步骤。
[0037] 上述的网络探测方法、装置、计算机设备和存储介质,考虑了服务本身的服务依赖关系,关注服务对应服务器之间的上下游关系以及上下游关系对应的网络,减少关注许多不必要的网络,降低网络探测的规模,提高网络探测的效率。
[0038] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

[0039] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0040] 图1为一个实施例中网络探测方法的实施环境图;
[0041] 图2为一个实施例中网络探测方法的流程图;
[0042] 图3为一个实施例中网络连通图表的结构示意图;
[0043] 图4为另一个实施例中网络探测方法的流程图;
[0044] 图5为一个实施例中网络探测装置的结构示意图;
[0045] 图6为一个实施例中计算机设备的内部结构示意图。

具体实施方式

[0046] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0047] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
[0048] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0049] 本技术领域技术人员可以理解,这里所使用的远端网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,远端网络设备、终端设备与WNS服务器之间可通过任何通讯方式实现通讯,包括但不限于,基于3GPP、LTE、WIMAX的移动通讯、基于TCP/IP、UDP 协议的计算机网络通讯以及基于蓝牙、红外传输标准的近距无线传输方式。
[0050] 如图1所示,图1为一个实施例中网络探测方法的实施环境图,在该实施环境中,网络拓扑结构包括主干交换机、叶交换机和服务器。
[0051] 网络拓扑结构会随着服务的发展而不断地变化,一个请求往往会经过众多服务才能获得最终结果,不同服务需要依赖于不同服务器和网络部件 ,因此为满足服务的实现,需要保障不断变化的网络拓扑结构中服务器之间的网络稳定。
[0052] 在一个实施例中,如图2所示,图2为一个实施例中网络探测方法的流程图,本实施例中提出了一种网络探测方法,该网络探测方法可以应用于上述的服务器中,具体可以包括以下步骤:
[0053] 步骤S210:获取与本服务器建立过连接的网络地址。
[0054] 往往一个请求会经过众多服务,因此服务器之间具有服务依赖关系,实际服务中,服务器与服务器之间建立连接,并获得所连接服务器的网络地址,此时,即在与其他服务的服务依赖关系下,可以收集其他服务对应服务器的网络地址。本服务器在实际提供的服务中,一般采用通用的后端服务架构,该架构可以使用状态变量记录与之建立链接的网络地址,比如可以通过http接口获取网络地址。
[0055] 步骤S220:根据网络地址生成记录服务器的上下游关系的探测列表。
[0056] 服务之间具有服务依赖关系,因此在服务依赖关系下对应服务器之间存在上下游关系,在上下游关系下相关服务器之间网络使用频率较大,值得关注的程度较高,有必要关注该上下游关系下的网络情况,对其进行探测。
[0057] 此时,需要通过上下游关系确定网络探测范围,本步骤中通过探测列表表示该网络探测范围。上一步骤中获取的网络地址是在与其他服务连接时所收集的,因此该网络地址是可以反映服务依赖关系的依赖信息。本步骤中,进一步对网络地址进行分析,借助网络地址在网络拓扑结构分布的层次和位置,可以确定所依赖的上下游关系,以及确定和记录与该上下游关系相关的设备,如服务器、交换机等。在其中一种实施方式下,探测列表可以记录探测范围内服务器的网络地址,也可以记录其他用于标识服务器和其他设备的标识信息,以便于发起对应设备间的网络探测。
[0058] 步骤S230:根据探测列表对服务器在上下游关系中的网络进行网络探测。
[0059] 对探测列表记载的各个服务器发起网络探测,形成对服务器在上下游关系的网络探测。
[0060] 上述网络探测,考虑了服务本身的服务依赖关系,关注服务对应服务器之间的上下游关系以及上下游关系对应的网络,减少关注许多不必要的网络,降低网络探测的规模,提高网络探测的效率。
[0061] 传统的网络探测的方法,是两两服务器之间互相发送探测包进行网络探测,以N个服务器组成的网络拓扑结构为例,此时探测规模为N×(N -1)次。而通过本服务器根据探测列表进行网络探测,此时探测规模可以下降至N次,大大降低探测规模,以及提高了探测效率。
[0062] 在一个实施例中,步骤S220中根据网络地址生成记录服务器的上下游关系的探测列表的步骤,可以包括:
[0063] (1)根据网络地址和本服务器所在网络拓扑结构生成探测列表,其中,探测列表用于记录与服务器具有上下游关系的设备的网络地址。
[0064] 网络拓扑结构记录了整个网络中各个设备之间的连接关系,上下游关系包含该网络中相关设备的网络连接关系,上下游关系可以借助设备之间的连接关系进行表征和确立。在其中一种实施方式下,可以根据网络地址对应服务器和本服务器在网络拓扑结构中的位置,确定上下游关系;另外也可以根据网络地址对应服务器在网络拓扑结构中层次、服务器群组区域和服务器群组关系等,确定上下游关系。
[0065] 步骤S230中根据探测列表对服务器在上下游关系中的网络进行网络探测的步骤,可以包括:
[0066] (2)向探测列表的网络地址发送探测包,对服务器与上下游关系的设备之间进行网络探测。
[0067] 上述网络探测方法,通过探测包进行网络探测,探测方式简单且快捷。
[0068] 在一个实施例中,在步骤S210获取与本服务器建立过连接的网络地址的步骤之前,还可以包括:
[0069] A:与网络设备建立连接,并采集网络设备的网络地址。
[0070] B:在网络地址记录表中存储网络设备的网络地址,其中,网络地址记录表用于记录与服务器建立过连接的网络地址。
[0071] 上述网络探测方法,网络设备依赖本服务器的服务,或本服务器依赖网络设备的服务时,本服务器每次与网络设备建立连接,本服务器采集并记录网络设备的网络地址,即记录了服务依赖关系中上游的网络地址或下游的网络地址。
[0072] 在一个实施例中,进一步地,步骤(1)根据网络地址和本服务器所在网络拓扑结构生成探测列表的步骤,可以包括:
[0073] (1)a:根据网络地址在网络拓扑结构的位置,确定网络地址与服务器之间的上下游关系。
[0074] 根据网络地址对应设备在网络拓扑结构中的位置,确定网络地址对应设备与本服务器之间的上下游关系。
[0075] (1)b:将网络地址按照上下游关系进行排序;将排序后的网络地址作为探测列表。
[0076] 本步骤中,可以对上下游关系的网络地址以就近原则的方式进行排序,以便于位置相近的网络地址有序分布,便于查找。例如,同一个交换机所连接的服务器对应的网络地址可以相邻排序;放置在同一个房间内的服务器对应的网络地址可以相邻排序;按照不同层次、不同区间对网络地址进行排序。这样子有利于在相近的若干个服务器的出现故障,根据探测列表中网络地址的排序中,可以快速查找相邻或相关区域。
[0077] 上述网络探测方法,按照有序排列的网络地址进行网络探测,探测结果可以据此有序存储,也便于后续网络故障位置的查找。
[0078] 在一个实施例中,可以预先将网络探测服务部署在服务器中,如在将排序后的网络地址作为探测列表的步骤之前,网络探测方法还可以包括:
[0079] ①获取已部署服务的网络地址,其中,已部署服务的网络地址为已部署网络探测服务的服务器的网络地址,网络探测服务用于响应探测包;
[0080] ②根据已部署服务的网络地址从建立过连接的网络地址中提取未部署服务的网络地址,其中,未部署服务的网络地址为未部署网络探测服务的网络地址;
[0081] ③触发未部署服务的网络地址对应的设备部署网络探测服务。
[0082] 上述①至③的步骤,可以将网络探测服务部署在服务器上,特别是对未部署服务器的服务器进行网络探测服务的部署,从而方便下一次探测时调用探测服务。
[0083] 其中步骤(1)b中将排序后的网络地址作为探测列表的步骤,可以包括:
[0084] ④从排序后的网络地址中移除未部署服务的网络地址;
[0085] ⑤将移除后剩余的网络地址作为探测列表。
[0086] 上述网络探测方法,向已部署网络探测服务的服务器发送探测包,避免向没有部署该网络探测服务的服务器发送探测包,避免网络探测的误报。
[0087] 在一个实施例中,网络探测方法还可以包括:
[0088] 1)向探测列表中的网络地址发送探测请求,其中,探测请求为请求包。
[0089] 探测请求优选采用具有服务的真实的请求包,即采用为线上服务真实使用的请求包,从而使探测情况尽可能接近真实情况,提高网络探测的稳定性,如TCP包或者http包等。探测请求可以不包括icmp数据包,因为icmp数据包容易导致受方宕机。
[0090] 2)启动网络地址的延时时间的计时。
[0091] 3)在接收任一个网络地址的响应时,停止该网络地址的延时时间的计时。
[0092] 接收的网络地址的响应可以应答协议的计算机指令,触发停止延时时间的计时。
[0093] 4)根据延时时间获取与网络地址之间的延时信息。
[0094] 对持续过程内的延时时间进行分析和统计,得到反映网络状态的延时信息,例如通过分位时延信息反映历史的延时时间的分布情况,还可以分析持续时间内丢包的平均情况。
[0095] 上述网络探测方法,通过稳定的请求包探测网络的延时时间,并分析获得反映网络状态的延时信息,提高网络探测的稳定性,也减少对网络系统和服务器的影响。
[0096] 在一个实施例中,网络探测方法还可以包括:
[0097] I:在任一个网络地址的延时时间等于超时阈值时,向该网络地址的设备重新发送探测请求。
[0098] 此时,网络探测超时仍未收到反馈,则进行重新发送探测请求进行重试。
[0099] II:根据该网络地址的延时时间和发送网络请求的发包次数计算与网络地址的设备之间的丢包率。
[0100] 上述网络探测方法,可以准确地计算实时的丢包率。
[0101] 在一个实施例中,进一步地,步骤II中根据该网络地址的延时时间和发送网络请求的发包次数计算与网络地址的设备之间的丢包率的步骤,可以包括:
[0102] II‑a:统计单位时间内的丢包个数和单位时间内的发包次数,其中,丢包个数是根据该网络地址的延时时间确定。
[0103] 网络探测过程中,会先根据正常网络情况预估一个超时阈值,按照实际时延情况的时延时间与超时阈值进行对比来判定是否发生了丢包,以及确定丢包的次数。
[0104] II‑b:将丢包个数除以发包次数,得到丢包率。
[0105] 上述网络探测方法,统计平均的丢包率,客观地分析网络的持续状态。
[0106] 在一个实施例中,延时信息可以包括分位时延信息;根据延时时间获取与网络地址之间的延时信息的步骤,可以包括:
[0107] 根据网络地址的延时时间统计网络地址的分位时延信息。
[0108] 上述网络探测方法,分位时延信息可以代表在持续时间内的延时时间分布中,位于某个百分位比例位置的延时时间的大小,用于反映持续时间内延时分布的水平。例如,有100个延时时间,由小到大进行排序获得延时分布,将位列第90个的延时时间作为90分位时延信息。
[0109] 在一个实施例中,延时时间可以包括当前延时时间和历史延时时间;上述的根据网络地址的延时时间统计网络地址的分位时延信息的步骤,可以包括:
[0110] a)获取网络地址的当前延时时间,获取网络地址最近的历史延时时间;
[0111] b)根据当前延时时间和历史延时时间的总个数,以及分位时延信息的分位数,确定取样位置数;
[0112] c)将历史延时时间和当前延时时间按照时间从短向长的顺序进行排序,获得延时时间序列;
[0113] d)提取延时时间序列中处于取样位置数对应位置的取样延时时间,将取样延时时间作为分位时延信息。
[0114] 例如在99个最近的历史延时时间和1个当前延时时间中,由小到大对该100个延时时间进行排序获得延时分布,将位列第90个的延时时间作为90分位时延信息。此时,使用了时延时间来描述分位时延信息,分位时延信息亦可称为分位时延时间,此处的90分位时延信息也可描述为 90分位时延时间。
[0115] 上述网络探测方法,可以准确地计算若干百分比下的分位时延信息。
[0116] 在一个实施例中,在根据网络地址的延时时间统计网络地址的分位时延信息的步骤之后,还可以包括:
[0117] (a)根据各网络地址的分位时延信息生成可视化的网络连通图表;
[0118] (b)根据网络连通图表对网络故障位置进行定位。
[0119] 在一个实施方式中,如图3所示,图3为一个实施例中网络连通图表的结构示意图。网络连通图表每一小格代表分位时延信息,阴影小格代表分位时延信息小于容忍阈值,白色小格代表分位时延信息大于容忍阈值。图3(1)至(4)的网络连通图表是根据14个服务器之间网络的分位时延信息进行绘制的。第一行至第十四行依次分别代表14个服务器与其他服务器的连接状态的分位时延信息,第一列至第十四列依次分别代表其他服务器与14个服务器的连接状态的分位时延信息,即第一行第一列的小格代表第一个服务器与第一个服务器之间的分位时延信息,第二行第三列的小格代表第二个服务器与第三个服务器之间的分位时延信息。
[0120] 如图3(1)所示,各个分位时延信息都小于容忍阈值,此时代表网络状态为正常。但是以图3(2)所示,第二个和第三个服务器与其他服务器之间的分位时延信息都大于容忍阈值,此时判定网络故障出现在第二个和第三个服务器上;进一步的,如果第二个服务器和第三个服务器在上下游关系中相邻,则可以推断网络故障发生在第二个服务器和第三个服务器的最高层路由器上,显浅地说,如果第二个服务器和第三个服务器位于同一个房间,该房间只有这两个服务器,可以快速推断该房间的路由器出现问题。图3(3)的网络情况同理可得。另外图3(4)表示的展示的是只有对角线的分位时延信息小于容忍阈值,代表自身服务器与自身服务器之间存在网络连接,但其他服务器两两之间的连接出现故障,说明上述 14个服务器的最上层的主干服务器出现了问题而导致了故障。
[0121] 另外,网络连通图表的每个小格可以根据分位时延信息大小划分不同的区间,不同区间用不同颜色或图案表示,例如,随着分位时延信息增大,小格的颜色加深,可以直观的探测出网络的时延时间在加长,实时跟踪网络服务水平,以便于技术关注网络、查找故障和维护网络。
[0122] 在另一个实施例中,如图4所示,图4为另一个实施例中网络探测方法的流程图,本实施例中提供一种网络探测方法,包括:
[0123] 0、网络探测服务:
[0124] 网络探测服务部署在所有服务器上。它的主要功能概括为:
[0125] 1)定时生成服务器的上下游关系的探测列表;
[0126] 2)根据该探测列表定时发探测包,一般定时的时间间隔可以为3s;
[0127] 3)响应其他服务器发出的探测请求,例如可以采用简单的echo应答协议,此时网络探测服务既是服务端又是客户端;
[0128] 4)记录网络探测服务的延时信息和丢包率等指标;
[0129] 5)网络探测服务性能指标到指标收集客户端。
[0130] 1、基于依赖关系的服务器的上下游关系的探测列表生成算法:
[0131] 1)收集本服务器上部署的其他服务所依赖的上下游服务的网络地址。
[0132] 在我们实际服务中,可以采用是通用的后端服务器架构,该架构使用状态变量记录与之建立链接的网络地址,并可以通过http接口获取。
[0133] 2)把上步得到的网络地址列表与当前网络探测服务的部署设备的网络地址列表取交,两者取交构成最终的探测列表。这样可以避免往没有部署网络探测服务的服务器发送测试包而造成误报。
[0134] 3)第一步中有但未部署网络探测服务的会触发自动部署,在下次生成探测列表时即可生效。
[0135] 传统的做法,是两两服务器互相发送探测包进行网络探测。探测规模是n的平方级别的(n为总设备数)。这样做的缺陷是,没有考虑到服务器本身依赖的上下游服务信息。关注了很多不必要的网络信息。按照上面三步根据服务器实时依赖关系生成关注网络情况最小生成树,这种做法更加高效合理。
[0136] 2、探测请求:此处探测请求的探测包不是icmp的探测包,为了定位延迟与丢包,最好采用具体服务真实的请求包,一般为tcp或者http包。
[0137] 3、性能计算:
[0138] (1)丢包率计算:
[0139] 根据时延计算得出,假设初始化探测请求的超时时间为100ms,所以当时延为100ms左右时认为丢包一次。当超时发生时,会进行重试,并且加倍该超时时间,所以当时延为300ms时,认为丢包两次。丢包率由一定时间内丢包的个数和发包次数进行相除得到的结果,例如该一定时间可以设置为1分钟。超时时间的设置可以根据实际网络情况进行调整,上述只是为了方便理解而暂时设置为100ms,其他长短的超时时间也是可以适用的。
[0140] (2)性能指标:一般90分位的时延信息能够较好说明当前的网络状况,因此用于上报的指标可以包括90分位时延以及丢包率。
[0141] 4、定时数据分析任务:
[0142] 可以大体分成两种任务:
[0143] 1)近实时分析任务:比如收集延时,丢包数据、网络连通图表的绘制。
[0144] 2)小时级或天级任务:主要进行服务质量探测等。
[0145] 5、故障定位:
[0146] 1)判断是否为网络问题:
[0147] 如果90分位延时和丢包率明显上涨,则可以肯定为网络问题。
[0148] 2)网络问题具体定位:
[0149] 借助可视化工具来帮助定位。如图3对应的实施例所示,将服务器按网络拓扑中位置进行排序,即保证相同交换机下的服务器的网络地址相邻。
[0150] 上述网络探测方法,有效地确认是否为网络问题,以及网络问题出错初步定位。极大地缩小了排查范围,为跟踪实时网络服务水平提供极大的便利。
[0151] 在一个实施例中,如图5所示,图5为一个实施例中网络探测装置的结构示意图,本实施例中提供一种网络探测装置,包括网络地址获取模块 510、探测列表生成模块520和网络探测模块530,其中:
[0152] 网络地址获取模块510,用于获取与本服务器建立过连接的网络地址。
[0153] 探测列表生成模块520,用于根据所述网络地址生成记录所述服务器的上下游关系的探测列表。
[0154] 网络探测模块530,用于根据所述探测列表对所述服务器在上下游关系中的网络进行网络探测。
[0155] 上述网络探测装置,考虑了服务本身的服务依赖关系,关注服务对应服务器之间的上下游关系以及上下游关系对应的网络,减少关注许多不必要的网络,降低网络探测的规模,提高网络探测的效率。
[0156] 关于网络探测装置的具体限定可以参见上文中对于网络探测方法的限定,在此不再赘述。上述网络探测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0157] 如图6所示,图6为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种网络探测方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种网络探测方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0158] 在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例中网络探测方法的步骤。
[0159] 在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中网络探测方法的步骤。
[0160] 在一个实施例中,处理器执行计算机可读指令时还执行上述任一实施例中网络探测方法的步骤。
[0161] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0162] 以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。