说明:本文仅供学习交流,转载请标明出处,欢迎转载!

SNMP(Simple Network Management Protocal),简单网络管理协议,其前身是SGMP协议(简单网关监控协议),该协议的作用是对网络上的设备进行监视管理,是一种应用层协议。

基于TCP/IP的网络管理包含两个部分:网络管理器(也叫管理进程,manager)和被管设备(代理),被管设备相应的进程称为代理进程。管理器控制盒监视着一组代理。通常情况下,管理器是主机,代理是路由器或server。代理把相关性能信息存储在数据库中,管理器能够获取或改动该数据库的值。管理器和被管设备之间的通信主要包含下面是三个方面:

1.管理器向代理请求获取某信息。

2.管理器向代理请求设置代理数据库中的某些值,以便强迫代理完毕某个任务。

3.代理向管理器发送异常情况的警告。

网络管理的三个重要组成部分:SMI,MIB,SNMP

SMI:管理信息结构。主要作用是:(1)定义了对象命名的规则;(2)定义了类型规则。(3)定义了编码方法。

MIB:管理信息库,主要作用是:定义了类型对象的实体。

SNMP:定义了管理器与代理交互的分组格式。

为了更好地理解这三个网络管理构件。我们将其与编程语言类比:SMI相当于语法。MIB相当于对象的申明与定义,SNMP相当于程序编码。

以下简介下着几个构件.

SMI 管理信息结构

SMI使用了抽象语法标记1(由ISO指定的ASN.1)来定义数据类型。

对象命名规则:通过对象命名树来约定命名规则。SMI使用了对象标识符,全部被SNMP管理的对象都要赋予一个对象标识符,这个对象对于命名树中的iso.org.dod.internet.mgmt.mib-2,数字表示为1.3.6.1.2.1,对象标识符以1.3.6.1.2.1開始。

类型:包含简单数据类型(相当于C内置类型)和结构化数据类型,而结构化数据类型包含sequence类型(相当于C语言中struct定义的类型)和sequence
of
类型(相当于C语言中的数组)。

编码方法:SMI採用了BER(Basic Encoding Rules,基本编码规则),BER指明数据可用一个三元组(标记、长度、值)表示。每一种数据类型相应一个唯一的标记和长度,如整形INTEGER相应的标记为0000 0010。其长度为4B。可用表示为0000
0100。

MIB 管理信息库

管理信息库定义了因特网上被管对象的集合。以下简介下MIB2(版本号2)。每一个代理都有它自己的MIB2。包括了管理器可以管理的全部对象的集合。

MIB2包括:sys(system,系统)、if(iterface,接口)、at(address translation。地址转换)、ip、icmp、tcp、udp和snmp。

 怎样訪问MIB变量呢? 以udp为例。来分析下简单变量的訪问方式。首先我们必须知道变量和实例的差别。我们能够把变量看成一种命名规则,而实例就是一个对象,若当前的结点为叶子结点,则能够表示成一个变量,若为非叶子结点,则相应一个表。对于简单变量的訪问(如udpInDatagrams)其id为1.3.6.1.2.1.7.1,则该变量的实例为id.0,即1.3.6.1.2.1.7.1.0,对于表的訪问,如在我们的命名树中有这种分支udpTable-->udpEntry--->(udpLocalAddress,udpLocalPort)。先说下相应的数字,udp相应7,udpTable相应5,udpEntry相应1。udpLocalAddress相应1。udpLocalPort相应2,在不论什么时候。要訪问表中的某个特定实例(行),我们应该訪问id+索引,这里的索引是本地IP/本地port号,比如对于套接字181.23.45.14.23,

获取其ip地址的方法是1.3.6.1.2.1.7.5.1.1.181.23.45.14.23,

获取其port号的方法为1.3.6.1.2.1.7.5.1.2.181.23.45.14.23。

重要的是。实例标识符(id+索引)是依照字典序排列的,对于表的排序,採用的“先列后行”的规则排列。也就是说在訪问的时候,先依照列的顺序走。

SNMP

SNMP应用程序的主要作用是使得管理器和代理之间相互通信,以达到网络管理的功能。SNMPv3在之前的版本号上加入了两个特性不同级别的安全和远程管理

PDU:SNMPv3定义了8种类型的PDU。各自是GetRequestGetNextRequestGetBulkRequestSetRequestResponseTrapInformRequestReport

GetRequest:管理器发给代理,用于读取一个变量或一组变量的值。

GetNextRequest:管理器发给代理读取下一个变量值。

 GetBulkRequest:管理器发给代理,读取块请求。

SetRequest:管理器发给代理,用于设置变量的值。

 Response:代理发给管理器,响应其请求。

Trap:代理发给管理器,用来报告事件。

InformRequest:管理器发给还有一个远程管理器。获取某些变量的值。

Report:管理器发给还有一个远程管理器。报告其差错。

   SNMP使用的UDPport

