一种基于SNMP的网络信息查询软件的开发与设计

来源 :软件 | 被引量 : 0次 | 上传用户:happywz521
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:网络管理人员需要一个实用的网络管理系统来帮助他们实时掌控网络的性能状态,监测网络故障及优化网络结构,以维护网络的正常稳定运行。本文全面考察了网络管理领域的现状并结合具体的需求,设计出一个网络信息查询系统,该系统基于SNMP协议访问网络设备中MIB库的信息。
  关键字:网络管理;简单网络管理协议; MIB
  中图分类号:TP393 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.08.024
  本文著录格式:[1]高凯,赵登攀.一种基于SNMP的网络信息查询软件的开发与设计[J].软件,2013,34(8): 75-77
  0引 言
  目前的网络管理标准主要有两大体系:OSI的CMIS( Common Management Information Service,公共管理信息库)/CMIP( Common Management Information Protocol,公共管理信息协议)和IETF的SNMP( Simple Network Management Protocol,简单网络管理协议)。SNMP的产生是由于人们想把它作为TCP/ IP网络管理的临时解决办法,待OSI框架广泛应用以后就用OSI的CMIP代替它。但是,由于CMIP实现复杂、结构庞大,占用资源多,目前还没有开发出实际可用的产品。SNMP却由于易于实现和广泛的TCP/ IP应用基础而获得厂商的支持。而目,由于SNMPv2和 SNMPv3的相继出现,改善了SNMP中的安全问题,使SNMP得到快速的发展。
  1 SNMP的体系结构
  简单网络管理协议(SNMP)在体系结构分为被管理的设备(Managed Device)、SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三个部分。被管理的设备是网络中的一个节点,有时被称为网络单元(Network Elements),被治理的设备可以是路由器、网管服务器、交换机、网桥、集线器等。每一个支持SNMP的网络设备中都运行着一个SNMP代理,它负责随时收集和存储治理信息,记录网络设备的各种情况,网络管理软件再通过SNMP通信协议查询或修改代理所记录的信息。
  2系统的详细设计与实现
  2.1系统主要功能模块的设计
  基于SNMP协议的网络信息查询系统的主要功能是查询网络信息,该系统只有一个主要模块—信息查询模块。查询网络信息需要访问系统的API接口与网络设备中的MIB建立连接,首先应该开启SNMP服务器,然后添加欲访问主机的IP地址。在WinSNMP API接口中,管理站NMS与代理的通信协议都被封装在一些函数之中,实现网络拓扑自动发现的算法主要是利用深度优先算法探测目标网络,逐一查询每个网络设备的MIB表,发现活动的网络设备并绘制整个网络系统的拓扑图。
  2.2信息查询系统界面设计
  信息查询模块界面是基于VC++6.0平台上设计的,该编程软件有画图功能,所以可以利用该项功能依照该系统的所要完成的模块设计主界面。它的界面应该包含应查询信息的类型、代理地址及显示查询结果的文本图。具体界面设计如下图1所示。
  2.3信息查询的实现
  为了获得每个网络设备真实的存活状况连接关系,真实地重构网络连接与分布,我们将每个目的网络中网络设备MIB中的system、interface和iptable组字段信息结合起来获知网络设备连接信息。
  算法中,使用图的邻接表来存储网络设备的连接信息,将目的网络的网关存入头节点数组中,每个头节点以网关接口为索引将与网关连接的相关设备信息存入链接表中。头节点中包括网关类型、接口数量、每个接口的网络地址和运行状态。链接表每个节点中存入与网关直接连接设备类型、接口和另一个网络设备指针等信息。绘制网络拓扑图时采用深度算法遍历网络连接邻接图,从目标网络的网关开始,搜索所有与网关直接连接的网络设备并将信息存入连接表中,对于与网关间接连接的目标网络,我们根据设定的深度,有选择地将其子网网关插入头接点中。例如向网关agent发送TVL编码数据结构请求获取IpRoutertable的iproutenexthop字段及接收信息的算法如下所示。
  LPTSTR m_strOid[10],smiLPVALUE
  m_smivalue[10]
  PSnmp.Send(getwayip,1.3.6.1.2.1.4.21.1)
  pSnmp.Receive(m_strOid,m_smivalue)
  for(int i=1;i<=pSnmp.nCount;i++)
  {
  switch(m_value[i]->syntax)
  getValue(m_strOid ,m_smivalue)}
  pSnmp.Send(getwayip,m_strOid)}
  为实现SNMP的管理功能,需要要判断所需要管理请求类型。
  2.3.1 建立连接
  为了实现能够访问MIB信息库中的数据,我们首先应该与MIB库建立连接。这中间包括应该开启SNMP服务器、添加OID等来完成建立数据库过程。为了更形象的表示建立连接的过程,我们用下图2表示该建立过程。
  2.3.2信息查询
  (1)首先使用函数SnmpMgrOpen()打开与远程代理的会话。
  SnmpMgrOpen( _in_opt LPSTR lpAgentAddress, _in_opt LPSTR lpAgentCommunity, INT nTimeOut, INT nRetries );
  此函数的四个参数,分别是远程代理的IP地址、远程代理的共同体名称、超时时间和重试次数。
  (2)会话连接成功后,接下来就是向远程代理发送请求信息,发送请求信息的函数原型如下。
  SnmpMgrRequest(LPSNMP_MGR_SESSION session,BYTE requestType, RFC1157VarBindList *variableBindings, AsnInteger *errorStatus, AsnInteger *errorIndex );
  函数中第一个参数就是连接会话的返回值,第二个参数为请求类型,第三个参数为变量绑定的列表,第四和第五个参数分别为错误的状态信息及错误索引。
  3 结束语
  本文考察了网络管理领域的现状并结合具体的需求,设计出一个网络信息查询系统。该系统采用VC++技术开发,基于SNMP协议访问网络设备中MIB库的信息, 可以是网络管理员在日常工作方便的实时掌控网络的性能状态。
  参考文献
  [1] 余小高.用WinSNMP API实现网络管理站编程技术的研究.计算机应用与软件.2007.
  [2] 李国新.基于SNMP协议的网络管理的研究与实现技术.电脑与信息技术.2007.
  [3] 李雄伟等.基于SNMP网络管理系统的研究与开发.网络安全技术与应用.2007.6.
  [4] Collins,D,.Carrier Grade Voice over IP ,McGraw-Hill,2011.
  [5] Tanenbaum,A.S.,Computer Networks,4ed.,Prentice-Hall,2003.
