1.本技术涉及计算机技术领域,特别是涉及一种网络拓扑构建方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术:2.随着网络信息时代的不断发展,网络应用在日常生产生活中的日益普及,人们对计算机网络的依赖程度越来越高。网络自身的安生性和可靠性变的尤为重要,随着工业控制自动化进程的深入,工业控制网络不断面临着来自外部互联网的恶意攻击和内部人员的误操作等威胁。为了维护计算机网络,网络运维人员需要时刻掌握网络设备的状态信息。
3.目前,大部分的网络运维人员通过拓扑图来对网络进行规划和设计,当网络规模较小、复杂度较低时,运维人员可以通过人工的方式来管理网络的拓扑结构,但是在网络复杂度较大的场景中,人工管理的工作方式工作量大,网络设备拓扑图的构建效率低。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种高效的网络拓扑构建方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
5.第一方面,本技术提供了一种网络拓扑构建方法。该方法包括:
6.对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
7.根据网络资产信息,提取不同网段的主网络设备;
8.探测主网络设备之间的路径关系;
9.根据路径关系,确定可连接网络设备的层级;
10.根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
11.在其中一个实施例中,对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备包括:获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
12.在其中一个实施例中,探测主网络设备之间的路径关系包括:对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
13.在其中一个实施例中,根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系包括:从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
14.在其中一个实施例中,根据路径关系,确定可连接网络设备的层级包括:确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
15.在其中一个实施例中,根据主网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级包括:根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
16.第二方面,本技术还提供了一种网络拓扑构建装置。该装置包括:
17.探测模块,用于对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
18.提取模块,用于根据网络资产信息,提取不同网段的主网络设备;
19.路径探测模块,用于探测主网络设备之间的路径关系;
20.层级确定模块,用于根据路径关系,确定可连接网络设备的层级;
21.构建模块,用于根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
22.第三方面,本技术还提供了一种计算机设备。该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现以下步骤:
23.对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
24.根据网络资产信息,提取不同网段的主网络设备;
25.探测主网络设备之间的路径关系;
26.根据路径关系,确定可连接网络设备的层级;
27.根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
28.第四方面,本技术还提供了一种计算机可读存储介质。该计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
29.对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
30.根据网络资产信息,提取不同网段的主网络设备;
31.探测主网络设备之间的路径关系;
32.根据路径关系,确定可连接网络设备的层级;
33.根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
34.第五方面,本技术还提供了一种计算机程序产品。该计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
35.对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
36.根据网络资产信息,提取不同网段的主网络设备;
37.探测主网络设备之间的路径关系;
38.根据路径关系,确定可连接网络设备的层级;
39.根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
40.上述网络拓扑构建方法、装置、计算机设备、存储介质和计算机程序产品,通过对不同网段进行探测,得到可连接的网络设备,并探测可连接的网络设备中主网络设备之间的路径关系,确定可连接网络设备的层级,进而根据网络设备层级以及连接关系构建拓扑图。整个过程中,基于不同网段主网络设备之间的路径关系,明确整个网络中可连接网络设备的层级关系,以便确定在构建网络拓扑图时不同层级网络设备的构建顺序,从而有序基于可连接网络设备之间的连接关系构建网络拓扑图,可以实现简单高效的网络拓扑构建。
附图说明
41.图1为一个实施例中网络拓扑构建方法的应用环境图;
42.图2为一个实施例中网络拓扑构建方法的流程示意图;
43.图3为一个实施例中网络拓扑示意图;
44.图4为另一个实施例中网络拓扑构建的流程示意图;
45.图5为一个实施例中网络拓扑构建装置的结构框图;
46.图6为一个实施例中计算机设备的内部结构图。
具体实施方式
47.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
48.本技术实施例提供的网络拓扑构建方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102向服务器104发送网络拓扑构建请求,服务器104响应网络拓扑构建请求,并对网络拓扑请求进行解析,获取不同网段信息,对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备、所述可连接网络设备之间的连接关系以及所述可连接网络设备的网络资产信息;根据所述网络资产信息,提取所述不同网段的主网络设备;探测所述主网络设备之间的路径关系;根据所述路径关系,确定所述可连接网络设备的层级;根据所述可连接网络设备的层级以及所述可连接网络设备之间的连接关系,构建网络拓扑图。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
49.在一个实施例中,如图2所示,提供了一种网络拓扑构建方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
50.步骤202,对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络
设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息。
51.其中,网段指的是需要进行网络设备探测的网段,网段指包含一段ip地址的网段区间,例如,如一个网段可以为[115.157.200.0-115.157.200.250],不同网段指的是多个包含不同网段的探测范围。
[0052]
网络资产信息包括网络设备的ip地址、mac地址、设备类型等。设备类型包括路由器、主机、交换机等。本技术的网络拓扑构建方法根据路由器与主机这两种网络类型来构建网络拓扑,其他设备类型的构建方法类似,本技术不在不作限定。
[0053]
具体地,服务器获取终端发送的网络拓扑构建请求,网络拓扑构建请求中携带需要探测的不同网段。服务器对网络拓扑构建请求进行解析,得到需要探测的不同网段。服务器对不同网段中每一个ip地址对应的网络设备依次进行网络探测,并接收返回的网络探测结果。在网络探测结果为连通的情况下,ip地址对应的网络设备为可连接网络设备,服务器向可连接网络设备发送arp(address resolution protocol,地址解析协议),获取可连接网络设备的mac地址等网络资产信息。服务器还可以探测可连接网络设备与可连接网络设备ip地址所在网段中其他网络设备的连接情况,得到可连接网络设备之间的连接关系。
[0054]
步骤204,根据网络资产信息,提取不同网段的主网络设备。
[0055]
其中,主网络设备指的是设备类型为路由器的网络设备。其他网络设备类型则为边缘设备,如主机这类网络设备。
[0056]
具体地,服务器提取网络资产信息中的设备类型,将设备类型为路由器的网络设备作为主网络设备,设备类型为主机的网络设备为边缘设备。
[0057]
步骤206,探测主网络设备之间的路径关系。
[0058]
其中,路径关系指的是多个网络中路由器之间的路径关系,即不同网段之间的连接情况。
[0059]
具体地,每个网段中部署有网络探针,网络探针可以进行路径探测服务,网络探针部署在网段的首地址或者尾地址所在的网络设备中,部署有网路探针服务的网络设备为网络探测设备。服务器向网络探测设备发送路径探测命令,以探测网段中路由器之间的路径关系。路径探测命令可以为traceroute命令,用来识别一个设备到另一个设备的网络路径。
[0060]
当路径探测完成后,网络探测设备会向服务器返回路径探测结果。路径探测结果中包括该网段中连通的路由器ip之间的路径关系。如在[115.157.200.250-10.68.141.129]网段中,路径探测结果为“115.157.200.250”,“115.157.200.253”,“10.2.24.2”,“10.2.28.230”,“*”,“10.2.28.237”,“10.2.28.254”,“*”,“10.62.255.253”,“10.68.141.129”。则网段[115.157.200.250-10.68.141.129]中路由器之间的路径依次为“115.157.200.250”,“115.157.200.253”,“10.2.24.2”,“10.2.28.230”,“*”,“10.2.28.237”,“10.2.28.254”,“*”,“10.62.255.253”,“10.68.141.129”。“*”为在路径探测过程中可以探测到该设备连通,但是无法获取其设备ip的情况下,将ip设置为“*”。如果在遍历路径中的节点时,如果遇到未知ip,即“*”时,对其进行编号,记录该节点前后两边最近的不为“*”的节点位置,与同部分的其他路径上的同位置进行匹配,如果匹配成功,则说明这两个ip为同一个设备,将这两个节点对应起来。
[0061]
步骤208,根据路径关系,确定可连接网络设备的层级。
[0062]
具体地,服务器根据路径关系,设置路径关系中第一个路由器的层级设定为预设
默认层级,其他路由器的层级按照路径关系,往后依次递增。对于网段中与路由器连接的主机,路由器层级确定后,根据与路由器连接的跳数来确定主机层级。进一步地,根据与主机连接的路由器层级加上主机与路由器之间的跳数,得到主机层级。
[0063]
步骤210,根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0064]
具体地,将可连接网络设备层级进行排序,得到排序后的可连接网络设备,再根据排序后的可连接网络设备之间的连接关系,构建网络拓扑图。
[0065]
上述网络拓扑构建方法中,通过对不同网段进行探测,得到可连接的网络设备,并探测可连接的网络设备中主网络设备之间的路径关系,确定可连接网络设备的层级,进而根据网络设备层级以及连接关系构建拓扑图。整个过程中,基于不同网段主网络设备之间的路径关系,明确整个网络中可连接网络设备的层级关系,以便确定在构建网络拓扑图时不同层级网络设备的构建顺序,从而有序基于可连接网络设备之间的连接关系构建网络拓扑图,可以实现简单高效的网络拓扑构建。
[0066]
在一个可选的实施例中,对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备包括:获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
[0067]
具体地,服务器获取终端发送的网络拓扑构建请求,网络拓扑构建请求中携带需要探测的不同网段。服务器对网络拓扑构建请求进行解析,得到需要探测的不同网段对应的ip地址集合。终端发送的网络拓扑构建请求可以是定时发送,由用户设定每间隔固定的时间段,向服务器发送网络拓扑构建请求,以及时发现网络设备的更新情况,对网络拓扑进行更新,提高网络拓扑的及时性。终端发送的网络拓扑构建请求也可以是由用户在终端显示界面触发网络拓扑构建操作,终端根据网络拓扑构建操作生成网络拓扑构建请求并发送至服务器。
[0068]
服务器根据ip地址集合,生成针对每一个ip地址的ping命令,同时向不同网段的ip地址对应的网络设备发送ping命令,并接收每个ip地址对应的网络设备返回的网络探测结果。在网络探测结果为连通的情况下,ip地址对应的网络设备为可连接网络设备,服务器向可连接网络设备发送arp(address resolution protocol,地址解析协议),获取可连接网络设备的mac地址以及设备类型等网络资产信息。服务器还可以探测可连接网络设备与可连接网络设备ip地址所在网段中其他网络设备的连接情况,得到可连接网络设备之间的连接关系。
[0069]
本实施例中,服务器通过对不同网段中每一个ip地址对应的网络设备同时发送ping命令,以得到每个ip地址对应的网络设备的连通情况,采用并行的方式对多个网络设备进行探测,可以提高网络拓扑构建的效率。
[0070]
在一个可选的实施例中,探测主网络设备之间的路径关系包括:对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
[0071]
具体地,每个网段中部署有网络探针,网络探针可以进行路径测试服务。网络探针包括正向网络探针和逆向网络探针。正向网络探针部署在网段的首地址所在的网络设备
中,逆向网络探针部署在尾地址所在的网络设备中,部署有网路探针服务的网络设备为网络测试设备。
[0072]
服务器向网络探测设备发送路径测试命令,以测试网段中路由器之间的路径关系。路径测试命令可以为traceroute命令,用来识别一个设备到另一个设备之间连通的网络路径。
[0073]
正向网络探针的网络探测设备接收到路径测试命令后,以其作为起点,往后测试可连接的路由器设备,当测试到逆向网络探针所在的网络探测设备后,停止探测,返回正向路径测试结果。正向路径测试结果中包含从正向网络探针的网络探测设备ip到逆向网络探针的网络探测设备ip之间的全部路由器设备ip。
[0074]
逆向网络探针的网络探测设备接收到路径测试命令后,以其作为起点,往前测试可连接的路由器设备,当测试到正向网络探针所在的网络探测设备后,停止探测,返回逆向路径测试结果。逆向路径测试结果中包含从逆向网络探针的网络探测设备ip到正向网络探针的网络探测设备ip之间的全部路由器设备ip。
[0075]
由于路由的接入ip与接出的ip不同,所以对同一个路由器进行正向路径测试和逆向路径测试,得到的ip会不同。服务器将正向路径测试结果从头开始依次与逆向路径测试结果的尾部进行匹配,正向路径测试结果与逆向路径测试结果中匹配的两个ip为同一个路由器的两个ip,根据匹配之后的路由器ip以及路由器之前的连接关系,得到路由器之间的路径关系。
[0076]
本实施例中,通过对不同网段之间的路由器之间的路径进行正向路径测试以及逆向路径测试,并根据正向路径测试结果和逆向路径测试结果进行匹配,得到路由器之间的准确路径关系,避免路由器的两个ip作为两个主设备构建网络拓扑时的失误,提高了网络拓扑构建的准确率。
[0077]
在一个可选的实施例中,根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系包括:从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0078]
具体地,服务器在对正向路径测试结果与逆向路径测试结果匹配的过程中,从正向路径测试结果中从前往后依次提取节点,得到正向探测ip节点,从逆向路径测试结果中逆向依次提取节点,得到逆向节点。将正向节点与逆向节点一一进行配对,得到路由器的两个ip,根据路由器的两个ip以及正向路径测试结果中路由器的先后顺序,得到路由器之间的路径关系。或者,根据路由器的两个ip以及逆向路径测试结果中路由器的先后顺序,得到路由器之间的路径关系。
[0079]
在一个可选的实施例中,根据主网络设备之间的路径长度,确定可连接网络设备的层级包括:确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
[0080]
其中,路径长度指的是可连接网络设备之间的网络跳数,需要以一个可连接网络设备为起点,来计算其他可连接网络设备与起点之间的网络跳数,得到路径长度。
[0081]
具体地,由于存在有的路由器仅有一个接入ip,无接出ip的情况,查找路由器ip中
仅有一个ip的网络设备,将仅有一个ip的路由器设备作为被动主网络设备,将被动主网络设备的层级设定为1。在一种实施例中,服务器还可以将路由器路径关系中最前端的路由器作为被动主网络设备。根据路径关系以及其他可连接网络设备的连接关系确定其他可连接网络设备的层级。
[0082]
预设默认层级也可以指定为其他数值,本实施例在此不作限定。将不同网段中其他可连接网络设备与被动主网络设备的连接跳数作为路径长度,将预设默认层级加上路径长度,得到其他可连接网络设备的层级。
[0083]
在一个可选的实施例中,根据主网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级包括:根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0084]
其中,从网络设备指的是边缘设备,如主机等。
[0085]
具体地,服务器首先确定每一个主网络设备的层级,将路由器路径关系中最前端的路由器作为被动主网络设备,从被动主网络设备开始,往后的路由器层级依次加1。即,根据主网络设备与被动主网络设备之间的连接跳数,确定与被动主网络设备的路径长度,将被动主网络设备的预设默认层级加上与被动主网络设备的路径长度,得到该主网络设备的层级。接着,从边缘数据库中获取与主网络设备连接的边缘设备,将主网络设备的层级加上与边缘设备之间的连接跳数,得到边缘设备的层级。然后,将可连接网络设备层级进行排序,得到排序后的可连接网络设备,再根据排序后的可连接网络设备之间的连接关系,构建网络拓扑图,图3给出了网络拓扑图的简单示意图,其中长方形所示为主机,椭圆形为路由器,路由器的接入ip与接出ip都在图中显示。
[0086]
进一步地,服务器将路由器设备存入根节点数据库中,将主网络设备之间路径关系(即路由器之间的路径关系)存入边缘节点数据库中,将主网络设备与边缘设备之间的连接关系(即路由器与主机之间的连接关系)存入边缘数据中。
[0087]
(1)获取根节点总数root_num,边缘节点总数edge_num;转入步骤(2);
[0088]
(2)设置节点计数器root_count=1;转入步骤(3);
[0089]
(3)判断当前节点计数器root_count是否小于根节点总数root_num,如果是,则将第root_num个节点设为当前根节点,设置层级计数器level=1,设置该结点层级level_num=level,转入步骤(4),否则;
[0090]
(4)设置边缘计数器edge_count=1;转入步骤(5);
[0091]
(5)判断当前边缘计数器edge_count是否小于边缘总数edge_num,如果是转入步骤(6),否则转入步骤(9);
[0092]
(6)判断第edge_count条边缘对应的根节点是否是当前根节点,如果是转入步骤(7),否则转入步骤(8);
[0093]
(7)获取第edge_count条边缘对应的尾节点,将其设置为当前根节点,查看当前的节点级别,如果当前结点级别存在且小于level+1,则设置该节点的级别为level+1,否则设置该节点的级别为level_num+1,设置level_num=level_num+1,level=level+1,返回步骤(4);
[0094]
(8)设置edge_count=edge_count+1,返回步骤(5);
[0095]
(9)设置root_count=root_count+1,返回步骤(3)。
[0096]
当得到所有的可连接网络设备的层级后,根据层级大小对可连接网络设备进行排序,生成网络拓扑图,并显示每一个可连接网络设备的设备类型,ip信息以及在线状态。将网络拓扑图的节点排列成水平层,这样大多数边从一层向下延伸到下一层;在这一步之后,每一个级别内的节点都会被排列,以尽量减少交叉。
[0097]
(10)获取到数据库中设备的数量和设备关系的数量,将生成的网络拓扑图转换为矢量图片.svg,判断该svg文件是否存在,若存在,转入步骤(11),否则过程结束,在程序输出处输出“cannot open”;
[0098]
(11)使用qt的svg组件显示步骤(10)中生成的svg文件,创建画布并调用qsvgrenderer类中的render(painter)方法绘制画布中的控件,通过步骤(10)中获取到的设备的数量和设备关系的数量,创建画布上的所有控件;转入步骤(12);
[0099]
(11.1)计算步骤(10)获取到的设备的数量和设备关系的数量的总和,创建对应数量的qgraphicssvgitem类型控件,将每个控件存入列表中,设置计数器i=0;
[0100]
(11.2)判断i是否小于设备的关系数量,如果是,转入步骤(11.2),否则设置i=0,转入步骤(115);
[0101]
(11.3)将列表中第i个控件的控件id(elementid)设置为“edge+i”,转入步骤(11.4);
[0102]
(11.4)设置i=i+1,返回步骤(11.2);
[0103]
(11.5)判断i是否小于设备的数量,如果是,转入步骤(11.6),否则步骤(11)结束;
[0104]
(11.6)将列表中第i个控件的控件id(elementid)设置为“node+i”,转入步骤(11.7);
[0105]
(11.7)设置i=i+1,返回步骤(11.5);
[0106]
(12)打开绘制完成的画布,网络资产拓扑图生成成功,过程结束。
[0107]
本实施例能够生成指定网段中的网络设备之间的关系拓扑图,同时可以显示每台设备的设备类型和在线状态。本实施例可以对不同网段中的网络设备状态进行实时检测,在网络发生变动时,实时记录探测到的网络资产信息,根据资产信息的属性更新为新.svg文件,通过qt的svg组件进行展示,同时不需要网络设备支持任何协议,只要扫描到该设备的存在,即可对其设备状态进行探测。
[0108]
本实施例总体代码量较小,且不需要花费大量时间和精力对拓扑图自动布局部分进行维护,同时支持对复杂的网络设备环境进行拓扑描述。
[0109]
为了易于理解本技术实施例提供的技术方案,如图4所示,以完整的网络拓扑构建过程对本技术实施例提供的网络拓扑构建方法进行简要说明:
[0110]
(1)获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息。
[0111]
(2)根据网络资产信息,提取不同网段的主网络设备。
[0112]
(3)对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果。
[0113]
(4)从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结
果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0114]
(5)确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级。
[0115]
(6)根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0116]
(7)根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0117]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0118]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的网络拓扑构建方法的网络拓扑构建装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个网络拓扑构建装置实施例中的具体限定可以参见上文中对于网络拓扑构建方法的限定,在此不再赘述。
[0119]
在一个实施例中,如图5所示,提供了一种网络拓扑构建装置,包括:探测模块,其中:
[0120]
探测模块502,用于对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息。
[0121]
提取模块504,用于根据网络资产信息,提取不同网段的主网络设备。
[0122]
路径探测模块506,用于探测主网络设备之间的路径关系。
[0123]
层级确定模块508,用于根据路径关系,确定可连接网络设备的层级。
[0124]
构建模块510,用于根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0125]
在一个实施例中,探测模块502还用于获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
[0126]
在一个实施例中,路径探测模块506还用于对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
[0127]
在一个实施例中,路径探测模块506还用于从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向
节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0128]
在一个实施例中,层级确定模块508还用于确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
[0129]
在一个实施例中,层级确定模块508还用于根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0130]
上述网络拓扑构建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0131]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储可连接网络设备以及可连接网络设备之间的连接关系数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络拓扑构建方法。
[0132]
本领域技术人员可以理解,图6中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0133]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0134]
对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
[0135]
根据网络资产信息,提取不同网段的主网络设备;
[0136]
探测主网络设备之间的路径关系;
[0137]
根据路径关系,确定可连接网络设备的层级;
[0138]
根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0139]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备包括:获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
[0140]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
[0141]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系包括:从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0142]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据路径关系,确定可连接网络设备的层级包括:确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
[0143]
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据主网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级包括:根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0144]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0145]
对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
[0146]
根据网络资产信息,提取不同网段的主网络设备;
[0147]
探测主网络设备之间的路径关系;
[0148]
根据路径关系,确定可连接网络设备的层级;
[0149]
根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0150]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备包括:获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
[0151]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
[0152]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系包括:从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0153]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据路径关系,确定可连接网络设备的层级包括:确定主网络设备中的被动主网络设备;将被动主网络设备
设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
[0154]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据主网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级包括:根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0155]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
[0156]
对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备,并识别可连接网络设备之间的连接关系以及可连接网络设备的网络资产信息;
[0157]
根据网络资产信息,提取不同网段的主网络设备;
[0158]
探测主网络设备之间的路径关系;
[0159]
根据路径关系,确定可连接网络设备的层级;
[0160]
根据可连接网络设备的层级以及可连接网络设备之间的连接关系,构建网络拓扑图。
[0161]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对不同网段对应的网络设备进行探测,得到不同网段对应的可连接网络设备包括:获取不同网段对应的ip地址集合;根据ip地址集合,对不同网段的ip地址对应的网络设备进行探测,得到不同网段对应的可连接网络设备。
[0162]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对不同网段的主网络设备进行正向路径测试,得到正向路径测试结果;对不同网段的主网络设备进行逆向路径测试,得到逆向路径测试结果;根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系。
[0163]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据正向路径测试结果以及逆向路径测试结果进行匹配,得到主网络设备之间的路径关系包括:从正向路径测试结果中正向依次提取节点,得到正向节点;从逆向路径测试结果中逆向依次提取节点,得到逆向节点;根据正向节点与逆向节点进行匹配,得到匹配成功的主网络设备;根据匹配成功的主网络设备在正向路径测试结果或者逆向路径测试结果中的连接关系,得到主网络设备之间的路径关系。
[0164]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据路径关系,确定可连接网络设备的层级包括:确定主网络设备中的被动主网络设备;将被动主网络设备设定预设默认层级;根据可连接网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级。
[0165]
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据主网络设备与被动主网络设备之间的路径长度,确定可连接网络设备的层级包括:根据主网络设备与被动主网络设备之间的路径长度,确定主网络设备的层级;根据主网络设备的层级以及与主网络设备连接的从网络设备的连接关系,确定从网络设备的层级。
[0166]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户
授权或者经过各方充分授权的信息和数据。
[0167]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0168]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0169]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。