时间:2024-05-04
瞿志宇 郑学智
(武汉邮电科学研究院 武汉 430074)
随着互联网技术的飞速发展,网络游戏作为依赖互联网产生的网络应用,也得到了很好的发展[1],如今也成为社交的一种重要手段[2]。根据CNNIC(中国互联网信息中心)第42次《中国互联网络发展状况统计报告》显示,截至2018年6月,我国网络游戏用户规模达到4.86亿,占总体网民的60.6%,较去年末增长4391万人。手机网络游戏用户规模明显提升,达到4.58亿,较去年末增长5123万人,占手机网民的58.2%。不仅如此,网络游戏也得到了社会更多的认可,2019年4月人社部正式确认了电子竞技员正式成为一门职业,同月在国家统计局《体育产业统计分类(2019)》中,电子竞技被正式归为体育竞技项目。用户规模的增大导致对网络游戏服务质量的要求越来越高[3]。
周锐等[4]利用IP过滤、数据包大小信息熵、下上行包数目之比和PPS(Packets Per Second)等特征组合有效地提高网络游戏数据流识别准确率。毕夏安等[5]通过提取出识别游戏流量的特征数据库,并基于EGT-PC算法提出了一种高效的游戏流量分类方法,该算法在时间和空间上有很大的改进。Han Young-Tae等[6]在传输层提出一种基于简单决策树的ADT算法对游戏数据流进行精确分类。Mark Claypool等[7]通过对数据包大小、IP和比特率等信息对“瘦”客户端游戏进行研究。
BP(Back Propagation)神经网络是一种模仿人类神经网络工作方式而演化出的一种按误差反向传播的多层前馈网络,其结构包括输入层、隐含层、输出层三部分。具有较好的自适应学习能力,能以任意精度逼近非线性函数,在解决非线性问题上得到了广泛的应用[8]。但BP神经网络存在容易陷入局部极小的缺点,造成算法的精度和速度降低[9]。
遗传算法(Genetic Algorithms)是一种模拟自然界遗传机制和生物进化论而成的一种并行随机搜索最优化方法[10]。该算法通过遗传学中的选择、交叉、变异对个体进行筛选,保留适应度好的个体,淘汰适应度差的个体,不断反复循环,直至满足需求。通过遗传算法优化BP神经网络的初始结构,能够很好地解决BP神经网络易陷入局部极小的缺点[11]。
本文提出利用遗传算法优化的BP神经网络来识别网络游戏流数据,选取多维度信息作为输入,并通过仿真验证方法的有效性。
BP神经网络是一种多层前馈神经网络,信号从输入层到隐含层,再到输出层得到期望输出。期望输出同实际值做比较,若得不到所期望的值,则误差反向传播,调节网络的权值和阈值[12]。如此反复训练,优化网络参数,使误差逐渐变小,满足需求。
图1为BP神经网络拓扑结构图,X1,X2,…,Xn表示输入数据,Y1,Y2,…,Ym表示输出数据,ωij和ωjk表示网络的连接权值,aj和bk分别表示隐含层阈值和输出层的阈值。BP神经网络主要包括训练和识别两个过程,训练过程是通过多组样本数据来训练网络,优化其参数,使其具有联想能力和识别能力,识别过程则是把训练好的网络用于对未知数据的识别。整个网络可以看成一个非线性系统,权值和阈值相当于系统参数,网络的训练过程相当于调节系统参数的过程,当有n个输入,m个输出时,整个系统相当于一个n输入m输出的非线性系统。
图1 BP神经网络拓扑结构图
遗传算法是一种模拟自然界优胜劣汰规则的算法,通过对种群进行选择、交叉和变异操作,从而获得种群最优个体的方法[13]。其核心是依照所选的适应度函数,通过遗传操作,不断的将适应度好的个体保留,淘汰适应度差的个体,直至得到满足需求的最优个体。每一代新的群体既继承上一代的特性,又优于上一代,因此经过多代的遗传淘汰操作之后,能够得到理想的种群。遗传算法的遗传操作主要包括以下三种。
1)选择操作。依据个体的适应度值,从旧种群中选择部分个体到新种群中,个体的适应度值越好,其被选取的概率越大。以此使优秀的个体得到保留,不断繁育出更优的子代,最终满足需求。
2)交叉操作。首先从种群中随机选取两个个体,然后对两个个体染色体中的一点或多点进行交叉,来得到新的个体。
3)变异操作。从种群中随机选取一个个体,然后对其染色体中的一点进行变异,以期得到更优的个体。
算法流程如图2所示。遗传算法优化BP神经网络算法主要包括三部分:初始化BP神经网络结构、遗传算法优化和BP神经网络识别。其中初始化BP神经网络结构包括:确定输入层、隐含层和输出层节点个数,以及初始化网络的权值和阈值等参数。遗传算法优化BP神经网络是将一个网络中的所有权值和阈值看作种群中的一个个体,然后通过选择、交叉和变异的操作得到最优的个体,即最优权值和阈值,并将该组权值阈值赋给BP神经网络作为初始的权值和阈值[14]。最后的BP神经网络识别部分,是利用遗传算法优化的初始权值和阈值来训练网络,再利用训练好的神经网络进行识别。
图2 遗传算法优化的BP神经网络算法流程
传统的网络游戏识别都基于端口号和包长分布等一维信息进行网络游戏识别[15]。本文提出利用多维度信息作为输入,进行网络游戏流识别。通过Wireshark进行抓包,获取原始数据包,通过提取这些数据包中的有用信息作为识别模型的输入。提取的信息包括:五元组信息(源ip,目的ip,源端口,目的端口,协议类型),以及报文长度,利用网络游戏数据报文中的多维信息来进行识别,提取五元组和报文长度这六种维度信息作为输入的原因如下。
1)五元组信息。五元组在传输过程中能区别不同的会话,且对应的会话是唯一的,可以实现区分不同的应用;
2)ip信息。ip在网络传输中的用于实现主机之间的通信,提供不同网络应用的互联网公司拥有ip不同,因此提供网络游戏服务的公司ip是有别于提供其他网络服务公司的ip,可通过ip做简单区分;
3)端口号。利用端口号识别网络游戏是一种很重要的识别方法,早期拥有着较高准确性[16]。虽然随着新兴网络应用的大量出现,使用了大量的随机端口,导致其效率和识别效果变差,但端口号仍然能为识别网络游戏提供重要信息;
4)协议类型。网络游戏数据流在传输过程中采用的主要传输协议为TCP协议,部分采用UDP协议,或者两种协议混合使用,以TCP协议为主,UDP协议为辅;
5)报文长度。网络游戏的包长一般小于1000字节的小包,包长分布非常整齐且大多数是40字节~159字节的小包,其特征有别于其他网络应用。
综上所述,选取的六种维度输入信息,其包含的信息,能够很有效地区分不同的网络应用,因此所选取的信息作为输入建立的识别模型,能够很有效地区分网络游戏数据流和其他数据流。
对于输入信息,按表1所示进行量化处理。为避免ip过大,导致对原始数据处理复杂和算法计算量过大,在不影响结果的情况下,选择ip的后两字节作为输入。协议类型为TCP的标记为1,UDP的标记为2。端口号和报文长度则直接用获取到的数据,不做处理。
表1 输入数据量化处理
本实验选取的数据样本包括8款手机网络游戏的1600组数据,以及占用网络带宽较大的下载、视频、网络直播业务的1600组数据。将游戏的报文归为第一类,其他业务的报文归为第二类。实验的总体数据样本为3200组,每次试验中随机选取2400组数据作为训练样本,用以训练识别模型,800组数据作为测试数据,用来验证识别模型的性能。
如图3所示,为网络游戏数据流识别模型,整体识别分以下几步。
图3 网络游戏识别模型
1)首先从数据流中的报文获取所需的六维信息,源ip,目的ip,协议类型,源端口号,目的端口号以及报文长度;
2)对获取的六维信息分别进行量化处理,使其满足识别模型的输入格式,并将量化后的数据作为输入传入识别模型;
3)利用识别模型,即遗传算法优化的BP神经网络来对数据流进行识别,将结果分为网络游戏数据流和其他应用数据流两类。
BP神经网络的隐含层节点数对BP神经网络预测精度有较大的影响:节点数太少,网络不能很好地学习,需要增加训练次数,训练的精度也受影响;节点数太多,训练时间增加,网络容易过拟合。通常节点个数的选取可以参考如下公式:
式(1)中,n为输入层节点个数,m为输出层节点个数,x为隐含层节点个数,a为0~10之间的常数。本实验中n的取值为6,m的取值为2,节点个数x的取值为5。遗传算法中,进化代数选择为20(即迭代20次),种群规模为10,交叉概率为0.2,变异概率为0.1。
实验中,为避免受随机参数和训练数据选取偶然性的影响,本实验共进行10次,对10次结果进行比较分析。将游戏的数据流作为第一类,将其在神经网络识别模型的输出层定义为1,其他类型的数据流作为第二类,将其在神经网络识别模型的输出层定义为2。因此将输出层预测结果在0.5~1.5之间的归为第一类,1.5~2.5之间的归为第二类。
式(2)中,pvalue表示通过神经网络预测模型得到的预测值,output表示样本的真实值,error是误差值,当error介于-0.5~0.5之间时,认为本组数据的测试结果是正确的。
式(3)中,total为总的测试数据数800,num表示实验中正确判断的个数,correct表示实验的正确率。
图4中,分别利用BP神经网络和GEN-BP神经网络(遗传算法优化的BP神经网络)进行10次实验,并对两者的结果做线性拟合。从图中可以看出,GEN-BP神经网络的拟合线明显高于BP神经网络的拟合线,说明GEN-BP神经网络识别的正确率更好,优于BP神经网络。结合表2中可以看出,GEN-BP神经网络的平均正确率高于BP神经网络约0.7%。BP神经网络正确率的范围在95.00%~98.25%之间,GEN-BP神经网络的正确率96.13%~98.75%,GEN-BP神经网络的最低正确率和最高正确率均高于BP神经网络,同时GEN-BP神经网络正确率的波动范围在2.62%之间,BP神经网络正确率的波动范围在3.25%,GEN-BP神经网络相比BP神经网络拥有更高的精度,同时波动范围更小,识别更准确,稳定性更好。因此,GEN-BP神经网络在网络游戏数据流识别中比BP神经网络拥有更优秀的性能。
表2 BP网络和GEN-BP网络正确率对比
图4 BP网络和GEN-BP网络正确率拟合线
图5为遗传算法个体适应度随进化代数变化曲线,个体适应度值为训练数据的绝对误差,因此个体适应度越低个体越优。遗传算法通过不断的迭代,个体适应度随进化次数增加不断减小,性能越来越优,当进化次数到达16次后,适应度值趋于稳定且适应度值最小,网络性能最好。
图5 最优个体适应度值
表3中,BP时间表示BP神经网络中网络训练和对测试样本进行识别的总时间;GEN-BP时间表示将遗传算法求得的最优权值阈值赋予给BP神经网络后,BP神经网络中网络训练和对测试样本进行识别的总时间;GENETIC时间表示遗传算法迭代求取BP神经网络最优权值阈值的时间。从图表结果中可以看出BP神经网络的平均识别时间明显高于GEN-BP神经网络的识别时间,高出约27.85%,且识别时间的方差也高于GEN-BP神经网络,说明遗传算法优化过的BP神经网络,收敛速度更快,具有更优的收敛性,同时波动小拥有更好的稳定性,其神经网络性能更优。但GEN-BP神经网络中遗传算法在迭代求取最优适应度时,消耗太多时间,导致整个网络的执行过长,实时性存在不足,需要改进。
表3 BP神经网络和GEN-BP神经网络识别时间对比
图7为遗传算法优化BP神经网络的多维和一维信息十次实验结果的正确率拟合线对比图,其中一维信息为源端口号和报文长度两种,并将神经网络中的输入参数设为1,隐含层节点个数设为3。从图中可以看出,多维正确率拟合要远高于两种一维正确率拟合线很多,说明本文提出的六维输入信息相对于传统的一维信息,其识别正确率要更高,识别性能更优。
图6 BP神经网络和GEN-BP神经网络识别时间
图7 多维和一维正确率拟合线
针对网络游戏数据流识别问题,本文提出利用遗传算法优化的BP神经网络进行识别,相对于传统的一维输入信息识别,提出利用多维输入信息进行识别。通过仿真分析,将BP神经网络和GEN-BP神经网络的识别结果进行对比,说明GEN-BP神经网络相比BP神经网络不仅正确率更高,而且波动更小,稳定性更好,性能更优。同时多维信息的识别率远高于一维信息的识别率。说明本文选取的多维信息,利用遗传算法优化的BP神经网络能够很好地识别网络游戏流。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!