專利名稱:提供后繼列表的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及提供用于在端對端覆蓋網(wǎng)絡(luò)中進(jìn)行路由的后繼列表 的方法,以及執(zhí)行所述方法的網(wǎng)絡(luò)節(jié)點(diǎn)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
端對端(=P2P )覆蓋網(wǎng)絡(luò)用于多種應(yīng)用,諸如VoIP(例如,Skype ) 或者文件共享(例如,eMule) (VoIP-基于網(wǎng)際協(xié)議的語音)。通 過分布式架構(gòu)以及將數(shù)據(jù)存儲(chǔ)在集中提供和使用的資源上,實(shí)現(xiàn)了 高可伸縮性、自組織以及容錯(cuò)之類的特征。P2P網(wǎng)絡(luò)包括充當(dāng)對等 體的節(jié)點(diǎn),也即充當(dāng)網(wǎng)絡(luò)的客戶端和服務(wù)器二者。在下文描述中, 術(shù)語"節(jié)點(diǎn)"和"對等體,,將互換使用。網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)維護(hù)去往 其他節(jié)點(diǎn)的 一 個(gè)或多個(gè)邏輯鏈路,這些鏈路是按照覆蓋算法建立的, 并且用于消息傳輸。
現(xiàn)有技術(shù)P2P網(wǎng)絡(luò)基于特定于覆蓋(overlay specific )的算法來 構(gòu)建邏輯拓樸結(jié)構(gòu),這些算法與底層網(wǎng)絡(luò)基礎(chǔ)設(shè)施無關(guān)。每個(gè)節(jié)點(diǎn) 維護(hù)去往其他節(jié)點(diǎn)的 一 個(gè)或多個(gè)鏈路,其用于按照廣播方式的消息 路由(非結(jié)構(gòu)化覆蓋,例如Gnutella)或者基于ID方式的消息路由 (使用分布式哈希表(=DHT)的結(jié)構(gòu)化覆蓋,例如Chord) (ID= 標(biāo)識(shí)/標(biāo)識(shí)符)。某些系統(tǒng)使用具有非結(jié)構(gòu)化對等體群組的混合型架 構(gòu),并且這些群組在更大的拓樸中是結(jié)構(gòu)化的(例如,Skype)。
P 2 P網(wǎng)絡(luò)是完全非集中化的。參與到覆蓋中的對等體可以隨時(shí)直 接離開該網(wǎng)絡(luò)。在節(jié)點(diǎn)故障的情況下,為了維護(hù)P2P網(wǎng)絡(luò)的拓樸結(jié) 構(gòu),強(qiáng)制每個(gè)節(jié)點(diǎn)維護(hù)去往直接相鄰節(jié)點(diǎn)的多個(gè)鏈接。在Chord中, 例如每個(gè)對等體維護(hù)一個(gè)所謂的"冗余后繼列表",這使得即使一 個(gè)或多個(gè)后繼相鄰對等體強(qiáng)行離開P2P覆蓋,P2P環(huán)拓樸也能保持穩(wěn)定。
圖la示出了一個(gè)現(xiàn)有技術(shù)的結(jié)構(gòu)化P2P覆蓋網(wǎng)絡(luò)N,其包括多 個(gè)節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240。特 別地,圖la示出了 Chord環(huán)N。節(jié)點(diǎn)參考標(biāo)號(hào)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240還表示節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240的節(jié)點(diǎn)ID。在Chord中,節(jié)點(diǎn)維護(hù) 去往其前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn)的直接連接,這就形成了環(huán)拓樸。
在P2P Chord環(huán)N中,環(huán)拓樸結(jié)構(gòu)是通過使用后繼列表來保持 穩(wěn)定的,其中后繼列表也可以稱為冗余后繼列表(=RSL)。如圖la 所示,多個(gè)節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240中的第一節(jié)點(diǎn)200維護(hù)有后繼列表,其指定了位于第一節(jié)點(diǎn)200 之后的兩個(gè)后繼節(jié)點(diǎn)211、 223的標(biāo)識(shí)符。如果第一后繼節(jié)點(diǎn)211崩 潰并離開環(huán)(如圖lb所示),則第一節(jié)點(diǎn)200仍然具有去往后繼列 表中所列的其他后繼節(jié)點(diǎn)223的鏈路。借助于后繼列表中后繼結(jié)點(diǎn) 的冗余,可以維護(hù)端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)。如果與第一節(jié)點(diǎn)200 相鄰的多個(gè)隨后的后繼節(jié)點(diǎn)崩潰并且后繼列表沒有列出足夠的后繼 節(jié)點(diǎn)使得環(huán)能夠得以閉合,則無法維護(hù)拓樸結(jié)構(gòu),并且環(huán)會(huì)斷裂。 因此,環(huán)拓4卜的穩(wěn)定性依賴于后繼列表中所列的后繼節(jié)點(diǎn)的數(shù)量 后繼節(jié)點(diǎn)越多,環(huán)越穩(wěn)定。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種提供用于在端對端覆蓋網(wǎng)絡(luò)中進(jìn)行路 由的后繼列表的改進(jìn)方法。而且,本發(fā)明的目的是還提供執(zhí)行該改 進(jìn)方法的相應(yīng)網(wǎng)絡(luò)節(jié)點(diǎn)和相應(yīng)計(jì)算枳4呈序產(chǎn)品。
本發(fā)明的目的是通過一種提供用于在包括多個(gè)節(jié)點(diǎn)的端對端覆 蓋網(wǎng)絡(luò)中進(jìn)行路由的后繼列表的方法來實(shí)現(xiàn)的,其中所述后繼列表 指定在所述端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)中的第 一節(jié)點(diǎn)之后的至少兩個(gè)后繼節(jié)點(diǎn)的標(biāo)識(shí)符,所述方法包括步驟確 定所述后繼列表中所列的至少兩個(gè)后繼節(jié)點(diǎn)是否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于相同的物理硬件上, 則向所述后繼列表添加所述多個(gè)節(jié)點(diǎn)中的至少一個(gè)附加節(jié)點(diǎn)的標(biāo)識(shí) 符,所述至少一個(gè)附加節(jié)點(diǎn)在所述端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處 于所述至少兩個(gè)后繼節(jié)點(diǎn)之后,并且與所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行 于不同的物理硬件上。而且,本發(fā)明的目的還通過一種包括多個(gè)節(jié) 點(diǎn)的端對端覆蓋網(wǎng)絡(luò)中的第 一節(jié)點(diǎn)來實(shí)現(xiàn),所述第 一節(jié)點(diǎn)維護(hù)用于 在該端對端覆蓋網(wǎng)絡(luò)中進(jìn)行路由的后繼列表,其中所述后繼列表指 定在所述端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)中的第一 節(jié)點(diǎn)之后的至少兩個(gè)后繼節(jié)點(diǎn)的標(biāo)識(shí)符,其中所述第 一節(jié)點(diǎn)包括控 制單元,其適于確定所述后繼列表中所列的至少兩個(gè)后繼節(jié)點(diǎn)是 否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行 于相同的物理硬件上,則向所述后繼列表添加所述多個(gè)節(jié)點(diǎn)中至少 一個(gè)附加節(jié)點(diǎn)的標(biāo)識(shí)符,所述至少一個(gè)附加節(jié)點(diǎn)在所述端對端覆蓋 網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)之后,并且與所述至 少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于不同的物理硬件上。而且,本發(fā)明的目的還 通過一種用于提供用于在包括多個(gè)節(jié)點(diǎn)的端對端網(wǎng)絡(luò)中進(jìn)行路由的 后繼列表的計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn),其中所述后繼列表指定在所述 端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)中的第一節(jié)點(diǎn)之后 的至少兩個(gè)后繼節(jié)點(diǎn)的標(biāo)識(shí)符,其中當(dāng)所述計(jì)算機(jī)程序產(chǎn)品由所述 第一節(jié)點(diǎn)執(zhí)行時(shí),其執(zhí)行步驟確定所述后繼列表中所列的至少兩 個(gè)后繼節(jié)點(diǎn)是否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè) 后繼節(jié)點(diǎn)運(yùn)行于相同的物理硬件上,則向所述后繼列表添加所述多 個(gè)節(jié)點(diǎn)中的至少 一個(gè)附加節(jié)點(diǎn)的標(biāo)識(shí)符,所述至少 一個(gè)附加節(jié)點(diǎn)在 所述端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)之 后,并且與所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于不同的物理硬件上。
如果像現(xiàn)有技術(shù)系統(tǒng)中 一樣,冗余后繼列表僅僅基于特定于覆 蓋的節(jié)點(diǎn)ID,也即,不考慮底層物理硬件,則跟隨在按照后繼列表 進(jìn)行路由的節(jié)點(diǎn)之后的兩個(gè)后繼節(jié)點(diǎn)有可能位于相同的物理機(jī)器 (例如,個(gè)人計(jì)算機(jī) 上。如果該物理硬件發(fā)生故障,則這兩個(gè)后繼節(jié)點(diǎn)同時(shí)退出DHT,并且如果所述節(jié)點(diǎn)維護(hù)的后繼列表僅僅具有 去往在已發(fā)生故障的硬件上運(yùn)行的對等體的鏈路,則P2P覆蓋網(wǎng)絡(luò) 的拓樸結(jié)構(gòu)會(huì)斷裂。本發(fā)明解決了現(xiàn)有技術(shù)中遇到的這一問題。
本發(fā)明引入了 一種提供后繼列表的算法,該后繼列表基于覆蓋 拓樸細(xì)節(jié),但同時(shí)也考慮了 P2P覆蓋網(wǎng)絡(luò)的底層物理硬件。本發(fā)明 描述了一種網(wǎng)絡(luò)節(jié)點(diǎn)(=邏輯對等體),其將關(guān)于網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)行于其 上的物理硬件的信息包括到后繼列表以及基于該后繼列表的路由的 設(shè)置中。
在現(xiàn)有技術(shù)中,位于相同物理機(jī)器上的節(jié)點(diǎn)(例如,通過操作 系統(tǒng)的虛擬化,例如XEN、 VMware)對此并無了解,與此不同,本 發(fā)明提供了 一種用于提供后繼列表的系統(tǒng),其識(shí)別 一 個(gè)或多個(gè)網(wǎng)絡(luò) 節(jié)點(diǎn)運(yùn)行于其上的物理硬件,并且考慮關(guān)于該物理硬件的信,£、以用 于適當(dāng)?shù)娜哂嗪罄^列表。按照本發(fā)明,如果后繼列表僅僅列出了運(yùn) 行于相同物理硬件A上的后繼節(jié)點(diǎn),則將對該后繼列表進(jìn)行修改, 使得該后繼列表還包括運(yùn)行于不同硬件B之上的一個(gè)或多個(gè)后繼節(jié) 點(diǎn)。
本發(fā)明提供了一種提供后繼列表的安全方式。由于后繼列表是 一種防止節(jié)點(diǎn)故障情況下的拓樸結(jié)構(gòu)破壞的策略,因此按照本發(fā)明 的后繼列表考慮了潛在后繼節(jié)點(diǎn)和實(shí)際后繼結(jié)點(diǎn)的物理硬件,以確 保后繼節(jié)點(diǎn)不會(huì)運(yùn)行于相同的物理節(jié)點(diǎn)上?,F(xiàn)有的DHT算法沒有對 此加以考慮。特別地,在小型布置(100個(gè)節(jié)點(diǎn)以下)中,多個(gè)節(jié)點(diǎn) 被容納在相同的物理節(jié)點(diǎn)上(例如,在虛擬化環(huán)境中,例如VMware、 Xen...)。因此,在不考慮節(jié)點(diǎn)物理硬件的現(xiàn)有技術(shù)中,在多個(gè)對等 體發(fā)生故障的情況下,拓樸結(jié)構(gòu)很可能斷裂。本發(fā)明借助于提供考 慮了節(jié)點(diǎn)物理硬件的后繼列表而避免了這 一 風(fēng)險(xiǎn)。
由此,本發(fā)明對于相鄰節(jié)點(diǎn)被容納在相同物理機(jī)器上的概率增 高的小型布置特別有用。本發(fā)明借助于物理位置與覆蓋節(jié)點(diǎn)ID的映 射而避免了拓樸結(jié)構(gòu)的斷裂。
本發(fā)明維護(hù)虛擬環(huán)境中P2P技術(shù)的冗余。而且,本發(fā)明提供了更高的效率,因?yàn)楹罄^列表會(huì)自動(dòng)優(yōu)化以具有正確的長度。
與后繼列表基于覆蓋細(xì)節(jié)的當(dāng)前P2P覆蓋不同,本發(fā)明提供了 一種解決方案,其考慮了分布式物理硬件基礎(chǔ)設(shè)施之上的虛擬化解
決方案,以用于P2P網(wǎng)絡(luò)中的覆蓋拓樸創(chuàng)建以及冗余后繼列表的提供。
此外,本發(fā)明描述了對于基礎(chǔ)技術(shù)的改進(jìn),其可以有益地在諸 如服務(wù)器集群或者純P2P技術(shù)系統(tǒng)的分布式環(huán)境中使用。特別地, 此類技術(shù)可以包括在IETFP2P SIP (IETF-因特網(wǎng)工程任務(wù)組;SIP= 會(huì)話發(fā)起協(xié)議)中。
其他優(yōu)點(diǎn)通過從屬權(quán)利要求中記載的本發(fā)明的實(shí)施方式來實(shí)現(xiàn)。
按照本發(fā)明的優(yōu)選實(shí)施方式,如果所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行 于相同的物理硬件上,則將所述多個(gè)節(jié)點(diǎn)中的如下數(shù)目的附加節(jié)點(diǎn) 的標(biāo)識(shí)符添加至所述后繼列表,所述附加節(jié)點(diǎn)在端對端覆蓋網(wǎng)絡(luò)的 拓樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)之后,并且運(yùn)行在與所述至 少兩個(gè)后繼節(jié)點(diǎn)不同的物理硬件上,所述數(shù)目使得所述后繼列表中 所列的、運(yùn)行在不同物理硬件上的后繼節(jié)點(diǎn)的總數(shù)等于預(yù)定的冗余 因子。
按照優(yōu)選實(shí)施方式,當(dāng)加入節(jié)點(diǎn)在所述后繼列表中所列的后繼 節(jié)點(diǎn)之間加入所述端對端覆蓋網(wǎng)絡(luò)時(shí),將所述加入節(jié)點(diǎn)的標(biāo)識(shí)符添
加至所述后繼列表。確定加入節(jié)點(diǎn)運(yùn)行于其上的物理硬件。優(yōu)選地, 所述確定由第一節(jié)點(diǎn)執(zhí)行。如果所述后繼列表中所列的、運(yùn)行于不 同物理硬件上的后繼節(jié)點(diǎn)的總數(shù)等于預(yù)定的冗余因子,則將至少一 個(gè)附加節(jié)點(diǎn)的標(biāo)識(shí)符從所述后繼列表中移除,由此,所述總數(shù)中不 包括所述至少一個(gè)附加節(jié)點(diǎn),也即,在不對所述至少一個(gè)附加節(jié)點(diǎn) 計(jì)數(shù)的情況下確定所述總數(shù)。
第一節(jié)點(diǎn)可以檢測關(guān)于其本身硬件的信息以及關(guān)于其他網(wǎng)絡(luò)節(jié) 點(diǎn)的硬件的信息。該檢測的目標(biāo)是找到多個(gè)節(jié)點(diǎn)中的哪些節(jié)點(diǎn)運(yùn)行 于相同的物理硬件上。存在多種可能的方式來4全測物理石更件按照本發(fā)明的優(yōu)選實(shí)施方式,通過從所述至少兩個(gè)后繼節(jié)點(diǎn)的 平臺(tái)獲取信息,來確定所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的所述物 理硬件。優(yōu)選地,所述獲取由第一節(jié)點(diǎn)執(zhí)行。作為對確定所述至少 兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的物理硬件的補(bǔ)充或者替代,通過從所述 至少 一個(gè)附加節(jié)點(diǎn)的平臺(tái)獲取信息,來確定所述至少 一個(gè)附加節(jié)點(diǎn) 運(yùn)行于其上的物理硬件。優(yōu)選地,所述獲取由第一節(jié)點(diǎn)執(zhí)行。作為 對確定所述至少兩個(gè)后繼節(jié)點(diǎn)和所述至少一個(gè)附加節(jié)點(diǎn)分別運(yùn)行于 其上的物理硬件的補(bǔ)充或者替代,通過從加入節(jié)點(diǎn)的平臺(tái)獲取信息, 來確定所述加入節(jié)點(diǎn)運(yùn)行于其上的硬件。優(yōu)選地,所述獲取由第一 節(jié)點(diǎn)執(zhí)行。所述平臺(tái)可以是所述至少兩個(gè)后繼節(jié)點(diǎn)和/或所述至少一 個(gè)附加節(jié)點(diǎn)和/或所述加入節(jié)點(diǎn)運(yùn)行于其上的物理硬件,例如CPU(中 央處理單元)、計(jì)算機(jī)、網(wǎng)絡(luò)單元等。所述信息例如可以是與所述 至少兩個(gè)后繼節(jié)點(diǎn)和/或所述至少一個(gè)附加節(jié)點(diǎn)和/或所述加入節(jié)點(diǎn)
相關(guān)聯(lián)的CPUID, MAC地址、位置,IP地址、位置等(MAO媒體 訪問控制)。這包括了軟件應(yīng)用能夠在網(wǎng)絡(luò)節(jié)點(diǎn)的操作系統(tǒng)幫助下 找到的任何信息。例如,MAC地址通常是用來確定物理主才幾的相對 安全的方式,然而如果使用了硬件虛擬化技術(shù),情況可能就不是這樣了。
本發(fā)明修改了由Chord對等體執(zhí)行的復(fù)制方法,因此能夠改進(jìn) 物理節(jié)點(diǎn)故障情況下的數(shù)據(jù)可用性。本發(fā)明將每個(gè)對等體節(jié)點(diǎn)與標(biāo) 識(shí)容納該對等體節(jié)點(diǎn)的硬件平臺(tái)的硬件標(biāo)識(shí)符(例如,CPU ID、 MAC 地址等)進(jìn)行關(guān)聯(lián)。對等體節(jié)點(diǎn)使用硬件標(biāo)識(shí)符將其負(fù)責(zé)的資源集 合復(fù)制到運(yùn)行于不同硬件平臺(tái)上的至少 一 個(gè)對等體節(jié)點(diǎn),優(yōu)選地是 按照拓樸結(jié)構(gòu)(例如,按照端ID)最近的后繼。
按照本發(fā)明的另 一優(yōu)選實(shí)施方式,通過從與所述至少兩個(gè)后繼 節(jié)點(diǎn)相鏈接或者相關(guān)聯(lián)的外部管理單元獲取信息,來確定所述至少 兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的所述物理硬件。優(yōu)選地,所述獲取由第 一節(jié)點(diǎn)執(zhí)行。作為對確定所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的物理 硬件的補(bǔ)充或者替代,通過從與所述至少一個(gè)附加節(jié)點(diǎn)相鏈接或者相關(guān)聯(lián)的外部管理單元獲取信息,來確定所述至少一個(gè)附加節(jié)點(diǎn)運(yùn) 行于其上的物理硬件。優(yōu)選地,所述獲取由第一節(jié)點(diǎn)執(zhí)行。作為對 確定所述至少兩個(gè)后繼節(jié)點(diǎn)和所述至少一個(gè)附加節(jié)點(diǎn)分別運(yùn)4于于其 上的所述物理硬件的補(bǔ)充或者替代,通過從與所述加入節(jié)點(diǎn)相鏈接 或者相關(guān)聯(lián)的外部管理單元獲取信息,來確定所述加入節(jié)點(diǎn)運(yùn)行于 其上的硬件。優(yōu)選地,所述獲取由第一節(jié)點(diǎn)執(zhí)行。所述外部管理單
元可以是外部集群管理實(shí)體,其中術(shù)語"集群"將P2P覆蓋網(wǎng)絡(luò)表
示為網(wǎng)絡(luò)節(jié)點(diǎn)的集群。
如果外部集群管理實(shí)體可用于例如配置節(jié)點(diǎn)ID,則該外部集群 管理實(shí)體也可以提供關(guān)于集群物理拓樸的信息。外部集群管理實(shí)體 可以是中央注冊服務(wù)器、引導(dǎo)服務(wù)器或者網(wǎng)絡(luò)管理和監(jiān)控服務(wù)器。
如果軟件應(yīng)用無法檢測所需的硬件信息,則節(jié)點(diǎn)管理者對節(jié)點(diǎn) 的人工(預(yù))配置是一個(gè)解決方案。優(yōu)選地,通過從所述端對端網(wǎng) 絡(luò)的網(wǎng)絡(luò)運(yùn)營商和/或從所述至少兩個(gè)后繼節(jié)點(diǎn)的用戶處獲取相應(yīng)的 信息,來確定所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的所述物理硬件。 優(yōu)選地,所述獲取由第一節(jié)點(diǎn)執(zhí)行。作為對確定所述至少兩個(gè)后繼 節(jié)點(diǎn)運(yùn)行于其上的物理硬件的補(bǔ)充或者替代,通過從所述端對端網(wǎng) 絡(luò)的網(wǎng)絡(luò)運(yùn)營商和/或所述至少 一個(gè)附加節(jié)點(diǎn)的用戶處獲取相應(yīng)的信 息,來確定所述至少一個(gè)附加節(jié)點(diǎn)運(yùn)行于其上的物理硬件。優(yōu)選地, 所述荻取由第一節(jié)點(diǎn)執(zhí)行。作為對確定所述至少兩個(gè)后繼節(jié)點(diǎn)和所 述至少一個(gè)附加節(jié)點(diǎn)分別運(yùn)行于其上的物理硬件的補(bǔ)充或者替代, 通過從所述端對端網(wǎng)絡(luò)的網(wǎng)絡(luò)運(yùn)營商和/或所述加入節(jié)點(diǎn)的用戶處獲 取信息,來確定所述加入節(jié)點(diǎn)運(yùn)行于其上的硬件。
在優(yōu)選實(shí)施方式中,借助于與所述至少兩個(gè)后繼節(jié)點(diǎn)相關(guān)聯(lián)的 應(yīng)用層上的測量,來確定所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的所述 物理硬件。優(yōu)選地,所述確定由第一節(jié)點(diǎn)執(zhí)行。作為對確定所述至 少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的所述物理硬件的補(bǔ)充或者替代,借助 于與所述至少一個(gè)附加節(jié)點(diǎn)相關(guān)聯(lián)的應(yīng)用層上的測量,來確定所述 至少一個(gè)附加節(jié)點(diǎn)運(yùn)行于其上的物理資源。優(yōu)選地,所述確定由第一節(jié)點(diǎn)執(zhí)行。作為對確定所述至少兩個(gè)后繼節(jié)點(diǎn)和所述至少 一個(gè)附 加節(jié)點(diǎn)分別運(yùn)行于其上的所述物理硬件的補(bǔ)充或者替代,借助于與 所述加入節(jié)點(diǎn)相關(guān)聯(lián)的應(yīng)用層上的測量,來確定所述加入節(jié)點(diǎn)運(yùn)行 于其上的硬件。優(yōu)選地,所述確定由第一節(jié)點(diǎn)執(zhí)行。
所述應(yīng)用層上的測量可以是應(yīng)用級(jí)探測機(jī)制,諸如"ping"消息 交換。基于所述ping消息交換,節(jié)點(diǎn)可以根據(jù)連接延遲來估計(jì)其他 節(jié)點(diǎn)是否被容納在相同的設(shè)備上。而且,可以使用其他已知的方法 來估計(jì)節(jié)點(diǎn)是否在相同硬件上例如,網(wǎng)絡(luò)協(xié)作系統(tǒng)嘗試通過測量 某些中間節(jié)點(diǎn)延遲來獲得關(guān)于底層網(wǎng)絡(luò)的知識(shí),而無須對所有鏈路 進(jìn)行顯式測量。這允許當(dāng)節(jié)點(diǎn)在物理拓樸上鄰近時(shí)將其放置為在邏 輯覆蓋中靠近在一起。另一示例是Pastry,其通過測量到其他節(jié)點(diǎn)的 延遲來針對位置連續(xù)地調(diào)節(jié)其路由表。
優(yōu)選地,所述控制單元適于基于路由策略將端對端消息從所述 第一節(jié)點(diǎn)路由至后繼列表中的節(jié)點(diǎn)。如果后繼列表中的所述節(jié)點(diǎn)在 端對端覆蓋網(wǎng)絡(luò)中無法到達(dá)(例如,由于后繼列表的所述節(jié)點(diǎn)現(xiàn)在/ 過去運(yùn)行于其上的物理硬件的故障),所述控制單元適于根據(jù)路由 策略將端對端消息從所述第一節(jié)點(diǎn)路由至所述至少一個(gè)附加節(jié)點(diǎn)。
優(yōu)選地,基于路由策略將端對端消息從第 一 節(jié)點(diǎn)路由至所述至
少兩個(gè)后繼節(jié)點(diǎn)中的一個(gè)或多個(gè)節(jié)點(diǎn)。如果所述至少兩個(gè)后繼節(jié)點(diǎn)
中的所述一個(gè)或多個(gè)節(jié)點(diǎn)在端對端網(wǎng)絡(luò)中無法到達(dá)(例如,由于所
述至少兩個(gè)后繼節(jié)點(diǎn)現(xiàn)在/過去運(yùn)行于其上的物理硬件的故障),則
基于路由策略將該端對端消息從所述第一節(jié)點(diǎn)路由至所述至少一個(gè) 附加節(jié)點(diǎn)。
路由策略指定了按照什么順序來使用后繼列表中的條目。后繼 列表可以包括節(jié)點(diǎn)標(biāo)識(shí)符的序列。然后,路由策略可以規(guī)定第一 節(jié)點(diǎn)首先嘗試將P2P消息路由至后繼列表中的以下后繼節(jié)點(diǎn),該后 繼節(jié)點(diǎn)的標(biāo)識(shí)符是后繼列表中的第一標(biāo)識(shí)符。如果這沒有成功,也 即,如果P2P消息沒有到達(dá)其目的地,則第一節(jié)點(diǎn)嘗試將P2P消息 路由至以下至少一個(gè)附加節(jié)點(diǎn),該附加節(jié)點(diǎn)的標(biāo)識(shí)符是后繼列表中的第二標(biāo)識(shí)符,以此類推。
按照本發(fā)明,由于兩個(gè)不同的物理硬件單元不太可能同時(shí)發(fā)生 故障,因此當(dāng)所述至少兩個(gè)后繼節(jié)點(diǎn)無法到達(dá)時(shí),所述至少一個(gè)附 加節(jié)點(diǎn)將是可到達(dá)的,因?yàn)樗鲋辽?一個(gè)附加節(jié)點(diǎn)與所述至少兩個(gè) 后繼節(jié)點(diǎn)運(yùn)行在不同的物理硬件上。然而,如果需要較高的冗余, 則將所述多個(gè)節(jié)點(diǎn)中的如下數(shù)目的附加節(jié)點(diǎn)的標(biāo)識(shí)符添加至后繼列 表,其中所述附加節(jié)點(diǎn)在端對端覆蓋網(wǎng)絡(luò)的拓樸結(jié)構(gòu)上處于所述至 少兩個(gè)后繼節(jié)點(diǎn)之后,并且與所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行在不同的 物理硬件上,所述數(shù)目使得后繼列表中所列的、運(yùn)行于不同物理硬 件上的后繼節(jié)點(diǎn)的總數(shù)等于預(yù)定的冗余因子。
優(yōu)選地,本發(fā)明引入了一種動(dòng)態(tài)的冗余后繼列表算法,用于在 運(yùn)行于相同物理硬件上的兩個(gè)或更多隨后的后繼節(jié)點(diǎn)退出覆蓋的情
況下維護(hù)P2P覆蓋。該動(dòng)態(tài)冗余后繼列表算法提供如果RSL中的 一個(gè)或多個(gè)后繼例如通過虛擬化軟件而運(yùn)行在相同的硬件上,則向 冗余后繼列表添加后繼節(jié)點(diǎn)的標(biāo)識(shí)符。為了使虛擬化環(huán)境中的Chord 冗余因子與純P2P環(huán)境(其中每個(gè)對等體運(yùn)行于其自己的硬件上) 保持相同,對等體必須維護(hù)與純P2P環(huán)境中一樣多的、去往不同硬 件的冗余后繼。由此,相同的虛擬化平臺(tái)上運(yùn)行了多少對等體并不 重要。而且,動(dòng)態(tài)冗余后繼列表算法提供如果與RSL中所列的節(jié) 點(diǎn)運(yùn)行于不同硬件上的新對等體已經(jīng)加入到P2P網(wǎng)絡(luò)中,并且已經(jīng) 被添加到了冗余后繼列表,則將冗余后繼節(jié)點(diǎn)的標(biāo)識(shí)符從RSL中移 除。
通過結(jié)合附圖閱讀下文對目前的優(yōu)選實(shí)施方式的詳細(xì)描述,將 更好地理解本發(fā)明的這些以及其他特征和優(yōu)點(diǎn),其中
圖la和圖lb示出了一個(gè)現(xiàn)有技術(shù)的結(jié)構(gòu)化P2P覆蓋網(wǎng)絡(luò)N, 其中圖lb示出了第一后繼節(jié)點(diǎn)崩潰并離開環(huán)的情況;
圖2示出了按照本發(fā)明實(shí)施方式的P2P覆蓋網(wǎng)絡(luò);圖3a和圖3b示出了圖2中所示的P2P覆蓋網(wǎng)絡(luò)中的物理硬件
的故障;
圖4a和圖4b示出了按照本發(fā)明實(shí)施方式的、圖2中所示P2P 覆蓋網(wǎng)絡(luò)中的添加算法;以及
圖5a和圖5b示出了按照本發(fā)明實(shí)施方式的、圖2中所示的P2P
覆蓋網(wǎng)絡(luò)中的移除算法。
具體實(shí)施例方式
圖2示出了按照本發(fā)明實(shí)施方式的P2P覆蓋網(wǎng)絡(luò)。具體地,圖2 示出了按照本發(fā)明實(shí)施方式的Chord環(huán)N。 Chord環(huán)N包括多個(gè)節(jié) 點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240,其中參 考標(biāo)號(hào)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240還表 示節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240的節(jié) 點(diǎn)ID。節(jié)點(diǎn)的節(jié)點(diǎn)ID是由特定于覆蓋的DHT算法指派的,并且例 如可以基于注冊服務(wù)器或者由節(jié)點(diǎn)本身隨機(jī)挑選。每個(gè)節(jié)點(diǎn)表示 Chord環(huán)N的一個(gè)對等體
在該方法的第一步驟中,第一節(jié)點(diǎn)200確定該第一節(jié)點(diǎn)200所 維護(hù)的后繼列表中包含的后繼節(jié)點(diǎn)運(yùn)行于其上的物理硬件。假設(shè)第 一節(jié)點(diǎn)200維護(hù)具有兩個(gè)條目的后繼列表L: 一個(gè)條目是節(jié)點(diǎn)211 的標(biāo)識(shí)符(例如,節(jié)點(diǎn)ID),另一條目是節(jié)點(diǎn)223的標(biāo)識(shí)符(例如, 節(jié)點(diǎn)ID)。
第一節(jié)點(diǎn)200包括一個(gè)或多個(gè)相互鏈接的計(jì)算機(jī),也即,硬件 平臺(tái)、基于該硬件平臺(tái)的軟件平臺(tái)、以及由該軟件平臺(tái)和硬件平臺(tái) 構(gòu)成的系統(tǒng)平臺(tái)執(zhí)行的多個(gè)應(yīng)用程序。第一節(jié)點(diǎn)200的功能通過這 些應(yīng)用程序的執(zhí)行來提供。應(yīng)用程序或者這些應(yīng)用程序的選定部分 構(gòu)成了計(jì)算機(jī)軟件產(chǎn)品,當(dāng)該計(jì)算機(jī)軟件產(chǎn)品在系統(tǒng)平臺(tái)上執(zhí)行時(shí), 其提供如下所述的路由服務(wù)。此外,這種計(jì)算機(jī)軟件產(chǎn)品包含存儲(chǔ) 介質(zhì),其存儲(chǔ)這些應(yīng)用程序或者應(yīng)用程序的所述選定部分。
從功能的角度看,第一節(jié)點(diǎn)200包括用于控制第一節(jié)點(diǎn)功能的控制單元;用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)介質(zhì);以及用于與其他節(jié)點(diǎn)交換 信息的接口 。
為了確定物理硬件,第一節(jié)點(diǎn)200可以使用有助于標(biāo)識(shí)后繼節(jié) 點(diǎn)211、 223運(yùn)行于其上的物理硬件的任何可用信息。第一節(jié)點(diǎn)200 可以通過從后繼節(jié)點(diǎn)211、 223的平臺(tái)收集信息(例如,CPUID, MAC地址、位置,IP地址等)來確定關(guān)于后繼節(jié)點(diǎn)211、 223運(yùn)4亍 于其上的物理硬件的信息。繼而,第一節(jié)點(diǎn)200可以從Chord環(huán)N 的其他節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 240收集相應(yīng)的信息, 并對收集的這些信息進(jìn)行比較。
除了可以從后繼節(jié)點(diǎn)211、 223獲得的信息(例如,CPUID, MAC地址、位置,IP...)之外,第一節(jié)點(diǎn)200可以使用從外部管理 實(shí)體獲取的信息,該信息是借助于后繼節(jié)點(diǎn)211、 223運(yùn)行于其上的 硬件的用戶所執(zhí)行的人工配置而提供的,借助于應(yīng)用層測量而收集 的,等等。同樣,其他節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 211、 223、 240中的每一個(gè)可以使用有助于識(shí)別其運(yùn)行于其上的物理硬件 的任何可用信息。其他節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 211、 223、 240中的每一個(gè)可以將已收集的關(guān)于各自物理硬件的信息傳送 至第一節(jié)點(diǎn)200。第一節(jié)點(diǎn)200也可以訪問其他節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 211、 223、 240運(yùn)行于其上的物理硬件,并/人其他 節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 211、 223、 240收集關(guān)于它 們各自物理硬件的信息。
圖2中示出了對物理硬件進(jìn)行分類的步驟的結(jié)果,其示出了硬 件分類,并通過節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240的不同圖標(biāo)形狀將其示出。每個(gè)形狀表示另一物理機(jī)器。 這意味著,節(jié)點(diǎn)O、 50、 140、 211和223運(yùn)行于第一機(jī)器上。節(jié)點(diǎn) 20、 112、 179和240運(yùn)行于第二機(jī)器上。節(jié)點(diǎn)87和200運(yùn)行于第三 機(jī)器上。
圖3a和圖3b中示出了現(xiàn)有技術(shù)中會(huì)遇到、并由本發(fā)明解決的問 題。如圖3a中的圓圏所示,節(jié)點(diǎn)211和節(jié)點(diǎn)223 二者運(yùn)行于相同的
16物理硬件上(例如通過l喿作系統(tǒng)的虛擬化,例如XEN、 VMware)。 圖3b示出了后繼列表L中包含的兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于其上的物理硬 件的故障。節(jié)點(diǎn)211和223運(yùn)行在相同的機(jī)器上。在圖3b中,該機(jī) 器崩潰,并且節(jié)點(diǎn)211和223退出環(huán)N。因此,節(jié)點(diǎn)200沒有去往 激活的對等體的鏈路以維護(hù)環(huán)拓樸。在這種情況下,第一節(jié)點(diǎn)200 喪失與任何后繼節(jié)點(diǎn)的連接,因?yàn)橛捎谟布收希c第一節(jié)點(diǎn)200 相關(guān)聯(lián)的RSL中保持的后繼節(jié)點(diǎn)211、 223 二者都不可到達(dá)。
圖4a示出了按照本發(fā)明的用于動(dòng)態(tài)冗余后繼列表自適應(yīng)的方 法。節(jié)點(diǎn)O、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240識(shí) 別它們運(yùn)行于其上的物理硬件。第一節(jié)點(diǎn)200引入動(dòng)態(tài)冗余后繼列 表算法,以便在容納于相同物理硬件上的后續(xù)相鄰對等體211、 223
崩潰的情況下保持P2P覆蓋的穩(wěn)定。由此,該算法包括兩個(gè)子算法
添加算法和移除算法。
添加算法在RSL中所列的多個(gè)后續(xù)相鄰對等體運(yùn)行于相同物理 機(jī)器上的情況下向RSL添加對等體。
如圖4a所示,第一節(jié)點(diǎn)200向該第一節(jié)點(diǎn)200的后繼列表L添 加附加節(jié)點(diǎn)240,從而擴(kuò)展后繼列表L。該添加的原因在于兩個(gè)后 繼節(jié)點(diǎn)211、 223 (目前,其標(biāo)識(shí)符是第一節(jié)點(diǎn)200的后繼列表L中 的僅有條目)運(yùn)行于相同的物理機(jī)器上。因此,如果這兩個(gè)后繼節(jié) 點(diǎn)211、223運(yùn)行于其上的機(jī)器崩潰,則第一節(jié)點(diǎn)200在第一節(jié)點(diǎn)200 的后繼列表L中仍然保留有節(jié)點(diǎn)240,這使得第一節(jié)點(diǎn)200能夠閉合 網(wǎng)絡(luò)N的環(huán)拓樸。
為了得到與每個(gè)對等體在其自己的硬件上運(yùn)行的常規(guī)Chord環(huán) 境相同的冗余因子,對等體必須向后繼列表添加與冗余因子指定的 相同數(shù)量的、運(yùn)行于不同硬件上的對等體。
圖4b示出了 Chord環(huán)N包括多個(gè)節(jié)點(diǎn)0、 20、 50、 87、 112、 140、 179、 200、 211、 219、 223、 240和249的情形。假設(shè)以下情況按 照本發(fā)明的方法實(shí)現(xiàn)冗余因子3。 Chord冗余因子3需要在后繼列表 L中包含5個(gè)節(jié)點(diǎn)211、 219、 223、 240和249,因?yàn)楣?jié)點(diǎn)211和223運(yùn)行于相同的物理機(jī)器上,且節(jié)點(diǎn)219和240也運(yùn)行于相同的物理
機(jī)器上。
移除算法在不再需要先前添加的附加節(jié)點(diǎn)的情況下從RSL中移 除對等體。如果節(jié)點(diǎn)加入或者離開RSL所覆蓋的ID空間,情況就是這樣。
圖5a示出了以下情形第一節(jié)點(diǎn)200維護(hù)后繼列表L,其包含 兩個(gè)初始后繼節(jié)點(diǎn)211和223,并且稍后添加了附加節(jié)點(diǎn)240。兩個(gè) 初始后繼節(jié)點(diǎn)211和223運(yùn)行于其上的物理硬件是相同的。附加節(jié) 點(diǎn)240運(yùn)行于其上的物理硬件不同于兩個(gè)初始后繼節(jié)點(diǎn)211和223 運(yùn)行于其上的物理硬件。
加入節(jié)點(diǎn)220在后繼列表L中所列的后繼節(jié)點(diǎn)211和223之間 加入端對端覆蓋網(wǎng)絡(luò)N。加入節(jié)點(diǎn)220的標(biāo)識(shí)符(例如,節(jié)點(diǎn)ID 220) 被添加到第一節(jié)點(diǎn)200的后繼列表。優(yōu)選地,第一節(jié)點(diǎn)200執(zhí)行對 其后繼列表L的修改。
第一節(jié)點(diǎn)200確定加入節(jié)點(diǎn)220運(yùn)行于其上的物理硬件。第一 節(jié)點(diǎn)200檢測到加入節(jié)點(diǎn)220運(yùn)行于其上的物理硬件不同于兩個(gè) 初始后繼節(jié)點(diǎn)211和223運(yùn)行于其上的物理硬件,并且不同于附加 節(jié)點(diǎn)240運(yùn)行于其上的物理硬件。
由于路由策略指定冗余因子2已經(jīng)足夠,因此第一節(jié)點(diǎn)200 將附加節(jié)點(diǎn)240的標(biāo)識(shí)符從后繼列表L中移除。繼而,后繼列表L 中所列的、運(yùn)行于不同物理硬件上的后繼節(jié)點(diǎn)211、 220的總數(shù)(沒 有對所述至少一個(gè)附加節(jié)點(diǎn)240計(jì)數(shù),其標(biāo)識(shí)符已經(jīng)從后繼列表L 中移除)等于預(yù)定的冗余因子2。
權(quán)利要求
1.一種提供用于在包括多個(gè)節(jié)點(diǎn)(0、20、50、87、112、140、179、200、211、223、240)的端對端覆蓋網(wǎng)絡(luò)(N)中進(jìn)行路由的后繼列表(L)的方法,其中所述后繼列表(L)指定在所述端對端覆蓋網(wǎng)絡(luò)(N)的拓?fù)浣Y(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)(0、20、50、87、112、140、179、200、211、223、240)中的第一節(jié)點(diǎn)(200)之后的至少兩個(gè)后繼節(jié)點(diǎn)(211、223)的標(biāo)識(shí)符,所述方法包括步驟確定所述后繼列表(L)中列出的所述至少兩個(gè)后繼節(jié)點(diǎn)(211、223)是否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè)后繼節(jié)點(diǎn)(211、223)運(yùn)行于相同的物理硬件上,則向所述后繼列表(L)添加所述多個(gè)節(jié)點(diǎn)(0、20、50、87、112、140、179、200、211、223、240)中的至少一個(gè)附加節(jié)點(diǎn)(240)的標(biāo)識(shí)符,所述至少一個(gè)附加節(jié)點(diǎn)(240)在所述端對端覆蓋網(wǎng)絡(luò)(N)的拓?fù)浣Y(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)(211、223)之后,并且與所述至少兩個(gè)后繼節(jié)點(diǎn)(211、223)運(yùn)行在不同的物理硬件上。
2. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 如果所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行于相同的物理硬件上,則向所述后繼列表(L)添加所述多個(gè)節(jié)點(diǎn)(0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240)中的如下數(shù)目的附加節(jié)點(diǎn)(240) 的標(biāo)識(shí)符,所述附加節(jié)點(diǎn)(240)在所述端對端覆蓋網(wǎng)絡(luò)(N)的拓 樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )之后,并且與所 述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行在不同的物理硬件上,所述 數(shù)目使得所述后繼列表(L)中列出的、運(yùn)行于不同物理硬件上的后 繼節(jié)點(diǎn)的總數(shù)等于預(yù)定的冗余因子。
3. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 當(dāng)加入節(jié)點(diǎn)(220)在所述后繼列表(L)中列出的所述后繼節(jié)點(diǎn)之間加入所述端對端覆蓋網(wǎng)絡(luò)(N)時(shí),將所述加入節(jié)點(diǎn)(220) 的標(biāo)識(shí)符添加到所述后繼列表(L);確定所述加入節(jié)點(diǎn)(220 )運(yùn)行于其上的物理硬件;以及 如果除所述至少一個(gè)附加節(jié)點(diǎn)(240)之外,在所述后繼列表(L) 中列出的、運(yùn)行于不同物理硬件上的后繼節(jié)點(diǎn)的總數(shù)等于預(yù)定的冗 余因子,則將所述至少一個(gè)附加節(jié)點(diǎn)(240)的標(biāo)識(shí)符從所述后繼列 表(L)中移除。
4. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 分別通過從所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 233 )和/或所述至少一個(gè)附加節(jié)點(diǎn)(240)的平臺(tái)獲取信息,來確定所述至少兩個(gè)后繼節(jié) 點(diǎn)(211、 223 )和/或所述至少一個(gè)附加節(jié)點(diǎn)(240)運(yùn)行于其上的物 理硬件。
5. 如權(quán)利要求3的方法,其特征在于,所述方法還包括步驟 通過從所述加入節(jié)點(diǎn)(220)的平臺(tái)獲取信息,來確定所述加入節(jié)點(diǎn)(220)運(yùn)行于其上的物理硬件。
6. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 分別通過從與所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )和/或所述至少一個(gè)附加節(jié)點(diǎn)(240)相鏈接的外部管理單元獲取信息,來確定所 述至少兩個(gè)后繼節(jié)點(diǎn)(211 、 223 )和/或所述至少 一 個(gè)附加節(jié)點(diǎn)(240 ) 運(yùn)行于其上的物理硬件。
7. 如權(quán)利要求3的方法,其特征在于,所述方法還包括步驟 通過從與所述加入節(jié)點(diǎn)(220 )相鏈接的外部管理單元獲取信息,來確定所述加入節(jié)點(diǎn)(220)運(yùn)行于其上的物理硬件。
8. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 分別借助于從所述端對端網(wǎng)絡(luò)(N )的網(wǎng)絡(luò)運(yùn)營商和/或所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )和/或所述至少一個(gè)附加節(jié)點(diǎn)(240)的用 戶處獲取相應(yīng)的信息,來確定所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 ) 和/或所述至少一個(gè)附加節(jié)點(diǎn)(240)運(yùn)行于其上的物理硬件。
9. 如權(quán)利要求3的方法,其特征在于,所述方法還包括步驟 借助于從所述端對端網(wǎng)絡(luò)(N )的網(wǎng)絡(luò)運(yùn)營商和/或所述加入節(jié)點(diǎn)(220)的用戶處獲取相應(yīng)的信息,來確定所述加入節(jié)點(diǎn)(220)運(yùn)行于其上的物理硬件。
10. 如權(quán)利要求l的方法,其特征在于,所述方法還包括步驟 借助于所述端對端覆蓋網(wǎng)絡(luò)(N)的應(yīng)用層上的延遲測量,來確定所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )和/或所述至少一個(gè)附加節(jié)點(diǎn) (240)運(yùn)行于其上的物理硬件。
11. 如權(quán)利要求3的方法,其特征在于,所述方法還包括步驟 借助于所述端對端覆蓋網(wǎng)絡(luò)(N)的應(yīng)用層上的延遲測量,來確定所述加入節(jié)點(diǎn)(220)運(yùn)行于其上的物理>曖件。
12. —種包括多個(gè)節(jié)點(diǎn)(0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240)的端對端覆蓋網(wǎng)絡(luò)(N)中的第一節(jié)點(diǎn)(200),所 述第一節(jié)點(diǎn)(200)維護(hù)用于在所述端對端覆蓋網(wǎng)絡(luò)(N)中進(jìn)行路 由的后繼列表(L),其中所述后繼列表(L)指定在所述端對端覆 蓋網(wǎng)絡(luò)(N)的拓樸結(jié)構(gòu)上處于所述第一節(jié)點(diǎn)(200)之后的至少兩 個(gè)后繼節(jié)點(diǎn)(211、 223 )的標(biāo)識(shí)符,其中所述第一節(jié)點(diǎn)(200)包括 控制單元,其適于確定所述后繼列表(L)中列出的所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )是否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行于相同的物理硬件 上,則向所述后繼列表(L)添加所述多個(gè)節(jié)點(diǎn)(0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240)中的至少一個(gè)附加節(jié)點(diǎn)(240) 的標(biāo)識(shí)符,所述至少一個(gè)附加節(jié)點(diǎn)(240)在所述端對端覆蓋網(wǎng)絡(luò)(N) 的拓樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )之后,并且 與所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行在不同的物理硬件上。
13. 如權(quán)利要求12的第一節(jié)點(diǎn)(200),其特征在于,所述控制 單元還適于基于路由策略將端對端消息從所述第一節(jié)點(diǎn)(200)路由至所述 后繼列表(L)的節(jié)點(diǎn);以及如果所述后繼列表(L)的所述節(jié)點(diǎn)在所述端對端覆蓋網(wǎng)絡(luò)(N) 中無法到達(dá),則基于所述路由策略將所述端對端消息從所述第 一 節(jié)點(diǎn)(200)路由至所述至少一個(gè)附加節(jié)點(diǎn)(240)。
14. 一種計(jì)算機(jī)程序產(chǎn)品,用于提供用于在包括多個(gè)節(jié)點(diǎn)(0、,20、 50、 87、 112、 140、 179、 200、 211、 223、 240)的端對端覆蓋 網(wǎng)絡(luò)(N)中進(jìn)行路由的后繼列表(L),其中所述后繼列表(L) 指定在所述端對端覆蓋網(wǎng)絡(luò)(N)的拓樸結(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)(O、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240)中的第一節(jié)點(diǎn) (200)之后的至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )的標(biāo)識(shí)符,當(dāng)所述計(jì) 算機(jī)程序產(chǎn)品由所述第一節(jié)點(diǎn)(211)執(zhí)行時(shí),其執(zhí)行步驟確定所述后繼列表(L)中所列的所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )是否運(yùn)行于相同的物理硬件上;以及如果所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行于相同的物理硬件 上,則向所述后繼列表(L)添加所述多個(gè)節(jié)點(diǎn)(0、 20、 50、 87、 112、 140、 179、 200、 211、 223、 240)中的至少一個(gè)附加節(jié)點(diǎn)(240) 的標(biāo)識(shí)符,所述至少 一 個(gè)附加節(jié)點(diǎn)(240 )在所述端對端覆蓋網(wǎng)絡(luò)(N ) 的拓樸結(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )之后,并且 與所述至少兩個(gè)后繼節(jié)點(diǎn)(211、 223 )運(yùn)行在不同的物理硬件上。
全文摘要
本發(fā)明涉及一種提供用于在端對端覆蓋網(wǎng)絡(luò)中進(jìn)行路由的后繼列表的方法,以及執(zhí)行所述方法的網(wǎng)絡(luò)節(jié)點(diǎn)和計(jì)算機(jī)程序產(chǎn)品。端對端覆蓋網(wǎng)絡(luò)包括多個(gè)節(jié)點(diǎn)。后繼列表指定在端對端覆蓋網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)上處于所述多個(gè)節(jié)點(diǎn)中的第一節(jié)點(diǎn)之后的至少兩個(gè)后繼節(jié)點(diǎn)的標(biāo)識(shí)符。確定后繼列表中列出的所述至少兩個(gè)后繼節(jié)點(diǎn)是否運(yùn)行于相同的物理硬件上。如果所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行于相同的物理硬件上,則向所述后繼列表添加所述多個(gè)節(jié)點(diǎn)中的至少一個(gè)附加節(jié)點(diǎn)的標(biāo)識(shí)符,所述至少一個(gè)附加節(jié)點(diǎn)在所述端對端覆蓋網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)上處于所述至少兩個(gè)后繼節(jié)點(diǎn)之后,并且與所述至少兩個(gè)后繼節(jié)點(diǎn)運(yùn)行在不同的物理硬件上。
文檔編號(hào)H04L12/18GK101616013SQ200910150968
公開日2009年12月30日 申請日期2009年6月29日 優(yōu)先權(quán)日2008年6月27日
發(fā)明者M·湯姆蘇, N·施萬, T·施特勞斯 申請人:阿爾卡特朗訊