读书频道 > 网站 > 网页设计 > 深入理解Net-SNMP
3.3.2 自定义数据类型
15-09-06    下载编辑
收藏    我要投稿   

本文所属图书 > 深入理解Net-SNMP

本书是首部从实战的角度讲解Net-SNMP开发的书籍。本书从网络管理概念开始,到MIB的开发设计,最后到使用Net-SNMP开发网络管理应用,实现了由网络管理理论到实践的落地。它有以下几个特点:书中内容由项目而生,以立即去当当网订购
这里的自定义数据类型,指的是SNMP中定义的应用程序类(Application)。这些自定义数据类型只能在SNMP中使用,不可以在其他的应用程序中使用。另外,根据第2章的内容,我们知道应用程序类的编码方式与基础数据类型是不一样的。下面让我们看看SMI中定义了哪些应用程序类型。
 
SMIv1自定义数据类型:
 
-- NetworkAddress,网络地址,可以是除Internet外的网络地址族,不过目前实际上就是IpAddress
NetworkAddress ::= CHOICE { internet IpAddress }

-- 32位的IP地址,用网络字节顺序表示
IpAddress ::= [APPLICATION 0] IMPLICIT OCTET STRING (SIZE (4))

-- Counter类型值单向增长,达到最大后,回归到0重新开始计数(Agent重启后也重置为0),
主要用于统计接口发送和接收的字节数
Counter ::=  [APPLICATION 1] IMPLICIT INTEGER (0..4294967295)

-- Gauge类型值可增可减,如路由器中接口的速率可以用该类型表示
Gauge ::=  [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)

-- 以百分之一秒(0.01)为单位计时,表示两个时间点之间的计时。要求在描述信息中说明其计时基准。
TimeTicks ::= [APPLICATION 3] IMPLICIT INTEGER (0..4294967295)

-- 将其他ASN.1类型编码后的值两次封装。为了向后兼容,SMIv2中也定义了该类型,不建议使用。
Opaque ::= [APPLICATION 4] IMPLICIT OCTET STRING
下面只是列举了SMIv2中相对SMIv1有变化的自定义数据类型:
Gauge32 ::= [APPLICATION 2] IMPLICIT INTEGER (0..4294967295)
Unsigned32 ::= [APPLICATION 2]  IMPLICIT INTEGER (0..4294967295)

-- 更大范围的Counter,有64位:2^64-1 == 18446744073709551615
-- 标准MIB模块中,只有在使用Counter32时计数器不到1小时就归0的情况下,才使用该类型
-- 其他约束时与Counter32相同
Counter64 ::= [APPLICATION 6] IMPLICIT INTEGER (0..18446744073709551615)

 

在SMIv2中Gauge32与Gauge实际是一致的。另外从上面的定义来看,Gauge32与Unsigned32共用一个应用类型标签号,所以它们的编码实际上是一致的。
 
SMIv2中依然保留了SMIv1中的IpAddress类型,且含义没有变化。不过都不适用于IP v6的128位地址,定义IP v6地址时应该使用文本约定中新定义的地址类型。
 
对Counter32则有更进一步的说明:计数的值只有在有初始值和有记录变化时,当前的计数值才有明确的含义。所以必须使用TimeStamp、DateAndTime或TimeTicks定义的另外的管理对象进行辅助。其获取权限MAX-ACCESS部分只能为“read-only”或“accessible-for-notify”,也不能定义DEFVAL子句。(MAX-ACCESS和DEFVAL子句在3.4节讲述)
点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.3 功能
下一篇:1.5 小结
相关文章
图文推荐
JavaScript网页动画设
1.9 响应式
1.8 登陆页式
1.7 主题式
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站