分布式网络拓扑管理系统研究与实现

分布式网络拓扑管理系统研究与实现

摘 要:随着电力行业计算机通信网络系统和应用日益普及和完善,集中式的网管软件面临应用挑战,其拓扑管理的实时性不能满足网络规模扩大后的应用要求。文中分析分布式网络拓扑管理方案,通过有效的网络拓扑分割方式,设计并实现了由拓扑管理主站和嵌入式Linux 装置实现的拓扑管理子站构成的、实时性增强的分布式网络管理系统。结合系统的实现,进行了实现难点分析和总结,并为下一步的改进完善指出了方法。

关键词:分布式系统 网络管理 拓扑管理 嵌入式Linux

中图分类号:TP319.3 文献标识码:A 文章编号:1672-3791(2012)11(a )-0004-04

随着计算机与网络技术的发展,数字化电网的新时代正在向我们走来。电力通信网络针对电力行业的应用特点和各种系统要求进行设计和建设,以适应各电力行业应用系统的需要。从总体上,国家电力通信网已经建成以国网骨干网和省一级数据网为核心的IP 网络结构。根据国网的省网建设规范,采用分层设计,各省级电力通信网也陆续建成了核心层、骨干层和接入层等三层结构为总体的IP 数据网。各地市网络则分别组成四级网结构,接入省网骨干层。

在设计原则上,电力通信网络首先统一了N-1可靠性原则、双出口原则,确保了网络基础结构的可靠性;其次,统一制定了BGP 和OSPF 为域间和域内路由协议的路由体制,保证了网络联通性和网络应用实时性需求的充分实现;同时,还统一制定了基于MPLS 的VPN 网络组网体制,以充分满足电力二次安防体制的分区实现技术需求。上述电力数据网络的规划和部署为电力应用的数字化迈进,为建设坚强的智能电网打下了坚实的网络通信基础。

网络管理是电力通信网络必须实现的基本功能,是保证网络安全可靠运行所必须的技术手段。网络管理五大基本功能包括配置、性能、故障、安全、统计计费管理,而根据电力数据网的具体运行管理需求,网络管理还应该包括其他一些功能,如报表管理、告警输出等。

电力行业现有的网络管理软件所采用的是一种集中式管理结构[1],所有的网管功能和软件运行在一个集中的网管服务器或网管系统中,对于电力数据网络应用日益丰富,网络拓扑日益复杂的情况,这种集中式运行的网管系统越来越难以满足实际电力通信网管应用的需要。本文根据我们所开发的电力应用地市级分布式网络管理系统的实践,对其中的分布式网络拓扑管理问题进行研究和总结。

1 分布式网络拓扑管理总体方案

一个网络的拓扑结构由若干个节点和这些节点之间的互连关系构成,这些节点和连接的集合称为拓扑域。一个网络本身就是一个巨大的拓扑域,为了拓扑发现的分布式运行,需要将一个拓扑域划分为若干个小的子域,每个子域设置一个子站采集装置,采集各个设备的数据并确定其连接关系;然后将所有子域中的信息通过网络传输至主站,由主站将信息汇总并计算,从而得到整个网络的拓扑连接。

电力行业中的大型网络的拓扑域划分可以根据实际网络情况采用两种不同的划分策略:电力系统网络一般会根据不同的功能划分为不同的应用系统,每个应用系统工作于相同的子网中,因此可以直接将各个系统对应划分为若干拓扑子域(如图1所示);另一种网络环境是一个完整的拓扑域通常起始于一个核心路由设备,将该设备的不同端口配置不同的子网,从而有层次地拓展出整个网络,此时可以依据核心交换设备的各个端口划分不同的子域。如果某端口连接的子域网络仍然复杂,则可以采用同样的方法进一步对该子域进行划分(图2)。

一个完整的网络拓扑管理系统包括拓扑发现模块、拓扑显示模块和报警功能模块等。

(1)拓扑发现模块:获得拓扑所需要的数据,通过分析数据推断网络拓扑结构,并按照一定的格式存储结果。该模块中包含设备确定模块、数据采集模块、信息分析模块和信息存储模块。设备确定模块通过SNMP 采集设备名、描述、sysServices 和ipForwarding 的值确定设备的存在以及设备类型;数据采集模块通过SNMP 采集设备的端口表、ARP 表、地址转发表等信息;信息分析模块通过对采集的数据的分析确定了各设备间的连接关系;当网络规模较大时数据存储需要采用数据库,信息存储模块设计数据库接口,将信息分析结果存放到数据库中,实现了信息计算与拓扑显示的分离。

(2)拓扑显示模块:获得拓扑发现模块所产生的反应当前拓扑结构的结果,通过合理的节点布局将该结果通过图形化的方式显示出来。

