- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
简单网络管理协议的研究与应用
对SNMP消息的BER编码描述:
2.4 RFC1213管理信息库MIB
RFC1213定义MIB-2管理对象的核心集合,这些对象在任何SNMP系统必须实现。管理信息结构说明了定义和构造MIB的总体框架,以及数据类型的表示和命名方法。SMI只允许存储标量对象和矢量对象(表对象),不支持复杂的数据结构。其提供标准化技术表示管理信息如下:(1)SNMP所有的管理对象组织成分层结构;(2)提供结构化的信息组织技术;(3)提供命名机制。树中的叶子结点都有一个分层的编号。叶子结点代表实际的管理对象,从树根到树叶的编号串联起来,用圆点隔开,形成管理对象标识符。
2.5 UDP协议
用户数据报协议UDP(User Data Protocol)是一个面向无连接的协议,其传输效率较高。协议格式如表1所示。在SNMP代理中,常用161作为SNMP消息接收;162为AgentSNMP消息响应。
3 SNMP编程与测试环境
SNMP要求的编程环境有:Java;C/C++;Borland C++Builder6。该程序选用Borland C++ Builder6编程环境。而SNMP的测试环境要求:(1)Windows SNMP服务:Windows NT/Win-dows 2000/Windows XP的网络监视服务提供SNMP代理,端口:161;(2)AdventNet SNMP服务:AdventNet公司的SNMP代理。端口可自己设定;(3)AdventNet SNMP MIB Browse:AdventNet公司的SNMP动作测试工具;(4)Sniff软件是一个很好的网上抓包程序,用来分析发送和接收的SNMP消息。
4 SNMP编程实现
4.1 SNMP消息分析
通过对SNMP协议的理解在C++Builder中将其定义为以下结构体类型;分别完成对消息的构造和解析。
(1)消息结构的结构体
4.2 SNMP消息构造
根据用户设置的Agent的IP、端口号、执行的请求和对象的OID;按BER编码来构造消息,设置SNMPMessage消息并存入Result[]数组中,以备发送。SNMP消息构造程序代码如下:
4.3 SNMP消息发送与接收
使用C++Builder提供的TNMUDP控件完成对SNMP消息的发送和接收,并存入Data1[]数组中,以备解析。以下为部分程序代码:
4.4 SNMP消息解析
将UDP接收到的消息存入data1[]数组中,与消息的解析相反;将其每一部分添人所定义的SNMPMessage结构中,以备解析显示调用。以下为部分程序代码:
5 结束语
SNMP协议已广泛应用于各种路由器和高端交换机,同时在各种网络操作系统的远程管理中也广泛应用。利用该协议可监控网络核心设备的运行情况(流量、吞吐率、状态等),还可认证上网用户,完成计费功能。
来源:维库开发网
上一篇:基于SSH的网络安全解决方案
下一篇:网络电视系统中实现延时续播功能的方案