基于遗传神经网络的P2P流量识别系统

时间:2022-10-30 05:32:01

基于遗传神经网络的P2P流量识别系统

摘 要: 考虑到传统BP神经网络在进行P2P流量识别时,具有系统识别速度慢、精度低,神经网络自身容易陷入局部最小值等问题,使用遗传算法对BP神经网络进行优化。遗传算法具有较强的自适应性和鲁棒性,因此使用遗传算法对BP神经网络的权值和阈值进行优化处理,能够有效提高神经网络的性能。建立基于遗传神经网络的识别系统,采集处理大量样本数据,对识别系统进行训练和测试。研究结果表明,基于遗传神经网络的P2P流量识别系统具有识别精度高、识别速度快等优点,相比传统BP神经网络,其识别性能有明显提高。

关键词: 遗传算法; P2P; 流量识别; BP神经网络

中图分类号: TN711?34; TP393 文献标识码: A 文章编号: 1004?373X(2015)17?0117?04

P2P traffic recognition system based on genetic neural network

SUN Yuling, LIN Qinhua

(Sichuan Information Technology College, Guangyuan 628017, China)

Abstract: Since the traditional BP neural network has slow recognition speed and low accuracy while proceeding P2P traffic recognition, and the neural network itself is easy to fall into local minimum value, the genetic algorithm is used to optimize BP neural network. Genetic algorithm has better adaptability and robustness, so it is used to optimize the weight and threshold of BP neural network, which can improve the performance of the neural network effectively. To study the performance of the established recognition system based on genetic neural network, the recognition system was trained and tested by collecting and processing a large number of sample data. The research results show that P2P traffic identification system based on genetic neural network has high recognition accuracy and rapid recognition speed. Compared with the traditional BP neural network, the recognition performance of P2P traffic identification system has been improved obviously.

Keywords: genetic algorithm; P2P; traffic recognition; BP neural network

随着计算机科学技术的不断发展与进步,P2P技术已经广泛应用于网络视频音频多媒体播放、网络文件共享以及数据传输等领域,P2P技术不断吸引了越来越多的网络用户、网络应用服务开发者以及提供商的目光,各种各样的基于P2P技术的网络应用和服务不断涌现,为人们在网络中提供了便利。然而,随着人们享受着P2P技术带来的各种便利的同时,P2P技术的各种负面效应也随之而来。目前P2P应用存在对网络流量消耗巨大,监管难度大,以及易于网络病毒传播,为网络带来安全隐患等问题。因此,对P2P流量的精确识别和监测成为了对P2P技术研究的重中之重[1?5]。

1 P2P流量识别技术

1.1 典型P2P流量识别技术

典型的P2P流量识别技术主要有:基于端口的识别技术、基于深层数据包的识别技术以及基于流量变化特征的识别技术。

基于端口的识别技术是一种应用最早的识别技术,其主要根据早期P2P应用的固定端口进行识别,具有算法简便,易于实现等优点,但是对于现如今复杂的网络环境,此种技术已经不再适用[6?7]。

基于深层数据包的识别技术往往因为存在识别滞后、隐私保护以及算法复杂等缺点而得不到广泛普及应用。

基于流量变化特征的识别技术通过对P2P流量数据进行采集,通过处理数据得到数据流的统计特征,使用统计特征作为机器学习的训练样本,得到经过训练的识别系统。此识别技术具有算法简便、效率高等优点[8?9]。

1.2 基于神经网络的P2P流量识别技术

BP神经网络是一种有督导的智能机器学习算法,已经在机械、计算机、通信等领域得到了广泛应用,其技术发展已经相对成熟。将BP神经网络用于对P2P流量的识别是一种可行有效的识别技术和手段。

然而将BP神经网络算法用于P2P流量识别虽然克服了传统识别方法存在的诸多问题,但是由于算法自身特性也随之带来了新的问题。

