專利名稱:鏈路狀態(tài)協(xié)議控制的網(wǎng)絡(luò)中路由選擇信息的分布式存儲(chǔ)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及路由選擇信息管理,并且更具體來說,涉及用于鏈路 狀態(tài)協(xié)議控制的網(wǎng)絡(luò)中的路由選擇信息的分布式存儲(chǔ)的方法和設(shè)備。
背景技術(shù):
數(shù)據(jù)通信網(wǎng)絡(luò)可包括耦合在一起并且配置成相互傳遞數(shù)據(jù)的各種 計(jì)算機(jī)、服務(wù)器、節(jié)點(diǎn)、路由器、交換機(jī)、網(wǎng)橋、集線器、代理和其 它網(wǎng)絡(luò)裝置。這些裝置在本文將稱作"網(wǎng)絡(luò)元件"。通過利用一條或 多條通信鏈路在網(wǎng)絡(luò)元件之間傳送例如數(shù)據(jù)幀、分組、信元或段等的 協(xié)議數(shù)據(jù)單元,經(jīng)由數(shù)據(jù)通信網(wǎng)絡(luò)來傳遞數(shù)據(jù)。當(dāng)特定的協(xié)議數(shù)據(jù)單 元(PDU)通過網(wǎng)絡(luò)在其源與其目的地之間傳播時(shí),它可以由多個(gè)網(wǎng)絡(luò) 元件和交叉的多條通信鏈路來處理。
當(dāng)網(wǎng)絡(luò)元件接收到向未知網(wǎng)絡(luò)地址傳送數(shù)據(jù)的請(qǐng)求時(shí),網(wǎng)絡(luò)元件 可嘗試獲得到達(dá)該未知網(wǎng)絡(luò)地址所需的路由選擇信息。存在確定PDU 的路由選擇信息的若干常見方式。例如,在以太網(wǎng)網(wǎng)絡(luò)中,請(qǐng)求可由 網(wǎng)絡(luò)元件廣播到網(wǎng)絡(luò)上,以便查看是否任何其它網(wǎng)絡(luò)元件知道如何到 達(dá)該特定地址。當(dāng)廣播網(wǎng)絡(luò)元件接收到應(yīng)答時(shí),它知道如何將以太網(wǎng)幀轉(zhuǎn)發(fā)給預(yù)期的地址。這通常結(jié)合提供商邊緣節(jié)點(diǎn)發(fā)生,所述提供商 邊緣節(jié)點(diǎn)需要將特定客戶地址映射到提供商MAC地址,使得幀可被 轉(zhuǎn)發(fā)通過提供商網(wǎng)絡(luò)。在這種情況下,提供商邊緣節(jié)點(diǎn)可具有到達(dá)所 有其它提供商邊緣節(jié)點(diǎn)的路由選擇信息,但是可能沒有通過所有其它 提供商邊緣節(jié)點(diǎn)可得到的所有客戶路由的路由選擇信息。提供商邊緣 節(jié)點(diǎn)將需要確定其它提供商邊緣節(jié)點(diǎn)的哪一個(gè)能夠到達(dá)該客戶路由,
之后將PDU轉(zhuǎn)發(fā)到那個(gè)提供商邊緣節(jié)點(diǎn)上。
在所請(qǐng)求地址是IP地址的情況下,查找與該IP地址關(guān)聯(lián)的資源
的網(wǎng)絡(luò)位置的常見方式是將請(qǐng)求傳遞到域名服務(wù)(DNS)。 DNS系統(tǒng)是 一種分級(jí)系統(tǒng),它依靠將更通用的地址緩存到整個(gè)網(wǎng)絡(luò)的分布式DNS 服務(wù)器上,使得下級(jí)服務(wù)器能夠處理許多IP解析請(qǐng)求而無需DNS根 服務(wù)器或者分級(jí)結(jié)構(gòu)中更高級(jí)的那些服務(wù)器涉及到其中。具體來說, 具有未知IP地址的節(jié)點(diǎn)將請(qǐng)求傳遞給它的本地DNS服務(wù)器,并且如 果那個(gè)服務(wù)器不具有必要的信息,那么它將請(qǐng)求進(jìn)一步沿分級(jí)結(jié)構(gòu)向 上傳遞,直至到達(dá)具有所需信息的副本的服務(wù)器。
隨著提供商網(wǎng)絡(luò)上的節(jié)點(diǎn)數(shù)量增加,以及通過網(wǎng)絡(luò)可得到的客戶 路由數(shù)量增加,通過對(duì)所有節(jié)點(diǎn)廣播請(qǐng)求來解析路由請(qǐng)求變得越來越 低效。具體來說,廣播請(qǐng)求需要網(wǎng)絡(luò)上的各節(jié)點(diǎn)處理每個(gè)請(qǐng)求,這在 節(jié)點(diǎn)數(shù)量增加以及請(qǐng)求數(shù)量增加時(shí)變得低效。
類似地,隨著IP電話的出現(xiàn),對(duì)IP地址的一次性請(qǐng)求的數(shù)量預(yù) 計(jì)會(huì)增加。例如,如果所請(qǐng)求的IP地址與網(wǎng)絡(luò)上所進(jìn)行的電話呼叫的 目的地關(guān)聯(lián),則預(yù)計(jì)對(duì)與這些IP地址關(guān)聯(lián)的路由選擇信息的請(qǐng)求中的 大多數(shù)將是一次性請(qǐng)求,因?yàn)椴豢赡茉S多人始終呼叫電話號(hào)碼的同一 小集合。隨著對(duì)IP地址的一次性請(qǐng)求的比例增加,DNS服務(wù)的分級(jí)性 質(zhì)的效率可預(yù)計(jì)會(huì)降低,因?yàn)槎鄠€(gè)請(qǐng)求更加不可能對(duì)同一個(gè)IP地址進(jìn) 行。具體來說,緩存對(duì)IP地址的相對(duì)近的請(qǐng)求可預(yù)計(jì)不太有價(jià)值,其 中在特定時(shí)間周期內(nèi)將會(huì)^t妾收到對(duì)同 一個(gè)IP地址的第二次請(qǐng)求更加不 可能。這可預(yù)計(jì)增加對(duì)DNS根服務(wù)器的需求,并且可能使DNS服務(wù)成為網(wǎng)絡(luò)上的瓶頸。
因此,有利的是提供一種使路由選擇信息在網(wǎng)絡(luò)上可得到的新方式。
發(fā)明內(nèi)容
實(shí)現(xiàn)分布式哈希表以便存儲(chǔ)網(wǎng)絡(luò)上的路由選擇信息。根據(jù)本發(fā)明
的一個(gè)實(shí)施例,結(jié)合鏈路狀態(tài)路由選擇協(xié)議的實(shí)現(xiàn)來交換的節(jié)點(diǎn)ID用 作分布式哈希表中的密鑰,并且路由存儲(chǔ)在網(wǎng)絡(luò)上的一個(gè)或多個(gè)節(jié)點(diǎn) 處。當(dāng)路由被獲知時(shí),對(duì)照密鑰集合來處理該路由以便確定哪些節(jié)點(diǎn) 應(yīng)當(dāng)存儲(chǔ)該路由。當(dāng)需要路由時(shí),對(duì)照密鑰集合來處理該路由以便確 定哪些節(jié)點(diǎn)應(yīng)當(dāng)具有路由信息。對(duì)照密鑰集合來處理路由的方式在兩 種情況下都是相同的,使得DHT可用于存儲(chǔ)和檢索網(wǎng)絡(luò)上的路由信 息。DHT可實(shí)現(xiàn)為存儲(chǔ)MAC地址、IP地址、MPLS標(biāo)簽或者其它受 關(guān)注信息,以便使路由能夠由網(wǎng)絡(luò)上的網(wǎng)絡(luò)元件存儲(chǔ)和獲知。
通過所附權(quán)利要求書中的詳細(xì)資料來指出本發(fā)明的方面。通過以 下附圖中示例來說明本發(fā)明,附圖中相似的參考標(biāo)號(hào)表示相似元件。 以下附圖公開本發(fā)明的各種實(shí)施例,僅用于說明而不是要限制本發(fā)明 的范圍。為了簡(jiǎn)潔起見,可能不是每一個(gè)組件都在每張附圖中標(biāo)記。 附圖包括
圖1是可用來實(shí)現(xiàn)其中節(jié)點(diǎn)實(shí)現(xiàn)DHT的本發(fā)明的 一個(gè)實(shí)施例并且 示出路由添加和路由查詢操作的示例網(wǎng)絡(luò)的原理框圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例、可用來實(shí)現(xiàn)節(jié)點(diǎn)并且參與DHT 的網(wǎng)絡(luò)元件的原理框圖3是示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、可用于建立和使用DHT來 存儲(chǔ)路由信息的過程的流程圖4-6是根據(jù)本發(fā)明的一個(gè)實(shí)施例、可用來實(shí)現(xiàn)由諸如圖2的網(wǎng)絡(luò)元件之類的網(wǎng)絡(luò)元件所存儲(chǔ)的表以便使網(wǎng)絡(luò)元件能夠參與DHT的 數(shù)據(jù)結(jié)構(gòu);
圖7-8示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、與將節(jié)點(diǎn)添加到DHT有關(guān) DHT進(jìn)行變更的方式;以及
圖9-10示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、與從DHT刪除節(jié)點(diǎn)有關(guān) DHT進(jìn)行變更的方式。
具體實(shí)施例方式
圖1示出示例通信網(wǎng)絡(luò)10,其中網(wǎng)絡(luò)元件12經(jīng)由鏈路14而互連。 網(wǎng)絡(luò)元件可定義自主網(wǎng)絡(luò),并且實(shí)現(xiàn)諸如中間系統(tǒng)到中間系統(tǒng)(IS-IS) 或開放最短路徑優(yōu)先(OSPF)之類的鏈路狀態(tài)路由選擇協(xié)議,以便允許 計(jì)算網(wǎng)絡(luò)元件12之間的路由。網(wǎng)絡(luò)10上的網(wǎng)絡(luò)元件將交換問候消息 以便獲知節(jié)點(diǎn)之間的相鄰性,并且交換鏈路狀態(tài)通告以便使網(wǎng)絡(luò)上的 所有節(jié)點(diǎn)能夠構(gòu)建表示網(wǎng)絡(luò)的拓樸的鏈路狀態(tài)數(shù)據(jù)庫(kù)。
雖然結(jié)合描述實(shí)施例將提供特別強(qiáng)調(diào),在所述實(shí)施例中網(wǎng)絡(luò)是實(shí) 現(xiàn)鏈路狀態(tài)協(xié)議以便控制以太網(wǎng)網(wǎng)絡(luò)上路由選擇的以太網(wǎng)網(wǎng)絡(luò),但是 本發(fā)明并不局限于這種方式,因?yàn)榫W(wǎng)絡(luò)10也可實(shí)現(xiàn)為IP網(wǎng)絡(luò)、MPLS 網(wǎng)絡(luò)或者另一種網(wǎng)絡(luò)。
通過采用無回路最短路徑轉(zhuǎn)發(fā)(loop-free shortest path forwarding) 提供網(wǎng)絡(luò)容量的更有效使用,使用鏈路狀態(tài)協(xié)議來控制以太網(wǎng)網(wǎng)絡(luò)使 以太網(wǎng)網(wǎng)絡(luò)能夠從LAN空間縮放(scale)到WAN或提供商網(wǎng)絡(luò)空間。 不是通過使用與透明橋接結(jié)合的生成樹協(xié)議(STP)算法來利用各節(jié)點(diǎn) 處獲知的網(wǎng)絡(luò)視圖,而是在鏈路狀態(tài)協(xié)議控制的以太網(wǎng)網(wǎng)絡(luò)中,形成 網(wǎng)狀網(wǎng)絡(luò)的網(wǎng)橋交換鏈路狀態(tài)通告,以便使各節(jié)點(diǎn)能夠具有網(wǎng)絡(luò)拓樸 的同步視圖。這經(jīng)由鏈路狀態(tài)路由選擇系統(tǒng)的充分理解的機(jī)制來實(shí)現(xiàn)。 網(wǎng)絡(luò)中的網(wǎng)橋具有網(wǎng)絡(luò)拓樸的同步視圖,了解必要的單播和多播連通 性,能計(jì)算網(wǎng)絡(luò)中任一對(duì)網(wǎng)橋之間的最短路徑連通性,并且能根據(jù)網(wǎng) 絡(luò)的所計(jì)算視圖單獨(dú)裝載(populate)其轉(zhuǎn)發(fā)信息庫(kù)(FIB)。在2006年10月2日提交的標(biāo)題為"提供商鏈路狀態(tài)橋接" ("Provider Link State Bridging")的申請(qǐng)No.ll/537,775中公開這種性質(zhì) 的鏈路狀態(tài)協(xié)議控制的以太網(wǎng)網(wǎng)絡(luò)的一個(gè)示例,由此通過引用將其內(nèi) 容結(jié)合到本文中。正如那個(gè)申請(qǐng)中更詳細(xì)地描述,鏈路狀態(tài)協(xié)議控制 的以太網(wǎng)網(wǎng)絡(luò)中的節(jié)點(diǎn)交換問候消息以便獲知網(wǎng)絡(luò)上的其它節(jié)點(diǎn)的相 鄰性,并且傳送鏈路狀態(tài)通告以便使網(wǎng)絡(luò)上的各節(jié)點(diǎn)能夠構(gòu)建鏈路狀 態(tài)數(shù)據(jù)庫(kù)。鏈路狀態(tài)數(shù)據(jù)庫(kù)可用來計(jì)算通過網(wǎng)絡(luò)的最短路徑。然后, 各節(jié)點(diǎn)裝載轉(zhuǎn)發(fā)信息庫(kù)(FIB),它將由節(jié)點(diǎn)用來進(jìn)行轉(zhuǎn)發(fā)判定,使得以 太網(wǎng)幀將通過所計(jì)算的最短路徑轉(zhuǎn)發(fā)到目的地。由于到特定目的地的
最短路徑將取決于業(yè)務(wù)的源,所以網(wǎng)絡(luò)業(yè)務(wù)可比一個(gè)或多個(gè)生成樹祐:
用來攜帶網(wǎng)絡(luò)上的業(yè)務(wù)的情況分布于更大數(shù)量的鏈路。
在給定管理域內(nèi),形成以太網(wǎng)網(wǎng)絡(luò)的網(wǎng)絡(luò)元件可基于作為給定管
理域的部分的網(wǎng)絡(luò)上網(wǎng)絡(luò)元件的目標(biāo)MAC地址來轉(zhuǎn)發(fā)分組。當(dāng)業(yè)務(wù) 到達(dá)網(wǎng)絡(luò)的邊緣時(shí),邊緣網(wǎng)絡(luò)元件將把業(yè)務(wù)映射到服務(wù),并且在通過 與服務(wù)關(guān)聯(lián)的網(wǎng)絡(luò)的路徑上轉(zhuǎn)發(fā)業(yè)務(wù)。
這可能發(fā)生的一種常見情況是客戶業(yè)務(wù)將通過提供商的以太網(wǎng)網(wǎng) 絡(luò)來路由。使用客戶MAC尋址空間來尋址的客戶幀將穿過(traverse) 客戶網(wǎng)絡(luò),直至它到達(dá)客戶網(wǎng)絡(luò)的邊緣。當(dāng)幀到達(dá)提供商網(wǎng)絡(luò)時(shí),提 供商網(wǎng)絡(luò)將查看目標(biāo)地址(C-MAC地址),并且確定提供商網(wǎng)絡(luò)上的哪 一個(gè)節(jié)點(diǎn)能夠到達(dá)那個(gè)客戶MAC地址。正如下面更詳細(xì)地進(jìn)行描述, 分布式哈希表可用于存儲(chǔ)提供商-客戶關(guān)聯(lián),使得提供商網(wǎng)絡(luò)元件能 夠通過向DHT發(fā)出查詢來獲知這種關(guān)聯(lián)。
作為另一個(gè)示例,在IP網(wǎng)絡(luò)中,與IP地址關(guān)聯(lián)的資源的位置可 能需要由IP網(wǎng)絡(luò)上的路由器來查找。根據(jù)本發(fā)明的一個(gè)實(shí)施例,IP地 址和網(wǎng)絡(luò)位置可存儲(chǔ)在DHT中,其中網(wǎng)絡(luò)上的節(jié)點(diǎn)實(shí)現(xiàn)DHT的部分。 作為又一個(gè)示例,在MPLS網(wǎng)絡(luò)中,標(biāo)簽邊緣路由器可能需要獲知哪 一個(gè)標(biāo)簽將用于在通過網(wǎng)絡(luò)的標(biāo)簽交換路徑上轉(zhuǎn)發(fā)業(yè)務(wù)。標(biāo)簽可存儲(chǔ) 在網(wǎng)絡(luò)元件所實(shí)現(xiàn)的DHT中,以便允許才全索業(yè)務(wù)流的標(biāo)簽。正如下面更詳細(xì)地進(jìn)行描述,可形成分布式哈希表,使得網(wǎng)絡(luò)上 的各節(jié)點(diǎn)具有形成分布式哈希表中的密鑰的節(jié)點(diǎn)ID。各節(jié)點(diǎn)則配置成 存儲(chǔ)路由選擇數(shù)據(jù)總量的子集,其中哈希值充分接近其密鑰。當(dāng)節(jié)點(diǎn) 獲知路由時(shí),它存儲(chǔ)該路由的本地副本,并且將路由的副本轉(zhuǎn)發(fā)給網(wǎng)
絡(luò)中配置成存儲(chǔ)DHT的那個(gè)部分的那些節(jié)點(diǎn)(即,其ID '接近,路由 的密鑰/ID的節(jié)點(diǎn))。節(jié)點(diǎn)ID和路由ID可以以一致的方式進(jìn)行哈希(hash) 或者其它處理,使得節(jié)點(diǎn)ID和路由ID占用同一空間。
實(shí)現(xiàn)鏈路狀態(tài)路由選擇協(xié)議還使所有節(jié)點(diǎn)能夠知道網(wǎng)絡(luò)上所有其 它節(jié)點(diǎn)的標(biāo)識(shí)。具體來說,作為鏈路狀態(tài)路由選擇協(xié)議的部分,節(jié)點(diǎn) 均將傳送包含其節(jié)點(diǎn)ID以及與它們所連接的鏈路相關(guān)的信息的鏈路 狀態(tài)通告。這種信息將用來形成鏈路狀態(tài)數(shù)據(jù)庫(kù)。正如本文更詳細(xì)地 描述,根據(jù)本發(fā)明的一個(gè)實(shí)施例,結(jié)合鏈路狀態(tài)路由選擇協(xié)議所交換 的節(jié)點(diǎn)ID可與分布式哈希表中存儲(chǔ)的路由密鑰進(jìn)行比較,使得各節(jié)點(diǎn) 從其鏈路狀態(tài)數(shù)據(jù)庫(kù)了解到哪些節(jié)點(diǎn)負(fù)責(zé)將哪些路由密鑰存儲(chǔ)在 DHT中。然后,密鑰可用于以確定性方式存儲(chǔ)以及檢索來自DHT的 路由信息。通過使用鏈路狀態(tài)數(shù)據(jù)庫(kù)中的節(jié)點(diǎn)信息來確定應(yīng)當(dāng)由那個(gè) 節(jié)點(diǎn)存儲(chǔ)的DHT的密鑰,能夠簡(jiǎn)化密鑰的計(jì)算,以便使DHT更易于 實(shí)現(xiàn)。另外,對(duì)LSDB的變更可傳播入DHT,使得DHT成員可在網(wǎng) 絡(luò)拓樸改變時(shí)自動(dòng)調(diào)整。
分布式哈希表是對(duì)等技術(shù),在E.RESCORLA的標(biāo)題為"分布式哈 希表入門,,("Introduction to Distributed Hash Tables")的論文以及 P.MAYMOUNKOV等人的標(biāo)題為"Kademlia:基于XOR量度的對(duì)等 信息系統(tǒng)"(Kademlia:A Peer-to-Peer Information System Based on the XOR Metric)的論文中對(duì)它進(jìn)行了更詳細(xì)地描述,由此通過引用將其內(nèi) 容結(jié)合。根據(jù)本發(fā)明的一個(gè)實(shí)施例,通過使數(shù)據(jù)存儲(chǔ)在分布式哈希表 來將這類關(guān)聯(lián)的數(shù)據(jù)均勻地分布于網(wǎng)絡(luò),諸如用戶到提供商地址關(guān)聯(lián) 和IP路由選擇信息之類的路由選擇信息可存儲(chǔ)在極大的網(wǎng)絡(luò)中,其中 網(wǎng)絡(luò)元件各自承擔(dān)存儲(chǔ)分布式哈希表的一部分的職責(zé)。從LSDB所確定的節(jié)點(diǎn)ID可與DHT中的路由/密鑰進(jìn)行比較,以便使節(jié)點(diǎn)能夠確定 應(yīng)當(dāng)存儲(chǔ)已知路由選擇信息的位置以及可找到未知路由選擇信息的位置。
當(dāng)節(jié)點(diǎn)接收到路由信息時(shí),它將存儲(chǔ)該路由信息,并且使那個(gè)信 息在請(qǐng)求時(shí)可用。通過使各節(jié)點(diǎn)存儲(chǔ)路由選擇信息的一部分,不需要 節(jié)點(diǎn)存儲(chǔ)整個(gè)路由選擇表,使得對(duì)任一個(gè)節(jié)點(diǎn)的存儲(chǔ)要求可降低。通 過指定冗余因子,信息的多個(gè)副本可存儲(chǔ)在DHT中,使得任一個(gè)節(jié)點(diǎn) 的故障不會(huì)影響其它節(jié)點(diǎn)查找特定路由信息的能力。
圖2示出可用于實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的網(wǎng)絡(luò)元件的一個(gè)示 例。如圖2所示,網(wǎng)絡(luò)元件包括數(shù)據(jù)平面50和控制平面60。數(shù)據(jù)平 面50 —般包括配置成與網(wǎng)絡(luò)上的鏈if^4妾口的輸入/輸出卡、配置成對(duì) 于通過I/O卡52所接收的數(shù)據(jù)執(zhí)行功能的數(shù)據(jù)卡54以及配置成在數(shù) 據(jù)卡/I/O卡之間交換數(shù)據(jù)的交換結(jié)構(gòu)(switchfabric)56??刂破矫姘?理器62,所述處理器62包含配置成實(shí)現(xiàn)DHT進(jìn)程64、消息傳遞進(jìn)程 66和鏈路狀態(tài)路由選擇進(jìn)程67的控制邏輯。消息傳遞進(jìn)程可用于例 如格式化DHT添加消息和DHT查詢消息、將包含路由選擇信息的 DHT條目添加入DHT以及從DHT提取DHT條目。其它進(jìn)程也可在 控制邏輯中實(shí)現(xiàn)。與DHT和消息傳遞進(jìn)程關(guān)聯(lián)的數(shù)據(jù)和指令可作為 DHT軟件68存儲(chǔ)在存儲(chǔ)器70中。與鏈路狀態(tài)路由選擇進(jìn)程67關(guān)聯(lián) 的數(shù)據(jù)和指令可作為協(xié)議棧軟件69存儲(chǔ)在存儲(chǔ)器70中。本地?cái)?shù)據(jù)表 72、遠(yuǎn)程數(shù)據(jù)表74、成員表76和鏈路狀態(tài)數(shù)據(jù)庫(kù)78的示例在本文更 詳細(xì)地描述,它們可保存在存儲(chǔ)器70中、保存在網(wǎng)絡(luò)元件16內(nèi)的其 它存儲(chǔ)器中或者接口到網(wǎng)絡(luò)元件并且存儲(chǔ)在外部存儲(chǔ)器中。
圖3示出可用于實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的進(jìn)程。圖3提供該進(jìn) 程的概覽;下面結(jié)合圖4-9來闡明附加細(xì)節(jié),圖4-9示出根據(jù)本發(fā)明的 一個(gè)實(shí)施例、可用于實(shí)現(xiàn)分布式哈希表(DHT)的部分的示例表的數(shù)據(jù) 結(jié)構(gòu)。
如圖3所示,節(jié)點(diǎn)交換鏈路狀態(tài)通告(IOO),以便獲知網(wǎng)絡(luò)上參與DHT的所有節(jié)點(diǎn)的MAC地址。各節(jié)點(diǎn)將使用節(jié)點(diǎn)ID來構(gòu)建BHT成 員表(參見圖4),它將使節(jié)點(diǎn)能夠確定節(jié)點(diǎn)的哪一個(gè)應(yīng)當(dāng)用于存儲(chǔ)特定 密鑰/路由,以及使節(jié)點(diǎn)能夠確定應(yīng)當(dāng)發(fā)送特定密鑰/路由的查詢的位 置。例如,網(wǎng)絡(luò)上的各節(jié)點(diǎn)將具有MAC地址。MAC地址可經(jīng)過哈希 以便創(chuàng)建節(jié)點(diǎn)ID,然后可對(duì)節(jié)點(diǎn)ID排序(order)以便創(chuàng)建成員表(102)。 備選地,節(jié)點(diǎn)MAC地址本身可以是節(jié)點(diǎn)ID。雖然將描述其中節(jié)點(diǎn) MAC地址用于創(chuàng)建節(jié)點(diǎn)ID的本發(fā)明的一個(gè)實(shí)施例,但是本發(fā)明并不 局限于這種方式,因?yàn)槠渌畔⒖捎米鱀HT的基礎(chǔ)。例如,節(jié)點(diǎn)的IP 地址可用來形成節(jié)點(diǎn)的DHT ID的基礎(chǔ)。
網(wǎng)絡(luò)上的節(jié)點(diǎn)被連接到客戶LAN,并且獲知的=客戶-提供商關(guān) 聯(lián)(C-MAC至P-MAC對(duì)),它們也將被稱作路由。路由與客戶MAC地 址(至該對(duì)的密鑰)關(guān)聯(lián),所述客戶MAC地址可用于確定路由應(yīng)當(dāng)存儲(chǔ) 在分布式哈希表中的位置。
因此,如圖3所示,當(dāng)節(jié)點(diǎn)獲知路由時(shí),節(jié)點(diǎn)對(duì)與該路由關(guān)聯(lián)的 C-MAC地址執(zhí)行哈希,以便獲得路由/密鑰ID(104)。該哈希函數(shù)與用 于創(chuàng)建節(jié)點(diǎn)ID的哈希函數(shù)相同,使得路由ID和節(jié)點(diǎn)ID具有同 一格式, 并且因此可易于使用XOR過程或其它數(shù)學(xué)過程進(jìn)行比較。然后,節(jié)點(diǎn) 將對(duì)路由ID與(102)中找到的節(jié)點(diǎn)ID進(jìn)行比較,以便確定節(jié)點(diǎn)的哪一 個(gè)充分"接近"該路由ID。結(jié)合圖1更詳細(xì)地描述如何執(zhí)行比較的一 個(gè)示例。如圖1所示,假定節(jié)點(diǎn)1001獲知它要存儲(chǔ)在分布式哈希表中 的<密鑰,值〉對(duì)(本例中為OMAC/P-MAO),使得所有節(jié)點(diǎn)能夠有權(quán) 訪問<密鑰,值>對(duì)。例如,假定節(jié)點(diǎn)1001獲知路由〈1100,V1〉。節(jié)點(diǎn) 1001將對(duì)密鑰(1100)與所有其它節(jié)點(diǎn)ID執(zhí)行XOR運(yùn)算,以便確定哪 些節(jié)點(diǎn)具有最接近該密鑰ID的節(jié)點(diǎn)ID。然后,該節(jié)點(diǎn)根據(jù)所使用的 比較算法(本例中為XOR運(yùn)算)將把〈密鑰,值>對(duì)發(fā)送給最接近的那些 節(jié)點(diǎn),使得它們可存儲(chǔ)該<密鑰,值>對(duì)。在所示示例中,節(jié)點(diǎn)1101 和1110將與1100具有最小XOR距離,因此僅向那些節(jié)點(diǎn)發(fā)送 〈1100,Vl〉對(duì)供存儲(chǔ)。由于向兩個(gè)節(jié)點(diǎn)發(fā)送該路由供存儲(chǔ),所以本例中的復(fù)制因子(r印lication factor)為2(K=2)。接收該路由的節(jié)點(diǎn)將在其遠(yuǎn)程 數(shù)據(jù)表中存儲(chǔ)<密鑰,值>對(duì)。
如圖3所示, 一旦值被存儲(chǔ),當(dāng)節(jié)點(diǎn)需要獲知路由時(shí),它將對(duì)設(shè) 法找到的C-MAC地址執(zhí)行哈希,以便獲得路由/密鑰ID(108)。然后, 節(jié)點(diǎn)將通過對(duì)路由ID與成員表中節(jié)點(diǎn)的節(jié)點(diǎn)ID進(jìn)行比較,來確定 DHT中的節(jié)點(diǎn)的哪一個(gè)應(yīng)當(dāng)用于查詢路由/密鑰ID的路由選擇信息。 例如,這可使用上述XOR距離過程來完成。然后,節(jié)點(diǎn)將把對(duì)<密鑰, 值>對(duì)的請(qǐng)求傳送給節(jié)點(diǎn)ID最接近高于(immediately higher)路由ID的 K個(gè)節(jié)點(diǎn)的至少一個(gè)(110)或者傳送給具有纟皮認(rèn)為最接近路由/密鑰ID 的節(jié)點(diǎn)ID的k個(gè)節(jié)點(diǎn)。接收請(qǐng)求的節(jié)點(diǎn)將從其遠(yuǎn)程數(shù)據(jù)表(參見圖6) 提取路由信息,并且以路由條目的路由信息(在這種情況下為所請(qǐng)求 C-MAC的P-MAC)響應(yīng)(112)。
在圖1所示的示例中,例如假定節(jié)點(diǎn)0011發(fā)現(xiàn)它需要其值的密鑰。 具體來說,假定節(jié)點(diǎn)0011發(fā)現(xiàn)密鑰1100,但是沒有與那個(gè)密鑰關(guān)聯(lián) 的值。密鑰可以是與從客戶LAN所接收的幀關(guān)聯(lián)的哈希C-MAC地址, 或者可表示諸如IP地址之類的另一實(shí)際量。節(jié)點(diǎn)將在密鑰與拓樸中的 所有其它節(jié)點(diǎn)ID之間執(zhí)行XOR運(yùn)算,以便查找兩個(gè)最接近已知密鑰 的節(jié)點(diǎn)ID。注意,節(jié)點(diǎn)使用如將<密鑰,值>對(duì)放入DHT時(shí)所執(zhí)行的 相同值來執(zhí)行同一XOR距離過程,因此可預(yù)計(jì)節(jié)點(diǎn)0011也將確定節(jié) 點(diǎn)1101和1110可能具有那個(gè)密鑰的值的副本。節(jié)點(diǎn)0011可向節(jié)點(diǎn) 1101和1110傳送請(qǐng)求密鑰1100的值的請(qǐng)求,并且預(yù)計(jì)節(jié)點(diǎn)的一個(gè)或 兩個(gè)將能夠以值VI響應(yīng)。
雖然本文已經(jīng)描述了實(shí)施例,在所述實(shí)施例中通過在節(jié)點(diǎn)ID與路 由ID之間執(zhí)行XOR運(yùn)算來確定節(jié)點(diǎn)ID與路由ID之間的距離,但是, 本發(fā)明并不局限于這種方式,因?yàn)閷?duì)值進(jìn)行比較以確定節(jié)點(diǎn)ID與路由 ID之間的相對(duì)距離的其它數(shù)學(xué)方式也可使用。
通過使值VI在DHT中存儲(chǔ)多次(特定數(shù)目取決于復(fù)制因子K), 請(qǐng)求節(jié)點(diǎn)可接收多個(gè)響應(yīng)。但是,將值存儲(chǔ)在DHT中的一個(gè)以上位置提供針對(duì)網(wǎng)絡(luò)中的任一個(gè)節(jié)點(diǎn)的故障的彈性(resiliency),因?yàn)榇鎯?chǔ)在該 節(jié)點(diǎn)的信息可從形成DHT的其它剩余節(jié)點(diǎn)重新創(chuàng)建和重新分發(fā)。下面 結(jié)合圖7-10更詳細(xì)地描述對(duì)DHT添加和刪除節(jié)點(diǎn)。
由于網(wǎng)絡(luò)元件正運(yùn)行諸如OSPF或ISIS之類的鏈路狀態(tài)協(xié)議,所 以各節(jié)點(diǎn)具有節(jié)點(diǎn)的列表和節(jié)點(diǎn)地址。這種信息可用于確定:l是供商網(wǎng)
絡(luò)中的所有提供商節(jié)點(diǎn)的節(jié)點(diǎn)ID。當(dāng)DHT用于存儲(chǔ)客戶端/提供商關(guān) 聯(lián)并且客戶端到提供商節(jié)點(diǎn)關(guān)聯(lián)被獲知時(shí),完成DHT "添加"以便將 <客戶端,提供商〉信息插入DHT。因此,在這種情況下,該值是其中 可找到客戶端路由的提供商節(jié)點(diǎn),并且客戶端MAC地址是與提供商 節(jié)點(diǎn)的節(jié)點(diǎn)ID進(jìn)行XOR運(yùn)算以便確定哪一個(gè)提供商節(jié)點(diǎn)應(yīng)當(dāng)存儲(chǔ)< 客戶端,提供商>對(duì)的密鑰。
當(dāng)客戶端首次想要與另 一個(gè)客戶端通話時(shí),它通過對(duì)照DHT進(jìn)行 查詢來向DHT請(qǐng)求與那個(gè)客戶端的提供商關(guān)聯(lián)。具體來說,客戶端值 與節(jié)點(diǎn)ID進(jìn)行XOR運(yùn)算,以便確定DHT中的哪些節(jié)點(diǎn)應(yīng)當(dāng)存儲(chǔ)那 個(gè)<客戶端,提供商>地址關(guān)聯(lián),并且然后查詢將被發(fā)送給DHT中被 確定存儲(chǔ)那個(gè)關(guān)聯(lián)的提供商節(jié)點(diǎn)。DHT中的節(jié)點(diǎn)將以<客戶端,提供 商>對(duì)響應(yīng),使得客戶端可獲知哪一個(gè)提供商節(jié)點(diǎn)能夠到達(dá)預(yù)計(jì)客戶端 地址。這樣,DHT添加/查詢操作使用鏈路狀態(tài)拓樸以確定性方式識(shí)別 存儲(chǔ)/查詢<客戶端,提供商〉關(guān)聯(lián)的少量(K)提供商節(jié)點(diǎn)。通過使用節(jié) 點(diǎn)ID作為對(duì)DHT的密鑰,密鑰計(jì)算過程可極大地簡(jiǎn)化。另外,由于 所有節(jié)點(diǎn)具有鏈路狀態(tài)數(shù)據(jù)庫(kù)的更新副本,所以所有節(jié)點(diǎn)具有在DHT 中正i^f吏用的節(jié)點(diǎn)ID的集合的當(dāng)前副本,因此當(dāng)DHT成員/密鑰所有 權(quán)隨網(wǎng)絡(luò)拓樸的變更而變更時(shí),無需附加信令機(jī)制來更新節(jié)點(diǎn)。
密鑰可以是以太網(wǎng)MAC地址、諸如EPV4或IPv6地址之類的IP
的其它公共或?qū)S械刂?。類似地,要隨特定密鑰一起存儲(chǔ)在DHT中的 值也可以是以太網(wǎng)MAC地址、諸如IPV4或IPv6地址之類的IP地址、 NSAP地址或者包括MPLS標(biāo)簽或其它標(biāo)簽的其它公共或?qū)S械刂?。一般來說,在所有正使用分級(jí)路由選擇系統(tǒng)并且必須存儲(chǔ)映射以便從 上級(jí)地址映射到下級(jí)地址的情況下,與任一個(gè)或兩個(gè)地址的格式無關(guān),
DHT可用于以有效方式來存儲(chǔ)這種關(guān)系。類似地,節(jié)點(diǎn)和路由ID可 取自開放式系統(tǒng)互連基本參考模型(OSI)層的同 一層,或者可取自不同 的層。例如,節(jié)點(diǎn)和if各由ID都可以是第2層值(MAC地址)、都可以 是第3層值(IP地址)或者可以是它們兩者,即,節(jié)點(diǎn)ID可以是IP地 址而路由ID可以是MAC地址,或者相反地,節(jié)點(diǎn)ID可以是MAC地 址而if各由ID可以是IP地址。
圖4-6示出可由網(wǎng)絡(luò)上的節(jié)點(diǎn)的一個(gè)或多個(gè)保存以便實(shí)現(xiàn)本文所 述DHT的示例DHT表。在這些圖中,圖4示出包含節(jié)點(diǎn)ID的列表的 DHT成員表的示例。節(jié)點(diǎn)ID可以是如從鏈路狀態(tài)數(shù)據(jù)庫(kù)所獲知的網(wǎng) 絡(luò)上節(jié)點(diǎn)的地址值,或者備選地可以由這些地址值的^^合希來形成。在 所示示例中,節(jié)點(diǎn)ID表包含從路由選擇系統(tǒng)獲得的9個(gè)值。具體來說, 諸如圖1所示的網(wǎng)絡(luò)之類的網(wǎng)絡(luò)上的節(jié)點(diǎn)假定為實(shí)現(xiàn)鏈路狀態(tài)路由選 擇協(xié)議,其中各節(jié)點(diǎn)交換鏈路狀態(tài)通告以便使網(wǎng)絡(luò)上的各節(jié)點(diǎn)能夠構(gòu) 建鏈路狀態(tài)數(shù)據(jù)庫(kù)。鏈路狀態(tài)通告和/或鏈路狀態(tài)數(shù)據(jù)庫(kù)將包含節(jié)點(diǎn)的 地址。參與DHT的那些節(jié)點(diǎn)的節(jié)點(diǎn)地址將用于裝載圖4的DHT成員 表。雖然成員表如圖4所示,但是這種信息可作為鏈路狀態(tài)數(shù)據(jù)庫(kù)的 部分而被包含,因而不需要存儲(chǔ)在獨(dú)立的表中。
圖5示出可由網(wǎng)絡(luò)上的節(jié)點(diǎn)保存而與DHT無關(guān)的本地?cái)?shù)據(jù)表的示 例。具體來說,網(wǎng)絡(luò)上的節(jié)點(diǎn)可從與其附連的客戶設(shè)備獲知路由。這 種信息可存儲(chǔ)在本地表中,使得節(jié)點(diǎn)能夠保存通過它是可達(dá)的那些路 由的副本。本地表還可用于緩存從DHT所獲知的路由,使得可加速與 特定遠(yuǎn)程路由交換數(shù)據(jù)的重復(fù)嘗試。
當(dāng)獲知路由時(shí),將它們添加到本地?cái)?shù)據(jù)表。通過將路由值與節(jié)點(diǎn) ID進(jìn)行比較(即進(jìn)行XOR運(yùn)算),路由也將被傳送給DHT以便查找K 個(gè)最接近的匹配節(jié)點(diǎn)ID。在圖4和圖5所示的示例中,復(fù)制因子K(DHT 中信息的復(fù)制副本的數(shù)量)設(shè)置為三,使得獲知路由的節(jié)點(diǎn)將把已獲知路由傳送給參與DHT、最接近路由的密鑰值的三個(gè)節(jié)點(diǎn)。例如,可將 路由發(fā)送給節(jié)點(diǎn)ID高于路由的密鑰值的三個(gè)節(jié)點(diǎn)。例如,假定DHT 成員表包含IP地址,并且本地節(jié)點(diǎn)獲知了到IP地址的路由。已獲知 路由的IP地址可與DHT成員表中的節(jié)點(diǎn)的IP地址進(jìn)行XOR運(yùn)算, 以便查找IP地址與已獲知IP地址最相似('接近,)的那三個(gè)節(jié)點(diǎn)。然 后可將路由發(fā)送給那三個(gè)節(jié)點(diǎn),以便使那個(gè)IP地址的路由信息存儲(chǔ)在 分布式哈希表的正確節(jié)點(diǎn)處。當(dāng)然,在比較發(fā)生之前IP地址可經(jīng)過哈 ?;蛘咂渌幚聿⑶乙部墒褂闷渌愋偷牡刂?,因?yàn)镮P地址僅用作可 使用的一種類型的地址的示例。這個(gè)相同過程也可用于查找表中的IP 地址。
圖6示出可由DHT中的節(jié)點(diǎn)存儲(chǔ)的遠(yuǎn)程數(shù)據(jù)表的示例。如圖6所 示,當(dāng)節(jié)點(diǎn)接收到來自網(wǎng)絡(luò)上的其它節(jié)點(diǎn)之一的通告路由時(shí),它將把 該路由存儲(chǔ)在其遠(yuǎn)程數(shù)據(jù)表中。該表可按照與路由的地址關(guān)聯(lián)的密鑰 來組織,并且可包含與路由關(guān)聯(lián)的節(jié)點(diǎn)的值(即節(jié)點(diǎn)ID)。其它數(shù)據(jù)也 可與路由關(guān)聯(lián)。當(dāng)網(wǎng)絡(luò)上的另一個(gè)節(jié)點(diǎn)需要和與路由的地址關(guān)聯(lián)的路 由進(jìn)行通信時(shí),該節(jié)點(diǎn)可將路由地址(路由密鑰)與節(jié)點(diǎn)ID(節(jié)點(diǎn)密鑰) 進(jìn)行比較,以便確定DHT中的哪些節(jié)點(diǎn)應(yīng)該保存該路由。然后,請(qǐng)求 節(jié)點(diǎn)可將請(qǐng)求轉(zhuǎn)發(fā)給DHT中的該節(jié)點(diǎn),以便使該節(jié)點(diǎn)從其遠(yuǎn)程數(shù)據(jù)表 檢索路由信息。
如圖6的示例遠(yuǎn)程數(shù)據(jù)表所示,遠(yuǎn)程數(shù)據(jù)表包含密鑰的列表以及 網(wǎng)絡(luò)上可用于到達(dá)(reach)那些密鑰的節(jié)點(diǎn)ID的列表。例如,密鑰221 可經(jīng)由節(jié)點(diǎn)ID 598到達(dá),密鑰245可經(jīng)由節(jié)點(diǎn)ID 384到達(dá),等等。存 儲(chǔ)在遠(yuǎn)程數(shù)據(jù)表74中的密鑰集合是使用上述XOR距離計(jì)算過程確定 為充分接近保存遠(yuǎn)程數(shù)據(jù)表的節(jié)點(diǎn)ID的數(shù)據(jù)的那個(gè)集合。當(dāng)網(wǎng)絡(luò)上的 另一個(gè)節(jié)點(diǎn)發(fā)現(xiàn)諸如密鑰245之類的密鑰時(shí),它可向保存遠(yuǎn)程數(shù)據(jù)表 74的節(jié)點(diǎn)發(fā)送請(qǐng)求,以便獲得路由在網(wǎng)絡(luò)上所在的節(jié)點(diǎn)ID。具體來說, 在接收到該請(qǐng)求時(shí),保存遠(yuǎn)程數(shù)據(jù)表74的節(jié)點(diǎn)將獲得值<密鑰245,節(jié) 點(diǎn)ID384〉以及與該條目關(guān)聯(lián)的無論什么數(shù)據(jù),并且響應(yīng)請(qǐng)求節(jié)點(diǎn),使得發(fā)現(xiàn)密鑰245的節(jié)點(diǎn)可獲知它能夠經(jīng)由節(jié)點(diǎn)ID 384而到達(dá)與密鑰 245關(guān)聯(lián)的路由。
在這方面要注意,進(jìn)入表中的密鑰基于IP地址、以太網(wǎng)MAC地 址等,使得DHT中的各節(jié)點(diǎn)在其遠(yuǎn)程數(shù)據(jù)表中存儲(chǔ)與IP地址、以太 網(wǎng)MAC地址等的特定集合關(guān)聯(lián)的路由。通過將節(jié)點(diǎn)IP地址或以太網(wǎng) MAC地址與DHT中的那個(gè)節(jié)點(diǎn)以確定性方式所存儲(chǔ)的地址集合關(guān) 聯(lián),其它節(jié)點(diǎn)在面臨未知地址時(shí)可執(zhí)行同一計(jì)算,以便確定要查詢哪 一個(gè)節(jié)點(diǎn)以獲得那個(gè)地址的路由。
圖7-8示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、與將節(jié)點(diǎn)添加到DHT有關(guān) DHT進(jìn)行變更的方式。如圖7所示,DHT成員表將存儲(chǔ)從網(wǎng)絡(luò)上的其 它節(jié)點(diǎn)在獲知路由時(shí)傳送給它的數(shù)據(jù)。當(dāng)節(jié)點(diǎn)獲知路由時(shí),它將4皮存 儲(chǔ)在本地?cái)?shù)據(jù)表72中,并且隨后傳送給由節(jié)點(diǎn)通過查看DHT成員表 70所識(shí)別的其它節(jié)點(diǎn)。根據(jù)復(fù)制因子,路由信息將^fc^出一次或多次 到識(shí)別為需要將路由信息存儲(chǔ)在DHT中的節(jié)點(diǎn)。在所示示例中,復(fù)制 因子為三(K-3),因此節(jié)點(diǎn)將發(fā)送路由信息給三個(gè)節(jié)點(diǎn)以便存儲(chǔ)在DHT 中。因此,在所示示例中,密鑰346(及其值/路由)將被發(fā)送到節(jié)點(diǎn)351、 378和384,而密鑰378(及其值/路由)將祐義送到節(jié)點(diǎn)384、 419和598。
這時(shí)假定以節(jié)點(diǎn)ID=380將新節(jié)點(diǎn)添加到DHT。這種情況的示例 如圖8所示。在將新節(jié)點(diǎn)添加到網(wǎng)絡(luò)時(shí),該節(jié)點(diǎn)將開始發(fā)出鏈路狀態(tài) 通告,以便使節(jié)點(diǎn)將該節(jié)點(diǎn)添加到其鏈路狀態(tài)數(shù)據(jù)庫(kù)。在鏈路狀態(tài)數(shù) 據(jù)庫(kù)中包含該節(jié)點(diǎn)將自動(dòng)使節(jié)點(diǎn)ID被添加到DHT成員表70。但是, 在DHT成員表中包含新節(jié)點(diǎn)將影響網(wǎng)絡(luò)上的節(jié)點(diǎn)執(zhí)行路由查詢的方 式,因?yàn)樵诖_定尋找具有特定密鑰的路由的位置時(shí)將咨詢更新DHT成 員表。因此,應(yīng)當(dāng)存儲(chǔ)在那個(gè)DHT中的路由應(yīng)當(dāng)傳送給新節(jié)點(diǎn),使得 它在其遠(yuǎn)程數(shù)據(jù)表中具有路由信息的副本。這樣做的 一種方式是使網(wǎng) 絡(luò)元件確定哪些路由受到成員表的變更影響,并且使節(jié)點(diǎn)將路由傳送 給新節(jié)點(diǎn),好像它們?cè)疽褌魉偷侥抢?一樣(if they should originally have been transmitted there)。這可通過使各節(jié)點(diǎn)基于當(dāng)前DHT成員表來確定其本地?cái)?shù)據(jù)表中哪些密鑰應(yīng)當(dāng)存儲(chǔ)在節(jié)點(diǎn)上,并且使節(jié)點(diǎn)將那 些路由傳送給新節(jié)點(diǎn)來完成。因此,例如,圖8中的節(jié)點(diǎn)可確定新節(jié)
點(diǎn)380應(yīng)當(dāng)具有密鑰346的路由信息的副本,并且將那個(gè)路由傳送給 新節(jié)點(diǎn)。該節(jié)點(diǎn)也將確定密鑰377和378也應(yīng)當(dāng)纟皮傳送到節(jié)點(diǎn)380, 并且還傳送那些路由的DHT添加消息。
由于復(fù)制因子仍然為三,并且節(jié)點(diǎn)384已經(jīng)提供有路由信息的副 本,因此,節(jié)點(diǎn)384將具有不會(huì)^皮任何其它節(jié)點(diǎn)請(qǐng)求的額外副本,只 要DHT成員表不再變更。因此,可指示節(jié)點(diǎn)384刪除與密鑰346關(guān)聯(lián) 的路由,或者節(jié)點(diǎn)384可允許與密鑰346關(guān)聯(lián)的路由超時(shí),并且在特 定時(shí)間周期它未被請(qǐng)求之后被刪除。
圖9-10示出根據(jù)本發(fā)明的一個(gè)實(shí)施例、與從DHT刪除節(jié)點(diǎn)有關(guān) DHT進(jìn)行變更的方式。具體來說,圖9示出在結(jié)合圖7和圖8所述的 添加操作期間添加節(jié)點(diǎn)380之后的DHT成員表。圖9中,假定如以上 結(jié)合圖8所述,復(fù)制過程已經(jīng)使無關(guān)的(extraneous)路由信息被刪除或 超時(shí),使得各密鑰存儲(chǔ)在DHT中的三個(gè)不同節(jié)點(diǎn)處。
如圖IO所示,假定從DHT成員表移除節(jié)點(diǎn)380。在移除節(jié)點(diǎn)380 時(shí),特定路由僅存儲(chǔ)在DHT中的兩個(gè)位置處。為了使那些路由存儲(chǔ)在 三個(gè)位置,各本地節(jié)點(diǎn)可回顧(review)其本地?cái)?shù)據(jù)表中的信息,以便確 定它已經(jīng)使哪些密鑰存儲(chǔ)在那個(gè)節(jié)點(diǎn)處的DHT中。對(duì)于受影響的那些 密鑰,節(jié)點(diǎn)可基于新的DHT成員來確定哪些節(jié)點(diǎn)應(yīng)當(dāng)存儲(chǔ)密鑰,并且 將密鑰傳送給那些節(jié)點(diǎn)。備選地,由于遠(yuǎn)程節(jié)點(diǎn)中的一些將已經(jīng)使密 鑰存儲(chǔ)在DHT遠(yuǎn)程數(shù)據(jù)表中,所以節(jié)點(diǎn)可以僅向這個(gè)過程中確定的最 后一個(gè)節(jié)點(diǎn)傳送路由選擇信息。例如,如果復(fù)制因子為&=3,則本地 節(jié)點(diǎn)可確定DHT中的第三節(jié)點(diǎn)應(yīng)當(dāng)存儲(chǔ)數(shù)據(jù)的副本,并且僅向第三節(jié) 點(diǎn)傳送與那個(gè)密鑰關(guān)聯(lián)的路由信息。
雖然已經(jīng)描述了 一個(gè)實(shí)施例,其中節(jié)點(diǎn)在DHT成員變更時(shí)使用存 儲(chǔ)在其本地表中的信息將路由復(fù)制到DHT節(jié)點(diǎn),但是本發(fā)明并不局限 于這種方式,因?yàn)閷?shí)現(xiàn)這個(gè)過程的其它方式也可^t實(shí)現(xiàn)。例如,如果節(jié)點(diǎn)被添加到DHT,則在新節(jié)點(diǎn)的復(fù)制因子之內(nèi)、具有節(jié)點(diǎn)ID的DHT 節(jié)點(diǎn)可處理其DHT遠(yuǎn)程數(shù)據(jù)表中的密鑰,以便確定哪些密鑰應(yīng)當(dāng)存儲(chǔ) 在新節(jié)點(diǎn)中,并且將那些密鑰傳送給新節(jié)點(diǎn)。作為這個(gè)過程的部分, 節(jié)點(diǎn)也可確定哪些密鑰不再需要存儲(chǔ)在其遠(yuǎn)程數(shù)據(jù)表中,并且刪除那 些路由。
類似地,在從DHT移除節(jié)點(diǎn)時(shí),在已經(jīng)移除的節(jié)點(diǎn)的復(fù)制因子之 內(nèi)的那些節(jié)點(diǎn)可處理其遠(yuǎn)程數(shù)據(jù)表中的路由,以便確定哪些路由存儲(chǔ) 在不再是DHT的部分的節(jié)點(diǎn)中。存儲(chǔ)在舊節(jié)點(diǎn)中的那些路由則可根據(jù) 需要傳送給DHT的其它節(jié)點(diǎn),以便使各路由的復(fù)制因子保持相同。因 此,對(duì)DHT成員的修改可由DHT節(jié)點(diǎn)來實(shí)現(xiàn),而無需已獲知路由信 息的節(jié)點(diǎn)每當(dāng)DHT成員變更時(shí)將路由信息重新通告到DHT中。
如上所述的功能可實(shí)現(xiàn)為一組程序指令,它們存儲(chǔ)在計(jì)算機(jī)可讀 存儲(chǔ)器中,并且在計(jì)算機(jī)平臺(tái)上的一個(gè)或多個(gè)處理器上運(yùn)行。然而, 本領(lǐng)域的技術(shù)人員將明白,本文所述的所有邏輯可使用分立組件、諸 如專用集成電路(ASIC)之類的集成電路、與諸如現(xiàn)場(chǎng)可編程門陣列 (FPGA)或微處理器之類的可編程邏輯裝置結(jié)合使用的可編程邏輯、狀 態(tài)機(jī)或者包括它們的任何組合的其它任何裝置來體現(xiàn)??删幊踢壿嬆?暫時(shí)或永久固定在諸如只讀存儲(chǔ)器芯片、計(jì)算機(jī)存儲(chǔ)器、磁盤或其它 存儲(chǔ)介質(zhì)之類的實(shí)體介質(zhì)中??删幊踢壿嬕材芄潭ㄔ谝暂d波體現(xiàn)的計(jì) 算機(jī)數(shù)據(jù)信號(hào)中,從而允許可編程邏輯通過諸如計(jì)算機(jī)總線或通信網(wǎng) 絡(luò)之類的接口來傳送。所有這類實(shí)施例意在落入本發(fā)明的范圍之內(nèi)。
應(yīng)當(dāng)理解,附圖中所示以及說明書中所述的實(shí)施例的各種變更和 修改可在本發(fā)明的精神和范圍之內(nèi)進(jìn)行。因此,在以上說明書中包含 以及附圖中所示的所有事項(xiàng)意在被解釋為說明性而不是限制性的。本 發(fā)明僅由以下權(quán)利要求書及其等效物所定義的內(nèi)容來限制。
權(quán)利要求
1.一種將路由選擇信息存儲(chǔ)在鏈路狀態(tài)協(xié)議控制的網(wǎng)絡(luò)中的方法,所述方法包括以下步驟在所述網(wǎng)絡(luò)上實(shí)現(xiàn)鏈路狀態(tài)路由選擇協(xié)議,以便使所述網(wǎng)絡(luò)上的多個(gè)節(jié)點(diǎn)中的每一個(gè)實(shí)現(xiàn)鏈路狀態(tài)數(shù)據(jù)庫(kù);以及使用從所述鏈路狀態(tài)數(shù)據(jù)庫(kù)中的信息所得出的節(jié)點(diǎn)ID作為分布式哈希表中的密鑰,以便基于與路由關(guān)聯(lián)的路由ID和所述節(jié)點(diǎn)ID的比較而確定存儲(chǔ)與所述路由關(guān)聯(lián)的信息的所述網(wǎng)絡(luò)上的所述多個(gè)節(jié)點(diǎn)的子集。
2. 如權(quán)利要求1所述的方法,其中,使用節(jié)點(diǎn)ID的所述步驟包 括在所述路由ID與所述節(jié)點(diǎn)ID中的每一個(gè)之間執(zhí)行XOR過程,以 便確定存儲(chǔ)所述路由信息的所述多個(gè)節(jié)點(diǎn)的所述子集。
3. 如權(quán)利要求l所述的方法,其中,所述子集基于所述分布式哈 希表的復(fù)制因子。
4. 如權(quán)利要求l所述的方法,還包括以下步驟將消息中的所述 路由信息傳送給所述子集中的所述節(jié)點(diǎn)中的每一個(gè),以便使那些節(jié)點(diǎn) 將所述路由選擇信息存儲(chǔ)在它們的所述分布式哈希表的部分中,供所 述網(wǎng)絡(luò)上的其它節(jié)點(diǎn)的后續(xù)檢索。
5. 如權(quán)利要求l所述的方法,其中,所述節(jié)點(diǎn)ID是MAC地址或 者從所述網(wǎng)絡(luò)上的所迷節(jié)點(diǎn)的MAC地址得出,并且其中所述路由ID 是目標(biāo)MAC地址或者從所述路由的目標(biāo)MAC地址得出。
6. 如權(quán)利要求l所述的方法,其中,所述節(jié)點(diǎn)ID是IP地址或者 從所述網(wǎng)絡(luò)上的所述節(jié)點(diǎn)的IP地址得出,并且其中所述路由ID是目
7. 如權(quán)利要求l所述的方法,其中,所述節(jié)點(diǎn)ID是MAC地址或 者從所述網(wǎng)絡(luò)上的所述節(jié)點(diǎn)的MAC地址得出,并且其中所述路由ID
8. 如權(quán)利要求l所述的方法,其中,所述節(jié)點(diǎn)ID是IP地址或者 從所述網(wǎng)絡(luò)上的所述節(jié)點(diǎn)的IP地址得出,并且其中所述路由ID是目 標(biāo)MAC地址或者從所述路由的目標(biāo)MAC地址得出。
9. 如權(quán)利要求1所述的方法,其中,所述節(jié)點(diǎn)ID是笫一地址或 者從第一 OSI尋址層中的第 一地址得出,并且其中所述路由ID是笫二 地址或者從第二 OSI尋址層中的第二地址得出。
10. —種方法,包括以下步驟由鏈路狀態(tài)路由選擇協(xié)議控制的通信網(wǎng)絡(luò)中的節(jié)點(diǎn)來獲知路由信臺(tái)將與所述路由信息關(guān)聯(lián)的路由ID和與參與分布式哈希表的節(jié)點(diǎn) 關(guān)聯(lián)的節(jié)點(diǎn)ID進(jìn)行比較,所述節(jié)點(diǎn)ID從鏈路狀態(tài)數(shù)據(jù)庫(kù)得出,所述 鏈路狀態(tài)數(shù)據(jù)庫(kù)包含從所述鏈路狀態(tài)路由選擇協(xié)議所指定的協(xié)議交換 所獲得的信息;以及將所述路由信息傳送給具有充分接近于所述路由ID的節(jié)點(diǎn)ID的 節(jié)點(diǎn)的子集。
11. 如權(quán)利要求10所述的方法,其中,所述路由ID是MAC地址; 并且其中所述節(jié)點(diǎn)ID是MAC地址。
12. 如權(quán)利要求11所述的方法,其中,所述路由ID是客戶端MAC 地址,并且其中所述節(jié)點(diǎn)ID是提供商MAC地址。
13. 如權(quán)利要求10所述的方法,其中,所述路由ID是IP地址, 并且其中所述節(jié)點(diǎn)ID是IP地址。
14. 如權(quán)利要求10所迷的方法,其中,將所述路由K)與所述節(jié) 點(diǎn)ID進(jìn)行比較的所述步驟包括執(zhí)行所述路由ID與所述節(jié)點(diǎn)ID的數(shù)學(xué) 比較。
15. 如權(quán)利要求14所述的方法,其中,所述數(shù)學(xué)比較是XOR運(yùn)算。
16. 如權(quán)利要求IO所述的方法,還包括以下步驟 發(fā)現(xiàn)第二路由ID;將所述第二路由ID和與參與所述分布式哈希表的節(jié)點(diǎn)關(guān)聯(lián)的所述節(jié)點(diǎn)ID進(jìn)行比較;以及將與所述第二路由ID關(guān)聯(lián)的第二路由信息的查詢發(fā)送給具有充 分接近于所述第二路由ID的節(jié)點(diǎn)ID的節(jié)點(diǎn)的第二集合。
17. —種網(wǎng)絡(luò),包括多個(gè)互連網(wǎng)絡(luò)元件,其中的至少一些配置成實(shí)現(xiàn)鏈路狀態(tài)路由選 擇協(xié)議和包含路由選擇信息的分布式哈希表(DHT),其中,從與所述 鏈路狀態(tài)路由選擇協(xié)議關(guān)聯(lián)的交換所得出的節(jié)點(diǎn)ID用于識(shí)別存儲(chǔ)在 所述DHT中的信息的集合。
18. 如權(quán)利要求17所述的網(wǎng)絡(luò),其中,配置成實(shí)現(xiàn)所述DHT的 所述網(wǎng)絡(luò)元件配置成各自存儲(chǔ)包含參與所述DHT的節(jié)點(diǎn)的節(jié)點(diǎn)ID列 表的DHT成員表、包含由所述網(wǎng)絡(luò)元件所獲知的路由的本地?cái)?shù)據(jù)表以 及包含從來自參與所述DHT的其它網(wǎng)絡(luò)元件的消息所獲知的路由的 遠(yuǎn)程數(shù)據(jù)表。
19. 如權(quán)利要求18所述的網(wǎng)絡(luò),其中,配置成實(shí)現(xiàn)所述DHT的 所述網(wǎng)絡(luò)元件配置成使用經(jīng)由所述鏈路狀態(tài)路由選擇協(xié)議所傳遞的網(wǎng) 絡(luò)拓樸變更來更新它們的DHT成員表中它們的節(jié)點(diǎn)ID列表。
20. 如權(quán)利要求19所述的網(wǎng)絡(luò),其中,配置成實(shí)現(xiàn)所述DHT的 所述網(wǎng)絡(luò)元件配置成在發(fā)生網(wǎng)絡(luò)拓樸變更時(shí)重新通告來自它們的本地 數(shù)據(jù)表的選擇信息。
21. —種網(wǎng)絡(luò)元件,包括 處理器,配置成實(shí)現(xiàn)鏈路狀態(tài)協(xié)議進(jìn)程,配置成建立鏈路狀態(tài)數(shù)據(jù)庫(kù),所述鏈路 狀態(tài)數(shù)據(jù)庫(kù)包含與網(wǎng)絡(luò)關(guān)聯(lián)的網(wǎng)絡(luò)拓樸信息,在所述網(wǎng)絡(luò)上所述網(wǎng)絡(luò) 元件配置成接收通信,分布式哈希表(DHT)進(jìn)程,配置成從所述鏈路狀態(tài)數(shù)據(jù)庫(kù)提 取信息,以便確定與參與所述DHT的網(wǎng)絡(luò)元件關(guān)聯(lián)的節(jié)點(diǎn)ID,所述 DHT配置成存儲(chǔ)所述網(wǎng)絡(luò)上的路由信息;和消息傳遞進(jìn)程,配置成接收和傳送包含將存儲(chǔ)在所述DHT中的路由信息的消息。
22.如權(quán)利要求21所述的網(wǎng)絡(luò)元件,其中,所述網(wǎng)絡(luò)元件還配置成實(shí)現(xiàn)存儲(chǔ)器,所述存儲(chǔ)器包含DHT成員表、本地?cái)?shù)據(jù)表和遠(yuǎn)程數(shù)據(jù)表,所述DHT成員表包含參與所述DHT的所述網(wǎng)絡(luò)元件的所述節(jié)點(diǎn)ID,所述本地?cái)?shù)據(jù)表包含所述網(wǎng)絡(luò)元件所獲知的路由信息,所述遠(yuǎn)程數(shù)據(jù)表包含經(jīng)由所述消息傳遞進(jìn)程從其它網(wǎng)絡(luò)元件所獲知的路由信 自
全文摘要
實(shí)現(xiàn)分布式哈希表以便存儲(chǔ)網(wǎng)絡(luò)上的路由選擇信息。結(jié)合鏈路狀態(tài)路由選擇協(xié)議的實(shí)現(xiàn)來交換的節(jié)點(diǎn)ID用作分布式哈希表中的密鑰,并且路由存儲(chǔ)在網(wǎng)絡(luò)上的一個(gè)或多個(gè)節(jié)點(diǎn)處。當(dāng)路由被獲知時(shí),對(duì)照密鑰集合來處理該路由以便確定哪些節(jié)點(diǎn)應(yīng)當(dāng)存儲(chǔ)該路由。當(dāng)需要路由時(shí),對(duì)照密鑰集合來處理該路由以便確定哪些節(jié)點(diǎn)應(yīng)當(dāng)具有路由信息。對(duì)照密鑰集合來處理路由的方式在兩種情況下都是相同的,使得DHT可用于存儲(chǔ)和檢索網(wǎng)絡(luò)上的路由信息。DHT可實(shí)現(xiàn)為存儲(chǔ)MAC地址、IP地址、MPLS標(biāo)簽或者其它受關(guān)注信息,以便使路由能夠由網(wǎng)絡(luò)上的網(wǎng)絡(luò)元件來存儲(chǔ)和獲知。
文檔編號(hào)H04L12/24GK101529809SQ200780040352
公開日2009年9月9日 申請(qǐng)日期2007年11月1日 優(yōu)先權(quán)日2006年11月2日
發(fā)明者G·殷, P·阿什伍德-史密斯, W·麥克科爾米克 申請(qǐng)人:北方電訊網(wǎng)絡(luò)有限公司