麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

P2p流量識別方法、裝置、設備和系統的制作方法

文檔序號:7973302閱讀:294來源:國知局
專利名稱:P2p流量識別方法、裝置、設備和系統的制作方法
技術領域
本發明涉及網絡通信技術領域,尤其涉及一種P2P流量首報文識別的方法、裝置、 設備和系統。
背景技術
近年來,計算機網絡中的各種對等網絡(Peer-to-Peer,P2P)應用越來越豐富, 出現了許多新的應用類型和協議,這些P2P應用消耗了大量的網絡帶寬。由于不同的網絡應用對帶寬資源的需求不一樣,如網絡游戲、網絡電話(VOIP,Voice over Internet Protocol)、視頻會議等實時應用對網絡傳輸時延、抖動等特性較為敏感,當網絡上有P2P 應用流量等高流量型應用時,實時應用的使用就會受很大的影響。為了解決上述問題,現有技術中,通過為企業、網吧租用兩條或多條廣域網鏈路, 其中一條高質量線路用于傳輸對網絡傳輸時延、抖動等特性敏感的關鍵應用,另一條低質量線路用于傳輸P2P應用等。此種情況,需要出口網關設備能夠根據應用類型進行策略路由。由于出口網關設備通常部署網絡地址轉換(NAT,Network Address Translation)功能,連接一旦建立,雖然能夠根據應用類型的識別結果修改上行流量的線路,但是真正消耗帶寬的下行流量仍然占用連接建立時選擇的線路。因此,為了有效地利用網絡資源,必須對 P2P應用流量進行有效地管理,而其前提是能夠實現對P2P流量的高效、準確的識別。傳統的P2P流量識別方法可以分為三類端口映射(Port Mapping)、深度數據包檢測(DPI,De 印 Packet Inspection)、流量特征檢測(DFI,De 印 Flow Identify)。其中端口映射方法是根據各種P2P應用所使用的傳輸層端口進行識別,但現有的P2P 應用為了躲避檢測,都已經開始使用動態端口,甚至使用其它網絡應用的端口,如HTTP的 80端口,因此該方法無法準確地識別P2P流量;深度數據包檢測方法是通過分析應用層載荷、提取各種P2P應用的特征串進行識別,該方法準確性高、易于實現,其缺點是只能對以明文方式傳輸的P2P應用進行檢測,而大多數P2P應用已經開始采用模糊加密協議傳輸數據。對于TCP連接,當獲取到應用層載荷的時候,已經經過了三次握手過程,因此無法在連接建立時識別出P2P流量;流量特征檢測方法是通過對網絡流量中所有數據包進行統計分析,如數據包大小、間隔時間、連接數量等,利用機器學習、數據挖掘等方法,發現P2P應用的流量特征,以此來檢測P2P應用的流量。這種方法能夠檢測未知和加密的P2P流量,但是需要對大量數據包進行統計分析才能做出判斷,處理的數據量較大,且存在一定的誤判率,同時,流量特征檢測方法只能在連接建立以后提取P2P應用的流量特征,而無法在連接建立時識別出P2P 流量。另外,這類方法的檢測依據是P2P應用的流量特征,這是一個統計量,無法準確區分各種具體的P2P應用流量。除了以上三種方法,近年來出現了一種利用主動探測識別P2P流量的方法。該方法首先通過深度數據包檢測識別明文P2P流量,然后結合流量特征檢測方法,標記出疑似 P2P流的未知連接,接著向外網對端發送特定P2P應用協議的交互報文進行主動探測(如發送電驢edonkey協議的Hello報文),如果對端的回應報文是該特定P2P協議交互報文的回應(如回應電驢edonkey協議的Hello answer報文),則可以判斷出該流量為P2P流量。當所有P2P協議的交互特征庫都嘗試探測后,仍然無法收到相應P2P應用協議的應答報文,則認為該連接為未知應用。相比于流量特征檢測方法,主動探測方法能夠準確地識別出加密P2P流量,并且區分各種具體的P2P應用。但是,這種識別方式是在連接建立以后進行的探測,無法做到在建立連接時識別出P2P流量,等到識別出來后,可能這條連接已經進行了一定量的下載。另外,一個內網P2P用戶通常向數量龐大的外網對端請求資源,隨著加密P2P流量和P2P應用協議種類的增加,需要發送的主動探測流量可能消耗大量的出口帶寬,無法實現有效的流量管理。綜上所述,如何在連接建立時對P2P流量進行準確識別,稱為現有技術中亟待解決的技術問題之一。

