新四季網

一種基於多核處理器的網絡協議分析系統及其分析方法與流程

2024-01-24 06:35:15


本發明屬於計算機技術領域,涉及網絡協議性能分析技術,特別涉及一種基於多核處理器的網絡協議分析系統及其分析方法。



背景技術:

現有分析系統一般分為通用型和專用型。通用性分析系統雖然兼容性好,但是往往容易遭遇性能瓶頸,無法滿足大中型數據中心的網絡數據捕獲分析要求;而專用型系統一般擴展性較差,碰到性能問題需要替換整套系統,造成成本很高。該發明專利既保持了通用性方案的優點,可以極大的提升性能和方便地進行擴展,具有非常實用的現實意義。

為了克服現有技術中的上述缺陷,本發明提出了一種基於多核處理器的網絡協議分析方法及系統提供了一個通用和可擴展的網絡協議分析系統框架。該框架不依賴於具體的硬體設備和環境,不需要特定硬體系統,如專業網卡,專業網絡處理器或者專業存儲器支持。同時該框架可以運行在各種作業系統下,也可以運行在無作業系統的嵌入式環境下,甚至可以運行於虛擬平臺上。因此,通過開發新的底層的適配和驅動模塊,可以快速方便地支持各種的硬體平臺和環境。這樣既可以利用最新的硬體設備不斷提高網絡協議分析系統的性能,用戶可以根據自己的應用環境和性能要求靈活地選擇硬體設備,甚至可以利用通用的pc伺服器或者雲計算平臺進行快速部署,最大程度的利用現在硬體資源。



技術實現要素:

本發明提出了一種用於網絡協議分析的分析系統實例模塊,由至少一個工作處理器協作完成網絡報文的採集、分析和記錄,並配置數據包緩存和數據流緩存,所述工作處理器需獨佔一個處理器核心;所述工作處理器包括:採集處理器,其從物理網卡或者數據包文件中讀取原始數據包,獲取並緩存原始報文數據到所述數據包緩存;分發處理器,其對所述原始數據包進行協議預處理,依據所述原始數據包的基本協議信息進行哈希分組以分發到不同的分析處理器中;分析處理器,其對所述原始數據包進行網絡協議分析,根據原始數據包的報文內容和數據流緩存信息解析原始報文數據獲得協議分析結果和統計信息,協議分析結果和統計信息暫存到所述數據包緩存中;統計處理器,其收集所有原始數據包的協議分析結果和統計信息,並以協議分析結果和統計信息更新本地內存中的網絡協議指標數據表;存包處理器,其將需要保存的原始數據包中的原始報文數據寫入所述數據包存儲緩衝;記錄處理器,其定期將所述網絡協議指標數據表中的協議分析結果和統計信息傳輸至本地或遠端的數據記錄系統中;存儲處理器,其將保存於所述數據包存儲緩衝中的數據寫入物理存儲器中。

本發明提出的所述分析系統實例模塊中,所述分發處理器利用哈希分組算法將屬於同一條數據流的原始數據包始終被分發到同一個分析處理器進行處理。

本發明還提出了一種基於多核處理器的網絡協議分析系統,包括:數據源;所述一個或多個分析系統實例模塊;數據記錄系統,其與所述分析系統實例模塊中的記錄處理器通信,用於記錄、顯示協議分析結果和統計信息;及物理存儲器,其與所述分析系統實例模塊中的存儲處理器通信,用於以物理存儲數據包緩存中的原始報文數據。

本發明還提出了一種基於所述網絡協議分析系統的分析方法,包括如下步驟:

步驟一:採集處理器其從數據源中讀取原始數據包,獲取並緩存原始報文數據到所述數據包緩存,將數據包緩存放入分發處理器的處理隊列中;

步驟二:分發處理器讀取所述數據包緩存,對所述原始數據包進行協議預處理,依據所述原始數據包的基本協議信息進行哈希分組編號,根據編號分發到不同的分析處理器的處理隊列中;

步驟三:分析處理器讀取數據包緩存,對所述原始數據包進行網絡協議分析,根據原始數據包的報文內容和數據流緩存信息解析原始報文數據獲得協議分析結果和統計信息,協議分析結果和統計信息暫存到所述數據包緩存中;

步驟四:統計處理器讀取數據包緩存,收集所有原始數據包的協議分析結果和統計信息,並以協議分析結果和統計信息更新本地內存中的網絡協議指標數據表,釋放數據包緩存;

