專利名稱:用于在對等網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對等(P2P)網(wǎng)絡(luò)領(lǐng)域并且更具體地但是并非排他地涉及在P2P網(wǎng)絡(luò)內(nèi)對服務(wù)定位。
背景技術(shù):
文件共享已經(jīng)是密集搜索和基層使用的焦點由來已久。通過如下文件共享方式來實現(xiàn)文件共享,這些方式是針對該目的而具體設(shè)計的并且實施為具有與之關(guān)聯(lián)的文件共享協(xié)議的不同文件共享系統(tǒng)。已經(jīng)實施始于Napster、然后繼續(xù)經(jīng)過多代不同文件共享系統(tǒng)(比如gnutella、Kazaa、eDonkey、Winny和BitTorrent)的多個不同文件共享系統(tǒng)。除了這些文件共享系統(tǒng)之外,也在開發(fā)新系統(tǒng)(比如Share and Perfect Dark)。這些文件共享系統(tǒng)和關(guān)聯(lián)協(xié)議通稱為對等(P2P)文件共享系統(tǒng)/協(xié)議或者更簡稱為P2P文件共享應(yīng)用。另外,除了 P2P文件共享應(yīng)用之外,還涌現(xiàn)在架構(gòu)上與P2P文件共享應(yīng)用不同的新ー類P2P應(yīng)用(P2P 電視(P2PTV))。P2P文件共享的流行從近期業(yè)務(wù)研究中不言而喻。例如Ellacoya Networks對美國一百萬寬帶用戶的近期業(yè)務(wù)研究表明按分量劃分主要業(yè)務(wù)類型如下網(wǎng)絡(luò)(web)(HTTP) -46 % ;對等(P2P)-37% ;新聞組-9% ;非HTTP流視頻-3% ;游戲_2%、IP語音(VoIP)-I 以及其它-I %。HTTP業(yè)務(wù)分量高的主要原因是嵌入的視頻流業(yè)務(wù)(比如來自YouTube的業(yè)務(wù),該業(yè)務(wù)在上文提到的研究中占總業(yè)務(wù)的9. 8% )。然而P2P文件共享仍然負責業(yè)務(wù)的大百分比,而隨著P2PTV的涌現(xiàn),業(yè)務(wù)數(shù)量有望急劇增加?,F(xiàn)有P2P應(yīng)用的絕大多數(shù)涉及到文件共享;然而涉及到文件共享的現(xiàn)有P2P應(yīng)用的大多數(shù)至少起初并非完全對等。實際上,多數(shù)現(xiàn)有P2P應(yīng)用起初利用中央服務(wù)器以在P2P網(wǎng)絡(luò)的成員之間協(xié)調(diào)活動。例如在bitTorrent中,盡管不同多條信息的下載為對等的,但是集中服務(wù)器(在bitTorrent中稱為跟蹤器)用來協(xié)調(diào)bitTorrent應(yīng)用的活動。類似地,例如涉及到文件共享的許多其它P2P應(yīng)用也具有相似特性(比如Napster和eDonkey)。然而使用中央服務(wù)器使現(xiàn)有P2P應(yīng)用易受擁塞和故障影響并且還使現(xiàn)有P2P應(yīng)用成為安全威脅的引人注意的目標。然而不利的是,盡管現(xiàn)有P2P應(yīng)用支持文件共享,但是現(xiàn)有P2P應(yīng)用未支持捜索服務(wù)的能力
發(fā)明內(nèi)容
如下實施例解決了現(xiàn)有技術(shù)中的各種缺陷,這些實施例支持對等(P2P)網(wǎng)絡(luò)(比如Chord(樹環(huán))網(wǎng)絡(luò)或者其它適當P2P網(wǎng)絡(luò))中的服務(wù)定位能力。在一個實施例中,提供一種用于在P2P網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法。P2P網(wǎng)絡(luò)包括多個節(jié)點,這 些節(jié)點包括執(zhí)行用于在P2P網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法的目標節(jié)點。目標節(jié)點包括搜索表,該搜索表包括標識P2P網(wǎng)絡(luò)的相應(yīng)多個節(jié)點的多個條目。該方法包括檢測對在P2P網(wǎng)絡(luò)內(nèi)搜索服務(wù)的請求并且朝著搜索表的節(jié)點中的至少ー個節(jié)點發(fā)起服務(wù)搜索請求。服務(wù)搜索請求是標識P2P網(wǎng)絡(luò)的支持服務(wù)的至少ー個節(jié)點的請求。服務(wù)搜索請求包括指示服務(wù)的信息和用于由接收服務(wù)搜索請求的節(jié)點使用的捜索范圍。
可以通過結(jié)合以下附圖考慮下文具體描述容易理解這里的教導(dǎo)圖I描繪了示例Chord網(wǎng)絡(luò);圖2描繪了響應(yīng)于圖I的示例Chord網(wǎng)絡(luò)的節(jié)點之ー發(fā)起的服務(wù)定位搜索而在圖I的示例Chord網(wǎng)絡(luò)內(nèi)發(fā)起的服務(wù)搜索請求消息;圖3描繪了用于在發(fā)起服務(wù)位置請求的節(jié)點生成服務(wù)搜索請求消息的方法的一個實施例;圖4描繪了用于在中間節(jié)點處理服務(wù)搜索請求消息的方法的一個實施例;圖5描繪了用于在中間節(jié)點處理服務(wù)搜索響應(yīng)響應(yīng)消息的方法的一個實施例;圖6描繪了示例Chord網(wǎng)絡(luò),該圖描繪了在示例Chord網(wǎng)絡(luò)中執(zhí)行針對服務(wù)的漸進服務(wù)位置捜索的例子;圖7描繪了用于在圖6的示例Chord網(wǎng)絡(luò)中執(zhí)行針對服務(wù)的漸進服務(wù)位置捜索的示例搜索范圍;圖8描繪了用于使用對準式漸進搜索位置捜索在發(fā)起服務(wù)位置請求的節(jié)點生成服務(wù)搜索請求消息的方法的一個實施例;圖9A-9D描繪了響應(yīng)于圖I的示例Chord網(wǎng)絡(luò)的節(jié)點之ー發(fā)起的服務(wù)位置搜索而在圖I的示例Chord網(wǎng)絡(luò)內(nèi)發(fā)起的服務(wù)搜索請求消息,這些示了在圖I的示例Chord網(wǎng)絡(luò)中執(zhí)行針對服務(wù)的對準式漸進搜索位置捜索的例子;圖10描繪了適合用于在執(zhí)行這里描述的功能時使用的通用計算機的高級框圖。為了有助于理解,相同標號已經(jīng)在可能時用來標示各圖共有的相同要素。
具體實施例方式提供服務(wù)定位能力用于在對等(P2P)網(wǎng)絡(luò)內(nèi)對服務(wù)定位時使用。服務(wù)定位能力根據(jù)ー個實施例使P2P網(wǎng)絡(luò)內(nèi)的目標節(jié)點能夠在P2P網(wǎng)絡(luò)搜索特定服務(wù)的位置(例如捜索P2P網(wǎng)絡(luò)的支持服務(wù)的ー個或者多個其它節(jié)點)。服務(wù)定位能力重用P2P網(wǎng)絡(luò)的節(jié)點的現(xiàn)有搜索表以執(zhí)行服務(wù)位置捜索??梢詧?zhí)行由目標節(jié)點發(fā)起的服務(wù)位置捜索使得向捜索表的所有節(jié)點并行發(fā)起服務(wù)搜索請求、向捜索表的所有節(jié)點串行發(fā)起服務(wù)搜索請求直至對服務(wù)定位或者窮盡搜索表、向搜索表的節(jié)點子集并行、然后向搜索表的任何剩余節(jié)點串行發(fā)起服務(wù)搜索請求直至對服務(wù)定位或者窮盡搜索表和/或使用任何其它適當方案。在服務(wù)位置捜索中,向節(jié)點發(fā)送的每個服務(wù)搜索請求包括指示所請求服務(wù)的信息、用于由接收搜索請求的節(jié)點使用的捜索范圍并且可選地包括服務(wù)特有信息。服務(wù)搜索請求可以包括其它類型的信息。節(jié)點發(fā)起的服務(wù)位置搜索將至多生成M個搜索消息使得每個節(jié)點將至多接收M個響應(yīng)消息(其中M是P2P網(wǎng)絡(luò)的密鑰空間的以位為單位的大小),因此整個P2P網(wǎng)絡(luò)內(nèi)的搜索被分布為使得搜索請求和/或響應(yīng)消息未使P2P網(wǎng)絡(luò)的單個節(jié)點超負荷。服務(wù)位置捜索能力使第一 P2P網(wǎng)絡(luò)中的節(jié)點能夠通過使用服務(wù)定位能力來捜索第二 P2P網(wǎng)絡(luò)中的對象以標識第一 P2P網(wǎng)絡(luò)的如下節(jié)點,這些節(jié)點也是第二 P2P網(wǎng)絡(luò)的節(jié)點。將理解前文描述僅為對出于介紹服務(wù)定位能力的目的而提供的、對于服務(wù)定位能力的某些實施例的一般描述,因此服務(wù)定位能力的實施例并非g在于受前文描述限制。這里主要在特定P2P網(wǎng)絡(luò)類型(即Chord網(wǎng)絡(luò))的背景內(nèi)描繪和描述服務(wù)定位能力。在Chord網(wǎng)絡(luò)中,分別地,在Chord網(wǎng)絡(luò)的節(jié)點維護的搜索表稱為指(finger)表,并且指表的每個條目稱為指。將理解服務(wù)定位能力的原理可以應(yīng)用于其它P2P網(wǎng)絡(luò)類型,因此這里指代指表和關(guān)聯(lián)指可以更一般地理解為指代捜索表和標識節(jié)點的關(guān)聯(lián)條目。圖I描繪了示例Chord網(wǎng)絡(luò)的高級框圖。如圖I中所示,Chord網(wǎng)絡(luò)100包括邏 輯上在環(huán)配置中布置的多個節(jié)點110。節(jié)點110各自存儲可以在節(jié)點110之間共享的文件。節(jié)點110也可以托管可以使得其可由其它節(jié)點110使用的服務(wù)。節(jié)點110包括可以參與Chord網(wǎng)絡(luò)的任何節(jié)點。例如節(jié)點110可以包括計算機、電話等。節(jié)點110各自被配置成提供服務(wù)定位能力的各種功能??梢酝ㄟ^先結(jié)合圖I的示例Chord網(wǎng)絡(luò)100考慮Chord網(wǎng)絡(luò)的一般操作來更好地理解Chord網(wǎng)絡(luò)100在提供服務(wù)定位能力時的操作。在Chord中,Chord網(wǎng)絡(luò)的節(jié)點具有經(jīng)由基于分組的網(wǎng)絡(luò)(如比如IP網(wǎng)絡(luò)或者任何其它適當網(wǎng)絡(luò))的網(wǎng)絡(luò)連通性,并且Chord在下層基于分組的網(wǎng)絡(luò)之上形成覆蓋網(wǎng)絡(luò)。Chord網(wǎng)絡(luò)的節(jié)點以節(jié)點的節(jié)點ID為序在邏輯上布置于環(huán)中。使用散列函數(shù)來分配節(jié)點的節(jié)點ID。在Chord中,可以參與Chord網(wǎng)絡(luò)的節(jié)點數(shù)目基于Chord網(wǎng)絡(luò)的密鑰空間(地址空間)的大小。一般而言,密鑰空間為M位,其中M可以是任何適當數(shù)。例如使用160位實現(xiàn)方式來提供在Chord網(wǎng)絡(luò)中使用的典型密鑰空間從而使密鑰空間的大小等于216°或者 I. 45 X IO480 一致散列函數(shù)用來將輸入映射到160位的值(即將輸入映射到密鑰空間中)。來自散列函數(shù)的輸出均勻映射到密鑰空間上。將理解可以使用諸如安全散列算法(SHA-I)、消息摘要算法5(MD5)等任何適當散列函數(shù)。散列函數(shù)的輸出在映射到密鑰空間上時提供用來在邏輯上將節(jié)點布置于Chord網(wǎng)絡(luò)內(nèi)的節(jié)點ID的集合。在Chord中,活動節(jié)點(參與Chord網(wǎng)絡(luò)的現(xiàn)有節(jié)點)和不活動節(jié)點(可以加入Chord網(wǎng)絡(luò)的潛在節(jié)點)以節(jié)點的節(jié)點ID為序在邏輯上布置于環(huán)中。Chord以環(huán)繞增加節(jié)點ID值方向上設(shè)定環(huán)中的排序。在Chord網(wǎng)絡(luò)中,在Chord網(wǎng)絡(luò)的活動節(jié)點之間的連通是在環(huán)中的活動節(jié)點中的相鄰節(jié)點之間的邏輯連通(因為不活動節(jié)點未連接到Chord網(wǎng)絡(luò)并且因此僅為可以作為活動節(jié)點加入Chord網(wǎng)絡(luò)的潛在節(jié)點)。以這一方式,從Chord網(wǎng)絡(luò)中的目標活動節(jié)點的角度來看,在順時針方向上的在環(huán)上的下一活動節(jié)點是目標活動節(jié)點的后代,并且在逆時針方向上的在環(huán)上的下一活動節(jié)點是目標活動節(jié)點的前代。在圖I中,為了清楚而顯示活動節(jié)點和不活動節(jié)點。在圖I中,Chord網(wǎng)絡(luò)的密鑰空間為6位(或者以順時針方式從節(jié)點IDO到節(jié)點ID63連續(xù)編號的64個節(jié)點)在圖I中,節(jié)點 0、2-3、5-7、9、12、-13、16-24、26、29-30、32、34-35、37、41、43、45、49、51、53-54、56-58和62是活動的,并且剩余節(jié)點不活動。在圖I中,在Chord網(wǎng)絡(luò)100的活動節(jié)點之間的邏輯連通指示節(jié)點0連接到節(jié)點2、節(jié)點2連接到節(jié)點3、節(jié)點3連接到節(jié)點5并且以此類推而節(jié)點62連接到節(jié)點0以形成環(huán)。在Chord設(shè)定環(huán)中的排序時,使用以環(huán)繞(wraparound)順時針方向上增加值,節(jié)點2稱為節(jié)點0的后代,并且節(jié)點62稱為節(jié)點0的前代,節(jié)點3稱為節(jié)點2的后代,并且節(jié)點0稱為節(jié)點2的前代并且以此類推。如這里描述的那樣,Chord網(wǎng)絡(luò)支持文件共享,其中待共享的每個文件存儲于Chord網(wǎng)絡(luò)的活動節(jié)點中的一個或者多個節(jié)點上。在Chord中,使用用于標識Chord網(wǎng)絡(luò)的節(jié)點的相同散列函數(shù)將文件的文件名散列到用于標識Chord網(wǎng)絡(luò)的節(jié)點的相同密鑰空間中。來自散列文件名的散列輸出是用于文件的文件標識符。因此例如對于密鑰空間為160位的Chord網(wǎng)絡(luò),Chord網(wǎng)絡(luò)可以潛在地容納I. 45X IO48個文件。在Chord中,如果具有與文件的文件ID匹配的節(jié)點ID的節(jié)點活動,則文件存儲于該節(jié)點,而如果該節(jié)點不活動,則文件存儲于具有比文件ID更大的節(jié)點ID的第一活動節(jié)點。在圖I中,Chord網(wǎng)絡(luò)100可以容納將存儲如下的64個全部文件節(jié)點0存儲文件0和63 ;節(jié)點2存儲文件I和2 ;節(jié)點3存儲文件3 ;節(jié)點5存儲文件4和5 ;節(jié)點6存儲文件6 ;節(jié)點7存儲文件7 ;節(jié)點9存儲文件8和9 ;節(jié)點12存儲文件10、11和12 ;節(jié)點3存儲文件13,節(jié)點16存儲文件14、15和16 ;節(jié)點17存儲文件17 ;節(jié)點18存儲文件18 ;節(jié)點19存儲文件19 ;節(jié)點20存儲文件20 ;節(jié)點21存儲文件21 ;節(jié)點22存儲文件22 ;節(jié)點23存儲文件23 ;節(jié)點24存儲文件24 ;節(jié)點26存儲文件25和26 ;節(jié)點29存儲文件27、28和29 ;節(jié)點30存儲文件30 ;節(jié)點32存儲文件31和32 ;節(jié)點34存儲文件33和34 ;節(jié)點35存儲文件35 ;節(jié)點37存儲文件36和37 ;節(jié)點41存儲文件38、39、40和41 ;節(jié)點43存儲文件42和43 ;節(jié)點45存儲文件44和45 ;節(jié)點49存儲文件46、47、48和49 ;節(jié)點51存儲文件50和51 ;節(jié)點53存儲文件52和53 ;節(jié)點54存儲文件54 ;節(jié)點56存儲文件55和56 ;節(jié)點57存儲文件57 ;節(jié)點58存儲文件58 ;節(jié)點62存儲文件59、60、61和62。在ー個最基本實施方式中,任何給定文件的僅ー個副本存儲于Chord網(wǎng)絡(luò)中;然而可以運用不同方法以在Chord網(wǎng)絡(luò)內(nèi)存儲文件的多個副本(例如為了在節(jié)點故障的情況下的弾性、負荷平衡等)。例如在一個實施例中,可以通過使用商定的命名約定向文件的多個副本分配略有不同的文件名來在Chord網(wǎng)絡(luò)中存儲文件的多個版本。例如,如果文件的名稱為“abc”,則可以向代表相同文件的文件名添加擴展名(比如“-n”)。在這一例子中,文件的多個副本可以存儲于名稱“abc”、“abc-1 ”、“abc-2”等之下。以這一方式,由于用于“abc”文件的多個文件名稱不相同,所以不同文件名稱的散列將產(chǎn)生不同散列輸出并且因此產(chǎn)生不同文件ID、由此使文件的多個副本存儲于Chord網(wǎng)絡(luò)的不同節(jié)點中。例如在一個實施例中,可以通過使用多個獨立散列函數(shù)以使用文件名生成用于文件的多個文件ID (而不是上文描述的其中使用單個一致散列函數(shù)的實施方式)來在Chord網(wǎng)絡(luò)中存儲文件的多個版本。在這ー實施例中,向Chord網(wǎng)絡(luò)中播種文件的節(jié)點使用散列函數(shù)來確定文件的每個可能文件ID并且使用文件ID向Chord網(wǎng)絡(luò)中插入文件的多個副 本。在這ー實施例中,在Chord網(wǎng)絡(luò)中搜索文件的節(jié)點將確定文件的所有可能文件ID(通過使用每個散列函數(shù)來散列文件名)并且然后可以使用確定的文件ID來順序或者并行搜索文件。關(guān)于在Chord網(wǎng)絡(luò)中存儲文件的多個版本,將理解到,文件的多個版本可以用任何其它適當方式儲存于Chord網(wǎng)絡(luò)中。如這里描述的那樣,Chord使節(jié)點能夠共享文件。為了使Chord網(wǎng)絡(luò)的節(jié)點能夠共享文件,Chord網(wǎng)絡(luò)的每個節(jié)點需要能夠搜索并且最終確定所需文件的位置以便能夠獲得所需文件。
在Chord中,姆個節(jié)點維護搜索表。對于具有M位密鑰空間的Chord網(wǎng)絡(luò),姆個節(jié)點N將維護具有M個條目的捜索表,其中捜索表的條目稱為“指”。在用于節(jié)點N的捜索表中,第i個指指向環(huán)上的與N相距至少的第一節(jié)點。一般而言,除非另有指示,術(shù)語“第i個指”將用來表示搜索表的第i個條目指向的節(jié)點。例如在Chord網(wǎng)絡(luò)100中,節(jié)點0的第3個指為節(jié)點5。節(jié)點的捜索表共同提供高效全局捜索算法,通過該算法可以確定Chord網(wǎng)絡(luò)內(nèi)的對象位置。在圖I中,密鑰空間為6位,因此每個節(jié)點在它的搜索表中具有6個指。在圖I中,可以如下表I中所示代表節(jié)點0上的捜索表
~1121-1第一節(jié)點彡
1I2
22 2
345
489
51616
63232表I在Chord中,網(wǎng)絡(luò)是動態(tài)的。在新節(jié)點加入Chord網(wǎng)絡(luò)以及現(xiàn)有節(jié)點離開Chord網(wǎng)絡(luò)時,可能影響在Chord網(wǎng)絡(luò)的活動節(jié)點的搜索表。這樣,在Chord中,姆個活動節(jié)點K將定期更新它的關(guān)聯(lián)搜索表?;顒庸?jié)點K可以用任何適當方式更新它的搜索表。例如活動節(jié)點K可以通過搜索節(jié)點(K+2H)來更新它的搜索表,因為來自執(zhí)行這一捜索的結(jié)果將是用于搜索表的第i個指的值。將理解Chord網(wǎng)絡(luò)的活動節(jié)點可以用任何其它適當方式更新它們的搜索表。在Chord中,除了捜索表之外,每個節(jié)點也存儲環(huán)中的它的后代和它的前代的標識。這一信息比如在新節(jié)點加入網(wǎng)絡(luò)以及現(xiàn)有節(jié)點離開網(wǎng)絡(luò)時以及在節(jié)點從故障中恢復(fù)時用于環(huán)維護。在ー些Chord網(wǎng)絡(luò)中,為了防范有多個并發(fā)節(jié)點故障的情形,節(jié)點可以存儲環(huán)中的它的N個后代和它的N個前代的標識。在Chord中,Chord網(wǎng)絡(luò)的節(jié)點可以搜索并且從Chord網(wǎng)絡(luò)的其它節(jié)點獲得文件。Chord網(wǎng)絡(luò)支持搜索算法,通過該算法,節(jié)點可以搜索從Chord網(wǎng)絡(luò)中的其它節(jié)點可用的文件。可以使用圖I的Chord網(wǎng)絡(luò)100通過例子舉例說明Chord搜索算法的操作。在這一例子中,假設(shè)節(jié)點2想要在圖I的Chord網(wǎng)絡(luò)100中搜索文件O。節(jié)點2將訪問它的搜索表以便選擇其它節(jié)點中的將向其發(fā)送文件請求的ー個其它節(jié)點。從節(jié)點2的角度來看,由于目標文件(即文件0)的文件ID由于環(huán)繞而大于節(jié)點2 (即節(jié)點34)的最大指的值,所以節(jié)點2將向節(jié)點34發(fā)送請求節(jié)點34捜索文件0的文件請求。節(jié)點34從節(jié)點2接收文件請求。節(jié)點34由于它未存儲文件0所以將訪問它的搜索表以便選擇其它節(jié)點中的將向其轉(zhuǎn)發(fā)文件請求的ー個其它節(jié)點。在節(jié)點34中,搜索表包括指向節(jié)點35、37、40、43、51和2的六個指。由于文件0 的對象ID在第5個與第6個指(分別為節(jié)點51和節(jié)點2)之間,所以節(jié)點34向第5個指標識的節(jié)點(節(jié)點51)轉(zhuǎn)發(fā)搜索請求。節(jié)點51從節(jié)點34接收文件請求。節(jié)點51由于它未存儲文件0所以將訪問它的搜索表以便選擇其它節(jié)點中的將向其發(fā)送文件請求的ー個其它節(jié)點。在節(jié)點51中,搜索表包括指向節(jié)點53、53、56、62、3和19的六個指。由于文件0的對象ID在第4個與第5個指(分別為節(jié)點62和節(jié)點3)之間,所以節(jié)點51向第4個指標識的節(jié)點(節(jié)點62)轉(zhuǎn)發(fā)搜索請求。節(jié)點62從節(jié)點51接收文件請求。節(jié)點62由于它未存儲文件0所以將訪問它的搜索表以便選擇其它節(jié)點中的將向其發(fā)送文件請求的ー個其它節(jié)點。在節(jié)點62中,搜索表包括指向節(jié)點0、0、2、6、16和30的六個指。由于在第I個和第2個指二者中指示文件0的對象ID(節(jié)點0),所以節(jié)點62知道節(jié)點0是活動的并且向節(jié)點0轉(zhuǎn)發(fā)搜索請求。節(jié)點0響應(yīng)于接收搜索請求而直接或者通過中間節(jié)點(即節(jié)點62、節(jié)點51、節(jié)點34、然后為節(jié)點0)對節(jié)點2做出它具有文件0這樣的響應(yīng)。節(jié)點2然后可以從節(jié)點0直接獲得文件O。因此從這一例子清楚的是,在Chord中,Chord網(wǎng)絡(luò)中的所有節(jié)點配合支持Chord捜索算法。在Chord中,Chord網(wǎng)絡(luò)是動態(tài)的,因為節(jié)點可以在任何時間加入Chord網(wǎng)絡(luò)以及離開Chord網(wǎng)絡(luò)。當節(jié)點加入和離開Chord網(wǎng)絡(luò)時,在節(jié)點之間傳送文件。例如加入節(jié)點可以承擔用于至少存儲具有與加入節(jié)點的節(jié)點ID相同的文件ID的文件(并且潛在地也存儲其它文件)的職責,而離開節(jié)點可以向另一節(jié)點轉(zhuǎn)交用于存儲一個或者多個文件的職責。下文更加具體描述與加入和離開Chord網(wǎng)絡(luò)關(guān)聯(lián)的過程。在Chord加入過程中,當節(jié)點想要加入Chord網(wǎng)絡(luò)時,加入節(jié)點確定它的節(jié)點ID。加入節(jié)點通過將它的名稱散列成密鑰值來確定它的節(jié)點ID。例如,如果節(jié)點的名稱為node-xyzicompany-abc. com,則節(jié)點 ID 將是 SHA-1 的輸出(node-xyz@company-abc. com),其中為了簡化而假設(shè)散列函數(shù)為SHA-I (但是可以使用任何其它適當散列函數(shù))。在這一例子中,令如根據(jù)散列操作而確定的用于這ー節(jié)點的節(jié)點ID為K。在Chord加入過程中,加入節(jié)點K然后聯(lián)絡(luò)Chord網(wǎng)絡(luò)的活動節(jié)點(指示為初始化節(jié)點)。乍看起來,這ー初始化節(jié)點可以表現(xiàn)為集中服務(wù)器,然而情況并非如此,因為(a)初始化節(jié)點可以是Chord網(wǎng)絡(luò)中當前活動的任何節(jié)點(例如如果節(jié)點Kl和節(jié)點K2想要同時加入Chord網(wǎng)絡(luò),則它們可以并且將可能使用不同活動節(jié)點作為它們的相應(yīng)初始化節(jié)點以加入網(wǎng)絡(luò)),并且(b)初始化節(jié)點除了基本能力之外無需提供任何特殊能力(即它可以表現(xiàn)恰如Chord網(wǎng)絡(luò)中的任何其它節(jié)點ー樣)。節(jié)點K可以用任何適當方式獲得潛在候選初始化節(jié)點列表(例如從ー個或者多個先前捜索表、在接入節(jié)點K上的后代列表和/或前代列表、從在加入節(jié)點K內(nèi)管理配置的信息、從網(wǎng)站等)。在這一例子中,令初始化節(jié)點的節(jié)點ID為し在Chord加入過程中,加入節(jié)點K然后發(fā)送初始化節(jié)點L搜索加入節(jié)點K(即搜索具有ID = K的對象)的請求。在這一點,兩個事件可能出現(xiàn)(A)節(jié)點L用N值答復(fù)加入節(jié)點K。節(jié)點N將是所有活動節(jié)點之中的具有恰好比與加入節(jié)點K關(guān)聯(lián)的K更大的節(jié)點ID的節(jié)點。因此如果加入節(jié)點K要加入Chord網(wǎng)絡(luò),則節(jié)點N應(yīng)當是用于加入節(jié)點K的后代節(jié)點。節(jié)點K然后聯(lián)絡(luò)節(jié)點N并且向節(jié)點N詢問節(jié)點N的前代節(jié)點的標識。在這一例子中,另節(jié)點N的前代指示為節(jié)點N-。節(jié)點N向加入節(jié)點K提供N-值?;谶@一信息,節(jié)點K然后知道他應(yīng)當將在節(jié)點N與節(jié)點N-之間向Chord網(wǎng)絡(luò)中插入它本身。 (B)節(jié)點L用K值答復(fù)加入節(jié)點K。這意味著有已經(jīng)在Chord網(wǎng)絡(luò)內(nèi)活動的具有K這ー節(jié)點ID的另ー節(jié)點。盡管這一情況在多數(shù)Chord網(wǎng)絡(luò)中極為不可能(例如在作為160位密鑰空間的Chord網(wǎng)絡(luò)100中,這ー情形出現(xiàn)的可能性為I. 45X IO48之一),但是它還是有可能的??梢酝ㄟ^讓加入節(jié)點K略微改變它自己的名稱(例如添加時間戳、添加數(shù)等)并且使用新代碼名稱生成不同節(jié)點ID(指示為K’ )來解決這ー情形。加入節(jié)點K’可以通過向初始化節(jié)點L發(fā)送新搜索請求(即初始節(jié)點L搜索加入節(jié)點K’的請求)來再次開始處理。在Chord加入過程中,在確定用于加入節(jié)點K的插入點之后,執(zhí)行處理用于在Chord網(wǎng)絡(luò)內(nèi)插入加入節(jié)點。在節(jié)點K-(K的候選前代)與節(jié)點K+(K的候選后代)之間插入加入節(jié)點K,其中這時在節(jié)點K加入網(wǎng)絡(luò)之前,節(jié)點K+為節(jié)點K-的后代。加入節(jié)點K聯(lián)絡(luò)后代節(jié)點K+從而指示它想要加入Chord網(wǎng)絡(luò)。后代節(jié)點K+(I)向加入節(jié)點K通知它的前代為節(jié)點K-、(2)開始向加入節(jié)點K傳送節(jié)點K應(yīng)當具有職責的任何文件(即具有(k-)+l至K這些文件ID的文件)并且(3)向它的前代節(jié)點K-通知加入節(jié)點K在加入Chord網(wǎng)絡(luò)的過程中。在文件傳送完成之后,加入節(jié)點K建立與前代節(jié)點K-的連接。在建立在加入節(jié)點K與前代節(jié)點K-之間的連接之后,加入節(jié)點K向后代節(jié)點K+通知它已經(jīng)成功加入Chord網(wǎng)絡(luò)。后代節(jié)點K+然后斷開與前代節(jié)點K-的連接,并且后代節(jié)點K+和前代節(jié)點K- 二者更新它們的前代和后代列表。在Chord離開過程中,執(zhí)行處理用于使離開節(jié)點K能夠以受控方式離開Chord網(wǎng)絡(luò)。離開的節(jié)點K具有與之關(guān)聯(lián)的前代節(jié)點(指示為K-)和后代節(jié)點(指示為節(jié)點K+)。離開節(jié)點K聯(lián)絡(luò)前代節(jié)點K-和后代節(jié)點K+從而向二者通知它打算離開Chord網(wǎng)絡(luò)并且向兩個節(jié)點提供其它節(jié)點的標識。離開節(jié)點K然后向后代節(jié)點K+傳送離開節(jié)點K當前代表Chord網(wǎng)絡(luò)而存儲的所有文件(即具有在(K-)+l與K之間(包括K)的文件ID的所有文件)。在文件傳送完成之后,加入節(jié)點通過從前代節(jié)點K-和后代節(jié)點K+斷開來離開Chord網(wǎng)絡(luò)。節(jié)點K-和K+然后建立其間的連接(這可以由它們中的任ー個發(fā)起)。節(jié)點K-和K+也更新它們的前代和后代列表。除了使用將Chord加入過程和Chord離開過程用于實現(xiàn)對Chord網(wǎng)絡(luò)的動態(tài)改變之外,Chord也支持用于實現(xiàn)從節(jié)點故障中恢復(fù)的Chord恢復(fù)過程(即Chord離開和Chord加入過程并不用于從節(jié)點故障中恢復(fù))。Chord網(wǎng)絡(luò)的節(jié)點分別向它們的前代和后代節(jié)點定期發(fā)送心搏消息、由此使Chord網(wǎng)絡(luò)的節(jié)點能夠快速檢測節(jié)點故障。一般而言,來自節(jié)點的心搏消息將包括心搏消息從其始發(fā)的節(jié)點的前代和后代節(jié)點的標識。以這一方式,當節(jié)點從它的后代節(jié)點接收心搏消息時,它知道它的后代節(jié)點的后代節(jié)點的標識,并且因此當節(jié)點的后代故障時,節(jié)點可以發(fā)起連接到它的后代節(jié)點的后代節(jié)點并且維持Chord環(huán)。如上文所言,在一些Chord網(wǎng)絡(luò)中,節(jié)點維護k個前代和k個后代的列表。在這一情況下,Chord網(wǎng)絡(luò)可以從k-Ι個相繼節(jié)點的故障中恢復(fù)。在這一情況下,即使對于小的k值,k個相繼節(jié)點故障的可能性很小。在一些這樣的Chord網(wǎng)絡(luò)中,可以確定用于k的值為2Xlog2(L),其中L為網(wǎng)絡(luò)中的活動節(jié)點平均數(shù)目(即通常具有100,000個活動節(jié)點的Chord, k 將為 34)。上文描述的Chord恢復(fù)過程使Chord網(wǎng)絡(luò)能夠在節(jié)點故障的情況下被修復(fù),但是在故障的節(jié)點存儲的文件會丟失??梢杂枚喾N方式解決這一問題,上文描述了其中至少兩種方式。此外,在另一實施例中,通過使獲得文件的節(jié)點能夠自愿變成用于文件的種子節(jié)點來解決這一問題。對一個這樣的實施例的描述如下。文件原先由Chord網(wǎng)絡(luò)的成員引入Chord網(wǎng)絡(luò)中(其中成員節(jié)點稱為文件的種子節(jié)點)。種子節(jié)點獲得文件名的散列值(即文件ID)并且搜索具有與文件ID相同的節(jié)點ID的節(jié)點。種子節(jié)點將對Chord網(wǎng)絡(luò)中的具有與文件ID相等或者比文件ID更大的節(jié)點ID的第一活動節(jié)點定位。種子節(jié)點向定位的節(jié)點發(fā)送文件。然后Chord網(wǎng)絡(luò)的在以后時間獲得文件的其它節(jié)點可以自愿變成用于文件的種子節(jié)點。用于文件的種子節(jié)點將在Chord網(wǎng)絡(luò)中定期搜索該文件,并且如果種子節(jié)點對文件定位失敗,則它將如上文描述的那樣向適當節(jié)點發(fā)送文件。以這一方式,在Chord網(wǎng)絡(luò)中恢復(fù)“丟失的”文件。如這里描述的那樣,除了存儲和共享文件之外,Chord網(wǎng)絡(luò)也可以支持服務(wù)。盡管現(xiàn)有Chord網(wǎng)絡(luò)進支持文件共享服務(wù),但是Chord網(wǎng)絡(luò)可以最終除了文件共享服務(wù)之外還支持一個或者多個其它服務(wù)。服務(wù)可以從所有節(jié)點或者節(jié)點子集可用并且可以僅從小的節(jié)點子集可用。服務(wù)可以對于所有或者一些節(jié)點而言為強制的或者可以在自愿基礎(chǔ)上由節(jié)點支持。支持服務(wù)的節(jié)點可以在活動與不活動之間轉(zhuǎn)變。將理解與支持Chord網(wǎng)絡(luò)中的服務(wù)關(guān)聯(lián)的這些特征中的每個特征可以基于支持的服務(wù)類型、Chord網(wǎng)絡(luò)的實現(xiàn)方式、相似因素中的一個或者多個因素而變化。鑒于支持Chord網(wǎng)絡(luò)中的服務(wù)的可能性,服務(wù)定位能力使Chord網(wǎng)絡(luò)內(nèi)的每個節(jié)點能夠搜索特定服務(wù)并且對提供該服務(wù)的節(jié)點定位。 服務(wù)定位能力在用來對支持特定服務(wù)的節(jié)點定位時是有利的,這至少出于以下原因(I)它使用Chord網(wǎng)絡(luò)的節(jié)點上維護的現(xiàn)有搜索表(即在節(jié)點上無需新的搜索表);(2)搜索是分布式的(例如當搜索服務(wù)時,發(fā)起服務(wù)搜索的發(fā)起節(jié)點將發(fā)起至多M個消息(其中M為Chord網(wǎng)絡(luò)的密鑰空間的長度)并且因此將接收至多M個響應(yīng)消息,從而發(fā)起節(jié)點不會被壓倒性數(shù)目的響應(yīng)淹沒);并且(3)可以用有序方式分階段執(zhí)行服務(wù)搜索,其中每個階段可以被配置為具有高成功概率,從而使Chord網(wǎng)絡(luò)中交換的消息數(shù)目最小。服務(wù)定位能力也具有它能夠?qū)崿F(xiàn)高效廣播(這在許多應(yīng)用中有用)這樣的益處。可以位于Chord網(wǎng)絡(luò)中的服務(wù)包括適合用于由Chord網(wǎng)絡(luò)支持的任何服務(wù)。Chord網(wǎng)絡(luò)的節(jié)點可以支持的第一服務(wù)是“交叉環(huán)搜索”服務(wù),在該服務(wù)中,節(jié)點可以跨多個鏈接的Chord網(wǎng)絡(luò)搜索文件。一般而言,Chord網(wǎng)絡(luò)代表興趣團體,其中存儲和共享團體感興趣的文件。一個節(jié)點可以屬于多個Chord網(wǎng)絡(luò)。這一點根據(jù)如下理解是清楚的與可以加入Chord網(wǎng)絡(luò)的節(jié)點關(guān)聯(lián)的個別用戶可能具有不同興趣,從而可能的是至少一些節(jié)點將屬于Chord網(wǎng)絡(luò)的多個集合。當節(jié)點在Chord網(wǎng)絡(luò)中搜索文件時,搜索節(jié)點可能出于多種原因而在Chord網(wǎng)絡(luò)內(nèi)對文件定位失敗,這些原因比如是(a)文件從未存儲于網(wǎng)絡(luò)中(例如芯創(chuàng)建文件并且Chord網(wǎng)絡(luò)的節(jié)點都尚未獲取文件);(b)文件可能未令團體感興趣并且因此未存儲于該Chord網(wǎng)絡(luò)中;(c)由于Chord網(wǎng)絡(luò)中的每個節(jié)點對它可以代表Chord網(wǎng)絡(luò)而存儲的文件數(shù)目具有實際限制這樣的事實(例如在節(jié)點與它的前代之間的間隙太大并且因此節(jié)點不能存儲所有文件這樣的少見實例中;例如Chord網(wǎng)絡(luò)的策略通常指定可以不存儲更舊和/或更少流行的文件并且因此這些文件將在Chord網(wǎng)絡(luò)內(nèi)不可用);以及(d)節(jié)點故障可能使一些文件在Chord網(wǎng)絡(luò)內(nèi)不可用;以及(5)可以使文件在Chord網(wǎng)絡(luò)中不可用的任何其它原因。如果Chord網(wǎng)絡(luò)的搜索文件的節(jié)點屬于多個Chord網(wǎng)絡(luò),則節(jié)點可以在它屬于的每個Chord網(wǎng)絡(luò)中搜索文件。如果Chord網(wǎng)絡(luò)的節(jié)點不能在節(jié)點屬于的Chord網(wǎng)絡(luò)中對文件定位,則節(jié)點然后可以希望在一個或者多個其它Chord網(wǎng)絡(luò)中搜索文件。在這一,清況下,節(jié)點可以想要對Chord網(wǎng)絡(luò)中的連接到一個或者多個其它Chord網(wǎng)絡(luò)(即除了已經(jīng)搜索的Chord網(wǎng)絡(luò)之外)的其它節(jié)點定位。使用交叉環(huán)搜索服務(wù)來執(zhí)行將文件的搜索擴展到一個或者多個附加Chord網(wǎng)絡(luò),通過該服務(wù)對Chord網(wǎng)絡(luò)的屬于其它Chord網(wǎng)絡(luò)的節(jié)點進行定位以在跨多個Chord網(wǎng)絡(luò)搜索文件中使用。
Chord網(wǎng)絡(luò)的節(jié)點可以支持的第二服務(wù)是“翻譯”服務(wù)。翻譯服務(wù)可以例如在語言之間轉(zhuǎn)譯文檔。例如Chord網(wǎng)絡(luò)的節(jié)點可以想要從英語翻譯成德語的文檔,并且Chord網(wǎng)絡(luò)中的一些節(jié)點可以具有這一能力。類似地,Chord網(wǎng)絡(luò)的節(jié)點可以想要從意大利語翻譯成法語的文檔,并且Chord網(wǎng)絡(luò)中的一些節(jié)點可以具有這一能力。對于這一服務(wù)類型,節(jié)點可以嘗試并非僅對支持翻譯服務(wù)的節(jié)點進行定位,而是更具體對如下節(jié)點定位,這些節(jié)點支持搜索節(jié)點所需要的具體翻譯服務(wù)(即從一種語言翻譯成另一語言)。上文描述的示例范圍示范了除了文件共享之外還有可以由Chord網(wǎng)絡(luò)支持的許多不同服務(wù)。因此雖然這里在描述服務(wù)定位能力時為了簡潔而描述可以在Chord網(wǎng)絡(luò)中提供的服務(wù)的具體例子,但是將理解服務(wù)定位能力并不限于與任何特定服務(wù)一起使用。服務(wù)定位能力提供如下算法,通過該算法,Chord網(wǎng)絡(luò)上的節(jié)點可以對Chord網(wǎng)絡(luò)上的支持或者提供特定服務(wù)的一個或者多個其它節(jié)點定位。如這里描述的那樣,現(xiàn)有Chord網(wǎng)絡(luò)使Chord網(wǎng)絡(luò)上的節(jié)點能夠搜索Chord網(wǎng)絡(luò)上的其它節(jié)點或者搜索存儲于Chord網(wǎng)絡(luò)中的文件。這里描繪和描述的服務(wù)定位能力使Chord網(wǎng)絡(luò)能夠支持Chord網(wǎng)絡(luò)內(nèi)的新搜索類型,即服務(wù)位置搜索,通過該服務(wù)位置搜索,Chord網(wǎng)絡(luò)上的節(jié)點能夠搜索Chord網(wǎng)絡(luò)上的特定服務(wù)的位置(即搜索Chord網(wǎng)絡(luò)上的支持如在服務(wù)搜索請求中指定的特定服務(wù)的一個或者多個其它節(jié)點)。為了簡化對服務(wù)定位能力的描述,除非另外具體指示或者描述,術(shù)語“搜索”將在以下段落中用來指代服務(wù)位置搜索;然而由于服務(wù)定位能力利用Chord網(wǎng)絡(luò)的節(jié)點上的現(xiàn)有搜索表,所以在以下段落中使用的術(shù)語“搜索表”仍然指代在Chord網(wǎng)絡(luò)的節(jié)點維護的Chord “指”表。使用例子來描述、然后使用如下方法圖以更一般的術(shù)語呈現(xiàn)服務(wù)定位能力,這些方法圖示出了在Chord網(wǎng)絡(luò)的、參與在Chord網(wǎng)絡(luò)內(nèi)提供服務(wù)定位能力的不同節(jié)點執(zhí)行的處理。如圖I中描繪和前文描述的那樣,Chord網(wǎng)絡(luò)100具有6位密鑰空間(即支持64個地址),并且64個節(jié)點中的36個節(jié)點是活動的(即節(jié)點0、2、3、5、6、7、9、12、13、16、17、18、19、20、21、22、23、24、26、29、30、32、34、35、37、41、43、45、49、51、53、54、56、57、58、62)。如圖I中進一步描繪的那樣,活動節(jié)點的子集(即節(jié)點7、19、30和51)支持服務(wù),指示為服務(wù)A(作為圖示,使用比與未支持服務(wù)A的活動節(jié)點所使用的陰影更暗的陰影來指示支持服務(wù)A的每個活動節(jié)點)。作為例子,參照圖I,假設(shè)節(jié)點O想要對Chord網(wǎng)絡(luò)100的節(jié)點中的支持服務(wù)A的節(jié)點定位。為了簡化對例子的描述,假設(shè)初始化搜索的節(jié)點是節(jié)點O (將理解不失一般性,因為如果初始化搜索的節(jié)點是節(jié)點N則可以做出相同假設(shè)(因為可以通過僅將Chord網(wǎng)絡(luò)中的所有節(jié)點的節(jié)點ID減去N值來執(zhí)行相同過程))。如上文在表I (下文重復(fù))中所示,在節(jié)點O的搜索表具有包括以下信息的六個條目
權(quán)利要求
1.一種用于在包括多個節(jié)點的對等(P2P)網(wǎng)絡(luò)內(nèi)捜索服務(wù)的方法,所述方法包括 在所述P2P網(wǎng)絡(luò)的目標節(jié)點檢測對在所述P2P網(wǎng)絡(luò)內(nèi)捜索服務(wù)的請求,其中所述目標節(jié)點包括捜索表,所述搜索表包括標識所述P2P網(wǎng)絡(luò)的相應(yīng)多個節(jié)點的多個條目;以及朝著在所述搜索表中標識的節(jié)點中的至少ー個節(jié)點發(fā)起服務(wù)搜索請求,其中所述服務(wù)搜索請求是對標識所述P2P網(wǎng)絡(luò)的支持所述服務(wù)的至少ー個節(jié)點的請求,其中所述服務(wù)搜索請求包括指示所述服務(wù)的信息和用于由朝著其發(fā)起所述服務(wù)搜索請求的所述節(jié)點使用的搜索范圍。
2.根據(jù)權(quán)利要求I所述的方法,其中朝著所述搜索表的所有所述節(jié)點并行發(fā)起所述服務(wù)搜索請求。
3.根據(jù)權(quán)利要求I所述的方法,其中朝著所述搜索表的所述節(jié)點串行發(fā)起所述服務(wù)搜索請求直至標識支持所述服務(wù)的至少ー個節(jié)點或者確定所述P2P網(wǎng)絡(luò)的所述節(jié)點都未支持所述服務(wù)。
4.根據(jù)權(quán)利要求I所述的方法,其中朝著所述搜索表的所述節(jié)點的子集并行發(fā)起所述服務(wù)搜索請求,其中所述搜索表的所述節(jié)點的子集包括在所述搜索表的前K個條目中標識的節(jié)點。
5.根據(jù)權(quán)利要求4所述的方法,還包括 如果從所述搜索表的所述節(jié)點的子集的至少ー個節(jié)點接收肯定捜索響應(yīng),則發(fā)起針對所述服務(wù)的請求;以及 如果未從所述搜索表的所述節(jié)點的子集的至少ー個節(jié)點接收肯定捜索響應(yīng),則 朝著未在所述搜索表的所述節(jié)點的子集中的、與所述搜索表的下一條目關(guān)聯(lián)的下ー節(jié)點發(fā)起用于在所述P2P網(wǎng)絡(luò)內(nèi)對所述服務(wù)定位的后續(xù)服務(wù)搜索請求。
6.根據(jù)權(quán)利要求4所述的方法,還包括 使用所述P2P網(wǎng)絡(luò)的支持所述服務(wù)的節(jié)點的估計平均數(shù)目來標識所述搜索表的所述節(jié)點的子集。
7.根據(jù)權(quán)利要求I所述的方法,還包括 從所述捜索表的所述節(jié)點中的朝著其發(fā)起所述服務(wù)搜索請求的所述至少一個節(jié)點中的姆個節(jié)點接收搜索響應(yīng),所述搜索響應(yīng)指示所述節(jié)點是否支持所述服務(wù)或者已經(jīng)標識支持所述服務(wù)的另ー節(jié)點。
8.根據(jù)權(quán)利要求I所述的方法,還包括 當所述目標節(jié)點接收指示已經(jīng)對支持所述服務(wù)的節(jié)點定位的肯定搜索響應(yīng)時,從所述目標節(jié)點朝著支持所述服務(wù)的所述節(jié)點發(fā)起針對所述服務(wù)的請求。
9.一種用于在包括多個節(jié)點的對等(P2P)網(wǎng)絡(luò)內(nèi)捜索服務(wù)的裝置,所述裝置包括 存儲器,用于存儲搜索表,所述搜索表包括標識所述P2P網(wǎng)絡(luò)的相應(yīng)多個節(jié)點的多個條目;以及 處理器,配置用干 檢測對在所述P2P網(wǎng)絡(luò)內(nèi)捜索服務(wù)的請求;并且 朝著在所述搜索表中標識的節(jié)點中的至少ー個節(jié)點發(fā)起服務(wù)搜索請求,其中所述服務(wù)搜索請求是對標識所述P2P網(wǎng)絡(luò)的支持所述服務(wù)的至少ー個節(jié)點的請求,其中所述服務(wù)搜索請求包括指示所述服務(wù)的信息和用于由朝著其發(fā)起所述服務(wù)搜索請求的所述節(jié)點使用的搜索范圍。
10.一種用于在包括多個節(jié)點的對等(P2P)網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法,所述方法包括在所述P2P網(wǎng)絡(luò)的目標節(jié)點接收服務(wù)搜索請求,其中所述服務(wù)搜索請求包括指示請求的所述服務(wù)的信息和用于所述目標節(jié)點的捜索范圍; 使用指示請求的所述服務(wù)的所述信息的至少部分來確定所述目標節(jié)點是否支持所述服務(wù); 當確定所述目標節(jié)點支持所述服務(wù)時,從所述目標節(jié)點發(fā)起指示所述目標節(jié)點支持所述服務(wù)的服務(wù)搜索響應(yīng)消息;并且 當確定所述目標節(jié)點未支持所述服務(wù)吋,確定是否從所述目標節(jié)點朝著所述P2P網(wǎng)絡(luò)的至少ー個其它節(jié)點發(fā)起服務(wù)搜索請求。
全文摘要
提供一種用于在對等網(wǎng)絡(luò)(P2P)(比如樹環(huán)網(wǎng)絡(luò)或者其它P2P網(wǎng)絡(luò))中支持服務(wù)定位能力的能力。在一個實施例中,提供一種用于在P2P網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法。P2P網(wǎng)絡(luò)包括多個節(jié)點(包括執(zhí)行用于在P2P網(wǎng)絡(luò)內(nèi)對服務(wù)定位的方法的目標節(jié)點)。目標節(jié)點包括搜索表,搜索表包括標識P2P網(wǎng)絡(luò)的相應(yīng)多個節(jié)點的多個條目。該方法包括檢測對在P2P網(wǎng)絡(luò)內(nèi)搜索服務(wù)的請求并且朝著搜索表的節(jié)點中的至少一個節(jié)點發(fā)起服務(wù)搜索請求。服務(wù)搜索請求是對標識P2P網(wǎng)絡(luò)的支持服務(wù)的至少一個節(jié)點的請求。服務(wù)搜索請求包括指示服務(wù)的信息和用于由接收服務(wù)搜索請求的節(jié)點使用的搜索范圍。
文檔編號H04L29/08GK102668513SQ201080057597
公開日2012年9月12日 申請日期2010年12月1日 優(yōu)先權(quán)日2009年12月17日
發(fā)明者R·納加拉簡, T·P·丘 申請人:阿爾卡特朗訊