發明內容
本發明實施例提供一種P2P流量識別方法、裝置、網關設備和系統,用以在連接建立時對P2P流量進行準確識別,從而滿足根據應用類型進行策略路由的需要,達到充分利用多條線路、保障關鍵應用正常運行的目的。本發明實施例提供一種P2P流量識別方法,包括在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取所述首報文數據包中的來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文P2P流量以外的數據流量;判斷所述來源客戶端信息是否存在于預先建立的對等網絡P2P客戶端列表中;在判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷結果為否時,確定所述未知流量為非P2P流量。較佳地,本發明實施例中,按照如下過程建立P2P客戶端列表當所述用戶向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,并確定所述明文P2P流量對應的P2P應用類型;根據確定出的P2P類型解析所述交互數據包,提取所述用戶所請求資源的資源標識;從預先存儲的報文模板庫中,選擇所述P2P應用類型對應的來源交換報文模板;利用所述來源交換報文模板和所述資源標識構造來源交換報文,并向所述用戶發送所述來源交換報文;從所述用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表。本發明實施例提供一種P2P流量識別裝置,包括密文處理單元,用于在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取所述首報文數據包中的來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文P2P流量以外的數據流量;判斷單元,用于判斷所述來源客戶端信息是否存在于預先建立的對等網絡P2P客戶端列表中;
確定單元,用于在所述判斷單元的判斷結果為是時,確定所述未知數據流量為P2P 流量;在判斷結果為否時,確定所述未知流量為非P2P流量。本發明實施例提供一種網關設備,包括上述P2P流量識別裝置。本發明實施例提供一種P2P流量識別系統,包括網關云服務器和至少一個網關設備,其中所述網關設備,用于存儲來源交換報文模板,并針對每一個來源交換報文模板,分別統計利用該來源交換模板構造的來源交換報文被用戶成功響應次數和失敗響應次數,將該來源交換模板對應的成功響應次數和失敗響應次數上報給所述網關云服務器;當用戶向外網客戶端請求資源時,利用存儲的來源報文模板構造來源交換報文,并向所述用戶發送所述來源交換報文;從所述用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表;當用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文對等網絡P2P流量以外的數據流量;判斷所述來源客戶端信息是否存在于預先建立的P2P客戶端列表中;在判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷結果為否時,確定所述未知流量為非P2P流量;所述網關云服務器,用于根據各網關設備上報的各來源交換模板對應的成功響應次數確定來源交換報文模板的優先級,以及根據各來源交換模板對應的失敗響應次數確定各來源交換模板的有效性,并將各來源交換報文模板的優先級和有效性同步給所述網關設備。本發明實施例提供的P2P流量識別方法、裝置、網關設備和系統,在用戶與來源客戶端建立連接之前,預先建立P2P客戶端列表,當用戶與來源客戶端建立連接時,提取包含未知流量的首報文數據包中的來源客戶端信息,并判斷該來源客戶端信息是否在預先建立的P2P客戶端列表中,如果在,則將該首報文數據包包含的未知流量確定為P2P流量,否則, 將該首報文數據包包含的未知流量確定為非P2P流量,這樣,實現了在用戶與來源客戶端建立連接時,對P2P流量進行準確識別。本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在所寫的說明書、權利要求書、以及附圖中所特別指出的結構來實現和獲得。


