收藏 分销(赏)

Agent技术goeliatmall.diandian.com文档.doc

上传人:xrp****65 文档编号:7706337 上传时间:2025-01-13 格式:DOC 页数:5 大小:210KB 下载积分:10 金币
下载 相关 举报
Agent技术goeliatmall.diandian.com文档.doc_第1页
第1页 / 共5页
Agent技术goeliatmall.diandian.com文档.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
Agent技术文档 (一) 背景知识 在开发Agent软件之前,需熟悉以下内容: (1) SNMP协议,MIB,ASN.1 SNMP子集,BER编码规则; (2) UDP协议,无连接Socket编程; (3) ATM UNI,AAL5; (4) VxWorks的多任务机制和消息队列机制,及两者的编程; (5) WRS WindNet软件包的使用和扩展; (6) Tornado系列开发和调试工具。 以上内容可参阅下述资料: (1) SNMP,MIB:RFC1155,RFC1157,RFC1122,RFC1213; (2) ASN.1,BER:X.680,X.690; (3) 有关ATM的书籍,ATM Forum ILMI 4.0; (4) VxWorks Programmer’s Guide: Chapter 2:Basic OS Chapter 5:Network (5) WindNet SNMPv1/v2c全本 (6) Tornado User’s Guide全本 (7) GNU ToolKit: The GNU Binary Utilities:ar,ld,nm GNU Make (8) 编程中若遇到函数调用之类的问题,可参阅 VxWorks 5.3.1 Reference Manual (9) 有关消息队列的介绍另可参考崔健同学的技术文挡。 (二) Agent简述 根据该接入设备的总体设计,网络管理分为用户侧和网络侧两级来进行。Page: 1 每一级的网络管理模块都基于 Client/Server 结构,Manager作为 Client ,以请求的形式向被管对象的Agent(以下简称Agent)发送命令; Agent作为 Server,根据接收到的请求完成相应的操作,并将结果以响应的形式发回给Manager。这两者之间的通信遵循简单网络管理协议(SNMP)。 另外,根据 ATM Forum 制订的规范,用户侧和网络侧的Agent作为 ATM 接口管理实体(IME),两者之间也必须建立起实时对等的通信,每一方都必须实现Manager和Agent的双重功能,既可以以Manager的身份向对方发送请求,也可以以Agent的身份接收和处理对方的请求。两个对等IME之间的通信遵循 ATM Forum 的ILMI 规范(Integrated Local Management Interface Specification)。而 ILMI 也是基于 SNMP 协议之上的。 综上所述,网络管理信息系统 SNMP Agent主要将实现以下功能: (1) 接收和处理来自对应Manager的请求(通过UDP端口); (2) 两级Agent之间的ILMI 消息传递(通过一个特定的VPI/VCI和AAL5层); (3) 为实现上述功能而必需的与交换、信令和业务模块之间的消息传递。 图一、二显示了响应实体之间的关系及其协议栈。 图一 上述(3)的功能通过操作系统(采用了实时操作系统 VxWorks)提供的内部通信机制(如消息队列)来实现。而 SNMP Agent的实现则采用了 Wind River System 公司所提供的 WindNet 软件包。 由于 WindNet 只实现了Agent的功能,为了建立起 ILMI 通信,还必须自己实现Manager的功能。 Network-side User-side NMS NMS Agent Agent VPI=0 VCI=16 图二 (三)程序及其编译过程的描述 本人编写的程序分成两部分,分放在两个目录下(之所以这样做只是为了尽可能保留WindNet的目录结构): $(ATMNET_BASE)/ $(WIND_BASE)/target/src/snmpv1/ (1) 程序结构 下图列出了各主要程序之间的依赖关系。上层依赖下层,或者说,位于下层的程序被上层的程序所调用。 图三 下图是Agent各任务间的数据流图: 图四 (2)$(ATMNET_BASE)/下的程序描述 除了MIB Method Routines(见“$(WIND_BASE)/target/src/snmpv1/下的程序描述”)以外,所有自己编写的C源程序均存放在本目录下,而头文件则放在一级子目录h/下。另外在一级子目录apps/下则存放了在SUN主机上可执行的Manager程序。下面逐一介绍。 Makefile 用来编译和更新网管Agent的程序。 anmadLib.c Agent的ILMI数据包处理程序,它可能调用snmpMgrLib.c中的SNMP解码程序。 anmaGlobals.c Agent范围内的全局变量的定义。 anmaIoLib.c Agent与其他软件模块的消息接口处理程序。 anmaMain.c 在嵌入VxWorks时,Agent软件的唯一入口函数在本文件中定义。 anmInfoLib.c 作为ATM Private MIB的信息源,为后者的Method Routines所调用。 ilmiFsm.c ILMI 有限状态机的实现。 ilmiInfoLib.c 作为ILMI MIBs的信息源,为后者的Method Routines所调用。 snmpMgrLib.c 为实现Manager功能所编写的例程,主要提供SNMP BER编码和解码函数。其中在解码过程中,如果识别出是Get,Get-next或Set的PDU,说明是对端Manager发过来的数据包,则递交给WindNet的snmpdPktProcess()处理;对于Get-response和Trap的PDU,说明是本地Manager发出请求后得到的响应,则继续全权处理。请同时参阅anmadLib.c。 一级子目录h/: anmaAll.h Agent范围内类型和常量的定义,如与其他软件模块通信时所用消息队列的属性和消息的结构,等。 anmaConfig.h 设备配置文件,如设备是node还是user等等。 anmadLib.h 对anmadLib.c中定义的非局部函数的声明。 anmaIoLib.h 对anmaIoLib.c中定义的非局部函数的声明。 anmInfoLib.h 对anmInfoLib.c中定义的非局部函数的声明。 anmPrivMib.h ATM Private MIB结构类型的定义,类似于$(WIND_BASE)/target/h/snmp/m2Lib.h。 atms_api.h 由交换模块实现的API的声明。这些API主要由网管Agent调用,以完成Manager请求的涉及到交换的操作。 ilmiFsm.h 有关ILMI FSM的类型和常量定义。 ilmiInfoLib.h 对ilmiInfoLib.c中定义的非局部函数的声明。 ilmiMib.h ILMI MIBs的结构类型的定义,类似于$(WIND_BASE)/target/h/snmp/m2Lib.h。 snmpMgr.h 实现SNMP Manager功能所需要的一些定义,以及snmpMgrLib.c中实现的函数的声明。 一级子目录apps/: snmpGet.c和可执行的snmpGet snmpNext.c和可执行的snmpNext snmpSet.c和可执行的snmpSet 供测试用的能独立运行于UNIX主机上的SNMP Manager程序及其源代码。注意,由于px主机上没有CC和Socket库,编译上述三个程序需在tmn2主机上进行: tmn2% cc –l socket –I ../h –DUNIX –o snmpGet snmpMgrLib.c snmpGet.c 命令行中,snmpMgrLib.c可根据不同操作系统进行条件编译,所以务请选择-DUNIX或-DVXWORKS。 5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服