BP神经网络实际上是梯度下降算法的一种迭代学习方法。由于梯度下降算法要求具有较小的学习速度时才能进行稳定的学习,因此其收敛速度较慢。并且,由于BP神经网络在进行训练时,会在某点沿着误差斜面而渐进误差极值,不同的起点会得到不同的误差极值和不同的解。因此传统BP神经网络具有学习速度慢、抗干扰能力弱以及容易陷入局部最小值等缺点[10?11]。

2 BP神经网络和遗传神经网络

2.1 BP神经网络

BP神经网络结构如图1所示。通常由输入层、输出层和隐含层组成。

图1中[P]为网络输出,[R]为网络维数,[S1]为隐层神经元数目,[W1]为隐层神经元权值,[a1]为隐层神经元输出,[b1]为隐层神经元阈值,[n1]为隐层节点的输入,[S2]为输出层神经元数目,[W2]为输出层神经元权值,[a2]为输出层神经元输出,[b2]为输出层神经元阈值,[n2]为输出层节点的输入,[f1,][f2]为传递函数,通常,[f2]为purelin型,[f1]为:

[fx=11+e-x] (1)

则有BP神经网络的输出误差为:

[E=p12jdpj-opj2] (2)

BP神经网络算法的权值修正方法为:

[ωjit+1=ωjit+ηδpjopj] (3)

式中[η]为网络的学习速度。

输出层的神经元为:

[δpj=opjdpj-opj1-opj] (4)

隐层的神经元为:

[δpj=opjdpj-opjkδpkωkj] (5)

BP神经网络传播算法为反向传播,需要多次试算才能确定神经网络系统的连接权值和阈值。初始权值和阈值的选取对最终的连接权值和阈值有很大影响,同时对神经网络的收敛速度和精度影响很大。因此本文使用遗传算法对BP神经网络的权值和阈值进行优化处理[12]。

2.2 遗传神经网络

2.2.1 遗传算法

遗传算法是一种由Datwin进化论和Mendel遗传学思想提出的具有强鲁棒性能,强并行处理能力的全局优化搜索算法。遗传算法已经在计算机科学、机械科学、交通运输、物流分配、组合优化等领域得到了广泛的应用。

遗传算法可以表述为:

[GA=O0, N, L, s, g, p, f, t] (6)

式中:[O0]是初始种群,[O0=a10,a20,…,] [aN0∈IN;][I]为[L]的全体二进制串,[I=B1=0,1];[N]为在一个种群中,染色体的个数;[L]为二进制串的长度;[s]为选择策略,[ININ];[g]为遗传算子,[g]包括繁殖算子[Qr:][II,]杂交算子[Qc:][I×II×I]以及变异算子[Qm:][II;][p]为遗传算子概率,[p]包括繁殖概率[pr、]杂交概率[pc]以及变异概率[pm;][f]为适应函数,[f:][IR+;][t]为终止准则[13],[t]:[IN0,1]。

2.2.2 神经网络拓扑结构

通过数据样本对神经网络进行训练学习后,网络对测试数据样本能够做出准确识别的能力称为神经网络的泛化能力。神经网络拓扑结构、训练数据样本的初始处理以及网络中单元连接点的连接权值是影响神经网络泛化能力的重要因素。单隐含层的前馈式神经网络结构的隐含层神经元个数由VC维确定。神经网络泛化能力受到网络结构复杂程度的影响可以由VC维测试。VC维的维度表示为:

[d=MN+NP] (7)

式中:[M]为神经网络输入层神经元个数;[N]为神经网络隐含层神经元个数;[P]为神经网络输出层神经元个数。

神经网络输入层神经元个数[M]和输出层神经元个数[P]为已知量,可以在允许范围内,调整训练样本数量[m]和隐含层神经元个数[N]的值,隐含层神经元个数[N]的取值为:

[N=M+P+a] (8)

式中[a]为一常数,在1~20范围内。

