论文部分内容阅读
随着计算机网络技术的飞速发展和信息时代的到来,网络使用频率的不断增加造成了互联网的数据流量爆发式增长;网络新应用的不断出现造成了网络通信协议使用更加灵活、混杂;网络病毒、窃听和恶意攻击等行为不断增多造成了网络安全成为社会和政府部门关注的热点。这些问题可以通过网络流量识别得到很好的解决。因此,网络流量识也越来越受到人们的重视。已经有许多不同的流量识别方法,但从研究和应用角度人们越来越关注流量识别的可行性和有效性,即如何快速地处理海量的数据和如何正确地识别网络中的各种应用。面临不断变化的网络环境,本论文主要研究基于机器学习(Machine Learning, ML)的网络流量识别方法,重点采用了后向传播(Back Propagation, BP)神经网络和支持向量机(Support Vector Machine, SVM)两种监督学习算法。BP神经网络采用分布、并行的网状结构进行训练学习,使其容错性更高,处理速度更快;BP神经网络具有很好的非线性映射能力,可以模拟输入与输出的非线性关系;同时,BP神经网络是通过全局寻优的方式进行训练的,因此BP网络也具有很高的泛化能力。SVM则是针对小样本的机器学习方法,并且通过内积核函数将低维样本空间非线性映射到高维空间,其具有比较完善的理论基础。SVM采用“转导推理”(Transductive Inference)方法可以很容易的解决非线性多分类问题。SVM的最优分类超平面只由边界上有限的支持向量构成,使得SVM方法不仅简单有效,而且具有很好的鲁棒性。这两种机器学习算法都能够适应网络环境中的大数据和多样性,都能够快速有效的识别网络流量的应用类型。本论文的流量识别系统是以家庭中的网络流为识别对象,该系统从功能上分为家庭网关和后台服务器两部分。家庭网关实时抓取数据包、提取特征,并通过机器学习的方法进行流量识别,然后将识别结果传送给后台服务器;后台服务器将识别结果存入数据库,并显示当前网络中流量的应用类型,便于管理者进行监管。论文研究的主要贡献如下:1、通过对网络流量识别和机器学习的研究与分析,BP神经网络能够适应互联网的大数据和多样性特点,在此基础上选择了基于BP神经网络的流量识别方法。即选择三层的BP神经网络作为实现方案,其分类能力满足流量识别的要求并且结构简单易于实现。选择S型函数作为BP神经网络隐含层的转移函数,实现对网络流特征等输入信息的非线性映射。虽然BP神经网络容易陷入误差曲面的局部极小,但是通过粒子群算法(Particle Swarm Optimization, PSO)寻找具有全局最优特性的初始化权值,保证BP神经网络训练时能够进入误差曲面的全局最小。实验结果表明,经过PSO算法优化的BP神经网络能够很快寻找到误差曲面的全局最小值,并准确识别流量的网络应用类型。2、仔细研究SVM解决线性和非线性分类问题的原理,在此基础上提出了基于SVM的流量识别方法,将SVM应用于网络流量识别领域。选择径向基函数作为SVM的核函数,实现从低维的网络流特征空间向更高维空间的非线性映射。并通过一对一方法(One-Against-One)构造了SVM多值分类器,使SVM能够识别多种网络应用类型。SVM在高维空间中生成最优超平面,实现对空间的划分和多种网络应用的分类,这是一种全局寻优的方式因此SVM的识别方法具有很好的泛化能力。实验结果表明,SVM非常适合解决网络流量识别这种非线性多分类问题,而且所需训练样本少,计算复杂度低,能够进行实时识别。3、在家庭局域网中设计和实现了流量识别系统。根据机器学习的系统模型和监督学习的实现方法,设计了网络流量识别的总体架构,将其分为实时在线流量识别和离线训练学习两部分,具体过程包含抓取网络流的数据包,生成网络流的特征,选择训练集和测试集,对机器学习算法进行训练,和测试两种流量识别算法的分类效果。在系统实现方面,将BP神经网络和SVM的流量识别算法编写为程序,并移植到家庭网关(家庭网关由路由器搭建)中。在后台服务器的Linux平台上搭建Web服务器和安装MySQL数据库,实现家庭网关与后台服务器之间的交互通信、信息处理和存储。管理员则可以通过Web浏览器登录后台服务器观察当前家庭网络中流量识别结果。