專利名稱:基于分布式哈希表的覆蓋網(wǎng)絡的路由機制的制作方法
技術領域:
本發(fā)明涉及基于分布式哈希表的覆蓋網(wǎng)絡的路由機制。本發(fā)明特別適用于確定對等網(wǎng)絡中資源請求的路由的優(yōu)化過程。
背景技術:
對等或P2P網(wǎng)絡利用包括處理能力和通信帶寬等參與節(jié)點的合并資源,以有利于包括文件共享和因特網(wǎng)話音協(xié)議(VoIP)電話的各種各樣的服務。在缺少中央服務器時,特定P2P服務可利用“覆蓋網(wǎng)絡”優(yōu)化資源位置。覆蓋網(wǎng)絡包括由虛擬鏈路連接的節(jié)點,虛擬鏈路表示在基礎網(wǎng)絡(例如,因特網(wǎng))中的可能許多物理鏈路上延伸的路徑。覆蓋網(wǎng)絡中的每個節(jié)點保持包含到覆蓋網(wǎng)絡內(nèi)某些其它節(jié)點的鏈路的集合的路由表。資源請求在節(jié)點之間傳遞,直至它們到達負責該資源的節(jié)點。哈希表是將密鑰與值相關聯(lián)的數(shù)據(jù)結(jié)構(gòu)。密鑰例如能夠是人員的名字和該人員的聯(lián)系地址(例如,電子郵件地址或會話啟動協(xié)議(SIP)統(tǒng)一資源標識符(URI))的相關聯(lián)值。哈希表支持的主要操作是查找-即給定一個密鑰,哈希表找到對應的值。分布式哈希表(DHT)提供類似于哈希表的查找服務。然而,不同于常規(guī)哈希表,DHT是在分布式系統(tǒng)或網(wǎng)絡中使用的非集中哈希表。在DHT中,保持從名稱到值的映射的責任分布在參與系統(tǒng)的節(jié)點之間。這通過在參與節(jié)點之間劃分密鑰空間來實現(xiàn)。DHT提供了用于將資源名稱(“密鑰”)映射到覆蓋網(wǎng)絡內(nèi)位置的有效方式。DHT 利用哈希算法將例如歌曲標題、SIP URI等密鑰映射到例如128比特等有限值空間。哈希算法經(jīng)選擇以確保哈希值在值空間上的相對均勻分布。因此,例如,100個歌曲標題的哈希將可能產(chǎn)生100個哈希值,這些值在值空間上相對均勻地間隔開。通過用戶名標識覆蓋網(wǎng)絡內(nèi)的節(jié)點,用戶名本身哈希為相應哈希值。每個節(jié)點隨后變?yōu)閷χ悼臻g內(nèi)與其自己值相鄰的哈希值的集合負責。實際上,節(jié)點將存儲資源位置(例如,IP地址),從資源位置能夠獲得匹配它“擁有”的資源名稱的資源。在覆蓋網(wǎng)絡中的節(jié)點接收對資源的請求時,節(jié)點確定它是否擁有對應的哈希值。如果是,它將資源的位置返回到請求者(經(jīng)由覆蓋網(wǎng)絡)。如果它不擁有該哈希值,則它檢查其路由表以識別表內(nèi)具有與該請求的哈希值最接近的哈希值的節(jié)點,并且將該請求轉(zhuǎn)發(fā)到該節(jié)點。接收節(jié)點重復該過程并繼續(xù),直至該請求到達確實擁有對應于該請求的哈希值并因此知道資源位置的節(jié)點。在諸如 Chord [I. Stoica、R. Morris、D. Karger > Μ. F. Kaashoek 及 H. Balakrishnan 所著“Chord 因特網(wǎng)應用的可擴展對等查找服務” (Chord =A Scalable Peer-to-peer Lookup Service for Internet Applications)-Proceedings of the ACM SIGCOMM' 01 Conference, August 2001,San Diego, California, USA.]等一些 DHT 中,路由表中的條目稱為指部指示符(pointer)。除路由表外,每個節(jié)點也保持稱為鄰居列表的另一數(shù)據(jù)結(jié)構(gòu)。 鄰居列表包含到覆蓋網(wǎng)絡中節(jié)點的緊鄰的后繼(successor)和前趨(predecessor)(即鄰居)的指示符。節(jié)點根據(jù)網(wǎng)絡的拓撲挑選其鄰居。鄰居(其能夠是前趨或后繼)與指部之間的不同在
圖1中示出,圖1示出了具有環(huán)狀拓撲的覆蓋網(wǎng)絡(僅示出在該環(huán)內(nèi)的少量節(jié)點)。每個節(jié)點保持一個路由表,路由表包含在環(huán)中少量后繼和前趨節(jié)點及少量更遠節(jié)點的位置和哈希值。在所示網(wǎng)絡中,節(jié)點X在其路由表中保持兩個后繼節(jié)點、兩個前趨節(jié)點及三個遠程節(jié)點的位置。例如,在上述Chord DHT算法中,每個節(jié)點η保持帶有最多m個指部的路由表(m經(jīng)選擇以便它等于節(jié)點標識符中的比特數(shù)量)。在節(jié)點η處的表中第i個條目包含標識符環(huán)上在η后至少2Η的第一節(jié)點s的身份。圖2示出Chord環(huán)的一個示例,其中,m = 5,表示每個節(jié)點保持5個指部。節(jié)點N 將標識符環(huán)劃分成五個不同指部間隔,其范圍在表1中列出。例如,間隔3的指部F3是在標識符環(huán)上在N后至少23—1 = 4的第一節(jié)點。
權利要求
1.一種節(jié)點,所述節(jié)點在覆蓋網(wǎng)絡內(nèi)使用并且包括用于基于所述覆蓋網(wǎng)絡中對等節(jié)點的集合的功耗水平和/或功率可用性的知識做出路由判定的判定單元。
2.如權利要求1所述的節(jié)點,所述節(jié)點是移動用戶終端。
3.如權利要求1或權利要求2所述的節(jié)點,其中所述對等節(jié)點的集合是路由鄰居節(jié)點, 所述節(jié)點包括存儲器,用于存儲路由表以及用于每個路由鄰居的所述路由表中的參數(shù)或與所述路由表相關聯(lián)的參數(shù),對于每個路由鄰居節(jié)點所述路由表包含所述節(jié)點的覆蓋網(wǎng)絡地址與所述節(jié)點的物理定位器之間的映射,所述參數(shù)包括功率使用參數(shù),指示多個操作狀態(tài)中每個操作狀態(tài)的功耗水平,以及功率管理狀態(tài)PMS參數(shù),指示當前或最近通知的所述路由鄰居的操作狀態(tài);以及處理單元,配置為基于所述路由鄰居的所述功率使用參數(shù)和所述PMS參數(shù)確定消息要轉(zhuǎn)發(fā)到的路由鄰居。
4.如權利要求3所述的節(jié)點,并且配置為從路由鄰居接收指示所述路由鄰居將要更改其操作狀態(tài)的狀態(tài)更新消息,所述狀態(tài)更新消息包括對于所述路由鄰居將要進入的所述操作狀態(tài)所述路由鄰居的新PMS參數(shù),所述節(jié)點在用于所述路由鄰居的所述路由表條目中存儲所述新PMS參數(shù)。
5.如權利要求4所述的節(jié)點,并且配置為根據(jù)所述路由表中所述路由鄰居的所述參數(shù)確定是否任何所述路由鄰居處于休眠模式,以及存儲所述覆蓋網(wǎng)絡中的所述狀態(tài)更新消息以便以后在所述休眠路由鄰居將狀態(tài)從所述休眠模式更改為活動或受限模式時輸送給它所述休眠路由鄰居。
6.一種節(jié)點,所述節(jié)點在覆蓋網(wǎng)絡內(nèi)使用并且配置為將所述節(jié)點的多個操作狀態(tài)中每個操作狀態(tài)的功耗水平提供到所述覆蓋網(wǎng)絡中的其它節(jié)點,以及通知所述網(wǎng)絡中一個或多個對等節(jié)點所述節(jié)點的操作狀態(tài)的即將更改。
7.如權利要求6所述的節(jié)點,所述節(jié)點是移動用戶終端。
8.如權利要求6或權利要求7所述的節(jié)點,并且包括存儲指示所述功耗水平的功率使用參數(shù)的存儲器,以及處理單元,配置為在發(fā)送到所述覆蓋網(wǎng)絡中其它節(jié)點的對等協(xié)議消息中提供所述功率使用參數(shù),以及在發(fā)送到所述網(wǎng)絡的其它節(jié)點的通知中提供指示所述節(jié)點將要進入的操作狀態(tài)的PMS參數(shù)。
9.如權利要求8所述的節(jié)點,并且配置為將指示它將要更改其操作狀態(tài)的狀態(tài)更新消息發(fā)送到所述覆蓋網(wǎng)絡內(nèi)的一個或多個路由鄰居,所述狀態(tài)更新消息包括對于所述節(jié)點將要進入的所述操作狀態(tài)所述節(jié)點的PMS參數(shù)。
10.如權利要求6到9任一項所述的節(jié)點,還配置為將有關其剩余電池容量的信息提供到所述網(wǎng)絡的其它節(jié)點。
11.如權利要求10所述的節(jié)點,其中所述剩余電池容量包括如果所述節(jié)點仍處于活動狀態(tài),它將在某個時間量內(nèi)用盡電池容量的指示。
12.如前面權利要求任一項所述的節(jié)點,并且配置為訪問無線電資源控制RRC狀態(tài)機以確定操作狀態(tài)信息。
13.如權利要求12所述的節(jié)點,并且配置用于在寬帶碼分多址WCDMA覆蓋網(wǎng)絡中操作。
14.如權利要求12或權利要求13所述的節(jié)點,并且包括在所述節(jié)點的本地平臺上運行以便訪問所述RRC狀態(tài)機的應用。
15.如權利要求14所述的節(jié)點,其中所述應用包括配置為訪問所述RRC狀態(tài)機的供應商特定應用編程接口(API)或借助于Java規(guī)范請求(JSR)獲得的Java應用,所述Java應用允許訪問所述RRC狀態(tài)機。
16.如權利要求1到11任一項所述的節(jié)點,配置為通過參考所述節(jié)點的終端型號,以及從web服務器或者從通過在所述節(jié)點駐留的P2P應用提供的數(shù)據(jù)獲得節(jié)點的功率使用參數(shù)。
17.如權利要求16所述的節(jié)點,并且配置為通過參考系統(tǒng)屬性確定所述終端的所述型號。
18.如前面權利要求任一項所述的節(jié)點,其中所述節(jié)點無法確定另一對等體的所述操作狀態(tài),所述節(jié)點配置為在它發(fā)起的對等協(xié)議消息中將PMS參數(shù)設置為“未知”。
19.如前面權利要求任一項所述的節(jié)點,其中在包括以下一項或多項的功率使用參數(shù)方面指定所述功耗水平休眠模式功率使用SMPU參數(shù),指定所述節(jié)點處于節(jié)能或休眠模式時的功耗;活動模式功率使用AMPU參數(shù),指定所述節(jié)點在活動模式中操作時的功耗;以及受限模式功率使用RMPU參數(shù),指定所述節(jié)點在受限模式中操作時的功耗。
20.如前面權利要求任一項所述的節(jié)點,其中所述PMS參數(shù)指示從以下項中選擇的操作狀態(tài)節(jié)能或休眠狀態(tài);活動狀態(tài);受限狀態(tài);及未知狀態(tài)。
21.一種在覆蓋網(wǎng)絡的路由節(jié)點做出路由判定的方法,所述方法包括基于所述對等節(jié)點的功耗水平和/或功率可用性的知識,選擇在所述覆蓋網(wǎng)絡中消息要轉(zhuǎn)發(fā)到的對等節(jié)點的集合中的一個或多個對等節(jié)點。
22.如權利要求21所述的方法,其中所述覆蓋網(wǎng)絡采用分布式哈希表DHT,以及其中所述覆蓋網(wǎng)絡包括保持路由表的節(jié)點,對于所述覆蓋網(wǎng)絡中路由鄰居節(jié)點的集合的每個路由鄰居節(jié)點路由表包含所述節(jié)點的覆蓋網(wǎng)絡地址與所述節(jié)點的物理定位器之間的映射,所述方法還包括在每個所述覆蓋網(wǎng)絡節(jié)點保持用于每個路由鄰居的所述路由表中的參數(shù)或與所述路由表相關聯(lián)的參數(shù),所述參數(shù)包括功率使用參數(shù),指示多個操作狀態(tài)中每個操作狀態(tài)的功耗水平,以及功率管理狀態(tài)PMS參數(shù),指示當前或最近通知的所述路由鄰居的操作狀態(tài)。
23.如權利要求22所述的方法,其中保持參數(shù)包括從路由鄰居接收狀態(tài)更新消息,所述狀態(tài)更新消息包括指定所述路由鄰居將要進入的下一操作狀態(tài)的PMS參數(shù);以及更新其路由表中的或與其路由表相關聯(lián)的所述路由鄰居的PMS參數(shù)。
24.如權利要求22或權利要求23所述的方法,還包括檢查所述路由鄰居的所述PMS狀態(tài),以及在路由鄰居不在休眠時發(fā)送所述狀態(tài)更新消息到所述路由鄰居,或者在路由鄰居正在休眠時,存儲所述覆蓋網(wǎng)絡中的所述消息以便以后輸送到所述路由鄰居。
25.如權利要求M所述的方法,其中存儲所述覆蓋網(wǎng)絡中的所述狀態(tài)更新消息包括 檢查所述休眠路由鄰居的直接路由鄰居的所述PMS狀態(tài),以識別非休眠直接路由鄰居;以及將目的地為所述休眠路由鄰居的所述狀態(tài)更新消息發(fā)送到所述非休眠直接鄰居以便存儲。
26.如權利要求25所述的方法,其中所述非休眠直接路由鄰居將要進入所述休眠模式,所述方法還包括將所述狀態(tài)更新消息轉(zhuǎn)發(fā)到所述休眠路由鄰居的另一非休眠直接路由鄰居。
27.如權利要求21到沈任一項所述的方法,其中所述覆蓋網(wǎng)絡在對等P2P網(wǎng)絡中操作,與所述功耗水平和/或功率可用性有關的信息在使用諸如P2P SIP等對等協(xié)議在節(jié)點之間發(fā)送的消息中提供。
28.如權利要求21到27任一項所述的方法,其中選擇消息要轉(zhuǎn)發(fā)到的路由鄰居包括將備選路由鄰居的集合確定為要路由到目的地對等體的消息的下一跳對等節(jié)點;檢查所述下一跳對等節(jié)點的操作狀態(tài);以及如果在所述消息發(fā)送到下一跳對等節(jié)點時將不需要狀態(tài)更改,則將所述消息轉(zhuǎn)發(fā)到該節(jié)點;或者如果所有節(jié)點都需要狀態(tài)更改,則檢查所述下一跳對等節(jié)點的功耗水平,計算在更改每個所述下一跳對等體的狀態(tài)中涉及的功耗的增大,以及將所述消息轉(zhuǎn)發(fā)到需要功耗最小增大的下一跳對等體。
29.如權利要求21到觀任一項所述的方法,其中所述DHT使用Chord算法或Kademlia 算法操作。
30.如權利要求21到四任一項所述的方法,其中基于所述DHT的覆蓋網(wǎng)絡以遞歸方式或以迭代方式路由消息。
31.如權利要求21到30任一項所述的方法,其中所述路由鄰居是分層覆蓋網(wǎng)絡中的超級對等體。
32.如權利要求觀到31任一項所述的方法,其中在包括一個或多個“未知”狀態(tài)參數(shù)的PMS參數(shù)方面指定路由鄰居的所述操作狀態(tài),所述方法包括A)如果所述備選下一跳節(jié)點的集合包含處于活動模式的至少一個對等體,則將所述消息轉(zhuǎn)發(fā)到處于活動模式的所述對等體之一;以及B)如果所述備選下一跳節(jié)點的集合不包含處于所述活動模式的對等體,則從具有未知狀態(tài)的所述對等體中選擇在所述活動模式中具有最小功耗的對等體。
全文摘要
一種在諸如基于分布式哈希表的覆蓋網(wǎng)絡等覆蓋網(wǎng)絡內(nèi)使用并配置為跨覆蓋網(wǎng)絡路由分組的節(jié)點。節(jié)點包括用于基于覆蓋網(wǎng)絡中對等節(jié)點的集合的功耗水平和/或功率可用性的知識做出路由判定的部件。
文檔編號H04W84/18GK102204346SQ200880131844
公開日2011年9月28日 申請日期2008年8月27日 優(yōu)先權日2008年8月27日
發(fā)明者J·梅恩帕, T·埃克 申請人:愛立信電話股份有限公司