SNMP协议及编程实现.ppt
《SNMP协议及编程实现.ppt》由会员分享,可在线阅读,更多相关《SNMP协议及编程实现.ppt(10页珍藏版)》请在装配图网上搜索。
1、 SNMP: Simple Network Management Protocol简单网络管理协议,1990年V1,1993年的V2是目前TCP/IP网络中应用最为广泛的网络管理协议。特点: SNMP易于实现 开放的免费产品 严格标准化,详细的文档资料 SNMP协议可用于控制各种设备,可接入网络且需 要控制的设备 基于TCP/IP的网络管理的四个组成部分(1) 管理信息库(MIB),包含代理进程可能被查询或修改的所有参数,即被管理对象的参数。(2) 管理信息结构(SMI),管理信息是一个被管理对象的集合,SMI定义了一个设备维护的规则集,用于对被管理对象进行命名和编码。(3) SNMP协议,管
2、理进程和代理进程之间的通信协议。SNMP是应用层协议,其下层协议一般为UDP,管理进程端口号为162,代理进程端口号为161。(4) 安全机制,在SNMPv1中安全机制很简单,v2和v3在安全机制上作了一些改善。 管理代理(agent)是一种特殊的软件(或固件),它包含了关于一个特殊设备和/或该设备所处环境的信息。当一个代理被安装到一个设备上时,上述的设备就被列为“被管理的”。换句话说,代理就是一个数据库。代理被管理设备 网络管理工作站可以从代理中获得关于设备的信息。 网络管理工作站可以修改、增加或者删除代理中的表项,例如在由代理所维护的数据库中的路由选择表表项。 网络管理工作站可以为一个特定
3、的自陷设置阈值。 代理可以向网络管理工作站发送自陷。 MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的树型数据结构。MIB节点定义形式:1.3.6.1.4.1.19554.x1.x2其中19554是JiaSin的企业标记,x1.x2.是设备的某状态或属性。PDU类型:get-request, get-next-request, get-response,set-request, trap。其中get-response与trap的方向是代理向网管主机发送。SNMP管理信息库MIB Snmp在Windows下的实现WinSNM
4、P在Windows中采用Winsock接口,在161,162端口通过UDP传送信息。Windows2000及以上版本支持WinSNMP API,提供在Windows下开发基于SNMP的网络管程序提供解决方案。网络管理站(NMS)和网络管理代理(Agent)之间端到端的SNMP连接。WinSNMP以函数的形式封装了SNMP协议的各部分,且针对SNMP是使用UDP的特点而设置了消息重传、超时机制等。 WinSNMP实现步骤(一):.启动WinSNMP,调用SnmpStartup()函数;.创建会话,调用SnmpOpen()函数;.设置重传模式,调用SnmpSetRetransmitMode() 函
5、数;.创建共同体名,调用SnmpStrToContext()函数;.分别创建管理者实体和代理实体,调用SnmpStrToEntity() 函数;.分别设置管理者实体和代理实体的重传次数,调用SnmpSetRetry() 函数;.分别设置管理者实体和代理实体的超时时间,调用SnmpSetTimeout()函数;.创建读取对象的OID,调用SnmpStrToOid()函数;.创建变量绑定表,调用SnmpCreateVbl()函数;.指定协议数据单元的内容,并生成协议数据单元,调用SnmpCreatePdu()函数;.发送请求报文,调用SnmpSendMsg()函数;.释放暂时不用资源,调用Snmp
6、Free()函数。 WinSNMP实现步骤(二):.接收数据报文,调用SnmpRecvMsg() 函数; .提取协议数据单元内的数据,调用SnmpGetPduData() 函数;.取得变量绑定表中变量绑定的数量,调用SnmpCountVbl()函数;.记录变量绑定表中每个变量绑定的标识OID及其值Value,调用 SnmpGetVbl() 函数; .对各绑定表中的值Value,按Value值的语法类型,用Case语句转换成字符 串形式的Value值; .将各变量绑定中的标识OID转换成字符串,调用SnmpOidToStr()函数; .存储字符串形式的OID标识及Value值到相应的数据表格中。
7、 重点1.动态链接库winsnmp32.dll2.库文件wsnmp32.lib3.头文件winsnmp.h4.自定义消息WM_SNMPMESSAGE_GET5.接收代理回送数据的消息处理函数OnSnmpReceive()以上所有功能已经集成在JSSnmp.h和JSSnmp.cpp中,1. bool Start(HWND hWnd, UINT wMsg);启动Snmp,指定消息回送的目标窗口句柄2. bool Send(LPCSTR strDstIP, smiINT nActionType, const char* pCommunity, _ CStringArray* pOidArray, smiLPVALUE pValueArray);发送SNMP命令,读取指 定的OID变量值3. bool Receive(CStringArray* pOidArray, CStringArray* pValueArray);接收代理回送 的变量值4. bool Register(HWND hWnd);注册SNMPTrap服务,指定SNMP控制台的窗口句柄
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。