病毒库自动升级模设计文档.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
病毒库自动升级模设计文档

病毒库自动升级模拟实验报告 一、课程设计要求 A采用推送方式将最新病毒库数据发送到从服务器 Si采用推送方式将最新病毒库数据发送到客户机Cij 客户机Cij可以从Si接收数据,也可以从其他客户机接收数据 A,Si,Cij通信采用socket进行通信 系统使用UNIX/Linux + C 实现 二、系统概要设计 1.主服务器概要设计 功能: 响应从服务器的请求 推送新病毒库至从服务器 日志记录 节点失效检测(针对从服务器) 人机交互 工作流程: 启动后在端口1上进行监听,响应从服务器的请求 利用端口2推送最新病毒库数据至与之连接的从服务器 节点失效检测采用心跳机制来检测从服务器的连接状况 人机交互模块等待系统管理员输入命令 各个模块每处理一次事务都会调用日志操作模块,将操作写入日志 从服务器列表内容 与从服务器进行命令通信的socket:sockfd1 与从服务器传输文件使用的socket:sockfd2 从服务器ID、IP地址、当前病毒库版本号 从服务器在线状态、监听的端口号1、端口号2 日志内容: 何时在端口1/2上进行监听 人机交互内容和结果 从服务器连接/断开的相关信息 主服务器推送病毒库的相关信息 人机交互内容: 更新病毒库 添加合法从服务器 添加合法客户机 查看从服务器/客户机的信息 删除从服务器/客户机 重新启动服务 退出程序 2.从服务器概要设计 功能: 在端口1上监听,响应客户机的请求 与主服务器进行通信 接收主服务器推送的最新病毒库数据 推送最新病毒库至在线的客户机 日志操作 节点失效检测(针对客户机) 人机交互 工作流程: 启动后连接主服务器 加载病毒库版本信息,向主服务器发送自身病毒库信息(进一步与主服务器通信) 在端口1上监听,等待客户机的连接请求,根据通信信息进一步行动 在端口2上监听,用于传输病毒库文件 节点失效检测采用心跳机制动态维护客户机列表 人机交互模块始终等待用户输入命令,执行命令 各模块处理一次事务后调用日志操作模块,将操作保存在日志中 客户机列表内容: 客户机的ID、IP地址、端口号1、端口号2 客户机上最新病毒库版本信息 客户机在线状况 人机交互内容 升级病毒库 显示本机病毒库版本信息 显示客户机信息 重启服务 退出程序 日志内容类似于主服务器的日志内容; 3.客户机设计 功能: 与主服务器通信,接收病毒库文件 为其他客户机提供病毒库文件 人机交互 日志操作 工作流程: 启动后连接从服务器(Si:port1) 加载病毒库版本信息和ID,向从服务器发送信息(进一步工作由从服务器决定) 根据从服务器的命令,进行相关处理(包括接收病毒库文件、为其他客户机提供最新病毒库文件) 启动人机交互,始终等待用户输入命令,执行命令 处理事务后将操作保存在日志中 人机交互内容: 升级病毒库 显示本机病毒库版本 退出程序 三、系统详细设计 病毒库的版本号由主版本号和此版本号组成,类型是32位整型。 病毒库文件使用三个有关联的文件表示:病毒库版本文件(versionfile)、病毒索引文件(indexfile)和病毒特征值文件(datafile)。 病毒版本文件:包含了各个版本的主版本号(majorv)、次版本号(minorv)、新添病毒位于索引文件中的开始位置(begin)、相对前一版本新添病毒的总数量(size)、已写入病毒库中的病毒的总数量(wsize)、该版本包含病毒的总数(total)等信息。按块的形式读写。 病毒索引文件:包含了某一病毒的ID、病毒特征值在病毒特征文件的开始位置、病毒特征值的大小的等信息。按块的形式读写。 病毒库特征值文件:由所有病毒特征值组成的文件。按字节的形式读写。 三个文件的内容和关联如下图: 将上面三个文件中的内容读入内存时,采用链表存储,链表的结构如下图: 保存病毒信息的数据结构,通过读取indexfile和datafile文件创建该链表 typedef struct virus{ u32 ID; //病毒编号 u32 begin; //病毒特征值在文件中的开始位置 u32 size; //病毒特征值的大小 char *data; //病毒特征值的内容 struct virus *next; }*VirusList; 保存病毒库信息的数据结构,读取versionfile和VirusList链表创建该链表 typedef struct version{ //保存病毒库信息 u32 majorv; //主版本号 u32 minorv; //次版本号 u32 begin; //该版本的病毒库新添的病毒的索引起始位置 u32 size; //该版本的病毒库新添的病毒总数目 u32 wsize; //该版本的病毒库已更新的病毒数目(对于主服务器无意义) u32 tot

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档