网络拓扑生成方法、装置和计算机设备与流程

文档序号:24538928发布日期:2021-04-02 10:21阅读:113来源:国知局
网络拓扑生成方法、装置和计算机设备与流程

本发明涉及计算机网络技术领域,尤其涉及一种网络拓扑生成方法、装置和计算机设备。



背景技术:

随着信息时代的到来,计算机网络运行的可靠性至关重要,对网络管理有着较高的要求。网络拓扑生成的主要目的是获取和维护网络节点的存在信息和它们之间的连接关系信息,并在此基础上绘制出整个网络拓扑图。网络管理人员在拓扑图的基础上对故障节点进行快速定位。现有的拓扑生成算法主要可以分为三类:基于snmp(简单网络管理协议)的网络拓扑生成方法、基于通用协议的网络拓扑生成方法以及基于路由协议的网络拓扑生成方法。目前的拓扑生成方法大多是基于snmp协议,即网络管理工作站发送查询消息给被管设备,被管设备收到消息后作出应答。这样,网络管理工作站需要不断地发送查询请求,同时结合ping来判断网络是否可达,增加了硬件的消耗,且工作效率低。



技术实现要素:

本发明的目的旨在至少在一定程度上解决上述的技术问题之一。

为此,本发明的第一个目的在于提出一种网络拓扑生成方法,能够节省资源,提高工作效率。

本发明的第二个目的在于提出一种网络拓扑生成装置。

本发明的第三个目的在于提出一种计算机设备。

本发明的第四个目的在于提出一种非临时性计算机可读存储介质。

为了实现上述目的,本发明第一方面实施例提出一种网络拓扑生成方法,该方法包括:

接收多个网段中的路由器定时发送的链路层发现协议lldp信息,其中,每个网段对应至少一个路由器,所述路由器用于采集自身所在网段内的lldp信息;

对所述lldp信息进行预处理,并生成信息链表;

利用网段拓扑生成算法,对所述信息链表中的信息进行处理,并生成网段拓扑图;

利用网络拓扑生成算法整合所述网段拓扑图生成网络拓扑图。

可选的,方法还包括:

在生成所述网络拓扑图之后,输出所述网络拓扑图。

输出网络拓扑图,显示给网络管理人员,方便网络管理人员根据网络拓扑图对网络进行管理。

可选的,所述lldp信息包括主机id、目的地址、接口信息、接口地址以及目的主机id。

能够更加精准的获取lldp信息。

可选的,利用网段拓扑生成算法,对所述信息链表中的信息进行处理,并生成网段拓扑图,包括:

设置第一指针结构体和第二指针结构体;

利用第一指针结构体扫描并获取所述信息链表中的主机信息;

利用所述第二指针结构体扫描并获取所述信息链表中的交换机信息;

根据所述主机信息和所述交换机信息生成所述网段拓扑图。

通过对生成网段拓扑图步骤的细化,获取主机信息和交换机信息,生成准确的网段拓扑图。

可选的,利用网络拓扑生成算法整合所述网段拓扑图生成网络拓扑图,包括:

获取第一路由器的lldp信息;

获取第二路由器的lldp信息;

判断所述第二路由器的lldp信息中的主机id是否在所述信息链表中;

如果所述第二路由器的lldp信息中的主机id在所述信息链表中,则进一步判断所述第一路由器的lldp信息中的第一接口信息和所述第二路由器的lldp信息中的第二接口信息是否相同;

如果所述第一接口信息和所述第二接口信息相同,则连接第一路由器和第二路由器。

在第一接口信息和第二接口信息相同的情况下,连接第一路由器和第二路由器,生成准确的网络拓扑图。

可选的,利用网络拓扑生成算法整合所述网段拓扑图生成网络拓扑图,还包括:

如果所述第二路由器的lldp信息中的主机id不在所述信息链表中,则进一步判断第二路由器的lldp信息中的目的地址所对应的主机id是否在所述信息链表中,如果所述第二路由器的lldp信息中的目的地址所对应的主机id在所述信息链表中,则连接所述第一路由器和所述第二路由器。