其他文献
预警探测雷达模拟器目标分辨率设置会影响目标数量的探测,分辨率错误会产生与实体雷达不一致的虚警和漏警,影响预警探测雷达模拟器的逼真度。本文首先从理论上分析了对目标分辨
摘 要: 作者就托福课程教学实践过程中存在的各种问题进行分析,并尝试在教学内容、教学方法、教学设计和媒介手段等诸多方面进行调整和变革,创建了网络教学环境,开展了在线教学和课堂教学相结合的教学实践,取得了较好的教学成效。  关键词: 托福课程 网络教学环境 混合式教学模式  本世纪以来,信息技术迅速发展,网络已成为许多人日常生活不可分割的一部分。网络不仅促进了人们生活方式的巨大变革,同时为教育
临床抢救重症患者过程中,经常遇到胃管插入困难的情况。如神经内外科大多数患者因昏迷、气管插管、气管切开及病理改变等因素给留置胃管带来一定困难。昏迷患者吞咽功能障碍和
摘 要: 本文针对教育教学实际中存在的过度教育问题,立足学校层面,提出了解决此类问题的一些措施和办法,一是尊重、信任、赏识学生,使他们建立起充足的自信心;二是切实给学生减负,让学生快乐求知;三是理性培养学生用功学习;四是极力养成学生良好的学习习惯。  关键词: 快乐 求知 幸福 成长  每一个孩子都是“今天的天使,未来的栋梁”。作为教师,其在学校的生活和学习中要关注每一个孩子的生活质量,让