基于UDP统计指印混合模型的VoIP流量检测方法技术领域
本发明涉及一种VoIP流量检测方法,特别是涉及一种基于UDP统计指印混合模
型的VoIP流量检测方法。
背景技术
Voice over Internet Protocol(以下简称VoIP)技术是一种以IP电话为主,并推出
相应的增值业务的技术。与传统的语音业务相比,VoIP能在同样带宽条件下使通话数
量成倍增加,可以实现低成本的语音传送、传真等传统电信业务。应用较为广泛的VoIP
技术主要有Skype和QQ语音等,在网络带宽中占有一定比例,VoIP流量的精确检测
有助于提高网络服务质量,提升网络管理和控制的水平,并有助于维护网络安全。
文献1“SalmanA.Baset,Henning Schulzrinne.An Analysis of the Skype Peer-to-Peer
Internet Telephony Protocol.IEEE Infocom’06,Barcelona,Spain,Apr.2006”对Skype协议
进行了详细分析,发现Skype协议使用动态端口而且负载部分完全加密,传统的基于
端口和DPI(Deep Packet Inspection)的协议识别方法已基本失效。
文献2“徐鹏,刘琼,林森.基于支持向量机的Internet流量分类研究[J].计算机研究与
发展,2009,46(3):407-414”公开了一种基于SVM(Support Vector Machine)的流量分类方
法,能有效降低冗余属性的干扰,有很好的分类准确率和稳定性,但目前这方面的研
究并未考虑VoIP流量的识别。
文献3“Manuel Crotti,Maurizio Dusi.Traffic Classification through Simple Statistical
Fingerprinting,ACM SIGCOMM Computer Communication Review,Vol.37,No.1,pp.
5-16,Jan.2007”使用统计指印方法实现对HTTP、POP3、SMTP等常用协议的识别,该
方法基于TCP流的前四个包的统计特征建立相应的统计指印,并通过计算TCP流的
相异度来判定流的协议类别,但文献中并未研究UDP指印的构造和应用。
文献4“D.Bonfiglio,M.Mellia,M.Meo.Revealing Skype Traffic:When Randomness
Plays with You[C]//Proceedings of 2007ACM SIGCOMM Computer Communication
Review,New York,USA:ACM,2007:37-48”使用卡方检验和朴素贝叶斯的方法实现对
Skype协议流量的识别,这也是目前在Skype流量识别方面最有效的方法,但该方法
是根据Skype协议的编码方式和包头特征提出的,只能识别特定版本的Skype协议流
量,无法识别QQ语音、MSN语音等其它VoIP流量,有一定的局限性。
发明内容
为了克服现有的方法对VoIP流量检测精确度差的不足,本发明提供一种基于UDP
统计指印混合模型的VoIP流量检测方法。该方法将UDP流的统计特征与网络流的统
计指印相异度结合共同训练一个支持向量机分类模型,把基于分类阈值点的分类转换
到基于多维特征的高维空间中的分类面的分类,综合运用包层次和流层次统计特征,
可以降低因网络不稳定造成的统计特征偏差对分类模型精确度的影响,提高对VoIP
流量检测的精确度。
本发明解决其技术问题所采用的技术方案是:一种基于UDP统计指印混合模型
的VoIP流量检测方法,其特点是包括以下步骤:
(a)解析PCAP包文件,并根据五元组{源IP、源端口、目的IP、目的端口以及传
输层协议}完成UDP流的组装。
(b)使用17-fileter对组装后的UDP流进行标注,标注数据分为VoIP协议流和非VoIP
协议流两类。
(c)使用(b)中标注好的VoIP协议流的包特征建立VoIP协议的UDP指印,用矩
阵表示网络流
x → = s 1 . . . s r Δt 1 . . . Δt r ]]>
式中,s是VoIP协议流中包的大小,Δt是VoIP协议流中包的到达时间间隔,r表示流
中包含数据包的个数;若选取n个VoIP协议流来构造第i个数据包的指印,则得到如下
矩阵F:
F = ( s 1 , Δt 1 ) 1 ( s 1 , Δt 1 ) 2 . . . ( s 1 , Δt 1 ) n ( s 2 , Δt 2 ) 1 ( s 2 , Δt 2 ) 2 . . . ( s 2 , Δt 2 ) n . . . . . . . . . . . . ( s r , Δt r ) 1 ( s r , Δt r ) 2 . . . ( s r , Δt r ) n ]]>
式中,n列代表n个网络流,第i行代表每个流的第i个数据包,矩阵F中的所有包用
来构建VoIP的UDP指印,使用核函数对UDP指印进行高斯过滤以消除噪声:
K(‖X-XC‖)=exp{-‖X-XC‖2/2*σ2}
式中,XC为核函数中心,σ为函数的宽度参数;经过去噪和归一化处理后得到最终的
协议指印M。
(d)采用公式
S ( x → | ω t ) = | log 10 Π i = 1 r p ( x i | ω t ) / r | ]]>
计算步骤(b)中标注好的VoIP协议流和非VoIP协议流与步骤(c)中生成的VoIP的UDP
指印的相异度;式中,p(xi|ωt)表示第i个数据包属于类别ωt的条件概率,r表示从待检
测数据流中挑选的包的个数,p(xi|ωt)通过步骤(c)中生成的协议指印M来计算:
p(xi|ωt)=M(si,Δti)
(e)将步骤(d)中得到的VoIP协议流和非VoIP协议流与VoIP协议的UDP指印的
相异度作为一个新的流特征加入到步骤(a)中提取的相应的UDP流特征中,并生成一
个由流特征构成的训练集Training Set。
(f)使用步骤(e)中生成的训练集Training_Set训练一个SVM分类器;
给定一组独立同分布的样本点,
(x1,y1),…(xn,yn),xi∈Rm,yi∈{-1,+1}
式中,xi是指样本向量,yi是指样本所属类别,正例用+1表示,反例用-1表示。
SVM的目标是在高维空间上寻求一个最优分类面:
wTx+b=0
若某些样本不能被最优分类面正确分类,引入松弛变量ξ1,ξ2,…,ξn以及惩罚因子C,将
最优分类面的求解转化为有约束的二次规划问题:
min w , b , ξ 1 2 | | w | | 2 + C Σ i = 1 n ξ i ]]>
满足:yi(w·xi+b)≥1-ξi
ξi≥0,i=1,…,n
式中,常数C>0称为“惩罚因子”;
为求解二次规划问题引入Lagrange算子αi,i=1,…,l,并定义
w ( α ) = Σ i = 1 l α i y i x i ]]>
将二次规划问题转化为对偶问题:
max W ( α ) = Σ i α i - 1 2 w ( α ) · w ( α ) ]]>
满足 α i ≥ 0 , Σ i α i y i = 0 ]]>
最终求得分类判别函数为:
f ( x ) = sgn ( Σ i = 1 n α i y i ( x i · x ) + b ) ]]>
使用第5步中生成的Test_Set来测试分类模型的分类精确度。
(g)使用步骤(e)中生成的训练集Training Set训练一个支持向量机分类模型,
实现对VoIP流量的检测。
本发明的有益效果是:由于将UDP流的统计特征与网络流的统计指印相异度结
合共同训练一个支持向量机分类模型,把基于分类阈值点的分类转换到基于多维特征
的高维空间中的分类面的分类,综合运用包层次和流层次统计特征,降低了因网络不
稳定造成的统计特征偏差对分类模型精确度的影响。检测结果表明,本发明对VoIP
流量的检测精确度达到90%以上。
下面结合附图实施例对本发明作详细说明。
附图说明
图1是本发明基于UDP统计指印混合模型的VoIP流量检测方法的流程图。
具体实施方式
1.解析PCAP包文件并组装UDP流。
解析PCAP包文件(一种网络流量采集后的保存类型),并根据五元组{源IP,源端
口,目的IP,目的端口,传输层协议}完成UDP流的组装。
首先根据五元组{源IP,源端口,目的IP,目的端口,传输层协议}完成UDP流的组
装,然后挑选流长度大于10个包的流并以流为单位分别提取流的统计特征和流中各个
包的特征。包特征的选取主要根据建立UDP指印的需要,选取流的前10个包的包大小
和到达时间间隔。流特征的选取参照文献“LI Wei,CANINI M,MOORE A W.Efficient
Application Identification and the Temporal and Spatial Stability of Classification
Schema[J].Computer Networks,2009,53(6):790-809”中给出的UDP流统计特征。
2.挑选流并提取特征。
挑选流长度大于10个包的流并以流为单位分别提取流的统计特征和流中各个包的
包特征。
使用17-fileter对重组后的网络流进行标注,标注数据分为VoIP协议流和非VoIP协议
流两类。
3.生成VoIP协议的UDP指印。
使用步骤2中标注好的VoIP协议流的包特征建立VoIP协议流的UDP指印,假设VoIP
协议流中包的大小为S,包的到达时间间隔为Δt。可以用一个矩阵来表示网络流
x → = s 1 . . . s r Δt 1 . . . Δt r - - - ( 1 ) ]]>
式中,r表示流中包含r个数据包,若选取n个流来构造第i个数据包的指印,则得
到如下矩阵F:
F = ( s 1 , Δt 1 ) 1 ( s 1 , Δt 1 ) 2 . . . ( s 1 , Δt 1 ) n ( s 2 , Δt 2 ) 1 ( s 2 , Δt 2 ) 2 . . . ( s 2 , Δt 2 ) n . . . . . . . . . . . . ( s r , Δt r ) 1 ( s r , Δt r ) 2 . . . ( s r , Δt r ) n - - - ( 2 ) ]]>
式中,每列代表一个网络流,共有n列代表n个网络流,第i行代表每个流的第i个数据
包,矩阵F中的所有包用来构建VoIP的UDP指印。
因为同一协议下的包大小和时间间隔存在一定的规律,所有的点会落在一个相对
稳定的区域,在同一点上落的点较多时,这个点上的灰度值会比较高。在网络中存在
丢包和拥塞等情况,统计指印通常存在一定量的噪声,使用核函数对指印进行高斯过
滤可以有效的消除噪声,核函数如下所示:
K(‖X-XC‖)=exp{-‖X-XC‖2/2*σ2} (3)
式中,XC为核函数中心,σ为函数的宽度参数,控制了函数的径向作用范围。经过去
噪和归一化处理后得到最终的VoIP协议的指印M。
4.计算网络流与VoIP指印的相异度。
计算所有的VoIP协议流和非VoIP协议流与第3步中生成的VoIP的协议指印M的相异
度,计算公式如下:
S ( x → | ω t ) = | log 10 Π i = 1 r p ( x i | ω t ) / r | - - - ( 4 ) ]]>
其中,p(xi|ωt)表示第i个数据包属于类别ωt的条件概率,r表示从待检测数据流中挑选
的包的个数,p(xi|ωt)通过步骤3中生成的协议指印M来计算:
p(xi|ωt)=M(si,Δti) (5)
对于p(xi|ωt)为空值的情况,我们计算的时候用一个很小的数10-300来代替它。
5.生成训练集和测试集。
将第4步中计算出来的网络流与VoIP协议的UDP指印的相异度作为一个新的流特征
加入到第2步中提取的相应的UDP流特征中,并生成一个由流特征构成的训练集
Training_Set和测试集Test_Set。
6.训练SVM分类器。
使用第5步中生成的训练集Training_Set训练一个SVM分类器,SVM的分类原理
如下:
给定一组独立同分布的样本点,
(x1,y1),…(xn,yn),xi∈Rm,yi∈{-1,,+1}
其中xi是指样本向量,yi是指样本所属类别,正例用+1表示,反例用-1表示。
SVM的目标是在高维空间上寻求一个最优分类面:
wTx+b=0 (6)
最优分类面不仅能将两类样本分开,而且要使得两类样本到最优分类面的距离最大。
考虑一些样本可能不能被分类面正确分类,引入松弛变量ξ1,ξ2,…,ξn以及惩罚因子C,
将最优分类面的求解转化为有约束的二次规划问题:
min w , b , ξ 1 2 | | w | | 2 + C Σ i = 1 n ξ i - - - ( 7 ) ]]>
满足:yi(w·xi+b)≥1-ξi (8)
ξi≥0,i=1,…,n
其中,常数C>0称为“惩罚因子”,它在分类器的复杂度和经验风险之间进行权衡。
为求解二次规划问题引入Lagrange算子αi,i=1,…,l,并定义
w ( α ) = Σ i = 1 l α i y i x i - - - ( 9 ) ]]>
将二次规划问题转化为对偶问题:
max W ( α ) = Σ i α i - 1 2 w ( α ) · w ( α ) - - - ( 10 ) ]]>
满足 α i ≥ 0 , Σ i α i y i = 0 - - - ( 11 ) ]]>
最终求得分类判别函数为:
f ( x ) = sgn ( Σ i = 1 n α i y i ( x i · x ) + b ) - - - ( 12 ) ]]>
7.VoIP流量检测。
使用第5步中生成的训练集Training Set训练一个支持向量机分类模型,实现对VoIP
流量的检测。
总之,本发明将UDP流与VoIP指印的相异度作为一个新的流特征并与UDP流的
其它统计特征结合,共同训练一个支持向量机分类模型,综合运用包层次和流层次统
计特征,降低了因网络不稳定造成的统计特征偏差对分类模型精确度的影响。检测结
果表明,本发明对VoIP流量的检测精度可以达到90%以上。