(3)报警功能模块:根据数据库中预设的报警项和阈值,与数据采集模块采集的数据比较,确定报警,并通过界面展示等方式处理报警。

2 分布式网络拓扑管理系统主站设计

2.1 主站功能分析

分布式网络拓扑管理系统中的主站是一个中央级的数据中心,它不仅完成从核心交换设备与下一级子站之间的拓扑连接的发现,而且会根据各个子站拓扑发现的结果分析得到整个网络的详细拓扑并展示。因此,分布式网络拓扑管理系统的主站主要具备以下功能。

(1)拓扑发现:根据配置的根节点设备,通过SNMP 获得设备信息,确定根节点与下一级子站管理的拓扑子域之间的连接关系,同时确定子站拓扑发现的起始节点。

(2)配置下发:根据拓扑发现的结果,分析得到子站进行拓扑发现的条件,如起始节点、子网范围等,通过网络传输至子站。

(3)子站数据接收:主站接收来自于子站的拓扑发现信息,分析并存入数据库;除此之外,完成拓扑发现后,还可以接收子站拓扑网络运行的信息,如线路流量等,用于完成系统的报警管理功能。

(4)拓扑展示:根据数据库存储的拓扑数据,依据设备的类型并合理的布局,用图形化的方式展示整个网络的拓扑结构。

2.2 主站数据库设计

本文实现的系统中,主站采用MYSQL 数据库存储网络拓扑信息和设备运行信息。为了完成该网络拓扑管理系统,主要几个关键数据:设备信息表Devices 、设备端口表Ifs 和连接关系表Links 。表1——3列出了这三个数据表中的重要表项和描述。其中设备信息用于存储拓扑发现的各个设备,并依据采集的信息对设备类型进行判断;设备端口用于描述端口信息,除了表中列出的数据项外,通过SNMP 还可以采集端口速度、通信包接收和发送的流量等信息,实现对系统的监控;连接关系具体到一个设备的具体端口,对无法响应SNMP 请求的设备,默认其端口号为0。

3 基于嵌入式装置的拓扑管理子站系统实现

分布式系统在20世纪八九十年代占主导地位。其核心思想是集中管理、分散控制,即管理与控制相分离,主站用于集中监视管理功能,若干台嵌入式采集装置下放分散到现场实现分布式测量与控制,主站与嵌入式采集装置之间用控制网络互连以实现相互之间的信息传递。因此,这种分布式的测控系统体系结构有力地克服了集中式数字测控系统对控制器处理能力和可靠性要求高的缺陷。

3.1 子站功能分析

由高性能嵌入式装置与主站组成对电力系统网络的拓扑发现和管理系统,采用专业的嵌入式Linux 操作系统,并配备多网口和大容量数据存储器,对大规模电力系统网络实现有效的拓扑子域划分。结合实际应用需求,此类嵌入式子站装置主要实现的功能包括。

(1)网络拓扑发现:根据设定的子域范围,嵌入式装置通过SNMP 协议采集子域内网络设备的相关信息,根据算法确定设备的连接关系。

(2)数据处理与存储:设计数据库接口,嵌入式装置对数据进行分析处理后,将得到的设备信息和连接信息存入数据库。为了保证与主站端数据的一致性和数据存储的高效性,在嵌入式装置中通常采用sqlite 数据库,该数据库中的主要数据表设计与主站中的设计相同。

(3)与主站的数据通信:该功能主要包括两个方面:一是接收主站端的配置数据下发,包括拓扑发现的起始节点、子站管理的网络范围和拓扑管理所需的数据采集项;二是子站采集数据的同步,主要是数据库中的设备列表、连接信息列表以及监控数据项的实时采集数据。要实现高效的网络处理通信流程,必须对通信流程进行优化,实现异步无阻塞的通信模式。所谓非阻塞方式(non-block ),就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,而进程或线程继续执行,从而提高代码效率。在Linux 平台下,使用Select 函数就可以设计和完成非阻塞方式的网络通信程序。

3.2 分布式系统的架构

分布式系统由主站和嵌入式采集装置构成,每个采集装置完成一个拓扑子域内的拓扑发

现,主站根据所有子站以及自身拓扑发现的结果,分析数据得到整个网络的拓扑连接关系,通过合理的布局将实现拓扑结构的图形化展示。一种典型的分布式系统架构图如图3所示。

4 分布式拓扑发现算法分析及实现

网络拓扑发现算法分为逻辑层与物理层,也可称为网络层和数据链路层。逻辑层拓扑发现用来发现路由器与路由器、路由器与子网之间的连接;物理层发现用来发现局域网内部交换机与交换机、交换机与主机之间的连接关系。

4.1 算法理论基础

