APP下载

基于机器学习的VoIP流量在线识别系统设计与实现研究

2018-08-25安强强张峰李赵兴张雅琼

电子设计工程 2018年16期
关键词:数据流分流数据包

安强强,张峰,李赵兴,张雅琼

(榆林学院陕西榆林719000)

VoIP的全称为Voice Over Internet Protocol[1]。该系统具备比较显著的优点,比如成本比较低,部署起来难度小,当今其在语音通信业务当中得到了十分广泛的应用,虽然其带来了较好的发展机遇,但是同时也为网络的安全运行带来了很大的挑战[2-5]。所以需要合理管控VoIP业务,怎样提高在线流量识别的精度也成为了不少学者所研究的重难点。

当前,VoIP系统比较常见的识别方法主要有两类:第一是以流特征为基础进行识别,第二是以机器学习为基础进行识别[6]。已有的研究当中,关于以机器学习为基础的识别方法主要是集中在线下领域,关于在线识别的研究并不多。有学者设计了以WEKA库文件为基础的Skype流量在线检测工具,但是存在算法单一、无可视化界面等相应的缺陷[7-9]。

1 系统设计

本次研究将以当前关于机器学习为基础流量在线识别系统中普遍存在的问题进行设计并且采用具体的试验论证,以希望达到在线识别的目的,同时提高识别的精度。

1.1 原理分析

在本次所开展的具体设计过程中,将数据流进行专门的界定,主要是将其定位成将两个主机进行交换的连续数据包。在同一条数据流当中包含的数据包的源地址、传输协议、目的地址以及源、目的端口等都是相同的。训练集的构建过程就是对数据包分流的过程[10]。结合思科分流的相关定义来看,单条的TCP流必须要包含开始与结束时刻,同时还应当包含完整的语义[11]。

在线识别系统不仅包含在线识别,同时也包含了离线分类器[12]。其中图1为离线分类器的主要工作原理。

图1 离线分类器工作流程图

本次所设计的在线识别系统主要以离线分类器为基础,构建抓包与检测同时进行的机制,借助于JPcap库来编写探嗅器,抓取相应的数据包,同时分流模块会对流特征进行统计以及数据包的分流,设计相应的累积时间。每次阈值时间达到30 s时,就会将已经统计好的数据直接送入到分类器当中进行相应的识别,此处的分类器是处于离线状态的。同时会以IP地址的形式将识别出的流量传输到界面当中,同时也会对VoIP的电话状态进行动态显示。图2为本次设计的VoIP系统的主要流程图。

图2 VoIP系统流程图

1.2 预处理模块设计

预处理模块的相关设计与工作需要在离线状态下开展。此模块的主要功能就是搭建更为完整的训练集。预处理模块分别包含文件格式、数据集的获取以及分流统计[13]。

1.2.1 数据集获取

数据集的获取则需要借助于Wireshark软件,该软件会从PC当中抓取一些特定类型的软件,借助于配置交换机镜像端口来抓取不同的PC所产生的流量,进而将其扩展到整个局域网领域当中。另外,本次研究过程中所采用的数据集也包含Moore数据集以及Skype数据集。为了使VoIP系统同时具备识别PC-PHONE与PC-PC端的能力,也增加了PCPHONE类型流量。

1.2.2 转换文件格式

设计过程中所采用的软件其存储文件的格式主要为PCAP形式,其文件头分别包含UDP包头或者是14B包头+20B IP包头等。预处理模块的工作需要通过分析PCAP软件头的信息,对五元组进行编程,再提取数据包长等相关的信息,最终将默认的储存形式实现向CSV储存形式的转化。

1.2.3 构建训练集

构建训练集则首先需要满足五元组相同,同时还需要符合思科关于分流的相关定语[14]。然后才可以借助于本次设计选择的软件来对抓取的数据包进行分流。分流的具体实现需要在Linux当中实现。在数据包完成了分流之后,再对数据流的相关特征进行统计分析,并且需要确定最终的训练集。

1.3 选择流特征

已有学者通过研究,对数据流进行了分类,并且认为流特征有249种,如果对每种流特征进行专门的研究分析,将会耗费大量的时间,而且也会消耗大量的成本[15]。其实,并不是所有的流特征都是和采用VoIP系统来进行识别。这就需要对一些冗余和不相关的流特征进行去除,从而使模型的精确度得到提高[16],减少系统实际运行过程中需要的时间。本次研究则首先需要初步对数据流的筛选,然后再选出特定的数据流,产生专门的特征子集,利用评价函数来进行评价,再对停止准则与评价函数展开相应的比较,如果得到的函数结果优于准则,就可以停止,反之,则需要继续开展工作,再得到新的特征子集,一直到获得满意的特征子集。文中所开展的VoIP系统研究中,在产生特征子集与评价时分别采用不同的算法。表1为最优特征子集。