在第二路由器的主机id不在信息链表的情况下,反向查找目的地址的主机id,实现连接第一路由器和第二路由器,生成准确的网络拓扑图。

可选的,利用网络拓扑生成算法整合所述网段拓扑图生成网络拓扑图,还包括:

遍历网络中所有路由器的lldp信息;

依次将当前路由器的lldp信息与在其之前的路由器的lldp信息一一进行对比,以确定所述当前路由器与在其之前的路由器之间的连接关系。

分段采集信息,提升数据采集效率。

本发明实施例的网络拓扑生成方法,通过接收多个网段中的路由器定时发送的lldp信息,以及利用网段拓扑生成算法生成网段拓扑图,利用网络拓扑生成算法生成网络拓扑图,能够节省资源,提高工作效率。

为了实现上述目的,本发明第二方面实施例提出了一种网络拓扑生成装置,包括:

接收模块,用于接收多个网段中的路由器定时发送的链路层发现协议lldp信息,其中,每个网段对应至少一个路由器,所述路由器用于采集自身所在网段内的lldp信息;

预处理模块,用于对所述lldp信息进行预处理,并生成信息链表;

第一生成模块,用于利用网段拓扑生成算法,对所述信息链表中的信息进行处理,并生成网段拓扑图;

第二生成模块,用于利用网络拓扑生成算法整合所述网段拓扑图生成网络拓扑图。

可选的,装置还包括:

输出模块,用于在生成所述网络拓扑图之后,输出所述网络拓扑图。

可选的,所述lldp信息包括主机id、目的地址、接口信息、接口地址以及目的主机id。

可选的,所述第一生成模块,用于:

设置第一指针结构体和第二指针结构体;

利用第一指针结构体扫描并获取所述信息链表中的主机信息;

利用所述第二指针结构体扫描并获取所述信息链表中的交换机信息;

根据所述主机信息和所述交换机信息生成所述网段拓扑图。

可选的,所述第二生成模块,用于:

获取第一路由器的lldp信息;

获取第二路由器的lldp信息;

判断所述第二路由器的lldp信息中的主机id是否在所述信息链表中;

如果所述第二路由器的lldp信息中的主机id在所述信息链表中,则进一步判断所述第一路由器的lldp信息中的第一接口信息和所述第二路由器的lldp信息中的第二接口信息是否相同;

如果所述第一接口信息和所述第二接口信息相同,则连接第一路由器和第二路由器。

可选的,所述第二生成模块,还用于:

如果所述第二路由器的lldp信息中的主机id不在所述信息链表中,则进一步判断第二路由器的lldp信息中的目的地址所对应的主机id是否在所述信息链表中,如果所述第二路由器的lldp信息中的目的地址所对应的主机id在所述信息链表中,则连接所述第一路由器和所述第二路由器。

可选的,所述第二生成模块,还用于:

遍历网络中所有路由器的lldp信息;

依次将当前路由器的lldp信息与在其之前的路由器的lldp信息一一进行对比,以确定所述当前路由器与在其之前的路由器之间的连接关系。

本发明实施例的网络拓扑生成装置,通过接收多个网段中的路由器定时发送的lldp信息,以及利用网段拓扑生成算法生成网段拓扑图,利用网络拓扑生成算法生成网络拓扑图,最后输出网络拓扑图,能够节省资源,提高工作效率。

为了实现上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的网络拓扑生成方法。

为了实现上述目的,本发明第四方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如第一方面实施例所述的网络拓扑生成方法。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明一个实施例的网络拓扑生成方法的流程图;

图2是本发明一个实施例的生成网段拓扑图的流程图;

图3是本发明一个实施例的生成网络拓扑图的流程图;

图4是本发明另一个实施例的生成网络拓扑图的流程图;

图5是本发明另一个实施例的网络拓扑生成方法的流程图;

图6是本发明一个具体实施例的网络结构示意图;