目前常见的网络设备如路由器、交换机、服务器等都支持SNMP 协议,传统网络拓扑自动发现算法从一个根节点出发,发现效率较低或准确率难以满足应用要求。本文提出的算法通过分布式方案部署,将整个网络划分为多个子域,提高了算法效率和准确性;算法首先确定整个网络中的所有子网,通过遍历子网发现活动网络设备,然后通过采集设备的地址转发表和ARP 表,发现一些无法响应SNMP 协议的网络设备,如未开启SNMP 服务的PC 机等,并确定这些设备在网络中的连接。同时,通过采集设备的端口表信息,可以实现对网络设备相关信息的监控和管理。

算法中使用的一些术语含义如下。

(1)节点:网络中的交换或路由设备起到了不断扩展网络的作用,这些设备作为算法中的节点,根据节点的不同功能可以分为根节点、中间节点和叶子节点。

(2)上行端口:与根节点直接或间接相连的设备端口。

(3)下行端口:从根节点出发到该节点后,该节点继续与其他节点相连的端口。

(4)叶子端口:从根节点出发到该节点后,该节点中只连接了PC 机或服务器等非交换或路由设备的端口。

(5)叶子交换机/路由器:该交换机或路由器只具备上行端口和叶子端口,没有下行端口。

4.2 算法流程概述

本文的拓扑发现算法分为两步:第一步是逻辑层的拓扑发现,主要作用是发现网络中的设备、确定设备类型以及确定逻辑层的连接关系,该连接关系主要通过发现的设备上行端口的IP 地址属于哪一个子网来实现;第二步是物理层的拓扑发现,主要根据设备的地址转发表,从叶子路由器或交换机开始,层层向上确定连接关系,直至根节点。

算法需要使用多个链表用于存储不同类型的待连接设备及端口,主要包括子网列表N 、待处理的交换和路由设备列表D 、待连接的服务器上行端口列表SP 、待连接的交换设备上行端口DP 、待处理的叶子设备列表L 、待连接的未知类型端口TP 和表征连接关系的队列Link 。

逻辑层拓扑发现流程如图4所示。

(1)获取根节点设备信息,初始化子网列表N 。

(2)遍历列表N 中子网的所有IP ,通过SNMP 获取IP-MIB 中的ipAdEntNetMask 项,获得设备端口的子网信息,将发现的新的子网加入N ,发现的路由和交换设备加入点处理设备列表D ,发现的支持SNMP 协议的服务器的唯一上行端口加入列表SP 。

(3)根据子网发现的顺序,确定子网之间的层级关系,不断重复直至完成所有子网的遍历。

物理层的拓扑发现流程如图5所示。

(1)遍历设备列表D ,通过SNMP 获取设备的dTpFdbTable (地址转发表,表明该设备连接的MAC 地址信息)、ifPhysAddress (设备端口的MAC 地址信息表)和ipNetTo

MediaPhysAddress (设备ARP 表,表明IP 地址与MAC 地址的对应关系,用于完善设备地址转发表)。

(2)根据采集的信息判断设备的类型,将叶子节点存入列表L 。叶子节点的判断依据:叶子路由器在逻辑层拓扑发现中不是列表中其他设备的父节点;叶子交换机下行端口的地址转发表中标识的端口均已经加入了列表SP 或DP 。

(3)处理列表L 中的叶子节点。节点的上行端口存入列表DP ,叶子路由器的其他端口不处理,叶子交换机的其他端口依据地址转发表分别处理:下行端口从列表DP 中得到待连接的子节点端口,从SP 列表中得到待连接的服务器,其他MAC 地址通过ARP 表确定对应的IP 地址,这些IP 地址均为不支持SNMP 协议的PC 主机等设备;叶子端口只连接服务器或其他不支持SNMP 协议的设备;未知类型的端口加入至列表TP 。将上述已确定的连接关系加入至队列Link 。

(4)不断重复上述过程直至队列L 和D 均为空。完成遍历后,列表TP 中的未连接端口根据逻辑层拓扑发现的结果,直接与父节点设备中处于同一子网中的端口相连接。

4.3异常现象处理

在电力系统网络中,有两种常见的网络结构会引起某些拓扑发现算法的异常:一是环网拓扑,即多台设备构成一个圆环,很多拓扑发现算法处理这类网络无法保证得到闭合的连接;二是冗余备份,即某些路由设备的部分端口在同一个子网中,由于拓扑发现的算法多为多线程操作,则在发现过程中会有多个线程同时通过SNMP 协议获取设备信息,造成网络拥塞,导致拓扑发现无法顺利完成。

