网络流量分类系统_总体设计说明书

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功