图7是本发明一个具体实施例的网络管理工作站的结构示意图;

图8是本发明一个具体实施例的生成网段拓扑图的流程图;

图9是本发明一个具体实施例的生成网络拓扑图的流程图;

图10是本发明一个实施例的网络拓扑生成装置的结构示意图;

图11是本发明另一个实施例的网络拓扑生成装置的结构示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

以下结合具体实施例对本发明作进一步详细描述,这些实施例不能理解为限制本发明所要求保护的范围。

下面参考附图描述本发明实施例的网络拓扑生成方法、装置和计算机设备。

图1是本发明一个实施例的网络拓扑生成方法的流程图,如图1所示,该方法包括以下步骤:

s1,接收多个网段中的路由器定时发送的链路层发现协议lldp信息。

其中,每个网段对应至少一个路由器,路由器用于采集自身所在网段内的lldp信息。lldp信息可包括主机id、目的地址、接口信息、接口地址、目的主机id等。

在现有技术中,网络管理工作站需要不断地发送查询请求,因此耗费了大量的资源。在本实施例中,无需网络管理工作站发送查询请求,而是将网络分为多个网段,每个网段都配备至少一个路由器,由路由器主动向网络管理工作站上报自身网段内的信息。

s2,对lldp信息进行预处理,并生成信息链表。

其中,预处理可包括筛除无效信息、归一化等操作。

s3,利用网段拓扑生成算法,对信息链表中的信息进行处理,并生成网段拓扑图。

如图2所示,生成网段拓扑图具体包括以下步骤:

s31,设置第一指针结构体和第二指针结构体。

其中,第一指针结构体用于扫描并获取主机信息,第二指针结构体用于获取交换机信息。

s32,利用第一指针结构体扫描并获取信息链表中的主机信息。

s33,利用第二指针结构体扫描并获取信息链表中的交换机信息。

s34,根据主机信息和交换机信息生成网段拓扑图。

s4,利用网络拓扑生成算法整合网段拓扑图生成网络拓扑图。

如图3所示,生成网络拓扑图具体包括以下步骤:

s41,获取第一路由器的lldp信息。

s42,获取第二路由器的lldp信息。

s43,判断第二路由器的lldp信息中的主机id是否在信息链表中。

s44,如果第二路由器的lldp信息中的主机id在信息链表中,则进一步判断第一路由器的lldp信息中的第一接口信息和第二路由器的lldp信息中的第二接口信息是否相同。如果相同,则跳转至步骤s45。如果不相同,则说明第一路由器和第二路由器之间没有连接关系,不进行连接。

s45,连接第一路由器和第二路由器。

如图4所示,生成网络拓扑图还包括:

s46,如果第二路由器的lldp信息中的主机id不在信息链表中,则进一步判断第二路由器的lldp信息中的目的地址所对应的主机id是否在信息链表中。如果第二路由器的lldp信息中的目的地址所对应的主机id在信息链表中,则跳转至步骤s45。即连接第一路由器和第二路由器。如果目的地址所对应的主机id不在信息链表中,则说明第一路由器和第二路由器之间没有连接关系,不进行连接。

上述步骤主要描述的是确定网络中第一路由器和第二路由器之间的连接关系。而生成网络拓扑图需要确定网络中所有路由器之间的连接关系。因此,还要遍历网络中所有路由器的lldp信息,再依次将当前路由器的lldp信息与在其之前的路由器的lldp信息一一进行对比,以确定当前路由器与在其之前的路由器之间的连接关系,以此生成完整的网络拓扑图。

本发明实施例的网络拓扑生成方法,通过接收多个网段中的路由器定时发送的lldp信息,以及利用网段拓扑生成算法生成网段拓扑图,利用网络拓扑生成算法生成网络拓扑图,能够节省资源,提高工作效率。

在本发明的另一个实施例中,如图5所示,网络拓扑生成方法还包括:

s5,在生成所述网络拓扑图之后,输出网络拓扑图。