本文介绍的算法可以在逻辑层拓扑发现阶段通过有效的预处理方式,避免上述两种异常现象的发生。在逻辑成拓扑发现过程中,本算法发现的子网首先会确定一个父节点IP 地址,该地址对应为某一设备的端口地址,然后在遍历子网过程中发现的活动节点均认定为该父节点的子节点。环形网络的特点决定了网络中至少有一个设备存在两个向上连接的端口,即某

一子节点有两个不同的父节点,该设备具有两个上行端口,此类设计保证了从根节点出发拓扑发现汇聚于该子节点,实现了环形网络的闭合。另一方面,为了避免多个线程同时采集同一个设备造成网络拥塞,增加了一个临时活动设备的队列AP ,在遍历队列N 中的所有IP 之前,通过SNMP 获取设备的名称,确定设备是否响应SNMP 协议,将活动设备加入列表AP 中,然后再对列表AP 中的各个设备采集IP-MIB 中的信息。由于采集设备名称的SNMP 协议仅产生几个字节的数据流量,不会造成网络通道的阻塞,因此该初筛步骤可以保证拓扑发现的顺利进行。

4.4 分布式拓扑管理系统的运行实例

将该分布式系统应用于电力系统网络中,应用上述拓扑发现算法对某通信机房的网络进行拓扑发现,可以得到如图6所示的拓扑结果。从图中可以看出,该算法可以发现各种网络设备,包括未开启SNMP 服务的PC 机,并且正确计算并显示这些设备的连接关系,并且该算法对环网结构以及结构复杂的子网都具有同样的拓扑发现能力。

5 结语

拓扑发现不仅要发现网络中相关实体,而且要得到实体间的连接关系。本文通过获取网络设备的SNMP 信息,将逻辑层和物理层拓扑发现相结合,基于叶子节点的概念实现网络拓扑发现。同时结合分布式计算技术,搭建了主站和嵌入式子站装置相结合的分布式系统,实现整个拓扑网络的分层/分块管理,使拓扑发现更加灵活,网络管理和监控更加的实时有效,尤其适用于类似电力行业具有分布式特点的网络结构。

参考文献

[1] 刘振山,徐孟春,程玮玮。基于SNMP 协议的网络拓扑结构发现[J].信息工程大学学报。

[2] Hwa-Chun Lin ,YI-Fan Wang , Chien-Hsing Wang ,et al.Web-based distributed topology discovery of IP network[J].Information Networking ,2001. Proceedings 15th International Conference,2001:857-862.

[3] D T STOTT.Snmp-based layer-3 path discovery[J].Tech.Rep.ALR-2002- 005,Avaya Labs Research,Avaya Inc.Basking Ridge,NJ ,2002.

[4] 姜誉,胡铭曾,方滨兴,等。一个Internet 路由器级拓扑自动发现系统[J].通信学报,2002,12.

[5] 徐敏,周保飞。分布式计算技木的应用研究[J].Journal of Computer Research & Development[J],2003,116.

[6] Wu J,Li H.On calculating connected dominating sets for efficient routing in ad hoc wireless networks[J].In:Proc. of the 3rd Int’l Workshop Discrete Algorithms and Methods for Mobile Computing and Comm.1999:7-14.

[7] 岑玲。基于简单对象访问协议的分布式计算技术[J].微型机与应用,2001(7)。

分布式网络拓扑管理系统研究与实现

摘 要:随着电力行业计算机通信网络系统和应用日益普及和完善,集中式的网管软件面临应用挑战,其拓扑管理的实时性不能满足网络规模扩大后的应用要求。文中分析分布式网络拓扑管理方案,通过有效的网络拓扑分割方式,设计并实现了由拓扑管理主站和嵌入式Linux 装置实现的拓扑管理子站构成的、实时性增强的分布式网络管理系统。结合系统的实现,进行了实现难点分析和总结,并为下一步的改进完善指出了方法。

关键词:分布式系统 网络管理 拓扑管理 嵌入式Linux

中图分类号:TP319.3 文献标识码:A 文章编号:1672-3791(2012)11(a )-0004-04

随着计算机与网络技术的发展,数字化电网的新时代正在向我们走来。电力通信网络针对电力行业的应用特点和各种系统要求进行设计和建设,以适应各电力行业应用系统的需要。从总体上,国家电力通信网已经建成以国网骨干网和省一级数据网为核心的IP 网络结构。根据国网的省网建设规范,采用分层设计,各省级电力通信网也陆续建成了核心层、骨干层和接入层等三层结构为总体的IP 数据网。各地市网络则分别组成四级网结构,接入省网骨干层。

