网管基础——SNMP协议

来源:互联网 发布:qq三国js加智力 编辑:程序博客网 时间:2024/04/30 13:34

什么是SNMP协议?

SNMPSimple Network Management Protocol的简称,是一个client/server或者称agent/manager结构的应用层协议,该协议是基于UDP的,而非TCP。

什么是MNE

MNEManaged Network Entity的简称,指的是SNMP协议中充当server端(agent端)的被管设备。管理软件运行在这些被管设备上,监控并汇报设备的运行情况。

这里的被管设备可以是网络设备、服务器、网络存储设备、网络打印机,甚至可以是PC。

什么是Agent?

Agent指的是上面提到的,安装在MNE上的,执行管理功能的软件或进程。

什么是NMS

NMSNetwork Management Station的简称,指的是SNMP协议中充当client端(manager端)的设备。运行在这些设备上的软件来收集被管设备的运行情况。

什么是MIB

MIBManagement Information Base的简称,指的是一个包含了众多数据对象的信息储存库,通过这些数据对象可以控制、配置或监视网络设备。

为什么SNMP协议基于UDP?

SNMP协议是一个request/response协议,它发出请求后需要被管设备发送响应以检查设备的运行情况。相对于TCP的面向连接的特点,SNMP协议其实并不需要增加系统的额外开销,因此它选择了开销更小的UDP协议作为传输层协议。如果某一请求发出后没有得到响应,系统会重发一个请求。

161/162端口作为SNMP的默认端口。

基于SNMP协议的报文内容是什么?

基于SNMP协议的,封装在UDP中的报文被称作Protocol Data Units (PDU),主要包含以下内容:

GetRequest Manager: requests an update (manager-to-agent)

GetNextRequest Manager: requests the next entry in a table (manager-to-agent)

GetResponse: Agent answers a manager request (agent-to-manager)

SetRequest: Manager modifies data on the managed device (manager-to-agent)

Trap: Agent alerts manager of an unusual event (agent-to-manager)

上面5个核心内容是SNMPv1中定义的,SNMPv2中又追加了2个内容,并在SNMPv3中开始实施,它们是:

GetBulkRequest: Optimized version of GetNextRequest.

InformRequest: Acknowledge asynchronous notification. (manager-to-manager)

上面7个核心内容的介绍转自wiki,容易理解。

什么是轮询(polling)?
NMS被设置为定期发出请求(GetRequest),以期获得被管设备的状态。而MNE上的agent也会相应地相应这些请求(GetResponse),告之它所监控的设备的状态。
这种定期发送请求的行为,被称为轮询。
采用轮询的方式来监控网络节点的运行状态,有以下优点:
减轻了MNE侧的负担。因为轮询的时间窗口是NMS侧决定的,而作为MNE侧,只需要收到请求之后作出响应。
减轻了整个网络的负担。因为轮询是从一个单独的设备发出的,而且是以固定频率发出的,在轮询时间窗口之外的时间里,网络中的设备都不需要做任何事情。
但轮询时间窗口的存在,会带来以下缺点:
无法实时监控。被管设备只有在轮询时间窗内向NMS汇报运行状态。如果有故障产生,也得等到下次轮询时才能够被发现。

什么是自陷(trap)?
我们预先设定了一些事件,并约定当这些事件发生时,就会做出响应。这些响应就是自陷,通常称之为中断(interrupt)。
当自陷事件发生时,MNE侧不会等到下一个轮询时间窗,立即将这个事件汇报给NMS。NMS的162端口专门用来监听自陷事件。
相比轮询的方式,自陷的方式的优缺点也是显而易见的。优点是实时性强,缺点是为了达到实时性,要增加被管设备的负担以及整个网络的负担。


暂时写到这里。2011年5月14日




















原创粉丝点击