SNMP Table简介
SNMP Table是对象的有序集合,包含若干行。为什么SNMP中需要用表格呢,原因是有些数据的组织用表格来表达更方便,多个对象的组合才能完整描述一条信息。格式相同的信息可能有多条,像表
tcpConnTable:
tcpConnState
|
tcpConnLocalAddress
|
tcpConnLocaPort
|
tcpConnRemAddress
|
tcpConnRemPort
|
established(5)
|
127.0.0.1
|
1042
|
127.0.0.1
|
6000
|
closed(1)
|
127.0.0.1
|
6000
|
127.0.0.1
|
1042
|
closeWait(8)
|
192.168.0.101
|
1
|
192.168.0.102
|
80
|
SNMP的变量可分为两种,一种是标量(scalar variable),另一种是用表格组织的变量。对象是一个定义,实际的应用需要把对象实例化,无论哪种变量都有对象实例。
一个标量对象只有一个对象实例,标量的对象实例是通过在对象ID后加‘.0’来标识,如sysName变量的OID是:“.iso.org.dod.internet.mgmt.mib-2.system.sysName”,标识便是“.iso.org.dod.internet.mgmt.mib-2.system.sysName.0
”。 表格中的对象我们通常叫列对象,
他的实例是一组用列对象标识符
(OID)
和行索引值
(RowIndexValue)
联合标识的实例,对象OID后面扩展index的值来标识对象实例(OID.ind1Value.ind2Value…..),index相当于数据库中的主键,index的个数可以是1个也可以多个,通过index可找到唯一的对象实例,举个例子,如果取
tcpConnTable
中的
tcpConnState
第
3
个对象实例的值,通过“
.iso.org.dod.internet.mgmt.mib-2.tcp.tcpConnTable.tcpConnEntry.tcpConnState.
192.168.0.101.1. 192.168.0.102.80”来标识,取出的值就是closeWait(8)
。
SNMP
表格的常用操作是取值(取整个表的对象实例的值、取行的值、取列的值)、修改值、添加行、删除行和遍历整个表。其实这些操作都是基于
get
、
set
、
getNext
、
getBulk
、
response
这几个基本操作实现的,要证实也不难,用抓包工具抓包看看就知道了。