在设计原则上,电力通信网络首先统一了N-1可靠性原则、双出口原则,确保了网络基础结构的可靠性;其次,统一制定了BGP 和OSPF 为域间和域内路由协议的路由体制,保证了网络联通性和网络应用实时性需求的充分实现;同时,还统一制定了基于MPLS 的VPN 网络组网体制,以充分满足电力二次安防体制的分区实现技术需求。上述电力数据网络的规划和部署为电力应用的数字化迈进,为建设坚强的智能电网打下了坚实的网络通信基础。

网络管理是电力通信网络必须实现的基本功能,是保证网络安全可靠运行所必须的技术手段。网络管理五大基本功能包括配置、性能、故障、安全、统计计费管理,而根据电力数据网的具体运行管理需求,网络管理还应该包括其他一些功能,如报表管理、告警输出等。

电力行业现有的网络管理软件所采用的是一种集中式管理结构[1],所有的网管功能和软件运行在一个集中的网管服务器或网管系统中,对于电力数据网络应用日益丰富,网络拓扑日益复杂的情况,这种集中式运行的网管系统越来越难以满足实际电力通信网管应用的需要。本文根据我们所开发的电力应用地市级分布式网络管理系统的实践,对其中的分布式网络拓扑管理问题进行研究和总结。

1 分布式网络拓扑管理总体方案

一个网络的拓扑结构由若干个节点和这些节点之间的互连关系构成,这些节点和连接的集合称为拓扑域。一个网络本身就是一个巨大的拓扑域,为了拓扑发现的分布式运行,需要将一个拓扑域划分为若干个小的子域,每个子域设置一个子站采集装置,采集各个设备的数据并确定其连接关系;然后将所有子域中的信息通过网络传输至主站,由主站将信息汇总并计算,从而得到整个网络的拓扑连接。

电力行业中的大型网络的拓扑域划分可以根据实际网络情况采用两种不同的划分策略:电力系统网络一般会根据不同的功能划分为不同的应用系统,每个应用系统工作于相同的子网中,因此可以直接将各个系统对应划分为若干拓扑子域(如图1所示);另一种网络环境是一个完整的拓扑域通常起始于一个核心路由设备,将该设备的不同端口配置不同的子网,从而有层次地拓展出整个网络,此时可以依据核心交换设备的各个端口划分不同的子域。如果某端口连接的子域网络仍然复杂,则可以采用同样的方法进一步对该子域进行划分(图2)。

一个完整的网络拓扑管理系统包括拓扑发现模块、拓扑显示模块和报警功能模块等。

(1)拓扑发现模块:获得拓扑所需要的数据,通过分析数据推断网络拓扑结构,并按照一定的格式存储结果。该模块中包含设备确定模块、数据采集模块、信息分析模块和信息存储模块。设备确定模块通过SNMP 采集设备名、描述、sysServices 和ipForwarding 的值确定设备的存在以及设备类型;数据采集模块通过SNMP 采集设备的端口表、ARP 表、地址转发表等信息;信息分析模块通过对采集的数据的分析确定了各设备间的连接关系;当网络规模较大时数据存储需要采用数据库,信息存储模块设计数据库接口,将信息分析结果存放到数据库中,实现了信息计算与拓扑显示的分离。

(2)拓扑显示模块:获得拓扑发现模块所产生的反应当前拓扑结构的结果,通过合理的节点布局将该结果通过图形化的方式显示出来。

(3)报警功能模块:根据数据库中预设的报警项和阈值,与数据采集模块采集的数据比较,确定报警,并通过界面展示等方式处理报警。

2 分布式网络拓扑管理系统主站设计

2.1 主站功能分析

分布式网络拓扑管理系统中的主站是一个中央级的数据中心,它不仅完成从核心交换设备与下一级子站之间的拓扑连接的发现,而且会根据各个子站拓扑发现的结果分析得到整个网络的详细拓扑并展示。因此,分布式网络拓扑管理系统的主站主要具备以下功能。

(1)拓扑发现:根据配置的根节点设备,通过SNMP 获得设备信息,确定根节点与下一级子站管理的拓扑子域之间的连接关系,同时确定子站拓扑发现的起始节点。

(2)配置下发:根据拓扑发现的结果,分析得到子站进行拓扑发现的条件,如起始节点、子网范围等,通过网络传输至子站。

(3)子站数据接收:主站接收来自于子站的拓扑发现信息,分析并存入数据库;除此之外,完成拓扑发现后,还可以接收子站拓扑网络运行的信息,如线路流量等,用于完成系统的报警管理功能。

(4)拓扑展示:根据数据库存储的拓扑数据,依据设备的类型并合理的布局,用图形化的方式展示整个网络的拓扑结构。

2.2 主站数据库设计