步驟五:判斷是否需要存儲原始數據包,若無需存儲原始數據包,則跳轉至步驟七

步驟六:存包處理器讀取數據包緩存,將需要保存的原始數據包中的原始報文數據寫入所述數據包存儲緩衝;

步驟七:釋放數據包緩存中的原始數據包的數據欄位。

本發明提出的所述分析方法中,步驟七之後進一步包括:

步驟八:記錄處理器定期將所述網絡協議指標數據表中的協議分析結果和統計信息傳輸至本地或遠端的數據記錄系統中;

步驟九:存儲處理器將保存於所述數據包存儲緩衝中的原始報文數據寫入物理存儲器中。

本發明的有益效果在於:基於多核處理器的網絡協議分析方法及系統提供了一個通用和可擴展的網絡協議分析系統框架。該框架不依賴於具體的硬體設備和環境,不需要特定硬體系統,如專業網卡,專業網絡處理器或者專業存儲器支持。同時該框架可以運行在各種作業系統下,也可以運行在無作業系統的嵌入式環境下,甚至可以運行於虛擬平臺上。因此,通過開發新的底層的適配和驅動模塊,可以快速方便地支持各種的硬體平臺和環境。這樣既可以利用最新的硬體設備不斷提高網絡協議分析系統的性能,用戶可以根據自己的應用環境和性能要求靈活地選擇硬體設備,甚至可以利用通用的pc伺服器或者雲計算平臺進行快速部署,最大程度的利用現在硬體資源。通過對報文處理工作流的解耦保證了各工作處理器的無鎖操作,在提供配置靈活性的同時了實現了報文處理的高性能。

附圖說明

圖1是網絡協議分析系統框架示意圖。

圖2是網絡協議分析系統工作流水示意圖。

圖3是網絡數據包處理流程圖。

具體實施方式

結合以下具體實施例和附圖,對本發明作進一步的詳細說明。實施本發明的過程、條件、實驗方法等,除以下專門提及的內容之外,均為本領域的普遍知識和公知常識,本發明沒有特別限制內容。

本發明分析系統實例模塊是一個具有完整網絡協議分析功能的模塊。分析系統實例模塊基於多核處理器的網絡協議分析方法及系統提供了一個通用和可擴展的網絡協議分析系統框架。該框架將網絡協議分析系統的各個功能模塊抽象為不同的工作處理器,相同的工作處理器具有相同的代碼邏輯,通過簡單適配目標平臺,其既可以以嵌入式程序的方式直接運行於通用多核處理器的cpu核心上,又可以以工作線程的模式運行於其他作業系統,甚至可以運行於虛擬操作平臺上。同時,通過定義標準的報文讀取接口和格式,可以快速方便地通過開發新的底層適配和驅動模塊,來實現對各種的硬體平臺和環境的支持。以上這些特性可以使該框架不依賴於或儘量少地依賴於具體的硬體設備和環境,不需要特定硬體系統,如專業網卡,專業網絡處理器或者專業存儲器支持。這樣既可以利用最新的硬體設備不斷提高網絡協議分析系統的性能,用戶可以根據自己的應用環境和性能要求靈活地選擇硬體設備,甚至可以利用通用的pc伺服器或者雲計算平臺進行快速部署,最大程度的利用現在硬體資源。對所有流入的網絡流量進行分析和統計,並將分析結果輸出到數據記錄系統。每個網絡協議分析系統可以有多個分析系統實例模塊模塊,各個分析系統實例模塊模塊是相互獨立並由一個系統唯一的實例號進行標識。

每個分析系統實例模塊由多個工作處理器協作完成網絡報文的採集、分析和記錄,還配置有數據包緩存和數據流緩存。每個數據包緩存由兩部分組成:協議信息欄位和原始數據欄位。每個採集到的原始網絡數據包保存在獨立的數據包緩存的原始數據欄位中。緩存的協議信息欄位將存儲對該數據包的報文信息和協議分析結果。該緩存用於在網絡協議分析工作流水中進行處理時傳遞數據包原始數據和網絡協議分析結果。在完成所有的協議分析和統計後該緩存將被系統釋放回收並循環使用。數據流緩存具有相同基本協議信息(源ip地址、目的ip地址、協議、源埠、目的埠以及vlan號等)的數據包組成一條的數據流。網絡協議分析系統將緩存所有數據流的基本信息和運行時狀態以輔助進行網絡協議分析。

