APP下载

基于支持向量机的网络流量识别模型

2017-09-05陈勇徐钊蔡阳波许云龙

软件导刊 2017年7期
关键词:网络流量支持向量机

陈勇+徐钊+蔡阳波+许云龙

摘 要:针对网络流量识别问题,提出一种基于支持向量机(SVM)的网络流量识别模型。首先通过流量特征提取模块,提取适合在支持向量机中识别网络流量的6个主要特征。对数据进行清洗、预处理以及训练和学习,从而实现整个基于SVM的网络流量识别系统。实验结果表明,经过交叉检验选择参数后,再用支持向量机模型进行训练和学习,可以取得较好的分类效果。

关键词:网络流量;支持向量机;流量识别

DOIDOI:10.11907/rjdk.162818

中图分类号:TP393

文献标识码:A 文章编号:1672-7800(2017)007-0162-03

0 引言

网络流量识别一直以来都是业界研究的重点[1]。目前,网络流量分类和识别主要分为4种类型:基于端口识别、基于应用协议特征字识别、行为特征的启发式识别、基于机器学习方法的分类和识别[2-3]。随着端口跳变、信息隐藏等技术的广泛采用,基于特征端口的识别方法已经不再适用于网络流量的识别与检测[4];基于应用协议特征字的识别虽然准确率比较高,但由于需要获取分组的应用层负载,对处理效率的影响较为严重,并且涉及到隐私保护等法律问题,故不被广泛采用[5];基于行为特征的启发式识别是综合利用流的属性、统计特性以及流的行为特征,按照启发式负责对流量进行分析,达到对网络流量分类和识别的目的,但其分类和识别结果不确定,而是基于概率的结果,因此识别方法的精度取决于网络流量应用特征的显著程度和启发式规则对这种特征的覆盖能力[6]。近年来,基于机器学习的网络流量识别方法表现出了较高的准确率,因此得到越来越多研究者的青睐[7-8]。

本文所讨论的网络流量识别问题,其本质上就是一个二分类问题,考虑到SVM在解决二分类问题中的卓越性能,以及其具有的学习能力,故采用它来实现对网络中正常流量和异常流量的初步识别。

基于以上观点,本文提出一种基于SVM的网络流量二分类识别方法,与只采用特征值匹配的识别网络流量方法相比,大大减少了特征值匹配模块的工作量,提高了网络流量识别系统效率。

1 基于SVM的流量识别系统

本文首先通过流量特征提取模块,提取适合在支持向量机中识别的网络流量的6个主要特征。接着,对数据进行清洗和预处理,通过对数据进行训练和学习,从而实现整个基于SVM的网络流量识别系统。

1.1 流量特征提取模块C和Υ

本模块采用了开源软件Winpcap进行网络数据的捕获分析,选取数据包在特定时间(W秒)间隔内本机连接出去的IP数、端口数、包长、包数、上行速度和下行速度6大特征信息。

1.2 基于SVM的P2P流量识别模块

本模块主要對图1中提取出的流量统计特征信息进行整理,剔除冗余数据,并将其转换为特征向量形式,采用支持向量机的方法将其交给SVM进行训练,训练后得到一组支持向量,即今后的预测模型。将预测模型与预处理过的待预测特征向量共同代入SVM的决策函数中,从而判别出该网络流量是否为P2P流。

1.2.1 预处理

对数据集进行预处理,即对数据进行缩放的目的在于:

① 避免部分特征值范围过大而另一部分特征值范围过小;

② 避免训练时为了计算核函数而计算内积时引起数值计算困难。

因此通常将数据缩放到[-1,1]或者是[0,l]之间,本文采用默认缩放范围[-1,1]。

1.2.2 寻找最优参数C、Υ

数据预处理后,便可以利用网格搜索法来交叉验证寻找核函数RBF对于训练数据集的最优参数C和Υ[9]。为了识别出好的(C,Υ),以便分类器能准确地预测未知数据。

1.2.3 模型训练

最优参数(C,Υ)确定后就可开始对训练数据集进行训练以获取支持向量机模型[10]。同样地,LIBSVM提供了一个训练函数svm-train.c。其主要功能是读取训练文件,调用模型训练函数svm_train训练模型,并调用svm_save_model保存模型到文件。程序基本流程图如图3所示。

2 实验分析

本文在VC++6.0环境下开发了基于SVM的P2P流量识别系统,并对该系统进行测试,验证其效率和准确性。

2.1 实验过程

2.1.1 数据捕获

选择用于检测流量的网卡设备作为监控对象,然后使用混杂模式打开该网卡,以便获取所有数据。同时,设置过滤器,使WinPcap仅捕获TCP包和UDP包。最后,利用WinPcap开发包提供的非回调方法捕获数据包,然后利用while循环实现不断侦听网卡所检测到的网络流量,同时对被监控的网络节点的流量情况进行统计。

如此,随着while循环不断执行,数据包被不断捕获,直到W秒时间到,统计得到的6个流量特征值就是一组训练样本值,为了后续数据处理更为方便,程序在最后将其以LIBSVM的训练数据格式存储到一个文本文件中。随后,本文应用SVM支持向量机对上述数据进行预处理、训练以及预测操作。

