跨网络的动态拓扑维护方法与流程

文档序号:11138478阅读:852来源:国知局
跨网络的动态拓扑维护方法与制造工艺

本发明涉及计算机网络通信,具体的讲是跨网络的动态拓扑维护方法。



背景技术:

随着通信和计算机技术的不断发展,计算机网络在人们生活中应用非常广泛,对社会的发展起着越来越重要的作用。网络中的设备数量和种类逐渐增多,网络规模越来越大,使得网络管理越来越复杂。动态拓扑维护方法作为网络管理的基础,不仅能够发现网络的拓扑结构,还能够为网络的故障管理、性能管理以及配置管理等提供支持。动态拓扑维护方法能够动态、全面的显示管理网络的运行情况,管理者能够更加容易监控和维护指定的网络。

跨网络的动态拓扑维护,指的是动态维护指定网络的拓扑,监控一个指定的网络中的所有设备节点如主机、交换机以及路由器等找出来。通过分析设备中的信息如路由表、ARP表等,得到设备节点之间的连接情况。常用的拓扑维护方法主要有:基于DNS协议的网络拓扑维护、基于RIP协议的网络拓扑维护、基于OSPF协议的网络拓扑维护以及基于ICMP协议的网络拓扑维护等。基于DNS协议的网络拓扑维护方法,主要利用DNS服务器中的域名到IP地址的映射获取主机信息。基于RIP协议的网络拓扑维护方法主要通过获取路由表信息,得到路由器连接的设备与子网络,遍历路由器连接的路由器,一直递归下去,直到遍历完整个网络。基于OSPF协议的网络拓扑维护方法与RIP类似,都是通过获取和分析路由表信息,得到网络中的设备信息以及设备的连接情况。基于ICMP协议的网络拓扑维护使用ping和traceroute命令实现,测试一个IP段里面的主机是否可达,监控和维护ip段内网络拓扑情况。

上面几种网络拓扑维护方法,有着不同的应用场景,且运行效率、拓扑维护的正确率也存在不同程度的缺陷。主要表现在网络负载、拓扑结构的正确性、发现拓扑结构的速度以及适用性等方面。如基于DNS协议的方法网络负载低,但正确率较低。基于RIP协议的方法正确率较高,只是用于较少网络。基于OSPF协议的方法正确率高,网络负载也很高。基于ICMP协议的方法网络负载较高且运行速度缓慢。



技术实现要素:

本发明提供了一种跨网络的动态拓扑维护方法,使针对各种类型的网络都可以保证正确率和网络负载低的方式进行动态拓扑维护。

本发明跨网络的动态拓扑维护方法,包括:

A.在指定网络中根据主机路由表信息,获取默认网关路由器,将默认网关路由器放入路由器队列中;

B.获取所述路由器队列中的一个路由器对象,作为当前路由器,遍历当前路由器的路由表信息,得到与其连接的子网和/或相邻的路由器;

C.对步骤B获取的路由器进行判重处理;

D.对所述路由器队列中的所有路由器对象执行步骤B和C;

E.遍历路由器队列中的路由器对象后,获取网络中路由器和子网的拓扑信息。

进一步的,步骤B中,根据当前路由器的路由表信息获取路由表当前表项的下一跳地址,根据下一跳地址是否为直接交付分别处理。

具体来讲,如果所述下一跳地址为直接交付,即下一跳地址为一个子网地址,则将所述下一跳地址关联为子网对象;如果下一跳地址为间接交付,即下一跳地址为路由器,则判断该路由器是否已经遍历过,如果已经遍历过该路由器,更新当前路由器和该路由器的连接信息,否则将该路由器放入路由器队列中;判断完下一跳地址的交付属性后,继续遍历路由器表项,直到遍历完成。

进一步的,步骤C的判重处理可避免对相同的路由器进行重复遍历,这样能够进一步提高拓扑判断的正确性,并且改善系统的运行时间。步骤C所述的判重处理,是通过遍历所述路由器队列,获取各路由器对象的路由表,如果路由器对象的路由表中有所获取路由器对象的下一跳IP,则该路由器对象已经遍历过,并将其从路由器队列删除后,否则将该路由器对象保持在路由器队列中。

在此基础上,步骤A还包括设置最大跳数阈值,表示了从起始路由器开始到达目的路由器所经过的路由器数目。如果在遍历中到达了最大跳数阈值路由器队列还没有遍历完,说明网络规模较大,在指定路由器跳数内无法完整的发现指定网络的网络拓扑,则停止遍历路由器队列,继续执行下一个步骤。

为了使本发明的动态拓扑维护方法能够具有良好的跨网络行,优选的是在动态拓扑维护中通过SNMP协议(简单网络管理协议)进行网络通信。

本发明跨网络的动态拓扑维护方法,不仅能够实时监控网络拓扑结构,有效降低网络负载,并且拓扑结构的维护过程运行速度快。明显提高了网络系统的拓扑判断正确性,满足了网络管理自动监控和维护指定网络拓扑的需求。

