简单网络管理协议(snmp)初识

     SNMP最初是作为TCP/IP网络管理的临时解决方案,于1988年提出,但是对实现应用情况而言,SNMP已经成为目前应用最广泛的TCP/IP网络管理框架,成了事实上的IP网络管理的国际性标准。
      组成SNMP框架的三个主要部分是SMI(Structure of Management Information,管理信息结构)、MIB、和SNMP协议。

1.管理信息结构(SMI)
管理信息结构是管理信息库中对象定义和编码的基础。SMI用于描述MIB中的对象,是对管理对象类型的公共结构和一般类型的描述,加上对象标识方法,在实现中非常重要。SMI中最关键的原则是用ASN.1(Abstract Syntax Notation One,抽象语句法表示法1)来形式化定义管理对象。
2.管理信息库(MIB)
MIB中定义了可以通过网络管理协议进行访问的管理对象的集合,给出了管理对象的具体定义,其中用于描述这些对象的语言就是SMI中规定的。如今,MIB已经有了多种版本,第一版RFC(Request For Comments,请求注解)定义的MIB称为MIB-I。接下来又添加了许多对象,这个新的对象集称为MIB-II。
3.SNMP协议
SNMP是为网络管理服务而定义的应用协议。利用SNMP协议,可以查询管理代理实现的MIB中相应对象的值,来监视网络设备的状态。管理代理也会通过SNMP协议发出一些trap(陷阱报文)。
SNMP通过交换SNMP协议报文来互通管理信息。每个报文都是完整的和独立的,用UDP(User Datagram Protocol,用户数据报协议)传输服务的单个数据报传送。每个报文都含有版本标志、SNMP共同体名和PDU(Protocol Data Unit,协议数据单元)。
SNMP的四种协议数据单元——get-request、get-next-request、set-request、get-response——有公共的PDU格式,它由PDU标签、PDU长度、PDU字段值三个字段组成,其中PDU字段值由RequestID、ErrorStatus、ErrorIndex、VarBindList 组成。SNMP PDU结构如下图2.3所示。

PDU标签 PDU长度 PDU字段值
RequestID ErrorStatus ErrorIndex VarBindList

1. RequestID
请求标识符。这是由管理进程设置的一个整数值。代理进程在发送get-response报文是也要返回此请求标识符。管理进程可以同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对应于哪一个请求报文。
2. ErrorStatus
差错状态。它由代理进程回答时填入0~5中的一个数字。
差错状态 名字 说明
0 noError 一切正常
1 tooBig 代理无法将回答装入一个SNMP报文中
2 noSuchName 操作指明了一个不存在的变量
3 badValue 一个set操作指明了一个无效值或无效语法
4 readOnly 管理进程试图修改一个只读变量
5 genErr 某些其他的差错

3. ErrorIndex
差错索引。当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。
4. VarBindList
VarBindList(变量绑定列表)是我们要重点关注的。它包含一系列变量的清单,变量列表中每一项包含一个变量名和变量值。在get-response报文中,这些变量值有部分就是我们访问MIB时所要获取的性能参数值。
下面简单介绍一下常用的SNMP PDU:
get-request操作:从代理进程处提取一个或多个参数值。
get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值。
set-request操作:设置代理进程的一个或多个参数值。
get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。
trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生。

开发相关网络监控系统计算机系统需要安装一下协议、并启用:

网络设备即需要对其进行网络性能参数获取的设备,如主机、路由器等等。如果在个人电脑主机或者服务器的话,需要用系统安装盘安装SNMP代理,包括“简单网络管理协议”和“WMI SNMP提供程序”;路由器则需要在IOS(Input Output System,输入输出系统)中启用SNMP,以保证程序与网络设备能够进行SNMP协议数据单元的通信。

                                     -----“基于SNMP网络性能参数的获取”

你可能感兴趣的:(数据结构,ios,应用服务器,网络协议,网络应用)