專利名稱:一種在分布式散列表中提供和保持實時最新數據的節點和方法
技術領域:
本發明涉及一種在分布式散列表網絡架構中提供和維護實時最新數據 的節點和方法,特別地,本發明提供一種用于在分布式散列表網絡架構的 對等節點中配置、提供和維護實時最新對等體標識和互聯網協議地址映射 信息的節點和方法。
背景技術:
一種對等(peer-to-peer)覆蓋協議族被稱為分布式散列表(DHT, Distributed Hash Tables),其為對等應用提供選路和目標位置功能。DHT 是結構化覆蓋網絡架構,其提供用于連接通信網絡中的多個節點的靈活方 法。DHT協議提供了被稱為結構化覆蓋的有效和容易實現的基礎,用于建 立可擴展和自組織的分布式應用。結構化覆蓋將標識應用數據的鍵映射到 負責管理該數據的覆蓋節點。在最基礎層,DHT允許一組分布式主機在沒 有任何固定層級并具有很少人工輔助的情況下集體管理從鍵到數據值的映 射。該建立功能塊然后可用于簡化各種不同的對等應用的實現,例如文件 共享服務、DNS替代、web緩存等。
DHT允許使用典型為log(N)個消息的有限數量的消息來定位存儲在 覆蓋網絡中的任意一塊數據。構成覆蓋網絡的節點被稱為對等體(peers )。 每個對等體在加入DHT時獲得有時也稱為節點ID的唯一對等體標識 (ID) 。 DHT通常被組織成環形拓樸。散列表的鍵空間可以是環形的, 并且對等體ID可以是代表環形鍵空間中的位置的128位無符號整數。通 常,通過對對等體IP地址進行散列來創建對等體ID。因此,如果對等體 的IP地址改變,則對等體ID也改變。在本文檔的上下文中,除IP地址
8之外或作為IP地址的替代,"IP地址"還可包括傳輸控制協議(TCP ) 和/或用戶數據報協議(UDP)端口號。
發明內容
根據本發明的一個實施例,提供了一種節點,所述節點包括具有一列 鄰近節點的節點標識符和對應的地址的表,其中,節點標識符列和所述地 址4皮彼此獨立地配置為,更新與所述鄰近節點中的至少一個相關聯的所述 地址中的至少一個的改變。
根據本發明的一個實施例,提供了一種節點,所述節點被配置為創建 指針表,被配置為訂閱包括在所述指針表中的至少一個其它節點的網絡地 址的改變,以及被配置為接收至少一個通知,所述通知包括所述至少一個 其它節點的標識符和網絡地址。所述節點還被配置為,以在所述至少一個 通知中接收的所述至少 一個其它節點的新網絡地址更新所述指針表。
根據本發明的一個實施例,提供了一種節點,所述節點被配置為創建
逆指針表,;故配置為接收來自至少一個其它節點的對所述節點的網絡地址 的改變的訂閱,以及被配置為在所述逆指針表中存儲所述至少一個其它節 點的網絡地址。所述節點還被配置為,在所述節點的網絡地址改變時,從 所述節點向所述逆指針表中的所述至少 一個其它節點發送新網絡地址的通 知。
根據本發明的一個實施例,提供了一種節點,所述節點被配置為創建
鄰居表,;故配置為獲知鄰居節點的網絡標識符和/或網絡地址,以及被配置 為在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址。所述節 點還#>配置為,在所述節點的網絡地址改變時,向所述鄰居表中的至少一 個其它鄰居節點發送新網絡地址的通知。
根據本發明的一個實施例,提供了一種節點,所述節點被配置為創建 鄰居表,凈皮配置為獲知鄰居節點的網絡標識符和/或網絡地址,以及4皮配置 為在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址。所述節 點還被配置為,在存儲于所述鄰居表中的至少一個其它鄰居節點處接收來自所述節點的新網絡地址的通知,以及被配置為,用來自所述節點的新網 絡地址更新所述至少一個其它鄰居節點的所述鄰居表。
才艮據本發明的一個實施例,提供了一種節點,所述節點包括用于創 建指針表的裝置;用于訂閱包括在所述指針表中的至少一個其它節點的網 絡地址的改變的裝置;以及,用于接收至少一個通知的裝置,所述通知包 括所述至少一個其它節點的標識符和網絡地址。所述節點還包括用于以在 所述至少一個通知中接收的所述至少一個其它節點的新網絡地址更新所述 指針表的裝置。
根據本發明的一個實施例,提供了一種節點,所述節點包括用于創 建逆指針表的裝置;用于接收來自至少 一個其它節點的對所述節點的網絡 地址的改變的訂閱的裝置;以及用于在所述逆指針表中存儲所述至少一個 其它節點的網絡地址的裝置。所述節點還包括用于在所述節點的網絡地址 改變時,從所述節點向所述逆指針表中的至少 一個其它節點發送新網絡地 址的通知的裝置。
根據本發明的一個實施例,提供了一種節點,所述節點包括用于創 建鄰居表的裝置;用于獲知鄰居節點的網絡標識符和/或網絡地址的裝置; 以及,用于在所述鄰居表中存儲鄰居節點的網絡標識符和/或網絡地址的裝 置。所述節點還包括用于在所述節點的地址改變時,向所述鄰居表中的至 少 一個其它鄰居節點發送新網絡地址的通知的裝置。
根據本發明的一個實施例,提供了一種節點,所述節點包括用于創 建鄰居表的裝置;用于獲知鄰居節點的網絡標識符和/或網絡地址的裝置; 用于在所述鄰居表中存儲鄰居節點的網絡標識符和/或網絡地址的裝置;以 及用于在存儲于所述逆指針表中的所述至少一個其它鄰居節點處接收來自 所述節點的新網絡地址的通知的裝置。所述節點還包括用于以來自所述節 點的新網絡地址更新所述至少一個其它鄰居節點的所述鄰居表的裝置。
根據本發明的一個實施例,提供了一種方法,所述方法包括將表配 置為包括一列鄰近節點的節點標識符和對應的地址;將節點標識符列和所 述地址彼此獨立地配置為,更新與所述鄰近節點中的至少一個相關聯的所
10述地址中的至少一個的改變。
根據本發明的一個實施例,提供了一種方法,所述方法包括在節點 處創建指針表;訂閱包括在所述指針表中的至少一個其它節點的網絡地址 的改變;以及,接收包括所述至少一個其它節點的標識符和網絡地址的至 少一個通知。所述方法還包括,用在所述至少一個通知中接收的所述至少 一個其它節點的新網絡地址更新所述指針表。
根據本發明的一個實施例,提供了一種方法,所述方法包括在節點 處創建逆指針表;接收來自至少 一個其它節點的對所述節點的網絡地址的 改變的訂閱;以及在所述逆指針表中存儲所述至少 一個其它節點的網絡地 址。所述方法還包括,在所述節點的網絡地址改變時,從所述節點向所述 逆指針表中的所述至少 一個其它節點發送新網絡地址的通知。
根據本發明的一個實施例,提供了一種方法,所述方法包括在節點 處創建鄰居表;獲知鄰居節點的網絡標識符和/或網絡地址;以及,在所述 鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址。所述方法還包 括,在所述節點的網絡地址改變時,從所述節點向所述鄰居表中的所述至 少一個其它鄰居節點發送新網絡地址的通知。
根據本發明的一個實施例,提供了一種方法,所述方法包括在節點 處創建鄰居表;獲知鄰居節點的網絡標識符和/或網絡地址;在所述鄰居表 中存儲鄰居節點的網絡標識符和/或網絡地址;以及,在存儲于所述鄰居表 中的所述至少一個其它鄰居節點處接收來自所述節點的新網絡地址的通 知。所述方法還包括,以來自所述節點的新網絡地址更新所述至少一個其 它鄰居節點的所述鄰居表。
從以下結合附圖對優選實施例的詳細描述中,本發明的其他實施例、 細節、優點和修改將變得明顯,其中
圖1示例性示出了分布式散列表(DHT)環和該DHT環中的節點之 一的鄰居表。圖2示例性示出了 DHT環和該DHT中的節點中的一個的指針表。 圖3示例性示出了才艮據本發明的一個實施例的DHT環中的節點處的 逆指針表。
圖4示出了才艮據本發明的一個實施例的配置,其中,多個對等體訂閱 了對等體的對等體事件狀態包。
圖5示例性示出了根據本發明的一個實施例的配置,用以在對等體獲 取新IP地址之后通知對等體。
圖6示例性示出了根據本發明的一個實施例的用于更新逆指針對等體 的可替換會話發起協議機制。
圖7示例性示出了根據本發明的一個實施例的用于在IP地址改變之后
更新鄰近對等體的會話發起協議機制。
圖8示例性示出了才艮據本發明的一個實施例的方法,其中,節點訂閱 了節點的節點事件狀態包。
圖9示例性示出了根據本發明的一個實施例的用于配置逆指針表的方法。
圖10示例性示出了根據本發明的一個實施例的方法,用于在節點獲取 新地址之后通知鄰近節點。
圖11示例性示出了根據本發明的一個實施例的方法,用于接收鄰近節 點的新地址并更新鄰居表。
具體實施例方式
現在將詳細參考本發明的優選實施例,其中,所述優選實施例的示例 在附圖中示出。
圖1示例性示出了分布式散列表(DHT)環和該DHT環中的節點(節 點15, (N15))的鄰居表。使用數據標識符(ID)來索引存儲在DHT 中的數據。數據ID分布在DHT節點之間。每個DHT節點存儲數據ID 的子集。
取決于對DHT的布置,DHT環中的每個節點可以有兩個直接鄰居
12前趨對等體和后繼對等體。在一些情況下,為提高網絡的可靠性,對等體 可以鏈接到一個、兩個、三個或更多前趨和/或一個、兩個、三個或更多后
繼。可以使用對等體標識(ID)來確定DHT環中的位置或地點。后繼對 等體是這樣的節點,在順時針移動時其對等體ID可以被定義為DHT環中 的下一個(N30、 N60、 N65等)。節點的前趨可以被定義為在逆時針移動 時DHT環中的下一個節點(N10和N5)。對等體可以鏈接到的前趨和后 繼的數量可以被保持為低數值。每個對等體可以通過發送某種類型的保持 活動的消息來明了其前趨和后繼。為了示例目的,節點的前趨和后繼可以 被集體稱為鄰居。每個對等體存儲其鄰居的互聯網協議(IP)地址(和/ 或其它連通性信息)。這允許節點聯系其前趨和后繼。
此夕卜,每個對等體還維護路由表,有時被稱為指針表,其包括覆蓋DHT 網絡中的對等體和對應的IP地址(和/或其它連通性信息)的列(列表中 對等體的數量通常遠小于覆蓋DHT網絡中的對等體的數量)。圖2示例 性示出了 DHT環和該DHT中的節點之一的指針表。實質上,指針表是一 種類型的用于遍歷DHT環的捷徑的集合。因此,指針表可用于最小化定 位覆蓋DHT網絡中的資源所需的跳數。
必須維護DHT環拓樸結構。這包括明了前趨、后繼、其活動性,以 及還要保持最新的指針表。為了維護DHT環,鄰居可以向彼此發送保持 活動消息,以查看鄰居是否仍然在線。如果對等體離開網絡,則覆蓋網絡 不得不適應這樣的改變。這樣的改變可包括例如對等體的前趨和后繼變 成直接鄰居;鄰居中的一個變成負責離開DHT網絡的對等體曾經負責的 數據ID池;如果覆蓋網^M吏用復制機制進行數據保護,則接手負責曾經 存儲在離開網絡的節點中的數據ID池的節點不得不更新其存儲數據ID的 數據庫以及關聯的數據;和/或,在其指針表中具有指向離開網絡的對等體
的指針的覆蓋中的對等體應該更新其指針表。
這在對等體之間引入了額外的業務開銷,并且需要修改關于鄰居和指
針表的信息所需的額外的處理能力。在對等體加入覆蓋網絡(第一次或在
離開網絡之后)時,覆蓋不得不實施甚至比對等體離開網絡的情況更多的
13操作。此外,對DHT的更新不是在節點已離開之后立即進行。到所有數 據再次在適當的位置為止可能要花一些時間,包括指針表的重建。
在一個實例中,對等會話發起協議(P2PSIP)網絡可以基于DHT, 并且可存在兩種類型的實體。第一種實體將是對等體,其將通過運行DHT 協議來維護P2PSIP覆蓋網絡,并存儲用戶數據(例如,聯系信息M 發起協議(SIP)到互聯網協議(IP)的映射),所述用戶數據原則上將 提供PUT方法和GET方法。PUT方法將允許數據在覆蓋DHT網絡中的 存儲。GET方法將允許從覆蓋DHT網絡的數據取回。第二種實體將是客 戶端,其連接到對等體,并且允許用戶向/從覆蓋網絡放置/獲得信息。可 將SIP用戶代理(UA)與對等體或客戶端并置。除此以外,對等體還可以 (充當)與SIP代理、媒體中繼和NAT穿越服務器并置。
在一個實例中,存儲于覆蓋網絡中的P2PSIP數據可以代表SIP注冊 數據,例如SIP統一資源標識符(URI)到IP地址的綁定。數據ID是經 散列的SIP URI。在P2PSIP中,因為P2PSIP數據必須是始終可用的并且 可實時訪問,所以,存儲在DHT中的用戶的可達性數據遠比存儲在文件 共享網絡的DHT中的內容重要(特別是對定時(timing)變化)。
因此,在其中數據準確性極度重要的網絡中,例如P2PSIP網絡,要 求實時地向需要該信息的剩余對等體傳遞數據或DHT環結構的改變(例 如在對等體離幵DHT時)。
例如,移動終端或任意其它類似類型的移動i殳備通過在不同接入網之 間進行切換或從一個WLAN接入點移動到另 一個WLAN接入點來從一個 網絡移動到另 一個網絡時,可導致網絡不穩定并需要額外資源來處理網絡 適配。這樣的網絡適配需求可能還影響移動終端的電池壽命和系統可靠性。 在過渡期內,用戶聯系信息的搜索延遲可能明顯更高,從而延遲了呼叫建 立。
相應地,提供了根據本發明的各實施例的節點和方法,其中,對網絡 中的每個對等體或節點(例如分布式散列表(DHT)網絡)獨立于相關聯 的互聯網協議(IP)地址來分配對等節點標識符。根據本發明的一個實施例,提供了一種節點和方法,其中,第一對等 體將指針表配置為包括至少一個或更多對等體的標識符和對應的地址。第 一對等體向一個或更多對等體中的每個輸出通知。每個通知包括第一對等 體的標識符和對應的地址。關聯于所述地址中的一個的第二對等體被配置 為響應于接收到來自第一對等體的通知,將逆指針表定義為包括第一對等 體的標識符和對應的地址。
根據本發明的另一實施例,提供了一種節點和方法,其中,對等體被 配置為將指針表定義為包括至少一個對等體的標識符和對應的地址,并且 被配置為向所述至少 一個對等體輸出通知。每個通知包括該對等體的標識 符和對應的地址。關聯于所述地址中的一個的對等體被配置為響應于接收 到來自所述對等體的通知,確定所述對等體的地址是否匹配于在所存儲的
逆指針表中預定義的并且對應于所述對等體的標識符的地址,并JU皮配置 為在關聯于所標識的對等體的地址與在逆表中預定義的地址不匹配時,更 新所述對等體的地址。響應于接收到通知,對等體可進一步^L配置為標識 和i人證所述對等體。
相應地,本發明的一些實施例關于P2PSIP中的移動性方面。例如, 移動終端可以充當P2PSIP對等體,其具有間歇連通性和多接入網能力。
每當對等體改變其接入網(例如從WCDMA到WLAN)時,其IP
地址也改變。因此其對等體ID也改變,引起DHT環中的不穩定。根據本
發明的一方面,對等體ID可以凈皮靜態地分配,并且其分配不取決于對應
的對等體IP地址。根據本發明的一個實施例,配置了靜態分配的唯一(在
DHT環內)對等體ID,而不是通過對對應的IP地址進行散列來創建對等
體ID,其中所述對等體ID在與DHT的連接期間不再是靜態的。IP地址
也可以由于除改變接入網之外的原因而改變,所述原因例如是如果節點從
DHCP獲得新地址。
當與對等體關聯的移動設備在切換之后移動到另一子網或接入網時,
該對等體接收到用于該移動設備的新IP地址。根據本發明的一方面,因為 對等體ID被配置為不改變,所以對等體ID不會引起DHT環的不穩定。然而,對等體將需要把關聯于所述其它子網的新IP地址通知給鄰近對等
體。對于每個鄰居,對等體將發送現有對等體ID、新IP地址以及(如果 被這樣配置)認證數據(例如證書)。每個鄰居轉而認證更新請求,并存 儲綁定于該對等體ID的新IP地址。如果對等體在保持活動間隔或預定時 間間隔期滿之前通知鄰居,則不需要執行DHT網絡的重新配置。每個對 等體將把其IP地址的改變通知到每個鄰近的對等體。可在初始化期間定義
并且基于特定應用來配置保持活動間隔或預定時間間隔,或者其可適于 DHT的擾動速率(churn rate )(在此情況下,可消除不必要的保持活動 消息)。
根據本發明的另 一方面,對等體可以將該對等體的IP地址的改變通知 到其它對等體,其中,所述其它對等體在其各自的指針表中存儲了指向該 對等體的指針。由于存儲在指針表中的連通性信息被保持為最新,所以該 操作減小了搜索延遲。
圖3示例性示出了根據本發明的一個實施例的位于DHT環中的節點 處的逆指針表。當第一對等體創建其指針表時,該對等體將選擇多個對等 體并將其節點ID和IP地址插入第一對等體的指針表中。根據本發明的一 個實施例,該過程可以被擴展,使得第一對等體(N15)可以通知那些所 選節點或對等體(N80、 NllO、 N5和N10)它們已被插入N15指針表中。 這樣做時,每個,皮通知的對等體(N80、 NllO、 N5和N10)創建如圖3中 所示存儲關于所述對等體的信息的節點的逆指針表。如果任何被通知的對 等體(N80、 NllO、 N5和N10)在某一時間點改變了它的IP地址,則所 選對等體將通知第一對等體以及其逆指針表中列出的其它對等體,從而其 可更新其各自的指針表。根據本發明的一個實施例,可以在后臺以較低優 先級或者在網絡較不擁塞時進行在第一對等體或任何所選對等體處的逆指 針表的創建。
圖4示例性示出了才艮據本發明的一個實施例的配置,其中多個對等體 訂閱了對等體的對等體事件狀態包。若干對等體或節點構建了其對應的指 針表。如步驟100中所示,對等體1配置其自己的指針表。對等體1將對等體A的ID和對應的IP地址插入其指針表中并且向對等體A發送指示, 在一個實施例中,可以通過使用會話發起協議的訂閱來實現。
會話發起協議(SIP )的基礎設施在互聯網工程任務組(IETF )RFC3261 (Rosenberg等人,2002年6月)中定義。 一般而言,SIP是用于創建、 修改和終止與一個或更多參與者的會話的應用層控制(信令)協議。M 可以包括互聯網電話呼叫、多媒體分發和多媒體會漢。用于創建會話的SIP 邀請攜帶允許節點對一組兼容媒體類型達成協定的會話描述。在2002年7 月A. Roach的RFC 3265 "SIP-Specific Event Notification"(此后簡稱為 "RFC 3265")中,描述了一種用于實現向互聯網中的任意對等體或節點 的基于事件的信息提供的SIP事件框架。該類信息的示例是出席、位置信 息、內容/服務可用性或控制接入的SIP事件。
如RFC 3265中所討論的, 一般概念是,網絡中的實體可以對網絡中 的各種資源或呼叫訂閱資源或呼叫狀態,并且那些實體(或代表它們進行 操作的實體)可以在那些狀態改變時發送通知。對等體A與對等體l之間
的典型消息流程在圖4的步驟1-4中示出。
在步驟l-4中,才艮據RFC 3265,訂閱者或對等體1向對等體A發送 SIP SUBSCRIBE (SIP訂閱)請求。SUBSCRIBE (訂閱)消息凈艮頭包括 用于發現事件包的合適事件包標識符。基于對訂閱消息的接收,對等體A 提取消息體,并解析所包含的發現查詢的語義信息。如果該發現查詢可以 由對等體A支持(即,語義在本地被支持,或者如果合適的上下文查詢服 務器可用于完成該請求),則按照RFC 3265,對等體A用'200 OK,消 息確認該訂閱,并發送NOTIFY (通知)消息。按照RFC 3265,對等體1 將通過發回'200 OK,消息來確認其收到了 NOTIFY消息。如圖4所示, 在對等體A與對等體2 (步驟5-8)、對等體3 (步驟9-12)和對等體4 (步驟13 - 16 )之間執行與相對于對等體1所描述的類似的步驟。相應地, 對在步驟1 - 4之間所執行的步驟的描述在此被并入步驟5 - 16。在可替換 實現中,可以使用SIP PUBLISH (SIP發布)請求(RFC 3903),其不 需要之前的訂閱來更新對等體詳細情況,而不是使用SIP事件通知框架
17(SUBSCRIBE/NOTIFY)。
基于在對等體A對指示或訂閱的接收,在步驟110,對等體A將通過 包括至少對等體1的ID和對應IP地址來配置逆指針表。本領域技術人員 將理解,其它對等體的ID和IP地址可以被有選擇地包括在對等體A的逆 指針表中。意在將有選擇地定義為每個對等體能夠將其關聯的表配置為 包括覆蓋中的所有對等體或較少對等體的ID和IP地址。
如步驟120中所示,對等體2配置其自身的指針表。對等體2將對等 體A的ID和對應的IP地址插入其指針表中,并且向對等體A發送指示, 其中,所述指示在一個實施例中可以用關于會話發起協議的訂閱來實現。 基于在對等體A對該指示或訂閱的接收,在步驟130處,對等體A將通過 包括至少對等體2的ID和對應的IP地址來配置逆指針表。如步驟140中 所示,對等體3配置其自身的指針表。對等體3將對等體A的ID和對應 的IP地址插入到其指針表中,并向對等體A發送指示,其中,所述指示 在一個實施例中可以使用關于M發起協議的訂閱來實現。基于在對等體 A對該指示或訂閱的接收,在步驟150處,對等體A將通過包括至少對等 體3的ID和對應的IP地址來配置逆指針表。
如步驟160中所示,對等體4配置其自身的指針表。對等體4將對等 體A的ID和對應的IP地址插入到其指針表中,并且向對等體A發送指 示,其中,所述指示在一個實施例中可以使用關于^"發起協議的訂閱來 實現。基于在對等體A對該指示或訂閱的接收,在步驟170處,對等體A 將通過包括至少對等體4的ID和對應的IP地址來配置逆指針表。
本領域技術人員將理解,其它對等體的ID和IP地址可以被有選擇地 包括在對等體1、對等體2、對等體3和/或對等體4中。相應地,如圖4 中所示,在第一對等體構建其指針表并將第二對等體的對等體ID插入第 一對等體指針表中的情況下,第一對等體通知第二對等體,從而第二對等
體也可以通過將第一對等體的對等體ID和IP地址插入第二對等體逆指針 表中來構建逆指針表。這可以使用任意類型的協議框架來實現,其中,可 通過合適的事件包(例如對等體事件包)來擴展所述協議框架。除了其他
18內容外,事件包定義了由SIP事件通知使用的數據格式。在這種情況下, 對等體事件包包含對等體ID、 IP地址或URI、和/或認證數據的信息。
圖5示例性示出了根據本發明的一個實施例的配置,用于在獲取新IP 地址之后通知對等體。根據本發明的一方面,在對等體改變其IP地址時, 其通知每個訂閱者。通知可以包括對等體ID、新IP地址(或解析為該IP 地址的URI)和i人證數據(例如證書)。
在步驟200處,對等體A通過進行不同接入網之間的切換或從一個 WLAN接入點移動到另 一個WLAN接入點來從一個網絡移動到另 一個網 絡,由此改變與其關聯的IP地址或URI并獲得新IP地址或URI,或者, 其可以由于其他原因而獲得新IP地址。在步驟210處,按照任何已建立的 協議來執行通知。在可替換實現中,可以使用SIP PUBLISH (SIP發布) 請求,其不需要之前的訂閱來更新對等體詳細情況,而不是使用SIP事件 通知框架(SUBSCRIBE/NOTIFY)。對等體A向對等體1發送通知,該 通知(如果被如此配置的話)除了其他內容外,包括對等體A的ID、認 證數據(例如證書)和新IP地址。在步驟220處,對等體1使用對等體A 的ID和認證數據(例如證書)來認證對等體A,由此確認對等體A在對 等體1的表中被注冊。對等體1然后以對等體A的新IP地址(或URI) 對其表進行更新。
在步驟230處,類似于步驟210,按照任何已建立的協議來執行通知。 對等體A向對等體2發送通知,該通知(如果被如此配置的話)除了其他 內容外,包括對等體A的ID、認證數據(例如證書)和新IP地址。在步 驟240處,對等體2使用對等體A的ID和認證數據(例如證書)來認證 對等體A,由此確認對等體A在對等體2的表中被注冊。對等體2然后以 對等體A的新IP地址(或URI)對其表進行更新。
盡管可以順序地對每個關聯對等體進行對等體A的IP地址改變的通 知,但是本領域技術人員可以理解,對等體A可以被配置為同時通知所有 對等體所述改變,或者可以以隨機方式通知所有關聯對等體所述改變。
例如,在圖5中所描述的實施例中,在更新對等體2中的表之后,對
19等體A通過更新對等體4的表而繼續,而不是繼續更新對等體3。在步驟 250處,類似于步驟210,按照已建立的協議來執行通知。對等體A向對 等體4發送通知,該通知(如果被如此配置的話)除了其他內容外,包括 對等體A的ID、認證數據(例如證書)和新IP地址。在步驟260處,對 等體4使用對等體A的ID和認證數據(例如證書)來認證對等體A,由 此確認對等體A在對等體4的表中被注冊。對等體4然后以對等體A的新 IP地址(或URI)對其表進行更新。
在步驟270處,類似于步驟210,按照已建立的慣例來執行通知。對 等體A向對等體3發送通知,該通知(如果被如此配置的話)除了其他內 容外,包括對等體A的ID、認證數據(例如證書)和新的對等體A的IP 地址。在步驟280處,對等體3使用對等體A的ID和認證數據(例如證 書)來認證對等體A,由此確認對等體A在對等體3的表中被注冊。對等 體3然后以對等體A的新IP地址(或URI)對其表進行更新。可以按照 任何已建立的協議來執行步驟290-296,其中,對等體A的逆指針表中的 每個對等體都將向對等體A發送'200 OK,。
圖6示例性示出了根據本發明的一個實施例的用于更新對等體的可替 換會話發起協議機制或其方法。所述協議可以邀請參與者到不必包括發起 者的單播或組播會話。由于SIP支持名稱映射和重定向服務,所以這使得 用戶可以從任何位置發起和接收通信和服務,并使得網絡可以識別用戶, 無論用戶在哪里。SIP是請求-響應協議,處理來自客戶端的請求和來自 服務器的響應。參與者通過SIPURL來識別。可以通過任何傳輸協議來發 送請求,例如用戶數據報協議(UDP)、簡單控制傳輸協議(SCTP)或 傳輸控制協議(TCP) 。 SIP確定將被用于會話的端系統、通信媒體和媒 體參數、以及被叫方加入通信的期望。這些一旦被確定,則SIP在通信的 任一端建立呼叫參數,并且處理呼叫傳輸和終止。相應地,圖6示出了可 替換圖5中所描述的機制的實現。取代使用NOTIFY請求(基于訂閱而構 建),該可替換實現使用被發送到逆指針表中的節點的PUBLISH (發布) 請求。在步驟310、 330、 350、 370和390-396中交換的信息與圖5的步驟210、 230、 250、 270和2卯-296中的那些NOTIFY請求相同,在此處 將其并入。類似地,圖5中所描述的步驟200、 220、 240、 260和280與圖 6相同,相應地,在此并入其描述。
才艮據本發明的另 一方面,還提供了 一種用于更新對等體的鄰居的鄰居 表的機制。可以通過SIP PUBLISH請求來實現這樣的機制。本領域技術 人員將理解,可以使用例如SIP或HTTP協議的任何其它類型的協議來取 代SIP PUBLISH 。如果實現SIP協議,則SIP請求可以包括對等體ID、 對應的新IP地址(或解析為該IP地址的URI)和認證數據(例如證書)。 圖7示例性示出了才艮據本發明的一個實施例的用于在IP地址改變后更新鄰 近對等體的^l"發起協議機制或方法。圖7示例性示出了根據本發明的一 個實施例的更新過程,其可在不需要任何訂閱的情況下使用SIP PUBLISH 請求。 一種可替換方法可使用訂閱(SUBSCRIBE/NOTIFY)。
在步驟400處,對等體A通過進行不同接入網絡之間的切換或從一個 WLAN接入點移動到另 一個WLAN接入點而從一個網絡移動到另 一個網 絡,由此改變與其關聯的IP地址或URI,由此獲得新IP地址或URI。在 步驟410處,SIP PUBLISH請求消息被發送到前趨2,該請求消息不需要 之前的訂閱來更新對等體詳細情況。在可替換實現中,可以使用SIP事件 通知框架(SUBSCRIBE/NOTIFY) (RFC 3265 ),而不是使用SIP PUBLISH。對等體A向前趨2發送通知,除了其他內容外,該通知包括 對等體A的ID、認證數據(例如證書)和新IP地址。在步驟420處,前 趨2使用對等體A的ID和認證數據(例如證書)來認證對等體A,由此 確認對等體A在前趨2的鄰居表中被注冊。前趨2然后使用對等體A的新 IP地址(或URI)更新其鄰居表。
在步驟430處,類似于步驟410,按照任何已建立的協議來執行通知。 對等體A向前趨1發送通知,除了其他內容外,該通知包括對等體A的 ID、認證數據(例如證書)和新IP地址。在步驟440處,前趨1使用對 等體A的ID和認證數據(例如證書)來認證對等體A,由此確認對等體 A在前趨l的鄰居表中被注冊。前趨l然后使用對等體A的新IP地址(或URI)更新其鄰居表。
更新前趨l中的表之后,對等體A通過更新后繼2的鄰居表而繼續。 在步驟450處,類似于步驟410,按照任何已建立的協議來執行通知。對 等體A向后繼2發送通知,除了其他內容外,該通知包括對等體A的ID、 認證數據(例如證書)和新IP地址。在步驟460處,后繼2使用對等體A 的ID和認證數據(例如證書)來認證對等體A,由此確認對等體A在后 繼2的表中被注冊。后繼2然后使用對等體A的新IP地址(或URI)對 其表進行更新。在本說明書的上下文中的此處和其它地方,認證和/或安全 特征是可選實施例,并且實現本發明不限于包括此類特征的實施例。
在步驟470處,類似于步驟410,按照已建立的協議來執行通知。對 等體A向后繼1發送通知,除了其他內容外,該通知包括對等體A的ID、 認證數據(例如證書)和新IP地址。在步驟480處,后繼1使用對等體A 的ID和認證數據(例如證書)來認證對等體A,由此確認對等體A在后 繼1的表中被注冊。后繼1然后使用對等體A的新IP地址(或URI)對 其表進行更新。步驟490-496可以按照已建立的協議來實施,其中,每個 鄰近對等體將向對等體A發送'200 OK,。
盡管可以順序地對每個關聯的鄰近對等體執行對等體A的IP地址改 變的通知,但是本領域技術人員可以理解,對等體A可以被配置為同時通 知所有關聯的前趨或后繼所述改變,或者可以以隨機方式通知所有關聯的 鄰近對等體所述改變。
相應地,如圖7中所示,在對等體A中的IP地址改變之后,該節點 將其新IP地址通知給其鄰居。其通過向每個鄰居發送SIP PUBLISH請求 消息來完成。PUBLISH請求包括主體,其中,所述主體包含通知者的對 等體ID、新IP地址或解析為該IP地址的URI以及認證數據。基于對該 PUBLISH請求的接收,鄰居對該對等體組合進行認證(使用證書),并 使用新更新的信息對其鄰居表進行更新。
圖8示例性示出了才艮據本發明的一個實施例的方法,其中,節點訂閱 節點的節點事件狀態包。在步驟600處,該方法包括在節點中創建指針表。在步驟610處,該方法訂閱包括在指針表中的至少一個其它節點的網絡地 址的改變。在步驟620處,該方法在該節點處接收包括至少一個其它節點 的標識符和網絡地址的至少一個通知。在步驟630處,該方法使用在通知 中接收的至少 一個其它節點的新網絡地址來更新指針表。
圖9示例性示出了根據本發明的一個實施例的用于配置逆指針表的方 法。在步驟700處,該方法在節點處創建逆指針表。在步驟710處,該方 法接收來自至少一個其它節點的對自身網絡地址的改變的訂閱。在步驟 720處,該方法在逆指針表中存儲至少一個其它節點的網絡地址。在步驟 730處,當節點的網絡地址或其它對應的連通性信息改變時,該方法從該 節點向存儲在逆指針表中的至少一個其它節點發送新網絡地址的通知。
圖10示例性示出了根據本發明的一個實施例的方法,用于在節點獲得 新地址后通知鄰近節點。在步驟800處,該方法在節點處創建鄰居表。在 步驟810處,該方法使用例如適當定義的DHT協議來獲知鄰居節點的網 絡標識符和/或網絡地址。在步驟820處,當節點的網絡地址改變時,該方 法從該節點向存儲在鄰居表中的至少一個其它鄰居節點發送新網絡地址的 通知。
圖11示例性示出了根據本發明的一個實施例的用于接收鄰近節點的 新地址并更新鄰居表的方法。在步驟卯O處,該方法在節點創建鄰居表。 在步驟910處,該方法使用例如適當定義的DHT協議來獲知鄰居節點的 網絡標識符和/或網絡地址。在步驟920處,該方法接收來自所述節點去往 存儲在鄰居表中的至少一個其它鄰居節點的新網絡地址的通知。在步驟 930處,該方法使用來自節點的新網絡地址更新至少一個其它鄰居節點的 鄰居表。
本發明諸多優點中的一部分包括最小化覆蓋網絡不穩定性,最小化 處理網絡重配置所需的開銷業務和對資源的使用(例如電池電源),以及, 在網絡擾動的情況下(例如對等體加入和/或離開覆蓋DHT網絡)減小搜 索延遲。
鑒于前述,才艮據本發明的各實施例,提供了一種在分布式散列表網絡
23架構的對等體節點中配置、提供和維護實時最新對等體標識和互聯網協議 地址映射信息的節點和方法。
應當理解,在本發明的實施例中,步驟以所示的順序和方式^L實施, 盡管在不脫離本發明的精神和范圍的情況下, 一些步驟的順序等可以被改 變。另外,圖4-9中所描述的方法可以被重復需要的次數。
根據本發明的一個實施例,還可以提供一種包含在計算機可讀介質上 的計算才幾程序產品,根據本發明的一個實施例,其編碼用于實施至少圖4 -9中所描述的方法的指令。計算機程序產品可以被包含在計算機可讀介 質上。計算機程序產品可包括也可存儲在計算機可讀介質上的用于處理無 線多跳無線系統的隧道傳輸的已編碼指令。
計算枳4呈序產品可以用硬件、軟件或混合方式來實現。計算機程序產 品可以由模塊組成,其中,所述沖莫塊彼此揭:作上通信,并被設計為向例如 用戶設備或網絡節點的通信設備傳遞信息或指令。計算機程序產品可以被 配置為在通用計算機或專用集成電路(ASIC)上運行。
根據本發明的一個實施例,與節點或對等體通信的設備可以包括任意 類型的移動或非移動網絡單元,其包括但不限于移動臺、膝上電腦、用戶 設備、無線發送/接收單元、固定或移動訂戶單元、移動電話、計算機(固 定或l更攜式)、尋呼機、個人數字助理或組織器或者能夠運行于無線環境 或具有聯網功能的任意其它類型的網絡元件。例如,如果設備是膝上電腦, 則當該膝上電腦被打開時,對可用網絡及其支持的服務(包括位置配置協 議)進行掃描。膝上電腦然后可以具有列出準則用于從可用網絡進行選擇 的筒檔。膝上電腦可以自動選擇與簡檔匹配較好的網絡。 一旦膝上電腦不 得不移動時,其可以被關閉并且隨后在新位置被再次打開,在此情況下, 此處描述的方法#>重復。
另外,盡管術語"數據"已被用于本發明的描述中,但本發明已引入 許多類型的網絡數據。對于本發明,術語"數據"包括分組、信元、幀、 數據4艮、橋協議數據單元分組、分組數據及其任何等效物。
根據本詳細說明,本發明的許多特性和優點是明顯的,因此,旨在由所附權利要求覆蓋落在本發明的實質精神和范圍內的本發明的所有此類特 性和優點。此外,由于對于本領域技術人員來說容易進行諸多修改和改變, 因此沒有預期將本發明限于所示例性說明和描述的精確構造和步驟,因此 可以釆用落在本發明的范圍內的所有合適的修改和等效變換。
權利要求
1.一種節點,包括包括一列鄰近節點的節點標識符和對應的地址的表,其中,節點標識符列和地址被彼此獨立地配置為,更新與所述鄰近節點中的至少一個相關聯的所述地址中的至少一個的改變。
2. 根據權利要求l所述的節點,其中,所a包括網絡中至少一個不 是鄰近節點的節點的節點標識符和對應的地址。
3. 根據權利要求l所述的節點,其中,所述地址包括互聯網協議地址 或統一資源標識符。
4. 一種節點,其被配置為創建指針表,被配置為訂閱包括在所述指針 表中的至少一個其它節點的網絡地址的改變,被配置為接收至少一個包括 所述至少一個其它節點的標識符和網絡地址的通知,以及4皮配置為,用在 至少一個通知中接收的所述至少一個其它節點的新網絡地址更新所述指針表。
5. 根據權利要求4所述的節點,其中,所述指針表包括不與所述節點 鄰近的至少 一個節點的標識符和對應的地址。
6. 根據權利要求4所述的節點,其中,所述節點通知在逆表中存儲指 向該節點的指針的所有節點該節點的地址已改變。
7. 根據權利要求4所述的節點,其中,所述至少一個通知包括會話發 起協議事件通知框架或M發起協議發布請求。
8. 根據權利要求4所述的節點,其中,所述至少一個通知進一步包括 用于認證發送所述通知的至少一個節點的認證數據。
9. 根據權利要求4所述的節點,其中,所述至少一個節點對于所述節 點是鄰近節點、后繼或前趨。
10. —種節點,其被配置為創建逆指針表,;故配置為接收來自至少一 個其它節點的對所述節點的網絡地址改變的訂閱,^皮配置為在所述逆指針 表中存儲所述至少一個其它節點的網絡地址,以及被配置為,在所述節點的網絡地址改變時,從所述節點向所述逆指針表中的所述至少 一個其它節 點發送新網絡地址的通知。
11. 根據權利要求10所述的節點,其中,所述逆指針表包括不與所述節點鄰近的至少 一個節點的標識符和對應的地址。
12. 根據權利要求10所述的節點,其中,所述節點通知存儲指向該節 點的指針的所有節點該節點的地址已改變。
13. 根據權利要求10所述的節點,其中,所述通知包括會話發起協議 事件通知框架或^發起協議發布請求。
14. 根據權利要求10所述的節點,其中,所述通知進一步包括用于至 少 一個其它節點對所述節點進行認證的認證數據。
15. 根據權利要求10所述的節點,其中,所述節點對于所述至少一個 節點是鄰近節點、后繼或前趨。
16. —種節點,其被配置為創建鄰居表,被配置為獲知鄰居節點的網 絡標識符和/或網絡地址,被配置為在所述鄰居表中存儲鄰居節點的網絡標 識符和/或網絡地址,以及被配置為,在所述節點的網絡地址改變時,向所 述鄰居表中的至少一個其它鄰居節點發送新網絡地址的通知。
17. —種節點,其被配置為創建鄰居表,被配置為獲知鄰居節點的網 絡標識符和/或網絡地址,被配置為在所述鄰居表中存儲鄰居節點的網絡標 識符和/或網絡地址,被配置為,在存儲在逆指針表中的所述至少一個其它 鄰居節點處接收來自所述節點的新網絡地址的通知,以及,皮配置為,用來 自所述節點的所述新網絡地址更新所述至少一個其它鄰居節點的所述鄰居 表。
18. —種節點,包括 用于創建指針表的裝置;用于訂閱包括在所述指針表中的至少 一個其它節點的網絡地址的改變的裝置;用于接收包括所述至少一個其它節點的標識符和網絡地址的至少一個通知的裝置;以及用于4吏用在所述至少 一個通知中接收的所述至少 一個其它節點的新網 絡地址更新所述指針表的裝置。
19. 一種節點,包括 用于創建逆指針表的裝置;用于接收來自至少一個其它節點的對所述節點的網絡地址的改變的訂 閱的裝置;用于在所述逆指針表中存儲所述至少一個其它節點的網絡地址的裝 置;以及用于在所述節點的網絡地址改變時,從所述節點向所述逆指針表中的 所述至少 一個其它節點發送新網絡地址的通知的裝置。
20. —種節點,包括 用于創建鄰居表的裝置;用于獲知鄰居節點的網絡標識符和/或網絡地址的裝置; 用于在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址 的裝置;以及用于在所述節點的網絡地址改變時,向所述鄰居表中的至少一個其它 鄰居節點發送新網絡地址的通知的裝置。
21. —種節點,其包括用于創建鄰居表的裝置,其被配置為獲知鄰居節點的網絡標識符和/ 或網絡地址;用于在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址 的裝置;用于在存儲在所述鄰居表中的至少一個其它鄰居節點處接收來自所述 節點的新網絡地址的通知的裝置;以及用于使用來自所述節點的所述新網絡地址更新所述至少 一個其它鄰居 節點的所述鄰居表的裝置。
22. —種方法,包括將表配置為包括一列鄰近節點的節點標識符和對應的地址;以及將節點標識符列和地址彼此獨立地配置為,更新與所述鄰近節點中的 至少一個關聯的所述地址中的至少一個的改變。
23. 根據權利要求22所述的方法,進一步包括將所"配置為,包括網絡中至少一個不是鄰近節點的節點的節點標 識符和對應的地址。
24. 根據權利要求22所述的方法,進一步包括 將所述地址配置為包括互聯網協議地址或統一資源標識符。
25. —種方法,包括 在節點處創建指針表;訂閱包括在所述指針表中的至少 一個其它節點的網絡地址的改變; 接收包括所述至少一個其它節點的標識符和網絡地址的至少一個通 知;以及用在所述至少 一個通知中接收的所述至少 一個其它節點的新網絡地址 更新所述指針表。
26. 根據權利要求25所述的方法,進一步包括將所述指針表配置為,包括不與所述節點鄰近的至少 一個節點的標識 符和對應的地址。
27. 才艮據權利要求25所述的方法,進一步包括 通知在逆表中存儲指向該節點的指針的所有節點該節點的地址已改變。
28. 根據權利要求25所述的方法,進一步包括 將所述至少一個通知配置為,包括^"發起協議事件通知框架或^"發起協議發布請求。
29. 根據權利要求25所述的方法,進一步包括 將所述至少一個通知配置為,進一步包括用于認證發送該通知的至少一個節點的認證數據。
30. 根據權利要求25所述的方法,進一步包括在時間間隔期間,使用所述節點向所述鄰近節點中的每個節點輸出所述通知o
31. —種方法,包括 在節點處創建逆指針表;接收來自至少一個其它節點的對所述節點的網絡地址的改變的訂閱; 在所述逆指針表中存儲所述至少一個其它節點的網絡地址;以及 在所述節點的網絡地址改變時,從所述節點向所述逆指針表中的所述 至少 一個其它節點發送新網絡地址的通知。
32. 根據權利要求31所述的方法,進一步包括 將所述逆指針表配置為,包括不與所述節點鄰近的至少一個節點的標識符和對應的地址。
33. 根據權利要求31所述的方法,進一步包括通知存儲指向該節點的指針的所有節點所述節點的地址已改變。
34. 根據權利要求31所述的方法,進一步包括 將所述通知配置為,包括會話發起協議事件通知框架或會話發起協議發布請求。
35. 根據權利要求31所述的方法,進一步包括 將所述通知配置為,進一步包括用于至少一個其它節點對所述節點進行認證的認證數據。
36. —種方法,包括在節點處創建鄰居表;獲知鄰居節點的網絡標識符和/或網絡地址;在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址;以及 在所述節點的網絡地址改變時,從所述節點向所述鄰居表中的至少一 個其它鄰居節點發送新網絡地址的通知。
37. —種方法,包括 在節點處創建鄰居表; 獲知鄰居節點的網絡標識符和/或網絡地址; 在所述鄰居表中存儲鄰居節點的所述網絡標識符和/或網絡地址;在存儲于所述鄰居表中的至少一個其它鄰居節點處接收來自所述節點的新網絡地址的通知;以及^使用來自所述節點的新網絡地址更新所述至少一個其它鄰居節點的所 述鄰居表。
全文摘要
提供了一種節點和方法,其在所述節點處創建指針表,訂閱包括在所述指針表中的至少一個其它節點的網絡地址的改變,接收包括所述至少一個其它節點的標識符和網絡地址的至少一個通知,以及,用在所述至少一個通知中接收的所述至少一個其它節點的新網絡地址更新所述指針表。所述節點和方法還在節點處創建逆指針表,接收來自另一節點的對所述節點的網絡地址的改變的訂閱,在所述逆指針表中存儲所述其它節點的網絡地址,以及在所述節點的網絡地址改變時,從所述節點向所述逆指針表中的其它節點發送新網絡地址的通知。
文檔編號H04L29/06GK101682618SQ200880015615
公開日2010年3月24日 申請日期2008年5月14日 優先權日2007年5月17日
發明者M·A·加西亞-馬丁, M·馬圖謝夫斯基 申請人:諾基亞公司