瞿志宇 鄭學(xué)智
(武漢郵電科學(xué)研究院 武漢 430074)
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)游戲作為依賴互聯(lián)網(wǎng)產(chǎn)生的網(wǎng)絡(luò)應(yīng)用,也得到了很好的發(fā)展[1],如今也成為社交的一種重要手段[2]。根據(jù)CNNIC(中國(guó)互聯(lián)網(wǎng)信息中心)第42次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》顯示,截至2018年6月,我國(guó)網(wǎng)絡(luò)游戲用戶規(guī)模達(dá)到4.86億,占總體網(wǎng)民的60.6%,較去年末增長(zhǎng)4391萬(wàn)人。手機(jī)網(wǎng)絡(luò)游戲用戶規(guī)模明顯提升,達(dá)到4.58億,較去年末增長(zhǎng)5123萬(wàn)人,占手機(jī)網(wǎng)民的58.2%。不僅如此,網(wǎng)絡(luò)游戲也得到了社會(huì)更多的認(rèn)可,2019年4月人社部正式確認(rèn)了電子競(jìng)技員正式成為一門職業(yè),同月在國(guó)家統(tǒng)計(jì)局《體育產(chǎn)業(yè)統(tǒng)計(jì)分類(2019)》中,電子競(jìng)技被正式歸為體育競(jìng)技項(xiàng)目。用戶規(guī)模的增大導(dǎo)致對(duì)網(wǎng)絡(luò)游戲服務(wù)質(zhì)量的要求越來(lái)越高[3]。
周銳等[4]利用IP過(guò)濾、數(shù)據(jù)包大小信息熵、下上行包數(shù)目之比和PPS(Packets Per Second)等特征組合有效地提高網(wǎng)絡(luò)游戲數(shù)據(jù)流識(shí)別準(zhǔn)確率。畢夏安等[5]通過(guò)提取出識(shí)別游戲流量的特征數(shù)據(jù)庫(kù),并基于EGT-PC算法提出了一種高效的游戲流量分類方法,該算法在時(shí)間和空間上有很大的改進(jìn)。Han Young-Tae等[6]在傳輸層提出一種基于簡(jiǎn)單決策樹(shù)的ADT算法對(duì)游戲數(shù)據(jù)流進(jìn)行精確分類。Mark Claypool等[7]通過(guò)對(duì)數(shù)據(jù)包大小、IP和比特率等信息對(duì)“瘦”客戶端游戲進(jìn)行研究。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是一種模仿人類神經(jīng)網(wǎng)絡(luò)工作方式而演化出的一種按誤差反向傳播的多層前饋網(wǎng)絡(luò),其結(jié)構(gòu)包括輸入層、隱含層、輸出層三部分。具有較好的自適應(yīng)學(xué)習(xí)能力,能以任意精度逼近非線性函數(shù),在解決非線性問(wèn)題上得到了廣泛的應(yīng)用[8]。但BP神經(jīng)網(wǎng)絡(luò)存在容易陷入局部極小的缺點(diǎn),造成算法的精度和速度降低[9]。
遺傳算法(Genetic Algorithms)是一種模擬自然界遺傳機(jī)制和生物進(jìn)化論而成的一種并行隨機(jī)搜索最優(yōu)化方法[10]。該算法通過(guò)遺傳學(xué)中的選擇、交叉、變異對(duì)個(gè)體進(jìn)行篩選,保留適應(yīng)度好的個(gè)體,淘汰適應(yīng)度差的個(gè)體,不斷反復(fù)循環(huán),直至滿足需求。通過(guò)遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的初始結(jié)構(gòu),能夠很好地解決BP神經(jīng)網(wǎng)絡(luò)易陷入局部極小的缺點(diǎn)[11]。
本文提出利用遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別網(wǎng)絡(luò)游戲流數(shù)據(jù),選取多維度信息作為輸入,并通過(guò)仿真驗(yàn)證方法的有效性。
BP神經(jīng)網(wǎng)絡(luò)是一種多層前饋神經(jīng)網(wǎng)絡(luò),信號(hào)從輸入層到隱含層,再到輸出層得到期望輸出。期望輸出同實(shí)際值做比較,若得不到所期望的值,則誤差反向傳播,調(diào)節(jié)網(wǎng)絡(luò)的權(quán)值和閾值[12]。如此反復(fù)訓(xùn)練,優(yōu)化網(wǎng)絡(luò)參數(shù),使誤差逐漸變小,滿足需求。
圖1為BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖,X1,X2,…,Xn表示輸入數(shù)據(jù),Y1,Y2,…,Ym表示輸出數(shù)據(jù),ωij和ωjk表示網(wǎng)絡(luò)的連接權(quán)值,aj和bk分別表示隱含層閾值和輸出層的閾值。BP神經(jīng)網(wǎng)絡(luò)主要包括訓(xùn)練和識(shí)別兩個(gè)過(guò)程,訓(xùn)練過(guò)程是通過(guò)多組樣本數(shù)據(jù)來(lái)訓(xùn)練網(wǎng)絡(luò),優(yōu)化其參數(shù),使其具有聯(lián)想能力和識(shí)別能力,識(shí)別過(guò)程則是把訓(xùn)練好的網(wǎng)絡(luò)用于對(duì)未知數(shù)據(jù)的識(shí)別。整個(gè)網(wǎng)絡(luò)可以看成一個(gè)非線性系統(tǒng),權(quán)值和閾值相當(dāng)于系統(tǒng)參數(shù),網(wǎng)絡(luò)的訓(xùn)練過(guò)程相當(dāng)于調(diào)節(jié)系統(tǒng)參數(shù)的過(guò)程,當(dāng)有n個(gè)輸入,m個(gè)輸出時(shí),整個(gè)系統(tǒng)相當(dāng)于一個(gè)n輸入m輸出的非線性系統(tǒng)。
圖1 BP神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
遺傳算法是一種模擬自然界優(yōu)勝劣汰規(guī)則的算法,通過(guò)對(duì)種群進(jìn)行選擇、交叉和變異操作,從而獲得種群最優(yōu)個(gè)體的方法[13]。其核心是依照所選的適應(yīng)度函數(shù),通過(guò)遺傳操作,不斷的將適應(yīng)度好的個(gè)體保留,淘汰適應(yīng)度差的個(gè)體,直至得到滿足需求的最優(yōu)個(gè)體。每一代新的群體既繼承上一代的特性,又優(yōu)于上一代,因此經(jīng)過(guò)多代的遺傳淘汰操作之后,能夠得到理想的種群。遺傳算法的遺傳操作主要包括以下三種。
1)選擇操作。依據(jù)個(gè)體的適應(yīng)度值,從舊種群中選擇部分個(gè)體到新種群中,個(gè)體的適應(yīng)度值越好,其被選取的概率越大。以此使優(yōu)秀的個(gè)體得到保留,不斷繁育出更優(yōu)的子代,最終滿足需求。
2)交叉操作。首先從種群中隨機(jī)選取兩個(gè)個(gè)體,然后對(duì)兩個(gè)個(gè)體染色體中的一點(diǎn)或多點(diǎn)進(jìn)行交叉,來(lái)得到新的個(gè)體。
3)變異操作。從種群中隨機(jī)選取一個(gè)個(gè)體,然后對(duì)其染色體中的一點(diǎn)進(jìn)行變異,以期得到更優(yōu)的個(gè)體。
算法流程如圖2所示。遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)算法主要包括三部分:初始化BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、遺傳算法優(yōu)化和BP神經(jīng)網(wǎng)絡(luò)識(shí)別。其中初始化BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包括:確定輸入層、隱含層和輸出層節(jié)點(diǎn)個(gè)數(shù),以及初始化網(wǎng)絡(luò)的權(quán)值和閾值等參數(shù)。遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)是將一個(gè)網(wǎng)絡(luò)中的所有權(quán)值和閾值看作種群中的一個(gè)個(gè)體,然后通過(guò)選擇、交叉和變異的操作得到最優(yōu)的個(gè)體,即最優(yōu)權(quán)值和閾值,并將該組權(quán)值閾值賦給BP神經(jīng)網(wǎng)絡(luò)作為初始的權(quán)值和閾值[14]。最后的BP神經(jīng)網(wǎng)絡(luò)識(shí)別部分,是利用遺傳算法優(yōu)化的初始權(quán)值和閾值來(lái)訓(xùn)練網(wǎng)絡(luò),再利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別。
圖2 遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)算法流程
傳統(tǒng)的網(wǎng)絡(luò)游戲識(shí)別都基于端口號(hào)和包長(zhǎng)分布等一維信息進(jìn)行網(wǎng)絡(luò)游戲識(shí)別[15]。本文提出利用多維度信息作為輸入,進(jìn)行網(wǎng)絡(luò)游戲流識(shí)別。通過(guò)Wireshark進(jìn)行抓包,獲取原始數(shù)據(jù)包,通過(guò)提取這些數(shù)據(jù)包中的有用信息作為識(shí)別模型的輸入。提取的信息包括:五元組信息(源ip,目的ip,源端口,目的端口,協(xié)議類型),以及報(bào)文長(zhǎng)度,利用網(wǎng)絡(luò)游戲數(shù)據(jù)報(bào)文中的多維信息來(lái)進(jìn)行識(shí)別,提取五元組和報(bào)文長(zhǎng)度這六種維度信息作為輸入的原因如下。
1)五元組信息。五元組在傳輸過(guò)程中能區(qū)別不同的會(huì)話,且對(duì)應(yīng)的會(huì)話是唯一的,可以實(shí)現(xiàn)區(qū)分不同的應(yīng)用;
2)ip信息。ip在網(wǎng)絡(luò)傳輸中的用于實(shí)現(xiàn)主機(jī)之間的通信,提供不同網(wǎng)絡(luò)應(yīng)用的互聯(lián)網(wǎng)公司擁有ip不同,因此提供網(wǎng)絡(luò)游戲服務(wù)的公司ip是有別于提供其他網(wǎng)絡(luò)服務(wù)公司的ip,可通過(guò)ip做簡(jiǎn)單區(qū)分;
3)端口號(hào)。利用端口號(hào)識(shí)別網(wǎng)絡(luò)游戲是一種很重要的識(shí)別方法,早期擁有著較高準(zhǔn)確性[16]。雖然隨著新興網(wǎng)絡(luò)應(yīng)用的大量出現(xiàn),使用了大量的隨機(jī)端口,導(dǎo)致其效率和識(shí)別效果變差,但端口號(hào)仍然能為識(shí)別網(wǎng)絡(luò)游戲提供重要信息;
4)協(xié)議類型。網(wǎng)絡(luò)游戲數(shù)據(jù)流在傳輸過(guò)程中采用的主要傳輸協(xié)議為TCP協(xié)議,部分采用UDP協(xié)議,或者兩種協(xié)議混合使用,以TCP協(xié)議為主,UDP協(xié)議為輔;
5)報(bào)文長(zhǎng)度。網(wǎng)絡(luò)游戲的包長(zhǎng)一般小于1000字節(jié)的小包,包長(zhǎng)分布非常整齊且大多數(shù)是40字節(jié)~159字節(jié)的小包,其特征有別于其他網(wǎng)絡(luò)應(yīng)用。
綜上所述,選取的六種維度輸入信息,其包含的信息,能夠很有效地區(qū)分不同的網(wǎng)絡(luò)應(yīng)用,因此所選取的信息作為輸入建立的識(shí)別模型,能夠很有效地區(qū)分網(wǎng)絡(luò)游戲數(shù)據(jù)流和其他數(shù)據(jù)流。
對(duì)于輸入信息,按表1所示進(jìn)行量化處理。為避免ip過(guò)大,導(dǎo)致對(duì)原始數(shù)據(jù)處理復(fù)雜和算法計(jì)算量過(guò)大,在不影響結(jié)果的情況下,選擇ip的后兩字節(jié)作為輸入。協(xié)議類型為TCP的標(biāo)記為1,UDP的標(biāo)記為2。端口號(hào)和報(bào)文長(zhǎng)度則直接用獲取到的數(shù)據(jù),不做處理。
表1 輸入數(shù)據(jù)量化處理
本實(shí)驗(yàn)選取的數(shù)據(jù)樣本包括8款手機(jī)網(wǎng)絡(luò)游戲的1600組數(shù)據(jù),以及占用網(wǎng)絡(luò)帶寬較大的下載、視頻、網(wǎng)絡(luò)直播業(yè)務(wù)的1600組數(shù)據(jù)。將游戲的報(bào)文歸為第一類,其他業(yè)務(wù)的報(bào)文歸為第二類。實(shí)驗(yàn)的總體數(shù)據(jù)樣本為3200組,每次試驗(yàn)中隨機(jī)選取2400組數(shù)據(jù)作為訓(xùn)練樣本,用以訓(xùn)練識(shí)別模型,800組數(shù)據(jù)作為測(cè)試數(shù)據(jù),用來(lái)驗(yàn)證識(shí)別模型的性能。
如圖3所示,為網(wǎng)絡(luò)游戲數(shù)據(jù)流識(shí)別模型,整體識(shí)別分以下幾步。
圖3 網(wǎng)絡(luò)游戲識(shí)別模型
1)首先從數(shù)據(jù)流中的報(bào)文獲取所需的六維信息,源ip,目的ip,協(xié)議類型,源端口號(hào),目的端口號(hào)以及報(bào)文長(zhǎng)度;
2)對(duì)獲取的六維信息分別進(jìn)行量化處理,使其滿足識(shí)別模型的輸入格式,并將量化后的數(shù)據(jù)作為輸入傳入識(shí)別模型;
3)利用識(shí)別模型,即遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)數(shù)據(jù)流進(jìn)行識(shí)別,將結(jié)果分為網(wǎng)絡(luò)游戲數(shù)據(jù)流和其他應(yīng)用數(shù)據(jù)流兩類。
BP神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點(diǎn)數(shù)對(duì)BP神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)精度有較大的影響:節(jié)點(diǎn)數(shù)太少,網(wǎng)絡(luò)不能很好地學(xué)習(xí),需要增加訓(xùn)練次數(shù),訓(xùn)練的精度也受影響;節(jié)點(diǎn)數(shù)太多,訓(xùn)練時(shí)間增加,網(wǎng)絡(luò)容易過(guò)擬合。通常節(jié)點(diǎn)個(gè)數(shù)的選取可以參考如下公式:
式(1)中,n為輸入層節(jié)點(diǎn)個(gè)數(shù),m為輸出層節(jié)點(diǎn)個(gè)數(shù),x為隱含層節(jié)點(diǎn)個(gè)數(shù),a為0~10之間的常數(shù)。本實(shí)驗(yàn)中n的取值為6,m的取值為2,節(jié)點(diǎn)個(gè)數(shù)x的取值為5。遺傳算法中,進(jìn)化代數(shù)選擇為20(即迭代20次),種群規(guī)模為10,交叉概率為0.2,變異概率為0.1。
實(shí)驗(yàn)中,為避免受隨機(jī)參數(shù)和訓(xùn)練數(shù)據(jù)選取偶然性的影響,本實(shí)驗(yàn)共進(jìn)行10次,對(duì)10次結(jié)果進(jìn)行比較分析。將游戲的數(shù)據(jù)流作為第一類,將其在神經(jīng)網(wǎng)絡(luò)識(shí)別模型的輸出層定義為1,其他類型的數(shù)據(jù)流作為第二類,將其在神經(jīng)網(wǎng)絡(luò)識(shí)別模型的輸出層定義為2。因此將輸出層預(yù)測(cè)結(jié)果在0.5~1.5之間的歸為第一類,1.5~2.5之間的歸為第二類。
式(2)中,pvalue表示通過(guò)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)模型得到的預(yù)測(cè)值,output表示樣本的真實(shí)值,error是誤差值,當(dāng)error介于-0.5~0.5之間時(shí),認(rèn)為本組數(shù)據(jù)的測(cè)試結(jié)果是正確的。
式(3)中,total為總的測(cè)試數(shù)據(jù)數(shù)800,num表示實(shí)驗(yàn)中正確判斷的個(gè)數(shù),correct表示實(shí)驗(yàn)的正確率。
圖4中,分別利用BP神經(jīng)網(wǎng)絡(luò)和GEN-BP神經(jīng)網(wǎng)絡(luò)(遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò))進(jìn)行10次實(shí)驗(yàn),并對(duì)兩者的結(jié)果做線性擬合。從圖中可以看出,GEN-BP神經(jīng)網(wǎng)絡(luò)的擬合線明顯高于BP神經(jīng)網(wǎng)絡(luò)的擬合線,說(shuō)明GEN-BP神經(jīng)網(wǎng)絡(luò)識(shí)別的正確率更好,優(yōu)于BP神經(jīng)網(wǎng)絡(luò)。結(jié)合表2中可以看出,GEN-BP神經(jīng)網(wǎng)絡(luò)的平均正確率高于BP神經(jīng)網(wǎng)絡(luò)約0.7%。BP神經(jīng)網(wǎng)絡(luò)正確率的范圍在95.00%~98.25%之間,GEN-BP神經(jīng)網(wǎng)絡(luò)的正確率96.13%~98.75%,GEN-BP神經(jīng)網(wǎng)絡(luò)的最低正確率和最高正確率均高于BP神經(jīng)網(wǎng)絡(luò),同時(shí)GEN-BP神經(jīng)網(wǎng)絡(luò)正確率的波動(dòng)范圍在2.62%之間,BP神經(jīng)網(wǎng)絡(luò)正確率的波動(dòng)范圍在3.25%,GEN-BP神經(jīng)網(wǎng)絡(luò)相比BP神經(jīng)網(wǎng)絡(luò)擁有更高的精度,同時(shí)波動(dòng)范圍更小,識(shí)別更準(zhǔn)確,穩(wěn)定性更好。因此,GEN-BP神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)游戲數(shù)據(jù)流識(shí)別中比BP神經(jīng)網(wǎng)絡(luò)擁有更優(yōu)秀的性能。
表2 BP網(wǎng)絡(luò)和GEN-BP網(wǎng)絡(luò)正確率對(duì)比
圖4 BP網(wǎng)絡(luò)和GEN-BP網(wǎng)絡(luò)正確率擬合線
圖5為遺傳算法個(gè)體適應(yīng)度隨進(jìn)化代數(shù)變化曲線,個(gè)體適應(yīng)度值為訓(xùn)練數(shù)據(jù)的絕對(duì)誤差,因此個(gè)體適應(yīng)度越低個(gè)體越優(yōu)。遺傳算法通過(guò)不斷的迭代,個(gè)體適應(yīng)度隨進(jìn)化次數(shù)增加不斷減小,性能越來(lái)越優(yōu),當(dāng)進(jìn)化次數(shù)到達(dá)16次后,適應(yīng)度值趨于穩(wěn)定且適應(yīng)度值最小,網(wǎng)絡(luò)性能最好。
圖5 最優(yōu)個(gè)體適應(yīng)度值
表3中,BP時(shí)間表示BP神經(jīng)網(wǎng)絡(luò)中網(wǎng)絡(luò)訓(xùn)練和對(duì)測(cè)試樣本進(jìn)行識(shí)別的總時(shí)間;GEN-BP時(shí)間表示將遺傳算法求得的最優(yōu)權(quán)值閾值賦予給BP神經(jīng)網(wǎng)絡(luò)后,BP神經(jīng)網(wǎng)絡(luò)中網(wǎng)絡(luò)訓(xùn)練和對(duì)測(cè)試樣本進(jìn)行識(shí)別的總時(shí)間;GENETIC時(shí)間表示遺傳算法迭代求取BP神經(jīng)網(wǎng)絡(luò)最優(yōu)權(quán)值閾值的時(shí)間。從圖表結(jié)果中可以看出BP神經(jīng)網(wǎng)絡(luò)的平均識(shí)別時(shí)間明顯高于GEN-BP神經(jīng)網(wǎng)絡(luò)的識(shí)別時(shí)間,高出約27.85%,且識(shí)別時(shí)間的方差也高于GEN-BP神經(jīng)網(wǎng)絡(luò),說(shuō)明遺傳算法優(yōu)化過(guò)的BP神經(jīng)網(wǎng)絡(luò),收斂速度更快,具有更優(yōu)的收斂性,同時(shí)波動(dòng)小擁有更好的穩(wěn)定性,其神經(jīng)網(wǎng)絡(luò)性能更優(yōu)。但GEN-BP神經(jīng)網(wǎng)絡(luò)中遺傳算法在迭代求取最優(yōu)適應(yīng)度時(shí),消耗太多時(shí)間,導(dǎo)致整個(gè)網(wǎng)絡(luò)的執(zhí)行過(guò)長(zhǎng),實(shí)時(shí)性存在不足,需要改進(jìn)。
表3 BP神經(jīng)網(wǎng)絡(luò)和GEN-BP神經(jīng)網(wǎng)絡(luò)識(shí)別時(shí)間對(duì)比
圖7為遺傳算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的多維和一維信息十次實(shí)驗(yàn)結(jié)果的正確率擬合線對(duì)比圖,其中一維信息為源端口號(hào)和報(bào)文長(zhǎng)度兩種,并將神經(jīng)網(wǎng)絡(luò)中的輸入?yún)?shù)設(shè)為1,隱含層節(jié)點(diǎn)個(gè)數(shù)設(shè)為3。從圖中可以看出,多維正確率擬合要遠(yuǎn)高于兩種一維正確率擬合線很多,說(shuō)明本文提出的六維輸入信息相對(duì)于傳統(tǒng)的一維信息,其識(shí)別正確率要更高,識(shí)別性能更優(yōu)。
圖6 BP神經(jīng)網(wǎng)絡(luò)和GEN-BP神經(jīng)網(wǎng)絡(luò)識(shí)別時(shí)間
圖7 多維和一維正確率擬合線
針對(duì)網(wǎng)絡(luò)游戲數(shù)據(jù)流識(shí)別問(wèn)題,本文提出利用遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)進(jìn)行識(shí)別,相對(duì)于傳統(tǒng)的一維輸入信息識(shí)別,提出利用多維輸入信息進(jìn)行識(shí)別。通過(guò)仿真分析,將BP神經(jīng)網(wǎng)絡(luò)和GEN-BP神經(jīng)網(wǎng)絡(luò)的識(shí)別結(jié)果進(jìn)行對(duì)比,說(shuō)明GEN-BP神經(jīng)網(wǎng)絡(luò)相比BP神經(jīng)網(wǎng)絡(luò)不僅正確率更高,而且波動(dòng)更小,穩(wěn)定性更好,性能更優(yōu)。同時(shí)多維信息的識(shí)別率遠(yuǎn)高于一維信息的識(shí)別率。說(shuō)明本文選取的多維信息,利用遺傳算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)能夠很好地識(shí)別網(wǎng)絡(luò)游戲流。