圖1為本發明實施例中,P2P流量識別方法的實施流程示意圖;圖2為本發明實施例中,建立P2P客戶端列表的實施流程示意圖;圖3為本發明實施例中,P2P流量識別系統的結構示意圖;圖4為本發明實施例中,對P2P客戶端列表進行更新的實施流程示意圖;圖5為本發明實施例中,用戶A下載P2P資源的實施流程示意圖;圖6為本發明實施例中,P2P流量識別裝置的結構示意圖。
具體實施例方式為了達到在用戶與來源客戶端建立連接時對P2P流量進行準確地識別,本發明實施例提供一種P2P流量識別方法、裝置、網關設備和系統。內網用戶從P2P客戶端下載資源可以包括以下兩個步驟步驟一、向外網客戶端(可以為P2P客戶端或者P2P服務器)請求資源,即查詢那些外網客戶端能夠提供該資源,為了便于描述,本發明實施例中將能夠提供資源的外網客戶端稱為來源客戶端;步驟二,與來源客戶端(可以為多個)建立連接,以下載所需資源。本發明實施例中,即是通過在步驟一中獲取內網用戶與外網客戶端之間的交互數據包,并對獲取到的交互數據包進行分析,根據分析結果建立內網用戶可能發起連接的P2P 客戶端列表,從而對該內網用戶可能發起的P2P數據下載連接進行預期,當內網用戶在步驟二中與來源客戶端建立連接時,獲得內網用戶與該來源客戶端之間的首報文數據包并進行分析,從而準確識別密文P2P流量,進而對P2P流量進行有效管理,滿足多鏈路情況下的應用策略路由。與利用主動探測識別P2P流量的方法相比,該方法是針對有限的內網用戶發起連接,因此流量較小,不消耗出口帶寬。以下結合說明書附圖對本發明的優選實施例進行說明,應當理解,此處所描述的優選實施例僅用于說明和解釋本發明,并不用于限定本發明,并且在不沖突的情況下,本發明中的實施例及實施例中的特征可以相互組合。如圖1所示,為本發明實施例提供的P2P流量識別方法的實施流程示意圖,包括以下步驟S101、在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包, 并提取該首報文數據包中的來源客戶端信息;其中,未知數據流量為除已知類型數據流量(非P2P流量)和明文P2P流量以外的數據流量;S102、判斷該來源客戶端信息是否存在于預先建立的P2P客戶端列表中,如果是, 執行步驟S103,如果否,執行步驟S104 ;S103、確定未知流量為P2P流量;S104、確定未知流量為非P2P流量。其中,步驟SlOl中,可以按照如下步驟提取首報文數據包中的來源客戶端信息步驟一、確定該首報文數據包的傳輸方向;其中,數據包的傳輸方向包括上行方向和下行方向,其中,上行方向為內網客戶端發送給來源客戶端的數據包,下行方向為來源客戶端發送給內網客戶端的數據包。步驟二、當數據包的傳輸方向為上行方向時,分別提取該首報文數據包中的目的 IP和目的端口號作為來源客戶端信息;當該首報文數據包的傳輸方向為下行方向時,分別提取該首報文數據包中的源IP和源端口號作為來源客戶端信息。具體的,在獲取到首報文數據包后,可以提取該首報文數據包的五元組信息,五元組信息包括源IP、目的IP、源端口號、目的端口號和傳輸層協議號,其中,傳輸層協議號用于標識該數據包為采用TCP協議傳輸的數據包還是采用UDP協議傳輸的數據包。具體實施中,可以按照如下過程確定獲得的數據包中是否包含未知數據流量初級過濾設備從網絡轉發設備獲取用戶與外網客戶端之間的數據包。其中,初級過濾設備可以作為網絡轉發設備的一個功能模塊,也可以是一個獨立設備掛接或串聯在網絡轉發設備上。網絡轉發設備通常是出口網關或路由器設備,也可以是三層交換機、二層交換機等具備數據包轉發功能的設備;初級過濾設備對數據包進行初級過濾,具體是要濾除兩類數據包 一類是因傳輸干擾問題而發生錯誤的數據包,如校驗和錯誤的數據包、小于64字節的數據包等;另一類是傳輸層以下的數據包,由于P2P應用的數據包是應用層的數據包,因此傳輸層以下的數據包不可能是P2P應用的數據包。通過初級過濾處理后,再對數據包進行深度數據包檢測,分離出非P2P流量和明文P2P流量以及未知流量。對于未知流量需要進一步判斷是否為加密P2P流量,對于明文P2P流量,需要對其進一步進行分析,并根據分析結果建立P2P客戶端列表。具體實施時,對于建立P2P客戶端列表的方式不進行限定,例如,可以通過以下方式建立P2P客戶端列表(1)直接向P2P服務器請求;( 通過分布式哈希表, 如電驢的Kad網絡和BT的分布式哈希表(DHT,Distributed Hash Table)網絡獲取。較佳地,如圖2所示,還可以按照如下步驟建立P2P客戶端列表S201、當用戶向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,并確定該明文P2P流量對應的P2P應用類型;在本步驟中,可以以五元組標識的流為單元,對于同一五元組標識的流,只處理每條流的第一個數據包,這樣,可以提高處理效率。由于不同的P2P應用有其對應的特征串, 在獲取到交互數據包之后,對交互數據包進行深度數據包檢測,以提取該交互數據包中包含的明文P2P流量對應的P2P應用的特征串,根據提取到的P2P應用的特征串能夠確定該明文P2P流量對應的P2P應用類型。S202、根據確定出的P2P應用類型解析數據包,提取該用戶所請求資源的資源標識;其中,常見的P2P應用類型包括電驢、迅雷和比特精靈(BT)等,不同的P2P應用類型對應的傳輸層協議號不同,根據傳輸層協議號能夠確定P2P應用類型,進而能夠對數據包進行解析,在對數據包進行解析之后,能夠獲得用戶的相關信息,包括用戶標識(IP)、TCP 監聽端口和UDP監聽端口及該用戶所請求的資源的資源標識。S203、從預先存儲的報文模板庫中,選擇該P2P應用類型對應的來源交換報文模板;S204、利用該來源交換報文模板和資源標識構造來源交換報文,并向該用戶發送所述來源交換報文;具體的,可以模擬P2P客戶端向該用戶發起連接,并向該用戶發送構造的來源交換報文; S205、從該用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表。具體的,解析用戶返回的應答報文,獲取該用戶可能發起連接的來源客戶端列表, 并提取每個來源客戶端的IP和端口號信息,并根據提取到的來源客戶端的IP和端口號信息建立P2P客戶端列表。其中,步驟S203中,可以按照以下步驟選擇來源交換報文模板步驟一、針對該P2P應用類型對應的每一個來源交換報文模板,統計利用該來源交換報模板和資源標識構造的來源交換報文被用戶成功響應次數;步驟二、選擇成功響應次數最多的來源交換報文模板作為該P2P應用類型對應的來源交換報文模板。為了保證報文模板庫中存儲的來源交換報文模板能夠保持長期有效,本發明實施還提供一種更新機制,用于及時發現并更新失效的來源交換報文模板。如圖3所示,為本發明實施例中,P2P流量識別系統的結構示意圖,包括網關云服務器301,至少一個網關設備302,其中網關設備302,用于存儲來源交換報文模板,并針對每一個來源交換報文模板,分別統計利用該來源交換模板構造的來源交換報文被用戶成功響應次數和失敗響應次數,將該來源交換模板對應的成功響應次數和失敗響應次數上報給網關云服務器301 ;當用戶向外網客戶端請求資源時,利用存儲的來源報文模板構造來源交換報文,向該用戶發送構造的來源交換報文;從用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表;當用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取來源客戶端信息,其中,未知數據流量為除已知類型數據流量和明文對等網絡P2P流量以外的數據流量;判斷該來源客戶端信息是否存在于預先建立的P2P客戶端列表中;在判斷結果為是時,確定未知數據流量為P2P流量;在判斷結果為否時,確定未知流量為非P2P流量;網關云服務器301,用于根據各網關設備上報的各來源交換模板對應的成功響應次數確定來源交換報文模板的優先級,以及根據各來源交換模板對應的失敗響應次數確定各來源交換模板的有效性,并將各來源交換報文模板的優先級和有效性同步給所述網關設備。具體的,網關設備302能夠通過解析和跟蹤內網用戶與外網客戶端之間的來源交換報文交換過程,構造或者更新來源交換報文模板并存儲,并統計利用該來源交換報文模板構造的來源交換報文被內網用戶成功響應次數和失敗響應次數,然后定期反饋給網關云服務器301 ;網關云服務器301,用于接收網關設備302的反饋信息,并定期報文模板庫進行整理,根據成功響應次數調整各個來源交換報文模板的優先級,并根據各來源交換報文模板的失敗響應次數確定各來源交換報文模板的有效性,及時發現失效的來源交換報文模板和最新生效的來源交換報文模板,在整理完成后,網關云服務器301可以向網關設備302發布最新的來源交換報文模板。其中,網關設備302可以定期向云服務器301反饋自身的報文模板庫信息,也可以定期向網關云服務器301請求報文模板庫信息,用于本地報文模板庫的更新。由于網關設備302將自身的獲得的各來源交換報文模板的相關信息上報給網關云服務器301,使得網關云服務器301能夠根據相關信息確定各來源報文交換模板的優先級,并及時發現失效的來源交換報文模板,為網關設備301準確建立P2P客戶端列表奠定基礎,進一步保證了 P2P流量識別的準確性和可靠性。具體實施時,對于內網用戶與外網客戶端之間的數據包進行抓包分析,利用深度檢測方法確定該數據包的P2P應用類型,并根據P2P應用類型解析該數據包,進而構造初始的報文模板庫,并設置報文模板庫中的每個來源交換報文模板的缺省優先級,初始化每個來源交換報文模板的成功響應次數和失敗響應次數(初始化時可以均設置為0),并分別存儲于網關設備302和網關云服務器301上;當在步驟205中,利用來源交換報文模板和資源標識構造來源交換報文,并向用戶發送構造的來源交換報文之后,確定在預設時間內能否接收到用戶返回的應答報文,如果能,則將該來源交換報文模板對應的成功響應次數加1, 否則,將該來源交換報文模板對應的成失敗響應次數加1,根據成功響應次數由多至少確定來源交換報文模板的優先級,成功響應次數越多,優先級越高。具體實施中,當用戶與P2P客戶端建立連接,開始下載資源之后,將定期向外網客戶端請求資源,即查找新的可能提供該資源的來源客戶端,而該來源客戶端可能不存在于已經建立的P2P客戶端列表中,從而,需要對已經建立的P2P客戶端列表進行更新。基于此, 如圖4所示,本發明實施例提供的P2P流量識別方法還可以包括對P2P客戶端列表進行更新的步驟S401、分別建立該用戶對應的用戶標識與P2P應用類型之間的關聯關系和該用戶對應的用戶標識與資源標識之間的對應關系;具體的,建立P2P客戶端列表的過程中,在解析用戶與外網客戶端之間包含明文 P2P流量的交互數據包時,能夠獲得相關的用戶信息,包括用戶標識(可以為IP)、TCP監聽端口、UDP監聽端口、P2P應用類型以及用戶請求資源的資源標識等,根據上述信息,便能夠分別建立用戶標識與P2P應用類型之間的關聯關系和該用戶對應的用戶標識與資源標識之間的對應關系。S402、在用戶下載資源過程中,再次向外網客戶端請求資源時,從預先存儲的報文模板庫中,選擇該用戶標識對應的P2P應用類型對應的來源交換報文模板;S403、利用該來源交換報文模板和該用戶標識對應的資源標識構造來源交換報文,并向該用戶發送所述來源交換報文;S404、根據用戶返回的來源交換報文的應答報文中包含的來源客戶端的IP和端口號更新P2P客戶端列表。具體的,對于該用戶來說,由于在之前建立P2P客戶端列表的過程中已經能夠確定該用戶需要下載資源的資源標識和該用戶對應的P2P應用類型,因此,當用戶再次向外網客戶端請求資源時,無需對用戶與外網客戶端之間的交互數據包進行深度數據包檢測確定P2P應用類型并解析該交互數據包,通過保存用戶標識與資源標識及用戶標識與P2P應用類型的對應關系便能夠準確構造來源交換報文,獲取用戶可能發起連接的P2P客戶端列表。為了便于理解本發明,以下以用戶A下載P2P資源為例,對本發明實施例的實施過程進行說明。本發明實施例中,假設用戶A對應的P2P應用類型為電驢,即用戶A通過電驢軟件下載ID為1234567890AB⑶EF的資源文件,用戶A的用戶標識為10. 1. 1. 1。如圖5所示,為用戶A下載P2P資源的實施步驟 S501、獲取用戶A與外網客戶端之間包含明文P2P流量的交互數據包,并確定P2P 應用類型;具體的,當用戶A向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,具體的,對于明文電驢流量來說,其通常包含E3、E4、C5、D4和E5等電驢協議號等電驢應用的特征串,通過協議號便能夠識別明文P2P流量對應的P2P類型。S502、根據確定出的的P2P應用類型解析獲取到的交互數據包,提取該用戶所請求資源的資源標識;具體的,從解析后的數據包中提取用戶A的用戶信息,包括用戶標識(IP)、UDP監聽端口 7550和TCP監聽端口 7551。同時,由于電驢用戶通常定期使用明文UDP報文向電驢服務器查詢所需資源文件的來源客戶端,其查詢報文格式如下E3 9A 12 34 56 78 90 AB⑶EF,其中E3是電驢協議號,12 34 56 7890 AB⑶EF即為用戶A請求的資源的資源標識,從而從解析后的查詢報文中能夠提取到用戶A所請求資源的資源標識。當然,從用戶 A與外網客戶端之間的其它交互報文中,也能夠提取到用戶A所請求資源的資源標識,這里不做限定。S503、從預先存儲的報文模板庫中,選擇電驢應用對應的來源交換報文模板;S504、利用提取到的資源標識和選取的來源交換報文模板構造來源交換報文;S505、模擬電驢客戶端向用戶A發起連接,將構造的來源交換報文發送給用戶A ;具體的,向用戶A的TCP端口 7551發起連接,與用戶A進行正常的電驢Hello報文(E301)和安全認證報文(C581)交互,并將構造的來源交換報文發送給用戶A。S506、用戶A返回自身關于該資源的完整來源客戶端列表;提取該來源客戶端列表中的每個來源客戶端的IP和端口號建立P2P客戶端列表。 假設該來源客戶端列表中包含客戶端B,其IP為20. 1. 1. 1,TCP端口號為4242。S507、用戶A向客戶端B發起加密TCP連接,請求下載資源標識為 1234567890ABCDEF 數據;S508、獲取該TCP連接的首報文數據包,并提取該首報文數據包中的來源客戶端 fn息;其中,該來源客戶端信息即為客戶端B的IP和TCP端口號。S509、判斷該來源客戶端信息是否在建立的P2P客戶端列表中,如果是,執行步驟 S510,如果否,執行步驟S511 ;S510、確定該首報文數據包中包含P2P流量;由于外網P2P客戶端B的IP和TCP端口號存在與建立的P2P客戶端列表中,因此, 能夠確定該首報文數據包中包含P2P流量。S511、確定該首報文數據包中不包含P2P流量。具體實施時,用戶A在下載該資源的過程中,將定期地向外網客戶端繼續請求資源,即查找新的可以提供該資源的來源客戶端,當查找到到新的能夠提供該資源的來源客戶端時,用戶A將與該來源客戶端建立連接,下載資源,但是,該新的來源客戶端不在已建立的P2P客戶端列表中,因此,為了保證P2P流量識別的準確性,還可以包括如下步驟步驟一、分別建立用戶A與電驢應用之間的關聯關系和用戶A與其下載的資源 12;34567890ABCDEF之間的對應關系;步驟二、用戶A向來源客戶端列表中的客戶端下載資源1234567890AB⑶EF的過程中,向外網客戶端請求新的能夠提供資源1234567890AB⑶EF的來源客戶端;步驟三、從報文模板庫中選擇電驢應用對應的來源交換報文模板;步驟四、利用該來源交換報文模板和資源標識1234567890AB⑶EF構造來源交換報文;步驟五、模擬電驢客戶端向用戶A發起連接,并將構造的來源交換報文發送給用戶A;步驟六、用戶A返回自身關于該資源的完整來源客戶端列表;
步驟七、根據用戶A返回的新的來源客戶端列表更新更新已建立的P2P客戶端列表。具體的,提取新的來源客戶端列表中的每個來源客戶端的IP和端口號,添加至已建立的P2P客戶端列表中。假設更新后的P2P客戶端列表包含客戶端C,當用戶A向客戶端C發起TCP連接,請求從客戶端C下載資源1234567890AB⑶EF時,獲取該TCP連接的首報文數據包,并提取其中的來源客戶端信息,由于客戶端C存在于更新后的P2P客戶端列表中,因此,便能夠準確地識別出首報文數據包中包含P2P流量。在首報文數據包中的P2P流量被正確識別出之后,網關設備能夠對P2P進行有效的流量控制,并且能夠根據P2P應用類型選擇不同的出口鏈路,達到利用多條線路、保障關鍵應用正常運行的目的。本發明實施例提供的方法可以應用于出口網關或者路由器等網絡轉發設備上,用于利用首報文識別所有支持來源交換特性的P2P應用協議?;谕话l明構思,本發明實施例中還提供一種P2P流量識別裝置,由于該裝置解決問題的原理與上述P2P流量識別方法相似,因此該裝置的實施可以參見上述P2P流量識別方法的實施,重復之處不再贅述。如圖6所示,為本發明實施例提供的P2P流量識別裝置的結構示意圖,包括密文處理單元601,用于在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取該首報文數據包中的來源客戶端信息,其中,未知數據流量為除已知類型數據流量和明文P2P流量以外的數據流量;判斷單元602,用于判斷來源客戶端信息是否存在于預先建立的對等網絡P2P客戶端列表中;確定單元603,用于在判斷單元602的判斷結果為是時,確定未知數據流量為P2P 流量;在判斷單元602的判斷結果為否時,確定未知流量為非P2P流量。具體實施中,密文處理單元601,可以包括第一確定子單元,用于確定首報文數據包的傳輸方向;第一提取子單元,用于當首報文數據包的傳輸方向為上行方向時,分別提取首報文數據包中的目的IP和目的端口號作為來源客戶端信息;第二提取子單元,用于當首報文數據包的傳輸方向為下行方向時,分別提取首報文數據包中的源IP和源端口號作為來源客戶端信息。具體實施時,P2P流量識別裝置,還可以包括明文處理單元,用于建立所述P2P客戶端列表。較佳地,明文處理單元,可以包括第二確定子單元,用于當用戶向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,并確定該明文P2P流量對應的P2P應用類型;解析子單元,用于根據第二確定子單元確定出的P2P應用類型,解析該交互數據包,提取用戶所請求資源的資源標識;選擇子單元,用于從預先存儲的報文模板庫中,選擇該P2P應用類型對應的來源交換報文模板;構造子單元,用于利用該來源交換報文模板和該資源標識構造來源交換報文,并向該用戶發送來源交換報文;P2P客戶端列表建立子單元,用于從用戶返回的來源交換報文的應答報文中,提取每個P2P來源客戶端的IP和端口號建立P2P客戶端列表。其中,選擇子單元,可以包括統計模塊,用于針對該P2P應用類型對應的每一個來源交換報文模板,統計利用該來源交換報模板和資源標識構造的來源交換報文被用戶成功響應次數;選擇模塊,用于選擇成功響應次數最多的來源交換報文模板作為P2P應用類型對應的來源交換報文模板。具體實施中,P2P流量識別裝置,還可以包括關系建立單元,用于分別建立該用戶對應的用戶標識與該P2P應用類型之間的對應關系和該用戶對應的用戶標識與該資源標識之間的對應關系;選擇單元,用于在用戶下載資源過程中,再次向外網客戶端請求資源時,從預先存儲的報文模板庫中,選擇該用戶標識對應的P2P應用類型對應的來源交換報文模板;構造單元,用于利用該來源交換報文模板和該用戶標識對應的資源標識構造來源交換報文,并向該用戶發送所述來源交換報文;更新單元,用于根據用戶返回的來源交換報文的應答報文中包含的P2P來源客戶端的IP和端口號更新P2P客戶端列表。為了描述的方便,以上P2P流量識別裝置的各部分按照功能劃分為各模塊(或單元)分別描述。當然,在實施本發明時可以把各模塊(或單元)的功能在同一個或多個軟件或硬件中實現。在本發明實施例中,P2P流量識別裝置裝置一般設置在網關設備中,由網關設備實現P2P流量識別。需要說明的是,將上述P2P流量識別裝置設置在網關設備中只是一種較佳實施方式,具體實施中,可以根據實際的需要將上述P2P流量識別裝置設置在其它設備或者新增設備中。本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
1
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。本發明實施例提供的P2P流量識別方法、裝置、網關設備和系統,在用戶與來源客戶端建立連接之前,預先建立P2P客戶端列表,當用戶與來源客戶端建立連接時,提取包含未知流量的首報文數據包中的來源客戶端信息,并判斷該來源客戶端信息是否在預先建立的P2P客戶端列表中,如果在,則將該首報文數據包包含的未知流量確定為P2P流量,否則, 將該首報文數據包包含的未知流量確定為非P2P流量,這樣,實現了在用戶與來源客戶端建立連接時,對P2P流量進行準確識別。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
1權利要求
1.一種P2P流量識別方法,其特征在于,包括在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取所述首報文數據包中的來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文對等網絡P2P流量以外的數據流量;判斷所述來源客戶端信息是否存在于預先建立的P2P客戶端列表中; 在判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷結果為否時,確定所述未知流量為非P2P流量。
2.如權利要求1所述的方法,其特征在于,提取所述首報文數據包中的來源客戶端信息,具體包括確定所述首報文數據包的傳輸方向;當所述首報文數據包的傳輸方向為上行方向時,分別提取所述首報文數據包中的目的 IP和目的端口號作為來源客戶端信息;當所述首報文數據包的傳輸方向為下行方向時,分別提取所述首報文數據包中的源IP 和源端口號作為來源客戶端信息。
3.如權利要求1所述的方法,其特征在于,按照如下過程建立P2P客戶端列表當所述用戶向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,并確定所述明文P2P流量對應的P2P應用類型;根據確定出的P2P類型解析所述交互數據包,提取所述用戶所請求資源的資源標識; 從預先存儲的報文模板庫中,選擇所述P2P應用類型對應的來源交換報文模板; 利用所述來源交換報文模板和所述資源標識構造來源交換報文,并向所述用戶發送所述來源交換報文;從所述用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表。
4.如權利要求3所述的方法,其特征在于,選擇所述P2P應用類型對應的來源交換報文模板,具體包括針對該P2P應用類型對應的每一個來源交換報文模板,統計利用該來源交換報模板和資源標識構造的來源交換報文被用戶成功響應次數;選擇成功響應次數最多的來源交換報文模板作為所述P2P應用類型對應的來源交換報文模板。
5.如權利要求3或4所述的方法,其特征在于,還包括分別建立所述用戶對應的用戶標識與所述P2P應用類型之間的關聯關系和所述用戶對應的用戶標識與所述資源標識之間的對應關系;在所述用戶下載資源過程中,再次向外網客戶端請求資源時,從預先存儲的報文模板庫中,選擇用戶標識對應的P2P應用類型對應的來源交換報文模板;利用所述來源交換報文模板和用戶標識對應的資源標識構造來源交換報文,并向所述用戶發送所述來源交換報文;根據所述用戶返回的來源交換報文的應答報文中包含的P2P來源客戶端的IP和端口號更新所述P2P客戶端列表。
6.一種P2P流量識別裝置,其特征在于,包括密文處理單元,用于在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取所述首報文數據包中的來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文對等網絡P2P流量以外的數據流量;判斷單元,用于判斷所述來源客戶端信息是否存在于預先建立的P2P客戶端列表中; 確定單元,用于在所述判斷單元的判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷單元的判斷結果為否時,確定所述未知流量為非P2P流量。
7.如權利要求6所述的裝置,其特征在于,所述密文處理單元,包括 第一確定子單元,用于確定所述首報文數據包的傳輸方向;第一提取子單元,用于當所述首報文數據包的傳輸方向為上行方向時,分別提取所述首報文數據包中的目的IP和目的端口號作為來源客戶端信息;第二提取子單元,用于當所述首報文數據包的傳輸方向為下行方向時,分別提取所述首報文數據包中的源IP和源端口號作為來源客戶端信息。
8.如權利要求6所述的裝置,其特征在于,還包括 明文處理單元,用于建立所述P2P客戶端列表。
9.如權利要求8所述的裝置,其特征在于,所述明文處理單元,包括第二確定子單元,用于當所述用戶向外網客戶端請求資源時,獲取包含明文P2P流量的交互數據包,并確定所述明文P2P流量對應的P2P應用類型;解析子單元,用于根據第二確定子單元確定出的P2P應用類型,解析所述交互數據包, 提取所述用戶所請求資源的資源標識;選擇子單元,用于從預先存儲的報文模板庫中,選擇所述P2P應用類型對應的來源交換報文模板;構造子單元,用于利用所述來源交換報文模板和所述資源標識構造來源交換報文,并向所述用戶發送所述來源交換報文;P2P客戶端列表建立子單元,用于從所述用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表。
10.如權利要求9所述的裝置,其特征在于,選擇子單元,包括統計模塊,用于針對該P2P應用類型對應的每一個來源交換報文模板,統計利用該來源交換報模板和資源標識構造的來源交換報文被用戶成功響應次數;選擇模塊,用于選擇成功響應次數最多的來源交換報文模板作為所述P2P應用類型對應的來源交換報文模板。
11.如權利要求9或10所述的裝置,其特征在于,還包括關系建立單元,用于分別建立所述用戶對應的用戶標識與所述P2P應用類型之間的對應關系和所述用戶對應的用戶標識與所述資源標識之間的對應關系;選擇單元,用于在所述用戶下載資源過程中,再次向外網客戶端請求資源時,從預先存儲的報文模板庫中,選擇用戶標識對應的P2P應用類型對應的來源交換報文模板;構造單元,用于利用所述來源交換報文模板和用戶標識對應的資源標識構造來源交換報文,并向所述用戶發送所述來源交換報文;更新單元,用于根據所述用戶返回的來源交換報文的應答報文中包含的P2P來源客戶端的IP和端口號更新所述P2P客戶端列表。
12.一種網關設備,其特征在于,包括權利要求6 11任一權利要求所述的裝置。
13.—種P2P流量識別系統,其特征在于,包括網關云服務器和至少一個網關設備,其中所述網關設備,用于存儲來源交換報文模板,并針對每一個來源交換報文模板,分別統計利用該來源交換報文模板構造的來源交換報文被用戶成功響應次數和失敗響應次數,將該來源交換模板對應的成功響應次數和失敗響應次數上報給所述網關云服務器;當用戶向外網客戶端請求資源時,利用存儲的來源交換報文模板構造來源交換報文,向所述用戶發送所述來源交換報文;從所述用戶返回的來源交換報文的應答報文中,提取每個來源客戶端的IP和端口號建立P2P客戶端列表;當用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文對等網絡P2P流量以外的數據流量;判斷所述來源客戶端信息是否存在于預先建立的P2P客戶端列表中;在判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷結果為否時,確定所述未知流量為非P2P流量;所述網關云服務器,用于根據各網關設備上報的各來源交換報文模板對應的成功響應次數確定來源交換報文模板的優先級,以及根據各來源交換模板對應的失敗響應次數確定各來源交換模板的有效性,并將各來源交換報文模板的優先級和有效性同步給所述網關設備。
14.如權利要求13所述的系統,其特征在于,所述網關設備,具體用于獲取用戶與來源客戶端之間的來源交換報文,根據所述來源交換報文構造或者更新來源交換報文模板并存儲。
全文摘要
本發明公開了一種P2P流量識別方法、裝置、網關設備和系統,用以在連接建立時對P2P流量進行準確識別。其中,所述P2P流量識別方法,包括在用戶與來源客戶端建立連接時,獲得包含未知數據流量的首報文數據包,并提取所述首報文數據包中的來源客戶端信息,所述未知數據流量為除已知類型數據流量和明文P2P流量以外的數據流量;判斷所述來源客戶端信息是否存在于預先建立的P2P客戶端列表中;在判斷結果為是時,確定所述未知數據流量為P2P流量;在判斷結果為否時,確定所述未知流量為非P2P流量。
文檔編號H04L12/26GK102404396SQ20111036016
公開日2012年4月4日 申請日期2011年11月14日 優先權日2011年11月14日
發明者潘云登, 陳朝暉 申請人:北京星網銳捷網絡技術有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 新河县| 新营市| 荃湾区| 巴塘县| 确山县| 长子县| 揭西县| 和林格尔县| 曲阜市| 淄博市| 策勒县| 建湖县| 南丹县| 邢台县| 武义县| 固原市| 丹阳市| 于都县| 荔波县| 新闻| 上虞市| 河池市| 南部县| 长阳| 龙江县| 鄱阳县| 泸溪县| 荥经县| 咸阳市| 克拉玛依市| 新建县| 饶河县| 枣强县| 准格尔旗| 丰顺县| 县级市| 平乐县| 凤冈县| 贡嘎县| 思茅市| 独山县|