1.4 选择机器学习具体算法

本次设计研究中所采用的机器学习算法为C4.5决策算法树,为了使系统的可扩展性得到增强,另外还需要采用SVM算法与朴素贝叶斯算法。

首先,C4.5决策树算法属于一种比较经典的回归与分类算法。决策树就像是树的枝干与叶子一样,分别包含叶子结点与内部结点,内部结点所代表的是特征属性,而叶子结点所表示的则是类别。算法处理过程比较繁杂。具体过程如下;

表1 最优特征子集

1)熵的计算,这是不纯度度量标准,所采用的公式为:

第i类发生可能性或者是发生概率大小采用Pi表示。

属性为A的信息熵在上述公式当中采用HA(D)来进行表示。

除了采用决策树方法之外,本次设计研究也采用朴素贝叶斯算法来作为辅助算法,该算法主要是以独立假设特征条件以及以贝叶斯定理作为标准。对于已经给定的训练集,会首先对学习输入、输出的概率分布情况进行独立假设,然后再输入给定的x值。想要得到最终输出的最大Y值,则需要借助于贝叶斯定理。

另外本次研究也采用了SVM算法,其中文名称为支持向量机算法,该算法模型就是以间隔最大化为基本,然后求解凸二次规划的相关问题。

1.5 在线识别技术的落实及设计

在线识别技术的落实,需要在短时间内进行在线抓包与识别目标流量。本次研究采用的正是JPcap系统抓包工具。该抓包工具属于JAVA库类,可以实现网络数据包的捕获与发送。Java语言可以较好的定义TCP/UDP的传输,但是在网络层以下控制能力却比较弱。而JPcap系统抓包工具所起到的作用就是提供一个公共数据接口,然后再对Jini数据进行调用,最终得到JAVA库中的数据。

JPcap系统抓包工具抓包与检测功能同时实现,还需要借助于JPcap来进行在线抓包。当然,该系统的抓包对象为单个数据包,因此在抓包的过程中可以按照五元组分流进行数据的获取与统计。

2 试验结果及分析

为了验证所设计系统的可行性,需要设计专门的试验来进行验证。试验所需要的硬件设备包含个人PC,操作系统为Windows 7,交换机为华为S5000,数据挖掘平台为weka3.6,基于JAVA开发。

2.1 选择合适的评价指标

本次试验所采用的评价指标分别包含精度、F1值和召回率等。具体试验时,需要将非VoIP值纳入到负类当中,另外则是将VoIP值纳入到正类当中。分类器的预测结果只有两种情况,即正确或者错误。

2.2 试验所得数据

本次开展具体实验过程中所采用的数据流为1.5G Skype数据流,其中包含了10个不同的版本,数据流总数达到了1 374条,其中通过实验发现来自于PC-PHONE的数据端中的数据流总数为371条。另外,也需要使用1G的非VoIP流量,数据集的收取需要采用镜像端口以及Moore来获取。在整个实验过程中所获得的数据流共计35 371条,流量类型共计15种。

2.3 在线识别结果分析

本次研究对平均误差最小的分类器进行评估,所采用的评估方法为10折交叉验证法,根据研究结果可以发现。本次研究中,分类器的识别精度可以达到99.7%,召回率则是99.5%。另外,因为本次研究筛选了数据流的特征及管件属性,这也使得及机器学习的能力及识别性能得到大大提升。图3为3种不同算法所得到的结果比较,图4为分类器识别结果。

为了验证该系统的在线识别准确度,又继续开展了100多次专门的试验,试验结果显示,设计的在线识别系统的识别精度可以达到91.4%。除了需要考虑在线识别精度之外,还需要考虑到实时性。本次实验结果发现,基于C4.5算法的在线识别系统所花费的时间为最短,为0.53 s。

图3 不同算法得到结果比较

图4 分类器识别结果

3 结束语

通过对当前已有的关于在线流量监测系统的研究结果进行研究,发现关于在线流量检测系统研究较少,而且即便是开展研究在精确度与实时性方面均不容乐观。因此本次设计以机器学习为基础,构建专门的VoIP在线流量检测系统,通过研究及实验证实,该系统精确度与实时性分别为91.4%与0.53 s,值得推广。

猜你喜欢

数据流分流数据包
涉罪未成年人分流与观护制度比较及完善
汽车维修数据流基础(下)
NSA架构分流模式
SmartSniff
一种提高TCP与UDP数据流公平性的拥塞控制机制
基于MEC的LTE本地分流技术
基于数据流聚类的多目标跟踪算法
肝胆胰外科手术与动、静脉自然分流
北医三院 数据流疏通就诊量
视觉注意的数据包优先级排序策略研究