本文实现的系统中,主站采用MYSQL 数据库存储网络拓扑信息和设备运行信息。为了完成该网络拓扑管理系统,主要几个关键数据:设备信息表Devices 、设备端口表Ifs 和连接关系表Links 。表1——3列出了这三个数据表中的重要表项和描述。其中设备信息用于存储拓扑发现的各个设备,并依据采集的信息对设备类型进行判断;设备端口用于描述端口信息,除了表中列出的数据项外,通过SNMP 还可以采集端口速度、通信包接收和发送的流量等信息,实现对系统的监控;连接关系具体到一个设备的具体端口,对无法响应SNMP 请求的设备,默认其端口号为0。

3 基于嵌入式装置的拓扑管理子站系统实现

分布式系统在20世纪八九十年代占主导地位。其核心思想是集中管理、分散控制,即管理与控制相分离,主站用于集中监视管理功能,若干台嵌入式采集装置下放分散到现场实现分布式测量与控制,主站与嵌入式采集装置之间用控制网络互连以实现相互之间的信息传递。因此,这种分布式的测控系统体系结构有力地克服了集中式数字测控系统对控制器处理能力和可靠性要求高的缺陷。

3.1 子站功能分析

由高性能嵌入式装置与主站组成对电力系统网络的拓扑发现和管理系统,采用专业的嵌入式Linux 操作系统,并配备多网口和大容量数据存储器,对大规模电力系统网络实现有效的拓扑子域划分。结合实际应用需求,此类嵌入式子站装置主要实现的功能包括。

(1)网络拓扑发现:根据设定的子域范围,嵌入式装置通过SNMP 协议采集子域内网络设备的相关信息,根据算法确定设备的连接关系。

(2)数据处理与存储:设计数据库接口,嵌入式装置对数据进行分析处理后,将得到的设备信息和连接信息存入数据库。为了保证与主站端数据的一致性和数据存储的高效性,在嵌入式装置中通常采用sqlite 数据库,该数据库中的主要数据表设计与主站中的设计相同。

(3)与主站的数据通信:该功能主要包括两个方面:一是接收主站端的配置数据下发,包括拓扑发现的起始节点、子站管理的网络范围和拓扑管理所需的数据采集项;二是子站采集数据的同步,主要是数据库中的设备列表、连接信息列表以及监控数据项的实时采集数据。要实现高效的网络处理通信流程,必须对通信流程进行优化,实现异步无阻塞的通信模式。所谓非阻塞方式(non-block ),就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不同来反映函数的执行情况,而进程或线程继续执行,从而提高代码效率。在Linux 平台下,使用Select 函数就可以设计和完成非阻塞方式的网络通信程序。

3.2 分布式系统的架构

分布式系统由主站和嵌入式采集装置构成,每个采集装置完成一个拓扑子域内的拓扑发

现,主站根据所有子站以及自身拓扑发现的结果,分析数据得到整个网络的拓扑连接关系,通过合理的布局将实现拓扑结构的图形化展示。一种典型的分布式系统架构图如图3所示。

4 分布式拓扑发现算法分析及实现

网络拓扑发现算法分为逻辑层与物理层,也可称为网络层和数据链路层。逻辑层拓扑发现用来发现路由器与路由器、路由器与子网之间的连接;物理层发现用来发现局域网内部交换机与交换机、交换机与主机之间的连接关系。

4.1 算法理论基础

目前常见的网络设备如路由器、交换机、服务器等都支持SNMP 协议,传统网络拓扑自动发现算法从一个根节点出发,发现效率较低或准确率难以满足应用要求。本文提出的算法通过分布式方案部署,将整个网络划分为多个子域,提高了算法效率和准确性;算法首先确定整个网络中的所有子网,通过遍历子网发现活动网络设备,然后通过采集设备的地址转发表和ARP 表,发现一些无法响应SNMP 协议的网络设备,如未开启SNMP 服务的PC 机等,并确定这些设备在网络中的连接。同时,通过采集设备的端口表信息,可以实现对网络设备相关信息的监控和管理。

算法中使用的一些术语含义如下。

(1)节点:网络中的交换或路由设备起到了不断扩展网络的作用,这些设备作为算法中的节点,根据节点的不同功能可以分为根节点、中间节点和叶子节点。

(2)上行端口:与根节点直接或间接相连的设备端口。

(3)下行端口:从根节点出发到该节点后,该节点继续与其他节点相连的端口。

(4)叶子端口:从根节点出发到该节点后,该节点中只连接了PC 机或服务器等非交换或路由设备的端口。

(5)叶子交换机/路由器:该交换机或路由器只具备上行端口和叶子端口,没有下行端口。

4.2 算法流程概述

本文的拓扑发现算法分为两步:第一步是逻辑层的拓扑发现,主要作用是发现网络中的设备、确定设备类型以及确定逻辑层的连接关系,该连接关系主要通过发现的设备上行端口的IP 地址属于哪一个子网来实现;第二步是物理层的拓扑发现,主要根据设备的地址转发表,从叶子路由器或交换机开始,层层向上确定连接关系,直至根节点。

