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