SNMP 简介

最近在研究WSN网络管理方面的内容,先看看事实上的工业标准SNMP长的是什么样子再说。

SNMP前身是SGMP(Simple Gateway Management Protocol),长江后浪推前浪,SGMP就挂了。SNMP的主要架构思想是manager/agent模型,使用5种commands用于manager与agent之间的交互,他们分别是“Get”,“GteNext”,“GetResponse”,“Set”和“Trap”。其实就是manager使用Get,GetNext,Set来获取或是修改Agent中的信息,而Agent使用GetResponse与Trap来回应或是主动通知Manager。而这些信息又要怎么表示呢?使用统一的MIB(Management Information Base)来表示吧。

看上去很简单,其实就是很简单,可拓展性也强。两种角色:“Manager”与“Agent”,5种命令:“Get”,“GteNext”,“GetResponse”,“Set”和“Trap”,而命令使用标准的MIB格式。

SNMP 简介

图1 SNMP网络层次

如图1所示,有Manager主动发起的命令有3种:“Get”“GetNext”“Set”,对应这三种命令,Agent通通使用GetResponse来回应。但只有这四条命令显然不行,我们需要Agent可以异步的通知Manager一些事情,比如传感器信息、失火警报、世界末日等等,于是又有了“trap”这条由Agent发起的命令……不过没看到Manager在收到“trap”信息后要不要回应呢?如果要,要使用什么格式呢?需要看看

Management Information Base 分析

要深入了解SNMP的能力必须要深刻认识MIB到底长什么样?适合什么样的数据交互。SNMP Agent被安装在网络中的一个元素中,可以使一个路由器,一个交换机,一个带网络功能的设备等等。每个SNMP Agent管理一系列特定的objects,而每个object又有一些特定的特性。于是乎,每个object/characteristic都可以使用一个唯一的ID号来确定,这就是OID。就是类似于这样的东西“1.3.6.1.4.1.2682.1”,转化成图就是类似于树形结构。

SNMP 简介

图2

发现没有,这货还真像Windows中的注册表……其实MIB的责任就是列出一个SNMP网络中所有设备的OID,至于怎么存储,再说吧……至于这货能不能胜任大容量的信息存储?现在还不清楚,但如果其真的像Windows中的注册表,还真的不太适合,可能需要一些辅助的方法。嗯,比如说通过OID获取的都是实时信息,而后在存储在数据库中。那么网络重编程怎么办?难道使用SET方法?变通一点咯,不一定使用SNMP进行重编程。

转载于:https://my.oschina.net/u/614480/blog/96609