專利名稱::使用前綴哈希樹(pht)在對等通信網(wǎng)絡中定位服務的制作方法
技術領域:
:本發(fā)明涉及對等通信網(wǎng)絡領域。更具體地,涉及在這種對等網(wǎng)絡中定位服務。
背景技術:
:對等網(wǎng)絡已逐漸顯現(xiàn)為某些類型的服務的有效選擇方案。例如,Skype公司已在用于建立基于IP的語音(VoIP)或基于IP的多媒體通信會話的對等模式上獲得了成功。其它內容交換服務也是基于對等技術,諸如eMule、Bittorrent和JXTA網(wǎng)絡。對等網(wǎng)絡的基本原理在于無需中心體服務邏輯分布在對等網(wǎng)絡的所有單元上;每個單元實質上既是客戶機(請求服務),也是服務器(提供服務)。許多對等網(wǎng)絡都是基于分布式哈希表。分布式哈希表是一種用于在諸如對等網(wǎng)絡的大型分布系統(tǒng)內記憶和恢復信息的技術。原則上,哈希表的內容分布在網(wǎng)絡的所有對等體或節(jié)點上,沒有中央設備。這種分布式哈希表在2003年2月的雜志"ACM通信"第46巻第2冊中發(fā)表的H.Balakrishna、F.Kaashoek、D.Karger、R.Morris和I.Stoica所著的文章"LookingupDatainP2PSystems"中進行了描述。圖l描述了由節(jié)點X,,X2,X3…Xn枸成的分布式哈希表DHT。一條信息通過將其與關鍵字K相關聯(lián)并對該關鍵字應用哈希函數(shù)H而保存在DHT網(wǎng)絡內。值H(K)確定用于識別網(wǎng)絡內特定節(jié)點的索引(例如,5具有索引i的最近的節(jié)點,或者僅僅更低的節(jié)點)。為了恢復信息,可以執(zhí)行相同的過程。信息保存和恢復機制已經(jīng)在本領域的普通技術人員可獲得的相關主題的許多出版物中凈皮說明。此外,這些機制將在后面稍加進一步地描述。在此重要的是,注意保存過程的完全分布式特性,以及由此用于將被保存的信息的空間可被分割成由N個節(jié)點構成的存儲空間的事實。在超過一種用于通信網(wǎng)絡體系結構以及用于基于IP的語音(VoIP)/基于IP(因特網(wǎng)協(xié)議)的多媒體應用的方式上,該分布式方面4W趣。其也可能克服集中式系統(tǒng)所具有的某些負擔在服務的訂戶的數(shù)量大時增加的集中式系統(tǒng)的^!^莫;維持集中式系統(tǒng)的必要性和復雜性;處理系統(tǒng)崩潰和故障;等等。對等體系結構的最終成功已經(jīng)鼓舞IETF(互聯(lián)網(wǎng)工程任務組)來從事定義用于基于會話啟動協(xié)議(SIP)的服務的特定體系。SIP協(xié)議由IETF的RFC3261定義,并被設計為承栽在基于因特網(wǎng)協(xié)議(IP)傳送數(shù)據(jù)的網(wǎng)絡上協(xié)商和建立多媒體會話所需的信令。該工作目前由IETF的P2P-SIP(對等SIP)工作組承擔。描述該工作的一個文檔是題為"dSIP:AP2PApproachtoSIPRegistrationanResourceLocation"的IETF草案,其于2007年2月以"draft勿an-p2psip-dsip-00"為名發(fā)表。SIP協(xié)議需要一定數(shù)量的服務(諸如"注冊器"),其可通過分布式哈希表實施而不是中央服務器。這些服務還可包括-STUN(用戶數(shù)據(jù)報協(xié)議(UDP)簡單穿越網(wǎng)絡地址轉換器(NAT)),由RFC3489定義;-TURN(使用中繼(Relay)方式穿越NAT),于2005年9月以"draft-rosenberg-midcom-rurn-08.txt"為名并以"IETF草案,,狀態(tài)發(fā)表;-媒體中繼;-在席月艮務(presenceservice)等。這些服務可以由分布式哈希表的一個或多個節(jié)點提供,但這帶來了SIP客戶機或其它網(wǎng)絡單元如何定位它們的問題。在IETF工作組的討論中已經(jīng)提到了幾種可能的解決方案。第一種方法包括使用單個中央服務器,該中央服務器的目的是維持服務與提供這些服務的服務器的地址之間的關聯(lián)性。該服務器應當具有被適當確定的地址,以致客戶機可以容易地聯(lián)系它。這樣,查找STUN服務器的客戶機將向其發(fā)送包含參數(shù)"STUN"的服務請求,并將接收一列地址,其中每個地址對應于提供該服務的分布式哈希表的節(jié)點。然而,該第一種方法并不令人滿意,因為其引入中央服務器,而這與對等網(wǎng)絡的真正原理是相反的。集中式方案的上述缺點導致對等方案的創(chuàng)建和成功,因此也適用于此,特別是該服務器在體系結構中成為弱點的事實如果出現(xiàn)故障,則客戶機將不再能夠定位提供正被搜索的服務的服務器(節(jié)點)。此外,該中央服務器是有害的拒絕服務(DOS)攻擊的優(yōu)選目標。因此,可供選擇的方法包括將位置信息保存到分布式哈希表本身。根據(jù)該方法的第一種方案包括將關鍵字與一組位置信息相關聯(lián)。該思想已在2006年12月提交到IETF的P2PSIP工作組的郵件列表。然而,該第一種方案有若干缺點。具體地,如果分布式哈希表中服務的數(shù)量或者節(jié)點的數(shù)量較大,則位置信息將占據(jù)大量的空間。這可導致正在處理該信息的節(jié)點的大小問題根據(jù)分布式哈希表的基本原理,由于該表是自我管理的,因此無法檢查哪個節(jié)點正在處理給定的信息。另外,位置信息可由客戶機是分布式哈希表的一部分的體系結構中具有有限容量的節(jié)點管理,諸如通信客戶機。除了存儲問題,還有該節(jié)點接收所有服務請求的缺點。這在通信網(wǎng)絡中產(chǎn)生超負荷點。笫二種方案包括對每個服務實例定義不同的位置信息。例如,可以對每個服務定義一個前綴,并將實例的索引號添加到該前綴上,以便形成位置信息關鍵字。這可用于創(chuàng)建"STUN1"關鍵字(其與至少包含提供STUN服務的第一服務器的IP地址的位置信息相關聯(lián))、"TURN5"關鍵字(其與至少包含提供TURN服務的第五服務器的IP地址的位置信息相關聯(lián))等。但是,出現(xiàn)了如何向通信客戶機提供有關可用的關鍵字的信息(什么服務可用?哪些索引可用于每個服務?)的問題。由于分布式哈希表僅接受"準確的"請求,即搜索準確確定的關鍵字,因此,搜索位置信息需要若干連續(xù)的請求,以致客戶機能夠獲得所有與給定服務(諸如"STUN")有關的位置信息。另外,該方法在處理分布式哈希表的動態(tài)方面非常差每當客戶M提供所請求的服務的最后一個服務器接收位置信息時,其它服務器可能被連接到該表,而其它服務器可能被斷開。那么,客戶機獲得最新的信息變得不可能。
發(fā)明內容本發(fā)明的目的是提供一種用于定位提供所請求的服務的一組服務器的方案。本發(fā)明的第一個目的是一種通信網(wǎng)絡,其包括分布式哈希表,該分布式哈希表的節(jié)點提供對于連接到所述通信網(wǎng)絡的網(wǎng)絡單元能夠訪問的服務。分布式哈希表具有-用于從網(wǎng)絡單元接收服務定位請求的裝置,所述請求包含至少一個服務標識符;以及-用于在分布式哈希表內搜索至少一個位置信息并將其傳輸?shù)骄W(wǎng)絡單元的搜索裝置。這些位置信息中的每一個對應于提供由服務標識符確定的服務的節(jié)點。本發(fā)明的通信網(wǎng)絡的特征在于-組織p合希表,以致位置信息與包含至少一個服務標識符的關鍵字相關聯(lián),其中關鍵字對應于其節(jié)點的標簽分布在分布式哈希表內的PHT二叉樹上的葉子;-搜索裝置被設計為在所有或一部分葉子中搜索位置信息并將其傳輸?shù)骄W(wǎng)絡單元,其中所述葉子的標簽是包含在服務請求內的服務標識符的前綴。在本發(fā)明的一個實施例中,網(wǎng)絡單元是通信客戶機,特別地,是被設計為使用SIP協(xié)議進行通信的通信客戶機。該通信客戶機可以是通信終端。標簽和關鍵字可以是二進制字,其中標簽以使得采用降序排列的每個比特的權重對應于二叉樹內增加的深度層級的方式形成。所需的服務例如可以是STUN和/或TURN服務,和/或符合IETF的RFC3489bis。提供服務的節(jié)點可以是分布式哈希表的節(jié)點中的一個。因此,也可以是分布式p合希表之外的節(jié)點。在本發(fā)明的一個實施例中,標簽可以由至少一個服務標識符、傳輸協(xié)議指示、位置信息和端口構成。具體地,位置信息可以是IP地址。這些標簽還可包括根據(jù)IETF的RFC1630定義通用資源標識符或URI的所有或一部分參數(shù)。本發(fā)明的另一個目的是一種使通信設備能夠訪問由分布式哈希表提供的服務的方法。該方法包括-傳輸服務定位請求的步驟,其中所述請求包含服務標識符;以及-在分布式哈希表中搜索至少一個位置信息的步驟,其中這些位置信息中的每一個對應于提供服務的節(jié)點。本發(fā)明的方法的特征在于,搜索步驟包括在其節(jié)點的標簽分布在分布式哈希表內的PHT二叉樹內搜索關鍵字。該關鍵字至少包含服務標識符,所述搜索包括在所有或一部分葉子中搜索位置信息,其中所述葉子的標簽;U良務標識符的前綴。在本發(fā)明的一個實施例中,網(wǎng)絡單元是通信客戶機,具體地,是被設計為使用SIP協(xié)議進行通信的通信客戶機。該通信客戶機可以是通信終端。而且,標簽和關鍵字可以是二進制字。標簽可以使得采用降序排列的每個比特的權重對應于二叉樹內增加的深度層級的方式形成。月艮務可以是STUN和/或TURN服務,和/或符合IETF的RFC3489bis。具體地,提供服務的節(jié)點可以是分布式哈希表的節(jié)點中的一個。標簽可以由至少一個服務標識符、傳輸協(xié)議指示、位置信息和端口構成。更準確地說,所述定位信息可以是一個IP地址。標簽還可包括才艮據(jù)IETF的RFC1630定義通用資源標識符或URI的所有或一部分參數(shù)。本發(fā)明的另一個目的是一種計算機程序,其被設計為每當在信息處理設備上運行時執(zhí)行這種方法。具體地,該設備可以是諸如通信網(wǎng)絡的分布式系統(tǒng)。在這種情況下,通過分布在不同物理設備上的不同的軟件模塊,可以實現(xiàn)該方法的各種步驟。本發(fā)明的另一個目的是一種包含這種計算機程序的計算機介質。該介質可以是諸如CD-ROM或DVD-ROM的光學存儲裝置。它也可以是硬盤驅動器,因此也^Jl務器,可從中下載計算機程序。在以下結合附圖的說明中,本發(fā)明及其優(yōu)點將會變得更加清楚。圖l給出分布式哈希表的圖,如上所述;圖2描述根據(jù)本發(fā)明的一個可能的體系結構;圖3給出示例性的PHT二叉樹的圖4描述本發(fā)明在通信網(wǎng)絡內定位STUN服務器的一個應用。具體實施例方式圖2描述的體系結構表示本發(fā)明的一個可能的實現(xiàn)方式。通信網(wǎng)絡NET包括由一組節(jié)點Xi、X2、X3…Xn枸成的分布式哈希表DHT。不言而喻,這些節(jié)點的數(shù)量可以是動態(tài)的這些節(jié)點可以動態(tài)地從分布式哈希表中除去和添加到分布式哈希表中。分布式哈希表具有用于通過在組成蓋分布式哈希表的節(jié)點內重新分配信息來處理該動態(tài)方面的算法裝置。網(wǎng)絡單元可以連接到通信網(wǎng)絡NET,并訪問分布式P合希表DHT。圖中示出了網(wǎng)絡單元T與分布式哈希表DHT之間的直接連接,但實際上,各種類型的網(wǎng)絡設備可以位于這兩個設備之間網(wǎng)絡地址轉換器NAT、會話邊界控制器SBC、SIP代理等。網(wǎng)絡單元T可以是通信客戶機,特別地,是被設計為使用SIP協(xié)議與通信網(wǎng)絡NET進行通信的通信客戶機。在此,術語"通信客戶機,,是指任何用于發(fā)送請求,特別是SIP請求的設備。具體地,它可以是與用戶進^f亍交互的通信終端。這些網(wǎng)絡單元可以發(fā)送服務定位請求R,其包含至少一個用于被搜索的服務的標識符ID。如上所述,該服務可以是STUN、TURN或ICE服務、媒體中繼、在席服務等。服務,因此,正被搜索的服務也可以是"統(tǒng)一的服務,,。分布式哈希表被設計為接收這些定位請求。這些接收裝置可分布在所有節(jié)點上,或者分布在僅僅一部份節(jié)點上。服務定位請求從網(wǎng)絡單元接收,但可穿過中間設備。在某些情況卞,;這些中間設備中的一部分可以解析服務定位請求的內容,并編輯某些字段,包括確定服務標識符的最終值。在這種情況下,分布式哈希表DHT具有用于搜索與該服務標識符ID相關聯(lián)的位置信息的裝置。該位置信息可對應于分布式哈希表的提供所需服務的一個或多個節(jié)點。例如,該位置信息可以是這些節(jié)點的IP(因特網(wǎng)協(xié)議)地址。在一個變形中,位置信息可對應于分布式哈希表DHT之外的節(jié)點。該表用作位置的裝置,外部節(jié)點(或服務器)使用該表以將自己注冊為服務提供者,變成對于服務請求者可訪問。然后,該位置信息可被發(fā)送到請求網(wǎng)絡單元T。在本發(fā)明中,分布式哈希表的特征在于,其以使得位置信息與包含至ii少一個服務標識符并對應于PHT二叉樹或前綴"^合希表上的葉子的關鍵字相關聯(lián)。PHT二叉樹在SriramRamabhadran、SylviaRatnasamy、JosephM.Hellerstein和ScottShenker所著的文章"PrefixHashTree-AnIndexingDataStructureoverDistributedHashTables"(才支術凈艮告,伯克利英特爾研究,2004年2月)中進行了描述。這是一種在分布式哈希表上部署的結構,以便產(chǎn)生間隔請求。它屬于更廣范疇的"trie樹"。trie樹是一種數(shù)據(jù)結構,其形成用于保存關g的有序樹,關聯(lián)表的關鍵字是字符串。trie樹的更完整定義可以在DonaldKmith的著作"計算機編程技術第3巻排序與搜索"(第三版,Addison-Wesley,1997年,第492—512頁)中找到。。在PHT中,字符串是二進制字符串。通常,在PHT中,節(jié)點的標簽沒有^^在節(jié)點內,但可以從樹內的節(jié)點的位置中導出。圖3給出PHT的圖。每個節(jié)點或者有兩個子節(jié)點或者沒有。如果沒有,則稱為二叉樹的"葉子"。在圖中,節(jié)點p5、p6、p8、p10、pll、p13、p14、pl6和pl7是葉子。該屬性確保PHT二叉樹的葉子形成一組通用前綴對于每個關鍵字,只有一個葉子的標簽是該關鍵字的前綴。當節(jié)點不是葉子時,其兩個子節(jié)點的每一個都通過具有二進制值,即"0"值(圖中的左手分支)或'T,值(圖中的右手分支)的分支連接到該節(jié)點。將從根pl開始并擴展到一個葉子的分支的值連接在一起以給出該葉子的標簽。例如,葉子p14具有標簽"00100",葉子p10具有標簽"110",等。因此,加標簽可以被看作遞歸法如果節(jié)點的標簽是I,則其左和右子節(jié)點分別是"10"和"II"。關鍵字被保存在PHT二叉樹的葉子內,其取決于這些葉子的標簽。更具體地,關鍵字K被保存在其標簽是關鍵字K的前綴的葉子中。根據(jù)以上論述,下表給出了圖3所示的例子的關鍵字與匹配葉子之間的匹配的例子。葉子<table>tableseeoriginaldocumentpage13</column></row><table>為了建造PHT二叉樹,使用兩個規(guī)則-每個葉子包含有限數(shù)量的關鍵字。該最大值此后標記為B。-每個中間節(jié)點在其子樹中包含最多B+l個。作為這兩個規(guī)則的結果,如果一個葉子以包含比極限B更多的關鍵字結束,則成為內部節(jié)點,創(chuàng)建兩個新葉子作為其子節(jié)點。這些關鍵字被分配在兩個子葉子中。例如,如果足夠多數(shù)量的關鍵字被添加到葉子P11上,則從pll中創(chuàng)建兩個新的葉子標簽為"1110"的左側葉子plla和標簽為"1111"的右側葉子pllb。那么,節(jié)點pll變成內部節(jié)點。相反,如果內部節(jié)點在其子樹上不具有足夠的關鍵字,則子樹葉子與其父親內部節(jié)點合并。例如,如果葉子plO和pll不再包含足夠的關鍵字,則這兩個葉子消失,其關鍵字被保存在節(jié)點p7中,那么p7變成葉子。另外,每個關鍵字在關鍵字-葉子關聯(lián)中僅出現(xiàn)一次。雖然單個葉子可包含多個關鍵字(如表中的例子所給出的),但是,單個關鍵字只被分配給一個葉子。另外,為了優(yōu)化數(shù)據(jù)結構,二叉樹上的每個葉子可具有指向被定位到其緊挨著的右方和左方的葉子的指針。因此,例如,葉子p6具有指向葉子p5和p10的指針;葉子p13具有指向葉子p5和p17的指針。如上所述,這種二叉樹建立在分布式哈希表DHT的"上面,,。對于分布式哈希表,有多種可能的實現(xiàn)。為了容易理解,圖l描述了簡化的例子,但是,本發(fā)明不應當被理解為限于該特定實施方式。分布式哈希表DHT的一組節(jié)點X^X2、X3…Xn扮演相同的角色。為了保存或恢復該表(或網(wǎng)絡)中的值,這些節(jié)點中的任何一個都可能凈皮聯(lián)系。在圖l所給出的例子中,如上所述,設備D通過向節(jié)點X3提供邏輯地址來查詢節(jié)點X3。該節(jié)點基于所提供的邏輯地址計算哈希函數(shù)H。哈希函數(shù)是用于將屬于較大規(guī)模的組(所有可能的邏輯地址的組)的值轉換成屬于較小規(guī)模的組的第二值的函數(shù)。在此,該第二值是在包含1和N在內的1和N之間的數(shù)字,其中N是分布式哈希表DHT中節(jié)點的數(shù)哈希函數(shù)H通常應當遵守以下的數(shù)學屬性H(X)^H(y)-x-y。另外,如果x^y,則H(X)-H(y)的概率必然高。函數(shù)H理想地適合于獲得尋址空間內的統(tǒng)一關鍵字分布。該分布傾向于與大量的關鍵字的統(tǒng)一性。哈希函數(shù)所返回的值i使節(jié)點X3推斷出節(jié)點&可能是擁有所接收的邏輯地址與對應域之間的關聯(lián)的節(jié)點。節(jié)點X3將該請求傳輸給節(jié)點Xj。如果該節(jié)點確實擁有該關聯(lián),則它可返回與該邏輯地址相關聯(lián)的域。否則,它可將該請求傳輸?shù)娇赡軗碛性撽P聯(lián)的另一個(鄰居)節(jié)點。通過迭代,算法朝著實際上擁有該關聯(lián)的節(jié)點越來越近地收斂。保存新關聯(lián)的原理是類似的。在對等DHT網(wǎng)絡上的任何節(jié)點接收保存請求,并基于哈希函數(shù)和邏輯地址計算一個值。該值從分布式哈希表DHT的所有節(jié)點中確定一個特定節(jié)點,第一個節(jié)點向該特定節(jié)點重發(fā)保存請求。所指定的節(jié)點保存關聯(lián)。在本發(fā)明使用PHT二叉樹的情況下,PHT二叉樹的節(jié)點的標簽被分布在哈希表DHT內。具體地,為了保存標簽,哈希函數(shù)H被應用于該標簽,二叉樹節(jié)點被保存在由哈希函數(shù)H返回的值所確定的哈希表節(jié)點上。在本發(fā)明中,關鍵字包含至少一個服務標識符,并與位置信息相關聯(lián)。例如,關鍵字可包含物理地址、IP地址/端口配對等。例如,關鍵字還可包含其它信息,諸如所使用的傳輸協(xié)議。關鍵字的結構可以如下所示<table>tableseeoriginaldocumentpage15</column></row><table>如果地址是IPv4,則該關鍵字可以是例如72比特。服務標識符占據(jù)16比特,傳輸協(xié)議8比特,IPv4地址32比特,端口16比特。傳輸協(xié)議指示通常使用IANA(互聯(lián)網(wǎng)編號分配機構)所定義的值。對于IPv6地址,長度為128比特。必然地,在不脫離本發(fā)明的范圍的情況下,可以添加其它字段。例如,如在IETF的RFC1630中給出的定義統(tǒng)一資源標識符或URI的所有或部分參數(shù)可以被添加到關鍵字結構或標簽中。因此,本發(fā)明具有額外的優(yōu)點集成如在RFC1630中給出的URI的所有參數(shù)(或子集)。這在使用諸如以上所述的傳統(tǒng)的對等方法時是不可能的,因為在對等網(wǎng)絡中使用的索引是二進制數(shù)字,而URI是ASCII字符串。通過使用PHT二叉樹,本發(fā)明可以使用所有的(如果需要的話)URI的ASCII參數(shù)。關鍵字對應于PHT二叉樹上的葉子。更準確地,如上所述,每個關鍵字被保存在其標簽是關鍵字的前綴的葉子中。標簽(其通常比關鍵字小)被分布在分布式哈希表DHT的節(jié)點中,如上所述。以上已示出分布式哈希表DHT凈皮設計為接收定位請求。這些請求包含至少一個服務標識符。另外,還具有用于搜索提供該服務標識符所表示的服務的一個或多個位置信息的搜索裝置。為此,搜索裝置被設計為在PHT二叉樹內搜索包含在其標簽對應于服務標識符的一個或多個葉子中的關鍵字。幾種搜索方法是可能的。一些在所引用的SriramRamabhadran、SylviaRatnasamy、JosephM.Hellerstein和ScottShenker的文章中描述。例如,如果請求包含"STUN"服務的標識符,則搜索裝置可以搜索提供該STUN服務的一個節(jié)點,或者提供該STUN服務的幾個節(jié)點,或者甚至提供該STUN服務的所有節(jié)點。換句話說,如果多個節(jié)點"STUN1"、"STUN2"、"STUN3"、…提供相同的服務,則請求的發(fā)送方無需指定其聯(lián)系哪個節(jié)點。該機制是透明的,甚至不需要知道有多少個節(jié)點正在提供所請求的服務。特別地,由于在相鄰葉子中使用指針,因此,可能容易進行間隔搜索。并且,定位請求可包含象"STUN"的服務標識符而無需指定是否是"STUN1"、"STUN2"等。于是,搜索裝置必須找到所有或一部分對應的葉子。分布式哈希表必須搜索的回復的數(shù)量可以在定位請求中指定;例如,如果發(fā)送方只想要提供服務的N個節(jié)點,或者提供服務的所有節(jié)點的集合。在通過搜索發(fā)現(xiàn)的葉子中保存的關鍵字包含位置信息,其對應于分布式哈希表中提供所請求的服務的節(jié)點。如上所述,它們可以是具有短關鍵字的二進制字段。該位置信息被返回到定位請求的發(fā)送方。接著,發(fā)送方可使用該位置信息以聯(lián)系分布式哈希表DHT的節(jié)點。圖4示出本發(fā)明用于在通信網(wǎng)絡內定位STUN服務的實例性應用。四個設備NpN2、N3、N4在分布式哈希表DHT內連接。子網(wǎng)SN將節(jié)點N2與其它節(jié)點N!、N3、N4隔離。網(wǎng)絡地址轉換器NAT將該子網(wǎng)SN連接到通信網(wǎng)絡的其^P分。這些節(jié)點中的一部分提供STUN服務,并在圖中用陰影線表示。它們是節(jié)點NpN2和N"為了能夠產(chǎn)生所期望的結果和功能,STUN服務必須位于通信網(wǎng)絡的公共空間。其一定不在通過NAT設備與公共空間隔離的子網(wǎng)中。請求服務的設備在專用子網(wǎng)內是自身已知的真正事實不足以斷定位于NAT設備的另一側的STUN服務自動在公共空間中,因為子網(wǎng)可以是彼此嵌套的。為了解決這個問題,已知屬于公共空間的節(jié)點最初被定義為STUN服務的提供者。它用作引導器。在圖4中,它是節(jié)點Nj。該初始指定可以人工地或通過本發(fā)明之外的自動機制來進行。于是,分布式哈希表DHT中包括STUN功能的每個節(jié)點可以經(jīng)由STUN機制自我檢測,以便告知其是在7>共空間內還是在NAT設備的后面。為此,采用已知的方式,節(jié)點N4例如向節(jié)點I^發(fā)送STUN請求。&向N4返回其看見其擁有的IP地址。由于在兩個節(jié)點之間沒有發(fā)現(xiàn)NAT設備,因此,節(jié)點N!所觀察的地址是節(jié)點N4的"真實"地址。因此,,N4告知它在公共空間中,并將自身添加到分布式哈希表DHT中,作為STUN服務的提供者。節(jié)點N2可以與提供STUN服務的一個節(jié)點,即節(jié)點N,或節(jié)點N4,抹行相同的操作。然而,這一次,所查詢的節(jié)點返回與N2已知的地址不同的地址。那么,N2可以推斷出它在通過NATi殳備與/^共區(qū)域分離的子網(wǎng)SN內。因此,N2不將自己添加到提供STUN服務的節(jié)點的列表中。使用上述的方法,執(zhí)行向列表添加節(jié)點。首先,基于STUN服務標識符以及諸如IP地址和端口的位置信息,構造關鍵字。然后,該關鍵字被保存在其標簽分布在分布式哈希表DHT內的PHT二叉樹內。位于子網(wǎng)SN2內并在網(wǎng)絡地址轉換器NAT2后面的i殳備D想要訪問STUN服務。為此,其向分布式哈希表DHT發(fā)送定位請求。如上所述,然后,分布式哈希表DHT搜索所保存的信息,并返回]^和N4的地址,或者只返回其中的一個地址。然后,設備D可以聯(lián)系該分布式哈希表的特定節(jié)點以獲得STUN服務。18權利要求1.一種通信網(wǎng)絡(NET),包括分布式哈希表(DHT),所述分布式哈希表(DHT)的節(jié)點(X1,X2,X3...XN)提供對于連接到所述通信網(wǎng)絡的網(wǎng)絡單元(T)能夠訪問的服務,所述分布式哈希表(DHT)具有-用于從網(wǎng)絡單元(T)接收服務定位請求(R)的裝置,所述請求包含至少一個服務標識符(ID);以及-搜索裝置,用于在所述分布式哈希表內搜索至少一個位置信息,并將其傳輸給所述網(wǎng)絡單元,其中每一個位置信息對應于提供由所述服務標識符表示的服務的節(jié)點;其特征在于,組織所述哈希表,以致位置信息與包含至少一個服務標識符的關鍵字相關聯(lián),所述關鍵字對應于其節(jié)點的標簽分布在所述分布式哈希表內的PHT二叉樹上的葉子;所述搜索裝置被設計為在所有或一部分葉子中搜索位置信息,并將其傳輸給所述網(wǎng)絡單元,其中所述葉子的標簽是包含在所述服務請求內的服務標識符的前綴。2.根據(jù)權利要求1所述的通信網(wǎng)絡,其中,所述網(wǎng)絡單元(T)是通信客戶機,特別地,是被設計為使用SIP協(xié)議進行通信的通信客戶機。3.根據(jù)權利要求1或2所述的通信網(wǎng)絡,其中,所述通信客戶機是通信終端。4.根據(jù)前述權利要求之一所述的通信網(wǎng)絡,其中,所述標簽和所述關鍵字是二進制字,所述標簽以使得以降序排列的每個比特的權重對應于所述二叉樹內增長的深度層級的方式形成。5.根據(jù)前述權利要求之一所述的通信網(wǎng)絡,其中,所述服務是STUN和/或TURN,和/或符合IETF的RFC3489bis。6.根據(jù)前述權利要求之一所述的通信網(wǎng)絡,其中,所述節(jié)點是所述分布式哈希表(DHT)的節(jié)點(XhX2,X3...Xn)中的一個。7.根據(jù)前述權利要求之一所述的通信網(wǎng)絡,其中,所述標簽由至少一個服務標識符、傳輸協(xié)議指示、位置信息和端口構成。8.根據(jù)前述權利要求之一所述的通信網(wǎng)絡,其中,所述標簽還包括根據(jù)IETF的RFC1630定義通用資源標識符URI的所有或一部分參數(shù)。9.一種使通信設備(D)能夠訪問由分布式哈希表(DHT)提供的服務的方法,包括傳輸服務定位請求的步驟,其中所述請求包含所述服務的服務標識符;以及在所述分布式哈希表中搜索至少一個位置信息的步驟,其中每一個位置信息對應于提供所述服務的節(jié)點;其特征在于,所述搜索步驟包括在其節(jié)點的標簽分布在所述分布式哈希表內的PHT二叉樹中搜索關鍵字,所述關鍵字至少包含所述服務標識符,所述搜索包括在所有或一部分葉子中搜索位置信息,其中所述葉子的標簽作為所述服務標識符的前綴。10.根據(jù)權利要求9所述的方法,其中,所述網(wǎng)絡單元(T)是通信客戶機,特別地,是被設計為使用SIP協(xié)議進行通信的通信客戶機。11.根據(jù)權利要求9或10所述的方法,其中,所述通信客戶機是通信終端。12.根據(jù)權利要求9至11之一所述的方法,其中,所述標簽和所述關鍵字是二進制字,所述標簽以使得以降序排列的每個比特的權重對應手所述二叉樹內增加的深度層級的方式形成。13.根據(jù)權利要求9至12之一所述的方法,其中,所述服務是STUN和/或TURN,和/或符合IETF的RFC3489bis。14.根據(jù)權利要求9至13之一所述的方法,其中,所述節(jié)點是所述分布式哈希表(DHT)的節(jié)點(X"X2,X3...XN)中的一個。15.根據(jù)權利要求9至14之一所述的方法,其中,所述標簽由至少一個服務標識符、傳輸協(xié)議指示、位置信息和端口構成。16.根據(jù)前述權利要求之一所述的方法,其中,所述標簽還包括根據(jù)IETF的RFC1630定義通用資源標識符URI的所有或一部分^lt。17.—種計算機程序,其被設計為每當在信息處理設備上運行時,執(zhí)行根據(jù)權利要求9至16之一所述的方法。、18.—種計算機介質,包含根據(jù)權利要求17所述的計算機程序。全文摘要本發(fā)明涉及一種包括分布式哈希表(DHT)的通信網(wǎng)絡(NET),在該分布式哈希表中,節(jié)點(X1,X2,X3...XN)提供能夠被網(wǎng)絡單元(T)訪問的服務,并包括用于接收服務定位請求(R)的裝置,所述請求包含至少一個服務標識符(ID);用于在哈希表中搜索至少一個位置信息的搜索裝置。本發(fā)明的特征在于,組織哈希表,以致位置信息與包含至少一個服務標識符并對應于節(jié)點標簽分布在哈希表中的PHT類型的二叉樹的葉子的關鍵字相關聯(lián);搜索裝置用于在一部分或所有葉子中搜索位置信息,其中所述葉子的標簽是包含在服務請求中的服務標識符的前綴。文檔編號G06F17/30GK101689195SQ200880019068公開日2010年3月31日申請日期2008年4月24日優(yōu)先權日2007年6月8日發(fā)明者J-F·沃蒂,T·弗羅門特申請人:阿爾卡特朗訊公司