專利名稱:一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體地說(shuō),本發(fā)明涉及一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法和裝置。
背景技術(shù):
eMule網(wǎng)絡(luò)是一種典型的P2P網(wǎng)絡(luò),其特點(diǎn)是每個(gè)客戶都可以與網(wǎng)絡(luò)中其他客戶共享自己的文件資源。eMule網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)量巨大,同時(shí)傳播的資源數(shù)量更是數(shù)以億計(jì),大大方便了人們共享和獲取資源。當(dāng)前,Kademlia協(xié)議已成為eMule網(wǎng)絡(luò)中實(shí)現(xiàn)資源共享的一項(xiàng)重要協(xié)議,它是美國(guó)紐約大學(xué)Petar Maymounkov和David Mezieres在2002年發(fā)表的一項(xiàng)研究成果。Kademlia是一種分布式哈希表(Distributed Hash Table, DHT)技術(shù),通過(guò)獨(dú)特的異或(XOR)算法為距離度量基礎(chǔ),建立了一種全新的DHT拓?fù)浣Y(jié)構(gòu),與其他算法相比大大提高了路由查詢速度。Kademlia擁有一個(gè)龐大的抽象邏輯地址空間,用一個(gè)128位的二進(jìn)制字符串來(lái)表示一個(gè)節(jié)點(diǎn)的ID,下文中將Kademlia網(wǎng)絡(luò)(可簡(jiǎn)稱為KAD網(wǎng)絡(luò))中的節(jié)點(diǎn)稱為KAD節(jié)點(diǎn)。KAD節(jié)點(diǎn)ID通常在第一次啟動(dòng)時(shí)通過(guò)MD4哈希函數(shù)生成,哈希的隨機(jī)性保證了節(jié)點(diǎn)的均勻性和無(wú)碰撞,根據(jù)DHT技術(shù)原理,〈key,value)數(shù)據(jù)存放在ID值最接近key值的KAD節(jié)點(diǎn)上。在KAD網(wǎng)絡(luò)中,節(jié)點(diǎn)的查找采用迭代式的查找,中間節(jié)點(diǎn)在收到源節(jié)點(diǎn)的查找請(qǐng)求后,不是直接轉(zhuǎn)發(fā)該請(qǐng)求,而是向源節(jié)點(diǎn)回復(fù)下一跳的節(jié)點(diǎn),再由源節(jié)點(diǎn)發(fā)送查找請(qǐng)求到下一跳節(jié)點(diǎn),直至找到ID值最接近key值的KAD節(jié)點(diǎn),從而獲取〈key, value)數(shù)據(jù),進(jìn)而通過(guò)value值獲取所需要的資源??梢钥闯?,在KAD網(wǎng)絡(luò)中,任何一個(gè)KAD節(jié)點(diǎn)都可以方便地進(jìn)行資源發(fā)布,所發(fā)布的〈key,value)數(shù)據(jù)存放在其它KAD節(jié)點(diǎn)上,并可以被需要獲取該資源的節(jié)點(diǎn)按照一定規(guī)律查找得到,從而大大方便了人與人之間的資源共享。然而,在方便人們共享資源的同時(shí),龐大的eMule網(wǎng)絡(luò)也不可避免地傳播著一些不良信息和非法資源,因此有必要對(duì)eMule網(wǎng)絡(luò)進(jìn)行監(jiān)控以促使其健康有序地發(fā)展。如何在eMule網(wǎng)絡(luò)中傳播的海量信息中對(duì)特定資源(例如含有不良信息的資源或非法資源)進(jìn)行監(jiān)控是一大難點(diǎn)。中國(guó)專利200910022864.2公開(kāi)了一種基于eMule的主動(dòng)式特定信息傳播監(jiān)控方法。它從互聯(lián)網(wǎng)或者服務(wù)器上獲取eMule資源,對(duì)eMule資源收集器獲取的eMule資源進(jìn)行分析,得到eMule資源中所包含的有效信息,然后采用仿真客戶端方法來(lái)連接eMule網(wǎng)絡(luò),根據(jù)eMule協(xié)議和Ed2k或者KAD協(xié)議對(duì)返回?cái)?shù)據(jù)包進(jìn)行分析,獲取該節(jié)點(diǎn)的狀態(tài)信息。該方案有效地解決了 eMule特定信息傳播及其受眾的監(jiān)測(cè)問(wèn)題,為網(wǎng)絡(luò)安全監(jiān)管部門(mén)提供了受眾信息監(jiān)測(cè)與取證手段,同時(shí)為網(wǎng)絡(luò)安全態(tài)勢(shì)宏觀分析和預(yù)警預(yù)報(bào)提供了基礎(chǔ)數(shù)據(jù)和決策依據(jù)。然而,中國(guó)專利200910022864.2所披露的方案存在以下不足:a)該方案只能獲取互聯(lián)網(wǎng)網(wǎng)頁(yè)和服務(wù)器上的eMule資源,然而并不是所有的eMule共享資源都會(huì)在互聯(lián)網(wǎng)網(wǎng)頁(yè)和服務(wù)器上發(fā)布,例如前文中提及的KAD協(xié)議支持用戶將資源發(fā)布的〈key,value)數(shù)據(jù)直接存放在其它KAD節(jié)點(diǎn)上,因此200910022864.2的方案難以保證監(jiān)控的全面性,這樣就難以最大程度地遏制含有不良信息的資源或非法資源的傳播;b)互聯(lián)網(wǎng)上的網(wǎng)頁(yè)是海量的,eMule網(wǎng)絡(luò)中的服務(wù)器也多達(dá)上千臺(tái),全面地搜索海量的網(wǎng)頁(yè)以及與大量服務(wù)器交互需要巨大的開(kāi)銷,往往難以在短時(shí)間內(nèi)獲得整個(gè)eMule網(wǎng)絡(luò)中的與特定資源相關(guān)的信息,對(duì)新出現(xiàn)的而又危害巨大的資源難以迅速做出反應(yīng)。綜上所述,當(dāng)前迫切需要一種時(shí)效性強(qiáng)且有助于更全面地獲取eMule網(wǎng)絡(luò)特定資源的信息的方法。
發(fā)明內(nèi)容
本發(fā)明的主旨是提供一種有助于更全面地獲取eMule網(wǎng)絡(luò)特定資源的信息的方法和裝置,該方法和裝置能夠獲取未在服務(wù)器上發(fā)布的eMule網(wǎng)絡(luò)特定資源的信息。為實(shí)現(xiàn)上述發(fā)明主旨,本發(fā)明一個(gè)實(shí)施例中提供了一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,包括下列步驟:I)針對(duì)所關(guān)注的關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的KAD虛擬節(jié)點(diǎn),所述KAD虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或接近以使二者的異或距離遠(yuǎn)遠(yuǎn)小于真實(shí)KAD節(jié)點(diǎn)ID之間的通常異或距離;眾所周知,整個(gè)KAD網(wǎng)絡(luò)空間可以容納2128個(gè)不同的ID值,而KAD網(wǎng)絡(luò)中同時(shí)存在的節(jié)點(diǎn)規(guī)模僅在千萬(wàn)級(jí)別,由于真實(shí)KAD節(jié)點(diǎn)的ID均勻分布在2128的空間內(nèi),因此,KAD節(jié)點(diǎn)ID的分布非常稀疏,本領(lǐng)域普通技術(shù)人員易于理解,合理地設(shè)置ID值,即可使得虛擬節(jié)點(diǎn)的ID與相應(yīng)關(guān)鍵詞的MD4哈希值之間的異或距離遠(yuǎn)遠(yuǎn)小于真實(shí)KAD節(jié)點(diǎn)ID之間的通常異或距離,即使得虛擬節(jié)點(diǎn)的ID與相應(yīng)關(guān)鍵詞的MD4哈希值之間的異或距離小于真實(shí)KAD節(jié)點(diǎn)ID與所述關(guān)鍵詞的MD4哈希值的異或距離的概率趨近于無(wú)窮大;2)對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)點(diǎn);3)利用所述的KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。其中,對(duì)于每個(gè)關(guān)鍵詞,構(gòu)造N個(gè)與其對(duì)應(yīng)的所述KAD虛擬節(jié)點(diǎn),N可以為大于I的整數(shù),取值可以根據(jù)需要確定。其中,N的取值為32。其中,所述步驟I)包括下列子步驟:11)設(shè)置關(guān)鍵詞列表;12)將所關(guān)注的特定資源的關(guān)鍵詞輸入所述關(guān)鍵詞列表中;13)取出關(guān)鍵詞列表中的各個(gè)關(guān)鍵詞,分別構(gòu)造與其對(duì)應(yīng)的所述N個(gè)虛擬節(jié)點(diǎn)。其中,所述步驟2)包括下列子步驟:21)使所述KAD虛擬節(jié)點(diǎn)不斷發(fā)起節(jié)點(diǎn)查詢請(qǐng)求消息,獲取其它節(jié)點(diǎn)信息,并不斷更新維護(hù)自己的路由表。其中,所述虛擬KAD節(jié)點(diǎn)為其它真實(shí)KAD節(jié)點(diǎn)提供正常的eMule服務(wù)。其中,所述步驟3)包括:KAD虛擬節(jié)點(diǎn)接收到消息時(shí),判斷所接收到的消息是否包含特定資源的發(fā)布消息,如果是,就記錄該特定資源的共享信息,然后繼續(xù)保持監(jiān)聽(tīng)狀態(tài);如果不是,則直接丟棄所接收的消息,繼續(xù)保持監(jiān)聽(tīng)狀態(tài)。其中,所述步驟3)還包括:如果滿足了結(jié)束條件,則結(jié)束監(jiān)聽(tīng),結(jié)束監(jiān)聽(tīng)的條件設(shè)為:收集到足夠的所述包含特定資源的發(fā)布消息。
其中,如果收到的消息所請(qǐng)求的關(guān)鍵詞的MD4和設(shè)定的關(guān)鍵詞MD4完全相同,則所收到的消息判定為包含所述特定資源的發(fā)布消息,否則判定為不是包含特定資源的發(fā)布消
肩、O另外,本發(fā)明的另一個(gè)實(shí)施例還提供了一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)裝置,包括:KAD虛擬節(jié)點(diǎn)產(chǎn)生模塊,用于針對(duì)每個(gè)關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的KAD虛擬節(jié)點(diǎn),所構(gòu)造的KAD虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或接近,使得二者的異或距離遠(yuǎn)遠(yuǎn)小于KAD真實(shí)節(jié)點(diǎn)ID之間的通常異或距離;KAD虛擬節(jié)點(diǎn)初始化模塊,用于對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)點(diǎn),以及KAD資源采集模塊,用于利用所述的KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。本發(fā)明的另一個(gè)目的是進(jìn)一步提供一種時(shí)效性強(qiáng)且有助于更全面地獲取eMule網(wǎng)絡(luò)特定資源的信息的方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明另一個(gè)實(shí)施例中提供了 了一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,包括上述步驟1)、2)、3),并且所述步驟I)中,所構(gòu)造的KAD虛擬節(jié)點(diǎn)為用戶提供調(diào)節(jié)KAD虛擬節(jié)點(diǎn)發(fā)起查詢的頻率的接口。當(dāng)需要縮短特定資源的發(fā)現(xiàn)時(shí)間時(shí),提高KAD虛擬節(jié)點(diǎn)初始化階段發(fā)起查詢的頻率。本發(fā)明的再一個(gè)目的是進(jìn)一步提供一種能夠及時(shí)地對(duì)eMule網(wǎng)絡(luò)特定資源信息進(jìn)行干預(yù)的監(jiān)控方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明再一個(gè)實(shí)施例中提供了一種對(duì)eMule網(wǎng)絡(luò)特定資源信息進(jìn)行干預(yù)的監(jiān)控方法,包括下列步驟:a)根據(jù)前文所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,發(fā)現(xiàn)包含所述特定資源的發(fā)布消息,獲得與所述特定資源相關(guān)的信息;b)依據(jù)步驟a)所獲得的與所述特定資源相關(guān)的信息對(duì)所述特定資源的傳播進(jìn)行干預(yù)。與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果:1、能夠獲取未在服務(wù)器上發(fā)布的eMule網(wǎng)絡(luò)特定資源的信息,這樣有助于更全面地獲取eMule網(wǎng)絡(luò)特定資源的信息。2、時(shí)效性強(qiáng),能夠快速發(fā)現(xiàn)新發(fā)布的特定資源。3、能夠?qū)π鲁霈F(xiàn)而又危害巨大的特定資源做出迅速反應(yīng)。4、在監(jiān)控的同時(shí),能夠保證eMule網(wǎng)絡(luò)的正常運(yùn)作。
圖1示出了本發(fā)明一個(gè)實(shí)施例中eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法的流程圖;圖2示出了本發(fā)明一個(gè)實(shí)施例中利用所構(gòu)造的虛擬節(jié)點(diǎn),監(jiān)聽(tīng)擁有資源的節(jié)點(diǎn)發(fā)布所述特定資源的流程圖。
具體實(shí)施方式
為更清楚介紹基于KAD協(xié)議的資源被動(dòng)發(fā)現(xiàn)方法,首先介紹KAD網(wǎng)絡(luò)的基本組織形式。KAD網(wǎng)絡(luò)屬于一種典型的結(jié)構(gòu)化P2P覆蓋網(wǎng)絡(luò)(Structured P2P OverlayNetwork),以分布式的應(yīng)用層全網(wǎng)方式來(lái)進(jìn)行信息的存儲(chǔ)和檢索。在KAD網(wǎng)絡(luò)中,所有信息均以〈key, value)的哈希表?xiàng)l目形式加以存儲(chǔ),只要是能夠表述成為〈key, value〉字典條目形式的信息,KAD網(wǎng)絡(luò)均能存儲(chǔ),一個(gè)KAD網(wǎng)絡(luò)能夠同時(shí)存儲(chǔ)多張分布式哈希表。在eMule網(wǎng)絡(luò)中,其KAD網(wǎng)絡(luò)均存儲(chǔ)并維護(hù)著兩張分布式哈希表,一張為關(guān)鍵詞字典,而另一張為文件索引字典。關(guān)鍵詞字典主要用于根據(jù)給出的關(guān)鍵詞查詢其所對(duì)應(yīng)的文件名稱及相關(guān)文件信息,其中key的值等于所給出的關(guān)鍵詞字符串的128比特md4散列,而其對(duì)應(yīng)的value則為一個(gè)列表,可稱為關(guān)鍵詞字典列表。在這個(gè)關(guān)鍵詞字典列表當(dāng)中,給出了文件名中含有對(duì)應(yīng)關(guān)鍵詞的所有文件的文件信息,關(guān)鍵詞字典列表中的每個(gè)條目都可以簡(jiǎn)單地用一個(gè)3元組條目表示,即:(文件名,文件長(zhǎng)度,文件的MD4校驗(yàn)值)。文件索引字典用于根據(jù)給出的文件信息來(lái)查詢文件的擁有者(即該文件的下載服務(wù)提供者),其中key的值等于所需下載文件的MD4校驗(yàn)值。而對(duì)應(yīng)的value也是一個(gè)列表,可稱為文件索引字典列表,它給出了當(dāng)前所有擁有該文件(即相應(yīng)的MD4校驗(yàn)值所對(duì)應(yīng)的文件)的節(jié)點(diǎn)的網(wǎng)絡(luò)信息,這樣,對(duì)于eMule網(wǎng)絡(luò)中具有同一 MD4校驗(yàn)值的同一文件,可以分布地到不同節(jié)點(diǎn)下載。其中,文件索引字典列表的每個(gè)條目用一個(gè)3元組表示,S卩:(擁有者IP,下載偵聽(tīng)端口,擁有者節(jié)點(diǎn)ID)。下面,結(jié)合附圖和實(shí)施例對(duì)本發(fā)明做進(jìn)一步地描述。根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,它是一種基于KAD技術(shù)的被動(dòng)發(fā)現(xiàn)方法,主要解決對(duì)于一些新出現(xiàn)的而又危害巨大的資源無(wú)法迅速做出反應(yīng)以及不能獲取全面信息的缺陷。圖1示出了本實(shí)施例中eMule網(wǎng)絡(luò)上基于KAD協(xié)議的資源被動(dòng)發(fā)現(xiàn)方法的流程圖,參考圖1,本實(shí)施例的資源被動(dòng)發(fā)現(xiàn)方法包括下列步驟101)至105):步驟101)設(shè)置關(guān)鍵詞列表,關(guān)鍵詞列表中記錄需要關(guān)注的關(guān)鍵詞。關(guān)鍵詞一般由外部通過(guò)人機(jī)接口輸入,關(guān)心哪些關(guān)鍵詞就設(shè)定哪些,例如:“劉德華”、“張學(xué)友”等。本實(shí)施例所指的eMule網(wǎng)絡(luò)上的特定資源就是文件名含有這些關(guān)鍵詞的特定資源。步驟102)計(jì)算關(guān)鍵詞列表中每個(gè)關(guān)鍵詞的MD4哈希值。步驟103)對(duì)于每個(gè)關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的N個(gè)虛擬節(jié)點(diǎn),這N個(gè)虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或二者之間的異或距離足夠接近。比如關(guān)鍵詞的md4為“123456789012345678901234567890AB”,則可以設(shè)置虛擬節(jié)點(diǎn) ID 為“ 123456789012345678901234567890AA”, 二者異或距離非常接近,這樣就使得二者的異或距離遠(yuǎn)遠(yuǎn)小于真實(shí)KAD節(jié)點(diǎn)ID之間的通常異或距離。眾所周知,整個(gè)KAD網(wǎng)絡(luò)空間可以容納2128個(gè)不同的ID值,而KAD網(wǎng)絡(luò)中同時(shí)存在的節(jié)點(diǎn)規(guī)模僅在千萬(wàn)級(jí)別,由于真實(shí)KAD節(jié)點(diǎn)的ID均勻分布在2128的空間內(nèi),因此,KAD節(jié)點(diǎn)ID的分布十分稀疏,本領(lǐng)域普通技術(shù)人員易于理解,合理地設(shè)置ID值,即可使得虛擬節(jié)點(diǎn)的ID與相應(yīng)關(guān)鍵詞的MD4哈希值之間的異或距離遠(yuǎn)遠(yuǎn)小于真實(shí)KAD節(jié)點(diǎn)ID之間的通常異或距離,即使得虛擬節(jié)點(diǎn)的ID與相應(yīng)關(guān)鍵詞的MD4哈希值之間的異或距離小于真實(shí)KAD節(jié)點(diǎn)ID與所述關(guān)鍵詞的MD4哈希值的異或距離的概率趨近于無(wú)窮大,網(wǎng)絡(luò)中真實(shí)KAD節(jié)點(diǎn)的ID幾乎不可能比所設(shè)置的虛擬節(jié)點(diǎn)ID更接近于所述關(guān)鍵詞的MD4哈希值。本實(shí)施例中,N的取值可以由用戶根據(jù)需要設(shè)置。N既可以為1,也可以為大于I的整數(shù)。理論上說(shuō),N越大,針對(duì)特定資源的發(fā)現(xiàn)的效果越好。但如果N過(guò)大會(huì)增加資源消耗。優(yōu)選地,N取32。當(dāng)N大于I時(shí),虛擬節(jié)點(diǎn)的ID可以適當(dāng)?shù)胤稚⒎植?,這樣也能提高針對(duì)特定資源的發(fā)現(xiàn)的效果,當(dāng)然,虛擬節(jié)點(diǎn)ID分散分布的前提是任意一個(gè)虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值的異或距離遠(yuǎn)遠(yuǎn)小于KAD真實(shí)節(jié)點(diǎn)ID之間的通常異或距離。步驟104)構(gòu)造N個(gè)虛擬節(jié)點(diǎn)后,將這些虛擬節(jié)點(diǎn)加入到KAD網(wǎng)絡(luò)中。本實(shí)施例中,虛擬節(jié)點(diǎn)加入KAD網(wǎng)絡(luò)的方法如下:首先KAD網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都會(huì)維護(hù)自身的路由表,存儲(chǔ)其他節(jié)點(diǎn)信息,不斷淘汰不存活的節(jié)點(diǎn)。基于此,使虛擬節(jié)點(diǎn)不斷發(fā)起節(jié)點(diǎn)查詢請(qǐng)求消息(S卩KADEMLIA_B00TSTRAP_REQ和KADEMLIA REQ),獲取其它節(jié)點(diǎn)信息,不斷更新維護(hù)自己的路由表。這樣,在查詢的過(guò)程中,被查詢的正常節(jié)點(diǎn)會(huì)感知到虛擬節(jié)點(diǎn)的存在并將其加入到自身的路由表中。由于虛擬節(jié)點(diǎn)長(zhǎng)期在線并且查詢頻率較一般正常節(jié)點(diǎn)更高,因此更容易被真實(shí)的KAD節(jié)點(diǎn)感知,長(zhǎng)期在其路由表存在。在一個(gè)優(yōu)選實(shí)施例中,可以為用戶提供調(diào)節(jié)虛擬節(jié)點(diǎn)發(fā)起查詢的頻率的接口,這樣用戶就可以通過(guò)提高虛擬節(jié)點(diǎn)初始化階段的發(fā)包頻率,在短時(shí)間內(nèi)向更多的節(jié)點(diǎn)擴(kuò)散自己,從而縮短發(fā)現(xiàn)特定資源相關(guān)信息的時(shí)間。在另一個(gè)優(yōu)選實(shí)施例中,虛擬節(jié)點(diǎn)除了使其它KAD節(jié)點(diǎn)感知外,還進(jìn)一步模擬真實(shí)KAD節(jié)點(diǎn)的行為以為其它真實(shí)KAD節(jié)點(diǎn)提供正常服務(wù),例如虛擬節(jié)點(diǎn)對(duì)其它真實(shí)KAD節(jié)點(diǎn)的查詢(SEARCH)消息和發(fā)布(PUBLISH)消息進(jìn)行應(yīng)答,這樣可以使得監(jiān)控不影響到KAD網(wǎng)絡(luò)的正常運(yùn)作。步驟105)利用所構(gòu)造的N個(gè)虛擬節(jié)點(diǎn),監(jiān)聽(tīng)擁有資源的節(jié)點(diǎn)發(fā)布所述特定資源,并記錄與所述特定資源相關(guān)的信息。根據(jù)KAD查找協(xié)議規(guī)范,某個(gè)MD4的發(fā)布會(huì)選擇KAD網(wǎng)絡(luò)中ID與該MD4最接近的一組節(jié)點(diǎn)。查詢也最終會(huì)選擇最接近的ID進(jìn)行查詢。由于KAD節(jié)點(diǎn)數(shù)量相對(duì)整個(gè)ID空間數(shù)量來(lái)說(shuō)是十分稀疏的,而本實(shí)施例中專門(mén)針對(duì)目標(biāo)MD4構(gòu)建節(jié)點(diǎn),因此KAD網(wǎng)絡(luò)中一般不會(huì)出現(xiàn)比所構(gòu)建節(jié)點(diǎn)更合適的節(jié)點(diǎn),所以按照KAD協(xié)議,所述特定資源的發(fā)布最終會(huì)將〈key,value)數(shù)據(jù)存儲(chǔ)到本步驟所構(gòu)建的虛擬節(jié)點(diǎn)上。因此,利用所構(gòu)建的N個(gè)虛擬節(jié)點(diǎn),即可方便地監(jiān)聽(tīng)到所有要存儲(chǔ)到KAD節(jié)點(diǎn)的關(guān)于特定資源的發(fā)布消息,進(jìn)而獲取與特定資源相關(guān)的信息。在一個(gè)優(yōu)選實(shí)施例中,步驟105)可以通過(guò)下述子步驟201)至204)實(shí)現(xiàn):步驟201)監(jiān)聽(tīng)其它KAD節(jié)點(diǎn)的資源發(fā)布消息;步驟202)判斷所接收到的消息是否包含特定資源的發(fā)布消息,如果是,執(zhí)行步驟203);如果不是,則直接返回步驟201)繼續(xù)保持監(jiān)聽(tīng)狀態(tài);其中,如果收到的資源發(fā)布消息(即消息類型為KADEMLIA PUBLISH REQ的消息)所請(qǐng)求的目標(biāo)MD4和設(shè)定的關(guān)鍵詞MD4完全相同,則所收到的消息判定為包含所述特定資源的發(fā)布消息,否則判定為不是包含特定資源的發(fā)布消息。步驟203)記錄該特定資源的共享信息,包括:共享文件的文件ID,發(fā)布用戶ID,文件名稱,大小,類型等信息。步驟204)判斷是否滿足結(jié)束條件,如果滿足了結(jié)束條件,則結(jié)束監(jiān)聽(tīng);否則回到步驟201)繼續(xù)監(jiān)聽(tīng)。結(jié)束條件可以設(shè)為:收集到1000個(gè)特定資源的發(fā)布消息,滿足條件后即完成收集。當(dāng)然,本步驟中也可以不設(shè)結(jié)束條件,這樣就會(huì)一直收集特定資源的發(fā)布消
肩、O
在一個(gè)優(yōu)選實(shí)施例中,還進(jìn)一步提供了一種能夠及時(shí)地對(duì)eMule網(wǎng)絡(luò)特定資源信息進(jìn)行干預(yù)的監(jiān)控方法,該監(jiān)控方法包括前述步驟101)至105),并且還包括下述步驟:步驟106)在步驟105)中獲得與所述特定資源相關(guān)的信息后,依據(jù)該信息對(duì)所述特定資源的傳播進(jìn)行干預(yù)(例如阻斷該特定資源的傳播)。上述本實(shí)施例中,對(duì)于每個(gè)關(guān)鍵詞,構(gòu)造出基于該關(guān)鍵詞的N個(gè)KAD虛擬節(jié)點(diǎn),利用eMule的協(xié)議規(guī)范,讓N個(gè)KAD虛擬節(jié)點(diǎn)模擬普通客戶端的行為,可以最大限度的獲得與關(guān)鍵詞相關(guān)的資源共享信息。在實(shí)際測(cè)試中,選擇兩臺(tái)主機(jī),分別部署在電信和聯(lián)通網(wǎng)絡(luò)上,二者都具有公網(wǎng)IP,通過(guò)中央控制器對(duì)兩臺(tái)主機(jī)進(jìn)行控制并下發(fā)任務(wù),構(gòu)造與特定關(guān)鍵詞MD4相近的一批虛擬節(jié)點(diǎn)。當(dāng)虛擬節(jié)點(diǎn)在KAD網(wǎng)絡(luò)中擴(kuò)散的足夠充分以后(在KAD網(wǎng)絡(luò)發(fā)布自己,加入到其他節(jié)點(diǎn)的哈希表中,經(jīng)驗(yàn)時(shí)間為3個(gè)小時(shí)),發(fā)布了 50個(gè)具有特定關(guān)鍵詞的相關(guān)資源,基本在發(fā)布3分鐘之內(nèi)虛擬節(jié)點(diǎn)就可以發(fā)現(xiàn)相關(guān)資源的發(fā)布消息,發(fā)現(xiàn)率為100%??梢钥闯?,基于上述資源被動(dòng)發(fā)現(xiàn)方法,可以快速地對(duì)需要監(jiān)控的特定資源發(fā)布行為做出反應(yīng)。另外,在本發(fā)明的一個(gè)實(shí)施例中,還提供了與eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法相應(yīng)的特定資源的發(fā)現(xiàn)裝置,包括=KAD虛擬節(jié)點(diǎn)產(chǎn)生模塊,用于針對(duì)每個(gè)關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的N個(gè)虛擬節(jié)點(diǎn),這N個(gè)虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或異或距離足夠接近,即根據(jù)關(guān)鍵詞計(jì)算出符合要求的KAD節(jié)點(diǎn)ID ; KAD虛擬節(jié)點(diǎn)初始化模塊,用于對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)點(diǎn),以及KAD資源采集模塊,用于利用所述的N個(gè)KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。更具體地,KAD虛擬節(jié)點(diǎn)初始化模塊不斷發(fā)起節(jié)點(diǎn)查詢請(qǐng)求消息(即KADEMLIA_B00TSTRAP_REQ),獲取其它節(jié)點(diǎn)信息,不斷更新維護(hù)自己的路由表。這樣,在查詢的過(guò)程中,被查詢的正常節(jié)點(diǎn)會(huì)感知到虛擬節(jié)點(diǎn)的存在并將其加入到自身的路由表中。由于虛擬節(jié)點(diǎn)長(zhǎng)期在線并且查詢頻率較一般正常節(jié)點(diǎn)更高,因此更容易被真實(shí)的KAD節(jié)點(diǎn)感知,長(zhǎng)期在其路由表存在。在一個(gè)優(yōu)選實(shí)施例中,可以為用戶提供調(diào)節(jié)虛擬節(jié)點(diǎn)發(fā)起查詢的頻率的接口,這樣用戶就可以通過(guò)提高虛擬節(jié)點(diǎn)初始化階段的發(fā)包頻率,在短時(shí)間內(nèi)向更多的節(jié)點(diǎn)擴(kuò)散自己,從而縮短發(fā)現(xiàn)特定資源相關(guān)信息的時(shí)間。在另一個(gè)優(yōu)選實(shí)施例中,虛擬節(jié)點(diǎn)除了使其它KAD節(jié)點(diǎn)感知外,還進(jìn)一步模擬真實(shí)KAD節(jié)點(diǎn)的行為,為其它真實(shí)KAD節(jié)點(diǎn)提供正常服務(wù),例如虛擬節(jié)點(diǎn)對(duì)其它真實(shí)KAD節(jié)點(diǎn)的查詢(SEARCH)消息和發(fā)布(PUBLISH)消息進(jìn)行應(yīng)答,這樣可以使得監(jiān)控不影響到KAD網(wǎng)絡(luò)的正常運(yùn)作。KAD資源采集模塊負(fù)責(zé)從KAD網(wǎng)絡(luò)采集與關(guān)鍵詞有關(guān)的文件信息。所屬模塊模擬eMule客戶端連接到KAD網(wǎng)絡(luò),然后獲取其他真實(shí)節(jié)點(diǎn)的資源發(fā)布消息,過(guò)濾出與特定內(nèi)容相關(guān)的資源信息。最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以描述本發(fā)明的技術(shù)方案而不是對(duì)本技術(shù)方法進(jìn)行限制,本發(fā)明在應(yīng)用上可以延伸為其它的修改、變化、應(yīng)用和實(shí)施例,并且因此認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和教導(dǎo)范圍內(nèi)。
權(quán)利要求
1.一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,包括下列步驟: 1)針對(duì)所關(guān)注的關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的KAD虛擬節(jié)點(diǎn),所構(gòu)造的KAD虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值的異或距離遠(yuǎn)遠(yuǎn)小于KAD真實(shí)節(jié)點(diǎn)ID之間的通常異或距離; 2)對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)占.3)利用所述的KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。
2.根據(jù)權(quán)利要求1所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,對(duì)于每個(gè)關(guān)鍵詞,構(gòu)造N個(gè)與其對(duì)應(yīng)的所述KAD虛擬節(jié)點(diǎn),N為大于I的整數(shù)。
3.根據(jù)權(quán)利要求2所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,N為32。
4.根據(jù)權(quán)利要求2所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,所述步驟1)包括下列子步驟: 11)設(shè)置關(guān)鍵詞列表; 12)將所關(guān)注的特定資源的關(guān)鍵詞輸入所述關(guān)鍵詞列表中; 13)取出關(guān)鍵詞列表中的各個(gè)關(guān)鍵詞,分別構(gòu)造與其對(duì)應(yīng)的所述N個(gè)虛擬節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,所述步驟2)包括下列子步驟: 21)使所述KAD虛擬節(jié)點(diǎn)不斷發(fā)起節(jié)點(diǎn)查詢請(qǐng)求消息,獲取其它節(jié)點(diǎn)信息,并不斷更新維護(hù)自己的路由表。
6.根據(jù)權(quán)利要求5所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,所述步驟I)中,所構(gòu)造的KAD虛擬節(jié)點(diǎn)為用戶提供調(diào)節(jié)KAD虛擬節(jié)點(diǎn)發(fā)起查詢的頻率的接口,所述步驟21)中,當(dāng)需要縮短特定資源的發(fā)現(xiàn)時(shí)間時(shí),提高KAD虛擬節(jié)點(diǎn)初始化階段發(fā)起查詢的頻率。
7.根據(jù)權(quán)利要求6所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,所述虛擬KAD節(jié)點(diǎn)為其它真實(shí)KAD節(jié)點(diǎn)提供正常的eMule服務(wù)。
8.根據(jù)權(quán)利要求1所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,其特征在于,所述步驟3)包括:KAD虛擬節(jié)點(diǎn)接收到消息時(shí),判斷所接收到的消息是否包含特定資源的發(fā)布消息,如果是,就記錄該特定資源的共享信息,然后繼續(xù)保持監(jiān)聽(tīng)狀態(tài);如果不是,則直接丟棄所接收的消息,繼續(xù)保持監(jiān)聽(tīng)狀態(tài)。
9.一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)裝置,其特征在于,包括: KAD虛擬節(jié)點(diǎn)產(chǎn)生模塊,用于針對(duì)每個(gè)關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的KAD虛擬節(jié)點(diǎn),所構(gòu)造的KAD虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或接近,使得二者的異或距離遠(yuǎn)遠(yuǎn)小于KAD真實(shí)節(jié)點(diǎn)ID之間的通常異或距離; KAD虛擬節(jié)點(diǎn)初始化模塊,用于對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)點(diǎn),以及 KAD資源采集模塊,用于利用所述的KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。
10.一種對(duì)eMule網(wǎng)絡(luò)特定資源信息進(jìn)行干預(yù)的監(jiān)控方法,其特征在于,包括下列步驟: a)根據(jù)權(quán)利要求1 8中任意一項(xiàng)所述的eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,發(fā)現(xiàn)包含所述特定資源的發(fā)布消息,獲得與所述特定資源相關(guān)的信息;b)依據(jù)步驟a)所獲得的 與所述特定資源相關(guān)的信息對(duì)所述特定資源的傳播進(jìn)行干預(yù)。
全文摘要
本發(fā)明提供一種eMule網(wǎng)絡(luò)上特定資源的發(fā)現(xiàn)方法,包括下列步驟1)針對(duì)所關(guān)注的關(guān)鍵詞,構(gòu)造與其對(duì)應(yīng)的KAD虛擬節(jié)點(diǎn),所構(gòu)造的KAD虛擬節(jié)點(diǎn)的ID值與相應(yīng)關(guān)鍵詞的MD4哈希值相同或接近,使得二者的異或距離遠(yuǎn)遠(yuǎn)小于KAD真實(shí)節(jié)點(diǎn)ID之間的通常異或距離;2)對(duì)KAD虛擬節(jié)點(diǎn)進(jìn)行初始化,使eMule網(wǎng)絡(luò)的其它節(jié)點(diǎn)感知到所構(gòu)造的KAD虛擬節(jié)點(diǎn);3)利用所述的KAD虛擬節(jié)點(diǎn)監(jiān)聽(tīng)涉及相應(yīng)關(guān)鍵詞的特定資源的資源發(fā)布消息。本發(fā)明有助于更全面地獲取eMule網(wǎng)絡(luò)特定資源的信息;時(shí)效性強(qiáng),能夠快速發(fā)現(xiàn)新發(fā)布的特定資源;能夠?qū)π鲁霈F(xiàn)而又危害巨大的特定資源做出迅速反應(yīng);在監(jiān)控的同時(shí),能夠保證eMule網(wǎng)絡(luò)的正常運(yùn)作。
文檔編號(hào)G06F17/30GK103167029SQ20131007048
公開(kāi)日2013年6月19日 申請(qǐng)日期2013年3月6日 優(yōu)先權(quán)日2013年3月6日
發(fā)明者程學(xué)旗, 馮凱, 劉備, 田紅志, 王元卓, 劉悅 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所