本發明涉及網絡流量協議解析處理,具體是一種大帶寬網絡流量協議識別解析方法及系統。
背景技術:
1、現有的協議識別解析方法主要包括基于特征匹配和深度包檢測(dpi)。其中,基于特征匹配的方法通過分析協議的特定字段或關鍵特征(如端口號、字節序列)進行識別,但在針對大帶寬流量中的復雜協議以及新增的協議時,其協議識別的準確性較低,且對于新增的協議的維護成本較高。dpi通過深度解析數據包內容來識別協議,盡管精度較高,但計算復雜度大,尤其是在面對大帶寬流量時難以滿足實時性要求。上述這些方法在處理復雜的帶寬網絡流量時,存在實時性、擴展性和資源利用率方面的不足。
技術實現思路
1、一)解決的技術問題
2、本發明提供了一種大帶寬網絡流量協議識別解析方法及系統,以解決現有的協議識別解析方法在處理復雜的帶寬網絡流量時,存在實時性、擴展性和資源利用率方面的不足。
3、二)技術方案
4、為實現上述目的,本發明提供如下技術方案:一種大帶寬網絡流量協議識別解析方法,包括以下步驟:
5、接收網絡的原始流量并將其以數據幀的形式存儲在內核態的緩沖區中;
6、基于零拷貝技術,將所述內核態緩沖區中的數據幀直接映射到用戶態內存區域,作為數據流進入用戶態處理的起點;
7、按照同源同宿原則,以源地址、目標地址、源端口和目標端口作為分類依據對所述數據流進行邏輯分類,將分類后的數據流通過動態分發機制發送到對應的計算處理核中;其中,動態分發機制通過負載均衡策略將數據流分配到不同的計算處理核;
8、每個所述計算處理核將分配到的數據流依次通過三級流水架構完成逐層解析;其中,所述三級流水架構包括底層協議識別、模式匹配識別和高級協議匹配識別三個解析階段,所述底層協議識別通過解析鏈路層和網絡層字段確定底層協議類型,所述模式匹配識別通過字段匹配規則和預定義模式庫解析中層協議,所述高級協議匹配識別通過結合上下文信息和狀態機機制解析復雜協議;數據流在每個階段完成解析后,若確定協議類型則直接輸出結果,否則進入下一階段進行解析;
9、基于協議的識別結果,在每個所述計算處理核中調用適配的元數據提取模型,從識別結果中提取元數據;其中,每種所述元數據提取模型均與協議特征綁定,并依據協議解析階段的結果自動匹配調用;
10、每個所述計算處理核將所述協議識別結果與元數據提取結果結合成數據隊列后輸出。
11、進一步的,所述零拷貝技術具體為基于零拷貝的mfru包頭數據預取管理算法,該算法采用第一級空閑表堆棧和第二級雙向空閑鏈表的兩級表結構,在所述內核緩沖區中分配一個空閑表項用于存儲數據幀中的包頭數據;具體的:
12、當所述緩沖區中的空閑表項數量低于設定的第一設定閾值時,該算法向第一級空閑表堆棧中發明調頁,擴展可用表項數量。
13、當緩沖區中的空閑表項數量大于設定的第二設定閾值時,該算法釋放空閑表項回收到入棧到第一級空閑表堆棧中。
14、進一步的,所述負載均衡策略具體為采用反饋式兩級均衡路由算法進行數據流的兩級分發,具體的:
15、第一級通過獲取各個計算節點的實時負載信息,根據負載情況將所述數據流按照同源同宿的原則發送到所述計算節點中;
16、第二級在每個所述計算節點內部,基于所述計算處理核的負載監測數據,動態調整哈希算法后再次將數據流分發到各個計算處理核中,實現計算節點內的數據流均衡分發。
17、進一步的,在協議的識別解析過程中,通過基于splay樹的分布式哈希流表管理算法,按照所述計算處理核的數量構建分布式流表,每個計算處理核獨立維護一個splay樹結構的流表,當所述數據流到達計算處理核時,會在splay樹中查找對應的流表項;
18、若找到對應的流表項,則直接獲取流表中存儲的協議狀態;
19、若未找到對應的流表項,則創建新流表項并插入到splay樹中。
20、進一步的,所述三級流水架構中的底層協議識別解析階段負責快速識別數據包的鏈路層和網絡層協議類型,作為協議解析的基礎階段;具體的,該階段基于數據包的基本特征和協議頭部信息進行初步識別,識別數據鏈路層和網絡層;
21、若成功識別鏈路層或網絡層協議類型,直接輸出協議識別結果,數據流完成解析;
22、若無法確定協議類型,數據流進入下一階段的所述模式匹配識別解析階段。
23、進一步的,所述三級流水架構中的模式匹配識別解析階段負責進一步識別數據包的傳輸層協議類型,通過將數據包內容與預定義的匹配模式進行對比,確認傳輸層協議類型;具體的,構建最小完美哈希函數,將所述約定義的匹配模式映射為唯一的哈希值,避免哈希沖突,實現快速匹配,采用正則表達式匹配和特征碼匹配,定位協議特征字段;
24、若成功確認傳輸層協議類型,直接輸出協議識別結果,數據流完成解析;
25、若無法確定協議類型,數據流進入下一階段的所述高級協議匹配。
26、進一步的,所述三級流水架構中的高級協議匹配識別解析階段負責識別復雜的應用層協議類型,該階段結合邏輯關聯數據包識別法、邏輯關聯數據包識別法以及統計分析特性法對應用層協議進行識別;對應的:
27、邏輯關聯數據包識別法,通過分析數據包之間的邏輯關聯關系,定義協議上下文;
28、多關聯層匹配法,綜合多個數據包的信息和關聯關系,判斷應用層協議類型;
29、統計分析特性法,利用流量統計特性對協議進行分析;
30、輸出完整的協議解析結果,完成數據流的解析。
31、進一步的,所述基于協議的識別結果,在每個所述計算處理核中調用適配的元數據提取模型來提取元數據,對應的:
32、包驅動的元數據提取模型,通過提取單個數據包中的ip頭部和數據部分后提取相關元數據;
33、流驅動的元數據提取模型,通過對整個數據流中的數據包進行分析后提取相關元數據;
34、隧道邏輯會話驅動元數據提取模型,從隧道協議數據中提取邏輯會話信息,通過分析邏輯會話數據后提取相關元數據;
35、事件驅動元數據提取模型,先提取數據中的ip頭部和數據部分,根據協議需求進行分析后提取相應的元數據。
36、進一步的,每個所述計算處理核將協議識別結果與元數據提取結果整合為數據隊列,并將所述數據隊列交由雙向無鎖鏈表管理,具體的:
37、當數據隊列輸出完成后,標記為處理完成,計算處理核將所述處理完成的數據隊列存入雙向無鎖鏈表;
38、通過所述mfru包頭數據預取管理算法回收所述數據隊列中的包頭表項,將其重新加入所述第一級空閑堆棧中,供后續數據流使用。
39、一種大帶寬網絡流量協議識別方法的解析系統,用以實現上述任一所述的協議識別解析方法,所述解析系統采用基于數據、控制和計算三平面分離的架構,其中:
40、所述數據平面用以接收網絡流量數據、對數據進行初步分類與分發,確保流量能夠進入用戶態處理;其中,通過mfru包頭數據預取管理算法和二級反饋式均衡路由算法完成流量數據的接收、分類與分發;
41、所述計算平面用于對數據流進行協議識別解析和元數據提取;其中,通過splay樹流表管理算法完成流量協議識別解析與元數據提取,結合所述mfru包頭數據預取管理算法管理數據隊列;
42、所述控制平面用以管理資源分配、策略調整和全局負載均衡;其中,通過splay樹流表管理算法和二級反饋式均衡路由算法進行流表優化和全局負載均衡。
43、三)有益效果:
44、與現有技術相比,該發明具備如下有益效果:
45、本發明基于流量負載動態調整路由分發,確保多核處理器架構中各計算處理核的負載均勻分布。
46、本發明通過在計算處理核中采取三級流水架構的協議識別方法,即分發進處理核的數據流依次通過底層協議識別、模式匹配識別和高級協議匹配,完成對流量協議的逐層識別和解析;三級流水流水架構逐層剖析協議類型,快速鎖定數據流的協議特征,避免對所有流量都進行高復雜度的深度解析,顯著降低計算資源的消耗,尤其適合高速網絡環境下的大規模流量分析,在面對新增協議或復雜協議時,新協議特征或模式可以動態擴展到模式匹配識別和高級協議匹配階段,無需重構整個識別流程,每個階段獨立優化,更新和維護成本低,適應新協議的能力強。