以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。

附图说明

图1为实施例中拓扑结构示意图。

图2为本发明跨网络的动态拓扑维护方法的流程图。

图3为图2中判重处理的流程图。

具体实施方式

通常一个网络由不同的通信设备组成,如主机、路由器、交换机以及网桥等设备。设备之间相互连接,通过通信协议进行通信。网络拓扑维护就是监控和维护网络所有的通信设备,以及设备之间的连接情况。

如图1所示的网络模型,在这个网络模型中有5台主机,分别用H1~H5表示,4台路由器,分别用R1~R4表示,4个子网络,分别用N1~N4表示。

本实施例是从该网络的主机H1开始,最后完成整个网络的拓扑监控和维护。

如图2所示本发明的跨网络的动态拓扑维护方法,步骤为:

A.在SNMP协议基础上,获取所述网络模型中的默认网关,构造路由器队列。同时设置能够发现的最大路由器跳数。

图1中,主机H1使用SNMP协议的get-request操作获取主机H1的IP路径表。通过获取所述IP路径表中的内容,得到主机H1的默认网关为路由器R1。初始化路由器队列,并将路由器R1放到路由器队列中作为一个路由器对象。同样的方法在路由器队列中放入路由器R2~R4的路由器对象。其中每个路由器对象有一个IpList(路由表)对象,用于存放该路由器各个端口对应的IP地址。

B.对路由器队列进行遍历。获取当前队列中的一个路由器对象作为当前路由器对象。例如第一次遍历时当前路由器对象为路由器R1。然后遍历当前路由器对象(路由器R1)的路由表信息,获取当前路由器对象的每一条路由表表项,即下一跳地址。例如图1中,当前路由器对象为路由器R1时,下一跳地址分别为路由器R3和子网N1的地址。

根据当前路由器对象的下一跳地址是否为直接交付分别处理:如果路由表中下一跳的ipRouteType字段的值表示为直接交付,则说明目标所在地址直接与当前路由器对象相连,即下一跳地址是一个子网。构造子网对象,设置子网信息,如子网掩码等,并关联到当前路由器的网络接口上。如遍历到路由器R1时,子网N1中的数据包为直接交付,则构造子网对象N1,并将其关联到路由器R1对象的网络接口上。

如果当前路由器对象的路由表中下一跳的ipRouteType字段的值表示为间接交付,说明目标地址所在的子网不是直接与当前路由器相连的,必须至少再经过一个路由器。即当前路由器下一跳地址为一个路由器对象。判断下一跳的路由器对象是否遍历过,如遍历到路由器R3,下一跳地址包括路由器R1、路由器R2和路由器R4。这时判断下一跳的路由器是否已经遍历过,如果已经遍历过,更新路由器表之间的的连接信息。如继续遍历到路由器R2时,下一跳路由器地址为路由器R3。由于路由器R3之前已经遍历过,不需要再遍历,便设置路由器R2的相邻路由器为路由器R3,即更新路由器之间的连接信息。连接信息更新完后,继续遍历当前路由器对象的路由表。

如果下一跳是没有遍历过的路由器,则将该路由器对象放到路由器队列中。

C.对下一跳路由器对象进行判重处理,判断下一跳路由器是否遍历过,避免重复遍历。路由器判重处理如图3所示:

C1:遍历路由器队列,获取路由器队列的第一个路由器对象为当前路由器对象。

C2:判断路由器队列中每个路由器对象的路由表是否包含所获取路由器对象的下一跳IP。

C3:如果某一路由器对象的路由表包含所获取路由器对象的下一跳IP,说明该路由器对象已经遍历过,继续遍历其它路由器对象的路由表信息。

C4:如果某一路由器对象的路由表不包含所获取路由器对象的下一跳IP,说明该路由器对象没有遍历过,构造新的路由器对象R,获取路由器的端口IP表,构造路由器对象R的路由表。使用端口IP表内容填充路由器对象R的路由表中。将构造好的路由器对象R添加到路由器队列最后。

D.判断路由器队列中是否还有没有遍历的路由器对象。如果还有没有遍历的路由器对象则重复执行步骤B和C,继续对路由器队列中的路由器对象进行遍历。

如果遍历次数到达设定的最大跳数阈值路由器队列还没有遍历完,停止遍历路由器队列。说明网络规模较大,在指定路由器跳数内无法完整的发现指定网络的网络拓扑。

E.完成对路由器队列遍历后,即获取到网络拓扑中的路由器信息和子网信息等,以及获取到子网中活动主机的信息。

至此,完了对指定网络的网络拓扑监控。其中节点、子网以及节点之间的连接信息,存放在路由器对象、子网对象以及主机对象中。可以通过控制台输出显示出来,也可以通过图形化表示出来。

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