此外,在使用Visual Studio2008开发代理应用时还需要调用部分库与组件,主要的由WinSNMP,IPHelper与STL。其中WinSNMP与IPHelper类接口将会在第3章进行介绍,STL是一些容器的集合,有“vector”“list”“set”“map”等。在本程序中主要使用的集合有vector和map,分别用于遍历表与MIB树的构建。
1.4. 论文完成的工作
第二章主要完成对SNMP协议工作模型的分析,详细叙述了SNMP遵循的ASN.1语法、BER编码以及极其SMI定义、MIB结构、PDU的格式。
第三章主要分析代理开发过程中使用的编程接口。
第四章介绍了代理的模块设计,包括其中监听模块与MIB库的设计。
第五章详细介绍了代理功能的具体实现。
第六章给出了程序测试运行的部分结果图。
2. SNMP协议分析
SNMP协议是一种简单网络管理协议。SNMP协议主要包括3个组成部分:SNMP、SMI、与MIB。其中,SNMP用于定义网管体现结构与基本操作;SMI用于描述定义管理信息的数据类型;MIB用于定义管理信息的组织结构。SNMP协议在发展过程中经历了3个版本。要理解SNMP协议的工作原理首先应当介绍ASN.1语法、BER编码规范以及SMI和MIB。
SNMP系统大多采用客户机/服务器工作模式。图2-1给出了SNMP系统的基本结构。SNMP系统包括两个组成部分:SNMP管理器与SNMP代理。其中,SNMP管理器(SNMP Manager)是运行在网管工作站中的管理进程,它是大多数的SNMP请求(不包含告警)的发起者;SNMP代理(SNMP Agent)是运行在网络设备中的管理进程,他是大多数的SNMP请求(不包含告警)的响应者。每种SNMP请求对应一种具体的网管操作,实际上是对管理信息的读或写操作,而管理信息都保存在代理的MIB库中。
SNMP系统的基本结构文献综述
SNMP服务在传输层采用UDP协议,在传输管理消息之前不需要建立连接。SNMP定义的网管操作分为两种类型:普通操作与告警操作。其中,普通操作是由SNMP管理器主动向代理发送,需要SNMP代理返回响应的网管操作;告警操作是由SNMP代理主动向管理器 ,不需要SNMP管理器返回响应的网管操作。当SNMP系统执行普通操作时,SNMP代理的角色是服务器,使用的熟知端口号为161;当SNMP系统执行告警操作时,SNMP管理器的角色是服务器,使用的熟知端口号为162。
SNMP采用轮询监控的工作方式,SNMP管理器定时向代理发送SNMP请求,并根据返回信息判断是否有异常事件发生。SNMPv1提供一种简单的安全机制,通过团体(Community)来标识管理器与对应的代理。