工作處理器可以是直接運行於通用多核處理器的cpu核心上的嵌入式程序,也可以是運行在作業系統上的工作線程。為了滿足網絡協議分析系統的性能和實時性要求,每個工作處理器需要獨佔一個cpu核心以避免其它系統進程的幹擾。每個網絡數據包都需要經過由多個工作處理器組成的工作流水進行分析處理,根據各自功能的不同,工作處理器又分為以下7種基本類型:

採集處理器,其負責將網絡數據包從物理網卡或者數據包文件讀取並將原始報文數據保存到數據包緩存。採集處理器可以採用多種數據包抓取方式,如dpdk、libpcap或者專用網卡驅動等。

分發處理器,其負責將採集處理器讀取的原始數據包進行協議預處理。根據數據包的基本協議信息,如源ip地址、目的ip地址、協議、源埠、目的埠以及vlan號等對數據包進行哈希分組後將其分發到不同的分析處理器進行協議分析。哈希分組算法保證屬於同一條數據流的網絡數據包將始終被分發到同一個分析處理器進行處理。

分析處理器,其負責對數據包進行具體的網絡協議分析。分析處理器根據數據包的報文內容和數據流緩存信息解析報文,並根據協議分析的結果更新數據包緩存和數據流緩存。同時,協議分析結果和統計信息也將被暫存到數據包緩存中以傳遞給統計處理器進行後繼處理。

統計處理器,其負責收集所有數據包的協議分析結果和統計信息。協議分析結果和統計信息將被用於更新本地內存中的網絡協議指標數據表。

存包處理器,其負責將需要保存的數據包中的原始數據按指定格式寫入數據包存儲緩衝。已寫入數據包存儲緩衝的數據會由存儲處理器最終保存到物理存儲中。

記錄處理器,其負責定期將網絡協議指標數據表中協議分析結果和統計信息按指定的目標格式傳輸到本地或雲端的數據記錄系統。數據記錄系統中保存的海量網絡狀態和性能信息將被後臺進一步聚合、整理和分析後按需要的形式提供給網絡管理員或用戶。

存儲處理器,其負責將已寫入數據包存儲緩衝的數據以文件的形式保存到磁碟或磁帶等物理存儲器中。

圖1即是網絡協議分析系統的框架示意圖。一個或多個網絡分析系統分別從一個或多個網絡數據源讀取網絡數據包進行分析。並將協議分析結果和統計信息傳輸到本地或雲端的一個或多個數據記錄系統。用戶通過查詢數據記錄系統來獲得網絡狀態信息。其中:

每個網絡分析系統可以包括一個或多個網絡分析實例,每個網絡分析實例由系統唯一的實例號進行標識。每個網絡分析實例可以從一個或多個網絡數據源讀取網絡數據包。

網絡數據源可以是物理網卡,也可以是以文件形式存儲的網絡數據包。

網絡協議分析系統實例模塊生成的協議分析結果和統計信息可以全部傳輸到一個本地或雲端的數據記錄系統,也可以將不同的協議分析結果和統計信息分別傳輸到多個地或雲端的數據記錄系統。數據記錄系統除了保存協議分析結果和統計信息外,還負責對數據進行進一步的分析、聚合和呈現。

網絡分析系統可以兼容各種硬體設備和環境,可以利用最新的硬體設備不斷提高網絡協議分析系統的性能,及根據不同應用環境和性能要求靈活地選擇硬體設備實現系統的快速部署,實際使用中具有很好的擴展性。且該系統流水線般的處理方式使任意工作處理器之間完全沒有相關性,最大程度的利用現在硬體資源,可以實現無鎖的操作,具有非常高的處理性能。

圖2即是網絡協議分析系統的一個分析系統實例模塊的工作流水圖。其中網絡數據源負責向分析系統實例模塊提供多種格式的網絡數據包,如原始網絡幀,pcap數據包封裝等。採集處理器將根據網絡數據源的格式進行特定的報文採集和格式轉換。在進行報文分析時,網絡分析系統將一個完整的報文分析過程分拆為多個不同的處理環節並分配到對應的工作處理器上,工作處理器在每個處理環節完成後將當前得到的分析結果保存於數據包緩存的協議信息欄位並將其傳遞給下一步處理環節對應的工作處理器,從而保證了報文分析所需的協議信息在同一時刻只能被唯一的工作處理器使用,任意工作處理器之間完全沒有相關性。同時,對數據流的哈希分組保證了同一時刻只有唯一的分析處理器訪問同一個數據流緩存,按網絡數據包協議類型、過濾規則或網絡站點對目標統計處理器分組也保證了同一時刻只有唯一的統計處理器訪問網絡協議指標數據表的同一欄位。以上這些措施將保證了各工作處理器的無鎖操作,在提供配置靈活性的同時了實現了高性能的報文處理

