網絡監控方法、過濾數據包的方法及裝置的制造方法
【專利摘要】本申請公開了一種網絡監控方法和裝置。該網絡監控方法包括:接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息;獲取所述數據包的流信息;檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息;根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中。
【專利說明】
網絡監控方法、過濾數據包的方法及裝置
技術領域
[0001]本申請涉及通信技術領域,更具體地,涉及一種網絡監控方法、過濾數據包的方法以及裝置。
【背景技術】
[0002]云計算、高清視頻通信、數據庫等新興信息技術的應用極大地推動了通信技術的發展,例如1Gbps以太網技術等高速網絡通信技術也隨之得到了廣泛地應用。然而隨著傳輸速率的大幅提高,高速通信網絡的監控和管理也變得更為困難。
[0003]為了從網絡中獲得足夠的信息,網絡監控需要對網絡中傳輸的數據包進行捕獲,并對捕獲的數據包進行分析,從而實現網絡故障確定、入侵檢測、流量統計以及網絡安全性和可靠性保證等目的。然而,現有的網絡監控分析設備往往不能有效支持例如1Gbps的高速傳輸速率下數據包的采集,這是因為在高速傳輸速率下數據包會丟失,而數據包的丟失會影響數據分析的準確性。此外,在很多應用場合下,網絡中傳輸的數據包還需要被存儲起來,以便于后續的分析、比較處理。數據包的存儲需求進一步增加了網絡監控分析設備的處理壓力。
【發明內容】
[0004]本申請的一個目的在于提供一種能夠在高速傳輸速率下捕獲網絡數據包并且同時獲取數據包相關信息的方法。
[0005]本申請的一個方面公開了一種網絡監控方法。該監控方法包括:接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息;獲取所述數據包的流信息;檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息;根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中。
[0006]可以看出,本申請的網絡監控方法通過元數據來描述數據包的傳輸,而該元數據的大小通常遠小于數據包的大小。在需要對數據包進行監控時,例如對數據包的傳輸狀態等信息進行統計、或者依據特定算法對數據包進行過濾時,網絡監控裝置僅需要對元數據進行處理,而不需要或者較少需要直接對數據包進行處理。這種數據分析處理方式極大地簡化了網絡數據包的分析處理難度,從而提高了網絡監控的效率和可靠性。
[0007]在一些實施例中,所述根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據的步驟包括:如果檢測到元數據庫中不具有對應于所述數據包的流信息,則從所述數據包中提取與其傳輸相關的數據以生成所述元數據;以及如果檢測到元數據庫中具有對應于所述數據包的流信息,則從所述元數據庫中復制與所述流信息相關聯的元數據作為所述數據包的元數據。
[0008]在一些實施例中,從所述數據包中提取與其傳輸相關的數據以生成所述元數據的步驟包括:復制和/或處理所述數據包包頭的至少一部分以得到所述數據包的元數據。
[0009]在一些實施例中,所述處理數據包包頭的至少一部分包括利用一個或多個預定轉換函數來轉換所述數據包包頭中包含的至少一部分數據。
[0010]在一些實施例中,將所述元數據與對應的流信息相關聯包括:將所述流信息包含在生成的元數據中。
[0011]在一些實施例中,所述被接收的數據包是網絡上傳輸的多個數據包中的一個,所述網絡監控方法包括:接收所述多個數據包,并根據對應于所述多個數據包的元數據,生成針對所述多個數據包的網絡統計信息。
[0012]在一些實施例中,所述網絡統計信息包括源地址和目的地址,源端口和目的端口,源域標識符,目的域標識符,服務類型標識符,數據包流向,協議標識符,VLAN標識符,數據包的計數,和/或數據包的大小。
[0013]在一些實施例中,所述網絡監控方法還包括:將所述數據包存儲在數據包庫中,其中所述數據包被分配了所述元數據庫中的生成的元數據。
[0014]在一些實施例中,將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中的步驟包括:將所述數據包的被生成的元數據和與其相關聯的流信息緩存到緩沖存儲器中;將被緩存的所述數據包的元數據和相關聯的流信息、以及被緩存的其他數據包的元數據和相關聯的流信息從所述緩沖存儲器異步地轉移到所述元數據庫中。
[0015]在一些實施例中,所述被接收的數據包是網絡上傳輸的一組數據包中的一個,所述網絡監控方法包括:接收該組數據包;以及如果該組數據包中的每個數據包均被分配了對應的所述元數據庫中的元數據,則對該組數據包添加指示每個數據包被分配了對應元數據的塊標記。
[0016]在一些實施例中,所述網絡監控方法還包括:使用元數據過濾器來過濾具有所述指示每個數據包被分配了對應元數據的塊標記的該組數據包。
[0017]在一些實施例中,所述元數據包括一對源地址及目的地址、一對源端口和目的端口、源端子網絡標識符、目的端子網絡標識符、數據包流向、服務類型標識符、協議標識符、應用標識符和/或VLAN標識符。
[0018]在一些實施例中,所述流信息包括一對源地址及目的地址。
[0019]在一些實施例中,所述流信息還包括一對源端口和目的端口。
[0020]本申請的另一方面還公開了一種用于過濾網絡上傳輸的至少一組數據包的方法。該方法包括:提供元數據過濾器和數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器;針對所述至少一組數據包中的每組數據包,檢測其是否具有塊標記,其中所述塊標記指示所述該組數據包被分配了與其中的每個數據包的傳輸相關的元數據;根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包。[0021 ] 在一些實施例中,所述根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包的步驟包括:如果檢測到所述至少一組數據包中的一組數據包被分配了一組元數據,則使用所述元數據過濾器來過濾該組數據包;以及如果檢測到所述至少一組數據包中的一組數據包未被分配一組元數據,則使用所述數據包過濾器來過濾該組數據包。
[0022]在一些實施例中,所述至少一組數據包中的每組數據包具有數據塊頭,并且所述指示每個數據包被分配了對應元數據的塊標記被添加在所述數據塊頭中。
[0023]在一些實施例中,所述至少一組數據包是由數據包塊索引來索引的,并且所述塊標記還被添加在所述數據包塊索引中。
[0024]在一些實施例中,所述方法還包括:從所述至少一組數據包中獲取被過濾的數據包。
[0025]在一些實施例中,所述數據包過濾器具有至少一個預定過濾條件,其與所述元數據過濾器中的至少一個過濾條件對應并可相互轉換。
[0026]本申請的另一方面還公開了一種用于過濾網絡上傳輸的至少一個數據包的方法。該方法包括:提供元數據過濾器和數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器;針對所述至少一個數據包中的每個數據包,檢測其是否具有對應的元數據;以及根據所述元數據的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一個數據包。
[0027]本申請的另一方面還公開了一種網絡監控裝置,該網絡監控裝置包括:接收裝置,用于接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息;流信息獲取裝置,用于獲取所述數據包的流信息;檢測裝置,用于檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息;元數據生成裝置,用于根據所述流信息的檢測結果,生成與所述至少一個數據包中的每個數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及存儲裝置,用于將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中。
[0028]本申請的另一方面還公開了一種用于過濾網絡上傳輸的至少一組數據包的裝置。該裝置包括:元數據過濾器;數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器;標記檢測裝置,用于針對所述至少一組數據包中的每組數據包,檢測其是否具有塊標記,其中所述塊標記指示所述該組數據包被分配了與其中的每個數據包的傳輸相關的元數據;以及過濾器選擇裝置,用于根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包。
[0029]以上為本申請的概述,可能有簡化、概括和省略細節的情況,因此本領域的技術人員應該認識到,該部分僅是示例說明性的,而不旨在以任何方式限定本申請范圍。本概述部分既非旨在確定所要求保護主題的關鍵特征或必要特征,也非旨在用作為確定所要求保護主題的范圍的輔助手段。
【附圖說明】
[0030]通過下面說明書和所附的權利要求書并與附圖結合,將會更加充分地清楚理解本申請內容的上述和其他特征。可以理解,這些附圖僅描繪了本申請內容的若干實施方式,因此不應認為是對本申請內容范圍的限定。通過采用附圖,本申請內容將會得到更加明確和詳細地說明。
[0031]圖1示出了可以應用本申請網絡監控裝置的網絡系統10的示意圖;
[0032]圖2示出了根據本申請一個實施例的網絡監控裝置16的示意圖;
[0033]圖3示出了根據本申請一個實施例的網絡監控方法300的流程圖;
[0034]圖4示出了根據本申請一個實施例的用于過濾網絡上傳輸的至少一組數據包的方法400 ;
[0035]圖5示出了根據本申請一個實施例的網絡監控裝置500的示意圖;
[0036]圖6示出了根據本申請一個實施例的用于過濾網絡上傳輸的至少一組數據包的裝置600的示意圖。
【具體實施方式】
[0037]在下面的詳細描述中,參考了構成其一部分的附圖。在附圖中,類似的符號通常表示類似的組成部分,除非上下文另有說明。【具體實施方式】、附圖和權利要求書中描述的示例性實施方式并非旨在限定。在不偏離本申請的主題的精神或范圍的情況下,可以采用其他實施方式,并且可以做出其他變化。可以理解,可以對本文中一般性描述的、在附圖中圖解說明的本申請內容的各個方面進行多種不同構成的配置、替換、組合、設計,而所有這些都明確地構成本申請內容的一部分。
[0038]圖1示出了可以應用本申請網絡監控裝置的網絡系統10的示意圖。
[0039]如圖1所示,該網絡系統10包括多個網絡設備12,這些網絡設備12通過網絡14進行通信,并且在相互之間發送、接收數據。網絡14上傳輸的數據可以采用數據包(packet)的形式,其中這些數據包可以采用相同或不同的通信傳輸協議,并且具有相同或不同的數據格式。這些數據包具有包頭,其包含有關于數據包的數據及傳輸的信息。通過使用包頭中有關于數據包傳輸的信息,網絡14可以利用例如路由器來將數據包由源網絡設備發送到目的網絡設備。例如,對于采用TCP/IP協議的數據包,其包頭中包含有源網絡設備的源地址和源端口,以及目的網絡設備的目的端口和目的地址。
[0040]網絡監控裝置16被耦接到網絡14上,并且用于監測網絡14上傳輸的數據信息。例如,網絡監控裝置16可以捕獲數據包,并且還可以使用數據包分析引擎來對所捕獲的數據包進行分析。在一些實施例中,網絡監控裝置16可以包括硬件、軟件、CPU、存儲器、接口等組件,從而運行通用或專用程序,以連接網絡14并監測其上傳輸的數據。網絡監控裝置16還可以進行其他的測試、測量操作,以及進行數據的發送和接收操作,等等。
[0041]圖2示出了根據本申請一個實施例的網絡監控裝置的示意圖。
[0042]如圖2所示,該網絡監控裝置16包括網絡接口 22,其通過一個或多個端口將網絡裝置16連接到網絡14上。網絡監控裝置16還可以包括一個或多個處理器23,一個或多個易失性存儲器24 (諸如動態隨機存儲器),一個或多個非易失性存儲器26 (諸如硬盤、快閃存儲器等)。在一些實施例中,網絡監控裝置16還包括顯示器28,用戶輸入組件30,以及用于耦接外部設備的輸入/輸出接口 34等。網絡監控裝置16可以基于存儲在存儲器26中的操作系統,例如 Windows Server?,Mac OS X?,Unix?, Linux?,FreeBSD?等,來進行操作。
[0043]圖3示出了根據本申請一個實施例的網絡監控方法300的流程圖。該方法可以由處理邏輯執行,該處理邏輯可以包括軟件(其可運行在例如通用或專用計算設備上)、硬件(例如電路、專用邏輯等)、固件或者其組合。在一些實施例中,該網絡監控方法可以由圖2所示的網絡監控裝置執行。
[0044]如圖3所示,該網絡監控方法300始于步驟S302,網絡監控裝置接收網絡上傳輸的一個數據包,其中該數據包具有指示數據包傳輸的網絡流的流信息。在一些實施例中,流信息可以包括一對源地址和目的地址,或者還可以包括一對源端口和目的端口。通過源地址和目標地址對,網絡監控裝置可以確定所接收的數據包是在網絡上耦接的哪兩個網絡設備之間傳輸的;而通過源端口和目的端口,網絡監控裝置可以進一步地確定所接收的數據包是有關于這些網絡設備上的哪些具體進程。在一些實施例中,網絡監控裝置可以通過建立一個或多個查找表來存儲流信息所包括的源地址和目的地址對和/或源端口和目的端口對。該查找表包括多對地址對和/或端口對,其中每個地址對和/或端口對可以由一流標識符來標識。
[0045]可以理解,在實際應用中,網絡上通常傳輸有多個數據包。網絡監控裝置接收這些數據包,并對其進行監控。換言之,在步驟S302接收的數據包可以是網絡監控裝置接收的多個數據包中的一個,并且網絡監控裝置可以對該數據包執行網絡監控方法300。此外,對于其他被接收的數據包,所述網絡監控裝置也可以對這些數據包執行網絡監控方法300。
[0046]之后,在步驟S304,網絡監控裝置獲取步驟S302中接收的數據包的流信息。
[0047]通常,流信息可以被包含在數據包的包頭中,例如被定義在包頭的預定字段。因此,在一些實施例中,網絡監控裝置可以通過查詢數據包包頭的預定字段來獲得對應的流信息。可以理解,根據發送/接收的網絡設備的不同,不同的數據包可以具有不同或相同的流信息。然而數據包的長度通常具有限制,例如對于IP數據包而言,其最大長度為64k字節。因此,對于兩個網絡設備之間的大數據量傳輸,網絡監控裝置往往能夠監測到數百、數千或者更多數量的數據包,并且這些數據包具有相同的流信息。
[0048]接著,在步驟S306,網絡監控裝置檢測元數據庫中是否存在對應于所接收的數據包的流信息,其中元數據庫可以存儲元數據和與其相關聯的流信息。
[0049]在一些實施例中,元數據庫是元數據以及與其相關聯的流信息的集合,其是網絡監控裝置基于已接收到的數據包的信息所創建的。其中,元數據是與數據包的傳輸相關的信息,其例如包括一對源地址及目的地址、一對源端口和目的端口、源端子網絡標識符、目的端子網絡標識符、數據包流向、服務類型標識符、協議標識符和/或VLAN(虛擬局域網)標識符等信息,或者其他與數據包的數據和/或其傳輸相關的信息(例如數據包的大小等)O
[0050]在一些實施例中,網絡監控裝置可以通過復制一個數據包包頭的一部分或全部數據來作為該數據包的元數據。例如,網絡監控裝置可以直接復制包頭中的源地址、目的地址、源端口、目的端口、地址類型、數據包長度、服務類型標識符等數據作為元數據的一部分。對于采用特定協議的數據包,這些數據在數據包中的位置都是確定的。因此,可以在網絡監控裝置中提供預定義的數據提取程序來獲得元數據。
[0051]在另一些實施例中,網絡監控裝置還可以對數據包包頭的部分或全部數據進行處理,并將處理后的數據作為數據包的元數據。例如,在采用TCP/IP協議的系統中,不同的服務端口通常已被分配給不同的應用程序或服務。通常地,端口號53被分配給網絡系統(DNS)以進行域名解析;端口號80被分配給超文本服務器(HTTP)以用于萬維網服務器向網絡設備的本地瀏覽器傳送超文本;端口號110被分配用于電子郵件傳輸,等等。因此,網絡監控裝置中可以包括一個預定轉換函數,其可以包括TCP/IP協議或其他網絡傳輸協議定義的端口 -應用程序或服務的對應關系。利用該預定轉換函數,數據包包頭中的源端口或目的端口的數據可以被轉換為對應的應用程序標識符,其中應用程序標識符可以指示數據包可被應用于何種應用程序。在一些實施例中,只要數據包包頭中的源端口和目標端口中的一個屬于預定義的服務端口,則該數據包即可被提供或標記與該服務端口對應的應用程序標識符。類似地,網絡監控裝置還可以包括其他的預定轉換函數。例如,根據實際應用的需要,某些源地址或目標地址可以被定義為屬于某個域或某些域;相應地,網絡監控裝置可以提供一預定轉換函數,其包括源地址和/或目標地址與域的對應關系。利用該預定轉換函數,數據包包頭中的源地址可以被轉換為對應的源域標識符,而目的地址可以被轉換為對應的目的域標識符,以分別指示數據包來自或將被發送給哪些域。再例如,網絡監控裝置還可以根據兩個網絡設備之間一次會話的情況,將該會話相關的多個數據包的源地址和目的地址定義為一個地址對,并且進一步地區分這兩個網絡設備的主從關系。其中,最先發送數據包的網絡設備可以被定義為客戶端(其通常啟動會話以請求數據),而接收該數據包的網絡設備可以被定義為服務器端(其應答請求以提供數據)。因此,最先發送的數據包包頭中的源地址可以被定義為客戶端地址,而目的地址可以被定義為服務器端地址。相應地,網絡監控裝置可以根據上述定義構建轉換函數,并且將該次會話中的每個數據包包頭中的源地址和目的地址轉換為客戶端地址和服務器端地址。同時,網絡監控裝置還可以在轉換函數中設置數據包流向的確定函數,其中數據包流向可以是由客戶端至服務器端(如果數據包的源地址與客戶端地址相同,或者數據包的目的地址與服務器端地址相同),或者是由服務器端至客戶端(如果數據包的目的地址與客戶端地址相同,或者數據包的源地址與服務器地址相同)。該數據包流向也可以被添加到元數據中。可以理解,上述關于元數據所包含的數據信息僅為示例,根據具體應用的不同,本領域技術人員可以對元數據中包含的數據信息進行各種修改、變換和處理。
[0052]正如前述,元數據庫中的元數據與對應的流信息相關聯。在一些實施例中,流信息可以包含在對應的元數據中。例如,元數據與流信息的關聯關系可以通過將源地址-目的地址對和/或源端口 -目的端口對加入到對應的元數據中來建立。在另一些實施例中,流信息可以通過流標識符來標識,例如建立流信息與流標識符的查找表。相應地,元數據與流信息的關聯關系可以通過將流標識符加入到對應的元數據中來建立,或者通過創建流標識符與元數據的查找表來建立。這種處理與將流信息加入到元數據中可以實現相同的效果。可以理解,由于網絡監控裝置不斷地從網絡上捕獲或接收到新的數據包,因而元數據庫中包含的元數據可能會不斷增加。
[0053]此外,由于元數據庫中包含有大量的元數據,因此元數據庫還可以包含一元數據索引。元數據索引可以有助于元數據的查找或排序,并且可以提高元數據查找的效率。
[0054]根據在步驟S304中獲得的數據包的流信息,網絡監控裝置可以檢測元數據庫中是否存在該流信息。在一些實施例中,網絡監控裝置可以查詢流信息與流標識符的查找表以確定其中是否包含有該流信息。該查找表中具有例如源地址-目的地址對和/或源端口-目的端口對與流標識符的對應關系。如果存在,則網絡監控裝置可以獲得對應的流標識符。如果不存在,網絡監控裝置可以得到一表示無效或不存在的返回值,例如空值(null)。在另一些實施例中,流信息可以不采用流標識符來標識,而僅僅采用源地址-目的地址對和/或源端口-目的端口對來表示。網絡監控裝置可以將所有源地址-目的地址對和/或源端口-目的端口對存儲為一個查找表,并且在接收到新的源地址-目的地址對和/或源端口-目的端口對后更新該查找表。這樣,網絡監控裝置可以查詢該查找表來確定元數據庫中是否存在該流信息。
[0055]接著,在步驟S308中,網絡監控裝置根據流信息的檢測結果,生成與該數據包的傳輸相關的元數據。
[0056]具體地,如果檢測到元數據庫中不具有對應于該數據包的流信息,這說明元數據庫中不包含該流信息關聯的元數據,則網絡監控裝置從該數據包中提取與該數據包傳輸相關的數據以生成元數據。在一個實施例中,對于待提取的數據包,網絡監控裝置可以復制該數據包包頭的至少一部分以得到對應于該數據包的元數據,或者可選地,也可以對該數據包包頭的部分或全部數據進行處理,并將處理后的數據作為元數據或其一部分。在一些實施例中,元數據可以包括直接從數據包本身復制的數據,以及由數據包數據處理得到的數據。對包頭的數據進行的處理可以是通過例如預定轉換函數來轉換包頭中包含的至少一部分數據。關于轉換函數,可以參見上文中的說明,在此不再贅述。
[0057]相反,如果檢測到元數據庫中具有對應于被檢測的數據包的流信息,則網絡監控裝置可以從元數據庫中復制與檢測到的流信息相關的元數據作為該數據包的元數據。之所以可以采用上述處理方式,是因為在兩個網絡設備之間傳輸的多個數據包主要區別在于凈載數據(也即用戶數據),而其包頭中所包含的信息基本相同或僅略有差異。因此,對于在兩個網絡設備之間傳輸的多個數據包,基于數據包包頭數據解析得到的元數據通常也相同。進一步地,兩個網絡設備又可以通過其間傳輸的數據包的流信息來表征,如果流信息相同,則對應的元數據也相同。基于此,如果元數據庫中存在有對應于被檢測的數據包的流信息,這說明元數據庫中已包含有該流信息相關聯的元數據,因而可以將該元數據作為被檢測的數據包的元數據。這樣,網絡監控裝置可以減少解析數據包以獲得元數據的操作次數,從而大大提高元數據生成效率,這種處理方式特別適合應用于高速網絡通信中。
[0058]在一些實施例中,在針對每個接收到的數據包生成對應的元數據后,網絡監控裝置可以根據這些數據包的元數據來生成針對這些數據包的網絡統計信息。在一些實施例中,網絡統計信息可以包括源地址和目的地址,源端口和目的端口,源域標識符,目的域標識符,服務類型標識符,數據包流向,協議標識符,VLAN標識符,數據包的計數,和/或數據包的大小。網絡統計信息可以基于流信息,也即基于兩個相互通信的網絡設備對來進行統計。例如,網絡統計信息可以包括一對網絡設備之間一次或多次會話中傳輸的數據包的數量(即計數),或者這些數據包所包含的數據的大小。這些統計信息都可以通過設置預定統計函數或統計規則,并且利用這些統計函數或規則對元數據進行處理后得到。網絡統計信息還可以直接提取元數據中的一部分數據,例如協議標識符、VLAN標識符、服務類型標識符等。在一些實施例中,網絡統計信息可以緩存在網絡監控裝置中,例如緩存在主存儲器中,并且每隔預定時間間隔(例如60秒)將所緩存的信息存儲到網絡統計數據庫中。
[0059]之后,在步驟S310中,網絡監控裝置將被生成的元數據和與其相關聯的流信息存儲到元數據庫中。這樣,每個接收到的數據包均可以被分配一個對應的元數據。
[0060]在一些實施例中,如果在步驟S308中檢測到元數據庫中不具有一個數據包的流信息,則需要生成該數據包的元數據,并將被生成的該數據包的元數據與其流信息相互關聯,例如生成或分配一個新流標識符以表示該新的流信息,并且在生成的元數據中添加該新流標識符以關聯新流信息和新元數據。進一步地,新生成的元數據和與其相關聯的流信息可以被存儲在元數據庫中。此外,如果在步驟S308中檢測到元數據庫中已具有一個數據包的流信息,并且通過例如復制該已有流信息對應的元數據的操作來生成新的元數據,則該新的元數據所關聯的流信息也是確定的,網絡監控裝置可以將該元數據以及與其相關聯的流信息存儲到元數據庫中。
[0061]網絡監控裝置已經通過上述步驟得到了其所接收的數據包對應的元數據,而對于這些被接收的數據包本身,網絡監控裝置可以根據具體應用需求的不同來選擇如何處理。在一些實施例中,網絡監控裝置可能僅需要存儲元數據,以便后續基于所存儲的元數據來分析或回溯網絡中的數據包傳輸情況。在另一些實施例中,網絡監控裝置還可以同時存儲其在步驟S302中接收到的數據包,并且將所接收到的數據包存儲在數據包庫中。該數據包庫中的每個數據包可以被分配一個對應的元數據庫中的元數據,以描述其傳輸情況。例如,元數據庫可以包括元數據索引來索引元數據;而數據包庫可以包括數據包索引來索引數據包。其中數據包索引與元數據索引可以相互對應。例如,數據包索引以數據包接收的時序來對數據包進行排序,每個數據包被分配了唯一對應的數據包序號。相應地,元數據索引可以按照其對應的數據包的序號來進行排序。這樣,當網絡監控裝置分析元數據后發現仍缺少某些信息(例如缺少凈載數據時),網絡監控裝置還可以根據元數據來找到其對應的數據包,并且進一步地對該數據包進行分析處理。
[0062]可以理解,在高速通信網絡中,網絡中傳輸的數據包數量很多,因而網絡監控裝置需要具有足夠的存儲速度和存儲能力,以存儲大量的數據包和元數據。在一些情況下,特別是網絡傳輸速率過高時,有可能出現網絡監控裝置難以及時將所接收的數據包以及被生成的元數據存儲到其內部的大容量存儲介質(例如硬盤或快閃存儲器)中的情況。為了避免或者減少這種情況的發生,在一些實施例中,網絡監控裝置可以設置緩沖存儲器,在步驟S308中生成的元數據、以及來自網絡的其他數據包的被生成的元數據可以首先被緩存到緩沖存儲器中,并且在滿足預定條件后將這些所緩存的元數據轉移到元數據庫的大容量存儲介質中。換言之,這些數據包的元數據以及相關聯的流信息被逐批地轉移到元數據庫中。例如,在緩沖存儲器每次存滿之后,或者在間隔預定時間之后,將元數據轉移到元數據庫中。在一些實施例中,可以將被緩存的元數據和流信息從緩沖存儲器中異步地轉移到元數據庫中,即元數據庫中的存儲器采用了異步輸入輸出方式來存儲數據。具體地,當網絡監控裝置指示某一批被緩存的元數據向存儲器轉移后,其不等待存儲器返回該批元數據是否存儲完成的響應,就繼續將下一批被緩存的元數據向存儲器轉移。網絡監控裝置可以安排特定的線程來處理該元數據的轉移和存儲,而安排另一個或一些線程來檢測被轉移的元數據是否存儲成功。對于采用硬盤存儲器的元數據庫,上述異步存儲的操作可以使磁頭能夠連續地向硬盤的相同區域或相鄰區域寫入數據,從而避免頻繁尋址影響數據寫入速度。
[0063]正如之前所說明的,每個IP數據包的最大長度為64k字節。對于兩個網絡設備之間的大數據量傳輸,網絡監控裝置往往能夠監測到數百、數千或者更多數量的數據包,并且這些數據包具有相同的流信息。為了提高數據包的處理效率,在一些實施例中,多個數據包被打包成一組數據包,例如64個、128個、256個或者更多個數據包被打包成一組數據包。這一組數據包可以被一起傳輸,并被網絡監控裝置接收并進行處理。其中,每組數據包可以包括一個數據塊頭,以用于在其中添加有關于該組數據包及其傳輸的信息。相應地,多個對應的元數據也可以被打包成一組元數據,并且提供一元數據塊頭。在一些實施例中,數據塊頭中可以添加一個塊標記,其用于表示該組數據包中的每個數據包均被分配了對應的元數據。塊標記的使用有助于數據包和元數據的后續處理。例如,當網絡監控裝置對其所接收并存儲的數據包進行后續處理時,網絡監控裝置可以檢測每組數據包中數據塊頭中是否具有塊標記:如果具有指示該組數據包中的每個數據包均被分配了元數據的塊標記,則網絡監控裝置可以選擇對該組數據包對應的元數據組來進行處理,例如對元數據進行數據分析和過濾;相反,如果數據塊頭中沒有指示該組數據包被分配了元數據的塊標記,則網絡監控裝置可以選擇仍對該組數據包進行處理,例如對數據包進行數據分析和過濾。
[0064]可以看出,本申請的網絡監控方法通過元數據來描述數據包的傳輸,而該元數據的大小通常遠小于數據包的大小。在需要對數據包進行監控時,例如對數據包的傳輸狀態等信息進行統計、或者依據特定算法對數據包進行過濾時,網絡監控裝置通常可以只對元數據進行處理,而不需要或者較少需要直接對數據包進行處理。這種數據分析處理方式極大地簡化了網絡數據包的分析處理難度,從而提高了網絡監控的效率和可靠性。這使得該網絡監控方法特別適合應用于高速通信網絡。
[0065]對于通過上述網絡監控方法獲得的數據包及元數據,本申請還提供了一種對其進行過濾的方法。在過濾后,符合過濾條件和要求的數據包和/或元數據可以被恢復,并且可以被匯編或整理成數據文件,以供后續使用。
[0066]圖4示出了根據本申請一個實施例的用于過濾網絡上傳輸的至少一組數據包的方法400。該方法400可以通過例如圖2所示的網絡監控裝置執行,或者通過類似的數據處理裝置執行。
[0067]如圖4所示,在步驟S402中,提供元數據過濾器和數據包過濾器,其中該數據包過濾器關聯于元數據過濾器。
[0068]具體地,待過濾的數據是數據包,其通常被網絡監控裝置接收并且存儲在數據包庫中。這些數據包中的部分或全部被分配有對應的元數據,元數據被存儲在元數據庫中。在一些實施例中,數據包可以按組地存儲在數據包庫中,每組數據包可以包括一數據塊頭;類似地,元數據可以按組地存儲在元數據庫中,每組元數據可以包括一元數據塊頭。
[0069]對于每組數據包,其可以包括一塊標記,該塊標記用于指示該組數據包被分配了與其中每個數據包的傳輸相關的元數據。換言之,如果一組數據包中的任意一個或多個數據包不具有對應的元數據,則該組數據包可以不具有塊標記,或者塊標記被設置為指示缺少對應的元數據。在一些實施例中,塊標記可以被添加在數據塊頭中。在另一些實施例中,塊標記還可以被添加在數據包塊的塊索引中。
[0070]元數據過濾器通常包含有一些預設的過濾條件,這些過濾條件與元數據中所包含的數據相對應。例如,元數據可以包含例如應用程序標識符,其指示該元數據對應的數據包適于應用的應用程序。不同的應用程序標識符可以被分配了不同的值。應用程序標識符可以參見圖3所示的網絡監控方法中的相關描述。相應地,元數據過濾器可以包括應用程序標識符的一個或多個具體值,當元數據的應用程序標識符的值與元數據過濾器中的值相同時,可以認為該元數據符合過濾條件;而當元數據的應用程序標識符的值與元數據過濾器中的值不同時,可以認為該元數據不符合過濾條件。在一些實施例中,符合過濾條件的元數據可以被保留,而不符合過濾條件的元數據可以被丟棄。或者相反地,丟棄符合過濾條件的元數據。
[0071 ] 在一些實施例中,數據包過濾器與元數據過濾器相關聯是指數據包過濾器具有至少一個預定過濾條件,其與元數據過濾器中的一過濾條件對應并且可以相互轉換。例如,數據包可能并不具有元數據的應用程序標識符,而僅具有源端口或目的端口的端口號,但是這些端口號中的至少一個通常與應用程序是一一對應的。因此,數據包過濾器可以與包含端口號相關的過濾條件,其與元數據過濾器中應用程序標識符的值相對應。例如,元數據過濾器的過濾條件可以限定為元數據的應用程序標識符需要對應為DNS的標識符。相應地,數據包過濾器中包含的過濾條件可以限定為目標端口或源端口的端口號為53。由于在采用TCP/IP協議的網絡系統中,端口號53被分配給網絡系統(DNS)以進行域名解析,因此數據包過濾器與元數據過濾器的這兩個過濾條件是相同,從而使得兩個過濾器進行實質上相同的數據過濾操作。在實際應用中,可以通過元數據和數據包中數據的對應關系來構建數據包過濾器和元數據過濾器。
[0072]接著,在步驟S404中,針對待過濾的每組數據包,檢測其是否具有塊標記。
[0073]正如前述,塊標記可以被添加在數據塊頭中,或者被添加在數據包塊的索引中。因此,對于每組數據包,可以在其數據塊頭和/或數據包塊的索引中查找、檢測塊標記。
[0074]之后,在步驟S406中,根據塊標記的檢測結果使用元數據過濾器或數據包過濾器來過濾數據包。
[0075]具體地,如果檢測到一組數據包被分配了一組元數據,則使用元數據過濾器來過濾該組數據包,具體地,過濾該組數據包對應的元數據;而如果檢測到一組數據包未被分配一組元數據,則使用數據包過濾器來過濾該組數據包。
[0076]在一些實施例中,在步驟S406之后,還可以獲取被過濾的數據包,以生成包含這些被過濾的數據包的數據文件。例如,對于使用數據包過濾器過濾的數據包,可以在過濾的同時直接將其轉移到預定存儲位置,或者緩存起來;而對于使用元數據過濾的數據包,可以在過濾得到的元數據的基礎上,進一步地到數據包庫中讀取獲得對應的數據包,并且之后將這些數據包轉移到預定存儲位置,或者緩存起來。這樣處理后,即可得到符合元數據過濾器過濾條件或數據包過濾器過濾條件的數據包。這些數據包可以被匯編或整理成數據文件,以供后續使用。
[0077]在一些實施例中,接收自網絡的數據包也可以逐個地進行過濾。相應地,針對待過濾的每個數據包,檢測其是否具有對應的元數據。接著,根據元數據的檢測結果使用元數據過濾器或數據包過濾器來過濾所接收的數據包。在一些實施例中,可以先過濾元數據庫中包含的元數據,并且之后過濾數據包庫中包含的不具有對應元數據的數據包。
[0078]圖5示出了根據本申請一個實施例的網絡監控裝置500的示意圖。
[0079]如圖5所示,該網絡監控裝置500包括:
[0080]接收裝置501,用于接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息;
[0081]流信息獲取裝置503,用于獲取所述數據包的流信息;
[0082]檢測裝置505,用于檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息;
[0083]元數據生成裝置507,用于根據所述流信息的檢測結果,生成與該數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及
[0084]存儲裝置509,用于將被生成的元數據和與其相關聯的流信息存儲到元數據庫中。
[0085]圖6示出了根據本申請一個實施例的用于過濾網絡上傳輸的至少一組數據包的裝置600的示意圖。
[0086]如圖6所示,該裝置600包括:
[0087]元數據過濾器601;
[0088]數據包過濾器603,其中所述數據包過濾器603關聯于所述元數據過濾器601 ;
[0089]標記檢測裝置605,用于針對所述至少一組數據包中的每組數據包,檢測其是否具有塊標記,其中所述塊標記指示所述該組數據包被分配了與其中的每個數據包的傳輸相關的元數據;以及
[0090]過濾器選擇裝置607,用于根據所述塊標記的檢測結果使用所述元數據過濾器601或所述數據包過濾器603來過濾所述至少一組數據包。
[0091]在本申請的一些實施例中,圖5所示的裝置500以及圖6所示的裝置600可以通過一個或多個應用專用集成電路(ASIC)、數字信號處理器(DSP)、數字信號處理設備(DSPD)、可編程邏輯器件(PLD)、現場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件來實現,并且可以用于執行圖3所示的方法300或圖4所示的方法400。
[0092]在一些實施例中,本申請還提供了一種包括指令的非易失性計算機可讀存儲介質,例如包括指令的存儲器,上述指令可由例如圖2所示的網絡監控裝置16的處理器23執行以實現圖3所示的方法300或圖4所示的方法400。例如,非易失性計算機可讀存儲介質可以是R0M、隨機存取存儲器(RAM)、CD-ROM、磁帶、閃存、硬盤、軟盤和光數據存儲設備等。
[0093]應當注意,盡管在上文詳細描述中提及了本申請實施例的網絡監控裝置的若干模塊或子模塊,但是這種劃分僅僅是示例性的而非強制性的。實際上,根據本申請的實施例,上文描述的兩個或更多模塊的特征和功能可以在一個模塊中具體化。反之,上文描述的一個模塊的特征和功能可以進一步劃分為由多個模塊來具體化。
[0094]此外,盡管在附圖中以特定順序描述了本申請方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執行這些操作,或是必須執行全部所示的操作才能實現期望的結果。相反,流程圖中描繪的步驟可以改變執行順序。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執行,和/或將一個步驟分解為多個步驟執行。
[0095]本技術領域的普通技術人員可以通過研究說明書、公開的內容及附圖和所附的權利要求書,理解和實施對披露的實施方式的其他改變。在權利要求中,措詞“包括”不排除其他的元素和步驟,并且措辭“一”、“一個”不排除復數。在發明的實際應用中,一個零件可以執行權利要求中所引用的多個技術特征的功能。權利要求中的任何附圖標記不應理解為對范圍的限制。
【主權項】
1.一種網絡監控方法,其特征在于,包括: 接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息; 獲取所述數據包的流信息; 檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息; 根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及 將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中。2.根據權利要求1所述的網絡監控方法,其特征在于,所述根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據的步驟包括: 如果檢測到元數據庫中不具有對應于所述數據包的流信息,則從所述數據包中提取與其傳輸相關的數據以生成所述元數據;以及 如果檢測到元數據庫中具有對應于所述數據包的流信息,則從所述元數據庫中復制與所述流信息相關聯的元數據作為所述數據包的元數據。3.根據權利要求2所述的網絡監控方法,其特征在于,從所述數據包中提取與其傳輸相關的數據以生成所述元數據的步驟包括: 復制和/或處理所述數據包包頭的至少一部分以得到所述數據包的元數據。4.根據權利要求3所述的網絡監控方法,其特征在于,所述處理所述數據包包頭的至少一部分包括利用一個或多個預定轉換函數來轉換所述數據包包頭中包含的至少一部分數據。5.根據權利要求1所述的網絡監控方法,其特征在于,將所述元數據與對應的流信息相關聯包括:將所述流信息包含在生成的元數據中。6.根據權利要求1所述的網絡監控方法,其特征在于,所述被接收的數據包是網絡上傳輸的多個數據包中的一個,所述網絡監控方法包括: 接收所述多個數據包,并根據對應于所述多個數據包的元數據,生成針對所述多個數據包的網絡統計信息。7.根據權利要求6所述的網絡監控方法,其特征在于,所述網絡統計信息包括源地址和目的地址,源端口和目的端口,源域標識符,目的域標識符,服務類型標識符,數據包流向,協議標識符,VLAN標識符,數據包的計數,和/或數據包的大小。8.根據權利要求1所述的網絡監控方法,其特征在于,所述網絡監控方法還包括: 將所述數據包存儲在數據包庫中,其中所述數據包被分配了對應的所述元數據庫中的元數據。9.根據權利要求1所述的網絡監控方法,其特征在于,所述將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中的步驟包括: 將所述數據包的被生成的元數據和與其相關聯的流信息緩存到緩沖存儲器中; 將被緩存的所述數據包的元數據和相關聯的流信息、以及被緩存的其他數據包的元數據和相關聯的流信息從所述緩沖存儲器異步地轉移到所述元數據庫中。10.根據權利要求1所述的網絡監控方法,其特征在于,所述被接收的數據包是網絡上傳輸的一組數據包中的一個,所述網絡監控方法包括: 接收該組數據包;以及 如果該組數據包中的每個數據包均被分配了對應的所述元數據庫中的元數據,則對該組數據包添加指示每個數據包被分配了對應元數據的塊標記。11.根據權利要求10所述的網絡監控方法,其特征在于,所述網絡監控方法還包括: 使用元數據過濾器來過濾具有所述塊標記的該組數據包。12.根據權利要求1所述的網絡監控方法,其特征在于,所述元數據包括一對源地址及目的地址、一對源端口和目的端口、源端子網絡標識符、目的端子網絡標識符、數據包流向、服務類型標識符、協議標識符、應用標識符和/或VLAN標識符。13.根據權利要求1所述的網絡監控方法,其特征在于,所述流信息包括一對源地址及目的地址。14.根據權利要求13所述的網絡監控方法,其特征在于,所述流信息還包括一對源端口和目的端口。15.一種用于過濾網絡上傳輸的至少一組數據包的方法,其特征在于,所述方法包括: 提供元數據過濾器和數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器; 針對所述至少一組數據包中的每組數據包,檢測其是否具有塊標記,其中所述塊標記指示所述該組數據包被分配了與其中的每個數據包的傳輸相關的元數據;以及 根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包。16.根據權利要求15所述的方法,其特征在于,所述根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包的步驟包括: 如果檢測到所述至少一組數據包中的一組數據包被分配了一組元數據,則使用所述元數據過濾器來過濾該組數據包;以及 如果檢測到所述至少一組數據包中的一組數據包未被分配一組元數據,則使用所述數據包過濾器來過濾該組數據包。17.根據權利要求15所述的方法,其特征在于,所述至少一組數據包中的每組數據包具有數據塊頭,并且所述塊標記被添加在所述數據塊頭中。18.根據權利要求17所述的方法,其特征在于,所述至少一組數據包是由數據包組索引來索引的,并且所述塊標記還被添加在所述數據包塊索引中。19.根據權利要求15所述的方法,其特征在于,所述方法還包括: 從所述至少一組數據包中獲取被過濾的數據包。20.根據權利要求15所述的方法,其特征在于,所述數據包過濾器具有至少一個預定過濾條件,其與所述元數據過濾器中的至少一個過濾條件對應并可相互轉換。21.根據權利要求15所述的方法,其特征在于,所述元數據包括一對源地址及目的地址、一對源端口和目的端口、源端子網絡標識符、目的端子網絡標識符、數據包流向、服務類型標識符、協議標識符、應用標識符和/或VLAN標識符。22.一種用于過濾網絡上傳輸的至少一個數據包的方法,其特征在于,所述方法包括: 提供元數據過濾器和數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器; 針對所述至少一個數據包中的每個數據包,檢測其是否具有對應的元數據;以及 根據所述元數據的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一個數據包。23.一種網絡監控裝置,其特征在于,包括: 接收裝置,用于接收網絡上傳輸的數據包,其中所述數據包具有指示所述數據包傳輸的網絡流的流信息; 流信息獲取裝置,用于獲取所述數據包的流信息; 檢測裝置,用于檢測元數據庫中是否存在對應于所述數據包的流信息,其中所述元數據庫用于存儲元數據和與其相關聯的流信息; 元數據生成裝置,用于根據所述流信息的檢測結果,生成與所述數據包的傳輸相關的元數據,并將其與對應的流信息相關聯;以及 存儲裝置,用于將被生成的元數據和與其相關聯的流信息存儲到所述元數據庫中。24.一種用于過濾網絡上傳輸的至少一組數據包的裝置,其特征在于,所述裝置包括: 元數據過濾器; 數據包過濾器,其中所述數據包過濾器關聯于所述元數據過濾器; 標記檢測裝置,用于針對所述至少一組數據包中的每組數據包,檢測其是否具有塊標記,其中所述塊標記指示所述該組數據包被分配了與其中的每個數據包的傳輸相關的元數據;以及 過濾器選擇裝置,用于根據所述塊標記的檢測結果使用所述元數據過濾器或所述數據包過濾器來過濾所述至少一組數據包。
【文檔編號】H04L12/24GK105827474SQ201510011673
【公開日】2016年8月3日
【申請日】2015年1月9日
【發明人】潘阿榮, R·福格特, 章亮, 潘世光
【申請人】丹納赫(上海)工業儀器技術研發有限公司