减少硬件损耗,进一步提高工作效率。

下面通过一个具体实施例来对本发明的网络拓扑生成方法进行详细阐述。

首先,如图6所示,将一个网络分成若干个网段,以一个网段为单位,一个网段的路由器负责采集这个网段内各个主机的lldp信息,可以提升数据采集的效率。

其次,一个网段中的路由器将采集的lldp信息定时地发送给网络管理工作站。路由器每隔一定时间向网络管理工作站发送lldp信息来生成拓扑。每个路由器只负责管理本网段内拓扑信息,减少了设备之间的通信,从而有效的提升了设备的利用率。网络管理工作站可通过route-n命令获取路由表信息,并通过ifconfig命令获取接口信息。

下面详细介绍一下网络工作站。

如图7所示,网络管理工作站可包括接收单元61、处理器62、网段拓扑生成算法单元63、网络拓扑生成算法单元64和发送单元65。

其中,接收单元61,用于接收若干个网段中的路由器定时发送的各个主机的lldp信息。

处理器62,用于对接收的各个主机的lldp信息进行预处理,并将接收的lldp信息发送给网段拓扑生成算法单元63。

网段拓扑生成算法单元63,用于将接收的各个主机的lldp信息进行算法处理,并生成网段拓扑图。然后,网段拓扑生成算法单元63将网段拓扑图反馈至处理器62。处理器62再将网段拓扑图发送给网络拓扑生成算法单元64。

网络拓扑生成算法单元64,用于对网段拓扑图进行整合,生成网络拓扑图。

发送单元65,用于将生成的网络拓扑图输出。

下面详细描述生成网段拓扑图的具体过程。

如图8所示,可包括以下步骤:

s71、获取网段中的路由器发送的lldp信息记录。

将一条lldp信息记录设为route_info1。route_info1是一个含有指向结构体switchinfo以及结构体hostinfo指针的结构体。

s72、扫描结构体hostinfo指针所指向的内容。

结构体hostinfo内包含主机信息。

s73、扫描结构体switchinfo指针所指向的内容。

结构体switchinfo指针每扫描到一个switchinfo,就表示扫描到一个交换机。switchinfo中同样包含了指向hostinfo的指针,在扫描到交换机信息的时候,同时可以获得与该交换机关联的主机信息。

这样,便可以获取到lldp信息记录route_info1包含的主机信息和交换机信息。

s74、取下一条lldp信息记录,重复执行步骤s72到s73的过程。

遍历所有lldp信息记录,获取每条lldp信息记录中包含的主机信息和交换机信息,从而生成网段拓扑图。

下面详细描述生成网络拓扑图的具体过程。

如图9所示,可包括以下步骤:

s81、获取一个网段中的路由器发送的lldp信息记录。

假设一个路由器r1(r1_hostid,r1_iface,r1_ifaceip,r1_dip)。其中,hostid表示唯一标识主机,dip表示目的地址,iface表示转发接口,ifaceip表示转发接口的地址。

标识节点r1,并将r1_hostid以及r1_iface放入链表link中。标识r1相当于为r1标定一个标签,后续生成拓扑图过程中也可以通过该标签判定rn与r1是否有连接关系。

s82、获取第二个网段中的路由器发送的lldp信息记录。

设为r2(r2_hostid,r2_iface,r2_ifaceip,r2_dip)。

首先判断r2_hostid是否在链表link中,可分为两种情况。

1)当r2_hostid不在链表link中时

判断节点r2_dip对应的主机id是否在链表link中。如果在链表link中,则说明可以通过dip确定r1和r2之间是有连接关系的,所以将r1和r2相连。而如果r2_dip对应的主机id不在链表link中,则说明r1和r2没有连接关系,各自为独立的网络。

2)当r2_hostid在链表link中

