网络流量分类系统_总体设计说明书
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1
网络流量分类系统总体设计报告
第一章 需求分析 1.1 功能要求 设计实现 GUI 界面, 能够在界面上选择训练数据集和测试数据集, 能够在界面上勾选用于训练和分类的特征。 读入 arff 格式的训练和测试数据, 并用程序实现基于朴素贝叶斯 的流分类算法, 能够在界面上点击运行朴素贝叶斯分类算法进行训练。 用测试数据集对算法进行测试,并将分类的结果显示在 GUI 界面 上。
分 类 器 操 作 界
结 果 显 示 界 面
等 待 提 示 界 面
图 2.1 网络流量分类系统框图
2.2 系统总体功能设计 本节主要从系统的包含的各功能模块的角度对系统总体功能进行 设计。系统流程图描述了该系统的主要执行流程,数据流图描述了系 统的数据流大体流向,以及系统的各模块对数据流的处理情况。
3.1.1.2 系统界面操作流程图
-8-
第三章 系统详细设计
3.2 类结构设计 对于系统的类之间的结构,还是主要从 GUI 系统和贝叶斯算法实 现 部 分 去 设 计 。 GUI 部 分 主 要 包 含 的 类 有 : 用 户 操 作 主 界 面 类 ( CMainWindow )、分类器操作类( CClassifyWin )、结果展示类 ( CResultWin ) 、 标 签 页 管 理 类 ( CTabWidget ) 、 等 待 提 示 窗 ( CWaitDialog );贝叶 斯算法实现部分 主要包括:文件 操作类 (CFileOperator)、贝叶斯算法类(基类:CBayesAlgorithm、派生 类:CStatisticBayes、CGaussianBayes)、容器类(CContainer)、 特定的字符串类(CMyString)、单例类模板(CSingleTon)等。 3.2.1 类结构及功能说明 1、CMainWindow 类: 该类是整个系统界面的主界面,该类继承自 QT 的 QMainWindow。
-5-
网络流量分类系统总体设计报告
第三章 系统详细设计 本章主要对前面的系统总体结构进行细化,具体设计系统各功能 模块的流程,各功能模块所用到的数据结构,以及类结构。出于练习 的目的,系统模块设计上尽量包含一些知识,促进学习。 3.1 各功能模块流程图 系统包含的主要功能模块可分为:GUI 模块、贝叶斯算法实现模 块。下面将以流程图的方式对这两个模块的功能进行具体的分析。 3.1.1 GUI 模块 考虑到系统的可扩展性,以及易操作性等。GUI 系统主要设计成了标 签页的形式,其中包括主界面、分类器标签页界面、结果展示标签页 界面以及等待提示窗等。如果在之后需要对系统的功能进行扩展,可 以直接以设计新的界面,然后以标签页的形式嵌入到当前系统中。
-3-
网络流量分类系统总体设计报告
2.2.1 系统流程图
图 2.2 系统总体流程图
2.2.2 数据流图 本小节主要以数据流图的形式展示整个系统数据流的具体流向和 数据处理的大致过程。如图 2.3:
图 2.3 系统数据流图
如图 2.3 所示,用户需要通过客户端,选择好所需要的训练集和
-4-
第二章 总体方案与结构
3.1.1.1 系统界面
下面是整个系统的效果展示图。
图 3.1 分类器标签页
-6-
第三章 系统详细设计
分类器标签页(图 3.1)是整个系统的核心功能页,可以通过点击开始 菜单栏里的“统计法分类”(或 Alt + Shift + C)打开。其中便主 要实现了需求分析章节中所提到的所需功能。 为了减少用户操作的失 误率,这里把部分有逻辑先后关系的按钮设置为了不可触发状态,当
分类集文件,并勾选用于分类的属性,然后系统下一步会进行数据读 取,并在 D1 中存下所勾选的属性,以及其他必要的信息。接下来这 些信息将流向处理训练集模块,对贝叶斯算法进行训练,并将训练结 果保存在 D2 中。训练结束后便可以对之前传入的分类集进行分类处 理了,同样,分类结果将被保存下来(保存在 D4),同时将结果展示 到客户端。
用户做完适当操作后,相应功能按钮会被激活。
图 3.2(a) 结果展示界面 图 3.2(b) 结果展示界面
如图 3.2(a)和 3.2(b),是系统的结果展示界面(可分别通过点 击结果菜单里的“分类结果(概率)”/“分类结果(数值)”或 Ctrl +
-7-
网络流量分类系统总体设计报告
S/Ctrl + Shift + S 打开),根据需求,将整个数据包的分类结果 做成混沌矩阵的形式展示,其中横排表示每组数据的原始类型,纵 排表示该组数据分类出来的类型。其中(a)是按照分类概率展示的, (b)是按数量展示的。其中分类正确部分以红色字体标记出来。最下 面一排为该分类集的总数据数量。
-2-
第二章 总体方案与结构
第二章 总体结构 2.1 体系结构 整个系统的功能概要已在概要部分进行讲解。在本节中将以系统 框图的形式展示整个系统的总体结构。如图 2.1 所示:
网络流量分类系统
GUI 系统
数据包处理系统
用户操作主界面 文 件 处 理 系 统 贝 叶 斯 算 法 系 统
页 标 签 控 制 界
网络流量分类系统总体设计说明书
版本<1.1.160116.beta >
修订历史记录
日期 2016/1/12 版本 1.0.160112.beta 说明 beta 版,完成基本算法、用户交 互,简单容错; 2016/1/16 1.1.160116.beta 1、添加连续型数据离散化功能,当 前版本可使用连续型数据进行分类 2、优化数据统计方法,数据统计结 果更加精确; ChirlChen 作者 ChirlChen
IHale Waihona Puke 概要概 要 网络流量分类器是基于朴素贝叶斯算法实现的一套网络流量分类 系统。 该系统通过获取网络流量包的各特征值在假设某种网络包类型 下的概率以及该网络类型出现的概率的乘积, 依次对每种可能出现的 网络类型进行假设,求得乘积,然后比较出所得到的最大乘积,这个 乘积的假设条件(即前面假设的网络类型)便是该流量包的网络类型。 整个软件系统主要包含两大主要模块。一、GUI 系统;二、贝叶斯 算法实现系统。其中 GUI 系统是基于 QT 框架而实现。贝叶斯算法, 目前主要实现了其中的离散型数据的算法(即统计法), 而对于连续型 数据的处理算法, 有待后续开发。 就目前的离散型数据分类情况来看, 只要建模数据量充足,分类准确率基本可以达到 99.8%。但是如果建 模数据量不够,则算法分类准确率便不那么稳定。
-9-
网络流量分类系统总体设计报告
在该界面下,包含了开始菜单栏、结果展示栏,并包含了一个单例的 CTabWidget 类 , 然 后 以 标 签 页 的 形 式 包 含 了 CClassifyWin 和 CResultWin。 2、CClassifyWin 类: 该类实现的是整个系统的核心功能(继承自 QT 的 QWidget),本 系统基本所有需求都在该类中进行实现。 在该界面中用户可以选择打 开分类集、训练集;选择分类属性;点击开始训练、开始分类等。界 面效果可参照图 3.1。 该类包含了一个 CFileOperator 的成员变量,用于处理用户选择 的数据包。其中的训练和分类功能主要是通过 QT 的信号、槽机制将 相应的功能与 CFileOperator 类中的槽相绑定, 并通过信号发送数据 包 (SDataPack) 到 CFileOperator 的接口中, 进行相应的功能调用。 3、CResultWin 类: 该类主要用于显示分类结果混沌矩阵,继承自 QT 的 QWidget。其 调用主要产生在网络流量包分类结束后, 以标签页形式自动展示分类 的概率结果, 也可通过用户手动点击展示分类的数值结果或概率结果。 其中,该类的结果获取自单例的 CStatisticBayes 类中的分类结 果存储器中。 4、CTabWidget 类: 该类是整个界面系统的一个单例的标签页管理类,继承自 QT 的 QTabWidget。主要用于添加新标签和关闭某标签等,以标签页形式添 加功能窗口有利于程序的进一步扩展。
目录
目录
概 要 ................................................................. - 1 第一章 需求分析.......................................................... - 2 1.1 功能要求......................................................... - 2 第二章 总体结构.......................................................... - 3 2.1 体系结构......................................................... - 3 2.2 系统总体功能设计 ................................................. - 3 2.2.1 系统流程图 ................................................. - 4 2.2.2 数据流图................................................... - 4 第三章 系统详细设计...................................................... - 6 3.1 各功能模块流程图 ................................................. - 6 3.1.1 GUI 模块 ................................................... - 6 3.2 类结构设计....................................................... - 9 3.2.1 类结构及功能说明 ........................................... - 9 3.2.2 UML 类图 .................................................. - 13 3.3 数据结构设计.................................................... - 13 3.3.1 贝叶斯算法存储容器表结构 .................................. - 13 3.3.2 程序数据结构定义 .......................................... - 15 第四章 关键技术......................................................... - 18 4.1 关键技术的应用.................................................. - 18 4.2 关键技术的一般说明 .............................................. - 19 第五章 方案实施的技术路线和实施计划 ..................................... - 22 5.1 实施的技术路线.................................................. - 22 5.2 实施计划........................................................ - 24 缩写词表................................................................ - 25 参考文献................................................................ - 26 -