CN105978760A - 一种基于C4.5决策树的VoIP流量在线识别方法 - Google Patents
一种基于C4.5决策树的VoIP流量在线识别方法 Download PDFInfo
- Publication number
- CN105978760A CN105978760A CN201610493333.1A CN201610493333A CN105978760A CN 105978760 A CN105978760 A CN 105978760A CN 201610493333 A CN201610493333 A CN 201610493333A CN 105978760 A CN105978760 A CN 105978760A
- Authority
- CN
- China
- Prior art keywords
- decision tree
- data
- packet
- online
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于C4.5决策树的VoIP流量在线识别方法,该方法对语音流关键特征进行筛选获得最优特征子集并使用C4.5决策树算法构建分类器,提高了在线识别精度;首次提出JPcap边抓包边检测机制,利用Jpcap库编写探嗅器实时捕获数据包,同时分流统计数据流特征值,结合阈值时间动态识别网络中的VoIP流量,并提高了实时性。识别结果表明,本发明离线识别精度达99%,在线识别精度达92%,且识别时间仅为0.57秒,克服了现有技术不足,完成了高精度、实时性的VoIP流量在线识别。
Description
技术领域
本发明涉及流量识别技术领域,特别是涉及一种基于C4.5决策树的VoIP流量在线识别方法。
背景技术
VoIP(Voice over Internet Protocal)因其业务成本低、部署方便,在语音通信业务中的比例持续上升,而其发展带来机遇的同时也给网络安全运行带来了巨大挑战。近年来,非法隐性运营的VoIP应用造成广告、欺诈类电话越来越多,给人们群众的日常生活造成了干扰和危害,因此,对VoIP业务进行管控显得尤为重要。而高精度在线VoIP流量在线识别成为了实际应用中亟待解决的难题。
当前的研究集中在离线识别,主要使用机器学习算法构建分类器模型。文献1“肖梅,辛阳.基于朴素贝叶斯算法的VoIP流量识别技术研究[J].信息网络安全,2015(10).”针对QQ语音VoIP流量类型为研究对象,选用选用数据包长和数据包间隔时间作为流特征,采用朴素贝叶斯算法搭建分类器模型,能准确识别VoIP流量。而朴素贝叶斯算法建模在实际应用中仍存在一些问题,朴素贝叶斯分类算法过度依赖于属性的条件独立性,而这在实际应用中往往是不成立的,且文献没有对在线识别进行研究。文献2“梁伟,陈福才,李海涛.一种基于C4.5决策树的VoIP流量识别方法[J].计算机应用研究,2012,29(9):3418-3421”提出了一种针对常见VoIP应用进行识别的方法,通过选取反映VoIP流量本质规律的几个特征,结合C4.5决策树算法,取得了较好的识别效果。然而,文献没有充分考虑提取特征时计算复合特征所带来的时间消耗,无法应用于在线VoIP流量识别。
由于离线识别无法应用于实际网络当中,因此对VoIP流量进行在线识别显得十分必要。文献3“Gu C,Zhang S,Sun Y.Realtime Encrypted Traffic Identification usingMachine Learning[J].Journal of Software,2011,6(6):1009-1016”将每个完整流的前12个数据包作为子流,并基于流特征完成VoIP流量在线识别。然而文献并没有对系统的实时性进行研究,且取固定数据包个数进行识别不具备稳定性,系统并没有实现真正意义上的在线识别。文献4“Di Mauro M,Longo M.Skype traffic detection:A decision theorybased tool[C]//Security Technology(ICCST),2014International CarnahanConference on.IEEE,2014:1-6”提出调用TShark模块实现在线抓包,并利用WEKA工具中的机器学习算法构建分类器,以实现VoIP流量的在线识别,但精度较低,只达83%,且Tshark只能在Linux系统下工作。
发明内容
针对现在技术的不足,本发明提出一种基于C4.5决策树的VoIP流量在线识别方法,该方法适合VoIP流量在线识别,能高精度的完成在线识别工作,实现VoIP流量的实时动态识别。
实现本发明目的的技术方案是:
一种基于C4.5决策树的VoIP流量在线识别方法,包括以下步骤:
1)解析PCAP文件;
解析捕获到的PCAP文件格式数据集,得到CSV文件格式的数据集。解析过程按源IP地址、目的IP地址、源端口、目的端口、传输协议组成的五元组分流,分流规则为:单条TCP流须包含完整语义的开始时刻(SYN)和结束时刻(FIN/RST),UDP流中两个包之间的时间间隔不超过30s,完成UDP流的组装;
2)流统计特征选择;
根据VoIP语音流的关键属性筛选出12个流统计特征集:前向最大数据包长、前向平均数据包长、前向数据包长方差、后向最大数据包长、后向平均数据包长、后向数据包长方差、前向最大时间间隔、前向平均时间间隔、前向时间间隔方差、后向最大时间间隔、后向平均时间间隔和后向时间间隔方差,作为C4.5决策树算法进行学习的特征集;
3)构建训练集;
数据集由三部分组成:捕获到的数据集文件;Tstat网下载的数据集文件和文献“Moore A,Zuev D,Crogan M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,Department of Computer Science,2005”提供的数据集文件。再重复步骤1)并统计步骤2)中的流统计特征值,组装为训练集,记train_set;
4)构建C4.5决策树分类器;
使用C4.5决策树算法对训练集进行学习,进行学习的特征子集为步骤2)中的12个特征,学习后得到决策树分类器模型,即离线分类器;
5)测试C4.5决策树分类器;
利用上述分类器模型对训练集进行十折交叉验证,得到分类器结果;
6)构建Jpcap边抓包边检测机制;
基于Jpcap库,构建Jpcap探嗅器,实现VoIP流量在线捕获;设置30s阈值时间,将阈值时间内累积的数据流量构建为系统的测试集文件;
7)构建在线C4.5决策树分类器;
利用C4.5决策树分类器每30s对测试集进行测试,将测试结果以IP地址形式输出,实现VoIP流量在线识别;
通过上述步骤就能达到VoIP的流量在线识别的目的。
步骤3)中,将训练集切分为10个互不相交、大小相同的子集;
将其中9个数据子集作为训练集构建模型,剩下的一个作为测试集测试模型好坏;
进行10次重复选择,最终选出10次测评中平均测试误差最小的模型,并输出结果。
本发明的离线识别精度为99%,建模时间为0.5s。
步骤4)中,设训练集为:
D={(x1,y1),(x2,y2),…,(xN,yN)} (1)
式中,xi=(xi (1),xi (2),…,xi (n))T表示特征向量,n为特征的个数,yi∈{1,2,…,K}为类,i=1,2,…,N,N为样本数量,构建分类器的过程就是求得x到y的映射,这个映射基于信息增益比得到;
设X为随机变量,只能选有限个值,其概率分布为:
P(X=xi)=pi,i=1,2,…,n (2)
则X的熵为:
对于随机变量(X,Y),得到其联合概率分布:
P(X=xi,Y=yj)=pij,i=1,2,…,n;j=1,2,…,m (4)
进一步得到其条件熵H(Y|X):
则特征A对训练集D的信息增益g(D,A)为:
g(D,A)=H(D)-H(D|A) (6)
最终得到信息增益比:
其中:
n为特征A取值个数;
根据以上推导,得到C4.5决策树的生成过程步骤如下:
设输入为:训练集D,特征集A,阈值ε;
输出为:决策树T;
如果D中所有实例属于同一类Ck,则置T为单结点树,并将Ck作为该结点的类,返回T;
如果则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,按式(7)计算A中各个特征对D的信息增益比,选择值最大特征Ag;
如果Ag的信息增益比小于阈值ε,则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,对Ag的每一个可能值ai,依Ag=ai将D分割为若干非空子集Di,将Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;
对结点i,以Di为训练集,以A-{Ag}为特征集,递归调用步骤A~E,得到子树Ti,返回Ti;
得到决策树模型之后,再对其进行修剪,修剪准则为得到最小化的损失模型函数:
式中,|T|为决策树叶结点个数,t是T的叶结点,该叶结点有Nt个样本点,其中k类样本点有Ntk个,k=1,2,…,K,Ht(T)为叶结点t上的经验熵,参数α≥0;
最终得到C4.5决策树离线分类器,就能在线识别VoIP的流量。
步骤6)中,构建Jpcap探嗅器捕获数据包:
探嗅器基于Jpcap库,利用其接口PacketReceiver与三个核心类:NetworkInterface、JpcapCaptor、Packet捕获流经本地网卡的所有数据流量;
设置在线识别阈值时间:
设置捕获数据包的阈值时间设置为30s,将30s以内的数据流作为分类器的测试集,一旦达到30s便对测试集进行识别,同时,另一线程仍继续捕获数据包;
将数据包分流得到数据流:
对探嗅器实时捕获的每个数据包按五元组进行分流,由于阈值时间设置为30s,因此只要五元组相同即可判断为一个数据流,数据流又包括前向流与后向流,前向流与后向流指五元组中源地址、目的地址互相相反,源端口、目的端口互相相反的流;
将数据流存入本地文件:
同时将分流后的数据流保存至本地CSV文件以备使用;
读取本地文件:
达到30s阈值时间时,读取本地文件中保存的数据流;
统计数据流12个流特征值:
读取到数据流后,分别统计每条数据流的12个流特征值,统计结果同样存为CSV文件;
测试集:
将上述CSV文件作为在线识别分类器的测试集送入在线分类器;
得到Jpcap边抓包边检测机制。
有益效果
本发明提供了一种基于C4.5决策树的VoIP流量在线识别方法,该方法对语音流关键特征进行筛选获得最优特征子集并使用C4.5决策树算法构建分类器,提高了在线识别精度;首次提出JPcap边抓包边检测机制,利用Jpcap库编写探嗅器实时捕获数据包,同时分流统计数据流特征值,结合阈值时间动态识别网络中的VoIP流量,并提高了实时性,识别结果表明,本发明离线识别精度达99%,在线识别精度达92%,且识别时间仅为0.57秒,克服了现有技术不足,完成了高精度、实时VoIP流量在线识别,基于机器学习算法构建分类器模型,算法进行学习的特征子集通过VoIP语音流的关键语音属性进行筛选,在获得分类器模型的基础上,首次提出Jpcap边抓包边检测机制,在Windows系统上利用Jpcap库编写在线探嗅器获取局域网中所有数据流,并通过设置阈值时间,实现VoIP流量的实时动态识别。
附图说明
图1为本发明基于C4.5决策树的VoIP流量在线识别方法的流程图;
图2为VoIP流量在线识别的某次识别结果图。
具体实施方式
一种基于C4.5决策树的VoIP流量在线识别方法,包括以下步骤:
1)解析PCAP文件;
解析捕获到的PCAP文件格式数据集,得到CSV文件格式的数据集。解析过程按源IP地址、目的IP地址、源端口、目的端口、传输协议组成的五元组分流,分流规则为:单条TCP流须包含完整语义的开始时刻(SYN)和结束时刻(FIN/RST),UDP流中两个包之间的时间间隔不超过30s,完成UDP流的组装;
2)流统计特征选择;
根据VoIP语音流的关键属性筛选出12个流统计特征集:前向最大数据包长、前向平均数据包长、前向数据包长方差、后向最大数据包长、后向平均数据包长、后向数据包长方差、前向最大时间间隔、前向平均时间间隔、前向时间间隔方差、后向最大时间间隔、后向平均时间间隔和后向时间间隔方差,作为C4.5决策树算法进行学习的特征集;
3)构建训练集;
数据集由三部分组成:捕获到的数据集文件;Tstat网下载的数据集文件和文献“Moore A,Zuev D,Crogan M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,Department of Computer Science,2005”提供的数据集文件;再重复步骤1)并统计步骤2)中的流统计特征值,组装为训练集,记train_set;
4)构建C4.5决策树分类器;
使用C4.5决策树算法对训练集进行学习,进行学习的特征子集为步骤2)中的12个特征,学习后得到决策树分类器模型,即离线分类器;
5)测试C4.5决策树分类器;
利用上述分类器模型对训练集进行十折交叉验证,得到分类器结果;
6)构建Jpcap边抓包边检测机制;
基于Jpcap库,构建Jpcap探嗅器,实现VoIP流量在线捕获;设置30s阈值时间,将阈值时间内累积的数据流量构建为系统的测试集文件;
7)构建在线C4.5决策树分类器;
利用C4.5决策树分类器每30s对测试集(累积30s的在线数据流文件)进行测试,将测试结果以IP地址形式输出,实现VoIP流量在线识别;
通过上述步骤就能达到VoIP的流量在线识别的目的。
步骤3)中,将训练集切分为10个互不相交、大小相同的子集;
将其中9个数据子集作为训练集构建模型,剩下的一个作为测试集测试模型好坏;
进行10次重复选择,最终选出10此测评中平均测试误差最小的模型,并输出结果;
本发明的离线识别精度为99%,建模时间为0.5s。
步骤4)中,设训练集为:
D={(x1,y1),(x2,y2),…,(xN,yN)} (1)
式中,xi=(xi (1),xi (2),…,xi (n))T表示特征向量,n为特征的个数,yi∈{1,2,…,K}为类,i=1,2,…,N,N为样本数量,构建分类器的过程就是求得x到y的映射,这个映射基于信息增益比得到;
设X为随机变量,只能选有限个值,其概率分布为:
P(X=xi)=pi,i=1,2,…,n (2)
则X的熵为:
对于随机变量(X,Y),得到其联合概率分布:
P(X=xi,Y=yj)=pij,i=1,2,…,n;j=1,2,…,m (4)
进一步得到其条件熵H(Y|X):
则特征A对训练集D的信息增益g(D,A)为:
g(D,A)=H(D)-H(D|A) (6)
最终得到信息增益比:
其中:
n为特征A取值个数;
根据以上推导,得到C4.5决策树的生成过程步骤如下:
设输入为:训练集D,特征集A,阈值ε;
输出为:决策树T;
如果D中所有实例属于同一类Ck,则置T为单结点树,并将Ck作为该结点的类,返回T;
如果则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,按式(7)计算A中各个特征对D的信息增益比,选择值最大特征Ag;
如果Ag的信息增益比小于阈值ε,则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,对Ag的每一个可能值ai,依Ag=ai将D分割为若干非空子集Di,将Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;
对结点i,以Di为训练集,以A-{Ag}为特征集,递归调用步骤A~E,得到子树Ti,返回Ti;
得到决策树模型之后,再对其进行修剪。修剪准则为得到最小化的损失模型函数:
式中,|T|为决策树叶结点个数,t是T的叶结点,该叶结点有Nt个样本点,其中k类样本点有Ntk个,k=1,2,…,K,Ht(T)为叶结点t上的经验熵,参数α≥0;
得到C4.5决策树离线分类器。
步骤6)中,构建Jpcap探嗅器捕获数据包;
探嗅器基于Jpcap库,利用其接口PacketReceiver与三个核心类:NetworkInterface、JpcapCaptor、Packet捕获流经本地网卡的所有数据流量。
设置在线识别阈值时间;
设置捕获数据包的阈值时间设置为30s,将30s以内的数据流作为分类器的测试集,一旦达到30s便对测试集进行识别,同时,另一线程仍继续捕获数据包;
将数据包分流得到数据流:
对探嗅器实时捕获的每个数据包按五元组进行分流,由于阈值时间设置为30s,因此只要五元组相同即可判断为一个数据流,数据流又包括前向流与后向流,前向流与后向流指五元组中源地址、目的地址互相相反,源端口、目的端口互相相反的流;
将数据流存入本地文件:
同时将分流后的数据流保存至本地CSV文件以备使用;
读取本地文件:
达到30s阈值时间时,读取本地文件中保存的数据流;
统计数据流12个流特征值;
读取到数据流后,分别统计每条数据流的12个流特征值,统计结果同样存为CSV文件;
测试集:
将上述CSV文件作为在线识别分类器的测试集送入在线分类器;
得到Jpcap边抓包边检测机制。
VoIP流量在线识别过程如图1所示:
S101:解析PCAP文件;
S102:流统计特征选择;
S103:构建训练集;
S104:加载C4.5算法;
S105:构建离线分类器;
S106:构建Jpcap探嗅器;
S107:判断是否达到30s,是则跳转S111,否则继续执行S108;
S108:继续使用S106步骤中的Jpcap探嗅器捕获数据包;
S109:对数据包分流得到数据流;
S110:将数据流存为本地文件;
S111:达到30s时,读取本地文件;
S112:统计数据流的12个流统计特征值;
S113:测试集;
S114:识别出VoIP流量;
S115:结果以IP地址形式输出。
VoIP流量在线识别的某次识别结果如图2所示:第一个文本框为离线C4.5分类器结果,第二个文本框为在线识别结果。实验结果表明,离线分类器识别精度为99%,建模时间为0.5s,在线实验累积进行100次,得到VoIP流量在线识别平均精度为92%,识别时间为0.57s。
综上所述,本发明提供了一种基于C4.5决策树的VoIP流量在线识别方法,该方法对语音流关键特征进行筛选获得最优特征子集并使用C4.5决策树算法构建分类器,提高了在线识别精度;首次提出JPcap边抓包边检测机制,结合阈值时间动态识别网络中的VoIP流量,并提高了实时性。因此,本发明克服了现有技术不足,完成了高精度、实时VoIP流量在线识别。
实施例1:
解析PCAP文件
使用Wireshark软件捕获的数据流文件或下载的数据流文件均为PCAP文件格式,而本发明需要CSV文件格式的训练集,因此需要进行格式转换,方法如下:
分析PCAP文件头,包括:数据链路层14字节包头+20字节IP包头+20字节TCP或UDP包头;
编程实现PCAP文件头中五元组{源IP地址、目的IP地址、源端口、目的端口、传输协议}、数据包长与时间间隔等特征的提取;
按照Cisco分流规则(UDP流的数据包间隔时间不超过30s)完成UDP流的组装;
将组装好的数据集存为CSV格式。
选取相关的12个流统计特征作为C4.5决策树算法进行学习的特征集,如表1所示。
表1流统计特征集
配置交换机镜像端口,将局域网中所有流量镜像到PC终端上,在PC终端上使用Wireshark软件捕获局域网中所有数据流,存为数据集1;
于Tstat网上下载Skype流,存为数据集2;
下载Andrew Moore等人提供的数据集,存为数据集3;
将上述3个数据集,组成data_set数据集,共2.5G,34371余条数据流,囊括13种数据类型;
具体见表2:
表2:data_set组成部分
计算data_set的12个流统计特征值,最终组装为train_set训练集;
通过公式(9),加载加载C4.5算法
加C4.5决策树算法对train_set训练集进行学习,学习的特征集为表2中的12个特征,得到C4.5决策树离线分类器。
首先定义探嗅器抓的单个的数据包,给出本发明定义的数据包类PacktItem,其成员变量定义如下:
public String srcIP="";//源地址
public String dstIP="";//目的地址
public int srcPort=0;//源端口
public int dstPort=0;//目的端口
public String protocol="";//协议号
public int packetLen=0;//包长
public Long timeStamp=0L;//时间戳,sec+usec
通过public PacketItem init(Packet packet)对其进行初始化与更新。
然后调用Jpcap库中的public String[]getInterface()函数函数获取网卡信息,返回所有网络接口到数组String并打印出描述信息,供用户选择;
在调用public void getCap()函数打开用户选择的网卡,建立连接;
继续调用jCaptor.processPacket(-1,this)不间断抓包;
最后调用public void receivePacket(Packet packet)函数,每抓到一个数据包就进入此函数进行相应的处理;
设置阈值时间为30s,
继续使用Jpcap探嗅器捕获数据包;
Jpcap探嗅器每捕获到一个数据包就对其进行分流,五元组相同则为同一数据流,其中又分为前向数据流与后向数据流;
首先定义数据流:public ArrayList<ArrayList<PacketItem>>
dataFlow=new ArrayList<ArrayList<PacketItem>>();
进入receivePacket(Packet packet)后首先得到数据包的五元组、数据包长与时间戳等信息;
利用public boolean isForward(PacketItem stdFiveTurnel,PacketItem pi)和public boolean isBackward(PacketItem stdFiveTurnel,PacketItem pi)两个函数判断数据流为前向流还是后向流,;
用public ArrayList<ArrayList<PacketItem>>saveFile()函数将一条一条的数据流文件保存至本地文件;
达到30s时,用public void readFileByLines(String fileName)一条一条读取数据流,读取本地文件;
统计数据流的12个流统计特征值:
首先给出流统计特征值类FlowFeature,其成员变量定义如下:
private int meanFPktLen=0;//平均前向包长
private int maxFPktLen=0;//最大前向包长
private double stdFPktLen=0;//前向包长方差
private int meanBPktLen=0;//平均后向包长
private int maxBPktLen=0;//最大后向包长
private double stdBPktLen=0;//后向包长方差
private double meanFIterArrTime=0;//平均前向时间间隔
private double maxFIterArrTime=0;//最大前向时间间隔
private double stdFIterArrTime=0;//前向时间间隔方差
private double meanBIterArrTime=0;//平均后向时间间隔
private double maxBIterArrTime=0;//最大后向时间间隔
private double stdBIterArrTime=0;//后向时间间隔方差
private String type="?";//类类型
利用public ArrayList<FlowFeature>statistic(ArrayList <ArrayList<PacketItem>>dataFlow)函数统计数据流的12个流统计特征值;
将上述统计好的数据流组装为测试集,并利用public File createCSVFile()函数将测试集m_testFile存为CSV文件格式,并将最后一个元素标记为“?”号;
首先调用CSVLoader的setSource(cf.m_testFile)选定测试集;
再通过调用public Classifier J48Classify(ClassifierFrame cf),加载S105构建好的C4.5决策树分类器对测试集进行分类,得到识别结果,以字符串表示,记作result;S115:结果以IP地址形式输出
调用result.equalsIgnoreCase("YES")函数得到识别结果为数据流,识别出VoIP流量,将IP地址输出至m_output文本框。
Claims (4)
1.一种基于C4.5决策树的VoIP流量在线识别方法,其特征在于:包括以下步骤:
1)解析PCAP文件;
解析捕获到的PCAP文件格式数据集,得到CSV文件格式的数据集。解析过程按源IP地址、目的IP地址、源端口、目的端口、传输协议组成的五元组分流,分流规则为:单条TCP流须包含完整语义的开始时刻(SYN)和结束时刻(FIN/RST),UDP流中两个包之间的时间间隔不超过30s。完成UDP流的组装;2)流统计特征选择;
根据VoIP语音流的关键属性筛选出12个流统计特征集:前向最大数据包长、前向平均数据包长、前向数据包长方差、后向最大数据包长、后向平均数据包长、后向数据包长方差、前向最大时间间隔、前向平均时间间隔、前向时间间隔方差、后向最大时间间隔、后向平均时间间隔和后向时间间隔方差,作为C4.5决策树算法进行学习的特征集;
3)构建训练集;
数据集由三部分组成:捕获到的数据集文件;Tstat网下载的数据集文件和文献“MooreA,Zuev D,Crogan M.Discriminators for use in flow-based classification[M].Queen Mary and Westfield College,Department of Computer Science,2005”提供的数据集文件;再重复步骤1)并统计步骤2)中的流统计特征值,组装为训练集,记train_set;
4)构建C4.5决策树分类器;
使用C4.5决策树算法对训练集进行学习,进行学习的特征子集为步骤2)中的12个特征,学习后得到决策树分类器模型,即离线分类器;
5)测试C4.5决策树分类器;
利用步骤4)的分类器模型对训练集进行十折交叉验证,得到分类器结果;
6)构建Jpcap边抓包边检测机制;
基于Jpcap库,构建Jpcap探嗅器,实现VoIP流量在线捕获;设置30s阈值时间,将阈值时间内累积的数据流量构建为系统的测试集文件;
7)构建在线C4.5决策树分类器;
利用C4.5决策树分类器每30s对测试集进行测试,将测试结果以IP地址形式输出,实现VoIP流量在线识别。
2.根据权利要求1所述的基于C4.5决策树的VoIP流量在线识别方法,其特征在于:步骤3)中,将训练集切分为10个互不相交、大小相同的子集:
将其中9个数据子集作为训练集构建模型,剩下的一个作为测试集测试模型好坏;
进行10次重复选择,最终选出10次测评中平均测试误差最小的模型,并输出结果。
3.根据权利要求1所述的基于C4.5决策树的VoIP流量在线识别方法,其特征在于:步骤4)构建C4.5决策树分类器中,设训练集为:
D={(x1,y1),(x2,y2),…,(xN,yN)} (1)
式中,xi=(xi (1),xi (2),…,xi (n))T表示特征向量,n为特征的个数,yi∈{1,2,…,K}为类,i=1,2,…,N,N为样本数量,构建分类器的过程就是求得x到y的映射,这个映射基于信息增益比得到;
设X为随机变量,只能选有限个值,其概率分布为:
P(X=xi)=pi,i=1,2,…,n (2)
则X的熵为:
对于随机变量(X,Y),得到其联合概率分布:
P(X=xi,Y=yj)=pij,i=1,2,…,n;j=1,2,…,m (4)
进一步得到其条件熵H(Y|X):
则特征A对训练集D的信息增益g(D,A)为:
g(D,A)=H(D)-H(D|A) (6)
最终得到信息增益比:
其中:
n为特征A取值个数,
根据以上推导,得到C4.5决策树的生成过程步骤如下:
设输入为:训练集D,特征集A,阈值ε;
输出为:决策树T;
如果D中所有实例属于同一类Ck,则置T为单结点树,并将Ck作为该结点的类,返回T;
如果则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,按式(7)计算A中各个特征对D的信息增益比,选择值最大特征Ag;
如果Ag的信息增益比小于阈值ε,则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类,返回T;
否则,对Ag的每一个可能值ai,依Ag=ai将D分割为若干非空子集Di,将Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;
对结点i,以Di为训练集,以A-{Ag}为特征集,递归调用步骤A~E,得到子树Ti,返回Ti;
得到决策树模型之后,再对其进行修剪。修剪准则为得到最小化的损失模型函数:
式中,|T|为决策树叶结点个数,t是T的叶结点,该叶结点有Nt个样本点,其中k类样本点有Ntk个,k=1,2,…,K,Ht(T)为叶结点t上的经验熵,参数α≥0;
得到C4.5决策树分类器:
4.根据权利要求1所述的基于C4.5决策树的VoIP流量在线识别方法,其特征在于:步骤6)构建Jpcap边抓包边检测机制中,首先构建Jpcap探嗅器捕获数据包;
探嗅器基于Jpcap库,利用其接口PacketReceiver与三个核心类:NetworkInterface、JpcapCaptor、Packet捕获流经本地网卡的所有数据流量。
设置在线识别阈值时间
设置捕获数据包的阈值时间设置为30s,将30s以内的数据流作为分类器的测试集,一旦达到30s便对测试集进行识别,同时,步骤6)仍继续捕获数据包。
将数据包分流得到数据流
对探嗅器实时捕获的每个数据包按五元组进行分流,由于阈值时间设置为30s,因此只要五元组相同即可判断为一个数据流,数据流又包括前向流与后向流,前向流与后向流指五元组中源地址、目的地址互相相反,源端口、目的端口互相相反的流;
将数据流存入本地文件
同时将分流后的数据流保存至本地CSV文件以备使用;
读取本地文件
达到30s阈值时间时,读取本地文件中保存的数据流;
统计数据流12个流特征值
读取到数据流后,分别统计每条数据流的12个流特征值,统计结果同样存为CSV文件;
测试集
将上述CSV文件作为在线识别分类器的测试集送入在线分类器;
得到Jpcap边抓包边检测机制,实现VoIP流量在线识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610493333.1A CN105978760B (zh) | 2016-06-27 | 2016-06-27 | 一种基于C4.5决策树的VoIP流量在线识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610493333.1A CN105978760B (zh) | 2016-06-27 | 2016-06-27 | 一种基于C4.5决策树的VoIP流量在线识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105978760A true CN105978760A (zh) | 2016-09-28 |
CN105978760B CN105978760B (zh) | 2019-07-19 |
Family
ID=57020119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610493333.1A Active CN105978760B (zh) | 2016-06-27 | 2016-06-27 | 一种基于C4.5决策树的VoIP流量在线识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105978760B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896160A (zh) * | 2017-10-27 | 2018-04-10 | 中国科学技术大学 | 一种基于分布式系统的数据中心网络流量建模方法 |
CN109961792A (zh) * | 2019-03-04 | 2019-07-02 | 百度在线网络技术(北京)有限公司 | 用于识别语音的方法和装置 |
CN110009061A (zh) * | 2019-04-18 | 2019-07-12 | 南京邮电大学 | 一种基于机器学习的ap自适应优化选择方法 |
CN110061975A (zh) * | 2019-03-29 | 2019-07-26 | 中国科学院计算技术研究所 | 一种基于离线流量包解析的仿冒网站识别方法及系统 |
CN110225212A (zh) * | 2019-05-21 | 2019-09-10 | 中国电子科技集团公司第三十六研究所 | 一种VoIP语音恢复方法和装置 |
CN111641599A (zh) * | 2020-05-11 | 2020-09-08 | 国家计算机网络与信息安全管理中心 | 一种VoIP网络流量所属平台的识别方法 |
CN117714246A (zh) * | 2024-02-06 | 2024-03-15 | 成都宽域信息安全技术有限公司 | 一种宽频信号测量方法及系统 |
-
2016
- 2016-06-27 CN CN201610493333.1A patent/CN105978760B/zh active Active
Non-Patent Citations (5)
Title |
---|
ANDREW MOORE,DENIS ZUEV,MICHAEL CROGAN: "《Discriminators for use in flow-based classification》", 31 August 2005 * |
TEJMANI S,NANDARANI N,PRADEEP L,IRENGBAM T S,SUKUMAR N: "Early detection of VoIP network flows based on sub-flow statistical characteristics of flows using machine learning techniques", 《2014 IEEE INTERNATIONAL CONFERENCE ON ADVANCED NETWORKS AND TELECOMMUNCATIONS SYSTEMS (ANTS)》 * |
ZHANG JUN,CHEN CHAO,XIANG YANG: "Semi-Supervised and Compound Classification of Network Traffic", 《2012 32ND INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTING SYSTEMS WORKSHOPS》 * |
梁伟,陈福才,李海涛: "一种基于C4.5决策树的VoIP流量识别方法", 《计算机应用研究》 * |
鲁刚,张宏丽,叶麟: "P2P流量识别", 《软件学报》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107896160A (zh) * | 2017-10-27 | 2018-04-10 | 中国科学技术大学 | 一种基于分布式系统的数据中心网络流量建模方法 |
CN107896160B (zh) * | 2017-10-27 | 2019-07-23 | 中国科学技术大学 | 一种基于分布式系统的数据中心网络流量建模方法 |
CN109961792A (zh) * | 2019-03-04 | 2019-07-02 | 百度在线网络技术(北京)有限公司 | 用于识别语音的方法和装置 |
CN109961792B (zh) * | 2019-03-04 | 2022-01-11 | 阿波罗智联(北京)科技有限公司 | 用于识别语音的方法和装置 |
CN110061975A (zh) * | 2019-03-29 | 2019-07-26 | 中国科学院计算技术研究所 | 一种基于离线流量包解析的仿冒网站识别方法及系统 |
CN110009061A (zh) * | 2019-04-18 | 2019-07-12 | 南京邮电大学 | 一种基于机器学习的ap自适应优化选择方法 |
CN110225212A (zh) * | 2019-05-21 | 2019-09-10 | 中国电子科技集团公司第三十六研究所 | 一种VoIP语音恢复方法和装置 |
CN111641599A (zh) * | 2020-05-11 | 2020-09-08 | 国家计算机网络与信息安全管理中心 | 一种VoIP网络流量所属平台的识别方法 |
CN117714246A (zh) * | 2024-02-06 | 2024-03-15 | 成都宽域信息安全技术有限公司 | 一种宽频信号测量方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105978760B (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105978760A (zh) | 一种基于C4.5决策树的VoIP流量在线识别方法 | |
Bujlow et al. | A method for classification of network traffic based on C5. 0 Machine Learning Algorithm | |
US11736364B2 (en) | Cascade-based classification of network devices using multi-scale bags of network words | |
CN101714952B (zh) | 一种接入网的流量识别方法和装置 | |
CN103200133A (zh) | 一种基于网络流引力聚类的流量识别方法 | |
Pekár et al. | Adaptive aggregation of flow records | |
CN112270351A (zh) | 基于辅助分类生成对抗网络的半监督加密流量识别方法 | |
Polverini et al. | The power of SDN to improve the estimation of the ISP traffic matrix through the flow spread concept | |
US8826296B2 (en) | Method of supervising a plurality of units in a communications network | |
Chari et al. | Network traffic classification by packet length signature extraction | |
Liu et al. | An information-theoretic approach to network monitoring and measurement | |
Uhlig | On the complexity of Internet traffic dynamics on its topology | |
CN113382039A (zh) | 一种基于5g移动网络流量分析的应用识别方法和系统 | |
Aouini et al. | Early classification of residential networks traffic using C5. 0 machine learning algorithm | |
Huang et al. | A statistical-feature-based approach to internet traffic classification using machine learning | |
Pustisek et al. | Empirical analysis and modeling of peer-to-peer traffic flows | |
JP4814270B2 (ja) | トラヒック変動量推定方法およびその装置とプログラム | |
Dubin et al. | Video quality representation classification of encrypted http adaptive video streaming | |
Silva et al. | A modular traffic sampling architecture: bringing versatility and efficiency to massive traffic analysis | |
CN114679318A (zh) | 一种高速网络中轻量级的物联网设备识别方法 | |
Wang et al. | Study on process of network traffic classification using machine learning | |
Zou et al. | An enhanced Netflow data collection system | |
Liu et al. | The Internet traffic classification an online SVM approach | |
Pekar et al. | Towards threshold‐agnostic heavy‐hitter classification | |
Oveissian et al. | Fast flow classification over internet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20160928 Assignee: Guilin Hanchen Technology Co.,Ltd. Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY Contract record no.: X2022450000381 Denomination of invention: An Online VoIP Traffic Identification Method Based on C4.5 Decision Tree Granted publication date: 20190719 License type: Common License Record date: 20221219 |
|
EE01 | Entry into force of recordation of patent licensing contract |