神经网络经过[m]个训练数据样本训练后,网络的泛化误差不大于[e,]其中[e≤Odm?lnmd]。对训练数据样本个数[m]和隐含层神经元个数[N]进行合理选取可以使[e]趋于最低值。因此可以得到最优的神经网络拓扑结构以及最优的训练数据样本个数[m。]

遗传算法的适应度函数表示为:

[f=NSSE] (9)

式中:[SSE]为神经网络输出与实际值的误差平方和[14]。

2.2.3 遗传神经网络算法

通过上述对BP神经网络和遗传算法的分析可以得到启示,由于初始权值和阈值的选取对最终的连接权值和阈值有很大影响,同时对神经网络的收敛速度和精度影响很大。因此使用遗传算法通过遗传和变异手段对BP神经网络的初始权值和阈值进行不断更新换代的优化处理,从而确保BP神经网络系统总误差[SSE]趋于最低值。使用遗传算法对BP神经网络的优化过程如图2所示。

优化过程可以表述为:

(1)生产一个随机的初始解群体[Xt=]。。。[x1t,x2t,…,xNt。]

(2) 对群中个体神经网络使用训练数据样本进行网络训练,然后计算得到个体各自的学习误差,对初始解群体[Xt]中的每个个体[xit]的适应度使用适应函数求解。

(3) 使用杂交概率[pc]以及变异概率[pm]完成交叉、变异操作,从而得到新的解群体[Xt]。

(4) 对新的解群体[Xt]中每个个体进行计算得到各自适应度,由最优保留策略计算出下一代种群[Xt+1]。

(5) 当满足下面这两个条件之一时,所得个体即为所求个体:迭代次数大于限制代数[T];使用解群体里某一个最优解使得个体建立的神经网络的学习输出误差满足要求。若不满足任何条件,跳到步骤(4),继续循环进化过程[15]。

3 P2P流量识别实验分析

3.1 实验数据采集

在实际复杂网络环境下,使用嗅探软件SRSniffer对P2P数据流量进行采集。用于输入向量的流量特征选取为:数据包总数;TCP流量比例;上行流量比例;平均数据包长度;连接数量与IP数量之比。数据包统计时间长度选取为30 s。

选取其中数据量较大,使用频率较高的Bitcomet流量14 320 MB,thunder流量12 650 MB,QQLIVE流量9 380 MB,以及PPStream流量8 640 MB,总计44 990 MB流量。通过数据处理和统计分析,将Bitcomet,thunder,QQLIVE和PPStream这四种应用的流量数据中各提取出300个样本。其中150个样本用于神经网络训练样本,另外150个样本用于对训练后的神经网络进行识别测试,这样共有600个样本用于训练,600个样本用于测试[16]。

3.2 神经网络训练过程

根据P2P流量识别系统的要求,在Matlab数值计算软件中建立BP神经网络模型和遗传神经网络模型。其中神经网络的输入层数由流量特征数量决定,由前文可将输入层数设定为5。输出层数由需要识别的P2P应用类型决定,由前文可将输出层数设定为4,神经元传递函数设定为purelin型。隐含层数根据输入、输出层神经元个数确定,根据经验公式可以确定隐含层神经元个数为18,并且使用tansig()型传递函数。设定神经网络的学习速率为10?2,最大训练次数为2 000次,训练精度为10?5。设定初始群体的大小为18,变异概率为0.25,交叉概率为0.75,终止代数[17]设定为600。

使用训练样本分别对BP神经网络和遗传神经网络进行训练,得到两个系统收敛曲线如图3,图4所示。

通过对比BP神经网络和遗传神经网络训练收敛曲线可以看出,BP神经网络训练达到设定精度需要进行1 700多次训练,而遗传神经网络仅需要1 000次训练,因此遗传神经网络具有较快的收敛速度和收敛精度。

3.3 P2P流量识别结果分析

