ASN.1协议
ASN.1是一种 ISO/ITU-T 标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。它提供了一整套正规的格式用于描述对象的结构,而不管语言上如何执行及这些数据的具体指代,也不用去管到底是什么样的应用程序。
SNMP协议默认端口
SNMP Agent:161
SNMP Manager:162
SNMP消息类型
GetBulk、Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap。
SNMP报文结构
SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。
SNMP报文头部结构
SNMP报头包含SNMP版本标识符和团体名。
SNMP中包含管理站和代理,一个管理站可以管理多个代理,同样一个代理也可以被多个管理站所管理,一个代理和管理它的管理站可以通过一个具体的团体名进行访问,一个代理可以有多个团体名,这是允许的。常用:public。
PDU结构
PDU指协议数据单元,指明了SNMP的消息类型及其相关参数。
GetBulk、Get-Request、Get-Response、Get-Next-Request、Set-Request报文的PDU结构如下:
PDU类型、Request ID、差错状态(0-5)、差错索引、名-值对数组
其中,差错状态枚举如下:
0:noerror
1:too big
2:nosuchname
3:badValue
4:readOnly
5:genErr
Trap报文格式如下:
PDU类型、企业、Agent IP、Trap类型(0-6)、特定代码、时间戳、名-值对数组
SNMP的数据类型
INTEGER
OCTER STRING
Display String (ASCII string)
OID
NULL
IpAddress
PhysAddress
Counter
Gauge
TimeTicks
SEQUENCE
sequenceof
SNMP++的主要对象
Snmp:一个SNMP会话CTarget:一个SNMP Agent对象Pdu:一个SNMP报文Vb:一个变量-值对将多个Vb放在一个Pdu中。将一个Pdu和CTarget作为Snmp对象的Get方法的参数,就可以实现SNMP GET操作。pdu.get_vb(vb,index)和vb.get_printable_value()用来获取get的结果。