SNMP_PP_CHS Charpter 3 - 5

SNMP++是一款基于C++的简单、强大且可移植的SNMP库,支持SNMPv1和SNMPv2,提供了自动内存管理、超时重发机制及阻塞和非阻塞模式等功能。它不仅能在多种操作系统上运行,还能在不同传输层上收发Notification和Trap。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.         SNMP++特性

1.1.        完整的一套SNMP  C++

SNMP++是以一套C++类作为基石的。这些类是:对象描述符(Oid)类、变量绑定(Vb)类、协议数据单元(Pdu)类、Snmp类。并且,其他各种用抽象语法表示(ASN.1)来描述的管理信息结构(SMI),也被抽象成了简单的、面向对象的类型。

1.2.        SNMP内存的自动管理

SNMP++的对象被实例化或销毁的时候, (其相关的)类可以自动管理着各种各样的SNMP结构和资源。(这就使得)应用的开发者不用再担心数据结构和资源的卸载,不然就得为防止内存的崩溃或者泄漏提供有效的保护措施。SNMP++的对象的实例化可以是静态的,也可以是动态的。静态的实例化可以在对象脱离它的作用域时卸载掉;动态分配则需要使用C++newdelete。在SNMP++内部,有许多被隐藏和保护在公用接口后面的SMI结构。所有的SMI结构都是在内部管理的,程序员不需要定义或管理SMI的结构和它的值。因为在SNMP++内绝大部分地方是不存在C的指针的。

1.3.        简单易用的

由于隐藏并管理了所有SMI结构和它们的值,SNMP++的类使用起来即简单又安全。(外部)程序员无法破坏到隐藏和保护在作用域后面的东东。

1.4.        强大灵活的

SNMP++提供了强大灵活的功能,降低了管理和执行的复杂性。每个SNMP++对象都通过建立一个会话来和一个代理端联系。(也即)由一个SNMP++的对话类的实例,(就能)处理所有与特定代理端的连接。(另外)自动重发和超时控制的机制,为每个SNMP++对象都带来了可靠性。一个应用可能会包含许多SNMP++的对象的实例,每个实例都可能与相同或不同的代理端通话。有了这个功能强大的特性,网络管理程序就可以为每个管理单元建立起不同的会话。另一方面,(就算)单一的SNMP会话也可以解决问题。例如:一个应用可以通过一个SNMP++对象来处理图形统计,另一个SNMP++对象监控trap,也许还有第三个SNMP++对象用以浏览SNMPSNMP++自动并行处理了同一时刻来自不同SNMP++实例的请求。

1.5.        可移植对象的

SNMP++的主体是可以移植的C++代码。(其中)只有Snmp(译注:后面将要讲到)的实现与不同的目标操作系统有关。如果你的程序中包含了SNMP++的代码,那么导出这部分代码的时候,就可以不做(任何)修改。

1.6.        自动超时和重发机制

SNMP++提供了自动超时和重发机制,程序员不用去实现超时或重发机制的代码。重发机制是在SnmpTarget类里面定义的,这就使得每一个目标(Target)都具有了它自己的超时/重发机制。

1.7.        阻塞模式

SNMP++提供了阻塞方式。MS-Windows上的阻塞方式可以并发的阻塞从每个SNMP类的实例发出的请求。

1.8.        异步的非阻塞模式

SNMP++还为应答提供了异步的非阻塞的方式。超时和重发机制同时支持阻塞和异步两种模式。

1.9.        NotificationTrap的收发

SNMP++允许在多种传输层上(包括IPIPX)收发trap。(而且)SNMP++还允许使用非标准的IP端口和IPX套接口来收发trap

1.10.     通过双效的API支持SNMPv1SNMPv2

SNMP++的设计可同时支持SNMPv1SNMPv2的使用。所有API的操作都被设计成了双效的,(也即)操作是SNMP版本无关的。通过使用SnmpTarget类,与SNMP的版本相关的操作被抽象出来了。

1.11.     支持SNMPGet, Get Next, Get Bulk, Set, InformTrap的操作

SNMP++完整的支持SNMP6种操作(译注:后面将要讲到)。这6SNMP++的成员函数使用相同的参数表,也都支持阻塞和非阻塞(异步)方式。

1.12.     通过继承实现重定义

SNMP++是用C++实现的,所以允许程序员重载或重定义那些不适合他们的操作。举个例子:如果一个应用需要特定的Oid对象(译注:后面将要讲到),那就需要建立一个Oid类的子类,用以继承所有Oid类的属性和操作,同时在派生类种加入新的属性和操作。

 

2.         Microsoft Windows 系列操作系统上使用SNMP++

SNMP++已经在MS-Windows 3.1, MS-Windows For Work Groups 3.11,  MS-Windows NT 3.51, and MS-Windows ’95上实现了。

2.1.        WinSNMP Version 1.1的使用

MS-Windows上可以用WinSNMP Version 1.1来运行SNMP++。这就使得其他用WinSNMP代码直接写的SNMP应用可以与SNMP++的应用兼容。注意,目前HPMS-Windows设备使用WinSNMP,其他设备不需要使用WinSNMP来进行ANS.1的编码和解码。但那些没有使用WinSNMP的设备也需要与WinSNMP的应用兼容,才能和SNMP++的应用兼容。

2.2.        IPIPX的支持

(可以)通过一个WinSock compliant stack,来实现对IP的操作。同时为了在IPX协议上运行,还需要兼容Novell网络的客户程序和驱动 。(目前)SNMP++已经通过了在广泛多样的协议栈下的运行测试,这些协议栈包括:FTPNetmanageLanWorkPlaceMS-WFWG 3.11,以及Windows NT

2.3.        NotificationTrap收发的支持

SNMP++ 包含了对WinSNMP trap机制的支持。这(同时)包括了trap的发送和收取。在接收trap的时候,还提供了过滤trap的功能。

2.4.        HP OpenView for Windows 兼容

已经有大量使用SNMP++创建的应用,实现了HP OpenView for Windows的兼容。

 

3.         UNIX上使用SNMP++

3.1.        统一的类的接口

用在UNIX设备上的SNMP++类的接口和MS-Windows是一样的。

3.2.        WindowsUNIX的仿真与移植

通过编译、连接对应的SNMP++类,SNMP++就可以实现在UNIX上运行。SNMP++/UNIX的设计决定了它可以同时运行在原始的UNIX字符模式、X-Window模式,或者Windows-to-UNIX的仿真工具上。

3.3.        HP OpenView for UNIX 兼容

已经有大量使用SNMP++创建的应用,实现了与HP OpenView for UNIX的兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值