專利名稱:使用節(jié)點(diǎn)的位置信息選擇網(wǎng)絡(luò)中靠近另一個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及網(wǎng)絡(luò)。更具體地,本發(fā)明涉及在網(wǎng)絡(luò)中使用節(jié)點(diǎn)的位置信息。
背景技術(shù):
隨著因特網(wǎng)在大小和普及方面相當(dāng)大地發(fā)展,它正在用于為用戶提供各種業(yè)務(wù)和應(yīng)用。不同的應(yīng)用,比如流播演示如何裝配一件設(shè)備的短電影、虛擬瀏覽房地產(chǎn)財(cái)產(chǎn)或景點(diǎn)、觀看藝術(shù)家的生動(dòng)表演、以及參與網(wǎng)絡(luò)的多用戶計(jì)算機(jī)游戲或會(huì)議,對(duì)于用戶來說都可以通過因特網(wǎng)來得到。
一個(gè)重要的趨勢(shì)是用戶不再滿意接收其目標(biāo)為多數(shù)觀眾的業(yè)務(wù)。用戶正在要求適合他們個(gè)人需要的業(yè)務(wù)。隨著個(gè)性化業(yè)務(wù)的增殖,面對(duì)未來網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的重要挑戰(zhàn)是權(quán)衡提供個(gè)性化業(yè)務(wù)給每個(gè)用戶與有效使用網(wǎng)絡(luò)資源之間的折衷。
在有效利用網(wǎng)絡(luò)資源和業(yè)務(wù)中的一個(gè)根本挑戰(zhàn)是在大的網(wǎng)絡(luò)比如因特網(wǎng)中有效和快速定位想要的資源/業(yè)務(wù)。例如,用戶可以生成用于在網(wǎng)絡(luò)中找到可得到的特定媒體內(nèi)容的查詢。位置和距離估計(jì)技術(shù)可以用于在網(wǎng)絡(luò)中找到最近的高速緩存或代理,該最近的高速緩存或代理提供想要的數(shù)據(jù)或業(yè)務(wù)比如想要的媒體內(nèi)容。
標(biāo)志點(diǎn)聚類(landmark clustering)是一種用于確定到網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)的距離的已知位置和距離估計(jì)技術(shù)。引入標(biāo)志點(diǎn)聚類用于在大的網(wǎng)絡(luò)中進(jìn)行路由。在網(wǎng)絡(luò)中一個(gè)節(jié)點(diǎn)的物理位置通過確定該節(jié)點(diǎn)到網(wǎng)絡(luò)中一組普通標(biāo)志點(diǎn)節(jié)點(diǎn)的距離來估計(jì)。標(biāo)志點(diǎn)聚類假定,如果兩個(gè)節(jié)點(diǎn)具有到標(biāo)志點(diǎn)節(jié)點(diǎn)的相似距離(例如,所測量的等待時(shí)間),則該兩個(gè)節(jié)點(diǎn)很可能彼此靠近。路由器存儲(chǔ)所述節(jié)點(diǎn)的估計(jì)的物理位置并且使用該位置信息用于路由到最近的節(jié)點(diǎn)。
圖11示出了在網(wǎng)絡(luò)1100中使用標(biāo)志點(diǎn)聚類估計(jì)節(jié)點(diǎn)1110和1120的物理位置??蛻艄?jié)點(diǎn)1110和1120確定它們到標(biāo)志點(diǎn)節(jié)點(diǎn)L1101和L1102的距離。因?yàn)楣?jié)點(diǎn)1110和1120具有到標(biāo)志點(diǎn)節(jié)點(diǎn)L1101和L1102的相似距離,所以節(jié)點(diǎn)1110和1120被確定彼此靠近。
標(biāo)志點(diǎn)聚類是一種用于確定節(jié)點(diǎn)的通用位置信息的有效技術(shù)。然而,當(dāng)前的標(biāo)志點(diǎn)聚類技術(shù)趨向?qū)е聜尉垲悾渲性诰W(wǎng)絡(luò)中相距遙遠(yuǎn)的節(jié)點(diǎn)在彼此附近聚類。那些遠(yuǎn)離標(biāo)志點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)往往是當(dāng)它們實(shí)際位于彼此相隔相當(dāng)大的距離時(shí)被估計(jì)為具有彼此靠近的位置。其次,標(biāo)志點(diǎn)聚類是一種粗略近似并且在區(qū)分距離上相對(duì)靠近的節(jié)點(diǎn)之間不是很有效。
發(fā)明內(nèi)容
根據(jù)一個(gè)實(shí)施例,一種用于在網(wǎng)絡(luò)中識(shí)別靠近第一節(jié)點(diǎn)的至少一個(gè)節(jié)點(diǎn)的方法包括基于候選節(jié)點(diǎn)和第一節(jié)點(diǎn)的位置信息從多個(gè)節(jié)點(diǎn)選擇一組候選節(jié)點(diǎn)。該方法還包括應(yīng)用一種聚類算法到候選節(jié)點(diǎn)和第一節(jié)點(diǎn)的位置信息,并且基于應(yīng)用該聚類算法的結(jié)果識(shí)別該組候選節(jié)點(diǎn)最靠近第一節(jié)點(diǎn)的一個(gè)子組。
根據(jù)另一個(gè)實(shí)施例,網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)包括用于基于候選節(jié)點(diǎn)和第一節(jié)點(diǎn)的位置信息從多個(gè)節(jié)點(diǎn)選擇一組候選節(jié)點(diǎn)的裝置。該節(jié)點(diǎn)還包括用于應(yīng)用一種聚類算法到候選節(jié)點(diǎn)和第一節(jié)點(diǎn)的位置信息的裝置,以及用于基于應(yīng)用該聚類算法的結(jié)果識(shí)別該組候選節(jié)點(diǎn)最靠近第一節(jié)點(diǎn)的一個(gè)子組的裝置。
根據(jù)又另一個(gè)實(shí)施例,計(jì)算機(jī)系統(tǒng)可操作來連接到一個(gè)對(duì)等網(wǎng)絡(luò)并且可操作地起分布式散列表覆蓋網(wǎng)絡(luò)中的分布式散列表節(jié)點(diǎn)的作用。該分布式散列表覆蓋網(wǎng)絡(luò)為所述對(duì)等網(wǎng)絡(luò)的一種邏輯表示。該計(jì)算機(jī)系統(tǒng)包括一個(gè)存儲(chǔ)器,可操作來存儲(chǔ)對(duì)等網(wǎng)絡(luò)中的多個(gè)節(jié)點(diǎn)的位置信息,該多個(gè)節(jié)點(diǎn)物理上靠近計(jì)算機(jī)系統(tǒng)。該計(jì)算機(jī)系統(tǒng)還包括一個(gè)處理器,該處理器可操作來比較所述多個(gè)節(jié)點(diǎn)的位置信息與第一節(jié)點(diǎn)的位置信息以從所述多個(gè)節(jié)點(diǎn)中識(shí)別出物理上靠近所述對(duì)等網(wǎng)絡(luò)中的第一節(jié)點(diǎn)的一組節(jié)點(diǎn)。
根據(jù)又另一個(gè)實(shí)施例,一種存儲(chǔ)網(wǎng)絡(luò)中的節(jié)點(diǎn)的信息的方法,其中該節(jié)點(diǎn)可操作地起分布式散列表覆蓋網(wǎng)絡(luò)中的分布式散列表節(jié)點(diǎn)的作用,該方法包括接收多個(gè)節(jié)點(diǎn)的位置信息。所述節(jié)點(diǎn)在網(wǎng)絡(luò)中物理上位置靠近。該方法還包括在一個(gè)表中存儲(chǔ)所述位置信息,其中所述多個(gè)節(jié)點(diǎn)的位置信息包括從所述多個(gè)節(jié)點(diǎn)的每一個(gè)節(jié)點(diǎn)到多個(gè)全球標(biāo)志點(diǎn)節(jié)點(diǎn)和到至少一個(gè)本地標(biāo)志點(diǎn)節(jié)點(diǎn)所測量的距離。
實(shí)施例的各種特征可以得到更充分地理解,因?yàn)榻Y(jié)合附圖參照下面對(duì)實(shí)施例的詳細(xì)描述,其將變得更好理解,其中圖1示出了根據(jù)一個(gè)實(shí)施例在網(wǎng)絡(luò)中使用全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)以生成位置信息;圖2示出了根據(jù)一個(gè)實(shí)施例的圖1中所示網(wǎng)絡(luò)的2維CAN覆蓋網(wǎng)絡(luò);圖3示出了根據(jù)一個(gè)實(shí)施例的包括標(biāo)志點(diǎn)矢量的標(biāo)志點(diǎn)空間;圖4示出了根據(jù)一個(gè)實(shí)施例使用散列函數(shù)來將圖3所示的標(biāo)志點(diǎn)空間中的點(diǎn)轉(zhuǎn)換到如圖2所示的覆蓋網(wǎng)絡(luò);圖5示出了根據(jù)一個(gè)實(shí)施例的另一個(gè)網(wǎng)絡(luò);圖6示出了根據(jù)一個(gè)實(shí)施例的如圖5所示網(wǎng)絡(luò)的覆蓋網(wǎng)絡(luò);圖7示出了根據(jù)一個(gè)實(shí)施例的用于確定網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)的位置信息的方法的流程圖;圖8示出了根據(jù)一個(gè)實(shí)施例的用于確定到給定節(jié)點(diǎn)的最近節(jié)點(diǎn)的方法的流程圖;圖9示出了根據(jù)一個(gè)實(shí)施例的對(duì)等系統(tǒng);圖10示出了根據(jù)一個(gè)實(shí)施例的一種計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)可以作為如圖9所示的對(duì)等系統(tǒng)中的節(jié)點(diǎn)工作;以及圖11示出了一個(gè)常規(guī)的標(biāo)志點(diǎn)聚類方案。
具體實(shí)施例方式
為了簡化和說明的目的,描述了所述實(shí)施例的原理。然而,本領(lǐng)域的技術(shù)人員將容易地認(rèn)識(shí)到,同樣的原理同樣可以應(yīng)用到所有類型的網(wǎng)絡(luò)系統(tǒng)中并且可以實(shí)現(xiàn)在所有類型的網(wǎng)絡(luò)系統(tǒng)中,并且任何這樣的變化不會(huì)背離本發(fā)明實(shí)施例的真實(shí)精神實(shí)質(zhì)和范圍。而且,在下面的具體描述中,所參考的附圖示出特定實(shí)施例??梢栽诓槐畴x本發(fā)明的實(shí)施例的精神和范圍的前提下,對(duì)實(shí)施例做出電的、機(jī)械的、邏輯的和結(jié)構(gòu)性的變化。
根據(jù)一個(gè)實(shí)施例,使用了一種增強(qiáng)的標(biāo)志點(diǎn)聚類技術(shù)來估計(jì)網(wǎng)絡(luò)中的節(jié)點(diǎn)的物理位置。節(jié)點(diǎn)可以是通過網(wǎng)絡(luò)發(fā)送和/或接收來自另一個(gè)設(shè)備的消息的任何設(shè)備。網(wǎng)絡(luò)中節(jié)點(diǎn)的物理位置,這里也稱作節(jié)點(diǎn)位置,是網(wǎng)絡(luò)中的節(jié)點(diǎn)相對(duì)網(wǎng)絡(luò)中的其它節(jié)點(diǎn)的位置。例如,節(jié)點(diǎn)的位置信息可以通過測量到網(wǎng)絡(luò)中的其它節(jié)點(diǎn)的距離來確定,所述其它節(jié)點(diǎn)比如位置上最接近該節(jié)點(diǎn)的全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)。位置信息可以用作該節(jié)點(diǎn)在網(wǎng)絡(luò)中的物理位置的估計(jì)。例如,到一個(gè)節(jié)點(diǎn)的距離可以使用一個(gè)網(wǎng)絡(luò)公制比如往返時(shí)間或網(wǎng)絡(luò)單跳來測量。節(jié)點(diǎn)之間的距離和節(jié)點(diǎn)的位置信息可能不同于節(jié)點(diǎn)之間的地理距離和節(jié)點(diǎn)的地理位置,因?yàn)榫嚯x根據(jù)網(wǎng)絡(luò)公制比如往返時(shí)間或網(wǎng)絡(luò)單跳來測量,并且不根據(jù)地理距離公制比如千米或米來測量。
全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以從網(wǎng)絡(luò)中的節(jié)點(diǎn)來隨機(jī)選擇。網(wǎng)絡(luò)中的幾乎任何節(jié)點(diǎn)可以被選擇成全球標(biāo)志點(diǎn)節(jié)點(diǎn)或本地標(biāo)志點(diǎn)節(jié)點(diǎn)。選擇為本地標(biāo)志點(diǎn)節(jié)點(diǎn)和全球標(biāo)志點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)的數(shù)量通常大大小于網(wǎng)絡(luò)中的節(jié)點(diǎn)總數(shù)。此外,網(wǎng)絡(luò)中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)總數(shù)通常小于本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量。網(wǎng)絡(luò)中所使用的全球和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量可以取決于位置信息的想要精度。為了最小化網(wǎng)絡(luò)業(yè)務(wù)量,本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以在網(wǎng)絡(luò)中被戰(zhàn)略性地放置,比如在網(wǎng)關(guān)路由器附近。例如,從節(jié)點(diǎn)到全球標(biāo)志點(diǎn)節(jié)點(diǎn)途中的消息所遇到的路由器可以被用作本地標(biāo)志點(diǎn)節(jié)點(diǎn)。
如上所述,節(jié)點(diǎn)的位置信息可以通過測量到全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離來確定,所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)在位置上最接近該節(jié)點(diǎn)。在一個(gè)實(shí)施例中,該節(jié)點(diǎn)測量到網(wǎng)絡(luò)中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)和位置最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn)中的每一個(gè)的距離,以確定該節(jié)點(diǎn)的位置信息。在一個(gè)例子中,一個(gè)最近位置的本地標(biāo)志點(diǎn)標(biāo)志節(jié)點(diǎn)通常比至少一個(gè)全球標(biāo)志點(diǎn)節(jié)點(diǎn)更靠近該節(jié)點(diǎn)。例如,本地標(biāo)志點(diǎn)節(jié)點(diǎn)可能在該節(jié)點(diǎn)和全球標(biāo)志點(diǎn)節(jié)點(diǎn)之間的路由路徑上。在這個(gè)例子中,如果這些本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以對(duì)應(yīng)測量業(yè)務(wù)比如用于測量往返時(shí)間的探測分組,那么到本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離可以使用極少的或無附加的消息收發(fā)開銷來獲得。不必生成到本地標(biāo)志點(diǎn)節(jié)點(diǎn)的另外距離測量業(yè)務(wù),因?yàn)檫@個(gè)例子可以利用被傳送到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的探測分組以測量到本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離,在到全球標(biāo)志點(diǎn)節(jié)點(diǎn)途中遇到該本地標(biāo)志點(diǎn)節(jié)點(diǎn)。在另一個(gè)例子中,如果本地標(biāo)志點(diǎn)節(jié)點(diǎn)位于到一個(gè)節(jié)點(diǎn)的預(yù)定距離之內(nèi),則該本地標(biāo)志點(diǎn)節(jié)點(diǎn)可能最靠近該節(jié)點(diǎn)。在這個(gè)例子中,節(jié)點(diǎn)可以使用全球信息表來識(shí)別到該節(jié)點(diǎn)最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn),并且然后測量到所識(shí)別的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。因此,可以使用本地標(biāo)志點(diǎn)節(jié)點(diǎn),該本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以不在到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的路由路徑上但仍舊可用于精確確定該節(jié)點(diǎn)的位置信息。
可以為網(wǎng)絡(luò)中的基本所有節(jié)點(diǎn)來生成位置信息。位置信息可以用于多種應(yīng)用。例如,位置信息可以用于識(shí)別用于在網(wǎng)絡(luò)中路由的節(jié)點(diǎn)。在另一個(gè)例子中,該位置信息可以用于找到為用戶提供想要的內(nèi)容或業(yè)務(wù)的一個(gè)最近節(jié)點(diǎn)。
與常規(guī)的標(biāo)志點(diǎn)聚類技術(shù)相比,根據(jù)本發(fā)明實(shí)施例的標(biāo)志點(diǎn)技術(shù),節(jié)點(diǎn)的物理位置可以通過確定到相當(dāng)小數(shù)量的全球和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離來精確估計(jì)。此外,本地標(biāo)志點(diǎn)節(jié)點(diǎn)提供本地網(wǎng)絡(luò)特性的精確信息。因此,可以選擇基于本地網(wǎng)絡(luò)特性用于路由的最佳路徑。
根據(jù)另一個(gè)實(shí)施例,網(wǎng)絡(luò)中的給定節(jié)點(diǎn)和其它節(jié)點(diǎn)的位置信息用于選擇到網(wǎng)絡(luò)中的給定節(jié)點(diǎn)最近的節(jié)點(diǎn)。網(wǎng)絡(luò)中的給定節(jié)點(diǎn)到其它節(jié)點(diǎn)的接近與節(jié)點(diǎn)的物理位置有關(guān)。如上所述,物理位置可以基于節(jié)點(diǎn)之間的距離來估計(jì)。
在一個(gè)例子中,選擇靠近給定節(jié)點(diǎn)的一組候選節(jié)點(diǎn)。該候選節(jié)點(diǎn)可以通過比較給定節(jié)點(diǎn)與候選節(jié)點(diǎn)的位置信息來選擇。在選擇了候選節(jié)點(diǎn)之后,應(yīng)用聚類算法到候選節(jié)點(diǎn)的位置信息以選擇靠近給定節(jié)點(diǎn)的候選節(jié)點(diǎn)子組。該給定節(jié)點(diǎn)可以測量到該候選節(jié)點(diǎn)子組的距離以識(shí)別到給定節(jié)點(diǎn)的一個(gè)最近節(jié)點(diǎn)。因此,在應(yīng)用該聚類算法之后,到最小數(shù)量的節(jié)點(diǎn)的距離可以用于精確地識(shí)別一個(gè)最近節(jié)點(diǎn)同時(shí)生成通過測量到節(jié)點(diǎn)的距離引起的最小網(wǎng)絡(luò)業(yè)務(wù)量。
圖1示出了在網(wǎng)絡(luò)中使用全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)以生成位置信息的一個(gè)例子。通過測量到接近節(jié)點(diǎn)10和20的全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離,為網(wǎng)絡(luò)100中的節(jié)點(diǎn)10和20生成位置信息。例如,對(duì)于節(jié)點(diǎn)10,測量到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離。還測量到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL2的距離。到一個(gè)節(jié)點(diǎn)的距離可以使用一種已知的網(wǎng)絡(luò)公制比如往返時(shí)間(RTT)或網(wǎng)絡(luò)單跳來測量。例如,節(jié)點(diǎn)10可以傳送一個(gè)探測分組到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1以及測量探測分組的RTT,以確定到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1的距離。例如,探測分組為由節(jié)點(diǎn)生成的用來測量一個(gè)或多個(gè)預(yù)定網(wǎng)絡(luò)公制比如RTT的分組。
生成表示節(jié)點(diǎn)10的位置信息的標(biāo)志點(diǎn)矢量,其包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離和到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL4的距離。節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量可以表示為<d(n,GL1),d(n,LL1),d(n,GL2),d(n,LL4)>,其中d為節(jié)點(diǎn)之間的距離并且n表示為其生成位置信息的節(jié)點(diǎn)。
類似地,可以為節(jié)點(diǎn)20生成位置信息。例如,測量到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離。還測量到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL2和LL3的距離。生成表示節(jié)點(diǎn)20的位置信息的標(biāo)志點(diǎn)矢量,其包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離和到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL2和LL3的距離。節(jié)點(diǎn)20的標(biāo)志點(diǎn)矢量可以表示為<d(n,GL1),d(n,LL2),d(n,GL2),d(n,LL3)>。
僅考慮到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離的位置估計(jì)技術(shù)可以推斷節(jié)點(diǎn)10和20在網(wǎng)絡(luò)100中是最接近的,因?yàn)楣?jié)點(diǎn)10和20具有到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的相似距離。這些類型的不精確性稱為偽聚類。通過說明到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1-LL4的距離,最小化偽聚類并且確定節(jié)點(diǎn)10和20的位置的更精確估計(jì)。
網(wǎng)絡(luò)100可以包括未示出的許多本地標(biāo)志點(diǎn)節(jié)點(diǎn)和全球標(biāo)志點(diǎn)節(jié)點(diǎn)。選擇為本地標(biāo)志點(diǎn)節(jié)點(diǎn)和全球標(biāo)志點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)數(shù)量通常大大少于網(wǎng)絡(luò)中的節(jié)點(diǎn)的總數(shù)。此外,網(wǎng)絡(luò)100中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的總數(shù)通常少于本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量。網(wǎng)絡(luò)100中所使用的全球和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量可以取決于位置信息的想要精確度。仿真顯示需要相當(dāng)小數(shù)量的全球標(biāo)志點(diǎn),例如,10,000個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)的15個(gè)全球標(biāo)志點(diǎn)節(jié)點(diǎn),以生成精確的位置信息。網(wǎng)絡(luò)100中的幾乎任何節(jié)點(diǎn)都可選擇為全球標(biāo)志點(diǎn)節(jié)點(diǎn)或本地標(biāo)志點(diǎn)節(jié)點(diǎn)。例如,網(wǎng)絡(luò)中預(yù)定數(shù)量的節(jié)點(diǎn)可以隨機(jī)選擇為全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn),由此全球標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量少于本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量。為了最小化網(wǎng)絡(luò)業(yè)務(wù)量,本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以在網(wǎng)絡(luò)100中被策略性地放置,比如在網(wǎng)關(guān)路由器附近。例如,在網(wǎng)關(guān)路由器附近的節(jié)點(diǎn)可以被選擇為本地標(biāo)志點(diǎn)節(jié)點(diǎn)。
如上所述,節(jié)點(diǎn)10和20測量到位置最接近節(jié)點(diǎn)10和20的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。在一個(gè)實(shí)施例中,如果本地標(biāo)志點(diǎn)節(jié)點(diǎn)在到一個(gè)全球節(jié)點(diǎn)的路由路徑上,則本地標(biāo)志點(diǎn)節(jié)點(diǎn)位置最接近一個(gè)節(jié)點(diǎn)。例如,節(jié)點(diǎn)10傳送一個(gè)探測分組到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1。該探測分組遇到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1,因?yàn)樗诘饺驑?biāo)志點(diǎn)節(jié)點(diǎn)GL1的路由路徑R1上。本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1將應(yīng)答(ACK)消息傳回節(jié)點(diǎn)10。節(jié)點(diǎn)10例如使用探測分組的RTT和ACK消息確定到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1的距離。此外,為了最小化網(wǎng)絡(luò)業(yè)務(wù)量,探測分組可以例如通過更新分組報(bào)頭中類似于使用期限(time-to-live)字段的一個(gè)字段,來留意(keeptrack of)它遇到的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)量。如果本地標(biāo)志點(diǎn)節(jié)點(diǎn)接收到探測分組,該探測分組已經(jīng)遇到預(yù)定數(shù)量的本地標(biāo)志點(diǎn)節(jié)點(diǎn),則該本地標(biāo)志點(diǎn)節(jié)點(diǎn)簡單地轉(zhuǎn)發(fā)該分組而無需傳送ACK消息。
在另一個(gè)實(shí)施例中,本地標(biāo)志點(diǎn)節(jié)點(diǎn)的每一個(gè)測量其到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離以獲得其自己的標(biāo)志點(diǎn)矢量。這些標(biāo)志點(diǎn)矢量被存儲(chǔ)在網(wǎng)絡(luò)100的節(jié)點(diǎn)中所存儲(chǔ)的一個(gè)全球信息表中。該全球信息表被詢問以識(shí)別接近一個(gè)節(jié)點(diǎn)的本地標(biāo)志點(diǎn)節(jié)點(diǎn)。例如,節(jié)點(diǎn)10詢問全球信息表以識(shí)別本地標(biāo)志點(diǎn)節(jié)點(diǎn),比如接近節(jié)點(diǎn)10的本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL4。這可以包括識(shí)別與節(jié)點(diǎn)10具有預(yù)定相似性的標(biāo)志點(diǎn)矢量的本地標(biāo)志點(diǎn)節(jié)點(diǎn),其中所述預(yù)定相似性與該節(jié)點(diǎn)和所述標(biāo)志點(diǎn)節(jié)點(diǎn)之間的距離閾值有關(guān)。然后,節(jié)點(diǎn)10確定到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL4的距離。因此,本地標(biāo)志點(diǎn)節(jié)點(diǎn)不必在到一個(gè)全球標(biāo)志點(diǎn)節(jié)點(diǎn)的路由路徑上而被認(rèn)為接近于節(jié)點(diǎn)10。
網(wǎng)絡(luò)100中的每個(gè)節(jié)點(diǎn)可以通過確定到所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)和位置最近本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離以生成位置信息,比如標(biāo)志點(diǎn)矢量。每個(gè)節(jié)點(diǎn)在一個(gè)全球信息表中存儲(chǔ)其位置信息。因此,該全球信息表可以包括網(wǎng)絡(luò)中的基本所有節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量。
根據(jù)一個(gè)實(shí)施例,該全球信息表使用一個(gè)分布式散列表(DHT)覆蓋網(wǎng)絡(luò)來實(shí)現(xiàn)。DHT覆蓋網(wǎng)絡(luò)是一個(gè)基礎(chǔ)物理網(wǎng)絡(luò)比如網(wǎng)絡(luò)100的邏輯表示,其提供在其它類型的功能性中的數(shù)據(jù)布局、信息檢索、以及路由。DHT覆蓋網(wǎng)絡(luò)具有幾種想要的屬性,比如可量測性、容錯(cuò)性、以及低管理成本??梢杂糜诒景l(fā)明的實(shí)施例的DHT覆蓋網(wǎng)絡(luò)的某些例子包括內(nèi)容可尋址網(wǎng)絡(luò)(CAN)、PASTRY、CHORD和為CAN體系版本的高速公路路由CAN(eCAN)。該eCAN覆蓋網(wǎng)絡(luò)還描述在2002年8月29日提交的序列號(hào)為10/231,184、題目為“Expressway Routing AmongPeers”的美國專利申請(qǐng)中,其具有與本申請(qǐng)共同的受讓人,并且因此結(jié)合了其全部內(nèi)容作為參考。
DHT覆蓋網(wǎng)絡(luò)提供一個(gè)散列表摘錄,其映射密鑰到值。例如,在一個(gè)覆蓋網(wǎng)絡(luò)中,數(shù)據(jù)被表示為一個(gè)(密鑰,值)對(duì),比如(K1,V1)。使用一個(gè)散列函數(shù)例如P=h(K1)將K1可確定性地映射到覆蓋網(wǎng)絡(luò)中的點(diǎn)P。散列函數(shù)的例子當(dāng)散列到不同維數(shù)的空間時(shí)為求校驗(yàn)和或空間填充曲線。密鑰值對(duì)(K1,V1)于是被存儲(chǔ)在覆蓋網(wǎng)絡(luò)中的點(diǎn)P處,即擁有一區(qū)域的節(jié)點(diǎn)處,其中點(diǎn)P位于所述區(qū)域中。同樣的散列函數(shù)用于檢索數(shù)據(jù)。該散列函數(shù)還用于從DHT覆蓋網(wǎng)絡(luò)檢索數(shù)據(jù)。例如,該散列函數(shù)用于從K1計(jì)算點(diǎn)P。然后,從該點(diǎn)P檢索數(shù)據(jù)。
在一個(gè)例子中,全球信息表存儲(chǔ)在CAN覆蓋網(wǎng)絡(luò)中,然而可以使用其它類型的DHT覆蓋網(wǎng)絡(luò)。在這個(gè)例子中,節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量或標(biāo)志點(diǎn)矢量的一部分可以用作密鑰以識(shí)別DHT覆蓋網(wǎng)絡(luò)中的位置,用于存儲(chǔ)關(guān)于該節(jié)點(diǎn)的信息。通過使用該標(biāo)志點(diǎn)矢量作為密鑰,在基礎(chǔ)物理網(wǎng)絡(luò)中關(guān)于物理上彼此靠近的節(jié)點(diǎn)的信息被彼此靠近地存儲(chǔ)在DHT覆蓋網(wǎng)絡(luò)中,結(jié)果導(dǎo)致當(dāng)在網(wǎng)絡(luò)中識(shí)別靠近給定節(jié)點(diǎn)的一組節(jié)點(diǎn)時(shí)生成最小數(shù)量的業(yè)務(wù)量。
圖2示出了2維CAN覆蓋網(wǎng)絡(luò)200的一個(gè)例子,其為基礎(chǔ)物理網(wǎng)絡(luò)100的一種邏輯表示。圖2中示出的節(jié)點(diǎn)30-50在圖1所示的網(wǎng)絡(luò)100中并未示出,但是節(jié)點(diǎn)30-50也可以在網(wǎng)絡(luò)100中。CAN覆蓋網(wǎng)絡(luò)使用一個(gè)d圓環(huán)面上的d維笛卡爾坐標(biāo)空間來邏輯表示該基礎(chǔ)物理網(wǎng)絡(luò)。圖2示出了覆蓋網(wǎng)絡(luò)200中的一個(gè)2維
×
笛卡爾坐標(biāo)空間。示出了區(qū)域210-214的坐標(biāo)。笛卡爾空間被分割成分別由節(jié)點(diǎn)10-50所擁有的CAN區(qū)域210-214。覆蓋網(wǎng)絡(luò)中的每個(gè)DHT節(jié)點(diǎn)擁有一個(gè)區(qū)域。節(jié)點(diǎn)30和20為到節(jié)點(diǎn)10的鄰近節(jié)點(diǎn)并且節(jié)點(diǎn)40-50和10為到節(jié)點(diǎn)20的鄰近節(jié)點(diǎn)。如果兩個(gè)節(jié)點(diǎn)的區(qū)域沿著d-1個(gè)維度重疊并且沿著一個(gè)維度毗連,那么這兩個(gè)節(jié)點(diǎn)鄰近。例如,區(qū)域210和214沿著
×[.5,0]毗連。區(qū)域210和213不是鄰近區(qū)域,因?yàn)檫@些區(qū)域沿著一個(gè)維度不毗連。
節(jié)點(diǎn)10-50每個(gè)維持一個(gè)坐標(biāo)路由表,該路由表可以包括其每個(gè)近鄰的覆蓋網(wǎng)絡(luò)中的IP地址和區(qū)域坐標(biāo)。該路由表用于從一個(gè)源節(jié)點(diǎn)通過該DHT覆蓋網(wǎng)絡(luò)200中的鄰近節(jié)點(diǎn)路由到一個(gè)目的地節(jié)點(diǎn)。假定節(jié)點(diǎn)20正在從節(jié)點(diǎn)30擁有的區(qū)域214中的點(diǎn)P檢索數(shù)據(jù)。因?yàn)樵擖c(diǎn)P不在區(qū)域211或區(qū)域211的任何一個(gè)鄰近區(qū)域中,所以用于所述數(shù)據(jù)的請(qǐng)求通過鄰近區(qū)域比如節(jié)點(diǎn)40所擁有的區(qū)域213來路由到擁有區(qū)域214的節(jié)點(diǎn)30以檢索數(shù)據(jù),其中點(diǎn)P位于所述區(qū)域214。因此,CAN消息包括目的地坐標(biāo),比如使用散列函數(shù)確定的用于路由的點(diǎn)P的坐標(biāo)。
全球信息表包括關(guān)于網(wǎng)絡(luò)100中的節(jié)點(diǎn)的信息,并且該信息被存儲(chǔ)在DHT覆蓋網(wǎng)絡(luò)200的節(jié)點(diǎn)中。為了存儲(chǔ)關(guān)于全球信息表中的節(jié)點(diǎn)的信息,該節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量(其包括到網(wǎng)絡(luò)中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離和到位置最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離)被用作密鑰以識(shí)別DHT覆蓋網(wǎng)絡(luò)中的一個(gè)位置從而用于存儲(chǔ)關(guān)于所述節(jié)點(diǎn)的信息。通過使用該標(biāo)志點(diǎn)節(jié)點(diǎn)或標(biāo)志點(diǎn)節(jié)點(diǎn)的一部分(比如到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離)作為密鑰,關(guān)于網(wǎng)絡(luò)中物理上彼此靠近的節(jié)點(diǎn)的信息在DHT覆蓋網(wǎng)絡(luò)中彼此靠近地存儲(chǔ)。圖3示出了一個(gè)標(biāo)志點(diǎn)空間300,包括節(jié)點(diǎn)10和20的標(biāo)志點(diǎn)矢量310和320。所述標(biāo)志點(diǎn)空間300為用于映射網(wǎng)絡(luò)100中的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量的空間邏輯表示。所示的該標(biāo)志點(diǎn)空間300表示所述標(biāo)志點(diǎn)矢量到DHT覆蓋網(wǎng)絡(luò)200中的位置的映射,用于將信息存儲(chǔ)在全球信息表中。
節(jié)點(diǎn)10和20的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分用于識(shí)別標(biāo)志點(diǎn)空間300中的點(diǎn),該點(diǎn)被映射到DHT覆蓋網(wǎng)絡(luò)100中用于將信息存儲(chǔ)在全球信息表中。節(jié)點(diǎn)10的全球標(biāo)志點(diǎn)部分為<d(n,GL1),d(n,GL2)>,其中d為到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離并且n為節(jié)點(diǎn)10或20。網(wǎng)絡(luò)100中的每個(gè)節(jié)點(diǎn)可以使用各自的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分被映射到標(biāo)志點(diǎn)空間。此外,標(biāo)志點(diǎn)空間300可以大于二維。維數(shù)可以等于網(wǎng)絡(luò)100中使用的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的數(shù)目。節(jié)點(diǎn)10和20位于標(biāo)志點(diǎn)空間300中,其坐標(biāo)基于它們的標(biāo)志點(diǎn)矢量。因此,標(biāo)志點(diǎn)空間300中彼此靠近的節(jié)點(diǎn)在物理網(wǎng)絡(luò)100中是靠近的。
散列函數(shù)用于將物理節(jié)點(diǎn)位置信息(例如,標(biāo)志點(diǎn)矢量)從標(biāo)志點(diǎn)空間300轉(zhuǎn)換到覆蓋物理200,這樣在所述標(biāo)志點(diǎn)空間300中靠近的點(diǎn)被映射到DHT覆蓋網(wǎng)絡(luò)200中靠近的點(diǎn)。圖4示出了使用散列函數(shù)將標(biāo)志點(diǎn)空間300中用于節(jié)點(diǎn)10和20的點(diǎn)轉(zhuǎn)換到覆蓋網(wǎng)絡(luò)200。該散列函數(shù)用于確定覆蓋網(wǎng)絡(luò)200中的點(diǎn)10和20,其對(duì)應(yīng)標(biāo)志點(diǎn)空間300中用于節(jié)點(diǎn)10和20的點(diǎn)。節(jié)點(diǎn)10和20的信息被存儲(chǔ)在擁有一區(qū)域的節(jié)點(diǎn),其中點(diǎn)10和20位于所述區(qū)域。因此,通過散列一個(gè)標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分,覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)被識(shí)別用于將信息存儲(chǔ)在全球信息表中,比如完備標(biāo)志點(diǎn)矢量(complete landmarkvector)和與所述節(jié)點(diǎn)相關(guān)的其它信息。因此,所述全球信息表被存儲(chǔ)在DHT覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)之間。使用一個(gè)DHT覆蓋網(wǎng)絡(luò)以存儲(chǔ)標(biāo)志點(diǎn)矢量,還描述在Tang等人的序列號(hào)為10/666,621標(biāo)題為“Utilizing Proximity Information in an Overlay Network”的美國專利申請(qǐng)中,該申請(qǐng)具有與本申請(qǐng)共同的受讓人,因此結(jié)合了其全部內(nèi)容作為參考。
在一定的情況下,標(biāo)志點(diǎn)空間的維數(shù)可以大于覆蓋網(wǎng)絡(luò)的維數(shù)。包括空間填充曲線的散列函數(shù)可以用于將點(diǎn)從較大維數(shù)空間映射到較小維數(shù)空間,其也描述在上面所述的專利申請(qǐng)美國專利申請(qǐng)序列號(hào)10/666,621中,其被結(jié)合作為參考。
網(wǎng)絡(luò)100中的節(jié)點(diǎn)的位置信息(比如包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離以及位置最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量)可以用于識(shí)別一個(gè)給定節(jié)點(diǎn)的最近節(jié)點(diǎn)。例如,參照?qǐng)D1,節(jié)點(diǎn)10可以是由用戶使用的客戶節(jié)點(diǎn)。該節(jié)點(diǎn)10確定其標(biāo)志點(diǎn)矢量,該標(biāo)志點(diǎn)矢量包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)以及位置最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。節(jié)點(diǎn)10提交請(qǐng)求以找到一個(gè)到DHT覆蓋網(wǎng)絡(luò)100的靠近節(jié)點(diǎn)。例如,該節(jié)點(diǎn)10散列其標(biāo)志點(diǎn)矢量的全球部分,比如到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離,以識(shí)別DHT覆蓋網(wǎng)絡(luò)200中的點(diǎn)。節(jié)點(diǎn)10傳送該請(qǐng)求到DHT覆蓋網(wǎng)絡(luò)200中的一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)擁有一個(gè)區(qū)域,其中所識(shí)別的點(diǎn)位于該區(qū)域中。
DHT覆蓋網(wǎng)絡(luò)100選擇最靠近節(jié)點(diǎn)10的一組候選節(jié)點(diǎn)。例如,假定節(jié)點(diǎn)10發(fā)送該請(qǐng)求到節(jié)點(diǎn)50。該節(jié)點(diǎn)50使用節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分來選擇最靠近節(jié)點(diǎn)10的一組候選節(jié)點(diǎn)。例如,節(jié)點(diǎn)50比較節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分與存在于節(jié)點(diǎn)50中的全球信息表中所存儲(chǔ)的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分。這可以包括節(jié)點(diǎn)50和到節(jié)點(diǎn)50的鄰近節(jié)點(diǎn)所擁有的區(qū)域212中的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量。
標(biāo)志點(diǎn)矢量或標(biāo)志點(diǎn)矢量的全球部分之間的相似性的一種量度是兩個(gè)標(biāo)志點(diǎn)矢量之間的角度的余弦。最相似于節(jié)點(diǎn)例如節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量的標(biāo)志點(diǎn)矢量可以被選擇作為一個(gè)候選節(jié)點(diǎn)。所選擇的候選節(jié)點(diǎn)的數(shù)量可以基于用于找到所述最近節(jié)點(diǎn)的想要精確度。
使用所有候選節(jié)點(diǎn)的完備標(biāo)志點(diǎn)矢量和節(jié)點(diǎn)10的完備標(biāo)志點(diǎn)矢量,節(jié)點(diǎn)50應(yīng)用聚類算法來識(shí)別最靠近節(jié)點(diǎn)10的所述組候選節(jié)點(diǎn)的一個(gè)子組。聚類算法是用于從基于預(yù)定特性的一個(gè)初始組值來識(shí)別一個(gè)子組值的任何算法,所述預(yù)定特性比如位置信息之間的相似性。下面通過例子并非限制性地加以描述的聚類算法的四個(gè)例子為min_sum(最小和)、max_diff(最大差)、order(順序)和inner_product(內(nèi)積)。
min_sum聚類算法假定如果有足夠數(shù)量的全球的或本地的標(biāo)志點(diǎn)節(jié)點(diǎn),兩個(gè)節(jié)點(diǎn)n和c測量相對(duì)距離,那么很可能是標(biāo)志點(diǎn)節(jié)點(diǎn)之一L,其位于兩個(gè)節(jié)點(diǎn)n和c之間的最短路徑上,其中n為給定節(jié)點(diǎn),比如節(jié)點(diǎn)10,并且c為靠近節(jié)點(diǎn)10確定的所述候選節(jié)點(diǎn)初始組中的節(jié)點(diǎn)。節(jié)點(diǎn)L的一個(gè)例子為位于節(jié)點(diǎn)10和20之間的最短路徑上的全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1。
對(duì)于min_sum,dist(n,L)和dist(c,L)之和應(yīng)當(dāng)是最小的。對(duì)于節(jié)點(diǎn)n和表示為C的候選節(jié)點(diǎn)的初始組,min_sum(n,C)形式上使用等式1來定義如下等式(1)mincεC:LεL(n,c)(dist(n,L)+dist(c,L))在等式1中,C為所述組候選節(jié)點(diǎn),c為該組C的一個(gè)元素,并且L(n,c)為公共組的全球的或本地的標(biāo)志點(diǎn)節(jié)點(diǎn),節(jié)點(diǎn)n和c被相對(duì)測量。使用等式1,來自候選節(jié)點(diǎn)C的節(jié)點(diǎn)被選擇為最靠近節(jié)點(diǎn)n的所述頂部候選節(jié)點(diǎn)的子組,如果它們具有dist(n,L)+dist(c,L)的最小距離和。類似地,max_diff假設(shè)是如果有足夠數(shù)量的全球的或本地的標(biāo)志點(diǎn)節(jié)點(diǎn),節(jié)點(diǎn)n和c被相對(duì)測量,那么存在一種很大的可能性,即存在一個(gè)標(biāo)志點(diǎn)節(jié)點(diǎn)L以至于c在從n到L的最短路徑上或n在c和L之間的最短路徑上。在那種情況中,ABS(dist(n,L)-dist(c,L))可以用于識(shí)別最靠近節(jié)點(diǎn)n的候選節(jié)點(diǎn)的一個(gè)子組。函數(shù)ABS(x)返回x的絕對(duì)值。max_diff(n,C)形式上使用等式2來定義如下
等式(2)maxcεC:LεL(n,c)ABS(dist(n,L)-dist(c,L))對(duì)于order,其是聚類算法的另一個(gè)例子,假設(shè)如果兩個(gè)節(jié)點(diǎn)具有到一組公共節(jié)點(diǎn)的相似距離,那么該兩個(gè)節(jié)點(diǎn)很可能彼此靠近。使用該order聚類算法,一個(gè)節(jié)點(diǎn)測量其到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的RTT并且分類該不斷增加的RTT中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)。因此,每個(gè)節(jié)點(diǎn)具有全球標(biāo)志點(diǎn)節(jié)點(diǎn)的一個(gè)相關(guān)順序。具有相同的或相似的順序的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的節(jié)點(diǎn)被視作彼此靠近。然而,此技術(shù)不能區(qū)分具有相同全球標(biāo)志點(diǎn)順序的節(jié)點(diǎn),并且因此易于偽聚類。
對(duì)于節(jié)點(diǎn)n,c和L,其中L為該組全球的或本地的標(biāo)志點(diǎn)節(jié)點(diǎn)的一個(gè)元素,其對(duì)于節(jié)點(diǎn)n和c的標(biāo)志點(diǎn)矢量是共同的,表示為LεL(n,c),對(duì)于節(jié)點(diǎn)n來說標(biāo)志點(diǎn)矢量中的全球標(biāo)志點(diǎn)的順序基于所有節(jié)點(diǎn)L(n,c)到節(jié)點(diǎn)n的距離被定義為該所有節(jié)點(diǎn)L(n,c)分類列表中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的順序。全球標(biāo)志點(diǎn)節(jié)點(diǎn)的順序被類似地定義。因此,order(n,c)在等式3中被定義如下等式(3)min∑LεL(n,c)ABS(order(L)n-order(L)c)聚類算法inner_product假定如果一個(gè)標(biāo)志點(diǎn)節(jié)點(diǎn)靠近節(jié)點(diǎn)n,那么該標(biāo)志點(diǎn)節(jié)點(diǎn)可以給出網(wǎng)絡(luò)中的節(jié)點(diǎn)n的位置的一個(gè)較好表示。例如,節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量可以被表示為<d(n,GL1),d(n,LL1),d(n,GL2)d(n,LL4)>,其中d為節(jié)點(diǎn)之間的距離并且n表示節(jié)點(diǎn)10。如果d(n,LL1)短于d(n,LL4),那么當(dāng)比較節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量和候選節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量時(shí),d(n,LL1)由inner_product聚類算法給出更大的權(quán)值。inner_product(n,c)在等式4中被定義如下等式(4)max∑LεL(n,c)((1.0/(dist(n,L)2))x((1.0/(dist(c,L)2)))上面所描述的標(biāo)志點(diǎn)聚類算法是可以用于識(shí)別最靠近節(jié)點(diǎn)n比如圖1中所示的節(jié)點(diǎn)10的候選節(jié)點(diǎn)初始組的一個(gè)子組的算法的例子。其它已知的聚類算法,比如k-平均(k-means)、主分量分析、以及隱含語意索引法,可以用于選擇所述候選節(jié)點(diǎn)的子組。
在識(shí)別出所述候選節(jié)點(diǎn)的子組之后,所述候選節(jié)點(diǎn)的子組,比如可以包括所述子組中的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量的一列節(jié)點(diǎn)子組,被傳送到節(jié)點(diǎn)10。節(jié)點(diǎn)10測量到所述子組中的每個(gè)節(jié)點(diǎn)的距離并且選擇最靠近節(jié)點(diǎn)10的節(jié)點(diǎn)。通過使用這個(gè)技術(shù),想要識(shí)別一個(gè)最近節(jié)點(diǎn)的節(jié)點(diǎn)測量到少量標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。此外,本地標(biāo)志點(diǎn)節(jié)點(diǎn)提供本地網(wǎng)絡(luò)特性的精確信息,其可以用于選擇最佳路由路徑。另外,在利用了聚類算法之后,一個(gè)節(jié)點(diǎn)測量到使用聚類算法所識(shí)別的少量頂部候選節(jié)點(diǎn)的距離。
用于選擇到給定節(jié)點(diǎn)的最近節(jié)點(diǎn)的一個(gè)應(yīng)用是用于識(shí)別由網(wǎng)絡(luò)中的一個(gè)節(jié)點(diǎn)所提供的想要數(shù)據(jù)或業(yè)務(wù)。這參照?qǐng)D5加以示出。圖5示出了包括節(jié)點(diǎn)501-506的網(wǎng)絡(luò)500。網(wǎng)絡(luò)500類似于圖1所示的網(wǎng)絡(luò)100并且可以表示為存儲(chǔ)了所述全球信息表的DHT覆蓋網(wǎng)絡(luò)。節(jié)點(diǎn)506通過網(wǎng)絡(luò)500提供內(nèi)容給用戶。例如,節(jié)點(diǎn)506提供英語內(nèi)容。節(jié)點(diǎn)503和504可以是將來自節(jié)點(diǎn)506的內(nèi)容轉(zhuǎn)換為德語并且使該內(nèi)容可用于德語用戶的業(yè)務(wù)節(jié)點(diǎn)。該業(yè)務(wù)節(jié)點(diǎn)為提供業(yè)務(wù)給用戶的節(jié)點(diǎn)。在這種情況中,該業(yè)務(wù)正提供來自節(jié)點(diǎn)506的德語內(nèi)容。
節(jié)點(diǎn)501例如由想要觀看來自節(jié)點(diǎn)506的德語內(nèi)容的用戶來使用。節(jié)點(diǎn)501連同其標(biāo)志點(diǎn)矢量一起提交該業(yè)務(wù)請(qǐng)求給DHT覆蓋網(wǎng)絡(luò)。該標(biāo)志點(diǎn)矢量為節(jié)點(diǎn)501的位置信息并且包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。提交請(qǐng)求給覆蓋網(wǎng)絡(luò),例如包括節(jié)點(diǎn)501傳送請(qǐng)求給節(jié)點(diǎn)502。節(jié)點(diǎn)502可以是一區(qū)域的擁有者,其中節(jié)點(diǎn)501的散列標(biāo)志點(diǎn)矢量位于該區(qū)域,并且因此該請(qǐng)求被傳送到節(jié)點(diǎn)502。節(jié)點(diǎn)502搜索全球信息表以識(shí)別滿足所述請(qǐng)求的一組候選節(jié)點(diǎn)。該請(qǐng)求除了包括所述想要類型的業(yè)務(wù)之外,還可以包括與服務(wù)質(zhì)量(QoS)比如連接兩個(gè)節(jié)點(diǎn)的路徑的帶寬、節(jié)點(diǎn)的當(dāng)前負(fù)荷、以及節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力相關(guān)的其它測量的或確定的特性。在這個(gè)例子中,全球信息表,除了包括網(wǎng)絡(luò)500中的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量之外,還存儲(chǔ)包括節(jié)點(diǎn)所提供的業(yè)務(wù)和QoS特性的信息。對(duì)于本領(lǐng)域的技術(shù)人員而言,顯然所述全球信息表可以增加其它類型的數(shù)據(jù),這些類型的數(shù)據(jù)可以有助于提供用戶想要的業(yè)務(wù)。
節(jié)點(diǎn)502選擇滿足所述請(qǐng)求的一組候選節(jié)點(diǎn)。節(jié)點(diǎn)502應(yīng)用聚類算法到所述組候選節(jié)點(diǎn)以識(shí)別最靠近節(jié)點(diǎn)501的節(jié)點(diǎn)子組。節(jié)點(diǎn)502傳送一列所述候選節(jié)點(diǎn)子組,比如提供德語內(nèi)容的節(jié)點(diǎn)503和504。節(jié)點(diǎn)501測量到節(jié)點(diǎn)503和504的每一個(gè)節(jié)點(diǎn)的距離。節(jié)點(diǎn)501還可以測量想要的QoS特性,比如帶寬、節(jié)點(diǎn)的當(dāng)前負(fù)荷、節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力。測量可以被同時(shí)執(zhí)行。節(jié)點(diǎn)501從最滿足其需要的所述候選節(jié)點(diǎn)子組選擇一個(gè)節(jié)點(diǎn),比如節(jié)點(diǎn)503。這可以包括所述最近節(jié)點(diǎn)或提供最佳服務(wù)質(zhì)量的所述最近節(jié)點(diǎn)。
如圖1和5所示的網(wǎng)絡(luò)100和500是示出本發(fā)明的原理的例子。對(duì)于本領(lǐng)域的技術(shù)人員而言,顯然本發(fā)明的實(shí)施例可以在比如好幾萬個(gè)節(jié)點(diǎn)的更大網(wǎng)絡(luò)中實(shí)施。而且,為了提高位置信息的精確度,更大數(shù)量的全球和本地標(biāo)志點(diǎn)節(jié)點(diǎn)可以用于確定節(jié)點(diǎn)的位置信息。
圖6示出了使用包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)所測量的距離的位置信息以識(shí)別用于路由的一個(gè)最近節(jié)點(diǎn)的例子。圖6示出了圖5中所示網(wǎng)絡(luò)500的一個(gè)DHT覆蓋網(wǎng)絡(luò)600的例子。該DHT覆蓋網(wǎng)絡(luò)600示出為一個(gè)CAN覆蓋網(wǎng)絡(luò),比如參照?qǐng)D2加以描述的,該CAN覆蓋網(wǎng)絡(luò)包括區(qū)域610-615中的節(jié)點(diǎn)501-506,然而可以使用其它類型的DHT覆蓋網(wǎng)絡(luò)。節(jié)點(diǎn)501-506的位置信息被存儲(chǔ)在所述覆蓋網(wǎng)絡(luò)600的節(jié)點(diǎn)501-506中的全球信息表中,比如參照?qǐng)D3和4描述的。位置信息可以包括標(biāo)志點(diǎn)矢量,該標(biāo)志點(diǎn)矢量包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。
節(jié)點(diǎn)501傳送消息給節(jié)點(diǎn)503,用于請(qǐng)求來自節(jié)點(diǎn)503的個(gè)性化業(yè)務(wù),比如德語內(nèi)容。因?yàn)楣?jié)點(diǎn)503不在到區(qū)域610的一個(gè)鄰近區(qū)域中,其中節(jié)點(diǎn)501位于該區(qū)域601,節(jié)點(diǎn)501識(shí)別一個(gè)鄰近區(qū)域比如區(qū)域611中的一個(gè)最近節(jié)點(diǎn)從而路由到節(jié)點(diǎn)503。為了識(shí)別區(qū)域611中的一個(gè)最近節(jié)點(diǎn),節(jié)點(diǎn)503傳送請(qǐng)求到區(qū)域611中的一個(gè)節(jié)點(diǎn)。該請(qǐng)求包括位置信息,比如節(jié)點(diǎn)501的一個(gè)標(biāo)志點(diǎn)矢量。節(jié)點(diǎn)501的路由表可以包括區(qū)域611中用于傳送該請(qǐng)求的至少一個(gè)節(jié)點(diǎn)。區(qū)域611中接收該請(qǐng)求的節(jié)點(diǎn)為區(qū)域611中最靠近節(jié)點(diǎn)501的一組候選節(jié)點(diǎn)搜索其全球信息表,并且應(yīng)用聚類算法以識(shí)別最靠近節(jié)點(diǎn)501的候選節(jié)點(diǎn)子組。該節(jié)點(diǎn)子組被傳送到節(jié)點(diǎn)501。
節(jié)點(diǎn)501確定到每個(gè)所述候選節(jié)點(diǎn)子組的距離并且選擇用于路由的一個(gè)最近節(jié)點(diǎn),比如節(jié)點(diǎn)502。節(jié)點(diǎn)501當(dāng)識(shí)別一個(gè)用于路由的節(jié)點(diǎn)時(shí)可以考慮除了物理位置之外的因素。例如,節(jié)點(diǎn)501還可以估計(jì)所述組候選節(jié)點(diǎn)的QoS特性,該QoS特性可以存儲(chǔ)在所述全球信息表中。節(jié)點(diǎn)501可以從所述組候選節(jié)點(diǎn)中選擇具有想要的QoS特性的一個(gè)最近節(jié)點(diǎn)。假設(shè)選擇了節(jié)點(diǎn)502,節(jié)點(diǎn)502將來自節(jié)點(diǎn)501的業(yè)務(wù)請(qǐng)求轉(zhuǎn)發(fā)到提供該業(yè)務(wù)的節(jié)點(diǎn)503。
圖7示出了根據(jù)一個(gè)實(shí)施例用于生成節(jié)點(diǎn)的位置信息的方法的流程圖。圖7結(jié)合圖1中示出的網(wǎng)絡(luò)100和圖2中示出的覆蓋網(wǎng)絡(luò)200通過示例并非限制性地加以描述。在步驟701中,節(jié)點(diǎn)10確定到網(wǎng)絡(luò)100中的全球標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。例如,節(jié)點(diǎn)10使用RTT或另一種網(wǎng)絡(luò)公制測量到所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離。
在步驟702中,節(jié)點(diǎn)10確定到最接近節(jié)點(diǎn)10的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。這可以包括由測量到所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的RTT的探測分組所遇到的本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL4。在另一個(gè)例子中,在到所述節(jié)點(diǎn)的預(yù)定距離內(nèi)到所有本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離使用所述全球信息表來確定。這可以通過比較節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量來確定。具有預(yù)定相似性的標(biāo)志點(diǎn)矢量的節(jié)點(diǎn)從所述全球信息表中選擇。
步驟701和702可以一起執(zhí)行。例如,當(dāng)本地標(biāo)志點(diǎn)節(jié)點(diǎn)位于所述路由路徑上時(shí),探測所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)可以使用基本上無消息收發(fā)開銷來獲得到相應(yīng)本地標(biāo)志點(diǎn)的距離。例如,該網(wǎng)絡(luò)中的基本上所有的路由器可以被選擇為本地標(biāo)志點(diǎn)節(jié)點(diǎn)并且跟蹤路由或另一個(gè)相似網(wǎng)絡(luò)應(yīng)用程序被用于在到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的路由路徑上獲得到所述全球和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。在這個(gè)例子中,可以不測量到所述路由路徑上的每個(gè)路由器的距離。例如,可以使用一個(gè)使用期限字段,這樣僅測量到第一預(yù)定數(shù)量的路由器的距離,該路由器接收所述探測分組。可替換地,例如測量到第1、2、4、8、16個(gè)路由器的距離。因此,在到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的路由路徑上,可以測量到多個(gè)路由器的距離,該多個(gè)路徑器的數(shù)目小于路由器的總數(shù)。
在步驟703中,節(jié)點(diǎn)10的位置信息使用到全球標(biāo)志點(diǎn)節(jié)點(diǎn)和本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離來生成。例如,為節(jié)點(diǎn)10生成一個(gè)標(biāo)志點(diǎn)矢量,其包括到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離以及到本地標(biāo)志點(diǎn)節(jié)點(diǎn)LL1和LL4的距離。
在步驟704中,節(jié)點(diǎn)10在全球信息表中存儲(chǔ)其位置信息,比如其標(biāo)志點(diǎn)矢量。在一個(gè)例子中,這包括散列標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分以識(shí)別如圖2所示的DHT覆蓋網(wǎng)絡(luò)200中的一個(gè)位置,用于存儲(chǔ)位置信息和關(guān)于節(jié)點(diǎn)10的可能其它信息,比如在所述全球信息表中所提供的業(yè)務(wù)、負(fù)荷、轉(zhuǎn)發(fā)能力等等。
圖8示出了根據(jù)一個(gè)實(shí)施例用于識(shí)別一個(gè)最近節(jié)點(diǎn)的方法800的流程圖。圖8結(jié)合圖1所示的網(wǎng)絡(luò)100和圖2所示的覆蓋網(wǎng)絡(luò)200通過示例并非限制性地加以描述。在步驟801中,確定節(jié)點(diǎn)10的位置信息,比如包括到所述全球標(biāo)志點(diǎn)節(jié)點(diǎn)和位置最近的本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離的標(biāo)志點(diǎn)矢量。
在步驟802中,節(jié)點(diǎn)10發(fā)送請(qǐng)求給所述DHT覆蓋網(wǎng)絡(luò)200,用于識(shí)別到節(jié)點(diǎn)10的一個(gè)最近節(jié)點(diǎn)。例如,節(jié)點(diǎn)10散列其標(biāo)志點(diǎn)矢量的所述全球部分,比如到全球標(biāo)志點(diǎn)節(jié)點(diǎn)GL1和GL2的距離,以識(shí)別DHT覆蓋網(wǎng)絡(luò)200中的一個(gè)點(diǎn)。節(jié)點(diǎn)10傳送該請(qǐng)求到所述DHT覆蓋網(wǎng)絡(luò)200中擁有一區(qū)域的一個(gè)節(jié)點(diǎn),其中所識(shí)別的點(diǎn)位于該區(qū)域。
在步驟803中,DHT覆蓋網(wǎng)絡(luò)100選擇最靠近節(jié)點(diǎn)10的一組候選節(jié)點(diǎn)。例如,假設(shè)節(jié)點(diǎn)10傳送請(qǐng)求給節(jié)點(diǎn)50。節(jié)點(diǎn)50使用節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分來選擇最靠近節(jié)點(diǎn)10的一組候選節(jié)點(diǎn)。例如,節(jié)點(diǎn)50比較節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量的全球標(biāo)志點(diǎn)部分與位于節(jié)點(diǎn)50中的所述全球信息表中所存儲(chǔ)的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量的所述全球標(biāo)志點(diǎn)部分。這可以包括節(jié)點(diǎn)50和到節(jié)點(diǎn)50的鄰近節(jié)點(diǎn)所擁有的區(qū)域212中的節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量。比較所述標(biāo)志點(diǎn)矢量或所述標(biāo)志點(diǎn)矢量的全球部分以識(shí)別最靠近節(jié)點(diǎn)10的一組候選節(jié)點(diǎn)。
在步驟804中,節(jié)點(diǎn)50應(yīng)用聚類算法到所述組候選節(jié)點(diǎn)以識(shí)別最近節(jié)點(diǎn)10的所述候選節(jié)點(diǎn)子組。例如,節(jié)點(diǎn)10的標(biāo)志點(diǎn)矢量使用例如所述聚類算法min_sum、max_diff、order、和inner_product之一與所述候選節(jié)點(diǎn)的標(biāo)志點(diǎn)矢量相比較。
在步驟805中,節(jié)點(diǎn)10從在步驟804處確定的節(jié)點(diǎn)50中接收一列候選節(jié)點(diǎn)子組并且使用一種網(wǎng)絡(luò)公制比如RTT或網(wǎng)絡(luò)單跳來確定到所述候選節(jié)點(diǎn)子組中的每個(gè)節(jié)點(diǎn)的距離。在步驟806中,節(jié)點(diǎn)10基于所測量的距離來從所述候選節(jié)點(diǎn)子組中選擇最近的節(jié)點(diǎn)。
當(dāng)選擇一個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)時(shí)可以考慮除了距離之外的因素。例如,如果節(jié)點(diǎn)10試圖識(shí)別網(wǎng)絡(luò)100中的正在提供特定數(shù)據(jù)或業(yè)務(wù)的一個(gè)節(jié)點(diǎn),則可以考慮影響數(shù)據(jù)傳輸或業(yè)務(wù)傳送的與QoS相關(guān)的因素。例如,為所述組候選節(jié)點(diǎn)中的每個(gè)節(jié)點(diǎn)可以確定帶寬、供應(yīng)數(shù)據(jù)或業(yè)務(wù)的節(jié)點(diǎn)的當(dāng)前負(fù)荷、以及節(jié)點(diǎn)的轉(zhuǎn)發(fā)能力。節(jié)點(diǎn)10從最滿足其需要的候選組中選擇一個(gè)節(jié)點(diǎn),比如提供最佳QoS的一個(gè)最近節(jié)點(diǎn)。類似地,如果節(jié)點(diǎn)10識(shí)別用于路由到例如覆蓋網(wǎng)絡(luò)中的一個(gè)區(qū)域的最近節(jié)點(diǎn),則當(dāng)從所述候選節(jié)點(diǎn)組中選擇一個(gè)節(jié)點(diǎn)時(shí),可以考慮與網(wǎng)絡(luò)路由相關(guān)的帶寬、轉(zhuǎn)發(fā)能力和其它因素。
圖9示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例可以由所述基礎(chǔ)物理網(wǎng)絡(luò)比如圖1和5所示的網(wǎng)絡(luò)100和500使用的對(duì)等(P2P)通信模型。P2P網(wǎng)絡(luò)通常被用作DHT覆蓋網(wǎng)絡(luò)的基礎(chǔ)物理網(wǎng)絡(luò),比如分別由圖2和圖6所示的CAN DHT覆蓋網(wǎng)絡(luò)200和600。P2P網(wǎng)絡(luò)900包括多個(gè)節(jié)點(diǎn)910a...910n,在P2P系統(tǒng)中其起對(duì)等作用。節(jié)點(diǎn)910a...910n在它們自己之間并且與其它網(wǎng)絡(luò)節(jié)點(diǎn)通過網(wǎng)絡(luò)920來交換信息。節(jié)點(diǎn)910a...910n還可以確定哪些節(jié)點(diǎn)910a...910n執(zhí)行P2P系統(tǒng)中的對(duì)等的其它功能,比如對(duì)象搜索和檢索、對(duì)象布局、存儲(chǔ)和維護(hù)全球信息表等等。對(duì)象可以包括文件、URL等等。節(jié)點(diǎn)910a...910n可以為具有網(wǎng)絡(luò)接口的計(jì)算機(jī)系統(tǒng)(例如,個(gè)人數(shù)字助理、膝上型計(jì)算機(jī)、工作站、服務(wù)器、以及其它類似設(shè)備)。節(jié)點(diǎn)910a...910n可以進(jìn)一步可操作地來執(zhí)行一個(gè)或多個(gè)軟件應(yīng)用(未示出),該軟件應(yīng)用包括以P2P方式共享信息(例如,數(shù)據(jù)、應(yīng)用等等)的能力以及作為DHT覆蓋網(wǎng)絡(luò)中的節(jié)點(diǎn)工作的能力。
網(wǎng)絡(luò)920可操作地來提供節(jié)點(diǎn)910a...910n之間的通信通道。網(wǎng)絡(luò)920可以實(shí)現(xiàn)為一個(gè)局域網(wǎng)、廣域網(wǎng)或其組合。網(wǎng)絡(luò)920可以實(shí)現(xiàn)有線協(xié)議比如以太網(wǎng)、令牌環(huán)等等,無線協(xié)議比如蜂窩數(shù)字分組數(shù)據(jù)、Mobitex、IEEE802.11b、藍(lán)牙、無線應(yīng)用協(xié)議、全球移動(dòng)系統(tǒng)等等或其組合。
可以存儲(chǔ)在節(jié)點(diǎn)910a...910n中的一些信息在節(jié)點(diǎn)910a中示出。節(jié)點(diǎn)910a存儲(chǔ)路由表931、全球信息表932以及可能測量的QoS特性。
圖10示出了計(jì)算機(jī)系統(tǒng)1000的示例性框圖,該計(jì)算機(jī)系統(tǒng)1000可以用作如圖9所示的P2P網(wǎng)絡(luò)900中的一個(gè)節(jié)點(diǎn)。該計(jì)算機(jī)系統(tǒng)1000包括一個(gè)或多個(gè)處理器,比如處理器1002,提供用于執(zhí)行軟件的執(zhí)行平臺(tái)。
來自處理器1002的命令和數(shù)據(jù)通過通信總線1004來傳送。該計(jì)算機(jī)系統(tǒng)1000還包括主存儲(chǔ)器1006,比如其中軟件可以在運(yùn)行時(shí)間期間執(zhí)行的隨機(jī)存取存儲(chǔ)器(RAM),以及輔助存儲(chǔ)器1008。該輔助存儲(chǔ)器1008包括例如硬盤驅(qū)動(dòng)器1010和/或可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器1012,其表示軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器等等、或其中可以存儲(chǔ)軟件副本的非易失存儲(chǔ)器。該輔助存儲(chǔ)器1008還可以包括ROM(只讀存儲(chǔ)器)、EPROM(可擦可編程ROM)、EEPROM(電可擦除可編程ROM)。除了軟件之外,在主存儲(chǔ)器1006和/或輔助存儲(chǔ)器1008中還可以存儲(chǔ)路由表、全球信息表和測量的QoS特性。該可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器1012以已知的方式從可移動(dòng)存儲(chǔ)單元1014中讀取和/或?qū)懭肟梢苿?dòng)存儲(chǔ)單元1014。
用戶與具有一個(gè)或多個(gè)輸入設(shè)備108比如鍵盤、鼠標(biāo)、觸針等等的計(jì)算機(jī)系統(tǒng)1000相接口。顯示適配器1022與通信總線1004和顯示器1020相接口并且從處理器1002接收顯示數(shù)據(jù)并且轉(zhuǎn)換該顯示數(shù)據(jù)為顯示器1020的顯示命令。提供網(wǎng)絡(luò)接口1030用于通過如圖9所示的網(wǎng)絡(luò)920與其它節(jié)點(diǎn)進(jìn)行通信。此外,提供傳感器1032用于測量節(jié)點(diǎn)的QoS特性,其可以包括轉(zhuǎn)發(fā)能力、負(fù)荷、帶寬等等。
方法700和800的一個(gè)或多個(gè)步驟可以實(shí)現(xiàn)為嵌入計(jì)算機(jī)可讀介質(zhì)比如存儲(chǔ)器1006和/或1008上并且在計(jì)算機(jī)系統(tǒng)1000上執(zhí)行的軟件。所述步驟通過計(jì)算機(jī)程序來實(shí)現(xiàn),所述計(jì)算機(jī)程序可以以活動(dòng)和不活動(dòng)的多種形式存在。例如,它們可以作為一個(gè)(或多個(gè))軟件程序存在,該軟件程序包含以源代碼、目標(biāo)代碼、可執(zhí)行代碼形式或用于執(zhí)行某些步驟的其它格式的程序指令。上述中的任何一個(gè)可以在計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn),其包括存儲(chǔ)設(shè)備和以壓縮形式或未壓縮形式的信號(hào)。
合適的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備的例子包括常規(guī)的計(jì)算機(jī)系統(tǒng)RAM(隨機(jī)存取存儲(chǔ)器)、ROM(只讀存儲(chǔ)器)、EPROM(可擦可編程ROM)、EEPROM(電可擦除可編程ROM)以及磁盤或光盤或磁帶。計(jì)算機(jī)可讀信號(hào)的例子(不管該信號(hào)是否使用載波調(diào)制)是作為計(jì)算機(jī)程序的宿主的計(jì)算機(jī)系統(tǒng)或運(yùn)行計(jì)算機(jī)程序的計(jì)算機(jī)系統(tǒng)可以被配置來存取的信號(hào),包括通過因特網(wǎng)或其它網(wǎng)絡(luò)下載的信號(hào)。上述的具體例子包括在一個(gè)CD ROM上或通過因特網(wǎng)下載來分配程序。在某種意義上,因特網(wǎng)自身,作為抽象實(shí)體,為一個(gè)計(jì)算機(jī)可讀介質(zhì)。通常對(duì)于計(jì)算機(jī)網(wǎng)絡(luò)同樣適用。因此,應(yīng)當(dāng)理解下面所列出的那些功能可以由能夠執(zhí)行上面所述功能的任何電子設(shè)備來執(zhí)行。
可以由軟件執(zhí)行的所述步驟的一些例子可以包括用于確定距離以生成位置信息的步驟。例如,軟件指示處理器1002使用其它硬件用于生成用來測量到全球標(biāo)志點(diǎn)節(jié)點(diǎn)的RTT以確定距離的探測分組。在另一個(gè)例子中,該軟件可以生成到所述全球信息表的請(qǐng)求,用于識(shí)別預(yù)定附近內(nèi)的本地標(biāo)志點(diǎn)節(jié)點(diǎn)和測量到那些本地標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。該軟件包括用于實(shí)現(xiàn)DHT覆蓋網(wǎng)絡(luò)和用于通過散列一個(gè)標(biāo)志點(diǎn)矢量來存儲(chǔ)信息到DHT覆蓋網(wǎng)絡(luò)中的全球信息表的指令。此外,用于識(shí)別一個(gè)最近節(jié)點(diǎn)的方法800的一些或全部步驟還可以使用計(jì)算機(jī)系統(tǒng)1000中的軟件來執(zhí)行。
對(duì)于本領(lǐng)域的技術(shù)人員而言,很顯然這里所描述的其它步驟可以由軟件來執(zhí)行。例如,如果計(jì)算機(jī)系統(tǒng)1000被選擇作為本地標(biāo)志點(diǎn)節(jié)點(diǎn),則計(jì)算機(jī)系統(tǒng)1000通過生成傳送回節(jié)點(diǎn)的一個(gè)ACK消息可以響應(yīng)所接收的探測分組。因此,傳送探測分組的節(jié)點(diǎn)能夠確定到位置最近的標(biāo)志點(diǎn)節(jié)點(diǎn)的距離。
雖然本發(fā)明已經(jīng)參照其典型實(shí)施例加以描述,但是本領(lǐng)域的技術(shù)人員在不背離真實(shí)的精神實(shí)質(zhì)和范圍的情況下將能夠?qū)λ枋龅膶?shí)施例做出各種修改。例如,對(duì)于本領(lǐng)域的技術(shù)人員而言,這里描述的存儲(chǔ)位置消息的好處可以應(yīng)用到許多應(yīng)用,比如信息存儲(chǔ)、負(fù)荷平衡、阻塞控制、滿足服務(wù)質(zhì)量(QoS)保證、利用存儲(chǔ)能力和轉(zhuǎn)發(fā)能力中的多相性、等等。這里使用的術(shù)語和描述僅通過示例的方式來闡述并且并非用于限制。特別地,盡管本方法已經(jīng)通過例子加以描述,然而本發(fā)明的步驟可以以不同于所示例的順序或同時(shí)來執(zhí)行。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到這些和其它變化可能在下面的權(quán)利要求和其等價(jià)物所定義的精神實(shí)質(zhì)和范圍內(nèi)。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)100中識(shí)別靠近第一節(jié)點(diǎn)10的至少一個(gè)節(jié)點(diǎn)的方法,該方法包括基于候選節(jié)點(diǎn)和第一節(jié)點(diǎn)10的位置信息,從多個(gè)節(jié)點(diǎn)選擇一組候選節(jié)點(diǎn);應(yīng)用聚類算法到所述候選節(jié)點(diǎn)和所述第一節(jié)點(diǎn)10的位置信息;以及基于應(yīng)用所述聚類算法的結(jié)果,識(shí)別最靠近所述第一節(jié)點(diǎn)10的所述組候選節(jié)點(diǎn)的子組。
2.根據(jù)權(quán)利要求1的方法,其中選擇一組候選節(jié)點(diǎn)包括比較所述多個(gè)節(jié)點(diǎn)的位置信息與所述第一節(jié)點(diǎn)的位置信息,以從最靠近所述第一節(jié)點(diǎn)10的所述多個(gè)節(jié)點(diǎn)中選擇所述組候選節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求2的方法,還包括在一個(gè)分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50處,接收所述第一節(jié)點(diǎn)10的位置信息,該分布式散列表覆蓋網(wǎng)絡(luò)200是包括所述第一節(jié)點(diǎn)10和所述多個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò)100的一種邏輯表示;以及在所述分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50處,存儲(chǔ)第一節(jié)點(diǎn)10的所述位置信息。
4.根據(jù)權(quán)利要求3的方法,還包括第一節(jié)點(diǎn)10散列第一節(jié)點(diǎn)10的位置信息以識(shí)別所述分布式散列表覆蓋網(wǎng)絡(luò)200中的位置以存儲(chǔ)第一節(jié)點(diǎn)10的位置信息,其中分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50大約在所識(shí)別的位置處。
5.根據(jù)權(quán)利要求3的方法,還包括在分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50處,接收所述多個(gè)節(jié)點(diǎn)的位置信息;以及在分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50處,存儲(chǔ)所述多個(gè)節(jié)點(diǎn)的所接收的位置信息。
6.根據(jù)權(quán)利要求5的方法,還包括在分布式散列表覆蓋網(wǎng)絡(luò)200中的節(jié)點(diǎn)50處,從所存儲(chǔ)的位置信息檢索所述多個(gè)節(jié)點(diǎn)和所述第一節(jié)點(diǎn)10的位置信息;以及比較所檢索的位置信息以從所述多個(gè)節(jié)點(diǎn)選擇位置最接近第一節(jié)點(diǎn)10的所述組候選節(jié)點(diǎn)。
7.根據(jù)權(quán)利要求1的方法,還包括確定從所述第一節(jié)點(diǎn)10到所述候選節(jié)點(diǎn)子組的每一個(gè)的距離;以及基于所確定的距離,從所述候選節(jié)點(diǎn)子組選擇到所述第一節(jié)點(diǎn)10的一個(gè)最近節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求1的方法,其中所述聚類算法為可操作來識(shí)別第一節(jié)點(diǎn)10和候選節(jié)點(diǎn)的位置信息之間的相似性。
9.一種計(jì)算機(jī)系統(tǒng)1000,可操作來連接一個(gè)對(duì)等網(wǎng)絡(luò)900以及可操作來作為分布式散列表覆蓋網(wǎng)絡(luò)中的分布式散列表節(jié)點(diǎn)工作,該分布式散列表覆蓋網(wǎng)絡(luò)為所述對(duì)等網(wǎng)絡(luò)900的一種邏輯表示,其中所述計(jì)算機(jī)系統(tǒng)1000包括存儲(chǔ)器1006/1008,可操作來存儲(chǔ)所述對(duì)等網(wǎng)絡(luò)900中的多個(gè)節(jié)點(diǎn)的位置信息,所述多個(gè)節(jié)點(diǎn)在網(wǎng)絡(luò)900中物理上靠近;以及處理器1002,可操作來比較所述多個(gè)節(jié)點(diǎn)的位置信息與第一節(jié)點(diǎn)的位置信息,以從所述對(duì)等網(wǎng)絡(luò)900中物理上靠近所述第一節(jié)點(diǎn)的多個(gè)節(jié)點(diǎn)中識(shí)別一組節(jié)點(diǎn)。
10.根據(jù)權(quán)利要求9的計(jì)算機(jī)系統(tǒng),其中處理器1002可操作來應(yīng)用一種聚類算法到所述組節(jié)點(diǎn)的位置信息以識(shí)別最靠近所述第一節(jié)點(diǎn)的節(jié)點(diǎn)子組。
全文摘要
網(wǎng)絡(luò)100包括多個(gè)節(jié)點(diǎn)10-50?;诰W(wǎng)絡(luò)100中的候選節(jié)點(diǎn)以及第一節(jié)點(diǎn)10的位置信息,從所述多個(gè)節(jié)點(diǎn)10-50選擇一組候選節(jié)點(diǎn)。一種聚類算法被應(yīng)用到所述候選節(jié)點(diǎn)和所述第一節(jié)點(diǎn)10的位置信息。并且基于應(yīng)用該聚類算法的結(jié)果,識(shí)別出最靠近所述第一節(jié)點(diǎn)10的所述組候選節(jié)點(diǎn)的子組。
文檔編號(hào)H04L12/56GK1939003SQ200580009708
公開日2007年3月28日 申請(qǐng)日期2005年1月28日 優(yōu)先權(quán)日2004年1月30日
發(fā)明者Z·徐, S·巴內(nèi)杰, S·-J·李 申請(qǐng)人:惠普開發(fā)有限公司