算法需要使用多个链表用于存储不同类型的待连接设备及端口,主要包括子网列表N 、待处理的交换和路由设备列表D 、待连接的服务器上行端口列表SP 、待连接的交换设备上行端口DP 、待处理的叶子设备列表L 、待连接的未知类型端口TP 和表征连接关系的队列Link 。

逻辑层拓扑发现流程如图4所示。

(1)获取根节点设备信息,初始化子网列表N 。

(2)遍历列表N 中子网的所有IP ,通过SNMP 获取IP-MIB 中的ipAdEntNetMask 项,获得设备端口的子网信息,将发现的新的子网加入N ,发现的路由和交换设备加入点处理设备列表D ,发现的支持SNMP 协议的服务器的唯一上行端口加入列表SP 。

(3)根据子网发现的顺序,确定子网之间的层级关系,不断重复直至完成所有子网的遍历。

物理层的拓扑发现流程如图5所示。

(1)遍历设备列表D ,通过SNMP 获取设备的dTpFdbTable (地址转发表,表明该设备连接的MAC 地址信息)、ifPhysAddress (设备端口的MAC 地址信息表)和ipNetTo

MediaPhysAddress (设备ARP 表,表明IP 地址与MAC 地址的对应关系,用于完善设备地址转发表)。

(2)根据采集的信息判断设备的类型,将叶子节点存入列表L 。叶子节点的判断依据:叶子路由器在逻辑层拓扑发现中不是列表中其他设备的父节点;叶子交换机下行端口的地址转发表中标识的端口均已经加入了列表SP 或DP 。

(3)处理列表L 中的叶子节点。节点的上行端口存入列表DP ,叶子路由器的其他端口不处理,叶子交换机的其他端口依据地址转发表分别处理:下行端口从列表DP 中得到待连接的子节点端口,从SP 列表中得到待连接的服务器,其他MAC 地址通过ARP 表确定对应的IP 地址,这些IP 地址均为不支持SNMP 协议的PC 主机等设备;叶子端口只连接服务器或其他不支持SNMP 协议的设备;未知类型的端口加入至列表TP 。将上述已确定的连接关系加入至队列Link 。

(4)不断重复上述过程直至队列L 和D 均为空。完成遍历后,列表TP 中的未连接端口根据逻辑层拓扑发现的结果,直接与父节点设备中处于同一子网中的端口相连接。

4.3异常现象处理

在电力系统网络中,有两种常见的网络结构会引起某些拓扑发现算法的异常:一是环网拓扑,即多台设备构成一个圆环,很多拓扑发现算法处理这类网络无法保证得到闭合的连接;二是冗余备份,即某些路由设备的部分端口在同一个子网中,由于拓扑发现的算法多为多线程操作,则在发现过程中会有多个线程同时通过SNMP 协议获取设备信息,造成网络拥塞,导致拓扑发现无法顺利完成。

本文介绍的算法可以在逻辑层拓扑发现阶段通过有效的预处理方式,避免上述两种异常现象的发生。在逻辑成拓扑发现过程中,本算法发现的子网首先会确定一个父节点IP 地址,该地址对应为某一设备的端口地址,然后在遍历子网过程中发现的活动节点均认定为该父节点的子节点。环形网络的特点决定了网络中至少有一个设备存在两个向上连接的端口,即某

一子节点有两个不同的父节点,该设备具有两个上行端口,此类设计保证了从根节点出发拓扑发现汇聚于该子节点,实现了环形网络的闭合。另一方面,为了避免多个线程同时采集同一个设备造成网络拥塞,增加了一个临时活动设备的队列AP ,在遍历队列N 中的所有IP 之前,通过SNMP 获取设备的名称,确定设备是否响应SNMP 协议,将活动设备加入列表AP 中,然后再对列表AP 中的各个设备采集IP-MIB 中的信息。由于采集设备名称的SNMP 协议仅产生几个字节的数据流量,不会造成网络通道的阻塞,因此该初筛步骤可以保证拓扑发现的顺利进行。

4.4 分布式拓扑管理系统的运行实例

将该分布式系统应用于电力系统网络中,应用上述拓扑发现算法对某通信机房的网络进行拓扑发现,可以得到如图6所示的拓扑结果。从图中可以看出,该算法可以发现各种网络设备,包括未开启SNMP 服务的PC 机,并且正确计算并显示这些设备的连接关系,并且该算法对环网结构以及结构复杂的子网都具有同样的拓扑发现能力。

5 结语

