專利名稱:用于高效擴(kuò)展p2p網(wǎng)絡(luò)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及計(jì)算網(wǎng)絡(luò),并更具體地涉及對等數(shù)據(jù)傳輸網(wǎng)絡(luò)的擴(kuò)展。
技術(shù)背景圖1是以對等(P2P)方式進(jìn)行交互的節(jié)點(diǎn)(例如計(jì)算設(shè)備)的網(wǎng)絡(luò) 100的示意圖。 一般而言,請求節(jié)點(diǎn)101發(fā)送搜索消息105(例如包含關(guān)于 請求節(jié)點(diǎn)101希望定位的數(shù)據(jù)的關(guān)鍵字)到經(jīng)由對等連接與請求節(jié)點(diǎn)101 進(jìn)行通信的至少一個(gè)中間節(jié)點(diǎn)111。中間節(jié)點(diǎn)111接收搜索消息105并將 搜索消息105轉(zhuǎn)發(fā)到至少一個(gè)附加的節(jié)點(diǎn)111。最終,搜索消息105到達(dá) 具有所請求的數(shù)據(jù)的至少一個(gè)響應(yīng)節(jié)點(diǎn)103(在某些情形中,搜索消息105 被轉(zhuǎn)發(fā)到的第一個(gè)中間節(jié)點(diǎn)111也將是響應(yīng)節(jié)點(diǎn)103)。至少一個(gè)響應(yīng)節(jié) 點(diǎn)103接著將響應(yīng)消息107例如經(jīng)由中間節(jié)點(diǎn)111發(fā)送回請求節(jié)點(diǎn)101。 請求節(jié)點(diǎn)101接著通過例如經(jīng)由直接連接109而直接連接到響應(yīng)節(jié)點(diǎn)103 從而從響應(yīng)節(jié)點(diǎn)103請求相關(guān)數(shù)據(jù)。在傳統(tǒng)的P2P系統(tǒng)中,包括搜索消息105和響應(yīng)消息107的消息具有 有限的生存期限(time of live)或跳躍計(jì)數(shù)(hop count)。即, 一旦消息 已被轉(zhuǎn)發(fā)到預(yù)定義的最大數(shù)量的節(jié)點(diǎn)101、 103或111,則該消息將過期。 因此,如果請求節(jié)點(diǎn)101生成具有生存期限為四的笫二搜索消息,并且所 請求的數(shù)據(jù)駐留所在的節(jié)點(diǎn)(例如節(jié)點(diǎn)113)距離請求節(jié)點(diǎn)101超過四次 "跳躍",則在獲得所請求的數(shù)據(jù)之前第二搜索消息將過期。此問題可以 通過增加搜索消息的生存期限或通過增加每個(gè)節(jié)點(diǎn)的對等連接的數(shù)量來減 少;但是,二者都將導(dǎo)致網(wǎng)絡(luò)流量的增加(由于網(wǎng)絡(luò)100的發(fā)散性質(zhì),前 者導(dǎo)致的增加呈指數(shù)增加)。
因此,本領(lǐng)域中存在對于一種用于高效擴(kuò)展P2P網(wǎng)絡(luò)的方法和裝置的 需求。發(fā)明內(nèi)容因此,本發(fā)明在第一方面提供了一種用于將數(shù)據(jù)從網(wǎng)絡(luò)中的第一節(jié)點(diǎn) 傳輸?shù)降诙?jié)點(diǎn)的方法,所述方法包括以下步驟從所述第二節(jié)點(diǎn)接收搜索請求消息,所述搜索請求消息請求數(shù)據(jù);以及由第三節(jié)點(diǎn)代表所述第一 節(jié)點(diǎn)發(fā)送響應(yīng)消息到所述第二節(jié)點(diǎn),所述響應(yīng)消息指示出所述第 一節(jié)點(diǎn)具 有所請求的數(shù)據(jù)。優(yōu)選地,所述第三節(jié)點(diǎn)是位于所述第一節(jié)點(diǎn)和第二節(jié)點(diǎn)之間的中間節(jié)點(diǎn)。優(yōu)選地,如果所述第三節(jié)點(diǎn)確定所述搜索請求消息將不會達(dá)到所述第 一節(jié)點(diǎn),則所述第三節(jié)點(diǎn)代表所述第 一節(jié)點(diǎn)發(fā)送所述響應(yīng)消息。優(yōu)選地,所述方法進(jìn)一步包括以下步驟檢驗(yàn)所述搜索請求消息的生 存期限字段或跳躍計(jì)數(shù)字段,以確定所述搜索請求消息在所述網(wǎng)絡(luò)中將行 進(jìn)多遠(yuǎn)。優(yōu)選地,所述發(fā)送步驟包括在與所述第三節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)庫中定位 與所述所請求數(shù)據(jù)有關(guān)的信息,其中所述數(shù)據(jù)庫包括與在所述網(wǎng)絡(luò)上執(zhí)行 的至少一次之前的數(shù)據(jù)傳輸有關(guān)的至少一個(gè)條目;以及根據(jù)所述所定位信 息發(fā)送所述響應(yīng)消息到所述第二節(jié)點(diǎn)。優(yōu)選地,在所述數(shù)據(jù)庫中保持所述至少一個(gè)條目的時(shí)間段由以下內(nèi)容 中至少一個(gè)來指示固定數(shù)量的最近數(shù)據(jù)傳輸、固定數(shù)量的最流行響應(yīng)、 固定數(shù)量的最不流行數(shù)據(jù)響應(yīng)、以及進(jìn)行傳輸?shù)墓?jié)點(diǎn)已經(jīng)活躍在所述網(wǎng)絡(luò) 中的時(shí)間長度。所述方法可以進(jìn)一步包括周期性地查詢所述所請求數(shù)椐的至少 一個(gè) 源,以確認(rèn)所述至少一個(gè)條目的有效性。優(yōu)選地,所述至少一個(gè)條目包括結(jié)合所述至少一次之前的數(shù)據(jù)傳輸從 由所述第三節(jié)點(diǎn)之前接收的至少一個(gè)響應(yīng)消息中取得的信息。 優(yōu)選地,所述至少一個(gè)條目包括結(jié)合所述至少一次之前的數(shù)據(jù)傳輸從 由所述第一節(jié)點(diǎn)之前發(fā)送的至少一個(gè)響應(yīng)消息中取得的信息。優(yōu)選地,所述信息包括以下內(nèi)容中至少一個(gè)在所述至少一次之前的 數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的名稱、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)?數(shù)據(jù)的內(nèi)容描述、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的大小、 在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的類型、所述至少一次之前 的數(shù)據(jù)傳輸?shù)臅r(shí)間、將所述第三節(jié)點(diǎn)從所述第一節(jié)點(diǎn)分隔開的跳躍數(shù)量、 與所述至少一個(gè)響應(yīng)消息有關(guān)的元數(shù)據(jù)、在所述至少一次之前的數(shù)據(jù)傳輸 中傳輸?shù)臄?shù)據(jù)的源、以及所述至少一個(gè)響應(yīng)消息自身。優(yōu)選地,針對由所述第三節(jié)點(diǎn)接收的每個(gè)響應(yīng)消息,所述信息被自動 保存在所述數(shù)據(jù)庫中。優(yōu)選地,基于以下內(nèi)容中至少一個(gè)保存所述信息可用的數(shù)據(jù)庫存儲 器、可用的數(shù)據(jù)庫存儲裝置、網(wǎng)絡(luò)帶寬速度、網(wǎng)絡(luò)帶寬利用、以及所述至 少一個(gè)響應(yīng)消息的源已經(jīng)活躍在所述網(wǎng)絡(luò)中的時(shí)間長度。優(yōu)選地,所述至少一個(gè)響應(yīng)消息指示出包含于其中的數(shù)據(jù)將有效的時(shí) 間長度。用于高效擴(kuò)展P2P網(wǎng)絡(luò)的本方法和裝置的一實(shí)施例包括從請求節(jié)點(diǎn)有承消息以及代衣具百所, 請求節(jié)點(diǎn),其中所述響應(yīng)消息源自于中間節(jié)點(diǎn)。例如在下述情形中所述中 間節(jié)點(diǎn)可以代表"響應(yīng)"節(jié)點(diǎn)進(jìn)行響應(yīng),在所述情形中響應(yīng)節(jié)點(diǎn)距離請求節(jié)點(diǎn)太遠(yuǎn)以至于無法接收到搜索請求消息。
現(xiàn)在將僅通過示例并參考附圖來描述本發(fā)明的優(yōu)選實(shí)施例,在附圖中 圖l是以對等方式進(jìn)行交互的節(jié)點(diǎn)的網(wǎng)絡(luò)的示意圖; 圖2是說明了用于高效擴(kuò)展諸如圖1中所說明的網(wǎng)絡(luò)的P2P網(wǎng)絡(luò)的方 法的一實(shí)施例的流程圖;以及圖3是使用通用計(jì)算設(shè)備來實(shí)現(xiàn)的網(wǎng)絡(luò)擴(kuò)展方法的高級框圖。
為促進(jìn)理解,盡可能地使用了相同的標(biāo)號來指示圖中共用的相同單元。
具體實(shí)施方式
在一實(shí)施例中,本發(fā)明是一種用于高效擴(kuò)展P2P網(wǎng)絡(luò)的方法和裝置。 本發(fā)明的實(shí)施例使得下述情形成為可能,其中,P2P網(wǎng)絡(luò)上的請求節(jié)點(diǎn)從 通常處于請求節(jié)點(diǎn)的"范圍"之外的節(jié)點(diǎn)接收數(shù)據(jù),這是通過使得中間節(jié) 點(diǎn)能夠?yàn)榱朔秶獾墓?jié)點(diǎn)"通過代理"進(jìn)行響應(yīng)。圖2是說明了用于高效擴(kuò)展諸如圖1中所說明的網(wǎng)絡(luò)100的P2P網(wǎng)絡(luò) 的方法200的一實(shí)施例的流程圖。方法200可以例如在P2P網(wǎng)絡(luò)100上的 任意節(jié)點(diǎn)(例如101、 103、 111或113)上實(shí)現(xiàn)。方法200在步驟202初 始化,并進(jìn)行到步驟204,其中方法200例如從對等(已連接)節(jié)點(diǎn)接收 搜索請求消息。方法200接著進(jìn)行到步驟206,其中方法200檢驗(yàn)搜索請求消息并確 定接收者(例如,在步驟204接收搜索請求消息的節(jié)點(diǎn))是否具有所請求 的數(shù)據(jù)。如果接收者具有所請求的數(shù)據(jù),則方法200進(jìn)行到步驟208,以 及例如根據(jù)傳統(tǒng)的P2P協(xié)議通過網(wǎng)絡(luò)100把響應(yīng)消息發(fā)送回請求節(jié)點(diǎn)。所 述方法接著進(jìn)行到步驟212,以及檢查本地?cái)?shù)據(jù)庫中潛在地匹配搜索請求 消息的其它數(shù)據(jù),如下文中更詳細(xì)描述的??商鎿Q地,如果方法200在步驟206確定接收者沒有所請求的數(shù)據(jù), 則方法200直接進(jìn)行到步驟212,以及檢查在接收者上駐留的本地?cái)?shù)據(jù)庫。 在步驟212進(jìn)行檢查的數(shù)據(jù)庫包括包含關(guān)于在網(wǎng)絡(luò)100上執(zhí)行的之前的數(shù) 據(jù)傳輸?shù)男畔?例如,其中數(shù)據(jù)從響應(yīng)節(jié)點(diǎn)傳輸?shù)秸埱蠊?jié)點(diǎn))的至少一個(gè) 條目。在一實(shí)施例中,此信息包括以下內(nèi)容中的至少一個(gè)所傳輸?shù)臄?shù)據(jù) 的名稱、所傳輸?shù)臄?shù)據(jù)的內(nèi)容描述、所傳輸?shù)臄?shù)據(jù)的大小、數(shù)據(jù)類型(例 如,圖像文件和音頻文件等)、數(shù)據(jù)傳輸?shù)臅r(shí)間、所傳輸數(shù)據(jù)的源(例如, 網(wǎng)絡(luò)ID、地址、端口號、或響應(yīng)節(jié)點(diǎn)針對傳輸?shù)钠渌问降臉?biāo)識)、將接 收者從響應(yīng)節(jié)點(diǎn)分隔開的跳躍數(shù)量、或者關(guān)于在實(shí)際數(shù)據(jù)傳輸之前發(fā)送的 響應(yīng)消息的其它元數(shù)據(jù)。
在一實(shí)施例中,接收者保存來自在實(shí)際數(shù)據(jù)傳輸之前發(fā)送的進(jìn)入響應(yīng) 消息的、關(guān)于之前的數(shù)據(jù)傳輸?shù)男畔?。具體而言,接收者保存將響應(yīng)消息 重構(gòu)為代理消息所必要的盡可能多的來自響應(yīng)消息的信息,如下文中更詳 細(xì)描述的。在某些實(shí)施例中,在數(shù)據(jù)庫中保存的、針對特定的之前的數(shù)據(jù) 傳輸?shù)男畔⒖梢允菍?yīng)于數(shù)據(jù)傳輸?shù)恼麄€(gè)響應(yīng)消息。具體而言,在步驟212,方法200確定在數(shù)據(jù)庫中是否存在匹配或?qū)?應(yīng)于搜索請求消息中請求的數(shù)據(jù)的條目(例如響應(yīng)消息)。特別地,方法 200確定數(shù)據(jù)庫是否包括指示出網(wǎng)絡(luò)100中具有所請求數(shù)據(jù)的至少一個(gè)節(jié) 點(diǎn)(例如節(jié)點(diǎn)可能已經(jīng)響應(yīng)于針對與當(dāng)前正被請求的相同數(shù)據(jù)的之前的請 求)的條目。如果不存在這樣的數(shù)據(jù)庫條目,則方法200進(jìn)行到步驟218, 以及要么將搜索請求消息轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)(例如,如果搜索請求消息的生 存期限字段尚未過期的話),要么丟棄搜索請求消息(例如,如果在步驟 204傳輸?shù)浇邮照咧畷r(shí)生存期限字段過期的話)??商鎿Q地,如果方法200在步驟212確定數(shù)據(jù)庫確實(shí)包含對應(yīng)于搜索 請求消息中請求的數(shù)據(jù)的條目,則方法200進(jìn)行到步驟214,以及進(jìn)一步 確定搜索請求消息是否將到達(dá)對應(yīng)的數(shù)據(jù)庫條目的源(例如,可能具有所 請求數(shù)據(jù)的節(jié)點(diǎn))。在一實(shí)施例中,方法200檢驗(yàn)搜索請求消息的生存期 限字段(其指定了搜索請求消息還可以進(jìn)行多少次跳躍)或跳躍計(jì)數(shù)字段 (其指定了迄今已經(jīng)進(jìn)行了多少次跳躍),并確定搜索請求消息將在網(wǎng)絡(luò) 中行進(jìn)多遠(yuǎn)(例如,搜索請求消息將到達(dá)的最遠(yuǎn)節(jié)點(diǎn)是哪個(gè)?)。因此, 如果搜索請求消息還可以進(jìn)行x次跳躍,并且如果對應(yīng)的數(shù)據(jù)庫條目的源 距離接收者還有至少x+l次跳躍,則方法200設(shè)想搜索請求消息將不會到 達(dá)對應(yīng)的數(shù)據(jù)庫條目的源。如果方法200在步驟214確定搜索請求消息將不會到達(dá)對應(yīng)的數(shù)據(jù)庫 條目的源,則方法200進(jìn)行到步驟220,以及代表對應(yīng)的數(shù)據(jù)庫條目的源 進(jìn)行響應(yīng),例如作為代理。在一實(shí)施例中,方法200通過將響應(yīng)消息從接 收者發(fā)送到請求節(jié)點(diǎn)而代表對應(yīng)的數(shù)據(jù)庫條目的源進(jìn)行響應(yīng)。響應(yīng)消息指 示出對應(yīng)的數(shù)據(jù)庫條目的源具有請求節(jié)點(diǎn)正在搜索的數(shù)據(jù)。 可替換地,如果方法200在步驟214確定搜索請求消息將到達(dá)對應(yīng)的 數(shù)據(jù)庫條目的源,則方法200可以進(jìn)行兩件事中之一。在一實(shí)施例中,方 法200例如根據(jù)傳統(tǒng)的P2P協(xié)議而僅將搜索請求消息轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)。在另一實(shí)施例中,在步驟216,即便搜索請求消息將可能仍然到達(dá)對 應(yīng)的數(shù)據(jù)庫條目的源,方法200也可以代表對應(yīng)的數(shù)據(jù)庫條目的源響應(yīng)于 搜索請求消息。在此情形中, 一旦方法200已經(jīng)響應(yīng)于請求節(jié)點(diǎn),則方法 200也可以丟棄搜索請求消息(即,不把搜索請求消息進(jìn)一步通過網(wǎng)絡(luò)轉(zhuǎn) 發(fā))。在此情形中代表對應(yīng)的數(shù)據(jù)庫條目的源進(jìn)行響應(yīng)可以理想地實(shí)現(xiàn)對 搜索請求消息的更快響應(yīng)(例如,在傳輸路徑中的較早節(jié)點(diǎn)生成響應(yīng)), 或者減少網(wǎng)絡(luò)流量(例如,通過一旦對應(yīng)的數(shù)據(jù)庫條目的源已經(jīng)被標(biāo)識則 阻止搜索請求消息在網(wǎng)絡(luò)中進(jìn)一步行進(jìn))。在單個(gè)的有限響應(yīng)是響應(yīng)于對 數(shù)據(jù)的請求(例如對股票價(jià)格的查詢)所需的全部之時(shí),這些優(yōu)點(diǎn)可以是 特別理想的。方法200在步驟222終止。本領(lǐng)域技術(shù)人員將理解,在某些實(shí)施例中, 方法200可以在請求節(jié)點(diǎn)整體地實(shí)際執(zhí)行。即,如果請求節(jié)點(diǎn)維護(hù)之前的 響應(yīng)消息的其自己的數(shù)據(jù)庫,則請求節(jié)點(diǎn)實(shí)際上能夠根據(jù)步驟210-222僅 通過搜索其自己的數(shù)據(jù)庫而標(biāo)識具有所請求數(shù)據(jù)的節(jié)點(diǎn)。如上所述的方法200使能對P2P網(wǎng)絡(luò)的高效擴(kuò)展,同時(shí)僅最低P艮度地 增加網(wǎng)絡(luò)流量。通過使得P2P網(wǎng)絡(luò)中的 一個(gè)或多個(gè)節(jié)點(diǎn)能夠?yàn)榱司W(wǎng)絡(luò)中的 其它節(jié)點(diǎn)"通過代理"進(jìn)行響應(yīng),在不用實(shí)際發(fā)送數(shù)據(jù)請求到附加節(jié)點(diǎn)的 情況下,用于數(shù)據(jù)請求的搜索空間被有效增加。因此,與傳統(tǒng)的P2P擴(kuò)展 方法不同,傳統(tǒng)的P2P擴(kuò)展方法易于導(dǎo)致網(wǎng)絡(luò)流量有時(shí)呈指數(shù)增加(例如, 通過增加搜索請求消息的生存期限或節(jié)點(diǎn)的對等連接的數(shù)量),方法200 實(shí)際上節(jié)約了流量,同時(shí)"擴(kuò)展"了網(wǎng)絡(luò)。本領(lǐng)域技術(shù)人員將理解,用于存儲與之前的數(shù)據(jù)傳輸有關(guān)的信息的節(jié) 點(diǎn)數(shù)據(jù)庫可以根據(jù)多種標(biāo)準(zhǔn)來構(gòu)建。例如,在一實(shí)施例中,節(jié)點(diǎn)可以每當(dāng) 接收到響應(yīng)消息時(shí)自動保存信息。在另一實(shí)施例中,諸如可用存儲器或存 儲裝置、網(wǎng)絡(luò)帶寬速度、網(wǎng)絡(luò)帶寬利用、或者響應(yīng)節(jié)點(diǎn)已經(jīng)活躍在網(wǎng)絡(luò)中
的時(shí)間長度等參數(shù)可以指示相應(yīng)條目是否將被保存在數(shù)據(jù)庫中。在另 一實(shí) 施例中,節(jié)點(diǎn)可以將所接收的響應(yīng)消息和現(xiàn)有的數(shù)據(jù)庫條目進(jìn)行比較,并 僅當(dāng)針對所接收的響應(yīng)消息所涉及的數(shù)據(jù)的條目尚未存在時(shí)才創(chuàng)建所接收 的響應(yīng)消息的條目??商鎿Q地,如果針對相關(guān)數(shù)據(jù)的數(shù)據(jù)庫條目已經(jīng)存在, 則所接收的響應(yīng)消息可被用于更新針對該數(shù)據(jù)的信息(例如通過創(chuàng)建具有 該數(shù)據(jù)或文件的節(jié)點(diǎn)的列表)。另外,可以基于多種標(biāo)準(zhǔn)來維護(hù)數(shù)據(jù)庫。例如,節(jié)點(diǎn)可以指定將根 據(jù)可調(diào)整的時(shí)間窗(例如,其中僅與固定數(shù)量的最近搜索響應(yīng)有關(guān)的信息 被保存)、固定數(shù)量的最流行或最不流行的數(shù)據(jù)搜索、或者響應(yīng)節(jié)點(diǎn)已經(jīng) 活躍在網(wǎng)絡(luò)中的時(shí)間長度(例如,節(jié)點(diǎn)可以保持針對已經(jīng)活躍了最長時(shí)間 段的多個(gè)響應(yīng)節(jié)點(diǎn)的搜索響應(yīng)消息的子集)來保持?jǐn)?shù)據(jù)庫條目。為了確保數(shù)據(jù)庫條目的持續(xù)有效性, 一個(gè)節(jié)點(diǎn)可以定期查詢其它節(jié)點(diǎn) (該節(jié)點(diǎn)的響應(yīng)消息已經(jīng)被輸入到數(shù)據(jù)庫中),例如以便確保節(jié)點(diǎn)仍具有 相關(guān)數(shù)據(jù)??商鎿Q地,響應(yīng)節(jié)點(diǎn)可以通過向響應(yīng)消息中添加用于指示搜索 結(jié)果將在多長時(shí)間內(nèi)有效的字段(例如,"此部分的現(xiàn)場直播視頻流將僅 在一天內(nèi)有效。")、或者添加指示出響應(yīng)節(jié)點(diǎn)已經(jīng)活躍在網(wǎng)絡(luò)中多長時(shí) 間的字段,而協(xié)助管理數(shù)據(jù)庫條目。在某些實(shí)施例中,請求節(jié)點(diǎn)可以指定其不希望接收代表范圍外節(jié)點(diǎn)的 代理響應(yīng)(例如通過在搜索請求消息中陳述這一點(diǎn))。例如,請求節(jié)點(diǎn)可 能期望令其搜索被臨近節(jié)點(diǎn)(例如在特定范圍內(nèi))所滿足??商鎿Q地,請 求節(jié)點(diǎn)可以指定代理響應(yīng)被允許通過的跳躍計(jì)數(shù)(例如"在第n次跳躍之 前無4戈理響應(yīng)。"),從而最近的對等節(jié)點(diǎn)不會發(fā)送代理響應(yīng)。此外,請 求節(jié)點(diǎn)可以針對代理響應(yīng)設(shè)置壽命限制(例如,"涉及數(shù)據(jù)庫條目的代理 響應(yīng)不可長于n天。"),以便確保代理響應(yīng)的有效性。相反,響應(yīng)節(jié)點(diǎn)可以指定其不希望具有關(guān)于其已保存的響應(yīng)消息的信 息(例如通過在響應(yīng)消息中陳述這一點(diǎn))。例如,響應(yīng)節(jié)點(diǎn)可能想要將其 通信僅限于臨近節(jié)點(diǎn)。可替換地,響應(yīng)節(jié)點(diǎn)可以指定沿著響應(yīng)消息路徑的 給定點(diǎn),在給定點(diǎn)上關(guān)于響應(yīng)消息的信息可以被保存(例如,"超過第n 次跳躍不進(jìn)行保存。"),從而僅在特定范圍內(nèi)的節(jié)點(diǎn)可以保存關(guān)于響應(yīng) 消息的1言息。圖3是使用通用計(jì)算設(shè)備300實(shí)現(xiàn)的網(wǎng)絡(luò)擴(kuò)展方法的高級框圖。在一 實(shí)施例中,通用計(jì)算設(shè)備300包括處理器302、存儲器304、數(shù)據(jù)傳輸模塊 305和多種輸入/輸出(I/O)設(shè)備306,諸如顯示器、鍵盤、鼠標(biāo)、調(diào)制解 調(diào)器等等。在一實(shí)施例中,至少一個(gè)i/o設(shè)備是存儲設(shè)備(例如,磁盤驅(qū) 動器、光盤驅(qū)動器、軟盤驅(qū)動器)。應(yīng)該理解,數(shù)據(jù)傳輸模塊305可以被 實(shí)現(xiàn)為通過通信信道耦合于處理器的物理設(shè)備或子系統(tǒng)??商鎿Q地,數(shù)據(jù)傳輸模塊305可以由一個(gè)或多個(gè)軟件應(yīng)用(或甚至軟 件和硬件的結(jié)合,例如使用專用集成電路(ASIC))來表示,其中軟件從 存儲媒體(例如I/O設(shè)備306)進(jìn)行加載,并在通用計(jì)算設(shè)備300的存儲 器304中由處理器302進(jìn)行操作。因此,在一實(shí)施例中,在此參考前述附 圖描述的用于高效擴(kuò)展P2P網(wǎng)絡(luò)的數(shù)據(jù)傳輸模塊305可以被存儲在計(jì)算機(jī) 可讀媒體或載體上(例如RAM、磁盤或光盤、或磁盤或光盤驅(qū)動器等等)。因此,本發(fā)明代表了數(shù)據(jù)傳輸網(wǎng)絡(luò)的領(lǐng)域中的顯著進(jìn)步。所提供的方 法和裝置使得下述情形成為可能,即,P2P網(wǎng)絡(luò)上的請求節(jié)點(diǎn)從通常處于 請求節(jié)點(diǎn)的范圍之外的節(jié)點(diǎn)接收數(shù)據(jù),這是通過使得中間節(jié)點(diǎn)能夠?yàn)榱朔?圍外的節(jié)點(diǎn)通過代理進(jìn)行響應(yīng)。另外,與用于擴(kuò)展P2P網(wǎng)絡(luò)的傳統(tǒng)方法不 同,本發(fā)明的方法和裝置實(shí)際上節(jié)約了網(wǎng)絡(luò)流量同時(shí)高效擴(kuò)展用于數(shù)據(jù)請 求的搜索空間。
權(quán)利要求
1. 一種用于將數(shù)據(jù)從網(wǎng)絡(luò)中的第一節(jié)點(diǎn)傳輸?shù)降诙?jié)點(diǎn)的方法,所述方法包括以下步驟從所述第二節(jié)點(diǎn)接收搜索請求消息,所述搜索請求消息請求數(shù)據(jù);以及由第三節(jié)點(diǎn)代表所述第 一節(jié)點(diǎn)發(fā)送響應(yīng)消息到所述第二節(jié)點(diǎn),所述響 應(yīng)消息指示出所述第 一節(jié)點(diǎn)具有所請求的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求l所述的方法,其中,如果所述第三節(jié)點(diǎn)確定所述搜 索請求消息將不會達(dá)到所述第一節(jié)點(diǎn),則所述第三節(jié)點(diǎn)代表所述第一節(jié)點(diǎn) 發(fā)送所述響應(yīng)消息。
3. 根據(jù)權(quán)利要求2所述的方法,進(jìn)一步包括以下步驟 檢驗(yàn)所述搜索請求消息的生存期限字段或跳躍計(jì)數(shù)字段,以確定所述搜索請求消息在所述網(wǎng)絡(luò)中將行進(jìn)多遠(yuǎn)。
4. 根據(jù)任意前述權(quán)利要求所述的方法,其中所述發(fā)送步驟包括 在與所述第三節(jié)點(diǎn)關(guān)聯(lián)的數(shù)據(jù)庫中定位與所述所請求數(shù)據(jù)有關(guān)的信息,其中所迷數(shù)據(jù)庫包括與在所述網(wǎng)絡(luò)上執(zhí)行的至少一次之前的數(shù)據(jù)傳輸 有關(guān)的至少一個(gè)條目;以及才艮據(jù)所述所定位信息發(fā)送所述響應(yīng)消息到所述第二節(jié)點(diǎn)。
5. 才艮據(jù)權(quán)利要求4所述的方法,其中在所述數(shù)據(jù)庫中保持所述至少一 個(gè)條目的時(shí)間段由以下內(nèi)容中至少一個(gè)來指示固定數(shù)量的最近數(shù)據(jù)傳輸、 固定數(shù)量的最流行響應(yīng)、固定數(shù)量的最不流行數(shù)據(jù)響應(yīng)、以及進(jìn)行傳輸?shù)?節(jié)點(diǎn)已經(jīng)活躍在所述網(wǎng)絡(luò)中的時(shí)間長度。
6. 根據(jù)權(quán)利要求4或權(quán)利要求5所述的方法,其中所述至少一個(gè)條目 包括結(jié)合所述至少一次之前的數(shù)據(jù)傳輸從由所述第三節(jié)點(diǎn)之前接收的至少 一個(gè)響應(yīng)消息中取得的信息。
7. 根據(jù)權(quán)利要求4或權(quán)利要求5所述的方法,其中所述至少一個(gè)條目 包括結(jié)合所述至少 一次之前的數(shù)據(jù)傳輸從由所述笫 一節(jié)點(diǎn)之前發(fā)送的至少 一個(gè)響應(yīng)消息中取得的信息。
8. 根據(jù)權(quán)利要求4或權(quán)利要求5所述的方法,其中所述信息包括以下內(nèi)容中至少一個(gè)在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的名稱、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的內(nèi)容描述、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的大小、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的類型、所述至少一次之前的數(shù)據(jù)傳輸?shù)臅r(shí)間、將所述第三節(jié)點(diǎn)從所述第一節(jié)點(diǎn)分隔開的跳躍數(shù)量、與所述至少一個(gè)響應(yīng)消息有關(guān)的元數(shù)據(jù)、在所述至少一次之前的數(shù)據(jù)傳輸中傳輸?shù)臄?shù)據(jù)的源、以及所述至 少一個(gè)響應(yīng)消息自身。
9. 根據(jù)權(quán)利要求4或權(quán)利要求5所述的方法,其中針對由所述第三節(jié)點(diǎn)接收的每個(gè)響應(yīng)消息,所述信息被自動保存在所 述數(shù)據(jù)庫中;或者基于以下內(nèi)容中至少一個(gè)保存所述信息可用的數(shù)據(jù)庫存儲器、可用 的數(shù)據(jù)庫存儲裝置、網(wǎng)絡(luò)帶寬速度、網(wǎng)絡(luò)帶寬利用、以及所述至少一個(gè)響 應(yīng)消息的源已經(jīng)活躍在所述網(wǎng)絡(luò)中的時(shí)間長度。
10. —種包括計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序,以便當(dāng)其被加載到計(jì)算 機(jī)系統(tǒng)中并在其上執(zhí)行時(shí)使得所述計(jì)算機(jī)系統(tǒng)實(shí)施根據(jù)任意前述權(quán)利要求 所述的方法的所有步驟。
全文摘要
用于高效擴(kuò)展P2P網(wǎng)絡(luò)的本方法和裝置的一實(shí)施例包括從請求節(jié)點(diǎn)接收搜索請求消息以及代表具有所請求的數(shù)據(jù)的節(jié)點(diǎn)發(fā)送響應(yīng)消息到所述請求節(jié)點(diǎn),其中所述響應(yīng)消息源自于中間節(jié)點(diǎn)。例如在下述情形中所述中間節(jié)點(diǎn)可以代表“響應(yīng)”節(jié)點(diǎn)進(jìn)行響應(yīng),在所述情形中響應(yīng)節(jié)點(diǎn)距離請求節(jié)點(diǎn)太遠(yuǎn)以至于無法接收到搜索請求消息。
文檔編號H04L29/08GK101147380SQ200680008973
公開日2008年3月19日 申請日期2006年3月9日 優(yōu)先權(quán)日2005年3月21日
發(fā)明者J·拉瓦耶, R·詹寧斯三世 申請人:國際商業(yè)機(jī)器公司