6.1.4 管理信息结构
SNMP是应用层协议,要求通信两端的协议交换各种报文,而底层要求用户数据都是字节序列,因而需要编码解码操作。为了解决这个问题,就需要一个定义从实际的软件数据结构中抽象出来的数据类型的表示方法,这种方法被称为抽象记法。
而为了描述抽象记法,就需要一种语言。ASN.1就是用来描述抽象记法的语言,可以应用任何协议层。
管理信息结构(SMI)通过一个宏OBJECT-TYPE,规定了管理对象的表示方法
6.1.5 SNMP基本操作及协议数据单元

1)get request 操作:从代理进程处提取一个或多个参数值
2)get-next request操作:从代理进程处提取紧跟当前参数值得下一个参数值
3)set request操作:设置代理进程的一个或多个参数值
4)get response操作:返回一个或多个参数值,由代理进程发出
5)trap操作:代理进程主动发出报文
一般情况下,代理进程采用端口161接受管理进程发出的get或set报文而管理进程采用端口162来接受代理发来的trap报文
代理进程收到报文后采取的动作:
第一步:依据ASN.1基本编码规则解码,生成用内部数据结构表示的报文,如果在此过程中出现了错误导致解码失败,则丢弃报文
第二步:取出报文中的版本号,如果与本代理进程支持的SNMP版本不一致,则丢弃该报文
第三步:取出报文中的共同体名,发出请求的网络管理设置了报文中的共同体。如果共同体与本设备不符合,则丢弃报文,同时产生一个陷阱报文
第四步:从验证的ASN.1对象中提出协议数据单元,失败就丢弃报文,对PDU进行处理后,将处理结果产生一个报文,并按照收到报文的源地址将该报文发送出去
一个SNMP报文公有
三部分组成:公共SNMP首部、get/set首部或trap首部、变量绑定、