2.1.2 预处理

其缩放规则被保存以备使用,如表1所示。

表1中,-1与1即为设定的lower和upper值。第一列为6个特征标号,其后的值分别为其对应的转换前上下限特征值。

2.1.3 寻找最优参数(C,Υ)

利用网格搜索法搜索后得到最优的(C,Υ)对和交叉验证的精度如表2所示。

2.1.4 模型训练

本次训练共迭代了49次,nu为参数v的值,即v=0.060 784,obj为SVM转化为二次规划求解得到的最小值,其值为-46.145 696,而rho=0.412 394为判决函数常数项b的值。nSV为支持向量数40,nBSV为边界上的支持向量数34,Total nSV即为总支持向量数40。endprint

訓练得到的模型保存到data.model文件中,由该文件可以得到以下信息,训练采用的SVM类型是C_SVC,核函数为径向基函数RBF,Υ值为0.5,nr_class表示此次为二分类,总支持向量数为40,判决函数常数项b的值为0.412394,二分类的标记为-1与1,且每种类型的支持向量数分别为20、20。

2.2 数据预测结果分析与比较

训练结束后得到模型就可以用于SVM预测了。LIBSVM的预测函数为svm-predict。函数的功能是读取待预测文件、模型文件,然后调用predict函数预测,并将结果输出到文件。

(1)经过交叉检验数据。由此得到其预测的精度为96.3528%,预测结果保存在out.result中。

(2)未进行交叉验证的数据结果。如在选取最优参数(C,Υ)时,不采用网格搜索的交叉验证方法,而采用系统默认值,即取默认值1,Υ取默认值1/6= 0.166 667, 按照上述方法进行训练,通过得到的模型预测未知的数据newdata.scale,得到其预测精度为94.741 3%。可见,通过最优参数(C,Υ)的选择,可以使得结果预测精度有所提高。

(3)多次训练和学习。为了体现SVM的学习过程,进行了5次实验,通过不断地捕获数据,分别对捕获的数据进行预处理、训练、预测。随着不断地学习,预测精度不断提升,分别为92.196 8%、94.741 3%、95.674 3%、95.843 9%、96.352 8%,精度不断增加。可见通过多次学习,有利于分类判断。不过需要指出的是,学习过程也需要有一定控制,过度学习会给分类带来负面影响。

3 结语

本文从数据包捕获、预处理、识别、学习和训练这几个部分展开,详细说明了如何利用LIBSVM对数据包不断地学习、训练,最终得到一个比较可靠的模型,并通过这个模型对网络中的未知数据进行预测,从而证明其可靠程度。由此可见,基于SVM的网络流量识别方法是可行的,并且识别效果较好。

参考文献:

[1]YE W,CHO K.Hybrid P2P traffic classification with heuristic rules and machine learning[J].Soft Computing,2014,18(9):1815-1827.

[2]徐鹏,刘琼,林森.改进的对等网络流量传输层识别方法[J].计算机研究与发展,2015,45(5):794-802.

[3]ZAREI R,MONEMI A,MARSONO M N.Automated dataset generation for training peer-to-peer machine learning classifiers[J].Journal of Network and Systems Management,2015,23(1):89-110.

[4]NGUYEN T T,ARMITAGE G,BRANCH P,et al.Timely and continuous machine-learning-based classification for interactive IP traffic[J].IEEE/ACM Transactions on Networking (TON),2012,20(6):1880-1894.

[5]TAYSI Z C,KARSLIGIL M E,YAVUZ A G,et al.Machine learning based IP traffic classfication[C].Proceedings of the Signal Processing and Communications Applications Conference (SIU),2013:1-4.

[6]顾彬,郑关胜,王建东.增量和减量式标准支持向量机的分析[J].Journal of Software,2013,24(7):65-69.

[7]JAMIL H,ZAREI R,FADLELSSIED N O,et al.Analysis of features selection for P2P traffic detection using support vector machine[C].Proceedings of the Information and Communication Technology (ICoICT),2013 International Conference of,IEEE,2013:116-121.

[8]ANG H H,GOPALKRISHNAN V,HOI S C,et al.Classification in P2P networks with cascade support vector machines[J].ACM Transactions on Knowledge Discovery from Data (TKDD),2013,7(4):20.

[9]JING GONG Z W,ZHIXIN SUN.An improved SVM kernel function parameter optimization method in network traffic monitoring[J].Journal of Computational Information Systems,2015,11(16):5937-5946.

[10]JIANFEN P,YAJIAN Z,CONG W,et al.A novel method of P2P traffic classification based on TCP flow analysis[M].Affective Computing and Intelligent Interaction.Springer.2012:521-528.endprint

猜你喜欢

网络流量支持向量机
基于多元高斯分布的网络流量异常识别方法
大数据驱动和分析的舰船通信网络流量智能估计
基于神经网络的P2P流量识别方法
AVB网络流量整形帧模型端到端延迟计算
基于改进支持向量机的船舶纵摇预报模型
基于支持向量机的金融数据分析研究
网络流量监控对网络安全治理的重要性
3月CERNET网络流量同比略高