專利名稱:對等通信系統(tǒng)和方法
技術領域:
本發(fā)明涉及M具有網絡地址轉換器的網絡上的對等通信的領域。
背景技術:
由于網絡中所包含的對等體可能得不到一個全域有效的DP (互聯網協(xié) 議)地址,因此網絡地址轉換器(NAT)使對等(P2P)通信造成了公知的 問題。
特別是,當前的互聯網地址結構由一個全域地址空間(也就是公共IP 地址)和通過NAT互相連接的許多專用地址空間(也M專用IP地址) 組成。只有全域地址空間中的對等體(也稱為節(jié)點,客戶端等)能容易地 與網絡中的任意位置相聯系,這是因為它們具有唯一的、全域可路由的IP 地址。專用網絡上的對等體能連接到相同專用網絡上的其他對等體,且它 們通常能打開到全域地址空間中的已建立的對等體的TCP (傳輸控制協(xié) 議)或UDP (用戶數據報協(xié)議)連接。但是,當前的地址結構使得不同專 用網絡上的兩個對等體難以互相直接聯系,或使公共網絡中的對等體難以 發(fā)起同專用網絡中的對等體之間的聯系。通常,這種情況的存在是由于 NAT分配臨時公共端點以輸出連接并轉換包含那些會話的分組中的地址和 端口號,同時除非另行配置通常會阻斷所有i^流量。
已經提出了許多技術用以克服直接對等通信的問題,但由于NAT的行 為不是標準的,因此這些技術通常沒有通用適用性。
發(fā)明內容
本發(fā)明的某些典型實施例可提供一種方法,使得具有網絡地址轉換器
(NAT)的對等(P2P)網絡中的多個對等體t間能夠通信,該方法包括
(a) 給P2P網絡中的多個對等體中的每個分配一個唯一對等體標識符;
(b) 建立覆蓋拓樸,其基于每個對等體的唯一的對等體標識符以結構化連 接方式將每個對等體連接到多個對等體的子集,多個對等體中的每個到近 端對等體的連接較多而到遠端對等體的連接較少;和(c)通過已建立的覆 蓋拓樸在對等體間路由消息。
本發(fā)明的某些典型實施例可提供一種網絡覆蓋拓樸,允許具有網絡地 址轉換器(NAT)的對等(P2P)網絡中的多個對等朱t間進行通信,該網 絡覆蓋拓樸包括可分配給P2P網絡中的多個對等體中的每一個的唯一對 等體標識符;和一個覆蓋拓樸,其基于每個對等體的唯一對等體標識符以 結構化連接方式將每個對等體連接到多個對等體的子集,多個對等體中的 每個到近端對等體的連接較多和到遠端對等體的連接較少,該結構化的連 接方式被安排為通過已建立的覆蓋拓樸^洛由對等體間的消息。
圖1根據本發(fā)明的實施例闡釋了具有多個被構#覆蓋拓樸中的對等 體的對等網絡的示意圖2根據本發(fā)明的一個實施例闡釋了局部網格復篕拓樸的示意圖3才N^本發(fā)明的一個實施例闡釋了圖1的網絡的4分的示意圖以
闡釋對等體準許過程;
圖4根據本發(fā)明的一個實施例闡釋了具有結構化連接方式的覆蓋拓樸 的示意圖5根據本發(fā)明的一個實施例闡釋了表示增加一個新對等體到網絡中 的it禾呈的流3呈圖;和
圖6根據本發(fā)明的一個實施例闡釋了表示使網絡中的對等體間的能進 4亍通4言的過禾呈的^^呈圖。
M實施方式圖1闡釋了一個網絡拓樸10,其具有一個典型的對等體組12,該對等 體組被構it^P2P覆蓋拓樸(簡稱為拓樸)中。
覆蓋實際上是一個建立在另 一個網絡上端的網絡。利用在下層網絡中 各自對應一條路徑(典型地通過許多物理鏈路)的虛擬或邏輯鏈路,連接 似中的節(jié)點/對等體。
圖1的網絲樸10包括一系列的子網(子網絡)14、 16、 18、 20、 22、 24和26,每個都包含一個或多個對等體12,以及互聯網28。子網18 和22使用公共IP地址,因為它們是全域地址空間的一部分。子網14、 l6、 20、 24和26使用專用IP地址,由于NAT (網絡地址轉換器)30位于 各個子網和互聯網28之間。子網24個26共享一個單獨的NAT30。子網20 表示一個級連式NAT排列,其中兩個NAT30位于子網20和互聯網28之 間。
通過NAT在網絡中的對等體間建立的連接通常被稱為NAT穿越。多 個已知的基于NAT行為的NAT穿越協(xié)議包括UDP對NAT的簡單穿越 (STUN)、利用中繼NAT穿越(TURN) 、 ^^邊界控制器(SBC)和 UDP打洞。多個已知的基于NAT控制的NAT穿越協(xié)議包括特域IP (RSIP) 、 NAT端口映射協(xié)議和通用即插即用(UPnP)。組合多個不同 的協(xié)議的NAT穿越協(xié)議被稱為交互式連接設備(ICE )。
本發(fā)明的實施例描述了 ^it等^間通信的多個覆蓋和有關方法。 ^部河婆^J/遽接
圖2闡釋了一個典型的局部網格^A 50,其中,在該例子中,每個對 等體12位于NAT (未顯示)之后,具有受限過濾策略。 一般而言,M 50中的每個對等體12通過建立到一些其他對等體12的連接(以實線顯 示)來建立對等體12間的局部網格。創(chuàng)建局部網格覆蓋50后,對等體12 就能利用已建立的連接路由消息。 一旦建立,在至少一個對等體需要的時 候,維持連接。維持一個連接典型地需要周期性地交換一些消息。
局部網格;^50沖擊了環(huán)形;W和完整網格^A之間的平衡,環(huán)形覆 蓋中,每個對等體僅被連接到兩個相鄰的對等體,但完整網格覆蓋中,當 仍允許經過NAT發(fā)送消息時,所有對等體對被連接。
由于對等體加入或離開網絡,需要隨時;^t蓋50中增加或刪除連接。增加一個新連接典型地需要沿已有的連接對新連接的信令進行路由。舉例
來說,參照圖2,對等體12X想要建立到對等體12Y的連接。由于對等體 12Y在受限過濾策略下位于NAT30之后,因jtbft等體12X不能將連接請求 直接發(fā)送到對等體12Y (線52)。為了克服該限制,對等體12X通it^ 50中已有的連接來發(fā)送連接請求(虛線54)。在連接請求被傳i^對等體 12Y之后,對等體12X和12Y使用標準NAT穿越技術來J^和維持連接。
廣義的覆蓋拓樸使用連接的最小集以保證消息能在任意對等體對之間 發(fā)送。所使用的連接的特定數量基于用于在網絡中的對等體間路由消息的 機制類型。通常,當出現較多連接時,可利用較少的跳躍來執(zhí)行路由。但 是,每個連接都消耗資源(如內存,對等體本身的計算周期,下層網絡上 的帶寬等),所以使連接數最小但不惡化路由效率是覆蓋設計中的一個考 慮因素。
除了基于路由設計而創(chuàng)建的連接以外,對于特定應用的目的,進一步 的連接是有用的。舉例來說,圖2中用實線表示的連接可能會被創(chuàng)建,以 保iE^網絡50中的任意對等體對之間路由消息是可能的ibNl當有效的。但 是,如^t等體12X和12Y需要交換大量消息或需要在經常/頻繁的時間間 隔上交換消息,則增加新的連接52以優(yōu)化這些交^^有益的。
圖3闡釋了圖1的子網14的示例性排列80。子網14包括都位于 NAT30之后的一組對等體12。在這一類型的拓樸中,子網14中的一個或 多個對等體12可被"選擇"或"i史計"為典型對等體12R以^^子網14中的 其樹等體12運作,
排列80創(chuàng)建兩種類型的連接(1)典型對等體12R之間穿越NAT30 的連接(參考虛線86)和(2)子網14內典型對等體12R和^fe]"等體12 之間不穿越NAT30的連接(參考虛線90)。
絲賄,惑潛
一種結構化的方案創(chuàng)建了 一種可在路由中使用的連接方式。舉例來 說,結構化消息路由能基于將DHT (分布式哈希表)查找方案"轉換"為路 由算法。特別是,對于M有數據的對等體來說,用于查找數據項的DHT 方案被視為路由方案。如果路由是基于正被搜索的節(jié)點的對等體標識符,那么該過程可被認為是一種路由算法。
更特別的,給出了一種連接方式(如參考圖2所討論的),有多種可 能的連接方式。覆蓋50允許對等體12對另 一個對等體12 M—個呼叫, 以公開對等體(或用戶)的狀態(tài),并在覆蓋50中創(chuàng)建到另一個對等體的連 接。結構化的方案允許對等體12之間的連接方式在對等體間路由消息時被 4汰
連接拓樸的基礎結構應支持覆蓋50的路由機制。舉例來說,通過分配 一個唯一標識符到每個對等體(如基于對等體的屬性網絡地址、制造商
序列號、MAC (媒M入控制)地址等),DHT可被用作結構化方案的基 礎。通過使用單向散列函數(如MD5[消息摘要算法5,SHA-1[安全散列 算法)將對等體的屬性散列處理來創(chuàng)建唯一對等體標識符。
在一個例子中,該唯一對等體標識符能被用于將對等體放在一個概念/ 虛擬環(huán)上。隨后每個對等體維持與繞該環(huán)順時針分布在多個位置上的對等 體的連接。在該結構化的連接方案中,到對等體(Q)的消息可被尋址到 其在環(huán)中的位置并且中間對等體(I)能將該消息轉送到該中間對等體(I) 的連接表中最靠iW等體(Q)的對等體(S)。
基于DHT的連^45樸被創(chuàng)建以分配網絡中的索引和定位資源所需的工 作。對于VoIP (網絡電話)通信覆蓋網絡,對等體通常是電話或在計算機 上運行的電話設備,而資源通常是希望互相通信的人們。系統(tǒng)中的每種資 源一般被分配以一個或多個標識符(如電話號碼或記彖地址)。基于DHT 的覆蓋網絡能有效地"重復使用,,相同的單向散列函數,所述單向散列函數 -陂用于創(chuàng)建唯一對等體標識符(如上所述)以構建一個唯一資源標識符。 然后覆蓋50中的每個對等體12承扭用于存儲關于有效資源的信息的部分 責任。舉例來說,在基于Chord的DHT^中,對等體負責維持有關資源 的信息,所述資源的資源標識符最接近但不超過其對等體標識符。因此, 如果用戶的記錄地址的散列為X,則該用戶的聯系和狀態(tài)信息會被其對等 體標識符最接近但不超過X的對等>(^#。
除了覆蓋網絡50所采用的路由結構外,當建立連接拓樸時的進一步考 慮是^皮稱為對稱利益(symmetric interest)的特征。 一種連接方案展示了對 稱利益,如果對等體12X需要連接到另一個對等體12Y時,那么對等體12Y也需要到對等體12X的連接。因為通過NAT30的連接是雙向的,且由 于對等體12X和12Y都引發(fā)了發(fā)送消息以建立和維持連接的開銷,因jM" 稱利益是一種有用的連接特征。
參考圖4,闡釋了一種展示對稱利益的結構化連接方式92,因為每個 對等體12維持到對等體12的連接,所i^等體12位于都圍繞虛擬環(huán)98排 列的以順時針94和逆時針96排列的指數遞增距離上。特別是,類型92從 單個節(jié)點(也就是對等體PA)的角度顯示了一種連接拓樸。假設PA的對等 體標識符為0,則散列表可能包含具有如下標識符的對等體地址 2。,21,22,…,2^, ...,2"-2,2"-'。在這種類型的排列中,對等體PA會在其連接 表中包括對等體PB,因itb^示了對稱利益。
當對等體間的連接以這種方式建立時,每個對等體到"近端"對等體的
連接較多和到"遠端"對等體的連接較少。術語"近端"和"遠端"狄于似 網絡所分配的唯一對等體標識符的(如上所述),但不一定反映地理上 的、物理上的接近或物理上的網絡跳躍數。從一個對等體(也就是對等體 PA)的視點來看,通#下半圓SL中出現較多連接而在環(huán)98的上半圓Su 中出現較少連接的方式,結構化連接方式92示意性地闡釋了對稱利益。
參考圖3,對等體12A起先不是整個網絡的一部分。下面將參考圖5 的^^圖來描述使對等體12A加入網絡的過程100。
步驟110:定位并聯系網絡中的另一個對等體(指定為對等體UB^見 圖3)。利用多^f或廣播112、好友列表114、手動配置116和引導118,對 等體12A能完成定位和與另一個對等體的聯系。這些方法將在下文中作進 一步詳細描述。
步驟150:利用NAT穿越協(xié)議建立對等體12A和已定位的其他對等體 12B之間的i^接。
在多播/廣播112中,對等體12A發(fā)送"你好,有人在嗎"多播/廣播消 息,當前在覆蓋網絡中的任意對等體(也就是對等體12B)可應答。應答 將包含允許對等體12A聯系其M等體中的一個(或多個)的信息以及請 求允許加A^??蛇x地,當前在網絡中的對等體12 (包括對等體12B) 可周期性地發(fā)送廣告(例如,廣告消息)其存在的多播/廣播消息,這就允許對等體12A通過收聽多播/廣播消息發(fā)現其他對等體。廣告消息也包含允 許對等體12A聯系其他對等體中的一個(或多個)的信息以及請求允許加
如果對等體12A先前是網絡的一部分,^"一段時間斷開了連接(如 VoIP電話從網絡中刪除或關機),則好友列表114可被使用。當其斷開連 接且i^當其想要重新加入網絡嘗,系其好友列4-t的對等體12時,對 等體12A可被配置為記憶某些對等體12的地址和端口信息。如果其他對等 體12中的至少一個能被聯系到且其仍然為一個網絡成員時,對等體12A就 能重新加入網絡。
手動配置方法116包括利用網絡中的其M等體12中的一個的地址和 端口信息來配置對等體12A。地址和端口信息代束NAT30 (如果有的話) 所分配的對等體12的公共IP地址和端口。舉例來說,如^t等體12A位 于具有過濾行為(地址受限)的NAT30之后,則也可利用對等體12B的地 址和端口信息來配置對等體12A。
引導方法118包括^J H化具有公共IP地址和可選地DNS (g系 統(tǒng))入口的對等體的自舉服務器52 (bootstrap server)(見圖3)。自舉服 務器52本身不必是網絡的一部分,而是被用于網絡中新對等體的引導/自 舉。舉例來說,子網14可選擇/指定網絡中的對等體中的一個(如對等體 12B或12R)以維持到服務器52的連接88。當對等體12A聯系服務器52 時,對等體12A被給予所選對等體的地址和端口信息(也就是映射IP地 址),服務器52將對等體12A的地址和端口信息轉發(fā)到所選對等體從而允
圖6為根據本發(fā)明的一個實施例闡釋了使得具有網絡地址轉換器 (NAT)的對等(P2P)網絡中的對等體間能夠進行通信的方法200的流程 圖。方法200包括
步驟210:利用例如單向散列函數215,分配一個唯一對等^#識符到 P2P網絡中的多個對等體中的每一個。
步驟220:建立基于每個對等體的唯一對等體標識符一個以結構化的 連接方式將每個對等體連接到多個對等體的子集覆蓋拓樸,多個對等體中的每個到近端對等體的連接較多和到遠端對等體的連接較少(如在繞虛擬
環(huán)225的順時針和逆時針方向指數遞增的距離上)。
步驟230:通過已建立的覆蓋拓樸路由消息(也就是連接拓樸與路由 過禾l/算法240的消息匹配)。
權利要求
1.一種使得具有網絡地址轉換器(NAT)的對等(P2P)網絡中的多個對等體間能夠進行通信的方法,所述方法包括(a)給所述P2P網絡中的多個對等體中的每個分配一個唯一對等體標識符;(b)基于每個對等體的所述唯一對等體標識符,建立一個以結構化的連接方式將每個對等體連接到多個對等體的子集的覆蓋拓撲,所述多個對等體中的每個到近端對等體的連接較多且到遠端對等體的連接較少;和(c)通過所述已建立的覆蓋拓撲在對等體間路由消息。
2. 根據權利要求1的方法,其中步驟(b)包括在繞一個虛擬環(huán)的 順時針和逆時針方向指數遞增的距離上的對等體間建立連接。
3. 根據權利要求l的方法,其中步驟(a)包括利用單向散列函數散列多個對等體中的每一個的屬性,從而生成所述 唯一對等體標識符,其中屬性包括下列之一網絡地址、MAC(媒M入 控制)地址和序列號。
4. 根據權利要求l的方法,其中以所述結構化連接方式建立的連接在 所述多個對等體中的一對對等體間的連接請求發(fā)送期間和所述對等體對間 的消息發(fā)送期間被維持。
5. 根據權利要求l的方法,進一步包括在所述多個對等體中的一對對 等體間建立一個進一步的連接,該連接不是所述以結構化連接方式所建立 的所述漣接的一部分,所iW等體對在連接請求發(fā)送期間已建立通信。
6. 才M^權利要求1的方法,進一步包括在所述P2P網絡中增加一個新 的對等體;其中增加新對等體的所述步驟包括(0定位并聯系所述P2P網絡中的所述多個對等體中的一個;和 (ii) 在所述新對等體和所述P2P網絡中的所述多個對等體中的一個 之間建立連接。
7. 根據權利要求6的方法,其中所述步驟(i)包括通過多播或廣播 或廣告,或利用好友列表,或通過手動配置或引導,來定位并聯系所述 P2P網絡中的所述多個對等體中的一個;和請求允許加A^A拓樸。
8. 根據權利要求6的方法,其中步驟(i)包括選擇從所述P2P網絡中的所述多個對等體中選出的一個目標對等體, 以維持到服務器的連接;與所i^l務器聯系從而獲得從所述P2P網絡中的所述多個對等體中選 出的所述目標對等體的地址和端口信息;和通it^與所述目標對等體的通信來請求允許加入所^蓋拓樸。
9. 一種使得具有網絡地址轉換器的對等網絡中的多個對等體間能夠進 行通信的網絡覆蓋拓樸,所述網絡覆蓋拓樸包括可表示所述P2P網絡中的所述多個對等體中的每個的屬性的唯一對等 體標識符;和一種覆蓋拓樸,其基于每個對等體的唯一對等體標識符以結構化連接 方式將每個對等體連接到多個對等體的子集,所迷多個對等體中的每個到 近端對等體的連接較多和到遠端對等體的連接較少,所述結構化的連接方 式被安排為允許通過已建立的所ii^蓋拓4卜路由對等體間的消息。
10. 權利要求9的系統(tǒng),其中所ii^拓樸包括 在位于繞一個虛擬環(huán)順時針和逆時針方向指數遞增的距離上的對等體間的遵二接;以及用于對所述多個對等體中的每個的屬性進行編碼以產生唯一對等體標 識符的裝置,其中所迷屬性包括下列之一網絡地址、MAC (媒體接入控 制)地址和序列號。
全文摘要
一種使得具有網絡地址轉換器(NAT)的對等(P2P)網絡中的對等體間能夠進行通信的方法和系統(tǒng)。該方法包括給P2P網絡中的多個對等體中的每個分配一個唯一對等體標識符;基于每個對等體的唯一對等體標識符建立一個以結構化的連接方式將每個對等體連接到多個對等體的子集的覆蓋拓撲,多個對等體中的每個到近端對等體的連接較多和到遠端對等體的連接較少;以及通過已建立的覆蓋拓撲在對等體間路由消息。
文檔編號H04L29/08GK101309301SQ200810127789
公開日2008年11月19日 申請日期2008年2月21日 優(yōu)先權日2007年2月21日
發(fā)明者A·B·約翰斯頓, E·庫珀, P·馬修斯 申請人:亞美亞加拿大公司