基于SNMP网络拓扑动态呈现技术的设计与实现
2019-07-25江华赖昕白维学
江华 赖昕 白维学
摘 要:在无线组网应用场景中,提出一种基于SNMP的网络拓扑动态呈现技术的设计与实现方法。该方法能够快速发现不同平台无线组网应用后的网络拓扑动态变化,并以图形化的方式实时显示网络拓扑动态变化,能够及时采集到组网节点拓扑发现时间及子网收敛时间。通过构建MIB库实际获取到的节点随遇入网时间、初始建网时间、节点退网时间等信息,网络管理人员可有效评估无线组网应用技术所达到的相应指标要求。该设计思路简单、直观,易于实现。
关键词:SNMP;MIB;网络拓扑;动态呈现;图形化;无线组网
中图分类号:TP311文献标识码:A文章编号:2095-1302(2019)04-00-03
0 引 言
在无线通信环境中,不同无线组网应用平台的节点数量不尽相同,加之信道条件的优劣、环境噪声不稳定、干扰特性时变等因素,易造成网络连接关系不停变换,如节点入网、迟入网或退网等。不同应用平台无线组网的网络拓扑结构可能变换频繁,不同网络节点间的链路连通性具有不确定性,因此网络管理员迫切需要掌握当前网络运行状况,以便评估当前网络拓扑的可用性、可靠性与抗毁性。例如,当网络拓扑结构发生变化后,由于节点不具备适应网络结构变化的能力,导致其不能迅速做出对策并适时调整调度关系。通过网络拓扑动态呈现技术,网络管理员可在网络管理应用终端软件界面直观地了解当前网络运行状况并及时分析、调整网络状况,确保网络持续通畅及快速适应网络拓扑变化的能力。
本文提出一种基于SNMP的网络拓扑动态呈现技术的设计思路与实现方法,能够快速识别无线组网环境中网络拓扑的动态变化,并实时刷新界面呈现。最终在终端软件界面呈现一张全网络“拓扑图”,并在网络拓扑结构发生变化时实时更新、维护这张“拓扑图”。
1 SNMP简介
简单网络管理协议(Simple Network Management Protocol,SNMP)是目前最流行、应用最广泛的网络管理协议,是管理进程与代理进程之间的一种简单请求-应答协议[1],
属于TCP/IP应用层协议,采用的传输层服务是面向无连接的用户数据报协议UDP。其基本思想是所有的网络设备维护一个管理信息库(Management Information Base,MIB),保存其所有运行进程的相关信息,并对管理工作站的操作进行响应[2]。目前,大多数厂商的网络产品如交换机、路由器等都支持SNMP协议。SNMP协议基本模型如图1所示。
SNMP包括查询、查询下一个参数、设置、响应、Trap报文等5种操作。前4种操作是简单的请求-应答方式,即管理进程发出请求,代理进程应答响应。管理进程发送的UDP包使用的端口号为161,代理进程发出的Trap包使用的UDP端口号为162。SNMP的5种操作如图2所示。SNMP报文的详细格式如图3所示。
2 MIB简介
MIB是管理对象的虚拟数据库,其中包括被SNMP代理管理的网络设备变量,且定义了所有代理进程所包含的、能够被管理进程查询与设置的变量[1]。MIB是树形结构,构件了层次化的命名结构,所有数据构成树的叶节點,所有MIB对象都用一个唯一的对象标识符(Object Identifier,OID)命名与标识,MIB对象在树状结构中的位置决定了标识符的内容。对象标识符是一种数据类型,表示一个整数序列,以点(.)分隔,有数字与名字两种形式。例如,某个MIB库的叶子节点数据可表示为:
3 网络拓扑动态呈现的设计思路
网络拓扑是一种表达网络逻辑连接关系与物理连接关系的方法[3],其呈现方式通常分为平面网络结构与树形分级结构设计模式。目前,在不同无线组网通信平台的军事应用环境中,小规模的组网方式适合采用平面式网络结构,该结构直观、实用,实现方式简单。对于规模较大的网络,常采用分簇分级方式,同时簇的划分可按军队编制或以地理位置进行[4]。本文根据实际通信平台组网方式的不同、频率资源的分配差异,以及参与通信的网络规模,采用平面网络结构设计,以分布式无中心化方式动态呈现网络拓扑,充分展现灵活组网的特点及互联互通的邻居节点信息,满足灵活多变的无线应用环境,能够动态呈现各种应用场景下的拓扑结构变化,有利于评估组网内各节点对各种指挥信息、路由、业务、管理等信息的处理方式。同时,考量网络的可靠性与抗毁性,在较强干扰与攻击的条件下,保证网络的可用性,结构简单、节点对等、网络相对健壮[4]。在不同的无线组网平台,任意两个节点在加入某个通信网络时,两者之间会存在一条单向或双向链路。网络中的节点都具有唯一的ID号,每个节点都维护着一张其一跳邻节点表(邻节点表为距离本节点只有一跳的所有邻节点的列表[5]),并且该节点发送的信息可在有限时间内成功地被其所有邻节点接收[5]。平面网络结构设计模式示例如图5所示。
本文考虑两种拓扑更新方式:一种是管理终端软件轮询各设备代理端软件的节点信息,当网络内节点数较多时,该方式执行一次轮询操作的网络开销很大,故在使用时不能过于频繁操作;第二种是设备代理端软件自身周期性地维护自己节点范围内的邻节点表,当邻节点信息发生变化时主动上报Trap管理终端软件,并更新相应网络拓扑节点信息,该方式降低了网络开销,并已通过实现验证该方法可行。
通过SNMP协议,管理终端软件能够采集到设备代理端软件上报的参与组网的节点拓扑发现时间及子网收敛时间,并实时获取相应的拓扑变化信息。通过构建MIB库实际获取到的节点随遇入网时间、初始建网时间、节点退网时间等,网络管理人员可有效评估无线组网应用技术所达到的相应指标要求。在终端软件界面能够快速呈现一张全网络“拓扑图”,并结合设备上报信息,在网络拓扑结构发生变化时实时更新、维护这张“拓扑图”。网络结构逻辑关系变化示意如图6所示。
4 网络拓扑动态呈现的实现方法
本文采用的开发工具为Microsoft Visual C++ 6.0 ,开发语言为C/C++,支持Windows XP(32位)、Windows 7(64位)操作系统的软件运行环境。利用SNMP协议将获取到的信息转换成图形显示在网络管理平台上,完成网络拓扑图构建。为了直观展现节点随遇入网、退网的网络状况,在呈现终端软件界面,采用相应的图形绘制技术不断实时刷新软件界面[6]。管理端实现应用终端软件时,采用一个二维数组存储设备代理端上报的拓扑信息,记录网络邻居连通情况,生成邻居矩阵,并根据源邻居节点ID号按行排序,最终将各通信节点布局在一个圆形平台,通过图形绘制技术展现各节点间的拓扑连接关系[7]。
管理端应用终端软件的设计模块组成如图7所示。各模块主要功能描述如下:
(1)界面呈现:实现网络拓扑动态呈现、实时刷新功能。
(2)管理协议数据处理模块:按照网络管理接口协议,获取相应内容保存或封装。
(3)配置、查询处理:Set,Get及Response消息处理。
(4)Trap处理:Trap主报消息处理。
(5)管理端-代理端SNMP接口协议解析/封装:SNMP标准接口协议的解析/封装。
5 结 语
本文提供了一种基于SNMP的网络拓扑动态呈现技术的设计思路和实现方法。通过项目实际测试与功能验证,该方式能够满足当前项目指标要求。但采用平面网络结构设计拓扑动态呈现的缺点是网络规模受限,网络管理控制开销大,可扩展性差[3]。因此,当前不同组网平台采用不同波形实现差异化组网,面临的问题是当节点数众多且移动性较强时,网络拓扑保持性较差,拓扑结构变化较快,界面刷新速度不能实时高效。在后续项目实践过程中,网络拓扑动态呈现效果与图形绘制技术有待进一步优化与改进,以完善网络拓扑动态呈现技术的设计模式与实现方式。
参 考 文 献
[1] STEVENS W R. TCP/IP详解(卷1:协议)[M].范建华,胥光辉,张涛,等译.北京:机器工业出版社,2000:270-292.
[2]于志军,潘成胜,姜月秋.卫星综合信息网拓扑发现算法的研究与实现[J].科技创新导报,2008(32):10.
[3]卢红梅.一种网络拓扑算法的研究和分析[J].科技信息,2012(31):144-145.
[4]刘庆刚,白翔,贾儒鹏.短波自组织网关键技术探讨[J].通信技术,2010,43(6):143-146.
[5]康金禄.一种专用Ad Hoc网络管理结构及其拓扑管理技术[D].西安:西安电子科技大学,2010.
[6]繪制动态网络拓扑的程序实现[EB/OL].[2015-09].http://www.cnblogs.com/xhload3d/p/4857105.html.
[7] Web网络拓扑图动态绘制的实现[EB/OL].[2013-03].http://blog.sina.com.cn/s/blog_b51f36440101a97r.html.
[8]基于HTML5的3D网络拓扑树呈现[EB/OL].[2014-03].http://www.cnblogs.com/xhload3d/p/4857105.html.
[9]罗小娟,黄如.基于小世界特征的无线传感器网络拓扑优化[J].物联网技术,2018,8(3):42-44.
[10]张伟.基于SNMP的网络设备监控系统设计与实现[J].微处理机,2017,38(1):36-40.