snmp从入门到开发-进阶篇

http://blog.chinaunix.net/uid-23069658-id-3251526.html

管理信息库 MIB:

    所谓管理信息库,或者MIB,就是所有代理进程包含的、并且能够被管理进程进行查询和设置的信息的集合,或者叫管理对象的集合,在RFC 1213 [McColghrie 和Rose 1991]中定义了MIB-II,即第二版的MIB库。

    MIB是采用SMI(RFC 1155)来定义的。SMI全称为Structure Management Information,管理信息结构。SMI规范定义了一个基本框架,使用框架内的规范可以定义MIB,而SMI同时又是ASN.1的一个子集,它主要约定了使用到的语法、类型、宏、数据格式等

ASN.1语法:

ASN.1(Abstract Syntax Notification 1),抽象语法描述语言,是一种独立于机器的描述语言,用于描述在网络上传递的消息。

在SNMP开发中,用ASN.1编写MIB文件,还要使用ASN.1中的BER进行编解码。

    语法规则:从数据类型、内容顺序或结构等方面来描述消息的内容

    编码规则:如何编码、解码实际消息中的数据

    语法部分用于对数据结构、类型、顺序进行描述。编码则将语法部分描述的数据进行编码,变为二进制比特流,以便在网络上传输,或反方向地将接收到的数据流进行解码。这使得编码流可以跨平台、跨设备进行传输。

/*注释用成对的连字符(--)在注释的每行开始处表示

*标识符(取值和字段的名称)、类型引用(类型的名称)和模块名称由大写字母、小写字母、数字和连字符组成,由大写字母开始

*n1 粗斜体表示变量、[]  粗的方括号标示该值为可选项、{}  粗的大括号表示一组相关项、|  粗体竖杠表示一组之中的内容可任选其一、… 粗体省略号表示重复出现、=  粗体等号,用一个子项表示该项

*

*/

模块(module):

是ASN.1规范中的基本构造块,定义一个名为modulereference的模块,其格式如下:

DEFINITIONS ::=

         BEGIN

                 EXPORTS

                 IMPORTS

                 AssignmentList

         END

   其中:EXPORTS 这个模块中的定义可能被其他模块引入,用的比较少;IMPORTS 定义将要由其他模块引入的对象或子模块;AssignmentList 这个模块中将定义类型分配、值分配及宏定义。

六种基本数据类型:

     BOOLEAN,INTEGER,ENUMERATED,REAL,BIT STRING,OCTET STRING

     还有NULL空值 、用户依据现有数据类型灵活定义的各种数据类型

    子类型:是在现有的数据类型基础上,增加明确的限定条件,如取值范围,缺省值等

赋值:

赋值在MIB库文件中的定义是最常见的一部分。

语法: ::=

value name :由用户自定义,但一般最好不要重名;

type:就是前面ASN.1的内置数据类型,或用户自定义类型;

value:当然就是该变量的值,一般要和变量类型所限定的范围一致。
    示例:ipInReceives  Counter  ::= 2450

ASN.1的结构体类型

l  SEQUENCE 一个或多个类型的有序集合,类似于C语言中的struct 类型定义:

UserAccount ::= SEQUENCE {

     username PrintableString,

     password PrintableString,

     accountNr INTEGER

 }

赋值
         myAccount UserAccount ::= {

username “tly”,

password “guesswhat”,

         accountNr 2345

         }

还有SEQUENCE OF SET(一个或多个的类型集合)  SET OF (0个或多个某个给定类型多次出现的无序集合

CHOICE 多个类型其中的一个,类似于C语言中的枚举型

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值