使用采集处理好的600个测试数据对使用BP神经网络和遗传神经网络的识别模型进行性能测试,其测试结果见表1。

由测试数据可以看出,基于遗传神经网络的识别率平均值为94.9%,比基于BP神经网络的平均识别率高出6.5%,其识别性能明显优于基于BP神经网络的识别系统。

在实验过程中发现,Bitcomet和thunder这两个P2P应用的流量识别准确率比较高。而QQLIVE和PPStream两个P2P应用的流量识别准确率相对较低,而且经常被互相识别,这主要是因为QQLIVE和PPStream两个P2P应用都属于P2P网络流媒体,由于两者协议比较相似,流量特性亦相似,因此经常被互相误识别[18]。

4 结 论

本文对P2P流量识别技术进行了深入研究。P2P技术在网络中已经得到了广泛应用,其流量在网络总流量中占有重要地位,因此对其流量进行实时监测识别具有重要意义。本文对P2P流量识别技术进行了分析,对使用比较广泛的BP神经网络模型进行了深入研究,并针对其缺点,使用遗传算法进行优化,建立基于遗传神经网络的P2P流量识别模型。通过实验采集大量网络训练样本和测试样本,对建立的识别系统进行测试。测试结果表明,基于遗传算法的神经网络的识别速度和识别精度要高于BP神经网络,具有较高的工程应用价值。

参考文献

[1] 谭红春,杨松涛,阚红星.校园网P2P流量综合检测技术研究[J].长沙大学学报,2015(2):70?72.

[2] 刘兴光.一种混合式BT流量实时检测方法[J].网络安全技术与应用,2014(3):53?55.

[3] 汤伟.基于数据流特征向量识别的P2P僵尸网络检测方法研究[D].青岛:中国海洋大学,2014.

[4] 席鹏.基于距离判决算法的P2P流量识别模型研究[D].昆明:云南大学,2013.

[5] 邓力为.基于遗传神经网络的P2P流量检测研究[D].成都:电子科技大学,2013.

[6] 张龙璨.基于粒子群优化半监督学习的网络流量分类方法研究[D].武汉:华中科技大学,2013.

[7] 张瀚.基于DPI技术的P2P流量检测系统设计[D].北京:北京邮电大学,2013.

[8] 马容生.基于自适应神经网络的P2P流量检测研究[J].通信技术,2012(6):113?116.

[9] 张瀚,朱洪亮,辛阳.基于DPI技术的P2P流量检测系统设计[J].信息网络安全,2012(10):36?40.

[10] 张小敏.基于DPI的P2P流量识别方法研究[D].南京:南京邮电大学,2012.

[11] 周雪莲.P2P流量应用层实时检测技术研究[D].长春:吉林大学,2012.

[12] 贺毅朝,宋建民,张敬敏,等.利用遗传算法求解静态与动态背包问题的研究[J].计算机应用研究,2015(4):1011?1015.

[13] 王晓瑜,原思聪,李曼.基于自适应蚁群遗传混合算法的PID参数优化[J].计算机应用研究,2015(5):1376?1378.

[14] 刘奕君,赵强,郝文利.基于遗传算法优化BP神经网络的瓦斯浓度预测研究[J].矿业安全与环保,2015,42(2):56?60.

[15] 吴连平,杨晓翔.基于神经网络与遗传算法的关节轴承挤压模具优化[J].中国机械工程,2015,26(10):1351?1355.

[16] 李麟青,杨哲,朱艳琴.一种混合式BitTorrent流量检测方法[J].计算机应用,2011,31(12):3210?3214.

[17] 刘文超,陈琳,向华.P2P流量检测技术与分析[J].现代电子技术,2011,34(22):39?41.

[18] 高富.基于行为统计特性的P2P流量检测技术的研究[D].北京:北京邮电大学,2011.

上一篇:基于Retinex的视频自适应增强算法 下一篇:计算数据中心的动态数据聚集算法研究