本發(fā)明實施例涉及通信技術領域,尤其涉及一種網(wǎng)絡會話中udp報文的檢測方法及裝置。
背景技術:
傳輸控制協(xié)議(transmissioncontrolprotocol,tcp)/網(wǎng)絡互連協(xié)議(internetprotocol,ip)是互聯(lián)網(wǎng)的基礎,其中網(wǎng)絡中的常用的傳輸層協(xié)議包括tcp和udp。與tcp相比,udp更為輕量,使得在數(shù)據(jù)傳輸時采用udp的傳輸效率往往更高,但由于udp的錯誤校驗位較少,使得在采用udp傳輸數(shù)據(jù)時的可靠性比tcp低。根據(jù)tcp和udp各自的特點,通常在游戲、流媒體以及網(wǎng)絡電話(voiceoverinternetprotocol,voip)等應用均采用udp,而網(wǎng)頁、郵件、遠程登錄等大部分的應用均采用tcp。
近年來,對等網(wǎng)絡(peer-to-peer,p2p)的用戶規(guī)模、應用類型和流量均呈爆發(fā)式增長。因為p2p使用多線程多主機或服務器間的連接,可以把網(wǎng)絡帶寬利用到極限。基于各種p2p協(xié)議的網(wǎng)絡流量飛速增長并占據(jù)了大部分的網(wǎng)絡帶寬。因此,在很多情況下,對p2p流量的檢測是十分必要的。然而,由于很多p2p應用通常使用udp實現(xiàn)穿透網(wǎng)絡地址轉換(networkaddresstranslation,nat),實現(xiàn)跨網(wǎng)絡的主機連接,這樣會很難管理p2p中具有大量可變端口連接的網(wǎng)絡會話,進而很難攔截發(fā)向用戶無益的udp報文。
技術實現(xiàn)要素:
為克服相關技術中存在的相關問題,本發(fā)明實施例提供一種網(wǎng)絡會話中udp報文的檢測方法及裝置。
根據(jù)本發(fā)明實施例的第一方面,提供一種網(wǎng)絡會話中udp報文的檢測方法,包括:
監(jiān)測網(wǎng)絡會話中是否傳輸有udp報文;
如果網(wǎng)絡會話中傳輸有udp報文,將所述udp報文做哈希處理,得到udp報文哈希值;
獲取預設udp報文檢測隊列,所述預設udp報文檢測隊列包括多個預設哈希值,所述多個預設哈希值按照優(yōu)先級依次排列;
判斷所述多個預設哈希值中是否存在與所述udp報文哈希值相等的目標哈希值;
如果所述多個預設哈希值中存在與所述udp報文哈希值相等的目標哈希值,丟棄所述udp報文。
在本發(fā)明實施例提供的一種可能的設計方式中,所述方法還包括:
提高所述目標哈希值在所述udp報文檢測隊列中的優(yōu)先級。
在本發(fā)明實施例提供的一種可能的設計方式中,還包括:
如果所述預設哈希值中不存在與所述哈希值相等的目標哈希值,允許所述udp報文傳輸。
在本發(fā)明實施例提供的一種可能的設計方式中,所述方法還包括:
如果所述多個預設哈希值中不存在與所述udp報文哈希值相等的目標哈希值,將所述udp報文進行特征提取,得到udp報文特征;
判斷所述udp報文特征是否與預設模板庫中的特征相匹配;
如果所述udp報文特征與預設模板庫中的特征相匹配,將所述udp報文的哈希值加入到所述預設udp報文檢測隊列中,并將所述udp報文丟棄。
在本發(fā)明實施例提供的一種可能的設計方式中,所述方法還包括:
如果所述udp報文特征與預設模板庫中的特征不匹配,允許所述udp報文傳輸。
根據(jù)本發(fā)明實施例的第二方面,提供一種網(wǎng)絡會話中udp報文的檢測裝置,包括:
報文監(jiān)測單元,用于監(jiān)測網(wǎng)絡會話中是否傳輸有udp報文;
哈希處理單元,用于在網(wǎng)絡會話中傳輸有udp報文時,將所述udp報文做哈希處理,得到udp報文哈希值;
獲取單元,用于獲取預設udp報文檢測隊列,所述預設udp報文檢測隊列包括多個預設哈希值,所述多個預設哈希值按照優(yōu)先級依次排列;
哈希值判斷單元,用于判斷所述多個預設哈希值中是否存在與所述udp報文哈希值相等的目標哈希值;
第一報文單元,用于在所述多個預設哈希值中存在與所述udp報文哈希值相等的目標哈希值時,丟棄所述udp報文。
在本發(fā)明實施例提供的一種可能的設計方式中,所述裝置還包括:
優(yōu)先級處理單元,用于提高所述目標哈希值在所述udp報文檢測隊列中的優(yōu)先級。
在本發(fā)明實施例提供的一種可能的設計方式中,所述裝置還包括:
第二報文處理單元,用于在果所述預設哈希值中不存在與所述哈希值相等的目標哈希值時,允許所述udp報文傳輸。
在本發(fā)明實施例提供的一種可能的設計方式中,所述裝置還包括:
特征提取單元,用于在所述多個預設哈希值中不存在與所述udp報文哈希值相等的目標哈希值時,將所述udp報文進行特征提取,得到udp報文特征;
匹配判斷單元,用判斷所述udp報文特征是否與預設模板庫中的特征相匹配;
哈希值處理單元,用于在所述udp報文特征與預設模板庫中的特征相匹配時,將所述udp報文的哈希值加入到所述預設udp報文檢測隊列中,并將所述udp報文丟棄。
在本發(fā)明實施例提供的一種可能的設計方式中,所述裝置還包括:
第三報文處理單元,用于在所述udp報文特征與預設模板庫中的特征不匹配時,允許所述udp報文傳輸。
本發(fā)明的實施例提供的技術方案可以包括以下有益效果:
本發(fā)明實施例提供的網(wǎng)絡會話中udp報文的檢測方法,通過監(jiān)測網(wǎng)絡會話中傳輸?shù)膗dp報文,將該udp報文的哈希值與預設udp報文檢測隊列中的哈希值進行比對,來判斷網(wǎng)絡會話中是否傳輸有用戶不需要的udp報文,并將用戶不需要的dup報文從網(wǎng)絡會話中丟棄。這樣可以避免現(xiàn)有技術當中直接通過特征檢測的方式,造成檢測效率較低且還可能占用用戶較多資源的問題。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明實施例。
附圖說明
此處的附圖被并入說明書中并構成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明實施例的原理。
圖1是根據(jù)本發(fā)明一示例性實施例示出的一種網(wǎng)絡會話中udp報文的檢測方法的流程圖;
圖2是根據(jù)本發(fā)明另一示例性實施例示出的一種網(wǎng)絡會話中udp報文的檢測方法的流程圖;
圖3是根據(jù)本發(fā)明一示例性實施例示出的一種udp報文的檢測裝置的結構示意圖;
圖4是根據(jù)本發(fā)明另一示例性實施例示出的一種udp報文的檢測裝置的結構示意圖;
圖5是根據(jù)本發(fā)明一示例性實施例示出的一種終端的結構示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明實施例相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明實施例的一些方面相一致的裝置和方法的例子。
由于目前網(wǎng)絡會話中越來越多的p2p軟件使用udp穿透nat,以實現(xiàn)跨網(wǎng)絡的主機連接。并且udp是無連接協(xié)議,由于使用大量的可變端口連接,使得網(wǎng)絡會話中很難管理傳輸?shù)膗dp報文,進而也無法有效的攔截對用戶無益的udp報文。而現(xiàn)有技術當中,通常依賴于特征檢測,即將所需檢測的udp報文通過特征提取、特征匹配的方式判斷網(wǎng)絡會話中的udp報文是否為需要傳輸?shù)膗dp報文,將無需傳輸?shù)膗dp報文丟棄來實現(xiàn)網(wǎng)絡會話中的udp報文的管理。
然而,現(xiàn)有技術當中在直接利用特征檢測udp報文的方式,來實現(xiàn)網(wǎng)絡會話中udp報文的管理時,基于udp報文采用的無連接協(xié)議及特征提取及匹配過程的復雜性,使得udp報文的特征檢測會花費很多時間,進而造成網(wǎng)絡會話會立即老化,并且在網(wǎng)絡會話中udp報文的特征檢測過程中,大量的udp報文會蠶蛹設備大量的資源,使得網(wǎng)絡會話中udp報文的管理效果不佳。
基于現(xiàn)有技術中存在的上述問題,本發(fā)明實施例首先提供了一種網(wǎng)絡會話中udp報文的檢測方法,如圖1所示,該方法可以包括如下步驟:
在步驟s110中,監(jiān)測網(wǎng)絡會話中是否傳輸有udp報文。
在本發(fā)明提供的實施例中,首先獲取需要攔截的udp報文,其中,這些需要攔截的udp報文是用戶不需要的垃圾udp報文或者對用戶有害的udp報文,即獲取用戶不需要的udp報文。
本發(fā)明實施例預先將用戶不需要的這些udp報文的udp報文的五元組做32位哈希處理,得到哈希值。其中,相同的udp報文對應一個哈希值,不同的udp報文分別對應不同的哈希值。另外,本發(fā)明實施例中將這些用戶不需要的udp報文對應的哈希值包含在預設udp報文檢測隊列當中,該預設udp報文檢測隊列可以應用到用戶終端的通信接口中,用戶攔截網(wǎng)絡會話中發(fā)送給用戶的udp報文。
本發(fā)明實施例在對網(wǎng)絡會話中的udp報文檢測過程中,首先需要判斷網(wǎng)絡會話中是否傳輸有udp報文,如果網(wǎng)絡會話中存在udp報文,需要對網(wǎng)絡會話中的這些udp報文進行檢測。
因此,如果網(wǎng)絡會話中傳輸有udp報文,在步驟s120中,將udp報文做哈希處理,得到udp報文哈希值。
本發(fā)明實施例中可以通過已有技術對網(wǎng)絡會話中的udp報文做哈希處理,例如對upd報文做32位哈希處理。其中,相同的udp報文經(jīng)過哈希處理后,會得到一個哈希值,不同的udp報文分別對應不同的哈希值。
在步驟s130中,獲取預設udp報文檢測隊列。
其中,該預設udp報文檢測隊列包括多個預設哈希值。另外,該多個預設哈希值按照優(yōu)先級依次排列。本發(fā)明實施例中將按照預設哈希值優(yōu)先級的高低,依次與網(wǎng)絡會話中的udp報文哈希值進行比對。
本發(fā)明實施例中,將網(wǎng)絡會話中的udp報文對應的哈希值(即udp報文哈希值)分別與預設udp報文檢測隊列中的預設哈希值進行比對,以便判斷預設udp報文檢測隊列中是否存在與udp報文哈希值相等的哈希值,并將該哈希值作為目標哈希值。
在步驟s140中,判斷預設udp報文檢測隊列中是否存在與udp報文哈希值相等的目標哈希值。
如果預設udp報文檢測隊列中存在與udp報文哈希值相等的目標哈希值,在步驟s150中,丟棄udp報文。
如果預設udp報文檢測隊列中存在與udp報文哈希值相等的目標哈希值,說明網(wǎng)絡會話中對應的udp報文即為用戶不需要的udp報文,需要將該udp報文攔截,并將該udp報文丟棄,進而避免因大量且對用戶無益的udp報文發(fā)送給用戶。
可選地,在本發(fā)明提供的又一實施例中,如圖1所示,該方法還可以包括步驟s160,其中,
在步驟s160中,提高目標哈希值在預設udp報文檢測隊列中的優(yōu)先級。
由于目標哈希值與當前網(wǎng)絡會話中傳輸?shù)膗dp對應的哈希值相等,為了提高檢測交效率,本發(fā)明實施例中將該目標哈希值的優(yōu)先級調(diào)高。其中,如果該目標哈希值在udp報文檢測隊列中的優(yōu)先級已是最高,那么保存該目標哈希值在該udp報文檢測隊列中的優(yōu)先級保持不變,否則,可以將該目標哈希值在udp報文檢測隊列中的優(yōu)先級調(diào)整為最高狀態(tài),以便在后續(xù)網(wǎng)絡會話中udp報文檢測過程中優(yōu)先將該目標哈希值與udp報文哈希值進行比對。
如圖1所示,在本發(fā)明提供的又一實施例中,如果預設udp報文檢測隊列中不存在與哈希值相等的目標哈希值,在步驟s170中,允許udp報文傳輸。
本發(fā)明實施例提供的網(wǎng)絡會話中udp報文的檢測方法,通過監(jiān)測網(wǎng)絡會話中傳輸?shù)膗dp報文,將該udp報文的哈希值與預設udp報文檢測隊列中的哈希值進行比對,來判斷網(wǎng)絡會話中是否傳輸有用戶不需要的udp報文,并將用戶不需要的dup報文從網(wǎng)絡會話中丟棄。這樣可以避免現(xiàn)有技術當中直接通過特征檢測的方式,造成檢測效率較低且還可能占用用戶較多資源的問題。另外,本發(fā)明實施例在檢測到預設udp檢測隊列中有與udp報文哈希值相等的目標哈希值時,可以將該目標哈希值在預設udp檢測隊列中的優(yōu)先級調(diào)高,以提高檢測效率。
基于1所示,在本發(fā)明提供的又一實施例中,如圖2所示,如果預設udp報文檢測隊列中不存在與udp報文哈希值相等的目標哈希值,在步驟s180中,將udp報文進行特征提取,得到udp報文特征。
在步驟s190中,判斷udp報文特征是否與預設模板庫中的特征相匹配。
如果udp報文特征與預設模板庫中的特征相匹配,在步驟s191中,將udp報文的哈希值加入到預設udp報文檢測隊列中,并將該udp報文丟棄。
如果udp報文特征與預設模板庫中的特征不匹配,在步驟s192中,允許該udp報文傳輸。
本發(fā)明實施例提供的網(wǎng)絡會話中udp報文的檢測方法,通過監(jiān)測網(wǎng)絡會話中傳輸?shù)膗dp報文,將該udp報文的哈希值與預設udp報文檢測隊列中的哈希值進行比對,來判斷網(wǎng)絡會話中是否傳輸有用戶不需要的udp報文,并將用戶不需要的dup報文從網(wǎng)絡會話中丟棄。這樣可以避免現(xiàn)有技術當中直接通過特征檢測的方式,造成檢測效率較低且還可能占用用戶較多資源的問題。
另外,本發(fā)明實施例在沒有檢測到預設udp檢測隊列中有與udp報文哈希值相等的目標哈希值時,為了防止預設udp檢測隊列中沒有包含到對用戶無益的udp報文的哈希值時,還可以通過特征檢測的方式來判斷當前的udp報文是否為用戶無益的udp報文,如果是,將該udp報文丟棄,并將該udp報文對應的哈希值添加到預設udp報文檢測隊列當中,更新udp報文檢測隊列,以便后續(xù)對網(wǎng)絡會話中的udp報文檢測。本發(fā)明實施例中通過將兩種udp報文的檢測方式合理結合,可以更加有效的提高網(wǎng)絡會話中udp報文的檢測效率。
通過以上的方法實施例的描述,所屬領域的技術人員可以清楚地了解到本發(fā)明實施例可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明實施例的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:只讀存儲器(rom)、隨機存取存儲器(ram)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
另外,作為對上述各實施例的實現(xiàn),本發(fā)明實施例還提供了一種網(wǎng)絡會話中udp報文的檢測裝置,該裝置位于終端中,如圖3所示,該裝置包括:
報文監(jiān)測單元10,用于監(jiān)測網(wǎng)絡會話中是否傳輸有udp報文;
哈希處理單元20,用于在網(wǎng)絡會話中傳輸有udp報文時,將所述udp報文做哈希處理,得到udp報文哈希值;
獲取單元30,用于獲取預設udp報文檢測隊列,所述預設udp報文檢測隊列包括多個預設哈希值,所述多個預設哈希值按照優(yōu)先級依次排列;
哈希值判斷單元40,用于判斷所述多個預設哈希值中是否存在與所述udp報文哈希值相等的目標哈希值;
第一報文處理單元50,用于在所述多個預設哈希值中存在與所述udp報文哈希值相等的目標哈希值時,丟棄所述udp報文。
在本發(fā)明又一實施例中,所述裝置還包括:
優(yōu)先級處理單元60,用于提高所述目標哈希值在所述udp報文檢測隊列中的優(yōu)先級。
在本發(fā)明又一實施例中,所述裝置還包括:
第二報文處理單元70,用于在所述預設哈希值中不存在與所述哈希值相等的目標哈希值時,允許所述udp報文傳輸。
在本發(fā)明又一實施例中,基于圖3,如圖4所示,所述裝置還包括:
特征提取單元91,用于在所述多個預設哈希值中不存在與所述udp報文哈希值相等的目標哈希值時,將所述udp報文進行特征提取,得到udp報文特征;
匹配判斷單元92,用判斷所述udp報文特征是否與預設模板庫中的特征相匹配;
哈希值處理單元93,用于在所述udp報文特征與預設模板庫中的特征相匹配時,將所述udp報文的哈希值加入到所述預設udp報文檢測隊列中,并將所述udp報文丟棄。
第三報文處理單元94,還用于在所述udp報文特征與預設模板庫中的特征不匹配時,允許所述udp報文傳輸。
關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
本發(fā)明實施例還提供一種終端,如圖5所示,該終端210包括:至少一個處理器211、至少一個總線212、至少一個通信接口213和至少一個存儲器214,其中,
存儲器214用于存儲計算機執(zhí)行指令;存儲器214可以包括只讀存儲器和隨機存取存儲器,并向處理器211提供指令和數(shù)據(jù)。存儲器214的一部分還可以包括非易失性隨機存取存儲器(nvram,non-volatilerandomaccessmemory);
處理器211與通信接口213、存儲器214通過總線212相連接;
在本發(fā)明一個實施例中,當計算機運行時,處理器211執(zhí)行存儲器214中存儲的計算機執(zhí)行指令,處理器211可以執(zhí)行圖1或圖2所示實施例中的網(wǎng)絡會話中udp報文的檢測方法。
可以理解的是,本發(fā)明實施例可用于眾多通用或?qū)S玫挠嬎阆到y(tǒng)環(huán)境或配置中。例如:個人計算機、服務器計算機、手持設備或便攜式設備、平板型設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂盒、可編程的消費電子設備、網(wǎng)絡pc、小型計算機、大型計算機、包括以上任何系統(tǒng)或設備的分布式計算環(huán)境等等。
本發(fā)明實施例可以在由計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結構等等。也可以在分布式計算環(huán)境中實踐本發(fā)明實施例,在這些分布式計算環(huán)境中,由通過通信網(wǎng)絡而被連接的遠程處理設備來執(zhí)行任務。在分布式計算環(huán)境中,程序模塊可以位于包括存儲設備在內(nèi)的本地和遠程計算機存儲介質(zhì)中。
需要說明的是,在本文中,諸如“第一”和“第二”等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本領域技術人員在考慮說明書及實踐這里公開的發(fā)明實施例后,將容易想到本發(fā)明實施例的其它實施方案。本申請旨在涵蓋本發(fā)明實施例的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明實施例的一般性原理并包括本發(fā)明實施例未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本發(fā)明實施例的真正范圍和精神由下面的權利要求指出。
應當理解的是,本發(fā)明實施例并不局限于上面已經(jīng)描述并在附圖中示出的精確結構,并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明實施例的范圍僅由所附的權利要求來限制。