專利名稱:Dpi和dfi相結合的網絡流量分類系統及分類方法
技術領域:
本發明涉及DPI和DFI相結合的網絡流量分類系統及分類方法,屬于網絡數據傳 輸領域。
背景技術:
隨著網絡應用層出不窮,P2P、網絡游戲、IPTV、 WEBTV等新興業務,占用了互聯網 大部分帶寬,以BT和Edonkey為代表的P2P應用己經占據了整個互聯網流量的2/3以 上,運營商的基礎網絡建設陷入了 "擁塞-擴容-再擁塞"的非正常局面,盈利能力相應 降低。無法實現業務識別增加了運營商的運營成本,降低了客戶的滿意度。于是,如何 深度感知網絡應用,提供網絡業務控制和管理手段,構建可以運營、可以管理的和諧網 絡,對P2P有效限制,合理引導,化不利為我所用,己經成為電信運營商目前亟需研究 的一個熱門課題。
基于以上原因,必須通過技術手段識別出不同的網絡數據流量,從而可以對其進行 控制和管理。
目前識別網絡數據流業務的方法主要有以下幾種
(1) 基于端口的網絡數據流業務識別技術這種識別技術是通過各種不同的應用在 IANA(Internet Assigned Numbers Authority)中注冊的不同端口號來進行識別的。例 如檢測到端口號為80時,則認為該應用代表著普通上網應用。而當前網絡上的一些非 法應用會采用隱藏或假冒端口號的方式躲避檢測和監管,造成仿冒合法報文的數據流侵 蝕著網絡。比如新型的P2P協議所使用的端口是變化的,因此端口號識別的準確率已經 越來越低,該方法已經越來越不適合對現有網絡數據流業務的識別。
(2) DPI (De印Packet Inspection)深度包檢測網絡數據流業務識別技術當碰到 某些使用動態端口的新型的協議時,采用基于端口的識別技術就會無能為力。DPI技術 除了對4層以下的基礎信息進行分析外,還增加了應用層分析,識別各種應用及其內容。 就是通過對一系列數據包的應用層負載特征進行分析,找出其應用層的特征字,從而對各種業務進行識別。這種方法在遇到應用層數據加密的時候處理起來就會非常困難。
(3)DFI (De印Flow Inspection)深度流檢測網絡數據流業務識別技術當DPI 識別技術遇到應用層數據加密的時候,就很難通過分析應用層數據的特征來對其進行識 別。DFI技術是根據流的特征來對業務進行識別的技術,即不同的應用類型體現在會話 連接或數據流上的狀態各有不同。DFI的特點是對整個數據流的特征進行分析,例如每 個流的平均包長,每個包到達的時間間隔等。無須對應用層數據進行檢測,因而應用層 數據加密與否對這種識別技術來講沒有區別。屬于同種類型業務的數據流的特征一般都 是非常接近的,例如QQ和MSN這兩種IM軟件的流量特征可能就非常接近,因此這種方 法的缺點是只能對網絡流量的幾個大類進行區分。例如IM, P2P,WEB等。
發明內容
發明目的
本發明要解決的技術問題在于,針對基于端口識別技術的準確率低,DPI和DFI技 術分別存在對應用層數據加密的業務的識別非常困難,以及只能對網絡流量進行大類區 分的缺陷,提出了將DPI和DFI相結合的網絡流量分類系統及分類方法。
技術方案-
本發明解決其技術問題所采用的技術方案是先對網絡流量進行大類的區分,然后 構造DPI網絡數據流業務識別系統,對應用層沒有加密的業務進行應用層特征提取,將
提取到的特征放入特征庫中,然后以DPI能夠識別的協議的數據流作為DFI業務識別模 塊的樣本,對DFI進行訓練,訓練完成以后將DFI模塊加在DPI業務識別系統后面,讓 DPI無法識別的數據流再經過DFI模塊的識別,從而對DPI無法識別的數據流進行大類 的區分。具體技術方案如下
本發明的DPI和DFI相結合的網絡流量分類系統,包括DPI業務識別系統和DFI流 量識別系統兩個模塊結合而成;
所述的DPI業務識別系統中,包括
A. 流表檢測模塊,判斷當前的數據流是否為已經標記類型的數據流;
B. 數據流特征庫,存儲數據流的特征;
C. 流量識別模塊,根據數據流特征庫中的特征識別網絡流量代表的不同業務;D. 協議處理模塊,用于對具體業務的處理,以及對網絡大類的處理; 所述的DFI流量識別系統中,包括
E. 樣本獲取模塊,用于將DPI能夠精確識別的業務的流特征提取出來,分成不同的 類別,作為分類器訓練模塊的訓練樣本;
F. 分類器訓練模塊,對樣本獲取模塊提供的樣本進行訓練獲得一個訓練模型;
G. 分類器分類預測模塊,根據分類器訓練模塊獲得的模型對其他數據進行分類; 本發明還提供一種基于本發明的網絡流量分類方法,包括以下步驟
(a) 數據流先經過DPI業務識別系統中的流表檢測模塊,流表檢測模塊檢測當前 數據流是否在流表檢測模塊維護的狀態表中,當該數據流在狀態表中,則流表檢測模塊 直接將當前數據流標記以后,發送至協議處理模塊;當該數據流不在狀態表中,則流標 檢測模塊將該數據流發送至流量識別模塊,進入(b)步驟;
(b) 流量識別模塊檢査該數據流是否含有DPI業務識別系統中的數據流特征庫中 的任意一條特征;當流量識別模塊在數據流特征庫中識別到與該數據流有匹配的流量特 征,則標記當前報文對應的該數據流為特定的數據流,更新流表檢測模塊中維護的狀態 表,同時將當前數據流標記以后發送至協議處理模塊;當流量識別模塊在數據流特征庫 中沒有識別到與該數據流匹配的流量特征,則將該數據流發送至DFI流量識別系統,進 入(c)步驟;
(c) 流量識別模塊將能夠識別的數據流發送至DFI流量識別系統中的樣本獲取模 塊,樣本獲取模塊在線獲得該數據流的樣本文件以后,將該樣本文件發送至分類器訓練 模塊進行離線訓練,獲得分類模型,分類器訓練模塊將此分類模型發送至分類器分類預 測模塊;分類器分類預測模塊根據訓練得到的分類模型對(b)步驟中流量識別模塊無 法識別的數據流進行分類;
(d) 分類器分類預測模塊將分好類的數據流做好相應標記發送至協議處理模塊,協 議處理模塊根據以上步驟中對數據流的不同標記,分別進行具體業務或者針對不同大類 的處理。
在本發明所述的DPI業務識別系統中,所述數據流特征庫,包括網絡流量各個大類 中的部分業務的應用層特征。例如屬于即時消息這一大類的業務有QQ和百度HI等,QQ的應用層特征為數據包以0x02開始,以0x03結束,百度HI的應用層特征為前八個 字節為0x0000010031564d49。屬于P2P這一大類的業務有TTlive和Sopcast等,TTlive 的應用層特征為每個流的第一個包的凈載荷長度為52字節,前三個字節為OxffffOl, 最后兩個字節為0x0002, Sopcast的應用層特征為第一個有凈載荷的數據包的特征字用 正則表達式表示為'DESCRIBE. *User-Agent:WMPlayer。
有益效果
本發明的DPI和DFI相結合的網絡流量分類系統及方法,先對網絡數據進行DPI 識別,DPI無法識別的數據流再進過DFI進行分類,增加了對網絡流量進行分類的準確 性。
圖1是DPI識別模塊的結構框圖; 圖2是DFI識別模塊的結構框圖3是本發明DPI和DFI相結合的網絡流量分類方法的框圖; 圖4是本發明DPI和DFI相結合的網絡流量分類方法的流程圖。
具體實施例方式
下面結合附圖對本發明進行進一步詳細的說明。 .
如圖1所示,在本發明的DPI和DFI相結合的網絡流量分類系統的第一實施步驟中, 網絡流量識別系統連接到基于TCP/IP協議的網絡中,其中有一個流表檢測模塊, 一個 協議處理模塊, 一個流量識別模塊以及一個數據流特征庫。
數據流特征庫中包含有分別屬于幾個網絡流量大類的各種不同的業務。舉例如下
(1) 屬于IM (即時通訊)這一大類的有QQ和百度HI等,QQ的應用層特征為數據 包以0x02開始,以0x03結束,百度HI的應用層特征為前八個字節為 0x0000010031564d49。
(2) 屬于P2P這一大類的業務有TTlive和Sopcast等,TTlive的應用層特征為 每個流的第一個包的凈載荷長度為52字節,前三個字節為0xffff01,最后兩個字節為0x0002, Sopcast的應用層特征為第一個有凈載荷的數據包的特征字用正則表達式表示 為'DESCRIBE. *User-Agent:WMPlayer。
數據流特征庫中存儲有上述各類業務的特征。
流表檢測模塊維護一張狀態表,表中信息包括數據流的五元組(源ip地址,目的 ip地址,源端口,目的端口,協議號)以及所屬協議類型的ID,網絡數據流進入以后 首先將自己的五元組與狀態表中的信息比對,査看是否在該狀態表中,若在該狀態表中 則將其用所屬協議類型的ID標注后送入協議處理模塊。
例如狀態表中維護的一條信息格式如下表第二行
源ip地址目的ip地址源端口目的端口協議類型協議ID
119.147.18.4710.8.7,43800040000x115
其中119. 147. 18. 47是源ip地址,10. 8. 7. 43是目的ip地址,8000是源端口 , 4000 是目的端口, 0x11是協議號(UDP協議),5是可以自己定義的協議ID,比如我們把QQ 的協議ID定為5,那么5就代表QQ的數據流。 一旦有新數據流進入流表檢測模塊,首 先將自己的五元組與表中的信息的前五項(五元組)進行比對,如果發現狀態表中存在 有自己的五元組,則將該數據流用協議ID進行標注后送入協議處理模塊,若在狀態表 中沒有發現與自己五元組匹配的記錄則進入流量識別模塊。
流量識別模塊先對網絡數據流應用層數據進行分析,并將其應用層特征與數據流特 征庫中的特征進行比對,若應用層數據的特征字符串符合數據流特征庫中的一個或者多 個特征,則流量識別模塊將其標記為對應的協議ID,并且將該流量更新到流表檢測模 塊,若在數據流特征庫中不存在與其特征字符串匹配的特征,則數據流量識別模塊不對 其進行標記,而是將其送入DFI識別模塊,由DFI識別模塊對其進行進一步識別。
數據流特征庫中存放有事先已經識別的業務的應用層特征字,比如bitspirit的應 用層前20個字節恒為0xl3426974546f7272656e742070726f746f636f6c , PP點點通下 載文件時應用層前5個字節恒為0x3c00000001。流量識別模塊就是通過與庫中特征比 對來判斷數據流是否能夠識別以及屬于何種協議。
如圖2所示,是DPI和DFI相結合的網絡流量分類系統中的DFI部分的結構框圖, 其中主要有樣本獲取模塊,分類器訓練模塊,和分類器分類預測模塊,樣本獲取模塊將 圖1中的流量識別模塊能夠準確識別的數據流作為樣本,將其歸入之前分好的幾個網絡流量的大類中,并從中提取出所需要的流特征,比如QQ是流量識別模塊能夠準確識別
的,并且QQ屬于IM (即時通訊)這一大類,那么每個QQ網絡數據流都可以作為一個 IM這一大類的樣本。同樣我們也能對百度HI進行準確識別,并且百度HI也屬于IM這 一大類,那么每個百度HI網絡數據流也可以作為一個IM這一大類的樣本。獲得樣本后 我們計算出每個樣本的流特征,比如該流的平均包長,包的平均時間間隔等,并對這個 樣本進行標記以確定其所屬的大類。采用同樣的方法我們可以通過對TTlive和Sopcast 網絡數據流提取出P2P這一個大類的樣本,以及其他幾個大類的樣本,將所有這些樣本 集中在一起我們就可以獲得一個樣本文件。其文件格式如下表
所屬大類ID 特征索引特征值特征索引 特征值 ...........1 1: 譲 20.005 ..........
2 1: 450 20.03 ..........
1 1: 950 20.006 ..........
3 1: 100 20.07 ..........
該文件中每一行都代表一個樣本,每列的第一個字符表示該行樣本所屬的大類,例
如我們把P2P這一大類用1這個ID表示,把IM (即時通訊)這一大類用2表示,把WEB 應用這一大類用3表示,那么這個文件的第一行和第三行表示是P2P的樣本數據,第二 行表示是IM (即時通訊)的樣本數據,第四行表示是WEB應用的樣本數據。文件每一 行的大類ID后面是特征索引和該特征的值,例如我們把流的平均包長這一流特征用1 索引,把包到達的平均時間間隔用2索引,那么代表第一行就表明這一樣本數據的平均 包長為1000,包到達的平均時間間隔為0.005。每個流的特征肯定不止兩項,其他特征 這里不再列出。樣本獲取模塊的作用就是從流量識別模塊能夠準確識別的數據流中提取 其流特征,將該特征以樣本文件的形式保存。
分類器訓練模塊通過對樣本獲取模塊獲取的樣本的訓練獲得一個預測模型。 分類器分類預測模塊通過預測模型對流量識別模塊無法識別的流量進行分類。 圖3是DPI識別模塊和DFI識別模塊的結合,可以將其分成在線和離線兩個大類, 流表檢測模塊,協議處理模塊,流量識別模塊,數據流特征庫,樣本獲取模塊,分類器 分類預測模塊是在線的,分類器訓練模塊是離線的。在進行在線的分類之前,需要先進 行樣本獲取和分類器訓練生成一個分類模型的過程,這時候流量識別模塊將能夠準確識別的數據流直接送入樣本獲取模塊。
樣本獲取模塊在線獲得樣本文件以后可以對分類器進行離線訓練,獲得分類模型,
當DPI系統中的流量識別模塊無法識別時,再經過DFI系統的分類器分類預測模塊,分
類器分類預測模塊根據訓練得到的分類模型對流量識別模塊無法識別數據流進行分類。 圖4是本發明DPI和DFI相結合的網絡流量分類方法的流程圖。 該流程圖是在線分類時網絡數據的處理過程,其前提是分類器已經訓練完成并且獲
得了分類模型。
首先,在網絡流量到達時,首先到達流表檢測模塊,根據報文中的報頭檢測當前 報文是否已經標記。若當前報文對應數據流的類型已經標記,則使用與類型對應的方式 處理當前數據流。若當前報文對應數據流的類型沒有標記,則進入流量識別模塊進行識 別判斷,流量識別模塊識別的依據就是圖1中的數據流特征庫,若流量識別模塊能夠識 別則更新流表檢測模塊,以便使屬于同一流量的報文在流表檢測時就能檢測出來。若流 量識別模塊無法識別,則進入分類器分類預測模塊,分類器分類預測模塊根據DFI離線 訓練得到的分類模型對無法識別的流量進行分類。由于所有網絡數據流量必然屬于幾個 大類中的一類,所以在這里所有DPI的流量識別模塊無法識別的流量都被按大類進行了 分類。分類完成以后送入協議處理模塊,協議處理模塊根據類別的不同分別進行處理。 這里的協議處理模塊包含兩大處理對象, 一個是對具體業務的處理,另外一個是對網絡 大類的處理。
通過上述方式處理網絡流量,比單純地使用DPI或者DFI來得全面,它能夠對應用 層沒有加密的業務進行精確地識別,也能夠對應用層加密的業務進行大類的區分。
權利要求
1、DPI和DFI相結合的網絡流量分類系統,其特征在于包括DPI業務識別系統和DFI流量識別系統兩個模塊結合而成;所述的DPI業務識別系統中,包括A.流表檢測模塊,判斷當前的數據流是否為已經標記類型的數據流;B.數據流特征庫,存儲數據流的特征;C.流量識別模塊,根據數據流特征庫中的特征識別網絡流量代表的不同業務;D.協議處理模塊,用于對具體業務的處理,以及對網絡大類的處理;所述的DFI流量識別系統中,包括E.樣本獲取模塊,用于將DPI能夠精確識別的業務的流特征提取出來,分成不同的類別,作為分類器訓練模塊的訓練樣本;F.分類器訓練模塊,對樣本獲取模塊提供的樣本進行訓練獲得一個訓練模型;G.分類器分類預測模塊,根據分類器訓練模塊獲得的模型對其他數據進行分類。
2、 一種基于權利要求1所述的DPI和DFI相結合的網絡流量分類系統的網絡流量分類方法,包括以下步驟(a) 數據流先經過DPI業務識別系統中的流表檢測模塊,流表檢測模塊檢測當前 數據流是否在流表檢測模塊維護的狀態表中,當該數據流在狀態表中,則流表檢測模塊 直接將當前數據流標記以后,發送至協議處理模塊;當該數據流不在狀態表中,則流標 檢測模塊將該數據流發送至流量識別模塊,進入(b)步驟;(b) 流量識別模塊檢查該數據流是否含有DPI業務識別系統中的數據流特征庫中 的任意一條特征;當流量識別模塊在數據流特征庫中識別到與該數據流有匹配的流量特 征,則標記當前報文對應的該數據流為特定的數據流,更新流表檢測模塊中維護的狀態 表,同時將當前數據流標記以后發送至協議處理模塊;當流量識別模塊在數據流特征庫 中沒有識別到與該數據流匹配的流量特征,則將該數據流發送至DFI流量識別系統,進 入(c)步驟;(c) 流量識別模塊將能夠識別的數據流發送至DFI流量識別系統中的樣本獲取模 塊,樣本獲取模塊在線獲得該數據流的樣本文件以后,將該樣本文件發送至分類器訓練模塊進行離線訓練,獲得分類模型,分類器訓練模塊將此分類模型發送至分類器分類預 測模塊;分類器分類預測模塊根據訓練得到的分類模型對(b)步驟中流量識別模塊無 法識別的數據流進行分類;(d)分類器分類預測模塊將分好類的數據流做好相應標記發送至協議處理模塊,協 議處理模塊根據以上步驟中對數據流的不同標記,分別進行具體業務或者針對不同大類 的處理。
全文摘要
本發明公開了一種DPI和DFI相結合的網絡流量分類系統及分類方法,包括DPI業務識別系統和DFI流量識別系統兩個模塊結合而成;其中DPI模塊又包括流表檢測模塊和流量識別模塊;DFI模塊包括樣本獲取模塊,分類器訓練模塊和分類器分類預測模塊。樣本獲取模塊將DPI中的流量識別模塊能夠準確識別的數據流劃分成幾個大類,并且將其作為樣本對分類器訓練模塊進行訓練,獲得能對網絡流量進行大類區分的分類模型,然后DPI的流量識別模塊無法識別的流量再通過DFI的分類器分類預測模塊就能達到對DPI無法識別的流量進行大類區分的目的。本發明比單純地使用DPI或者DFI更全面,能夠對應用層沒有加密的業務進行精確地識別,也能夠對應用層加密的業務進行大類的區分。
文檔編號H04L12/26GK101645806SQ20091003464
公開日2010年2月10日 申請日期2009年9月4日 優先權日2009年9月4日
發明者梁 王, 裴文江 申請人:東南大學