代理(相当于server)使用的是,管理器(相当于代理)使用的是。

  注意:这两个port号仅仅在用于向对方主动发送报文时,在报文中设置目的port号。而对于被动响应报文,则port号使用主动请求方使用的暂时port号。

參考文献:

[1]《TCP/IP协议族 第四版 王海等译》

[2]《计算机网络 第5版》

[3]《TCP/IP具体解释 卷1:协议》

SNMP协议总结的更多相关文章

  1. SNMP协议以及著名的MIB详解

    SNMP协议介绍  简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task ...

  2. Snmp协议应用-扫描局域网内打印机

    .h2cls { background: #6fa833 none repeat scroll 0 0 !important; color: #fff; font-family: "微软雅黑 ...

  3. SNMP协议入门

    SNMP协议入门 1.引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的所有可被查询 ...

  4. 浅议SNMP安全、SNMP协议、网络管理学习

    相关学习资料 tcp-ip详解卷1:协议.pdf(重点看25章SNMP部分) http://www.rfc-editor.org/rfc/rfc1213.txt http://www.rfc-edit ...

  5. SNMP协议

           SNMP(Simple Network Management Protocol,SNMP)简单网络管理协议,其定义了传送管理信息的协议消息格式及管理站和设备代理相互之间进行消息传送的规程 ...

  6. SNMP SNMP协议

    SNMP协议 一.什么是SNMP? SNMP是简单网络管理协议[Simple Network Management Protocol],由一组网络管理的标准组成,包含一个应用层协议(applicati ...

  7. [置顶] SNMP协议详解<二>

    上一篇文章讲解了SNMP的基本架构,本篇文章将重点分析SNMP报文,并对不同版本(SNMPv1.v2c.v3)进行区别! 四.SNMP协议数据单元 在SNMP管理中,管理站(NMS)和代理(Agent ...

  8. 用SNMP协议实现系统信息监控--Windows Server 2008

    简单了解: SNMP简单网络管理协议,是一种属于应有层的协议,主要有三个部分组成,被管理部分.代理部分和网络管理系统. 被管理部分是一个网络节点,也称为网络单元.SNMP代理是被管理设备上的一个网络管 ...

  9. SNMP协议具体解释

    简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)採纳作为一个短期的网络管理解决方式:因为SNMP的简单性,在Inter ...

  10. 在ZABBIX平台上通过SNMP协议监控网络设备

    在ZABBIX平台上通过SNMP协议监控网络设备 方法一:自动发现监控项 ZABBIX自带模板Template SNMP Interfaces中有"自动发现规则"这一选项,在主机选 ...

随机推荐

  1. 延时过程中要加上app.processEvents(),进度条里也要加上这句

    如何让程序等待一段时间QTime t;t.start();while(t.elapsed()<1000);这种死循环也是一种常见错误用法.但改成正确的还是比较简单的: QTime t;t.sta ...

  2. java中遍历List中的map问题

    List list = new ArrayList();Map map = null; while (rs.next()) { map = new HashMap(); map.put("f ...

  3. S5PV210的IRAM应用

    准备分析   IRAM的大小96k,其实前两个程序都在这里运行的,程序都小于16K.要实现的是从把IRAM从的前16k从IRAM的起始地址0xD0020000拷贝到0xD0024000 处,调用mai ...

  4. Layout Resource官方教程(3)在layout中用include嵌入其它layout

    简介 <include>Includes a layout file into this layout. 类似 #include ,把layout展开在include处 attribute ...

  5. linux 内核驱动--Platform Device和Platform_driver注册过程

    linux 内核驱动--Platform Device和Platform_driver注册过程 从 Linux 2.6 起引入了一套新的驱动管理和注册机制 :Platform_device 和 Pla ...

  6. 存储过程中“Select Top 变量”的问题如何解决

    在SqlServer2005中,可以这样: DECLARE @p int SELECT TOP (@p) * FROM 表名 在SqlServer2000中,不支持以上方法,可以这样: DECLARE ...

  7. POJ 1321 棋盘问题(DFS & 状压DP)

    用DFS写当然很简单了,8!的复杂度,16MS搞定. 在Discuss里看到有同学用状态压缩DP来写,就学习了一下,果然很精妙呀. 状态转移分两种,当前行不加棋子,和加棋子.dp[i][j]中,i代表 ...

  8. Azure Backup 简介

    ViswanathTata云 +Enterprise 项目经理 AzureBackup是 Azure恢复服务的一部分,在安全高效的环境中对上传到 Azure的数据提供简单可靠的管理和保护.Azur ...

  9. ReaderWriterLock类(转)

    ReaderWriterLock类 通常来讲,一个类型的实例对于并行的读操作是线程安全的,但是并行地更新操作则不是(并 行地读和更新也不是). 这对于资源也是一样的,比如一个文件.当保护类型的实例安全 ...

  10. java基础全套

    这是我自己早前听课时整理的java基础全套知识  使用于初学者 也可以适用于中级的程序员 我做成了chm文档的类型  你们可以下载  笔记是比较系统全面,可以抵得上市场上90%的学习资料.讨厌那些随便 ...