资源描述
案卷号
日期
-07-03
SNMP AGENT设计
软件详细设计阐明书
作 者:
完毕日期: 07月03日
签 收 人:
签收日期:
修改状况记录:
版本号
修改批准人
修改人
安装日期
签收人
目录
1 引言 1
1.1 编写目 1
1.2 背景 1
1.3 定义 1
1.4 参照资料 1
2 程序系统构造 1
3 系统设计阐明 3
3.1 系统描述 3
3.2 功能 3
3.3 性能 3
3.4 输入项 4
3.5 输出项 4
3.6 算法 8
3.7 流程逻辑 9
3.8 接口 11
3.9 存储分派 11
3.10 注释设计 11
3.11 限制条件 11
3.12 测试筹划 12
3.13 尚未解决问题 12
1 引言
1.1 编写目
Agent软件需求阐明书为项目后续系统测试筹划,概要设计提供根据,为设计人员,编码测试人员做有关参照。
该阐明书供下列对象查阅:系统设计人员;软件开发人员;软件测试人员;系统维护人员等。
1.2 背景
软件名称:网络管理平台代理Agent;
本项目任务提出者:冯建教师
开发者:闫阿丹
1.3 定义
缩写
注释
描述
Snmp
Simple Network Management Protocol
简朴网络管理合同
MIB
Manger information Base
管理信息数据库
OID
Object Identifier
对象标记符
OMID
Object Monitor Identifier
监控对象标记符
1.4 参照资料
1)参照原则snmp合同;
2)SNMP,MIB:RFC1155,RFC1157,RFC1213;
2 程序系统构造
软件各模块关系图:
Agent内部构造阐明:
设备侧
Snmp Manager
设备侧
MIB加载和管理
和设备之间通信
合同转换和转发
Agent
Agent内部构造图阐明:
1) Agent和Snmp Manager之间通过UDP连接,执行snmp合同;端口(161,162)
2) Agent和设备侧之间通过TCP\IP连接;
通信消息接口涉及:
(1) 查询祈求消息:Get-Request;
(2) 查询响应消息:Get-Response;
(3) 设立祈求消息:Set-Request;
(4) 设立响应消息:Set-Response;
(5) 集群查询祈求消息:Get-Next-Request;
3系统设计阐明
3.1 系统描述
SNMP是用来规定Manager和Agent之间是如何传递管理信息应用层合同。SNMP Agent接受来自SNMP Manager祈求报文后,进行解码,分析,然后从有关模块中得到管理变量值,生成Response报文,编码返送回SNMP Manager。在有异常告警状况下,Agent向Manager积极发Trap报文,Manager收到后,进行解码,分析,然后作出相应办法。
为了简化Agent开发,SNMP规定只有两种操作Get,Set,前者用于从被管设备获取管理信息。后者通过设立变量值来起到配备被管设备作用。Manager和Agent之间通过发送报文来传递管理信息,系统中规定了五种报文:
Get Request报文:用于获取指定管理变量值。
GetNext Request报文:用于持续获取一组管理变量值。
GetResponse报文:用于响应祈求,返回祈求值或错误类型等。
Set Request报文:用于设立指定管理变量。
Trap报文:用于在紧急状况下由被管设备向NMS积极发信息
3.2 功能
设计网络管理平台代理SNMP AGENT,使程序运营后能与SNMP MANAGER程序对的通信。系统总来说可以分为五大模块,即初始化模块、通信模块、报文解决模块、Trap解决模块和MIB管理模块。重要实现mib加载,实现对snmp消息解析并转换为内部消息,实现对相应底层设备获取和设立,涉及对设备信息读取,设立,及告警消息上送等功能。
3.3 性能
1.静态数值需求也许涉及:
1) 由于网络管理平台所管理设备属性详细相似属性,因此不会为Agent下面每个设备分派一种唯一OID,采用公共OID和IP来拟定网络管理系统内设备属性唯一性;
2) 当前设计需求Agent支持连接最大10个monitor终端,如果超过一种地区monitor超过10个则此外安装一种Agent支持,并为Agent分派新AgentID;
3) 支持并行操作顾客数;
4) 解决文卷和记录数;
5) 表和文卷大小。
2.动态数值需求也许涉及:
欲解决事务和任务数量,以及在正常状况下和峰值工作条件下一定期间周期中解决数据总量。
3.4 输入输出项
1. SNMP连接功能
1)阐明:系统启动时一方面要建立SNMP通信;
2)输入:读取配备文献:port1:161;port2:162;
3)解决:调用snmp提供开发包建立连接;
4)输出:无;
2.加载MIB功能
1)描述:Agent对MIB进行加载:Agent模块初始化时候要对管理MIB库进行加载到系统中以便实现对设备管理;
2)输入:无;
3)解决:加载MIB;
4)输出:
a)加载成功,写加载成功日记;
b)加载失败,系统退出,写加载mib失败日记;
3.GetRequest查询节点信息祈求
1)描述:Snmp Manager通过Agent获取节点信息GetRequest消息;
2)输入:
a)Agent从161端口读取Snmp Manager发送snmpGetRequest消息;
b)Monitor输入到Agent响应消息;
3)解决:
Agent
Monitor
Manager
1)GetRequest消息
2) 查询祈求消息
3) 查询祈求响应消息
4)Get Response消息
Getrequest查询信息祈求消息图
阐明:
1) Agent收到ManagerGetRequest消息;
2) Agent对收到GetRequest消息进行解析,依照OID查找相应OMID;依照OMID查找到相应设备,并构成查询祈求消息发送相应设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息)
3) Monitor返回查询祈求响应消息给Agent;
4) Agent依照Monitor响应消息返回给Manager响应消息;
4)输出
a)输出到Monitor查询祈求消息;
b)输出到ManagerGetResponse响应消息;
4. SetRequest设立节点信息祈求
1)描述: Snmp Manager通过Agent设立节点信息SetRequest消息;
2)输入:
a)Agent从161端口读取Snmp Manager发送snmpSetRequest消息;
b)Monitor输入到Agent响应消息;
3)解决:
Agent
Monitor
Manager
1)SetRequest消息
2) 设立祈求消息
3) 设立祈求响应消息
4)Set Response消息
Setrequest查询信息祈求消息图:
阐明:
1)Agent收到ManagerSetRequest消息;
2)Agent对收到SetRequest消息进行解析,依照OID查找相应OMID;依照OMID查找到相应设备,并构成设立祈求消息发送相应设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息)
3)Monitor返回查询祈求响应消息给Agent;
4)Agent依照Monitor响应消息返回给Manager响应消息;
4)输出:
a)输出到Monitor设立祈求消息;
b)输出到Manager GetResponse响应消息;
5. GetNextRequest集群查询节点信息祈求
1)描述: Snmp Manager通过Agent获取节点信息GetNextRequest消息;
2)输入:
a)Agent从161端口读取Snmp Manager发送snmpGetNextRequest消息;
b)Monitor输入到Agent集群信息信息祈求响应消息;
3) 解决:
Agent
Monitor
Manager
1)GetNextRequest消息
2) 查询集群信息祈求消息
3) 查询集群信息祈求响应消息
4)Get Response消息
GetNextRequest查询信息祈求消息图:
阐明:
1) Agent收到ManagerGetNextRequest消息;
2)Agent对收到GetNextRequest消息进行解析,依照OID查找相应OMID;依照OMID查找到相应设备,并构成查询祈求消息发送相应设备侧,等待设备侧返回响应消息;(Agent同步返回GetResponse消息)
3)Monitor返回查询祈求响应消息给Agent;
4)Agent依照Monitor响应消息返回给Manager GetRequest响应消息;
4)输出
a) 输出到Monitor查询祈求消息;
b) 输出到ManagerGetResponse响应消息;
6. Trap告警上送消息
1)描述:设备侧产生告警后,当告警级别高于当前系统设立告警级别后要上报到Agent, Agent收到设备侧告警后要写本地告警日记,并上报Trap消息到Manager;
2) 输入:设备侧发送告警消息到Agent;
3) 解决:
Getrequest查询信息祈求消息图:
阐明:
1)monitor发送告警消息上送到Agent;
2)Agent收到Monitor告警消息后依照本地消息中告警级别分析与否上报,告警级别不不大于本地告警级别时,先写本地告警日记,然后编码Trap消息,否则只写本地告警日记;
3)Agent发送Trap消息到Manager;
4) 输出
a)发送Trap消息到Manager;
b)输出到ManagerGetResponse响应消息;
3.6 算法
在设计软件过程中用到DES加密算法和MD5哈希函数算法。
DES算法实现加密需要三个环节:
第一步:变换明文。对给定64位比特明文x,一方面通过一种置换IP表来重新排列x,从而构造出64位比特x0,x0=IP(x)=L0R0,其中L0表达x0前32比特,R0表达x0后32位。
第二步:按照规则迭代。规则为:Li = Ri-1;Ri = Li⊕f(Ri-1,Ki) (i=1,2,3…16)其中符号⊕表达数学运算是异或,f表达一种置换,由S盒置换构成,Ki是某些由密钥编排函数产生比特块。
第三步:对L16R16运用IP-1作逆置换,就得到了密文y。
MD5哈希函数算法对于每个明文分组摘要生成过程如下:
(1)将512位明文分组划分为16个子明文分组,每个子明文分组为32位。
(2)申请4个32位链接变量,记为A、B、C、D
(3)子明文分组与链接变量进行第1轮运算。
(4)子明文分组与链接变量进行第2轮运算。
(5)子明文分组与链接变量进行第3轮运算。
(6)子明文分组与链接变量进行第4轮运算。
(7)链接变量与初始链接变量进行求和运算。
(8)链接变量作为下一种明文分组输入重复进行以上操作。
(9)最后,4个链接变量里面数据就是MD5摘要。
3.7 流程逻辑
3.8 接口
1.顾客接口
提供顾客使用软件产品时接口需求。例如,如果系统顾客通过显示终端进行操作,就必要指定如下规定:
a.对屏幕格式规定;
b.报表或菜单页面打印格式和内容;
c.输入输出相对时间;
d.程序功能键可用性。
2. 软件接口
需要与SNMP Manager同步使用,因而需要有与其连接接口。SNMP Agent接受来自SNMP Manager祈求报文后,进行解码,分析,然后从有关模块中得到管理变量值,生成Response报文,编码返送回SNMP Manager。在有异常告警状况下,Agent向Manager积极发Trap报文,Manager收到后,进行解码,分析,然后作出相应办法。
3.9 存储分派
在other init 对其她接口模块(tcp_mib,ip_mib,ipx_mibetc.)进行初始化,是为存储相相应表索引分派内存。
3.10 注释设计
a.在模块首部加必要注释;
b.在各分枝点处加注释;
c.对各变量功能、范畴、缺省条件等所加注释;
d.对使用逻辑加注释等。
3.11 限制条件
a. 硬件配备特点(接口数,指令系统等);
b. 内存储器和辅助存储器容量。
3.12 测试筹划
一方面对初始化监听进行测试,测试成果应当是成功;
再进行Get-Request、Get-Next-Request 、Set-Request消息测试,预期成果应当是可以收到消息并能作出Get-Response应答;
最后测试Trap消息能否发送成功。
3.13 尚未解决问题
软件设计是没有实现GetBulk和Inform这两个PDU,也就是说是SNMPv1,不是SNMPv2,功能上不是特别强大,性能不是很完善等。
展开阅读全文