馬容生
P2P技術(shù)在文件共享、多媒體文件傳輸、多媒體信息實施播放等領(lǐng)域有著十分廣泛的應用前景,近年來也受到了越來越多的網(wǎng)絡(luò)服務(wù)提供商和用戶的重視。目前基于P2P技術(shù)的文件下載、視頻點播、語音通話等應用功能在網(wǎng)絡(luò)上發(fā)展十分迅猛。然而,基于P2P的應用模式在充分展示其靈活性的同時,也給網(wǎng)絡(luò)安全、網(wǎng)絡(luò)管理帶來了很多負面的應用,尤其是P2P應用對網(wǎng)絡(luò)帶流量的占用非常巨大,使得網(wǎng)絡(luò)服務(wù)提供商承受巨大的壓力,為網(wǎng)絡(luò)的管理以及整個網(wǎng)絡(luò)服務(wù)質(zhì)量的提高都帶來嚴重的挑戰(zhàn)。據(jù)統(tǒng)計,目前在互聯(lián)網(wǎng)流量當中,P2P的流量已經(jīng)超過50%,因此為了能夠?qū)ヂ?lián)網(wǎng)的流量信息進行有效的管理,提高整個網(wǎng)絡(luò)安全的可控性和安全性,有必要對互聯(lián)網(wǎng)中的P2P流量數(shù)據(jù)進行準確的識別和檢測[1-2]。
目前基于P2P流量的檢測技術(shù)主要有:韓志杰,王汝傳提出了一個P2P網(wǎng)絡(luò)流量預測模型,利用小波作為神經(jīng)網(wǎng)絡(luò)的隱節(jié)點激勵函數(shù)獲得了較好的檢測精度[3]。蔣海明,張劍英,王青青等人設(shè)計了一種基于深度包檢測的P2P流量檢測方法,經(jīng)過實驗檢驗具有較高的精度[4]。沈富可,常潘,任肖麗也設(shè)計了基于BP神經(jīng)網(wǎng)絡(luò)的P2P流量識別方法,但其存在訓練時間長、收斂速度慢問題[5]。因此,文中重點對P2P流量檢測的精度和速度問題開展研究,力圖得到一種檢測精度和檢測速度均比較理想的算法。
P2P的特征信息主要可以分為:靜態(tài)報文特征以及P2P流量行為特征兩類。
(1)P2P靜態(tài)報文特征信息
P2P 靜態(tài)報文特征主要是指應用P2P協(xié)議的數(shù)據(jù)包在報文格式方面所具有與其他非P2P流量的報文信息有明顯差異的特征[6-7]。具體表現(xiàn)為,應用P2P協(xié)議的應用層數(shù)據(jù)特征信息,比如迅雷、BT等P2P下載軟件,其在應用層的數(shù)據(jù)報文前幾個字段均有明顯的特征符號,而且基于P2P協(xié)議的不同應用程序這類特征字段均不相同,因此可以作為P2P協(xié)議數(shù)據(jù)的標識字段。除此之外,應用P2P協(xié)議的數(shù)據(jù)報文在傳輸層的端口以及協(xié)議字段均有明顯的標識,尤其是一些知名的P2P協(xié)議,其采用的端口號往往是固定的,或者固定為某一個可變的范圍,因此對傳輸層的端口號和協(xié)議字樣的識別同樣可以作為表示P2P流量的特征信息。
(2)P2P流量的行為特征
P2P流量的行為特征主要表現(xiàn)為以下幾個方面:數(shù)據(jù)傳輸流量異常、協(xié)議應用異常、上傳下載行為異常、連接建立異常、通信路徑異常等[8-9]。其中流量異常是指應用P2P協(xié)議的網(wǎng)絡(luò)應用在網(wǎng)絡(luò)通信流量方面往往表現(xiàn)出突發(fā)性和大流量異常特征。協(xié)議應用異常是指P2P協(xié)議在使用傳輸層的通信協(xié)議時,同時使用TCP和UTP協(xié)議。比如使用TCP協(xié)議作為傳輸控制命令通信,使用UTP作為數(shù)據(jù)傳輸通信。而實際的網(wǎng)絡(luò)通信協(xié)議在選擇應用時往往只選擇TCP或者UTP協(xié)議中的一種,因此,這種協(xié)議應用異常也是P2P流量在行為上的特征。上傳下載行為異常是指P2P協(xié)議在應用時每一個網(wǎng)絡(luò)節(jié)點既從網(wǎng)絡(luò)上下載數(shù)據(jù)同時也向網(wǎng)絡(luò)上其他節(jié)點傳輸數(shù)據(jù),而且應用P2P協(xié)議的網(wǎng)絡(luò)節(jié)點其上傳和下載的數(shù)據(jù)量往往都很大,甚至有的時候上傳的流量持續(xù)大于下載的流量,這與普通的網(wǎng)絡(luò)應用程序有著十分明顯的差異,通常網(wǎng)絡(luò)的下載行為遠遠超出上傳行為。因此,這也是P2P流量的一種行為異常特征。連接建立異常是指P2P應用程序在進行網(wǎng)絡(luò)通信時,節(jié)點往往會向很多其他不可連接的節(jié)點發(fā)起連接請求的嘗試,事實上這也是P2P自主發(fā)現(xiàn)其他網(wǎng)絡(luò)鄰居節(jié)點的重要途徑。而在實際的網(wǎng)絡(luò)通信過程中,節(jié)點之間的連接建立往往是有著十分明確的前提和條件,建立連接的成功性也非常高,而P2P應用程序的網(wǎng)絡(luò)連接建立成功率并不高,有的時候甚至不到50%。通信路徑異常是指應用P2P協(xié)議在網(wǎng)絡(luò)應用在進行數(shù)據(jù)傳輸時往往會歷經(jīng)多個傳輸節(jié)點,整個網(wǎng)絡(luò)的直徑遠大于正常網(wǎng)絡(luò)通信環(huán)境下的網(wǎng)絡(luò)直徑。這種通信路徑異常同樣可以作為P2P流量異常檢測的行為特征。
P2P流量檢測原理即充分利用目前所掌握的P2P流量檢測的靜態(tài)特征信息和行為特征信息對網(wǎng)絡(luò)上獲取的流量進行綜合分析。為了能夠?qū)2P流量檢測自動化的進行,因此需要將P2P流量特征進行量化,對P2P流量的靜態(tài)報文特征信息可以建立P2P流量特征數(shù)據(jù)庫,輔助P2P流量的檢測,而對于P2P流量的行為特征,則需要提取P2P流量中的各種行為特征的具體表現(xiàn)形式,并對所提取的表現(xiàn)形式進行定量采集和表示。文中通過大量的統(tǒng)計研究之后形成了標識P2P流量的特征參數(shù),其中靜態(tài)特征主要包括:傳輸層端口號、傳輸層協(xié)議字段、應用層標識字段等;行為特征主要包括:單位時間流量、傳輸層協(xié)議應用統(tǒng)計序列、上傳下載比率、連接建立成功率、網(wǎng)絡(luò)直徑等。只要具備其中的一個或者多個條件,則該流量有可能是P2P流量。通過建立P2P流量的特征參數(shù)列表,為網(wǎng)絡(luò)上所獲取的流量數(shù)據(jù)特征提取以及基于這些特征的P2P流量檢測提供了詳細的數(shù)據(jù)支持。
文中設(shè)計的自適應神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。該神經(jīng)網(wǎng)絡(luò)總共分成3層,分別是輸入層、輸出層和隱含層,其中隱含層又有兩層不同節(jié)點所組成。通過在神經(jīng)網(wǎng)絡(luò)中隱含層的數(shù)目越多,則該神經(jīng)網(wǎng)絡(luò)對非線性問題的刻畫能力越強[10-11]。為了能夠?qū)W(wǎng)絡(luò)上的P2P流量進行精確的識別和檢測,因此文中在構(gòu)建神經(jīng)網(wǎng)絡(luò)的時候選擇隱含層中設(shè)置兩個層次,以此來提高神經(jīng)網(wǎng)絡(luò)對P2P流量的檢測能力,該神經(jīng)網(wǎng)絡(luò)的輸入層中的節(jié)點個數(shù)與所選取的特征參數(shù)個數(shù)完全相同。每一個節(jié)點對應一個參數(shù)的輸入,隱含層的第一層節(jié)點數(shù)目設(shè)置為16個,第二層節(jié)點數(shù)目設(shè)置為12個。一個隱含層設(shè)置為兩層,而且節(jié)點數(shù)目分別為16和12的神經(jīng)網(wǎng)絡(luò)能夠具備較強的非線性問題刻畫能力,對P2P流量識別和檢測這一現(xiàn)實問題經(jīng)過實驗分析與測試,表明采用這種結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)具備對P2P 流量準確識別的能力,神經(jīng)網(wǎng)絡(luò)的輸出層總共分為8個節(jié)點,每個節(jié)點代表的是對一類P2P流量的識別輸出結(jié)果[12]。文中在研究過程中對P2P流量的輸出結(jié)果總共分為8類,前7類分別是當前知名的P2P應用程序(BitTorrent、PPLive、Thunder、Skype、eDonkey、MSN、Emule),最后一類是所有其他 P2P應用或者未知的 P2P應用。該神經(jīng)網(wǎng)絡(luò)拓撲結(jié)構(gòu)建立之后,需要選取大量的樣本數(shù)據(jù)對神經(jīng)網(wǎng)絡(luò)進行訓練測試,確定神經(jīng)網(wǎng)絡(luò)各節(jié)點之間的傳遞函數(shù)和各節(jié)點的權(quán)重,才能夠?qū)⒋松窠?jīng)網(wǎng)絡(luò)應用于具體的流量檢測應用中[13]。
圖1 自適應神經(jīng)網(wǎng)絡(luò)組成結(jié)構(gòu)
(1)神經(jīng)網(wǎng)絡(luò)的傳遞函數(shù)
傳遞函數(shù)選擇雙曲正切函數(shù),計算式如下所示。該函數(shù)可以保證輸出的結(jié)果分布于對稱的正負區(qū)間,這將有助于輸出的結(jié)果在期望值的左右區(qū)間進行調(diào)整,通過調(diào)整該函數(shù)中的參數(shù)a可以實現(xiàn)神經(jīng)網(wǎng)絡(luò)中的傳遞函數(shù)精細地逼近期望結(jié)果[14]。參數(shù)a將通過構(gòu)建的神經(jīng)網(wǎng)絡(luò)對大量樣本數(shù)據(jù)的反復訓練后的確定最佳值。
(2)神經(jīng)網(wǎng)絡(luò)決策過程
神經(jīng)網(wǎng)絡(luò)的決策過程也是特征參數(shù)在神經(jīng)網(wǎng)絡(luò)上傳遞的過程,對于待檢測的P2P流量問題,根據(jù)從實際的P2P網(wǎng)絡(luò)環(huán)境中提取的靜態(tài)特征參數(shù)和累計行為特征參數(shù),同時送入至神經(jīng)網(wǎng)絡(luò)的輸入端,神經(jīng)各節(jié)點之間按如下關(guān)系式進行信息傳遞。
通過上式的信息傳遞過程,可以將神經(jīng)網(wǎng)絡(luò)的各種輸入數(shù)據(jù)進行決策,決策得到的輸出結(jié)果即為該神經(jīng)網(wǎng)絡(luò)模型做出的最終的判別。在對P2P網(wǎng)絡(luò)流量檢測過程中,由于神經(jīng)網(wǎng)絡(luò)逼近實際問題時,始終存在一定誤差,因此,決策過程中的各節(jié)點權(quán)重需要通過模型訓練進行完善,使得構(gòu)建的神經(jīng)網(wǎng)絡(luò)能夠最近似地刻畫現(xiàn)實系統(tǒng)中的輸入、輸出關(guān)系。
(3)神經(jīng)網(wǎng)絡(luò)評價函數(shù)
評價函數(shù)是對所構(gòu)建的神經(jīng)網(wǎng)絡(luò)實際問題模擬能力的一個評價指標,其通過對神經(jīng)網(wǎng)絡(luò)的實際輸出結(jié)果與模型決策后的輸出結(jié)果對比,給出準確的評價結(jié)論。由于應用神經(jīng)網(wǎng)絡(luò)主要是對未知問題的分析與求解,因此,對于一個給定的現(xiàn)實問題,無法給出準確的期望值。故利用神經(jīng)網(wǎng)絡(luò)進行實際問題決策時,無法應用評價函數(shù)對當前決策結(jié)果進行分析。但對于給定的一組訓練樣本數(shù)據(jù)集,其輸入?yún)?shù)和預期的輸出結(jié)果都是確定的,因此,可以通過評價函數(shù)的引入,實現(xiàn)對當前訓練數(shù)據(jù)決策效果的準備評判,進而為誤差消除,模型求精提供條件。文中所采用的神經(jīng)網(wǎng)絡(luò)評價函數(shù)如下所示:
式中,N代表神經(jīng)網(wǎng)絡(luò)的輸出端節(jié)點數(shù), eti2代表第i個節(jié)點的期望輸出值,該值在神經(jīng)網(wǎng)絡(luò)訓練初期由用戶通過樣本數(shù)據(jù)給定。
(4)神經(jīng)網(wǎng)絡(luò)的學習過程
神經(jīng)網(wǎng)絡(luò)的學習過程是實現(xiàn)神經(jīng)網(wǎng)絡(luò)近似逼近現(xiàn)實問題求解模型的關(guān)鍵步驟,對于已經(jīng)構(gòu)建完成的神經(jīng)網(wǎng)絡(luò),其學習過程事實上也是對于特定問題的輸出結(jié)果沿著神經(jīng)網(wǎng)絡(luò)的傳遞路徑反向回傳,并在回傳的過程中對神經(jīng)網(wǎng)絡(luò)的權(quán)重進行動態(tài)調(diào)整。
根據(jù)對經(jīng)典的 BP神經(jīng)網(wǎng)絡(luò)的分析,可知其在誤差反向傳遞過程中,采用的是基于梯度下降的誤差消除方法,即要求在誤差傳遞過程中,通過修改神經(jīng)網(wǎng)絡(luò)節(jié)點的權(quán)重,使得在新權(quán)重條件下,神經(jīng)網(wǎng)絡(luò)決策結(jié)果的誤差比之前的誤差在減少,即此時求導后的誤差函數(shù)的為遞減函數(shù)。傳統(tǒng)的 BP神經(jīng)網(wǎng)絡(luò)的權(quán)重調(diào)整函數(shù)為:
式中,Δcij即為每次修正的節(jié)點權(quán)重數(shù)值,該數(shù)值由3個參數(shù)決定:λij、φ( xij)和g(xij)。其中λij表示神經(jīng)網(wǎng)絡(luò)節(jié)點 ij位置對權(quán)重的修正幅度,該參數(shù)直接決定了神經(jīng)網(wǎng)絡(luò)的學習速度,因此也常常被稱為神經(jīng)網(wǎng)絡(luò)學習速率參數(shù)。φ ( xij)表示神經(jīng)網(wǎng)絡(luò)節(jié)點ij位置對權(quán)重的修正條件,φ ( xij)的計算式如下所示。 g(xij)表示神經(jīng)網(wǎng)絡(luò)節(jié)點ij位置的初始輸出值。
采用如上計算式進行誤差反向傳播,對神經(jīng)網(wǎng)絡(luò)中各節(jié)點參數(shù)進行修正,經(jīng)實際的測試分析發(fā)現(xiàn),該神經(jīng)網(wǎng)絡(luò)模型的學習速度較慢,在對1 000組訓練樣本進行學習后,其誤差精度在15%以內(nèi),再對5 000組訓練樣本進行學習后,誤差精度僅減低到8%以內(nèi),學習速度非常慢。而且從理論上分析發(fā)現(xiàn),該訓練模型在對實際的流量識別問題逼近到一定程度后,進入誤差曲面的平坦區(qū)域,此時無論怎么調(diào)整神經(jīng)網(wǎng)絡(luò)的節(jié)點權(quán)重,其誤差始終趨于一個穩(wěn)定數(shù)值,這將極大地阻礙神經(jīng)網(wǎng)絡(luò)的學習效果。因此,必須對神經(jīng)網(wǎng)絡(luò)的學習速度進行改進,使得神經(jīng)網(wǎng)絡(luò)節(jié)點在修正權(quán)重時,能夠根據(jù)當前的誤差結(jié)果,動態(tài)地調(diào)整學習速率。同時對神經(jīng)網(wǎng)絡(luò)輸出的評價函數(shù)進行改進,使得神經(jīng)網(wǎng)絡(luò)的在訓練過程中能夠擺脫誤差曲面的平坦區(qū),盡快進行收斂狀態(tài),實現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的快速定型。
(5)自適應學習控制與評價函數(shù)的改進
神經(jīng)網(wǎng)絡(luò)的學習過程主要由學習速率參數(shù)ijλ控制,在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)訓練過程中,該參數(shù)一般是選一個固定的常數(shù)值,為了能夠做到自適應的學習控制,可以將該參數(shù)的取值與每次權(quán)重調(diào)整后的誤差變化程度相,由神經(jīng)網(wǎng)絡(luò)的誤差變化量控制學習速率ijλ的調(diào)整,實現(xiàn)神經(jīng)網(wǎng)絡(luò)的自適應學習。經(jīng)過對大量的訓練樣本數(shù)據(jù)模擬和分析后,文中得到ijλ的自適應控制關(guān)系式如下所示:
式中, λ'ij表示調(diào)整后新的學習速率控制參數(shù),new _ h _ o utputij為權(quán)重調(diào)整后新的輸出結(jié)果,該式蘊含的控制原理是當調(diào)整權(quán)重后,誤差朝著縮小的方向變化時,此時可以降低λij的取值,以實現(xiàn)精細地逼近輸出結(jié)果;若調(diào)整權(quán)重后,誤差朝著變大的方向變化時,此時可以增加λij的取值,以實現(xiàn)加快逼近期望值的速度。
根據(jù)文中設(shè)計的基于自適應神經(jīng)網(wǎng)絡(luò)P2P流量檢測模型,在選取5 000組樣本數(shù)據(jù)進行訓練之后,對網(wǎng)絡(luò)上正常傳輸?shù)耐ㄐ艛?shù)據(jù)進行了實驗測試。
實驗測試數(shù)據(jù)來自校園路由器的出口數(shù)據(jù),通過在路由器出口端部署流量數(shù)據(jù)鏡像設(shè)備,對流經(jīng)路由器的所有通信數(shù)據(jù)進行了鏡像存儲,然后以這些數(shù)據(jù)作為測試數(shù)據(jù)源。實驗中路由器為 Cisco公司的7200系列路由器,對其導出的流量數(shù)據(jù),采用了NetFlow工具對導出的數(shù)據(jù)進行流量提取,該工具具有強大的流量提取和輔助分析能力,能夠按照源IP地址、目的IP地址、源端口號、目的端口號、協(xié)議號的五元組對流量進行分類和提取。
首先對自適應神經(jīng)網(wǎng)絡(luò)的學習速率進行了測試,測試結(jié)果如表1所示。測試結(jié)果表明對于自適應神經(jīng)網(wǎng)絡(luò)的學習過程,耗費了的時間更短,而且得到的精度卻更高。
表1 自適應神經(jīng)網(wǎng)絡(luò)的學習速率測試結(jié)果
利用對大量樣本數(shù)據(jù)訓練之后建立的自適應神經(jīng)網(wǎng)絡(luò),對路由器的鏡像流量進行了測試,總數(shù)據(jù)流量為1 254 694條,檢測到P2P流量為23 181。每一種P2P流量的詳細分類情況如表2所示。由于每一類的P2P流量數(shù)量較為龐大,為了能夠?qū)γ恳环N流量的檢測結(jié)果的正確性進行分析,文中進行了抽樣檢測,即從每一個分類中抽取200條流量信息,采用人工驗證的方式對神經(jīng)網(wǎng)絡(luò)的檢測結(jié)果進行評價。
表2 自適應神經(jīng)網(wǎng)絡(luò)的P2P流量檢測結(jié)果
P2P流量檢測在網(wǎng)絡(luò)管理、網(wǎng)絡(luò)安全應用方面有著十分重要的應用價值,目前的流量檢測方法有多種,其中基于神經(jīng)網(wǎng)絡(luò)的檢測技術(shù)對此類非線性問題有著十分強大的模擬能力[15],而且其通過錯誤反向傳遞的方法,可以實現(xiàn)自我學習,文中通過對神經(jīng)網(wǎng)絡(luò)的學習速率開展深入研究,提出了自適應的學習策略,較好地解決了神經(jīng)網(wǎng)絡(luò)收斂速度慢的問題。
[1] 汪志勇,邱曉紅. 分形濾波的網(wǎng)絡(luò)流量預測[J]. 計算機工程與應用,2009, 45(03):124-125.
[2] 邱琳強,陳梅梅. 網(wǎng)絡(luò)流量組合預測模型研究[J]. 計算機仿真,2011, 28(01):206-208.
[3] 韓志杰,王汝傳. 一種新的 P2P網(wǎng)絡(luò)流量預測模型[J].計算機科學,2008, 35(09):39-41.
[4] 蔣海明,張劍英,王青青,等. P2P流量檢測與分析[J].計算機技術(shù)與發(fā)展,2008, 18(07):74-76.
[5] 沈富可,常潘,任肖麗. 基于 BP神經(jīng)網(wǎng)絡(luò)的P2P流量識別研究[J]. 計算機應用,2007, 27(S2):44-45.
[6] 聶榮,余建國,呂英華.國內(nèi)對p2p網(wǎng)絡(luò)的相關(guān)研究[J].通信技術(shù),2008,41(07):130-132.
[7] 馬華林,李翠鳳,張立燕. 基于灰色模型和自適應過濾的網(wǎng)絡(luò)流量預測[J]. 計算機工程,2009, 35(01):130-131.
[8] 劉佳, 張晨, 魏世民.一種新型 P2P 應用層并行路徑選擇機制[J]. 通信技術(shù),2011, 44(01):112-114.
[9] 孫遒. 基于 RBF算法的機房網(wǎng)絡(luò)流量預測[J]. 現(xiàn)代電子技術(shù),2011, 34(14):93-95.
[10] 雷霆,余鎮(zhèn)危. 一種網(wǎng)絡(luò)流量預測的小波神經(jīng)網(wǎng)絡(luò)模型[J]. 計算機應用,2006,26(03):526-528.
[11] 楊穎,陳德華. 基于小波神經(jīng)網(wǎng)絡(luò)的時間序列流數(shù)據(jù)的研究[J].計算機技術(shù)與發(fā)展,2006,16(06):193-195.
[12] 韓桂華,李法冰. 網(wǎng)格計算安全性研究[J].信息安全與通信保密,2007(03):116-117.
[13] 高光勇,吳維勇,鄧安遠. 基于小波分析和神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)流量預測[J]. 通信技術(shù),2008, 41(04):93-95.
[14] 王偉,張利剛,呂彬.基于主動識別技術(shù)的網(wǎng)關(guān)p2p流量檢測[J].信息安全與通信保密,2009(12):91-92.
[15] 徐劍,周德云,黃鶴.有色噪聲下基于神經(jīng)-模糊網(wǎng)絡(luò)的濾波器[J].信息安全與通信保密,2010(03):69-71.