拓扑发现不仅要发现网络中相关实体,而且要得到实体间的连接关系。本文通过获取网络设备的SNMP 信息,将逻辑层和物理层拓扑发现相结合,基于叶子节点的概念实现网络拓扑发现。同时结合分布式计算技术,搭建了主站和嵌入式子站装置相结合的分布式系统,实现整个拓扑网络的分层/分块管理,使拓扑发现更加灵活,网络管理和监控更加的实时有效,尤其适用于类似电力行业具有分布式特点的网络结构。

参考文献

[1] 刘振山,徐孟春,程玮玮。基于SNMP 协议的网络拓扑结构发现[J].信息工程大学学报。

[2] Hwa-Chun Lin ,YI-Fan Wang , Chien-Hsing Wang ,et al.Web-based distributed topology discovery of IP network[J].Information Networking ,2001. Proceedings 15th International Conference,2001:857-862.

[3] D T STOTT.Snmp-based layer-3 path discovery[J].Tech.Rep.ALR-2002- 005,Avaya Labs Research,Avaya Inc.Basking Ridge,NJ ,2002.

[4] 姜誉,胡铭曾,方滨兴,等。一个Internet 路由器级拓扑自动发现系统[J].通信学报,2002,12.

[5] 徐敏,周保飞。分布式计算技木的应用研究[J].Journal of Computer Research & Development[J],2003,116.

[6] Wu J,Li H.On calculating connected dominating sets for efficient routing in ad hoc wireless networks[J].In:Proc. of the 3rd Int’l Workshop Discrete Algorithms and Methods for Mobile Computing and Comm.1999:7-14.

[7] 岑玲。基于简单对象访问协议的分布式计算技术[J].微型机与应用,2001(7)。


    相关文章

    分布式防火墙原理及其技术研究

    27 分布式防火墙原理及其技术研究 肖昌吉1 周忠丽2 邓文红3 (1电子科技大学计算机学院 2 四川大学图形图像研究所 3 四川省信息产业厅) 摘 要:本文针对传统防火墙的体系结构及其缺陷,提出了分布式防火墙的基本原理,并对其工作流程.体 ...

    无线传感器网络的关键技术

    传感器网络的关键技术 无线传感器网络作为当今信息领域新的研究热点,涉及多学科交 叉的研究领域,有非感常多的关键技术有待发现和研究,下面仅列出部分关键技术. 1.网络拓扑控制 对于无线的自组织的传感器网络而言,网络拓扑控制具有特别重 要的意义 ...

    局域网论文

    陕西理工学院学期期间论文 论文题目: 班 级: 姓 名: 学 号:指导老师: 浅谈局域网 教育科学系教技081班 王 美 玲 0803014035 刘 飞 王美玲 (陕西理工学院教育科学系教育技术学专业081班,陕西,汉中,723001) ...

    基于复杂网络模型的基因调控网络的计算模拟

    第37卷 第1期计算机科学Vol.37No.1基于复杂网络模型的基因调控网络的计算模拟 张律文1,2 谢 江1,2 陈建娇1 张 武1 (上海大学计算机工程与科学学院 上海200072)1 (上海大学系统生物技术研究所 上海200444)2 ...

    计算机网络概述 习题

    第一章 计算机网络概述 练习题 一. 单项选择题 考点: 计算机网络的分类 1.在哪个范围内的计算机网络可称之为局域网:( A ) A .在一个楼宇 B .在一个城市 C .在一个国家 D .在全世界 2.一座大楼内的一个计算机网络系统,属 ...

    校园网的研究的内容和具体解决思路

    校园网的研究的内容和具体解决思路: (1)进行校园网研究和需求调查,弄清学校的性质.任务和改革发展的特点,对学校的信息化环境进行准确的描述,明确系统建设的需求和条件: (2)在应用需求分析的基础上,确定学校Intranet 服务类型,进而确 ...

    探讨移动互联网络技术的现状与发展

    摘 要 随着我国网络技术的不断快速发展,尤其是一些新型的网络技术的出现,人们越来越重视移动互联网络技术的应用.关注移动互联网络技术的现状和发展趋势,对网络技术的发展有着重要的指导作用.因此,研究移动互联网络技术的现状与发展具有非常重大的现实 ...

    无线局域网的历史与发展趋势

    1. 无线局域网现状研究 摘 要:网络是信息化的基础,网络设施的完善和网络技术的进步,对信息网络化起到积极的推动作用.通常,计算机网络的传输介质主要依赖铜缆或光缆,由此构成有线局域网(LAN),这一组网模式一直沿用至今.随着Internet ...

    复杂网络的微信网络信息传播研究

    第14卷第17期2014年6月1671-1815(2014)17-0244-04 科学技术与工程 Science Technology and Engineering Vol. 14No. 17Jun.2014 2014Sci. Tech. ...