判断r2_iface是否与链表link中对应的r1_iface相同。如果相同,则将r1和r2相连。如果不同,则r1和r2无连接关系。此时,r1和r2虽然无连接关系,但是可以通过标记r2的方式,使得后续的r4、r5等节点可以通过该标识查找到r2,从而确定后续的节点是否可以与r2有连接关系。例如,假如后续有r5_iface与r2_iface相同,则将r5和r2相连。当然,如果其他节点的iface与r2_iface相同,则可以将对应节点与r2的另一条边相连。

s83、遍历网络中所有路由器发送的lldp信息记录。

对于r3,r4,……,rn重复以上过程。

s84、清空链表link。

清空链表link的目的在于防止lldp信息记录被另作它用,保证信息安全;另外,在下一次利用链表link生成网络拓扑图时,如果链表link中残留有本次的lldp信息记录,会造成网络拓扑图生成错误。

本实施例通过路由器每隔一定时间向网络管理工作站发送信息来生成拓扑,而且每个路由器只负责管理本网段内的拓扑信息,减少了设备之间的通信,从而有效地提升了设备利用率和lldp信息的采集效率,防止数据丢失的同时,提升数据处理效率。

为了实现上述实施例,本发明还提出了一种网络拓扑生成装置。

图10是本发明一个实施例的网络拓扑生成装置的结构示意图。

如图10所示,该装置包括接收模块91、预处理模块92、第一生成模块93和第二生成模块94。

接收模块91,用于接收多个网段中的路由器定时发送的链路层发现协议lldp信息。

其中,每个网段对应至少一个路由器,路由器用于采集自身所在网段内的lldp信息。lldp信息包括主机id、目的地址、接口信息、接口地址以及目的主机id。

预处理模块92,用于对lldp信息进行预处理,并生成信息链表。

第一生成模块93,用于利用网段拓扑生成算法,对信息链表中的信息进行处理,并生成网段拓扑图。

第一生成模块93,具体用于设置第一指针结构体和第二指针结构体;利用第一指针结构体扫描并获取信息链表中的主机信息;利用第二指针结构体扫描并获取信息链表中的交换机信息;根据主机信息和交换机信息生成网段拓扑图。

第二生成模块94,用于利用网络拓扑生成算法整合网段拓扑图生成网络拓扑图。

第二生成模块94,具体用于获取第一路由器的lldp信息;获取第二路由器的lldp信息;判断第二路由器的lldp信息中的主机id是否在信息链表中;如果第二路由器的lldp信息中的主机id在信息链表中,则进一步判断第一路由器的lldp信息中的第一接口信息和第二路由器的lldp信息中的第二接口信息是否相同;如果第一接口信息和第二接口信息相同,则连接第一路由器和第二路由器。

第二生成模块94,还用于如果第二路由器的lldp信息中的主机id不在信息链表中,则进一步判断第二路由器的lldp信息中的目的地址所对应的主机id是否在信息链表中,如果第二路由器的lldp信息中的目的地址所对应的主机id在信息链表中,则连接第一路由器和第二路由器。

第二生成模块94,还用于遍历网络中所有路由器的lldp信息;依次将当前路由器的lldp信息与在其之前的路由器的lldp信息一一进行对比,以确定当前路由器与在其之前的路由器之间的连接关系。

应当理解的是,本实施例的网络拓扑生成装置与第一方面实施例的网络拓扑生成方法的描述一致,此处不再赘述。

本发明实施例的网络拓扑生成装置,通过接收多个网段中的路由器定时发送的lldp信息,以及利用网段拓扑生成算法生成网段拓扑图,利用网络拓扑生成算法生成网络拓扑图,最后输出网络拓扑图,能够节省资源,提高工作效率。

在本发明的另一个实施例中,如图11所示,网络拓扑生成装置还包括:

输出模块95,用于在生成所述网络拓扑图之后,输出网络拓扑图。

为了实现上述实施例,本发明还提出了一种计算机设备。

该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,实现如第一方面实施例的网络拓扑生成方法。

为了实现上述实施例,本发明还提出了一种非临时性计算机可读存储介质。

该非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面实施例的网络拓扑生成方法。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

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