曾傳璜,陳景忠
(江西理工大學(xué)信息工程學(xué)院,江西贛州 341000)
隨著互聯(lián)網(wǎng)技術(shù)突飛猛進(jìn)的發(fā)展,網(wǎng)絡(luò)結(jié)構(gòu)從傳統(tǒng)的非對稱C/S,B/S模式,逐漸轉(zhuǎn)向 P2P結(jié)構(gòu)的應(yīng)用模型,相對于傳統(tǒng)的C/S模式,P2P對等網(wǎng)絡(luò)突破了它的局限性,其充分利用了網(wǎng)絡(luò)中的閑置資源,分布式化地來進(jìn)行任務(wù)與計(jì)算,極大提高了網(wǎng)絡(luò)的應(yīng)用效率,同時也方便了廣大網(wǎng)絡(luò)用戶獲取和分享各種網(wǎng)絡(luò)資源。例如,以PPTV、PPStream、QQLIVE等為代表的P2P流媒體應(yīng)用程序就為眾多網(wǎng)絡(luò)用戶帶來了豐富多彩的網(wǎng)絡(luò)電視體驗(yàn),提供了許多精彩的影視、直播節(jié)目,極大方便了人們的生活。然而,正是因?yàn)榱髅襟w應(yīng)用被人們廣泛使用,其在給用戶帶來速度體驗(yàn)的同時,也引發(fā)了各種版權(quán)、網(wǎng)絡(luò)安全和帶寬消耗等問題,怎樣通過有效的技術(shù)手段,迅速、準(zhǔn)確地識別出流媒體應(yīng)用流,管理和控制各種流媒體業(yè)務(wù)流量,區(qū)分不同服務(wù),做出相應(yīng)的網(wǎng)絡(luò)策略調(diào)整,提供不同質(zhì)量保障,滿足用戶的業(yè)務(wù)需求成為當(dāng)前網(wǎng)絡(luò)運(yùn)營商面臨的挑戰(zhàn)之一。本文便是針對這些問題所提出的一套基于DPI的流媒體流量監(jiān)控系統(tǒng)。
本系統(tǒng)主要包含3個模塊,分別為特征庫識別模塊、策略配置模塊、業(yè)務(wù)流量控制模塊。該系統(tǒng)架構(gòu)圖如圖1所示。
圖1 流量監(jiān)控系統(tǒng)架構(gòu)圖
從圖1系統(tǒng)架構(gòu)圖可以看出,網(wǎng)絡(luò)用戶所請求的數(shù)據(jù)流需先通過預(yù)先提取的特征庫模塊進(jìn)行匹配識別,以檢測特征庫內(nèi)是否有與用戶請求數(shù)據(jù)特征相匹配的協(xié)議。隨后該模塊再將識別結(jié)果傳遞至策略配置模塊,然后策略配置模塊根據(jù)識別結(jié)果查詢自身策略庫是否有相應(yīng)的協(xié)議策略,若存在相應(yīng)的策略則將查詢結(jié)果傳遞至業(yè)務(wù)流量控制模塊,控制模塊則根據(jù)用戶控制需求下發(fā)相應(yīng)的控制策略,從而達(dá)到用戶所預(yù)期的放行、限流或阻斷效果[1]。若控制模塊未下發(fā)任何策略,則數(shù)據(jù)流相當(dāng)于沿著圖1虛線箭頭直接傳輸至流出口。
本模塊所需解決問題是如何準(zhǔn)確識別出網(wǎng)絡(luò)中各種協(xié)議的流量,并且根據(jù)用戶進(jìn)行網(wǎng)絡(luò)行為時所產(chǎn)生的網(wǎng)絡(luò)流量大小統(tǒng)計(jì)出實(shí)時占有百分比,從而實(shí)現(xiàn)對用戶網(wǎng)絡(luò)行為的監(jiān)控。目前業(yè)內(nèi)最為流行的流量檢測技術(shù)[2]主要有兩種:一是以DPI(Deep Packet Inspection)深度包檢測技術(shù)為代表的特征字檢測方法;另一種是以DFI(Deep Flow Inspection)深度流檢測技術(shù)為代表的基于數(shù)據(jù)流特征的檢測方法。表1為它們優(yōu)缺點(diǎn)對比,根據(jù)本系統(tǒng)對于精確到具體應(yīng)用的嚴(yán)格要求,通過對比可知DPI技術(shù)更加符合本系統(tǒng)的需求。
表1 DPI與DFI優(yōu)缺點(diǎn)對比
2.1.1 DPI深度包檢測技術(shù)
DPI從大方向上是屬于基于報(bào)文內(nèi)容的一種流量識別方法。所謂報(bào)文內(nèi)容主要包含了報(bào)文長度、固定端口號、固定IP、應(yīng)用層載荷數(shù)據(jù)特征,之所以稱之為“深度”是相對于傳統(tǒng)流量檢測技術(shù)而言。傳統(tǒng)流量檢測技術(shù)僅從數(shù)據(jù)網(wǎng)絡(luò)層和傳輸層報(bào)文頭獲得基本信息,包括源/目的IP地址、端口號、TCP/UDP連接狀態(tài)、協(xié)議號等,但隨著動態(tài)端口、HTTP隧道等偽裝技術(shù)的不斷發(fā)展,此類檢測技術(shù)已經(jīng)很難適應(yīng)當(dāng)今網(wǎng)絡(luò)流量管理需求。DPI技術(shù)通過提取對等網(wǎng)絡(luò)數(shù)據(jù)流應(yīng)用層的數(shù)據(jù),分析其所負(fù)載的協(xié)議特征來判斷其是否屬于P2P流媒體流量,進(jìn)而確定其具體屬于哪一種應(yīng)用,如圖2所示。該技術(shù)需要首先收集各種應(yīng)用運(yùn)行時所產(chǎn)生的數(shù)據(jù)流量在應(yīng)用層負(fù)載特征(本文利用Wireshark抓包獲取相關(guān)應(yīng)用數(shù)據(jù)流量),再將這些特征按照哈希表結(jié)構(gòu)組成協(xié)議特征庫,當(dāng)進(jìn)行報(bào)文檢測時將深度掃描數(shù)據(jù)包應(yīng)用層信息,提取其協(xié)議特征并與特征庫中的特征串進(jìn)行模式匹配,若匹配成功,則識別為對應(yīng)的程序應(yīng)用。
圖2 DPI深度檢測
2.1.2 模塊實(shí)現(xiàn)
當(dāng)用戶網(wǎng)絡(luò)數(shù)據(jù)流量到達(dá)圖1所示特征庫識別模塊時,該模塊立即對數(shù)據(jù)報(bào)文進(jìn)行遍歷解析報(bào)文,通過Push-Queue操作壓入數(shù)據(jù)包隊(duì)列,再通過PopQueue操作將數(shù)據(jù)包送至引擎進(jìn)行識別。數(shù)據(jù)到達(dá)引擎后,首先根據(jù)一些知名服務(wù)端口初步對流量進(jìn)行協(xié)議判定,并將結(jié)果記錄,在后繼引擎識別中優(yōu)先對所判定協(xié)議進(jìn)行匹配。若端口信息庫未匹配到相應(yīng)端口,特征庫識別模塊則直接進(jìn)行引擎識別[3-4]。報(bào)文在傳送至引擎識別之前,會先進(jìn)行包頭解析處理,實(shí)際到達(dá)引擎的是如下所示的結(jié)構(gòu)體:
特征庫識別模塊經(jīng)過初步的端口識別之后,隨即進(jìn)行該模塊最核心的部分:DPI識別。DPI識別中的協(xié)議特征庫是采用哈希表的結(jié)構(gòu)來存儲所有協(xié)議特征,同時預(yù)設(shè)兩個接口,其中一個接口用于識別時與解析引擎進(jìn)行交互匹配,另外一個接口則提供一個存儲所有應(yīng)用名的全局?jǐn)?shù)組給策略配置模塊使用。DPI識別流程如圖3所示。
圖3 DPI識別流程圖
本節(jié)主要闡述策略配置模塊的實(shí)現(xiàn)過程。本模塊較為簡單,主要包含特征庫識別模塊所提供的存儲應(yīng)用名全局?jǐn)?shù)組以及策略信息庫。其中全局?jǐn)?shù)組為用戶提供了查詢應(yīng)用名的友好界面,策略信息庫則根據(jù)用戶查詢結(jié)果提供相應(yīng)的一個或多個配置策略,用戶根據(jù)需求選擇下發(fā)相應(yīng)策略。同時,下發(fā)策略信息將傳遞至流量控制模塊,使得控制模塊發(fā)出相應(yīng)的干擾控制報(bào)文。
所謂流量控制[5],顧名思義,是一種對特定網(wǎng)絡(luò)流量進(jìn)行速率限制或完全阻斷的技術(shù),控制的前提是先完成對具體協(xié)議應(yīng)用的識別,其精確度也取決于識別的精確度,可知本模塊高度依賴于前面的特征庫識別模塊。本文系統(tǒng)選用旁路干擾流量控制來作為本模塊實(shí)現(xiàn)的核心技術(shù)。
2.3.1 旁路干擾流量控制
旁路干擾流量控制主要利用數(shù)據(jù)包偽裝技術(shù)將偽裝的干擾數(shù)據(jù)包發(fā)送至正在通信的TCP,UDP連接中,降低通信的數(shù)據(jù)傳輸速率或直接阻斷通信連接從而達(dá)到控制流量的目的。根據(jù)P2P數(shù)據(jù)傳輸所采取的方式,旁路干擾流量控制分為以下幾種方法:
1)TCP降速:通過偽造并發(fā)送特殊sequence報(bào)文來減小TCP的滑動窗口值。
2)TCP阻斷:通過偽造并發(fā)送TCP RST報(bào)文來阻斷TCP連接。
3)UDP降速:通過偽造并發(fā)送P2P應(yīng)用層特殊控制命令方式來降低UDP連接傳輸速率
4)UDP阻斷:通過偽造并發(fā)送P2P應(yīng)用層特殊控制命令方式來阻斷UDP連接。
其工作方式如圖4所示。
圖4 旁路干擾流量控制工作方式
2.3.2 模塊實(shí)現(xiàn)
由于本系統(tǒng)采用的是旁路干擾流量控制方式,故控制模塊主要功能是根據(jù)用戶下發(fā)策略產(chǎn)生相應(yīng)的控制報(bào)文,從而達(dá)到實(shí)現(xiàn)對用戶網(wǎng)絡(luò)流量的控制[6]。該模塊主要包含3部分:
1)策略接收器部分,用于接收策略配置模塊所傳遞的策略信息,并發(fā)出執(zhí)行命令至后兩部分;
2)報(bào)文緩存器部分,用于緩存發(fā)送控制報(bào)文所需要的報(bào)文內(nèi)容,從而為后一部分提供支持;
3)控制報(bào)文發(fā)送器部分,用于根據(jù)策略接收器所接收策略發(fā)送控制報(bào)文,同時向網(wǎng)絡(luò)推送相關(guān)信息。
業(yè)務(wù)流量控制模塊的流程如圖5所示。
圖5 業(yè)務(wù)流量控制流程圖
為實(shí)現(xiàn)本系統(tǒng)功能并驗(yàn)證其性能,實(shí)驗(yàn)環(huán)境中配備了24口華為交換機(jī)1臺,搭載Linux系統(tǒng)并導(dǎo)入系統(tǒng)各模塊(特征庫識別、流量控制等模塊)服務(wù)器1臺,PC客戶端主機(jī)若干臺,本系統(tǒng)的測試拓?fù)鋱D如圖6所示。
如圖6所示,串聯(lián)好各設(shè)備之后先在Switch交換機(jī)上配置一個10網(wǎng)段的Vlan、PC客戶端、Linux服務(wù)器都連接在此Vlan中,同時將PC客戶端的IP分別配置為10.4.0.X,網(wǎng)關(guān)配置為Linux服務(wù)器的網(wǎng)關(guān):10.4.0.81,使得PC客戶端訪問網(wǎng)絡(luò)時流量必須通過Linux服務(wù)器。
圖6 本系統(tǒng)的測試拓?fù)鋱D
3.2.1 流媒體流量識別準(zhǔn)確度分析
本系統(tǒng)主要功能是為實(shí)現(xiàn)對流媒體流量的監(jiān)控,其識別準(zhǔn)確率分為識別率和誤報(bào)率,根據(jù)需求本系統(tǒng)識別率越高系統(tǒng)性能越強(qiáng),且不允許存在誤報(bào)率。為驗(yàn)證本系統(tǒng)識別準(zhǔn)確度,分別測試幾種常用流媒體客戶端或視頻網(wǎng)站,其識別結(jié)果如表2所示。從表中可以看出,這些常用流媒體客戶端或網(wǎng)站識別率均在90%以上,且無誤報(bào),可知系統(tǒng)識別性能能達(dá)到用戶需求。
表2 流媒體應(yīng)用識別結(jié)果
3.2.2 流媒體流量控制效果分析
為驗(yàn)證本系統(tǒng)的控制效果,以PPStream客戶端為例,驗(yàn)證其控制性能。由表2可知PPStream客戶端流量識別為PPStream協(xié)議,因此,為達(dá)到對其限流或阻斷效果,測試時應(yīng)下發(fā)PPStream策略。本系統(tǒng)驗(yàn)證阻斷效果時采用了下發(fā)PPStream策略,如圖7所示。
圖7 策略配置圖(截圖)
下發(fā)策略客戶端阻斷效果如圖8所示。可知下行速度已降至0,點(diǎn)播視頻無法繼續(xù)緩沖播放。
綜上可知,本系統(tǒng)對于流媒體應(yīng)用的識別與控制均能達(dá)到較好的效果,完全能滿足用戶的需求。
圖8 阻斷效果圖(截圖)
本文提出了一種基于DPI的流媒體流量監(jiān)控系統(tǒng)。該系統(tǒng)結(jié)合DPI應(yīng)用背景,主要利用Wireshark截取PPTV、PPStream、QQLIVE等流媒體應(yīng)用實(shí)時在線時的數(shù)據(jù)報(bào)文,通過對數(shù)據(jù)流的分析,提取相關(guān)應(yīng)用的協(xié)議特征,整合成特征庫導(dǎo)入識別引擎,從而有效地實(shí)現(xiàn)了對于流媒體應(yīng)用的識別控制。目前,該系統(tǒng)已成熟運(yùn)用在市場上,充分體現(xiàn)了其應(yīng)用領(lǐng)域的廣泛性。
:
[1]米淑云.IP網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2009.
[2]魯剛,張宏莉,葉麟.P2P流量識別[J].軟件學(xué)報(bào),2011,22(6):1281-1298.
[3]王衛(wèi)東.基于DFI和DPI技術(shù)的異常流量監(jiān)控[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2009(1):4-11.
[4]SEN S,WANG J.Analyzing peer-to-peer traffic across large net-works[J].IEEE/ACM Trans.Networks,2004,12(2):219-232.
[5]任豐原,林闖,劉衛(wèi)東.IP網(wǎng)絡(luò)中的擁塞控制[J].計(jì)算機(jī)學(xué)報(bào),2003(9):1024-1034.
[6]THOMAS K,ANDRE B,MICHALIS F,et al.Transport layer identification of P2P traffic[C]//Proc.2004 ACM SIGCOMM Internet Measurement Conference.[S.l.]:ACM Press,2004:121-134.