專利名稱:基于決策樹高速并行處理的網絡流量在線分類方法及裝置的制作方法
技術領域:
本發明涉及一種網絡流量在線分類的方法及裝置,尤其涉及一種基于決策樹高速并行處理策略實現TCP流量在線分類的方法及裝置,屬于通信技術領域。
背景技術:
如今,網絡技術的發展越來越迅速,基于網絡的應用越來越多、越來越復雜。各種各樣的應用不但搶占著越來越多的網絡資源,而且也對QoS和網絡安全帶來了巨大的威脅。在這樣的背景下,如何給廣大的互聯網用戶提供一個安全、可靠、高效的使用環境,如何發現并避免網絡的異常流量,是網絡管理領域需要解決的重要問題。為了解決上述這些問題,網絡研究人員提出了流量調度、容量規劃等一系列策略來提高網絡的運營效率。然而, 無論是對現有網絡進行擴容改造,還是進行QoS調度,都必須對網絡流量中的各種應用(如 P2P、ffeb、IM、視頻流量等)進行準確的分類與識別。此外,在網絡安全、流量計費、應用趨勢分析等研究領域,準確的流量分類也具有極其重要的意義。有線寬帶和3G/4G的迅速推廣, 使得流量分類這一有效進行網絡精細化管理的工具更有廣闊的應用前景。
傳統的流量分類技術主要基于傳輸層的端口信息,然而近年來,在互聯網網絡帶寬不斷提高以及應用層協議逐漸復雜多樣的趨勢下,許多網絡應用與端口的相關性越來越小,偽裝端口以及動態端口等情況使得上述方法已經很難適應技術和應用的發展與需求, 這就迫切需要引入新的理論和技術,深層次挖掘網絡應用的內在特征。為了適應hternet 流量數據龐大、應用屬性動態變化的特點,利用機器學習方法處理流量分類問題成為當前網絡測量領域內一個新興的研究熱點。例如樸素貝葉斯算法、改進貝葉斯算法、決策樹算法、KNN算法、支持向量機算法、神經網絡算法以及各種聚類算法等等。基于機器學習的流量分類技術不依賴于傳輸層端口號或解析有效負載來識別網絡應用,而是利用流量在傳輸過程中表現出來的流的各種統計特征如包長、包間隔時間等來識別網絡應用,方法本身不受偽裝端口、動態端口、有效負載加密甚至網絡地址轉換的影響,在分類性能和靈活性方面, 較之前述各種方法都有所突破。
然而,目前業界對流量分類技術的研究還遠遠無法滿足業務發展的需求,主要體現在目前大多數技術都采用離線分類的手段,無法實現實時在線的分類。這就限制了流量分類技術在高速骨干網中的應用。
為了滿足目前和未來高速骨干網的需要,流量分類技術迫切需要滿足以下幾點要求1)分類準確性較高,避免采用端口或者凈荷作為主要識別特征;幻算法復雜度較低,具體實現設計上要有并行化處理的特性,易于硬件實現(如FPGA、CPLD、ASIC等),保證網絡流量的高速在線分類;幻分類穩定性較好,能夠適用于復雜多變的網絡環境。發明內容
本發明提供了一種基于決策樹高速并行處理策略實現TCP流量在線分類的方法及裝置,能夠實現網絡流量的高速實時在線分類,穩定性好,準確性高。
為實現上述的發明目的,本發明采用下述的技術方案
一種基于決策樹高速并行處理策略實現TCP流量在線分類的方法,其特征在于包括以下步驟
步驟1,前期真實流量數據的采集、分流及手工分類采集網絡真實流量數據集, 利用五元組將數據集分離為不同的TCP流,對TCP流的集合進行手工分類,使每一條TCP流都與一種協議類型相對應。
步驟2,提取前期TCP流集合的若干個包特征提取每一條TCP流中關于數據包的特征,并按照數據包在該TCP流的先后順序構建初步特征序列,然后根據特征選擇算法對初步提取的包特征進行處理,篩選出最能體現流類別特性的包特征并形成最終特征序列。
步驟3,決策樹分類模型的建立對步驟2構成的最終特征序列,利用決策樹算法進行建樹。
步驟4,對步驟3中建立的決策樹進行數據結構轉換并存儲到硬件設備(如FPGA、 CPLD、ASIC等)的存儲設備(如RAM、R0M、FLASH等)中通過對決策樹的遍歷,一方面提取決策樹的中間節點值,對同一屬性的各中間節點值進行從小到大的排序,然后對所有屬性的各個中間節點值按順序進行從小到大的編碼,另一方面提取決策樹的邊緣節點值,對邊緣節點值同樣也進行編碼,邊緣節點值的編碼是一個范圍,取決于到達該邊緣節點所經歷的各中間節點的編碼值。中間節點值及其編碼以及邊緣節點值及其編碼分別存儲在兩塊分離的存儲設備(如RAM、R0M、FLASH等)中。其中在流量分類裝置用于網絡流量在線分類之前,以離線處理的方式建立決策樹并對決策樹進行數據結構轉換。
步驟5,對待分類的數據包進行分流及類別判斷根據五元組將數據包劃分到不同的流并查找流信息表獲取分類信息,流信息表用于記錄流的五元組信息以及該條流的類別。流信息表僅需要保存已分類的流的記錄,不需要保存未分類的流的記錄,因此對流信息表進行查找時,若不存在記錄則可以立即判斷為未分類,從而節省查找時間。
步驟6,對當前數據包進行打標簽處理并提取待分類TCP流的包特征利用步驟5 提取的類別信息對所有經過的數據包進行打標簽處理,若數據包所屬的流已經被分類,則打上相應的類別標簽,若未分類,則按照一定的原則標記一個默認的標簽,然后判斷該數據包是否需要被提取包特征并做相應處理。在這里,包特征的提取與步驟2中采用的最終特征序列相對應,需要按包到達順序進行提取,并構建待分類流的特征序列,包的順序信息按照到達觀測點的時間順序進行排列,取三次握手的第一個請求包即Setup包作為該流的第一個包。待分類流的特征序列存儲在參數表中,參數表的一條記錄包括五元組、各個包特征值以及參數是否滿的標志。已分類被打上正確標簽的包與未分類打上默認標簽且需要進行參數提取的包需要進行時鐘同步處理,即插入相應級別的流水線以保證數據包傳輸路線上的FIFO不會出現溢出現象。
步驟7,決策樹查找利用步驟6所得的待分類流的特征序列對步驟4所得的兩塊存儲設備(如RAM、ROM、FLASH等)進行查找,判斷該TCP流的類別值并更新流信息表。在查找過程中采用并行處理策略,僅需要兩個時鐘周期即可完成決策樹的查找過程。即第一個時鐘周期并行比較所有屬性的所有中間節點值,確定該流所屬的所有中間節點編碼值并合并為一個數據,第二個時鐘周期利用前一個時鐘周期的結果數據并行比較所有邊緣節點的編碼值,從而確定該流的類別。
一種基于硬件設備(如FPGA、CPLD、ASIC等)的流量在線分類裝置,用于實現上述的利用決策樹高速并行處理策略實現TCP流量在線分類的裝置包括在線部分和離線部分, 其中離線部分具有決策樹建樹模塊、決策樹結構轉換模塊、分類結果處理模塊;在線部分包括順序連接的MAC層處理模塊一、數據包輪詢管理模塊、分流判斷模塊、流量信息提取及打標簽模塊、決策樹查找模塊、MAC層處理模塊二。其中,離線部分的決策樹結構轉換模塊與在線部分的決策樹查找模塊相連接,離線部分的分類結果處理模塊與在線部分的決策樹查找模塊通過一個流信息表間接連接。在線部分采用流水線處理技術。
決策樹建樹模塊,用于根據前期真實網絡數據流量建立決策樹模型。
決策樹結構轉換模塊,用于將決策樹模型的結構進行轉換,使之成為易于硬件實現的另一種數據結構并存儲到硬件設備(如FPGA、CPLD、ASIC等)的存儲設備(如RAM、 ROM、FLASH等)中通過對決策樹的遍歷,一方面提取決策樹的中間節點值,對同一屬性的各中間節點值進行從小到大的排序,然后對所有屬性的各個中間節點值按順序進行從小到大的編碼,另一方面提取決策樹的邊緣節點值,對邊緣節點值同樣也進行編碼,邊緣節點值的編碼是一個范圍,取決于到達該邊緣節點所經歷的各中間節點的編碼值。中間節點值及其編碼以及邊緣節點值及其編碼分別存儲在兩塊分離的存儲設備(如RAM、R0M、FLASH等) 中。
MAC層處理模塊如今有許多現成的IP核可以采用。
數據包輪詢管理模塊,用于從N個數據包緩沖隊列中讀取數據包,此處采用輪詢式訪問每個輸入隊列,直到從一個隊列讀完一個完整的數據包才轉到下一個隊列。
分流判斷模塊,用于根據五元組將數據包劃分到不同的流,判斷該條流是否被分類,如果被分類,類別值是多少,并維護流信息表。流信息表用于記錄流的五元組信息以及該條流的類別。流信息表僅由決策樹查找模塊進行更新處理,其他模塊均不能對流信息表進行寫操作。
流量信息提取及打標簽模塊,用于對未分類的數據包進行流特征提取并對所有數據包進行打標簽處理。該模塊需要維護一張參數表,參數表記錄各條流的五元組信息、特征值以及特征值是否滿的標志。特征值滿的流的參數信息被發送到決策樹查找模塊。
決策樹查找模塊,用于利用流量信息提取及打標簽模塊發送的待分類流的特征序列對決策樹結構轉換模塊所得的兩塊存儲設備(如RAM、ROM、FLASH等)進行查找,判斷該 TCP流的類別值并更新流信息表。在查找過程中采用并行處理策略,僅需要兩個時鐘周期即可完成決策樹的查找過程。即第一個時鐘周期并行查找所有屬性的所有中間節點值,確定該流所屬的所有中間節點編碼值并合并為一個數據,第二個時鐘周期利用前一個時鐘周期的結果數據并行查找所有邊緣節點的編碼值,從而確定該流的類別,并將分類結果發送至流信息表以對流信息表中的記錄進行更新。
分類結果處理模塊,用于對流量分類的結果進行匯總、處理及界面顯示。
因此,本發明提供的流量分類方法和裝置,具有以下優點對決策樹的結構進行了轉換,使之轉換成一種易于硬件實現的數據結構,降低了算法本身的復雜度;決策樹查找過程中使用了并行查找和流水線技術,提高了處理速度;選取的包特征提取過程簡單,易于在線完成;利用了決策樹本身所具有的準確度高、穩定性好的特點。總之,較低的算法復雜度、 高效的硬件在線實現方式、準確穩定的流量分類結果構成了本發明的最大特色。
為了更清楚地說明本發明,下面將對本發明實施例描述中所需要使用的附圖作簡單的介紹,顯然地,下面描述中的附圖僅僅是本發明的流量分類方法流程圖、流量分類裝置的結構示意圖,對于本領域普通技術人員來講,在不付出創造性勞動前提下,還可以根據這些附圖獲得的更多的附圖。
圖1是本發明一個實施例提供的流量分類方法流程圖2是本發明一個實施例提供的流量分類裝置的結構示意圖;具體實施方式
下面將結合本發明實施例的附圖,對本發明實施例中的技術方案和裝置進行清楚、完整地描述。此具體實施方式
以決策樹中C4. 5算法為例進行詳細描述,但是此方法同樣適適用于其它決策樹算法。此實施例基于FPGA實現,采用的存儲設備是RAM,同樣適用于其他硬件設備(如FPGA、CPLD、ASIC等)及存儲設備(如RAM、R0M、FLASH等)。顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例?;诒景l明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明的保護范圍。
圖1為本發明一個實施例提供的流量分類方法的流程圖,該方法包括
SlOl 在不同時間從不同地點收集多個網絡流量數據集,并對數據集進行分流和手工分類。
網絡流量分類裝置一般部署在一定的網絡中。決策樹算法需要利用網絡中的真實流量進行訓練,以構建決策樹分類模型,因此需要在準備部署的網絡中設置網絡探針,以便從網絡中采集真實流量。上述的真實流量數據集包括用于手工分類確定流量協議類型所需的信息,以及數據包長、包間隔時間、包方向等后續步驟所需的特征參數;從傳輸層協議上看,數據流中至少包含TCP流和UDP流。需要把流量數據集按照{源地址、目的地址、源端口、目的端口、傳輸層協議類型}五元組將所得流量數據集分離為不同的TCP流,這樣流量數據集就變為了 TCP流的集合;其中,TCP流的頭部的判斷依據可以使用但不限于TCP流中的ktUp、ktUp/ACK、ACK數據包;并且一個數據流中數據包必須按照達到觀測點的先后順序排列。采用載荷分析等方法,以離線方式獲得TCP數據流的協議類型,如WffW、MAIL、FTP、 P2P 等。
S102 提取前期TCP流集合的若干個包特征。
提取每一條TCP流中關于數據包的特征,即提取每條流頭部10個包的包長、包間隔時間以及包傳送方向。在本步驟,提取的每條流的包特征有三大類,一類是包長屬性,一類是包間隔屬性、另一類是包方向。也就是第一個包的包長、第二個包的包長、第三個包的包長……第十個包的包長;第一個包與第零個包的間隔時間(為0)、第二個包與第一個包的間隔時間、第三個包與第二個包的間隔時間…….第十個包與第九個包的間隔時間;第一個包的方向、第二個包的方向、第三個包的方向……第十個包的方向。并按照數據包在該 TCP流的先后順序構建初步特征序列,然后利用特征選擇算法對包特征進行篩選,得到最終特征序列。8
S103 建立決策樹分類模型。
利用高級編程語言如JaviMatlab等或直接利用機器學習Weka軟件,根據前期真實網絡數據流量,基于經典的C4. 5算法建立決策樹模型。
S104 對決策樹進行結構轉換并存儲到FPGA的RAM中。
通過對決策樹的遍歷,一方面提取決策樹的中間節點值,即對所有的路徑進行從上到下的遍歷及中間節點值的提取。一條路徑上可能有基于不同屬性的中間節點,同一種屬性的中間節點也可能存在于不同的路徑上。對一棵樹的所有中間節點值進行提取后匯總結果,然后對同一屬性的各中間節點值進行從小到大的排序,然后對所有屬性的各個中間節點值按順序進行從小到大的編碼。例如,若包長屬性的中間節點值從小到大分別為70、 80、90、100、110,編碼位數為3,則中間節點值70編碼為000,中間節點值80編碼為001,中間節點值90編碼為010,中間節點值100編碼為011,中間節點值110編碼為100 ;包間隔屬性及包方向屬性中間節點值的編碼與此類似。另一方面提取決策樹的邊緣節點值,對邊緣節點值同樣也進行編碼,邊緣節點值的編碼是一個范圍,取決于到達該邊緣節點的路徑所經歷的各中間節點的編碼值。中間節點值及其編碼以及邊緣節點值及其編碼分別存儲在兩塊分離的RAM中。其中在流量分類裝置用于網絡流量在線分類之前,以離線處理的方式建立決策樹并對決策樹進行數據結構轉換。
兩塊RAM的存儲結構如表1、表2所示。表中一行為一個記錄,每一個記錄存儲一個中間節點值及該中間節點值的編碼值。其中,nl表示第1個屬性的中間節點總數,n2表示第2個屬性的中間節點總數,nk表示第k個屬性的中間節點總數,m表示協議類型的總數。
表1中間節點值及其編碼值在RAM中的存儲方式
權利要求
1.一種基于決策樹高速并行處理策略實現TCP流量在線分類的方法,其特征在于包括以下步驟步驟1,前期真實流量數據的采集、分流及手工分類采集網絡真實流量數據集,利用五元組將數據集分離為不同的TCP流,對TCP流的集合進行手工分類,使每一條TCP流都與一種協議類型相對應。步驟2,提取前期TCP流集合的若干個包特征提取每一條TCP流中關于數據包的特征,并按照數據包在該TCP流的先后順序構建初步特征序列,然后對包特征進行篩選,得到最終特征序列。步驟3,決策樹分類模型的建立對步驟2構成的最終特征序列,利用決策樹算法進行建樹。步驟4,對步驟3中建立的決策樹進行數據結構轉換并存儲到硬件設備(如FPGA、 CPLD、ASIC等)的存儲設備(如RAM、R0M、FLASH等)中通過對決策樹的遍歷,一方面提取決策樹的中間節點值,對同一屬性的各中間節點值進行從小到大的排序,然后對所有屬性的各個中間節點值按順序進行從小到大的編碼,另一方面提取決策樹的邊緣節點值,對邊緣節點值同樣也進行編碼,邊緣節點值的編碼是一個范圍,取決于到達該邊緣節點所經歷的各中間節點的編碼值。中間節點值及其編碼以及邊緣節點值及其編碼分別存儲在兩塊分離的存儲設備(如RAM、ROM、FLASH等)中。步驟5,對待分類的數據包進行分流及類別判斷根據五元組將數據包劃分到不同的流并查找流信息表獲取分類信息,流信息表用于記錄流的五元組信息以及該條流的類別。步驟6,對當前數據包進行打標簽處理并提取待分類TCP流的包特征利用步驟5提取的類別信息對所有經過的數據包進行打標簽處理,若數據包所屬的流已經被分類,則打上相應的類別標簽,若未分類,則按照一定的原則標記一個默認的標簽,然后判斷該數據包是否需要被提取包特征并做相應處理。在這里,包特征的提取與步驟2中采用的最終特征序列相對應,需要按包到達順序進行提取,并構建待分類流的特征序列,待分類流的特征序列存儲在參數表中,參數表的一條記錄包括五元組、各個包特征值以及參數是否滿的標志。步驟7,決策樹查找利用步驟6所得的待分類流的特征序列對步驟4所得的兩塊存儲設備(如RAM、ROM、FLASH等)進行查找,判斷該TCP流的類別值并更新流信息表。
2.根據權利要求1所述的TCP流量在線分類方法,其特征在于其中在流量分類裝置用于網絡流量在線分類之前,以離線處理的方式建立決策樹并對決策樹進行數據結構轉換。
3.根據權利要求1所述的TCP流量在線分類方法,其特征在于所述步驟2中,需根據特征選擇算法對初步提取的若干個包特征進行處理,篩選出最能體現流類別特性的包特征。
4.根據權利要求1所述的TCP流量在線分類方法,其特征在于所述步驟5中,流信息表僅需要保存已分類的流的記錄,不需要保存未分類的流的記錄,因此對流信息表進行查找時,若不存在記錄則可以立即判斷為未分類,從而節省查找時間。
5.根據權利要求1所述的TCP流量在線分類方法,其特征在于所述步驟6中,包的順序信息按照到達觀測點的時間順序進行排列,取三次握手的第一個請求包即Setup包作為該流的第一個包。
6.根據權利要求1所述的TCP流量在線分類方法,其特征在于所述步驟6中,已分類被打上正確標簽的包與未分類打上默認標簽且需要進行參數提取的包需要進行時鐘同步處理,即插入相應級別的流水線以保證數據包傳輸路線上的FIFO 不會出現溢出現象。
7.根據權利要求1所述的TCP流量在線分類方法,其特征在于所述步驟7中,采用并行查找的方式及流水線的結構以提高查找速度,在不考慮其他讀寫信號及時鐘同步處理的情況下,僅需要兩個時鐘周期即可完成決策樹的查找過程。即第一個時鐘周期并行比較所有屬性的所有中間節點值,確定該流所屬的所有中間節點編碼值并合并為一個數據,第二個時鐘周期利用前一個時鐘周期的結果數據并行比較所有邊緣節點的編碼值,從而確定該流的類別。
8.一種基于硬件設備(如FPGA、CPLD、ASIC等)的流量在線分類裝置,用于實現如權利要求1所述的利用決策樹高速并行處理策略實現TCP流量在線分類的裝置包括在線部分和離線部分,其中離線部分具有決策樹建樹模塊、決策樹結構轉換模塊、分類結果處理模塊;在線部分包括順序連接的MAC層處理模塊一、數據包輪詢管理模塊、分流判斷模塊、流量信息提取及打標簽模塊、決策樹查找模塊、MAC層處理模塊二。在線部分采用流水線處理技術。決策樹建樹模塊,用于根據前期真實網絡數據流量建立決策樹模型。決策樹結構轉換模塊,用于將決策樹模型的結構進行轉換,使之成為易于硬件實現的另一種數據結構并存儲到硬件設備(如FPGA、CPLD、ASIC等)的存儲設備(如RAM、ROM、 FLASH等)中通過對決策樹的遍歷,一方面提取決策樹的中間節點值,對同一屬性的各中間節點值進行從小到大的排序,然后對所有屬性的各個中間節點值按順序進行從小到大的編碼,另一方面提取決策樹的邊緣節點值,對邊緣節點值同樣也進行編碼,邊緣節點值的編碼是一個范圍,取決于到達該邊緣節點所經歷的各中間節點的編碼值。中間節點值及其編碼以及邊緣節點值及其編碼分別存儲在兩塊分離的存儲設備(如RAM、ROM、FLASH等)中。MAC層處理模塊如今有許多現成的IP核可以采用。數據包輪詢管理模塊,用于從N個數據包緩沖隊列中讀取數據包,此處采用輪詢式訪問每個輸入隊列,直到從一個隊列讀完一個完整的數據包才轉到下一個隊列。分流判斷模塊,用于根據五元組將數據包劃分到不同的流,判斷該條流是否被分類,如果被分類類別值是多少,并維護流信息表,流信息表用于記錄流的五元組信息以及該條流的類別。流量信息提取及打標簽模塊,用于對未分類的數據包進行流特征提取并對所有數據包進行打標簽處理。該模塊需要維護一張參數表,參數表記錄各條流的五元組信息、特征值以及特征值是否滿的標志。特征值滿的流的參數信息被發送到決策樹查找模塊。決策樹查找模塊,用于利用流量信息提取及打標簽模塊發送的待分類流的特征序列對決策樹結構轉換模塊所得的兩塊存儲設備(如RAM、ROM、FLASH等)進行查找,判斷該TCP 流的類別值并更新流信息表。在查找過程中采用并行處理策略,僅需要兩個時鐘周期即可完成決策樹的查找過程。即第一個時鐘周期并行比較所有屬性的所有中間節點值,確定該流所屬的所有中間節點編碼值并合并為一個數據,第二個時鐘周期利用前一個時鐘周期的結果數據并行比較所有邊緣節點的編碼值,從而確定該流的類別,并將分類結果發送至流信息表以對流信息表中的記錄進行更新。分類結果處理模塊,用于對流量分類的結果進行匯總、處理及界面顯示。
9.根據權利要求8所述的TCP流量在線分類裝置,其特征在于離線部分的決策樹結構轉換模塊與在線部分的決策樹查找模塊相連接,離線部分的分類結果處理模塊與在線部分的決策樹查找模塊通過一個流信息表間接連接。
10.根據權利要求8所述的TCP流量在線分類裝置,其特征在于所述離線部分還具有前期數據流量采集模塊、前期數據流分流模塊、前期數據流人工分類模塊、前期數據流特征提取模塊。
全文摘要
本發明涉及一種基于決策樹高速并行處理策略實現TCP流量在線分類的方法及裝置,其中該方法包括對前期真實流量數據的采集、分流及手工分類,提取前期TCP流集合包特征,建立決策樹分類模型及轉換數據結構,對待分類數據包進行分流及類別判斷,對當前數據包進行打標簽處理并提取待分類TCP流包特征,查找決策樹;該裝置包括決策樹建樹模塊,結構轉換模塊,分類結果處理模塊,MAC層處理模塊,數據包輪詢管理模塊,分流判斷模塊,流量信息提取及打標簽模塊,決策樹查找模塊。本發明的算法復雜度低,具有較高的處理速度,能夠完成在線分類,分類準確度高、穩定性好,可用于高速骨干網中需要在線流量分類的設備和系統中。
文檔編號H04L29/06GK102523241SQ201210006268
公開日2012年6月27日 申請日期2012年1月9日 優先權日2012年1月9日
發明者紀越峰, 許艷紅, 顧仁濤 申請人:北京郵電大學