??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩一区二区三区四区五区,国产精品久久久久国产精品日日 ,久久国产婷婷国产香蕉http://www.shnenglu.com/killsound/articles/73045.html不懂^_^不懂^_^Thu, 05 Feb 2009 03:21:00 GMThttp://www.shnenglu.com/killsound/articles/73045.htmlhttp://www.shnenglu.com/killsound/comments/73045.htmlhttp://www.shnenglu.com/killsound/articles/73045.html#Feedback0http://www.shnenglu.com/killsound/comments/commentRss/73045.htmlhttp://www.shnenglu.com/killsound/services/trackbacks/73045.html

SNMP的体pȝ构及工作原理

什么是 SNMPQ?/strong>
SNMP是一pd协议l和规范Q其提供了一U从|络中的讑֤中收集网l管理信息的?nbsp;法。SNMP也ؓ讑֤向网l管理工作站报告问题和错误提供了一U方法。其|络理?nbsp;要分为四部分被管理节点(讑֤Q、代理、网l管理工作站、网l管理协议?/p>

SNMP主要部分
 被管理节点(讑֤Q网l管理协?/td>  被监控设?/td>
 代理  用来跟踪被管理设备状态的Ҏ软g或固?/td>
 |络理工作?/td>  与在不同的被理节点中的代理通信Qƈ且显C些代理状态的中心讑֤
 |络理协议  被网l管理工作站和代理用来交换信息的协议

从被理讑֤中收集数据所遵@的原则及采用的方?br>设计和构造网l管理的基础l构Ӟ需要遵守下列两条网l管理的原则Q?/p>

  • ׃理信息而带来的通信量不应明昄增加|络的通信量?
  • 被管理设备上的协议代理不应明昑־增加pȝ处理的额外开销Q以致于该设?nbsp;的主要功能都被削׃?br>因此从被理讑֤中收集数据重要有两种ҎQ一U是只轮询(polling-onlyQ的ҎQ?nbsp;另一U是Z中断Qinterrupt-basedQ的Ҏ?/font>

面向自陷的轮询方法(trap-directed pollingQ是|络理采用较有效的方式。网l管理工作站轮询在被理讑֤中的代理来收集所需的数据,q且在控制^C使用数字或图形的方式来显C所攉的数据,同时被管理设备中的代理可以在M时候向|络理工作站报告错误情况,如预制定阈D界程度等Q即所谓的SNMP自陷QtrapQ?/p>

代理的概念及所提供的服?/strong>
理代理QagentQ是一U特D的软gQ或ZgQ,它包含了关于一个特D设备及该设备所处环境的信息?br>其提供的服务Q?/p>

  • |络理工作站可以从代理中获得相兌备的信息?
  • |络理工作站可以修攏V增加或者删除代理中的相兌V?/font>
  • |络理工作站可以ؓ一个特定的自陷讄阈倹{?
  • 代理可以?font size=1>|络理工作站发送自?/font>?/font>

MIB概念
MIB被称为管理信息库Q一个MIB描述了包含在数据库中的对象或表项?/p>

单网l管理协?/font>

SNMPh/响应报文
单网l管理协议允许网l管理工作站软g与被理讑֤中的代理q行通信。这U通信可以包括来自理工作站的询问消息、来自代理的应答消息或者来自代理给理工作站的自陷消息?br>SNMPv1实现h很简单,其包?个请?响应原语Q?/font>

  • get-request
  • set-request
  • get-next-request
  • get-response
  • trap

报文格式

IP首部 UDP首部 版本 共同?/td>  PDUcdQ?Q?Q?/td> h标识  差错状态(0Q?Q?/td> 差错索引 名称  ?/td> 名称  ?/td>  ...

 PDUcd4  企业  代理地址  TrapcdQ?Q?Q?/td>  特定代码  旉?/td>  名称  ?/td>  ...

 PDUcd  名称
 0  Get-request
 1  Get-next-request
 2  Get-response
 3  Set-request
 4  Trap

SNMP开发工?/font>

开发工L使用
AdventNet所提供的的开发工具包Q支持多U^台?/p>

  • Agent++
  • SNMP++

Microsoft Virtual Studio 6.0QWindows下c++语言的开发包。MS自n提供一l称为WinSNMP的APIQ在MSDN中提供详l文)Q而且MS提供ZAgent Service的SNMP Extension Agent开发?/p>

ucd-snmQnet-snmpQp是Linuxq_下著名的C语言SNMP开发包Q公开源码Q是最常用的开发Agent的Y件包?/p>

辅助工具的?/strong>
AdventNet所提供的对mib开发一pd开发工具包Q包括:

  • Mib Browser
  • Mib Editor
  • Mib Compiler

熟悉SNMP的开发过E?/font>
SNMP开发流E?br>

Mib的创建和源码生成
首先W一步是Mib设计Q开始Mib设计的时候要定被理的对象纳入管理信息库Q最l实现asn.1的文,在此可以使用AdventNet所提供的Mib Editor来实现。通过Mib~译器将asn.1的文编译成c文g和头文gQ可以用Mib Compiler~译?/p>

Agent的开?/strong>
Agent++支持多种q_Q主要有solaris, hp unix, windows{。用方法稍有不同,但原理一_即生成库文gQ进行开发应用时使用头文件及库文件即可?br>?nbsp;unix下直接进行makeQ如果有问题对makefile中的一些宏/变量q行调整。在solaris下基本没有问题?br>?nbsp;windows下vc6~译请参考附?/p>

Snmpapp的开?/strong>
snmp++支持多种q_Q主要有solaris, hp unix, windows{。用方法稍有不同,但原理一_即生成库文gQ进行开发应用时使用头文件及库文件即可?/p>

  • unix下直接进行makeQ如果有问题对makefile中的一些宏/变量q行调整。在solaris下基本没有问题。新版本支持snmpv3Q需要用到libdes或其他加解密库?/font>
  • windows下vc6~译请参考附?/font>

附录Qwindows下vc6~译
创徏目Q加入所有的源文件和头文件后?br>要在PROJECT的SETTING中设|如下项Q?br>1 在CQ+,/I 加入AGENTQ+的INCLUDE和SNMPQ+的INCLUDE 目录
2、设|成MTd 多线EDEBUG模式?br>3?nbsp;~译q行?/p>

以上用来~译AGENTQ+库?br>对于AGENTQ+的例子,要在PROJECT的SETTING中设|如下项Q?br>1、创建WIN32的控制台E序Q?br>2、加入程序代码;
3、加入SNMPQ+.LIB和AGENTQ+.LIB;
4、 在CQ+,/I 加入AGENTQ+的INCLUDE和SNMPQ+的INCLUDE 目录
5、设|成MTd 多线EDEBUG模式?br>6、在LINK,加入Ws2_32.lib
7、加?nodefaultlib:"libcmtd.lib"
8、编译运行?/p>

不懂^_^ 2009-02-05 11:21 发表评论
]]>
Ʒþþþþ| ޾þһ| avɫۺϾþavɫۺ| ԭۺϾþô˵| Ʒþþþ| ˾þ111վ| þù| þþþþAv뾫Ʒר| þ޹ҹƷƬ | Ʒþþþþ| þ91Ʒ91þС| ޵һAVվþþƷ˵AV| þۺһ| 鶹˾þþƷ| 99þþƷѿ| þۺϸϾþúݺݺ97ɫ| þþþ뾫Ʒ| Ʒһþ㽶߿| 69ƷþþþAPP| ˾þƵ| þþþAVۺ| ëƬŷëƬþþ| þþĻ| þԭƷӰԺ| þҹɫƷAV| ˾Ʒþþþ7777| ɫۺϾþ| ŷһþ| Ʒþþþþ֣ݹ˾ | պʮ˽һþ| þþƷ99͵ | ޳˾þ| ˾þ111վ| Ҳȥþۺ| ޷AVþò| AVҰ¾þ| þѿaëƬ| 97þùۺϾƷŮ| ݺɫۺվþþþþþø| þþƷAV| ޹Ʒþþϼ2|