圖3即是網絡協議分析系統中網絡數據包處理流程圖。網絡數據包由分析系統實例從數據源讀取後經由多個工作處理器組成的工作流水進行處理,詳細處理過程可參考工作流水定義。具體的工作流程如下:

1.每個採集處理器負責從一個或多個網絡數據源讀取網絡數據包數據並將其轉存到的獨立的數據包緩存的原始數據欄位中。處理完成後,採集處理器將數據包緩存按網絡數據包到達的順序放入對應的分發處理器的處理隊列中。

每個分析系統實例模塊所配置的採集處理器個數可根據網絡數據源的個數和網絡流量進行調整。

2.每個分發處理器從自己的處理隊列中逐個讀取數據包緩存。分發處理器初始化數據包緩存中原始網絡數據包的基本協議信息,如源ip地址、目的ip地址、協議、源埠、目的埠以及vlan號等,並使用這些信息進行哈希得出網絡數據包唯一的哈希索引。該哈希索引和基本協議信息將被一同存入數據包緩存的協議信息欄位。其後分發處理器使用如下公式決定處理該數據包緩存的分析處理器編號:

分析處理器編號=(哈希索引%分析處理器總數)+1

處理完成後,分發處理器根據計算得出的分析處理器編號將數據包緩存按到達順序放入對應分析處理器的處理隊列中。

每個分析系統實例模塊所配置的分發處理器個數小於或等於採集處理器個數。

3.每個分析處理器從自己的處理隊列中逐個讀取數據包緩存。分析處理器根據網絡數據包的報文內容解析,從中提取的報文信息存入數據包緩存的協議信息欄位。隨後,分析處理器將結合報文信息、網絡數據包數據和數據流緩存信息對網絡數據包進行進一步解析。協議分析得出的信息將被用於更新數據包緩存和數據流緩存,同時協議分析結果和統計信息也將被存入數據包緩存中的協議信息欄位。

處理完成後,分析處理器將數據包緩存按到達順序放入統計處理器的處理隊列中,目標統計處理器的選擇規則可以是網絡數據包協議類型、過濾規則或網絡站點分組等。如果需要保存原始數據包,將數據包緩存中的原始數據欄位放入對應存包處理器的處理隊列中,目標存包處理器的選擇規則可以是隨機分組等,但需要保證同一條數據流的數據包始終被發送到相同的存包處理器。

每個分析系統實例模塊所配置的分析處理器個數可根據網絡流量和分析系統實例模塊的功能配置進行調整。

4.每個統計處理器從自己的處理隊列中逐個讀取數據包緩存。統計處理器根據數據包緩存的協議信息欄位中的協議分析結果和統計信息更新網絡協議指標數據表。

處理完成後,統計處理器將數據包緩存釋放回數據包緩存池以供循環使用,需要注意的是,釋放數據包緩存並不釋放原始數據欄位的物理內存。

每個分析系統實例模塊所配置的統計處理器個數可根據網絡流量和分析系統實例模塊的功能配置進行調整。

5.每個存包處理器從自己的處理隊列中逐個讀取數據包緩存中的原始數據欄位,並將欄位中的網絡數據包數據按分析系統實例模塊所配置的格式(如pcap、純文本等)寫入數據包存儲緩衝。

處理完成後,存包處理器將數據包緩存的原始數據欄位釋放回數據包數據緩存池以供循環使用。

每個分析系統實例模塊所配置的存包處理器個數可根據網絡流量和分析系統實例模塊的功能配置進行調整。

6.記錄處理器定期讀取網絡協議指標數據表中的協議分析結果和統計信息並轉換特定格式的指標信息。轉換好的指標信息將被發送到本地或雲端的數據記錄系統中。

每個分析系統實例模塊只配置1個記錄處理器。

7.存儲處理器定期將已寫入數據包存儲緩衝中數據包數據轉存到物理存儲器中。在物理存儲中保存的文件的格式由分析系統實例模塊的配置指定。

每個分析系統實例模塊只配置1個存儲處理器。

本發明的保護內容不局限於以上實施例。在不背離發明構思的精神和範圍下,本領域技術人員能夠想到的變化和優點都被包括在本發明中,並且以所附的權利要求書為保護範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