摘抄来的SNMP的建议

【SNMP】snmp trap 介绍、安装、命令|Trap的发送与接收代码实现 目录 零、简略 一、SNMP简单概述 1.1、什么是Snmp 1.2、为什么需要SNMP? 1.3、SNMP的基本组件 1.4、SNMP 和 UDP 1.5、Snmp版本 二、Snmp有关的基本概念 2.1、代理和管理站的模型 2.2、SNMP的操作命令 2.3、SNMP 报文 三、SNMP的运行过程 1.7 SNMP trap... 阅读详情
 

从我接触SNMP的过程中,我发现在我们这块领域内存在两个很大的缺陷,就是真正有用的文档太少了更别说中文的了,从最开始写Snmp管理端的时候,对动态加载MIB那一块就感觉资料非常少,不得以自己一行一行分析Mib文件,研究ASN.1,自己写了个Delphi版的mib Parser。到我们想去动手自己写snmp协议库的时候,资料更是少!这是其一!其二:目前大部分做这方面开发的朋友,都是在用SNMP++,NET-SNMP,它们的代码其实都让人感觉有点发怵,更有胜者,看看adventnet它的Agent Toolkit C Edition,它写的封装snmp协议库(C版本)的源代码,那更让人却步!


其实说到底SNMP Agent的实现机理和内部框架是比较清晰和容易掌握的。现把我在开发CSnmp的过程中的系统架构和实现难点总结出来于大家分享,希望能对那些不仅仅是用


已有的SNMP库开发网络应用管理程序的朋友有一点帮助。


   首先用非常一句话概括CSnmp的功能,它是一个实现了snmpV2c、snmpV3标准,并打开705端口实现AgentX(RFC 2741)大部分重要PDU的AGENT,并提供开发支持AgentX


协议的SubAgent的开发API(目前只提供JAVA版本的,紧接着下一步立刻提供C版本的API)。


CSnmp的架构如下:管理端<-――>MasterAgent<―――>SubAgent


1.       MasterAgent打开两个端口161, 705。161负责接受从管理端来的请求(GetPDU, GetNextPDU, GetBulkPDU等),705负责向每个subAgent发送AgentXGetPDU, AgentXGetNext, AgnetXGetBulk请求,当然这些请求是按照AgentX协议的标准来封装的(AgentX协议相对标准的SNMP来说较为简单),同时705端口还负责接受从SubAgent处来的请求,比如说agentx-Open-PDU、agentx-Register-PDU、agentx-Notify-PDU等。


2.       正因为打开了两个端口,那么就应该在软件实现中至少有一个HashMap(暂取名为Map1)负责存储从管理端来的request。这个HashMap的Index是向subAgent发送的请求包中的transactionID。


    3.当subAgent接受到从MasterAgent来的请求后,解AgentXPDU包,看到底是做什么的,并进行与之相应的处理,把产生的结果按The agentx-Response-PDU的要求打包,发送给MasterAgent。


    4.MasterAgent从705端口接受到,开始发出请求的相应,解开这个AgentX Response PDU包,从解包结果中把transactionID取出来,到刚才的Map1中根据transactionID去找到开始从Manager(管理端)进来的请求,并根据该请求把subAgent返回的值按SNMP协议打包,发还给Manager,从而完成了一次完整的交互过程。


 

下面,就大家非常关心的Mib问题,从实现层面上来做一分析。Mib信息分别在SubAgent和MasterAgent中都要存储。Mib的存储由两种数据结构共同合作来实现,一个是HashMap(暂取名为mibMap),一个是Vector(暂取名为mibVector)。mibMap是为了快速搜索由subAgent注册的mib Subtree(“注册”:就是subAgent告诉MasterAgent说该mib 节点下的所有子节点你都可以到我这个subAgent去找)。而mibVector则是为了方便的实现getNext这一操作。有了这个mibVector,所有在MasterAgent中被subAgents注册的mib节点都是按照“字典“顺序排序的。其实,每个从Manager发给MasterAgent的请求,在解包后的第一步就是看该请求中的mib OID是不是在mibMap中,有的话接着进行下面的操作,没有的话直接返回管理端,并报以相应的错误。

delphi snmp 读取系统参数、SQLSERVER参数 A要开发SNMP读取参数的模块     a. 首先安装SNMP 协议。         在xp系统里, 开始-->设置-->控制面板-->添加/删除WINDOWS组件-->管理监视工具 ,把里面的         两个协议全部安装      b.  安装Sqlserver(以下内容是摘抄其他网友的帖子,实在懒得写,不好意思)       b1.安装SNMP FOR SQL 阅读详情

相关推荐

实现snmp协议的Delphi组件

一个实现SNMP协议的Delphi函数库,里面包含DEMO;可以很方便地实现MIB库的读取,SNMP协议的通讯。

