本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,尤其涉及一種文件資源的屏蔽方法和裝置。
背景技術(shù):
目前隨著網(wǎng)絡(luò)通信技術(shù)的不斷進(jìn)步和移動設(shè)備的普及,網(wǎng)絡(luò)中文件資源存在著難以管控的現(xiàn)象,例如,用戶可以在網(wǎng)絡(luò)中發(fā)布一些需要被屏蔽的言論的文件資源,因此,在網(wǎng)絡(luò)中屏蔽特定文件至關(guān)重要。相關(guān)技術(shù)中,特定文件的屏蔽是通過控制國家安全部門開放的管控接口來實現(xiàn)的。
這種方式下,對特定文件的屏蔽是通過管控接口來實現(xiàn),不便于網(wǎng)絡(luò)中資源文件的管理。
技術(shù)實現(xiàn)要素:
本發(fā)明旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
為此,本發(fā)明的一個目的在于提出一種文件資源的屏蔽方法,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
本發(fā)明的另一個目的在于提出一種文件資源的屏蔽裝置。
為達(dá)到上述目的,本發(fā)明第一方面實施例提出的文件資源的屏蔽方法,包括:判斷在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)是否監(jiān)聽到客戶端訪問文件資源的請求消息;如果監(jiān)聽到所述訪問文件資源的請求消息,則根據(jù)所述訪問文件資源的請求消息生成偽應(yīng)答消息;將所述偽應(yīng)答消息發(fā)送至所述客戶端,以對所述文件資源進(jìn)行屏蔽。
本發(fā)明第一方面實施例提出的文件資源的屏蔽方法,通過偽造節(jié)點監(jiān)聽客戶端發(fā)送的文件資源請求消息,在監(jiān)聽到訪問文件資源請求消息時生成相應(yīng)的偽應(yīng)答消息,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
為達(dá)到上述目的,本發(fā)明第二方面實施例提出的文件資源的屏蔽裝置,包括:判斷模塊,用于判斷在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)是否監(jiān)聽到客戶端訪問文件資源的請求消息;第一處理模塊,用于在監(jiān)聽到所述訪問文件資源的請求消息時,根據(jù)所述訪問文件資源的請求消息生成偽應(yīng)答消息;發(fā)送模塊,用于將所述偽應(yīng)答消息發(fā)送至所述客戶端,以對所述文件資源進(jìn)行屏蔽。
本發(fā)明第二方面實施例提出的文件資源的屏蔽裝置,通過偽造節(jié)點監(jiān)聽客戶端發(fā)送的文件資源請求消息,在監(jiān)聽到訪問文件資源請求消息時生成相應(yīng)的偽應(yīng)答消息,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
附圖說明
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1是本發(fā)明一實施例提出的文件資源的屏蔽方法的流程示意圖;
圖2是本發(fā)明實施例中eMule客戶端初次握手示意圖;
圖3是本發(fā)明實施例中文件資源請求流程示意圖;
圖4是本發(fā)明實施例中未找到文件資源消息處理流程示意圖;
圖5是本發(fā)明另一實施例提出的文件資源的屏蔽方法的流程示意圖;
圖6是本發(fā)明一實施例提出的文件資源的屏蔽裝置的結(jié)構(gòu)框圖;
圖7是本發(fā)明另一實施例提出的文件資源的屏蔽裝置的結(jié)構(gòu)框圖。
具體實施方式
下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
圖1是本發(fā)明一實施例提出的文件資源的屏蔽方法的流程示意圖,本實施例以該文件屏蔽方法被配置為文件屏蔽裝置中來舉例說明。該文件屏蔽方法可以例如應(yīng)用在P2P(例如,eMule)網(wǎng)絡(luò)中。
如圖1所示,該文件屏蔽的方法包括:
S11:判斷在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)是否監(jiān)聽到客戶端訪問文件資源的請求消息。
在本發(fā)明的實施例中,可以基于Kademlia協(xié)議建立預(yù)設(shè)網(wǎng)絡(luò)節(jié)點與客戶端的通信連接,以在預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)對所述客戶端的請求消息進(jìn)行監(jiān)聽。
具體地,為了能夠清楚的描述Kademlia協(xié)議中的模塊進(jìn)行通信連接的過程,結(jié)合圖2、圖3,以及圖4所示,以該文件屏蔽方法應(yīng)用在P2P(例如,eMule)網(wǎng)絡(luò)中為例,說明如下:
圖2為本發(fā)明實施例中eMule客戶端初次握手示意圖,圖3為本發(fā)明實施例中文件請求流程示意圖,圖4為本發(fā)明實施例中未找到文件消息處理流程示意圖,參加圖2、圖3,以及圖4,具體如下:當(dāng)客戶端A和客戶端B進(jìn)行信息交互時,首先發(fā)送初次握手的消息,即兩個客戶端交換彼此的標(biāo)識、版本以及接受能力信息,還包括:額外信息,如:UDP消息交換,安全識別和資源交換能力。當(dāng)客戶端A向客戶端B發(fā)送文件資源請求消息時,請求消息中包括請求文件的ID,即文件哈希值,客戶端B用文件請求回答客戶端A發(fā)送的文件請求,用文件狀態(tài)來回應(yīng)客戶端A發(fā)送的請求文件ID消息,例如,當(dāng)客戶端B的共享文件列表中沒有客戶端A發(fā)送的請求文件時,客戶端B忽略客戶端A發(fā)送的文件請求,并且在接收到客戶端A發(fā)送的請求文件ID之后向客戶端A發(fā)送“沒有文件”的消息。
可選地,一些實施例中,參加圖5,預(yù)設(shè)網(wǎng)絡(luò)節(jié)點可通過下列步驟獲?。?/p>
S51:對需要屏蔽的文件資源的ID進(jìn)行哈希計算,以獲取需要屏蔽的文件資源的第一哈希值。
本發(fā)明實施例以該文件屏蔽方法應(yīng)用在P2P(例如,eMule)網(wǎng)絡(luò)中為例。
在本發(fā)明的實施例中,哈希計算為將任意長度的二進(jìn)制值映射為較短的固定長度的二進(jìn)制值,得到的二進(jìn)制值則稱為哈希值。P2P網(wǎng)絡(luò)中客戶端使用隨機(jī)哈希值來描述唯一ID,且資源文件也是通過文件的哈希值來查找。
具體地,可以預(yù)先獲取待屏蔽文件的ID,對獲取的ID進(jìn)行哈希計算,得到一組固定長度的二進(jìn)制值,在eMule中為128bit,即得到待屏蔽文件的第一哈希值。
S52:將與第一哈希值的距離差值在預(yù)設(shè)距離范圍內(nèi)的至少一個的哈希值作為第二哈希值。
在本發(fā)明的實施例中,距離差值可以通過異或運算獲取,預(yù)設(shè)距離可以由P2P網(wǎng)絡(luò)中客戶端的程序預(yù)先設(shè)定。
可以理解的是,取待屏蔽文件哈希值預(yù)設(shè)范圍之內(nèi)的至少一個哈希值,即取待屏蔽文件的哈希值或者與之相近的哈希值。
具體地,Kademlia是一種分布式哈希表技術(shù),Kademlia網(wǎng)絡(luò)中每個節(jié)點都有一個ID值作為標(biāo)志符,通過獨特的以異或算法(XOR)為距離度量基礎(chǔ),判斷節(jié)點間的距離遠(yuǎn)近就是基于數(shù)學(xué)上的異或二進(jìn)制運算,運算法則為:0⊕0=0、1⊕1=0、1⊕0=1,以及0⊕1=1(同為0,異為1)。例如,節(jié)點X的ID值為00010101,節(jié)點Y的ID值為00100010,則節(jié)點X和節(jié)點Y之間的距離為d(X,Y)=X⊕Y=(00010101)⊕(00100010)=00110111,即為十進(jìn)制中的32+16+4+2+1=55,對于任意給定的節(jié)點X和預(yù)設(shè)范圍Δ>=0,總會存在一個精確的節(jié)點Y,使得兩個節(jié)點之間的距離d(X,Y)=Δ。
在本發(fā)明的實施例中,哈希值是描述ID的固定長度的二進(jìn)制值,不同哈希值之間的距離計算和節(jié)點的距離計算同理??梢詫㈩A(yù)設(shè)距離置為較小的數(shù)值,預(yù)設(shè)距離可以例如4。
為了便于理解,取8bit長度的哈希值進(jìn)行舉例。例如,當(dāng)預(yù)設(shè)距離為4的時候,節(jié)點X的哈希值為00010101,則節(jié)點Y的哈希值可為:00010100、00010101、00010110、00010111,以及00010001,使得兩個節(jié)點間哈希值的距離差值<=4,即得到節(jié)點A的哈希值預(yù)設(shè)范圍之內(nèi)的至少一個哈希值。
通過取待屏蔽文件哈希值預(yù)設(shè)范圍之內(nèi)的至少一個哈希值作為第二哈希值,以觸發(fā)后續(xù)操作。
S53:根據(jù)第二哈希值中的每個哈希值配置虛擬網(wǎng)絡(luò)節(jié)點的ID,得到配置后的至少一個的虛擬網(wǎng)絡(luò)節(jié)點。
具體地,步驟S22中得到的第二哈希值的個數(shù)大于等于一個,每個哈希值描述唯一ID,每個ID對應(yīng)唯一的節(jié)點,則根據(jù)第二哈希值中的每個哈希值配置虛擬網(wǎng)絡(luò)節(jié)點,得到配置后的至少一個的虛擬網(wǎng)絡(luò)節(jié)點。
S54:啟動至少一個的虛擬網(wǎng)絡(luò)節(jié)點,并將至少一個的虛擬網(wǎng)絡(luò)節(jié)點在對等網(wǎng)絡(luò)中發(fā)布,以獲得至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點。
具體地,啟動配置后的虛擬網(wǎng)絡(luò)節(jié)點,在P2P網(wǎng)絡(luò)中發(fā)布虛擬網(wǎng)絡(luò)節(jié)點,獲得預(yù)設(shè)網(wǎng)絡(luò)節(jié)點。
S55:在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)監(jiān)聽客戶端發(fā)送的訪問文件資源的請求消息。
例如,在預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)監(jiān)聽客戶端發(fā)送的訪問文件資源的請求消息,以觸發(fā)后續(xù)步驟。
本實施例中,通過偽造節(jié)點來監(jiān)聽客戶端發(fā)送的訪問文件資源的請求消息,如果在偽造節(jié)點側(cè)監(jiān)聽到訪問文件資源請求消息時生成相應(yīng)的偽應(yīng)答消息,否則繼續(xù)在偽造節(jié)點側(cè)監(jiān)聽,能夠?qū)崟r監(jiān)測客戶端,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
S12:如果監(jiān)聽到訪問文件資源的請求消息,則根據(jù)訪問文件資源的請求消息生成偽應(yīng)答消息。
具體地,如果在預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)未監(jiān)聽到客戶端發(fā)送的訪問文件資源的請求消息,則繼續(xù)在預(yù)設(shè)節(jié)點側(cè)監(jiān)聽,否則,忽略文件資源的查詢請求,并等待客戶端發(fā)送的文件資源的ID請求消息,如果接收到文件資源ID請求消息,則對訪問文件資源的請求消息生成偽應(yīng)答消息,如偽造“未找到文件”消息進(jìn)行偽應(yīng)答。
S13:將偽應(yīng)答消息發(fā)送至所述客戶端,以對文件資源進(jìn)行屏蔽。
具體地,將偽造的應(yīng)答消息,如將“未找到文件”發(fā)送至客戶端,實現(xiàn)對資源文件的屏蔽。
本實施例中,通過在偽造節(jié)點側(cè)監(jiān)聽客戶端發(fā)送的文件資源請求消息,在監(jiān)聽到訪問文件資源請求消息時生成相應(yīng)的偽應(yīng)答消息,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
圖6是本發(fā)明一實施例提出的文件資源的屏蔽裝置的結(jié)構(gòu)框圖。該文件資源的屏蔽裝置60可以通過軟件、硬件或者兩者的結(jié)合實現(xiàn),該文件資源的屏蔽裝置60可以包括:判斷模塊601、生成模塊602,以及發(fā)送模塊603。其中,
判斷模塊601,用于判斷在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)是否監(jiān)聽到客戶端訪問文件資源的請求消息。
生成模塊602,用于在監(jiān)聽到訪問文件資源的請求消息時,根據(jù)訪問文件資源的請求消息生成偽應(yīng)答消息。
發(fā)送模塊603,用于將偽應(yīng)答消息發(fā)送至客戶端,以對文件資源進(jìn)行屏蔽。
一些實施例中,參見圖7,該文件資源的屏蔽裝置60還可以包括:
建立模塊604,用于基于Kademlia協(xié)議建立預(yù)設(shè)網(wǎng)絡(luò)節(jié)點與客戶端的通信連接。
可選地,至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點通過以下模塊獲得:
計算模塊605,用于對需要屏蔽的文件資源的ID進(jìn)行哈希計算,以獲取需要屏蔽的文件資源的第一哈希值。
處理模塊606,用于將與第一哈希值的距離差值在預(yù)設(shè)距離范圍內(nèi)的至少一個的哈希值作為第二哈希值。
可選地,通過異或運算獲取距離差值。
配置模塊607,用于根據(jù)第二哈希值中的每個哈希值配置虛擬網(wǎng)絡(luò)節(jié)點的ID,得到配置后的至少一個的虛擬網(wǎng)絡(luò)節(jié)點。
啟動模塊608,用于啟動至少一個的虛擬網(wǎng)絡(luò)節(jié)點,并將至少一個的虛擬網(wǎng)絡(luò)節(jié)點在對等網(wǎng)絡(luò)中發(fā)布,以獲得至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點。
監(jiān)聽模塊609,用于在至少一個的預(yù)設(shè)網(wǎng)絡(luò)節(jié)點側(cè)監(jiān)聽客戶端發(fā)送的訪問文件資源的請求消息。
需要說明的是,前述圖1-圖5實施例中對文件資源的屏蔽方法實施例的解釋說明也適用于該實施例的文件資源的屏蔽裝置60,其實現(xiàn)原理類似,此處不再贅述。
本實施例中,通過偽造節(jié)點監(jiān)聽客戶端發(fā)送的文件資源請求消息,在監(jiān)聽到訪問文件資源請求消息時生成相應(yīng)的偽應(yīng)答消息,能夠屏蔽特定文件,便于網(wǎng)絡(luò)中資源文件的管理。
需要說明的是,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn):具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。
本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實現(xiàn)上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時,包括方法實施例的步驟之一或其組合。
此外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。
上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。
盡管上面已經(jīng)示出和描述了本發(fā)明的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本發(fā)明的限制,本領(lǐng)域的普通技術(shù)人員在本發(fā)明的范圍內(nèi)可以對上述實施例進(jìn)行變化、修改、替換和變型。