徐星晨, 張 俊,2, 年 梅
1(新疆師范大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院, 烏魯木齊 830054)
2(中國(guó)科學(xué)院 新疆理化技術(shù)研究所, 烏魯木齊 830011)
網(wǎng)絡(luò)流量應(yīng)用識(shí)別是指對(duì)網(wǎng)絡(luò)中的混合流量按照應(yīng)用協(xié)議進(jìn)行識(shí)別. 網(wǎng)絡(luò)流量應(yīng)用識(shí)別既是高性能網(wǎng)絡(luò)協(xié)議設(shè)計(jì)的基礎(chǔ), 又是網(wǎng)絡(luò)運(yùn)營(yíng)管理、網(wǎng)絡(luò)發(fā)展規(guī)劃的依據(jù), 也是網(wǎng)絡(luò)攻擊與惡意代碼檢測(cè)的重要手段[1].當(dāng)前高校部分學(xué)生沉迷于網(wǎng)絡(luò)游戲, 玩游戲既占用了校園網(wǎng)資源也影響了學(xué)生的學(xué)習(xí), 校園網(wǎng)資源的精細(xì)化管理需要掌握校園網(wǎng)游戲使用狀況以及占用的網(wǎng)絡(luò)資源比率, 由此進(jìn)行網(wǎng)絡(luò)資源調(diào)控. 為此, 需要對(duì)校園網(wǎng)流量中的游戲進(jìn)行識(shí)別, 準(zhǔn)確獲取其占用的帶寬狀況、學(xué)生花費(fèi)的時(shí)間等, 然后針對(duì)性地對(duì)校園網(wǎng)資源進(jìn)行配置, 對(duì)玩游戲的學(xué)生進(jìn)行預(yù)警.
近年來(lái), 流量分類的研究經(jīng)過(guò)不斷地發(fā)展, 從最初基于端口、基于特征匹配、基于主機(jī)行為的流量分類方法發(fā)展到基于機(jī)器學(xué)習(xí)技術(shù)的流量分類方法.
隨著流媒體、P2P 等網(wǎng)絡(luò)通信協(xié)議的發(fā)展, 動(dòng)態(tài)協(xié)商端口與端口偽裝技術(shù)的應(yīng)用, 基于端口的識(shí)別方法已逐漸失效. 為保護(hù)網(wǎng)絡(luò)通信的安全, 很多網(wǎng)絡(luò)應(yīng)用釆用加密協(xié)議或協(xié)議格式未公開(kāi)的私有協(xié)議進(jìn)行數(shù)據(jù)通, 從而導(dǎo)致基于特征匹配方法的識(shí)別精度日益下滑.基于主機(jī)行為的方法并不能很好的識(shí)別未知協(xié)議與加密協(xié)議的網(wǎng)絡(luò)流量的應(yīng)用類型.
隨著網(wǎng)絡(luò)應(yīng)用種類越來(lái)越多, 基于機(jī)器學(xué)習(xí)技術(shù)的流量分類方法逐漸成為主流. 機(jī)器學(xué)習(xí)的流量識(shí)別模型訓(xùn)練依賴標(biāo)注數(shù)據(jù)集, 目前網(wǎng)絡(luò)流量分類重點(diǎn)是視頻流量、P2P流量、異常流量、加密流量的識(shí)別,而網(wǎng)絡(luò)游戲流量的識(shí)別并沒(méi)有引起傳統(tǒng)學(xué)術(shù)界和產(chǎn)業(yè)界的關(guān)注, 研究成果非常少, 并且缺少公開(kāi)網(wǎng)絡(luò)游戲流量標(biāo)準(zhǔn)數(shù)據(jù)集.
目前存在的問(wèn)題是標(biāo)注數(shù)據(jù)集的缺乏與游戲流量研究在教育領(lǐng)域的重要性與實(shí)際研究領(lǐng)域?qū)τ螒蛄髁坎恢匾曀a(chǎn)生的矛盾, 對(duì)于多種類細(xì)粒度的游戲流量數(shù)據(jù)集構(gòu)建以及識(shí)別研究存在著新的挑戰(zhàn). 針對(duì)游戲流量數(shù)據(jù)集的標(biāo)記構(gòu)建存在的難題, 本文首次提出采用基于端口映射關(guān)系的游戲流量數(shù)據(jù)集標(biāo)注方法, 對(duì)公開(kāi)數(shù)據(jù)集進(jìn)行擴(kuò)充, 并以NPY的文件形式進(jìn)行存儲(chǔ)以減少數(shù)據(jù)集內(nèi)存占用、提高模型的讀取效率. 其次將擴(kuò)充后的數(shù)據(jù)集應(yīng)用到Wang等人[2]提出的一種端到端的流量識(shí)別模型中, 采用Keras模塊對(duì)其代碼進(jìn)行重構(gòu), 并對(duì)一維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行參數(shù)調(diào)優(yōu), 通過(guò)卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造特征空間, 自主提取特征, 最后通過(guò)實(shí)驗(yàn)對(duì)比本文擴(kuò)充后的數(shù)據(jù)集與原公開(kāi)數(shù)據(jù)集在同一模型結(jié)構(gòu)下的識(shí)別效果, 以評(píng)估基于端口策略的游戲流量樣本擴(kuò)充方法的可行性與效果.
流量識(shí)別的應(yīng)用多采用基于規(guī)則的識(shí)別方法, 該方法相對(duì)成熟, 主流研究者主要研究如何準(zhǔn)確地提取匹配規(guī)則. 而基于機(jī)器學(xué)習(xí)的流量識(shí)別方法是目前學(xué)術(shù)界研究較多的內(nèi)容, 主要研究如何選擇更好的特征集來(lái)對(duì)識(shí)別效果進(jìn)行優(yōu)化改進(jìn).
目前, 研究人員逐漸關(guān)注深度學(xué)習(xí)方法在流量識(shí)別領(lǐng)域的應(yīng)用, 基于表征學(xué)習(xí)的流量分類方法的研究也在流量識(shí)別領(lǐng)域初露頭角. 深度學(xué)習(xí)通過(guò)訓(xùn)練多個(gè)單層特征圖構(gòu)建非線性網(wǎng)絡(luò), 根據(jù)訓(xùn)練出來(lái)卷積核的權(quán)重參數(shù)組構(gòu)成底層特征的抽象表示, 從而發(fā)現(xiàn)數(shù)據(jù)的本質(zhì)特征以達(dá)到識(shí)別的作用. 王勇等人[3]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的流量分類算法, 分別采用公開(kāi)數(shù)據(jù)集和私有數(shù)據(jù)集進(jìn)行測(cè)試, 通過(guò)學(xué)習(xí)空間特征避免了傳統(tǒng)分類方法中的特征的人工篩選, 提高了流量分類的精確率, 減少了分類使用的時(shí)間, 但該方法并未涉及對(duì)加密流量的分類識(shí)別. Gao等人[4]提出了一種使用深度信念網(wǎng)絡(luò)DBN的惡意流量分類方法, Javaid等人[5]提出了一種使用稀疏自編碼器SAE的惡意流量分類方法. 但是他們放棄了深度學(xué)習(xí)能夠從原始數(shù)據(jù)中直接學(xué)習(xí)特征的優(yōu)點(diǎn), 而是對(duì)處理后的流特征數(shù)據(jù)集進(jìn)行了學(xué)習(xí), 表征學(xué)習(xí)的方法在圖像、語(yǔ)音領(lǐng)域的識(shí)別效果都充分說(shuō)明了該方法的優(yōu)越性. 對(duì)此Wang等人[2]提出了一種基于端到端的加密流量識(shí)別方法, 取得了很好的效果, 而流量分類與協(xié)議識(shí)別在任務(wù)內(nèi)容上是很相近的. 基于此, 文獻(xiàn)[6]提出采用Deep Packet框架對(duì)流量進(jìn)行識(shí)別, 通過(guò)嵌入堆疊的自動(dòng)編碼器和卷積神經(jīng)網(wǎng)絡(luò), 將網(wǎng)絡(luò)流量分為主要類別(例如FTP和P2P)和應(yīng)用程序標(biāo)識(shí), 在ISCX VPN-nonVPN數(shù)據(jù)集上的性能較好, 但對(duì)于數(shù)據(jù)的預(yù)處理和模型參數(shù)的選擇等方面論述得不夠清晰.
綜上所述, 本文提出一種基于端口映射的流量標(biāo)注方法對(duì)公開(kāi)流量數(shù)據(jù)集進(jìn)行擴(kuò)充, 在擴(kuò)充游戲流量數(shù)據(jù)集的基礎(chǔ)上提出基于表征學(xué)習(xí)方法對(duì)網(wǎng)絡(luò)游戲流量進(jìn)行識(shí)別, 并采用CNN模型, 直接在原始流量數(shù)據(jù)上嘗試進(jìn)行流量分類, 通過(guò)對(duì)比同一模型在數(shù)據(jù)集擴(kuò)充前后的分類效果驗(yàn)證數(shù)據(jù)集擴(kuò)充的合理性, 驗(yàn)證了標(biāo)注的準(zhǔn)確性和數(shù)據(jù)集擴(kuò)充的可行性, 論證了表征學(xué)習(xí)方法在游戲流量識(shí)別方面的可行性.
鑒于機(jī)器學(xué)習(xí)的流量識(shí)別性能依賴于數(shù)據(jù)集的標(biāo)注, 公開(kāi)數(shù)據(jù)集中缺乏游戲流量數(shù)據(jù), 本文提出了基于端口映射的游戲流量數(shù)據(jù)集標(biāo)注方法.
研究發(fā)現(xiàn), 網(wǎng)絡(luò)游戲流量數(shù)據(jù)依賴于應(yīng)用層的進(jìn)程端口號(hào)進(jìn)行數(shù)據(jù)接收與發(fā)送, 但是游戲傳輸中端口號(hào)存在動(dòng)態(tài)性、隨機(jī)性, 難以人工識(shí)別, 無(wú)法給出游戲流量的準(zhǔn)確高效的標(biāo)注, 導(dǎo)致公開(kāi)數(shù)據(jù)集中缺乏游戲流量樣本. 鑒于此, 本文提出俘獲網(wǎng)絡(luò)游戲流量的同時(shí)監(jiān)控對(duì)應(yīng)網(wǎng)絡(luò)游戲的端口使用情況, 記錄每個(gè)時(shí)段下的游戲進(jìn)程端口的使用數(shù)據(jù), 形成俘獲日志. 利用日志信息編寫(xiě)了用于分析整合日志的相關(guān)程序, 能夠根據(jù)游戲進(jìn)程端口號(hào)的使用情況對(duì)已俘獲的網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行清洗, 以此得到網(wǎng)絡(luò)游戲流量的原數(shù)據(jù)包.
本文采用的數(shù)據(jù)集標(biāo)注方法分為3個(gè)階段: 數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)集構(gòu)建.
數(shù)據(jù)采集: 使用Tcpdump、Wireshark等抓包工具收集游戲通信過(guò)程中的網(wǎng)絡(luò)流量, 同時(shí)游戲進(jìn)程通信使用的端口將記錄在日志中, 為游戲流量的過(guò)濾以及數(shù)據(jù)清洗做準(zhǔn)備.
數(shù)據(jù)預(yù)處理: 根據(jù)進(jìn)程端口日志清洗俘獲的流量數(shù)據(jù)集, 去除與研究無(wú)關(guān)的流量數(shù)據(jù), 并將清洗完成的流量數(shù)據(jù)集按照游戲類型添加標(biāo)注信息, 對(duì)俘獲的網(wǎng)絡(luò)游戲流量與公開(kāi)數(shù)據(jù)集原始流量進(jìn)行流重組與切分、歸一化處理為數(shù)據(jù)集構(gòu)建做準(zhǔn)備.
數(shù)據(jù)集構(gòu)建: 采用本文完成開(kāi)發(fā)的流量數(shù)據(jù)集構(gòu)建程序?qū)ν瓿深A(yù)處理的原始流量進(jìn)行數(shù)據(jù)集構(gòu)建, 將原始網(wǎng)絡(luò)流量轉(zhuǎn)化成符合卷積神經(jīng)網(wǎng)絡(luò)輸入的數(shù)據(jù)集格式.
為實(shí)現(xiàn)從俘獲的網(wǎng)絡(luò)流量中提取出網(wǎng)絡(luò)流, 并將網(wǎng)絡(luò)流轉(zhuǎn)換成符合卷積神經(jīng)網(wǎng)絡(luò)輸入的格式, 本文將數(shù)據(jù)預(yù)處理可以細(xì)分為3個(gè)子步驟: 數(shù)據(jù)清洗、流重組與切分、數(shù)據(jù)歸一化.
3.2.1 數(shù)據(jù)清洗
將獲取的游戲通信過(guò)程日志作為輸入至編寫(xiě)分析程序中, 利用日志中信息獲取對(duì)應(yīng)的游戲進(jìn)程在每個(gè)時(shí)間段分別占用了哪些端口號(hào). 先根據(jù)端口號(hào)信息對(duì)原始流量數(shù)據(jù)進(jìn)行初次過(guò)濾, 再根據(jù)時(shí)間信息結(jié)合端口號(hào)的使用情況對(duì)流量數(shù)據(jù)進(jìn)行二次過(guò)濾, 完成對(duì)網(wǎng)絡(luò)游戲流量數(shù)據(jù)的清洗, 具體流程如圖1所示.
圖1 數(shù)據(jù)清洗流程圖
3.2.2 流重組與切分
本文處理的網(wǎng)絡(luò)游戲流量數(shù)據(jù), 存在完整的TCP連接與UDP交互. 所以本文根據(jù)流量信息中的五元組匹配原則進(jìn)行流的重組與切分. 對(duì)于TCP流, 利用TCP首部的序列號(hào)和標(biāo)識(shí)將到達(dá)的數(shù)據(jù)包重新整合為一條有序流[7]. 對(duì)于UDP流, 根據(jù)數(shù)據(jù)包的發(fā)送時(shí)間確定UDP流的開(kāi)始和結(jié)束, 在規(guī)定時(shí)間內(nèi)未捕獲流的下一個(gè)數(shù)據(jù)包認(rèn)為這條流結(jié)束, 而后將指定時(shí)間窗口內(nèi)的UDP數(shù)據(jù)包按照捕獲的先后順序進(jìn)行拼接.
在提取出網(wǎng)絡(luò)流信息之后, 需要進(jìn)行流切分以得到大小相同的流數(shù)據(jù)用于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練. 本文選取網(wǎng)絡(luò)流前部的一段固定長(zhǎng)度的數(shù)據(jù)作為流量識(shí)別的依據(jù), 一方面可以確保利用應(yīng)用層的首部信息識(shí)別應(yīng)用, 另一方面, 已有實(shí)驗(yàn)證明數(shù)據(jù)載荷中的前部分的數(shù)據(jù)往往更能夠體現(xiàn)應(yīng)用層協(xié)議的特征. 針對(duì)卷積神經(jīng)網(wǎng)絡(luò)要求輸入數(shù)據(jù)格式相同的要求, 本文參考陳雪嬌等人[8]、馮文博等人[9]、 Wang[10]的實(shí)驗(yàn), 采用每條網(wǎng)絡(luò)流前784字節(jié)的數(shù)據(jù)作為判別依據(jù).
3.2.3 數(shù)據(jù)歸一化
由于俘獲的網(wǎng)絡(luò)流量數(shù)據(jù)的字節(jié)取值范圍較大,用于數(shù)值求解和模型訓(xùn)練會(huì)導(dǎo)致計(jì)算復(fù)雜度較大等問(wèn)題, 為了便于卷積神經(jīng)網(wǎng)絡(luò)的分析處理, 需要將協(xié)議數(shù)據(jù)歸一化. 歸一化的具體步驟如下:
首先, 構(gòu)造n個(gè)長(zhǎng)度為784字節(jié)的一維向量x, 即xi=[xi1,xi2,xi3,···,xij], 其中i代表n個(gè)一維向量中的第i個(gè)向量,j代表第i個(gè)向量中的第j個(gè)元素. 然后將每個(gè)流量樣本中字節(jié)對(duì)應(yīng)的十進(jìn)制數(shù)值賦給向量中的每個(gè)分量, 在十進(jìn)制轉(zhuǎn)化后x中的每個(gè)元素范圍是[0,255], 為提高模型的計(jì)算效率、讓流量向量數(shù)據(jù)取值分布更加緊湊, 需要對(duì)x中每個(gè)分量的數(shù)值進(jìn)行歸一化處理. 在本文中將每個(gè)分量的數(shù)值除以255, 使分量的取值統(tǒng)一到[0, 1)區(qū)間, 構(gòu)建數(shù)據(jù)集矩陣M:
該歸一化方法能讓不同協(xié)議數(shù)據(jù)處于同一個(gè)數(shù)量級(jí)以用于對(duì)比, 提高模型的學(xué)習(xí)能力的同時(shí)降低了模型的計(jì)算復(fù)雜度.
由于卷積神經(jīng)網(wǎng)絡(luò)的輸入通常是二維矩陣, 還需要將向量x轉(zhuǎn)化為具有圖像特征的二維矩陣. 本文將每個(gè)x中的元素按照順序構(gòu)建成28×28的二維矩陣X:
根據(jù)清洗完成留下的標(biāo)注信息對(duì)網(wǎng)絡(luò)流進(jìn)行標(biāo)注,并擴(kuò)充于公開(kāi)的網(wǎng)絡(luò)流量數(shù)據(jù)集中, 用于卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練.
Wang[10]提出了一種直接使用原始流量數(shù)據(jù)的基于棧式自編碼器SAE的網(wǎng)絡(luò)協(xié)議識(shí)別方法, 取得了很好的效果, 而流量分類與協(xié)議識(shí)別在任務(wù)內(nèi)容上是很相近的. 表征學(xué)習(xí)方法的優(yōu)勢(shì)是能夠直接從原始數(shù)據(jù)中自動(dòng)學(xué)習(xí)特征, 其在圖像分類和語(yǔ)音識(shí)別領(lǐng)域的成功應(yīng)用都充分說(shuō)明了這一點(diǎn), 所以本文采用了表征學(xué)習(xí)的方法進(jìn)行流量分類.
為最優(yōu)化表征學(xué)習(xí)的效果, 本文采用了端到端的方式進(jìn)行數(shù)據(jù)集構(gòu)建, 以保證擅長(zhǎng)圖像分類任務(wù)的CNN能夠直接在原始流量數(shù)據(jù)上進(jìn)行游戲流量分類. 為保證數(shù)據(jù)集的可靠性, 減少私有數(shù)據(jù)集對(duì)結(jié)果可信度的影響, 鑒于存在細(xì)粒度分類并具有完整標(biāo)注的公開(kāi)流量數(shù)據(jù)集不多且大部分都是加密與安全相關(guān)的網(wǎng)絡(luò)流量,而Wang提出的端到端的流量識(shí)別方法基于ISCXVPN 2016數(shù)據(jù)集, 所以本文選用ISCXVPN 2016數(shù)據(jù)集[11]作為基礎(chǔ)流量, 鑒于ISCXVPN2016存在VPN流量和實(shí)際流量相差太大, 所以在本文僅采用了ISCXVPN 2016中non-VPN部分的標(biāo)記流量, 避免其與實(shí)際流量相差太大的問(wèn)題.
該數(shù)據(jù)集包含有兩部分, 分別是基于VPN會(huì)話的應(yīng)用流量和無(wú)VPN下的應(yīng)用流量, 包含有完成標(biāo)記的網(wǎng)頁(yè)瀏覽(Browsing)、電子郵件(Email)、網(wǎng)絡(luò)聊天(Chat)、語(yǔ)音通訊(VoIP)、多媒體流(Streaming)、文件傳輸(File transfer)、點(diǎn)對(duì)點(diǎn)(TraP2P)流量數(shù)據(jù). 但是該數(shù)據(jù)集中的網(wǎng)頁(yè)瀏覽流量標(biāo)記存在問(wèn)題, 例如“Facebook_video.pcap”, 可以標(biāo)記為作為“Browsing”也可以標(biāo)記為“Streaming”, 故在文獻(xiàn)[10]的端到端識(shí)別中對(duì)網(wǎng)頁(yè)瀏覽流量進(jìn)行了剔除, 在本文實(shí)驗(yàn)中也考慮到在目前的網(wǎng)絡(luò)游戲中端游占較大比重, 而端游的游戲客戶端相當(dāng)于一個(gè)小型網(wǎng)絡(luò)瀏覽器, 如果將網(wǎng)絡(luò)瀏覽依舊作為標(biāo)記流量參與實(shí)驗(yàn)的話會(huì)導(dǎo)致粗粒度分類與細(xì)粒度分類并存而影響到網(wǎng)絡(luò)游戲流量的準(zhǔn)確識(shí)別,所以本文將該類流量也進(jìn)行了剔除.
將公開(kāi)數(shù)據(jù)集中的原始流量數(shù)據(jù)完成重組與切分、歸一化操作后, 與采集并完成預(yù)處理的游戲流量數(shù)據(jù)進(jìn)行合并, 構(gòu)建成能夠應(yīng)用于本文神經(jīng)網(wǎng)絡(luò)訓(xùn)練的流量數(shù)據(jù)集, 經(jīng)過(guò)擴(kuò)展后由原數(shù)據(jù)集22 976個(gè)樣本擴(kuò)充為25 906個(gè)樣本, 其中包含有穿越火線、爐石傳說(shuō)、英雄聯(lián)盟、CSGO等游戲流量, 數(shù)據(jù)來(lái)源為新疆師范大學(xué)數(shù)據(jù)安全實(shí)驗(yàn)室與研究生實(shí)驗(yàn)室, 于2020年10月至12月進(jìn)行俘獲, 為保證數(shù)據(jù)時(shí)間分布合理, 俘獲時(shí)間為每月中的周末10點(diǎn)至15點(diǎn). 在去除IP、MAC等冗余數(shù)據(jù)后, 本文對(duì)游戲流量數(shù)據(jù)進(jìn)行可視化發(fā)現(xiàn),在校園網(wǎng)絡(luò)環(huán)境下的不同區(qū)域內(nèi)俘獲的游戲流量存在一致性, 因此該游戲流量數(shù)據(jù)集能夠代表整體特征.
隨機(jī)選取流重組、切分和歸一化之后的可視化結(jié)果如圖2所示, 大小為784字節(jié). 顯然, 不同類別的流量具有明顯的區(qū)分度, 并且各個(gè)類別的流量具有較高的一致性.
在經(jīng)典的MNIST手寫(xiě)體識(shí)別數(shù)據(jù)集中圖像文件也采用的是28×28×1的像素值, 與之不同的是為保證學(xué)習(xí)模型能夠從原始流量中進(jìn)行特征學(xué)習(xí)和提高模型識(shí)別效率, 本文將構(gòu)建完成的流量圖片數(shù)據(jù)集的像素信息存儲(chǔ)到了NPY文件中以用于模型的訓(xùn)練, 不僅保留了圖片所包含的特征信息、縮減了數(shù)據(jù)集占用的內(nèi)存空間, 還選用了適配神經(jīng)網(wǎng)絡(luò)的NPY文件, 提高了模型訓(xùn)練時(shí)讀取數(shù)據(jù)集的時(shí)間效率.
鑒于數(shù)據(jù)預(yù)處理時(shí)的圖片尺寸與MNIST相同, 經(jīng)實(shí)驗(yàn)證明LeNet-5[12]的CNN模型, 如圖3所示, 對(duì)MNIST數(shù)據(jù)集的分識(shí)別準(zhǔn)確度可達(dá)99.2%, 因此本文將采用了類似LeNet-5的CNN結(jié)構(gòu), 如圖3所示.
圖3 兩種維度下的模型結(jié)構(gòu)
為研究輸入數(shù)據(jù)集結(jié)構(gòu)不同, 是否會(huì)對(duì)構(gòu)建的表征學(xué)習(xí)模型帶來(lái)結(jié)果的差異性, 本文在實(shí)驗(yàn)中分別輸入784×1與28×28的圖像矩陣進(jìn)行了對(duì)比試驗(yàn), 如具體模型參數(shù)如表1所示.
表1 一維卷積神經(jīng)網(wǎng)絡(luò)主要參數(shù)
在該模型的最后兩個(gè)全連接層中, 將數(shù)據(jù)尺寸依次轉(zhuǎn)換為1024和7, 前者采用ReLU作為激活函數(shù), 并通過(guò)添加扁平層將輸入數(shù)據(jù)拉伸成一位數(shù)據(jù), 后者采用Softmax作為激活函數(shù), 輸出各類概率值. 為減少過(guò)擬合, 在輸出層之前均采用了dropout進(jìn)行隨機(jī)失活,前者為0.25, 后者為0.4, 本文在六分類、七分類兩種實(shí)驗(yàn)中都使用了上述同一種結(jié)構(gòu).
本文通過(guò)實(shí)驗(yàn)對(duì)比在相同模型結(jié)構(gòu)下公開(kāi)數(shù)據(jù)集與完成擴(kuò)充的網(wǎng)絡(luò)游戲流量數(shù)據(jù)集的查準(zhǔn)率、查全率、準(zhǔn)確率和F-Measure(F1)值的變化, 分析本文模型的可用性, 并將游戲流量與其他應(yīng)用流量進(jìn)行分類效果對(duì)比, 驗(yàn)證本文構(gòu)建數(shù)據(jù)集的可靠性.
目前, 流量識(shí)別模型主要采用準(zhǔn)確性相關(guān)指標(biāo)來(lái)進(jìn)行評(píng)估, 為了滿足不斷提高的流量分析要求, 參考文獻(xiàn)[13]提出的技術(shù)評(píng)價(jià)指標(biāo), 本文在準(zhǔn)確性的基礎(chǔ)上從模型的完整性和未識(shí)別率等方面全面地評(píng)估流量識(shí)別模型在擴(kuò)充前后數(shù)據(jù)集中的效果, 進(jìn)行了更加客觀公正的結(jié)果對(duì)比. 下面詳細(xì)介紹實(shí)驗(yàn)對(duì)比中采用的評(píng)估指標(biāo).
準(zhǔn)確性是反映流量識(shí)別技術(shù)識(shí)別網(wǎng)絡(luò)應(yīng)用的能力.假設(shè)N為流量樣本總數(shù),m為待識(shí)別的應(yīng)用類型數(shù),nij表示實(shí)際類型為i的流量樣本被標(biāo)記為類型為j的樣本數(shù). 真正(True Positive,TP)代表實(shí)際類型為i的樣本中被正確標(biāo)記的樣本數(shù), 即TPij=nii; 假正(False Positive,FP)代表實(shí)際類型為非i的樣本中被錯(cuò)誤標(biāo)記的樣本數(shù), 即FPi=nji,j≠i. 查準(zhǔn)率定義為:
假負(fù)(False Negative,FN)代表實(shí)際類型為i的樣本中被誤標(biāo)識(shí)為其他類型的樣本數(shù),. 真負(fù)(True Negative,TN)代表實(shí)際類型為非i的樣本中被標(biāo)識(shí)為非i的樣本數(shù),TNi=njj. 查全率定義為:
查準(zhǔn)率和查全率體現(xiàn)了識(shí)別方法在每個(gè)單獨(dú)協(xié)議類別上的識(shí)別效果. 特別是當(dāng)樣本類別分布不均勻時(shí),查全率和查準(zhǔn)率可以準(zhǔn)確獲知每個(gè)類別的分類情況.準(zhǔn)確率體現(xiàn)了識(shí)別方法的總體識(shí)別性能, 好的算法應(yīng)該同時(shí)具有較高的準(zhǔn)確率、查準(zhǔn)率和查全率. 準(zhǔn)確率定義為:
F-Measure是綜合查準(zhǔn)率和查全率得到的評(píng)價(jià)指標(biāo),F-Measure越高表明算法在各個(gè)類型的分類性能越好.
本文實(shí)驗(yàn)將隨機(jī)選取數(shù)據(jù)集的75%用于識(shí)別模型的訓(xùn)練, 剩余25%的數(shù)據(jù)集用于分類模型的測(cè)試.實(shí)驗(yàn)平臺(tái)方面, 選用的軟件框架是TensorFlow[14]. 優(yōu)化算法采用隨機(jī)梯度下降算法, 并啟用Nesterov Momentum算法更新反向梯度, 其中Momentum為0.9, 損失函數(shù)為交叉熵函數(shù), 學(xué)習(xí)速率0.01, 學(xué)習(xí)速率的衰減系數(shù)為0.0001, 訓(xùn)練回合數(shù)約為25 epochs.
在采用不同的數(shù)據(jù)維度進(jìn)行實(shí)驗(yàn)中, 我們發(fā)現(xiàn)基于表征學(xué)習(xí)的識(shí)別模型在一維數(shù)據(jù)下的表現(xiàn)優(yōu)于二維,實(shí)驗(yàn)結(jié)果見(jiàn)圖4.
從圖4(a)、圖4(b)對(duì)比中可以發(fā)現(xiàn), 不同網(wǎng)絡(luò)層數(shù)對(duì)最終識(shí)別率有著不同的影響, 相比二維的卷積網(wǎng)絡(luò), 一維卷積神經(jīng)網(wǎng)絡(luò)的表征學(xué)習(xí)識(shí)別模型在準(zhǔn)確率與宏平均查準(zhǔn)率、查全率和F-Measure值上均有優(yōu)勢(shì),所以本文針對(duì)基于一維卷積神經(jīng)網(wǎng)絡(luò)的表征學(xué)習(xí)識(shí)別模型進(jìn)行細(xì)粒度的結(jié)果分析.
圖4 不同輸入維度對(duì)識(shí)別效果的影響
在實(shí)驗(yàn)中, 本文將構(gòu)建的數(shù)據(jù)集和公開(kāi)網(wǎng)絡(luò)流量數(shù)據(jù)集分別應(yīng)用于識(shí)別模型中進(jìn)行了實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果見(jiàn)圖5和圖6.
圖5 模型的識(shí)別準(zhǔn)確率與宏平均查準(zhǔn)率、查全率和F-Measure值
圖5表示識(shí)別模型在擴(kuò)充前后的兩個(gè)數(shù)據(jù)集中的總體識(shí)別效果. 根據(jù)數(shù)據(jù)集擴(kuò)充前后模型識(shí)別率對(duì)比,可以看出: 通過(guò)對(duì)公開(kāi)數(shù)據(jù)集的合理擴(kuò)充, 有效提高了模型的識(shí)別準(zhǔn)確率, 在原來(lái)基礎(chǔ)上提高了5%, 除了準(zhǔn)確率得到提高外, 宏平均查準(zhǔn)率、查全率和F-Measure值的數(shù)據(jù)對(duì)比也證實(shí)了數(shù)據(jù)集的擴(kuò)充同樣優(yōu)化了模型其他應(yīng)用流的識(shí)別精度. 圖6中全方位展示了擴(kuò)充前后的數(shù)據(jù)集在識(shí)別模型中查準(zhǔn)率、查全率和F-Measure值的變化. 從中也可以看出與總體精度相同的比較結(jié)果. 從綜合評(píng)價(jià)指標(biāo)F-Measure值的對(duì)比中可以看出,同一模型在擴(kuò)充前后數(shù)據(jù)集上的識(shí)別中在原始流的分類結(jié)果幾乎持平, 部分流的識(shí)別精度得到有效提升, 游戲流量識(shí)別準(zhǔn)確率達(dá)到了92%, 召回率達(dá)到92%, 已經(jīng)
圖6 識(shí)別模型的類查準(zhǔn)率、類查全率、類F-Measure值
與其他流量的識(shí)別精度相持平, 可見(jiàn)基于表征學(xué)習(xí)的網(wǎng)絡(luò)游戲流量識(shí)別是可行的, 并取得的較好的效果. 通過(guò)在學(xué)生宿舍以及實(shí)驗(yàn)室等實(shí)際場(chǎng)景中部署流量監(jiān)控進(jìn)行驗(yàn)證, 游戲流量查準(zhǔn)率可達(dá)到88%, 所以本文所提出的基于表征學(xué)習(xí)的網(wǎng)絡(luò)流量識(shí)別方法在網(wǎng)絡(luò)游戲流量監(jiān)控方面具有有效性.
在實(shí)驗(yàn)結(jié)果中我們也發(fā)現(xiàn)由于Email不存在大量字段負(fù)載信息, 所以在表征學(xué)習(xí)模型下的識(shí)別效果仍不是很理想. 在之后的流量分類實(shí)驗(yàn)中針對(duì)這類存在明顯端口特征的流量, 我們可以集成使用基于端口的流量識(shí)別方法以提高該類流量的分類效果. 盡管如此,擴(kuò)充后的數(shù)據(jù)集對(duì)模型Email的識(shí)別率依舊有著不小的提升, 可以看出本文提出的基于端口映射的數(shù)據(jù)集擴(kuò)充是成功的.
本文在傳統(tǒng)流量分類的基礎(chǔ)上嘗試將表征學(xué)習(xí)的方法應(yīng)用于游戲流量的識(shí)別研究, 并通過(guò)采集各類游戲流量, 同時(shí)利用通信日志文件中建立的各類游戲與進(jìn)程端口的映射關(guān)系, 基于該映射關(guān)系對(duì)游戲流量進(jìn)行過(guò)濾標(biāo)記, 大幅提高游戲流量標(biāo)注的工作效率, 降低擴(kuò)展公開(kāi)數(shù)據(jù)集的專業(yè)難度; 采用深度學(xué)習(xí)中的表征學(xué)習(xí)模型, 這種模型不需要預(yù)先提取流量特征, 而是直接把原始流量視為數(shù)據(jù)輸入, 讓表征學(xué)習(xí)模型自動(dòng)學(xué)習(xí)流量特征并執(zhí)行分類, 成功避免傳統(tǒng)機(jī)器學(xué)習(xí)算法中流量標(biāo)注以及流量分類模型對(duì)特征選擇的依賴, 并針對(duì)不同維度的輸入數(shù)據(jù)對(duì)識(shí)別模型的影響進(jìn)行了研究, 也解決了網(wǎng)絡(luò)游戲流量數(shù)據(jù)集匱乏的問(wèn)題. 在后續(xù)的研究中, 將從以下兩個(gè)方面進(jìn)行改進(jìn): 一是將表征學(xué)習(xí)與機(jī)器學(xué)習(xí)算法相融合, 在減少學(xué)習(xí)模型對(duì)特征提取依賴的同時(shí)提高模型的識(shí)別效果; 二是結(jié)合無(wú)監(jiān)督學(xué)習(xí)方法, 提高模型在面對(duì)未知流量情況下的識(shí)別能力.