delphi代码 snmp_zt 简单SNMP管理程序的VC++代码实例实现

SNMP(Simple Network Management Protocol)是基于TCP/IP的网络管理协议,关于其工作原理网上很多,百度一下或者看看MSDN,今天在这里记一下实现的步骤,本人工作环境是Windows XP professional SP2 + Microsoft Visual Studio .net 2003,不保证其他平台与本人的步骤一致。一、安装SNMP服务先查看系统中是...

weixin_39732716的博客 433

基于SNMP查询交换机管理信息的delphi程序

基于SNMP查询交换机管理信息的delphi程序.delphi2007

snmp4j摘抄笔记

snmp4j摘抄笔记2007年08月23日 星期四 17:03Snmp4j的几个主要类:TransportMapping.java //传输层的封装,对UDP封装为DefaultUdpTransportMapping,TCP封装为DefaultTcpTransportMapping. SNMP4J的最底层劳动人民。   .sendMessage(Address addr

964

监控打印机状态 delphi

获取正在打印的列表信息,以及打印的状态,对卡纸等问题做出响应

交换机的初始化及其端口流量的SNMP监控

交换机初始化以及端口流量监控,zabbix 配置snmp 监控流量,端口状态。

利用snmp实现remote ping

利用snmp实现remote ping 作者:Yiming Gong 出处:http://www.nsfocus.com 主页:http://security.zz.ha.cn 日期:2005-02-04 声明:摘抄请保留上述作者和http地址 CNNOG1上我的ppt稿子中第18页的snmp部分引来了几封邮件,...

hongliangpan 1916

修改后的SNMP++开发包

做项目时用到HP公司的SNMP++开发包,此开发包经过部分修改,完全能编译通过,并成功应用到开发包,愿拿出来与大家共享。

linux系统snmpd服务内存偏高,Red Hat Enterprise Linux 5.4 64位系统SNMP内存泄漏(上)

1、SNMP的内存泄漏问题SNMP的内存泄漏问题,我最早是在CDN的一台负载均衡调度机上看到的。一个snmpd进程,占用的VIRT将近4G。重启snmpd后VIRT降到150M左右,机器为Red Hat Enterprise Linux Server release 5.4 (Tikanga),64位机。当时纯粹地以为它只是占用内存大,没有想到内存泄漏这块。后来我跟连铭提起这事,他一针见血地说到了...

weixin_33259400的博客 690

delphi_snmp.rar_Delphree - Synapse_delphi synsock_delphi 监_netwo

基于snmp的简单网络监视程序 基于snmp的简单网络监视程序

Delphi 12.3控件之net-snmp-5.9.4.tar.gz

net-snmp-5.9.4.tar.gz

SNMP TRAP发包工具

SNMP TRAP发包工具原理

qq_36616956的博客 1559

使用Dify打造视频生成工作流:从提示词到视频的完整指南

Dify作为开源LLM应用开发平台,通过可视化工作流编排实现从文本到视频的端到端生成,将创意周期从天级缩短至分钟级。核心流程包括提示词工程、视频API调用、存储分发和结果反馈。

牛奶夹心巧克力 3434

关于OSI模型的摘抄笔记

应用层:产生网络流量的程序表示层:传输之前是否进行加密或者压缩处理会话层:查看会话,查木马 netstat-n传输层:可靠传输、流量控制、不可靠传输网络层:负责选择最佳路径、规划ip地址数据链路层:帧的开始和结束、透明传输、差错校验物理层:接口标准、电器标准、如何更快传输数据原文链接:https://blog.youkuaiyun.com/qq_36756682/article/details/104112765。

m0_63296521的博客 2058

Axure RP9汉化+授权全攻略:从下载到激活一步到位(附最新授权码)

本文提供Axure RP9从下载安装到界面汉化的完整指南,帮助设计师和产品经理快速上手这款原型设计工具。详细讲解了如何安全获取软件、执行汉化操作、理解核心界面布局,并介绍了创建交互原型和生成HTML文件的基础步骤,助力用户高效开展设计工作。

cuda7parallel的博客 1141

别再到处找包了!Keil5芯片支持包(Pack)最全管理指南:安装、更新、迁移与离线备份

本文详细解析了Keil5芯片支持包(Pack)的全生命周期管理,包括安装、更新、迁移与离线备份的工程化解决方案。针对STM32F10x等常见芯片,提供了高效获取Pack的策略、版本管理技巧及团队协作方案,帮助开发者解决常见的'Device Family Pack missing'等问题,提升嵌入式开发效率。

weixin_28729205的博客 540
上一篇: 基于SNMP的SNMP仿真系统的设计及实现
下一篇: Snmp4j编程简介之一:Target
ocelight
博客等级 码龄19年 56粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值