新四季網

具有邊緣路由能力的對等協作系統的製作方法

2023-09-17 02:52:35 2

專利名稱:具有邊緣路由能力的對等協作系統的製作方法
具有邊緣路由能力的對等協作系統
背景
對等協作系統一般被用於商務環境以允許多用戶來協作工作,即便用戶可 能處於不同的位置。對等協作系統採用經網絡互連的計算設備來實現。對等設 備中的每一個均可維護向協作用戶顯示或由協作用戶對其進行操作的數據或 其它信息的副本。該信息創建了所謂的"共享空間"
對等設備中的每一個的客戶機軟體允許該設備的用戶改變由該設備維護 的共享空間的副本。隨著每一次所作的改變,客戶機廣播指示對共享空間所作
的改變的消息。協作會話中的其它對等設備接收這些改變消息並對它們的共享 空間的副本進行相應改變。這樣,共享空間的所有副本被同步,並且該協作會 話中的每個用戶能夠査閱每一個其他用戶所作的改變。
然而,為了使該協作系統能如所期望地進行工作,每個對等設備必須能夠 與每一個其它對等設備傳輸改變。理論上,可以使用諸如網際網路等網絡來允許
耦合至該網絡的任何兩個對等設備之間的通信。然而,儘管耦合至網際網路,一 些專用網並沒有被配置成允許通過專用網耦合至網際網路的對等設備參與同專
用網外部的設備的對等通信。例如,許多區域網(LAN)在專用網和網際網路的 接口處採用網絡地址轉換(NAT)。地址轉換可破壞定向至位於NAT設備後 的對等體的消息,從而幹擾對等通信。
為了避免當一些設備位於NAT設備後面或由於其它原因無法從其它對等 體來訪問時破壞協作會話,協作系統使用中繼伺服器。無法與另一個對等體進 行直接通信的對等體可通過首先向中繼伺服器發送消息來進行間接通信。該中 繼伺服器可將該消息轉發至接收對等體。在某些例子中,該中繼伺服器將該消 息直接轉發至該接收對等體。然而,在其它場景中,在該消息到達接收對等體 之前,該消息將通過一個或多個其它中繼伺服器被轉發。

發明內容
為了減少在對等通信會話中由通過中繼伺服器來路由改變消息而引起的阻塞,這些改變在可以採用直接對等消息被分發的消息中被傳輸。儘管中繼服 務器可以被用於某些消息,然而,減少中繼伺服器上處理大量改變消息的負載 可降低對等協作系統的成本,並且可增加系統的可伸縮性。
為了方便直接對等通信,可採用定義了對等體之間的互連的路由表來定址 消息。該路由表可標識可採用直接對等消息來進行通信的諸對等體組。發起改 變以及將該改變廣播至協作會話中的其它對等體的對等體可在每組中選對等 體作為初始接收者,它能從發起對等體直接或間接地接收消息。初始接收者可 將消息轉發至該組中的一個或多個其它對等體。接收消息的每個對等體可進而 通過對等通信將消息傳播至該組中的其它對等體,直至協作會話中的所有對等 體接收到該消息。
中繼伺服器或協作系統中的其它組件可參與路由表的構建。這樣一種服務 器可接收來自對等體的探測消息,並且分析這些消息,以獲取其它對等體能夠 與該對等體進行通信的地址的有關信息。如果該對等體位於網絡地址轉換
(NAT)設備後,則伺服器所獲得的信息還可被用來標識穿過NAT設備以到 達該對等體的方式,潛在地擴張了在協作會話中可採用直接對等通信來到達的 對等體的數量。
以上概述是對由所附權利要求定義的本發明的非限定性的概述。 附圖簡述
附圖不旨在按比例繪製。在附圖中,各個附圖中示出的每一完全相同或近 乎完全相同的組件由同樣的標號來表示。出於簡明的目的,不是每個組件在每 張附圖中均被標號。在附圖中


圖1是現有技術對等協作系統的略圖2是根據本發明的一實施例的對等協作系統的略圖3A是根據本發明的一實施例的對等協作系統中的對等體的功能性框
圖3B是根據本發明的一實施例的可用於對等協作系統中的對等體的數據 結構的略當圖4A和圖4B在標記為Bl和B2的點處互連時,圖4A和圖4B形成用於發現對等體位於其後的NAT設備的類型的過程的流程圖5A、 5B和5C示出根據本發明的一實施例的可被用於對等通信的定址 的形式;
圖6是根據本發明的一實施例的維護路由表的過程的流程圖;以及 圖7是根據本發明的一實施例的發送消息的過程的流程圖。
詳細描述
發明人意識到,使用中繼伺服器來方便在對等協作系統的協作會話中無法 進行直接通信的對等體之間的間接通信會製造出與中繼伺服器有關的不期望 的數量的負載。因此,對於對等協作系統的有效操作會需要與中繼伺服器相關 聯的諸如網絡帶寬或存儲器等不期望的數量的資源。發明人還認識到,負載以 及與伺服器負載相關聯的性能降級隨著不能被其它對等設備到達的對等設備 的數量增加而增加。對等設備不能到達而用於直接通信的一個原因是該對等體 可能位於NAT設備之後。不幸的是,隨著越來越多的用戶在家工作或者越來 越多的用戶通過使用NAT設備的區域網連接到網際網路,對等體設備位於NAT 設備後的概率增加。
根據本發明的實施例,通過使用邊緣路由技術可減少對等協作系統的中繼 伺服器上的負載。這種技術增加了能夠直接被對等傳送或通過一個或多個中介 對等體被間接傳送到其它對等體的改變消息的數量或與對等體協作系統相關 聯的其它消息的數量。因此,由於那些消息不經過中繼伺服器而使得伺服器負 載減少。這樣一種系統的有效性還可通過併入允許與位於NAT設備後面的設 備進行對等通信的NAT穿越技術來改進。
在一些實施例中,可以使用本領域公知的對等協作系統中的組件來實現本 發明。作為公知組件的類型的一個示例,圖1示出一現有技術對等協作系統。 在圖1的示例中,多個對等體設備通過可以是網際網路的網絡100進行通信。然 而,在構建本發明的實施例時,企業網絡或者任何其它合適的網絡可以承載對 等體之間的通信。
如圖1所示, 一些對等體可以通過LAN連接到網絡100。例如,LAN 110 通過路由器116耦合至網絡100。連接到LAN 110的諸如對等體112和114等
8對等體設備可通過將LAN 110耦合至網絡100的路由器116訪問網絡100。
在所示出的實施例中,路由器116可以作為一個NAT設備。因此,儘管 對等體112和114可以通過路由器116發送消息出站,但區域網110外部的對 等體設備可能無法使用這些消息中的地址信息來響應對等體112和114,因為 按照這種方式被定址的消息將不能夠通過路由器116到達期望的對等體設備。 例如,LAN120被示為包含對等體設備122和124。儘管對等體設備122 和124可以通過路由器126來訪問網絡100,路由器116內的網絡地址轉換可 阻止對等體設備122或124發送的消息到達對等體112和114。在這個示例中, 如果路由器126還執行一種阻止進站消息到達對等體122和124的網絡地址轉 換,則無法到達性可以是對稱的。
為了允許對等體122或124中的任何一個與對等體112或114中的任一個 進行通信,可以使用中繼伺服器130。中繼伺服器130在此處示為連接到網絡 100。對等體112, 114, 122和124中的每一個可以與中繼伺服器130建立通 信。由於對等體設備112, 114, 122和124中的每一個可以通過對等體設備122, 114, 122和124中的每一個位於其後的NAT設備發送出站消息,所以各自可 將目的地為其它對等體的消息發送至中繼伺服器130。然後,中繼伺服器130 可將消息轉發至接收對等體。這樣,對等協作會話中的每個對等體可與任何其 它對等體傳輸改變消息。然而,需要一個或多個消息通過中繼伺服器130來傳
輸每個改變。
圖1為對等協作系統的簡圖,該圖掩蓋了由處理改變消息或與對等協作系 統相關聯的其它消息所引起的有關伺服器130的負載的數量。例如,圖1的協 作系統所示出的四個對等體可能不代表協作會話中的對等體的數量。在許多示 例中,可以有多於四個的用戶參加協作會話。隨著對等體數量的增加,通過中 繼伺服器130發送的消息數量也隨之增加。此外,運行中繼伺服器130的企業 或其它實體會希望支持多個協作會話。每個協作會話可生成經中繼伺服器130 路由的改變消息。因此,中繼伺服器130必須具備足夠的帶寬、存儲以及其它 資源來處理由多個會話中的多個用戶生成的改變消息。
為了減少中繼伺服器130上的負載,圖1所示的協作系統中的組件可適於 支持改變消息的邊緣路由。邊緣路由在不涉及中繼伺服器130的情況下增加對等傳輸的改變消息的數量。圖2示出根據本發明的一實施例的協作系統。在圖 2的示例中,如圖1的示例中,協作會話中示出四個對等體。又如圖1所示,
對等體連接至兩個區域網。在圖2的示例中,區域網110'包含對等體112'和 114'。區域網120,包含對等體122'和124'。附著於區域網的對等體可以通過諸 如路由器116或126等NAT設備耦合至網絡100。為了方便不採用直接通信 的對等體之間的通信,中繼伺服器130'可以被包括在對等協作系統中。然而, 邊緣路由的納入可以減少採用通過中繼伺服器130'進行間接通信的情況。
用於實現對等協作系統的具體組件對本發明並不至關重要。因此,可採用 具有與圖1中的相應設備相同的配置的設備來實現對等體112'、 114'、 122'和 124',而這些設備根據本發明的一實施例被編程為支持邊緣路由。這些設備被 示為啟用網絡的臺式計算機。然而,可使用任何合適的聯網計算設備。同樣, 伺服器130'被示出採用與伺服器130 (圖1)相同類型的設備來實現,且還被 編程為支持邊緣路由。然而,可採用任何合適的設備來實現伺服器130'。另外, 在圖2中,NAT設備由路由器116和126示出,當然可以採用任何對等體設 備與互連其它對等體設備的網絡之間的合適連接,且這種連接可以使用或不使 用NAT。
圖2進一步示出與先前在圖1中所示出的系統之間的不同。在所示出的示 例中,伺服器232和234被包括在系統中。在這個示例中,伺服器232和234 可以是任何合適的聯網設備,並且被編程為支持NAT穿越以及用於協作會話 中的諸如對等體112'、 114,、 122鄰124'等對等體的地址發現。這些功能允許 為對等體112'、114'、122鄰124'中的每一個確定該設備是否可從其自身的LAN 的外部設備被到達並且如果可到達的話,確定其它對等體設備可用來與這些設 備傳輸改變消息的地址信息。有了這個信息,對等體可標識協作會話中的該對 等體能直接發送改變信息而不用首先發送消息至中繼伺服器130'的其它對等 體。例如,如果NAT穿越技術被標識用來穿越路由器116,位於LAN110'之 外的諸如對等體122'以及124'的對等體可將被定址的改變消息直接發送至對 等體112'和114'中的任一個或兩者。
在圖2的實施例中,兩個伺服器232和234被示為被包含在對等協作系統 中。這些伺服器支持NAT標識技術的執行,使得一旦NAT設備的種類被標識,
10即能採用有效穿越這種NAT設備的技術。
所示出的兩個伺服器允許執行涉及發送和/或接收來自不同設備的消息的
NAT標識技術。伺服器232和234可互相通信以協調它們的操作以便執行這 樣的NAT標識技術。然而,並不一定要求使用兩個物理伺服器來執行該功能。 例如, 一個附加的伺服器可與中繼伺服器130'合作執行這樣的NAT標識技術。 或者,單個伺服器可被編程為仿真多個伺服器,或者由於其它原因而連接至網 絡100的多個伺服器可執行一些或全部NAT標識技術。因此,本發明並不限 於用於NAT標識的具體硬體,且可以採用任何合適的硬體。
對等體可使用NAT穿越信息來增加可無需使用中繼伺服器而進行通信的 對等體的數量。在對對等協作系統的操作中,這些對等體中的一些將建立彼此
的連接。然後,對等體被分組到在不使用中繼伺服器的情況下能進行通信的對 等體的諸"鄰近區"。通過標識鄰近區,消息可以被發送至各鄰近區內的一個 或一些對等體,從該鄰近區消息被傳播到其它對等體。
即使與鄰近區內的對等體的初始通信需要中繼伺服器,可以在不進一步增 加中繼伺服器負載的情況下將消息從初始對等體分發至該鄰近區內的其它對 等體。例如,即使對等體122'不能夠穿越由路由器116提供的NAT以將消息 直接發送至對等體112'和114',對等體122'也可以通過中繼伺服器130'將單 個消息發送至對等體112'。然後,對等體112'可將消息轉發至對等體114'以及 能從對等體112'直接到達的任何其它對等體設備。通過諸如伺服器232和234 等伺服器來獲取協作會話中的有關對等體的信息幫助標識這種鄰近區。
轉向圖3A,提供了根據本發明的一實施例的可被用於對等協作系統的對 等體設備310的圖示。對等體310可以是臺式或膝上型計算機。當然,任何合 適的計算設備可以被用來作為對等體的平臺。為了方便與其它對等體的通信, 對等體310包括將對等體310耦合至網絡300的網絡接口 334。網絡300可以 是可包括一個或多個NAT設備的任何合適的網絡。
網絡接口 334可以是允許經網絡300發送或接收分組的任何合適的接口硬 件和/或軟體。在所示出的實施例中,可以使用一個或多個分組來傳遞包含有關 協作系統中的共享空間的改變信息的消息。然而,用來傳遞這種消息的具體介 質以及用於這些消息的協議對本發明並不重要,可以使用任何合適的網絡接口334。例如,網絡接口 334可以是常規的網絡接口卡和根據已知有線或無線協 議操作的相關聯的驅動軟體。
無論網絡接口 334的具體形式如何,協作客戶機組件320可通過網絡接口 334將消息發送至協作會話中的其它對等體。類似地,協作組件320可通過網 絡接口 334接收來自其它對等體的消息。協作客戶機320可使用這些消息來維 護共享空間的副本。協作客戶機組件320可以將共享空間的描繪通過用戶界面 332展示給用戶。在對等體310是常規臺式或膝上型計算機的實施例中,用戶 界面332可以包括協作客戶機組件320在其上可呈現共享空間的描繪的顯示屏 幕。然而,用戶界面332的形式對本發明並不重要。
類似地,用戶界面332可包括允許用戶輸入對共享空間引起改變的命令的 一個或多個用戶輸入裝置。協作客戶機組件320可接收來自用戶界面332的、 表示改變共享空間的命令的輸入。這些命令可觸發協作客戶機組件320來生成 一個或多個消息,這些消息將共享空間的改變傳輸至協作會話中的其它對等 體。
為了生成和處理改變消息,協作客戶機組件320可包括"改變引擎"322。 改變引擎322可以是類似於那些在常規對等協作系統中所採用的一個或多個軟 件組件。然而,改變引擎322的具體實現對本發明來說並不重要,並且可以採 用任何合適的實現方式。
這種組件可接收用戶輸入並將改變轉換成改變消息以分發給其它對等體。 類似地,改變引擎322內的組件可接收來自協作會話中的一個或多個其它對等 體的改變消息,並確定適當的動作來製作共享空間副本以使對等體310中的共 享空間副本與其它對等體中的共享空間副本同步。
為了和其它對等體交換改變消息,對等體310包括通信子系統326,該通 信子系統326執行與協作會話中的多個對等體間的對改變所進行的通信相關聯 的功能。對於對等體設備310的用戶所作的改變,通信子系統326可向協作會 話中的其它對等體廣播描述這些變化的消息。對於其它設備的用戶所作的改 變,通信子系統326可以接收消息並在將消息傳送到改變引擎322前對消息排 序。這些功能可以按與已知對等體協作系統相同的方式或以其它合適的方式來 實現。然而,由於通信子系統326可適用於支持邊緣路由,通信子系統326可能與己知對等協作系統中的通信組件不同。
為了方便將消息定向到協作系統中的其它對等體,隨邊緣路由的發生,協
作客戶機組件320可包括路由表324。路由表324可包含通信子系統326可從 其中確定用於定址傳達對等體310的用戶所作的改變的消息的適當機制的信 息。另外,通信子系統326可使用路由表324來選擇通信子系統326將來自協 作會話中的其它對等體的消息轉發至其的對等體。
圖3B提供了路由表324的略圖。可採用任何合適的方式實現這種數據結 構。例如,路由表324可以作為數據結構被存儲在對等設備中的計算機可讀介 質340中。然而,可採用任何合適的機制來從物理上包含路由表324,並且可 採用路由表324中的信息的任何合適的表示。
在圖3B的實施例中,路由表324為示為包含有關包括了對等體310 (圖 3A)的對等協作會話中的對等體的信息。如所示的,路由表324被組織成用於 傳達關於可直接通信的諸對等體組的信息。在圖3B的實施例中,兩組對等體 被示為鄰近區350和360。鄰近區350被示為包含四個對等體352A、 352B、 352C和352D。類似地,鄰近區360被示為包含對等體362E、 362F、 362G 和362H。
在這個實施例中,每個鄰近區被示為包含能與該鄰近區內的至少一個其它 對等體通信的一組對等體。在鄰近區350內,對等體352A與對等體352B形 成連接37(h。對等體352A還與對等體352C形成連接3702。同樣,對等體352C 與對等體352D形成連接3704 。儘管對等體352A和352B不具有與對等體352D 直接形成的連接,但對等體352A和對等體352B可通過經對等體352C發送消 息來與對等體352D進行通信。因此,對等體352A、 352B、 352C和352D均 能在不使用中繼伺服器的情況下與鄰近區350內的每一個其它對等體進行通 信。這樣一種配置緣於鄰近區350內的所有對等體均位於同一NAT設備之後, 使得直接對等通信是可能的。然而,其它操作條件可引起如鄰近區350所描繪 的對於對等體的分組。例如,鄰近區350中的一個或多個對等體可能不位於 NAT設備之後。或者,鄰近區350內的一個或多個對等體可位於NAT之後, 其它對等體已接收到允許它們穿越該NAT的地址信息。
類似地,鄰近區360表示了每一對等體可在不使用中繼伺服器的情況下與
13組內的每一個其它對等體進行通信的一組對等體。然而,鄰近區360被示為包 含與鄰近區350不同的連接模式。在所示的實施例中,對等體362E作為"超 對等體",這表示其與多個其它對等體設備建立了連接。在所示的實施例中, 對等體362E與對等體362F建立了連接372"超對等體362E與對等體362G 建立了連接3722 ,並與對等體362H建立了連接3723 。
每個鄰近區內的對等體之間所建立的連接的數量和類型對本發明都不重 要。在所示的實施例中,協作系統中的每個對等體設備中的通信子系統326(圖 3A)可被配置成與其它對等體建立連接以形成鄰近區。每個對等體設備確定將 與其建立連接的對等體的方式對本發明並不重要。然而,在一些實施例中,在 對等協作會話中的其它對等體的特性可確定對等體之間的連接。例如,對等體 可基於其可用的用來發送、接收或轉發消息的帶寬、存儲器或其它資源來限制
其與其它對等體建立的連接的數量。
相反,具有用來處理大量消息的資源的對等體可以通過形成大量的連接來
被編程為超對等體。通過基於其用資源對於對等體進行編程以形成多個連接可 觸發那些連接的形成。然而,在一些實施例中,對等體可以通過由中繼伺服器 或其它設備發送的命令或請求被觸發成為超對等體。
另外,在一些實施例中,對等體可與其它對等體建立新的連接,其中在鄰 近區中的對等體之間的現有連接不充分支持對等體間的及時通信。例如,對等 體352A可通過向對等體352B發送消息來轉發至對等體352C然後對等體352C 再將消息轉發至352D來與對等體352D進行通信。這種的通信路徑對於對等 體352A和352D之間的可靠通信來說可能太慢、帶來損耗大,或者太容易出 錯。為了響應檢測到現有連接不充分,對等體352A可建立向對等體252D提 供更多直接通信的連接3702。然而,網絡內形成的具體連接對本發明並不重 要。同樣,用於觸發網絡內的對等體間的連接形成的具體機制對本發明並不重 要。
無論路由表324所傳達的有關對等體間的連接的具體信息如何,路由表 324可以被通信子系統326 (圖3A)用來確定可用於向協作會話中的其它對等 體廣播改變信息的定址信息。例如,路由表324可以被用來選擇每個鄰近區內 的如一個之少非對等體來接收報告改變的消息。在圖3B的示例中,帶有改變的消息被首先定址到鄰近區350中的對等體352a。對等體352a可以向對等體 352b和352c分發該消息。對等體352c可接著向對等體352d分發該消息。 在類似的方式中,改變消息可以被首先定址到鄰近區360中的對等體362e。 對等體362e可以向對等體362f、 362g和362h中的每一個分發該消息。在這 個示例中,通過首先將消息發送至每個鄰近區中的僅一個對等體,改變消息被 廣播至協作會話中的所有對等體。
在所示的實施例中,每個對等體維護一個相似的路由表。由此,每個對等 體可以使用路由表來選擇該對等體所產生的改變消息的最初接收對等體。此 外,每個對等體可使用其路由表的副本或依靠現有的廣播會話來標識其將轉發 消息的對等體。例如,對等體362e可使用其路由表的副本來將消息轉發至客 戶機362f、 362g和362h。在所示的實施例中,協作會話中的每個接收對等 體以一種每個對等體只能接收相同消息一次的方式向其鄰近區廣播改變消息。
然而,在對等體可接收同一消息的多個副本的實施例中,每個對等體內的通信 子系統326 (圖3a)可被構建成忽視重複的消息。
每個對等體可以合適的方式構建路由表,例如,通過與其它對等體或其它 設備交換信息的方式。在圖2所示的實施例中,伺服器232和234與對等體交 換信息以方便路由表的構建。從伺服器232、伺服器234和協作會話中的對等 體之間的交互中,伺服器232和234可獲取可被用來標識諸如鄰近區350和360 等設備的鄰近區的信息。這個信息可包括位於nat設備後的對等體的標識以 及每個對等體均位於其後的nat設備的類型。另外,信息可包括能被用來與
其它對等體建立連接的地址信息的標識。
隨著協作會話的成員的改變或隨著能使對等體對其它對等體來說可到達 或不可到達的一些網絡條件的改變,伺服器232和234 (圖2)可在任何合適 的時間收集每個對等體上的信息,以允許對等體來更新它們的路由表。作為一 個示例,當各對等體加入協作會話時,伺服器232和234可收集和分發信息。
新對等體上的信息可以被分發至協作會話中的對等體中的每一個,對等體 中的每一個將使用該信息來確定是否與新對等體建立連接。同樣,諸如伺服器
232或234等伺服器可作為離開對等協作會話的對等體的有關信息的中央分發
點。更常見地, 一旦在協作會話中的成員有改變, 一個或多個伺服器可分發當
15前在協作會話中的對等體的有關信息。
不管形成路由表324的具體機制如何,如果NAT設備不限制協作會話中的對等體間的對等通信,則減少網絡阻塞是合乎需要的。因此,如果NAT設備出現在網絡中,標識那些NAT設備是否能被穿越以允許對等通信是合乎需要的。 一旦標識了NAT設備的類型,可選擇合適的NAT穿越技術。
所使用的具體的NAT穿越技術對本發明來說並不重要,並且可以採用任何合適的技術。穿越技術對於許多類型的NAT設備已知,並且可以被採用。例如,NAT穿越技術對於諸如定向IP連接、UPnPNAT、全雙工錐形NAT、限制錐形NAT或埠受限錐形NAT、具有ISA伺服器的對稱NAT、具有確定性埠分配的對稱NAT以及具有受限傳出埠限制的防火牆等已知。眾所周知的是,如果適用於一對NAT設備的穿越技術可用,則即使每個對等體均位於不同的NAT設備後,該對對等體可參與直接對等通信。因此,在建立對等通信時,可採用用來標識每個對等體位於其後的NAT設備的類型的技術來選擇穿越技術。NAT標識技術可標識上述所列類型的NAT設備。另外,發明人分類了又一類型的NAT設備,稱為"對稱變量"。
對稱變量NAT設備是一種每次將來自相同內部IP位址和埠並發送到任何目的地址和埠的每一個請求映射到相同外部IP位址但不同埠。對稱變量顯示了與會話相關的綁定行為地址綁定是一致的,但埠綁定對於來自相同內部主機的每個請求改變。當客戶機將本地套接字綁定至特定埠以用於使用TCP的出站連接請求時,許多NAT設備(例如,ISA和NetScreen)就是這樣運作的。對稱變量是常規對稱NAT的變體,並由此可以被進一步分類為具有非確定性埠分配的規則對稱變量NAT以及具有確定性埠分配的規則對稱變量NAT。由於下一個埠的分配是可預測的,以確定性方式分配埠的對稱變量NAT通常是可穿越的。
發明人還分類稱為對稱防火牆的一類防火牆設備。對稱防火牆是一種不提供任何內部主機地址映射、但會阻塞來自外部主機對防火牆後的內部主機的任何主動連接請求的網絡設備。在內部主機之前已連接至外部主機後,如果外部主機能連接至內部主機,則對稱防火牆是可穿越的。
為了發現NAT設備的類型,並隨後穿越該NAT,可採用諸如伺服器232或234 (圖2)等NAT探測伺服器。這樣一種伺服器可位於公共區域並可以從 位於待探測的NAT後的對等體到達。圖2隻是示出具有兩個伺服器的可能場 景。在實踐中,如果伺服器具有兩個可被公共定址的網絡接口,則僅可使用一 個伺服器。另外,諸如伺服器130'等公共中繼伺服器能作為探測伺服器。
作為發現NAT的一部分,對等體可向伺服器發送消息序列來探測NAT 設備及其特性。當接收對等體消息之後,伺服器將發回帶有由NAT分配的外 部地址和埠的響應。因為伺服器響應對等體消息,所以對等體發送的消息還 被稱為回聲消息。對等體發送回聲消息以確定客戶機是否在網際網路上開放或者 是否在防火牆或諸如NAT設備等地址轉換設備後。如果找到NAT設備,則對 等體還將想要找出NAT的類型。回聲消息還可指令特定伺服器連接至位於特 定IP位址和埠的對等體,以便觀察NAT是否可以被成功穿越。如果位於 NAT後的設備檢測到外部主機已成功與客戶機建立進站連接,則使用TCP可 以穿越NAT。
作為根據在其中對等體採用TCP耦合至網絡的一實施例的發現NAT的一 部分,對等體可發送以下類型的消息至伺服器
回聲測試對等體建立至伺服器的TCP連接,並隨後發送請求。伺服器 發回具有對等體的映射後的外部IP位址和埠的響應。當對等體接收響應後, 關閉連接。
回聲跳測試對等體建立至伺服器的TCP連接,並隨後發送請求。服務 器發回具有對等體的映射後的外部IP位址和埠的響應,並與此同時將請求
轉發給一不同的伺服器,指令第二伺服器在對等體的映射後的外部IP位址和 埠處連接至對等體。當對等體接收來自第一伺服器的響應後,對等體關閉連 接。
帶有埠改變的回聲測試對等體建立至伺服器的TCP連接,並隨後發
送具有埠號的請求。伺服器發回具有對等體的映射後的外部IP位址和埠 的響應,並隨後在映射後的外部IP位址和接收到的埠處連接至對等體。當 對等體接收來自原始伺服器的響應後,對等體關閉連接。
順序回聲測試埠同時建立至伺服器的、具有順序分配埠號的多個
TCP連接,並且伺服器針對每個連接發回具有對等體的映射後的外部IP位址和埠的響應。當接收到針對每一連接的響應,對等體關閉該連接。
對等體還可向伺服器發送其它特別消息,以便可以在對等體和伺服器間或諸伺服器間安排NAT穿越嘗試。例如,當對等體發現它位於具有可預測埠
分配的對稱NAT後,對等體可向伺服器發送帶有埠分配範圍的消息,該伺服器隨後指令第二伺服器在客戶機的外部IP位址和指定範圍內的埠號處連接至對等體。
圖4A和4B示出基於TCP的NAT發現過程。在該過程中,對等體向伺服器發送一系列回聲消息。該過程允許對等體通過與探測伺服器建立TCP連接來發現NAT設備是否存在,以及如果找到一個的話,發現該NAT設備的類型。該過程可發現所有錐形類NAT、對稱NAT以及對稱變量。另外,該過程
還檢測對等體是否在網際網路上開放或者對等體是否位於對稱防火牆後。當發現NAT時,可以試圖直接穿越NAT或使用聯立TCP開關穿越NAT。儘管圖4A
和4B描繪正被發送的消息和已經完成的測試的序列順序,但是可並發執行一些動作,所以實際順序可能隨不同的實施例而不同。因此,處理順序不是對本發明的限制。
該過程可以從為進站連接而監聽埠的對等體開始。對於每個新的連接請求,對等體可創建套接字並將其本地埠綁定到對等體的監聽埠。例如,對等協作會話中的對等體可通過諸如2492、 80或443等特定埠與其對等體或中繼伺服器通信。此處,對等體模擬在對等協作會話中的進行實際操作的對等體為了啟動基於TCP的NAT穿越會做的事。為了使得入站連接請求被對等體接受,外部主機必須連接至外部地址和埠,該外部地址和埠被NAT映射至內部地址和對等體監聽的埠。
一旦建立連接,在框410處,對等體首先可向伺服器發送回聲測試消息。當接收來自伺服器的映射後的IP位址和埠,在判定框412處,對等體可以將映射後的IP位址和埠與其本地IP位址和埠進行比較。
如果地址和埠是相同的,則對等體得知沒有安裝地址翻譯設備,但是對等體可能位於防火牆之後。因此,該過程分叉到框430。為了找出防火牆是否允許入站連接,在框430處,對等體發送回聲跳測試消息至伺服器,該伺服器接著指令第二伺服器連接至對等體的IP位址和對等體。如果來自第二伺服器
18的入站連接能被成功建立,則該過程在判決框432處分叉至終止點450。如果過程到達終止點450,則對等體得知其在網際網路上是開放的;否則過程在判定框432處分叉至終止點452,其中客戶機確定其位於阻止主動的入站連接嘗試的對稱防火牆之後。如果防火牆是對稱的,則對等體還可發送特殊消息給伺服器,使得對等體和伺服器可安排同時互相連接,以便査看至客戶機的入站連接是否能夠被建立。所建立的入站連接指示對稱防火牆是可穿越的。
相反,如果對等體的外部IP位址和埠與對等體的內部IP位址和埠不同,則對等體可斷定其位於一地址轉換設備後。因此,該過程從判決框412分叉到框414。在框414處,對等體與伺服器進行另外的回聲測試,然後將新映射的外部IP位址和埠與前一次回聲測試的地址與埠進行比較。
基於該比較結果,過程在判決框416處分叉。如果映射不同,則NAT的地址綁定是會話相關的,這意味著NAT綁定隨每個出站連接而改變。具有會話相關綁定行為的NAT設備通常是難以穿越的。因此,如果判決框416處確定映射是不同的,則過程分叉至判決框440。根據映射的改變是否僅針對等體口,該過程進一步在判決框440處分叉。如果改變不限於埠,則該過程分叉至終止點454。如果過程到達終止點454,則對等體可斷定其位於不可穿越的設備之後。
然而,如果NAT—致地綁定至相同的外部地址,且僅埠隨每個會話改變,則NAT被認為是對稱變量NAT。在這種情況下,該過程從判決框440分叉至框442。在框442,對等體將採用順序回聲測試來探測NAT的埠分配模式。順序測試的結果可以被用來指示NAT是確定性地還是不可預測地分配其埠。如果埠分配是不確定的,則該過程從判決框444分叉至終止點458。如果該過程到達終止點458,則對等體可斷定其位於對稱NAT之後。相反,如果埠分配是可預測的,則該過程從判決框444分叉至終止點460。如果該過程到達終止點460,則客戶機可斷定其位於具有可預測埠分配的對稱NAT或對稱NAT變量之後。
相反,如果在判決框416處檢測到相同的映射,則該過程分叉至框418。在框418,對等體能開始一個子過程來測試其是否位於一錐形NAT設備之後。為了獲得更多的有關NAT設備類型的信息,對等體可向第一伺服器發送回聲Wh、iHil:;4"K"雄^t鎮一 mi々BE fcr甘二:&r拉 A門田血6敏一 HE A BEiV4二左設"idr d^T4iZ爭^V
i^gwu lArr守i可力^^Dc^r^fr"j升比:iKo yn不yN t=i幣 "pc^r^fr w'ja]:5CT議MXj々j疋i, 則對寺1今定1乂卞玍雙丄怖形JNA1議舍厄HM。囚恥,該JiL程/A刊伏他420處 分叉至終止點456,其中客戶機可斷定其位於全雙工錐形NAT設備之後。
相反,如果在一超時期後沒有來自第二伺服器的入站連接被接受,則該過 程可從判決框420處分叉至框422。在框422處,對等體可向第二伺服器發送 回聲測試消息。根據接收自第二伺服器的映射,該過程接著在判決框424處分 叉。如果來自第二伺服器的映射的地址和埠不同於來自第一伺服器的,則 NAT可以被看作為一對稱NAT。因此,該過程可從判決框424分叉至框442 以進行如上述的與對稱NAT —致的處理。
相反,如果來自兩個伺服器的經映射的地址和埠保持相同,則該過程分 叉至框426。在框426處,對等體可向第一伺服器發送帶有埠改變的回聲測 試消息。然後,該對等體可等待第一伺服器從特定埠與其連接。
該過程取決於該對等體是否成功接受入站連接可在判決框428處分叉。如 果建立了入站連接,則該過程分叉至達終止點462,其中對等體可斷定其位於 一受限的NAT設備之後。否則,該過程從判決框428處分叉至終止點464, 其中對等體斷定其位於一埠受限的NAT設備之後。
經所標識的NAT設備的類型可規定通信的格式。如果NAT是埠受限的, 則對等體可發送特殊消息給伺服器,使得對等體和伺服器可安排同時互相連 接,以便査看至對等體的入站連接是否能夠被建立。所建立的入站連接指示該 埠受限的NAT可採用TCP連接穿越。
如果發現NAT是對稱NAT或對稱變量,則對等體可向具有順序排本地端 口的伺服器運行一系列回聲測試。將分析來自這些回聲測試的映射後的外部端 口以確定NAT是否在小範圍或以可預測的方式分配其下一個埠。如果按可 預測的方式或以小幅增量地方式分配埠號,則NAT被歸類為具有確定性的 埠分配的對稱NAT;否則,該NAT是一具有不確定性的埠分配的對稱 NAT。
如果NAT是具有確定性的埠分配的對稱NAT或對稱變量,則對等體可 發送特殊消息給伺服器,使得對等體和第二伺服器可安排同時互相連接,以便 査看至對等體的入站連接是否能夠被建立。在這種情況下,第二伺服器將連接至對等體的映射後的外部IP位址和預測埠。所建立的入站連接指示對稱
、t ▲ t 白"^rr內七r^ AA 曰*丁tA 6 a蟲r~i /、Tffa佔^T/r+:f/^ 、t a nr t^^r4"^7fr:縣_^処^d 2 I
丄N/V1疋K)乂鵬mJ。只"H zi、V用/^T土口、J乂向M'刀—日L口、J力、J T小丄NA丄^力M勿、又裡 ;、4XT議W、
為是不可穿越的。
當穿越具有確定性的埠分配的對稱NAT或對稱變量時,外部主機可能有必要同時連接至在一預測範圍內的數個埠以提高成功穿越的概率。
因此,圖4A和4B的過程可以被對等體用來確定它們的連接狀態。對等協作系統中的各對等體可執行類似於圖4A和4B所示的過程的過程,以確定其連接狀態。諸如響應於回聲測試等發送給對等體的信息可與NAT設備類型的確定一起被用於標識與該對等體通信的機制。每個對等體可將此信息與對等協作會話中的其它對等體共享。在圖2所示的實施例中,可以通過中繼伺服器130,分享該信息。然而,可按任何其它合適的方式共享該信息,包括通過伺服器232和234。
無論對等體中的每一個對等體的傳導信息是如何被確定並如何與其它對等體共享的, 一旦該信息對於對等協作系統中的對等體可用,則其可被用來支
持至其它對等體的定址消息的一個或多個模式,而不採用中繼伺服器。可以單獨或組合使用這些尋址的模式來將消息路由至對等協作系統中的對等體。
圖5A示出一直接定址模式。在圖5A所示的配置中,對等體510生成被直接定址到對等體512的改變消息514。當沒有NAT設備連接在對等體510和512之間時,或者當對等體510和512標識了能穿越對等體510和512之間的任何NAT設備的NAT穿越技術時,可使用這種直接定址。
圖5B示出又一定址模式。在圖5B所示的場景中,對等體520、 522和524在相同的鄰近區。對等體520與對等體522建立了連接。接著,對等體522與對等體524建立了連接。在這個場景中,對等體520發起改變消息526!。消息526i被定址到對等體522。
當接收到消息526P對等體522將轉發消息5262定址到對等體524。這樣,對等體520內生成的改變可分發至對等體522和524兩者。
圖5C示出在不通過伺服器中繼的情況下改變消息被傳輸至鄰近區內的多個對等體的另一場景。在圖5C所示的場景中,對等體520、 532、 534和536均在相同的鄰近區。對等體538也在該鄰近區內被連接。
21在所示的實施例中,對等體520生成改變消息542,。消息542^皮定址到
—i 一A- / t —_ — n 、 t, , I, , 、_i^ l.、A JUL v、lz ~ 1 A-Ar^ / I . — , a' I . . l、-丄丄,、》 I. I . /、 — 1. A一A一 /._! - — a a 4-"/-
對寺評ws。 3伎HX到込杆tf、J淚思,對寺1今'土戰攸疋an芏x、」寺,tfjfv 發消息5422 、被定址到對等體534的轉發消息5423以及被定址到對等體536 的轉發消息5424。
在所示的實施例中,對等體538可作為將接收到的消息轉發至多個其它對 等體的超對等體。在所示的實施例中,儘管伺服器540不參與轉發改變消息, 但伺服器540可協調鄰近區內的對等體的操作。在此實施例中,伺服器540可 以是常規對等協作系統中的中繼伺服器,但可以被修改成將對等體配置成超對 等體。例如,當對等體加入協作會話時,中繼伺服器540可輪詢每個對等體的 硬體配置。由此,中繼伺服器540可獲得有關對等體設備中的每一個對等設備 的信息,該信息可允許中繼伺服器標識具有能使得對等體設備比其它對等體設 備處理更多消息流量的帶寬、存儲器和其它資源的對等體設備。因此,中繼服 務器520可以向對等體538發送控制消息541,用信號向該對等體538表示它 應該作為超對等體。被指定為超對等體的設備可試圖與其鄰近區內的多個設備 建立連接。
控制消息541可包含任何合適的類型信息以指明作為超對等體的對等體 538操作的參數。例如,控制消息541可標識超對等體538應與之建立連接的 對等體設備的數量。然而,諸如中繼伺服器540等控制伺服器與被指定為超對 等體的對等體設備之間所交換的具體信息對本發明並沒有限制作用。
此外,諸如中繼伺服器540等控制伺服器與被指定為超對等體的諸如對等 體538的對等體設備之間的通信可以是雙向的。例如,對等體設備538可以向 中繼伺服器540提供有關由對等體538處理的消息流量的信息。這些消息可傳 輸給中繼伺服器540,告知在鄰近區內還需要更多的超對等體以減少對等體538 上的負載或降低網絡阻塞的可能性。
響應於該消息,中繼伺服器540可指定鄰近區內的另一個設備作為超對等 體。然而,本發明並不受限於觸發將對等體指定為超對等體的時間或事件。例 如,在多個對等體的協作會話之初可以將一個或多個設備指定為超對等體。或 者,諸如中繼伺服器540等控制伺服器可監控或以其他方式接收有關對等協作 會話的信息,並響應於該信息而指定一個或多個設備作為超對等體。
22在一些實施例中,中繼伺服器收集有關對等體的信息(例如CPU功率、 存儲器、正常運行時間等)以決定哪些對等體可以成為超對等體的候選者。當 鄰近區上的流量或資源使用超出一定閾值時,中繼伺服器可促進鄰近區內的候 選者成為超對等體。例如,如果每個對等體與鄰近區中的每個其它對等體創建 連接,從而形成全網際網路,則當對等體數量增加時, 一對等體會超出其資源 並因此請求中繼伺服器為鄰近區分配一超對等體。
無論超對等體是否或如何在鄰近區內建立,可使用有關包含在路由表中的 鄰近區的信息來標識在不涉及中繼伺服器的情況下來傳輸改變消息的機制。在 圖3A所示的實施例中,鄰近區的信息被存儲在由對等協作會話中的每個設備
所構建的路由表中。圖6提供了當設備加入對等協作會話後設備可通過其形成
路由表的過程的示例。
圖6所示的過程始於框610,在框610處,對等體試圖發現該對等體位於 其後的NAT設備(如果存在的話)的類型。另外,在框610處,對等體確定 一地址,其它對等體設備可採用該地址將消息定向至該對等體。該信息可以用 任何合適的方式來獲得。例如,可採用圖4A和4B所示的過程。
無論該信息是如何獲得的,該信息可以被用來形成描述其它對等體設備如 何與該對等體通信的地址向量。在框612處,將該地址向量與對等協作會話中
的其它對等體共享。在所示出的實施例中,對等體通過將地址向量傳輸至中繼 伺服器來將其地址向量與其它對等體共享。該中繼伺服器可將地址向量直接傳 輸至協作會話中的所有其它對等體或通過一個或多個中繼伺服器來間接傳遞, 其中一個或多個中繼伺服器被配置成幫助協作會話中的對等體間的通信。
除了獲取其自身的地址向量之外,每個對等體接收協作會話中的其它對等 體的地址向量。在所示出的實施例中,每個對等體從自己的中繼伺服器處接收 對等協作會話中的所有其它對等體的地址向量。然而,本發明並不受限於各對 等體接收協作會話中的其它對等體的地址向量的具體機制,並且,可以使用任 何合適的機制。
除了接收有關地址向量的信息,各對等體可接收有關對等體間已建立的連 接的信息。例如,如圖3B所示,對等體352A已與對等體352B建立連接370!。 然而,即使對等體352A和對等體352D位於相同的鄰近區,對等體352A並沒有與對等體352D建立直接的連接。因此,圖6的過程包括處理框616,在框 616處,對等體接收己建立直接連接的其它對等體的列表。
該過程繼續到框618處。在框618,對等體可採用任何合適的機制與一個 或多個對等體建立連接。例如,框618處的處理可包括按建立連接的"握手" 協議進行的消息交換。交換的具體消息可取決於互聯對等體的網絡所採用的協 議。因此,本發明並不受限於建立連接的具體機制。
無論連接是怎樣建立的,在處理框620處,對等體可與其它對等體共享其 已建立的直接連接。可通過將該消息提供至中繼伺服器或通過對等體的直接連 接來共享有關連接的信息。然而,可採用任何合適的機制來共享該信息。
無論該信息是如何與其它對等體共享的,該過程前進至框622。在框622
W ^+雄/士7 1"士^*——敗rh主 二古^+站/7lrTTr估m^nA"/p辭M ZL々卜法LKT至1的苴々對
等體的地址向量內的信息、在框616處接收到的有關直接連接的信息以及在框 618處所建立的其自己的連接的信息,以標識由對等體組成的鄰近區和這些鄰 近區內的互連。這些信息可反映在諸如圖3B所示的路由表324等路由表中。 然而,可採用任何合適的機制來捕捉這些信息。
對等體可使用框622處建立的路由表,以供在對等協作會話中傳輸改變消 息。對等體可繼續使用路由表,直至檢測到工作空間內的成員的改變。當檢測 出工作空間成員有改變時,路由表不再準確。因此,可重複採用建立路由表的 過程中的一些或全部步驟以構建更新的路由表。因此,當檢測到工作空間成員 或網絡配置有改變時,該過程從判決框624分叉回至框612。從框612開始重 復建立路由表的過程,並且對等體將採取必需的步驟以保持其路由表是最新 的。
在一些示例中,即便沒有檢測出工作空間成員的改變,路由表也會變得過 時。例如,對等體可能丟失與其它對等體的連接,從而改變了對等體之間的連 接。任何數量的原因都會造成連接丟失,例如網絡的性能問題、超載、給予對 等網絡中的一對等體的用戶命令等。因此,路由表可以隨時更新。可使用任何 合適的機制來確定何時更新路由表。例如,對等協作系統中的所有對等體可周 期性地更新它們的路由表。或者,對等協作系統中的任何設備可響應於協作系 統中的感知到的條件信令其它設備更新它們的路由表。例如,如果設備在消息被直接從一個對等體發送至另一個對等體時經歷了大量的通信失敗,則該設備 可以通過發送有關受影響的連接的信息來信令其它設備刷新它們的路由表。
無論在對等協作會話中使用的路由表是如何被確定為過時的,當表被確定
為過時時,過程從判決框626分叉至可在其中重複建立路由表的過程的框628。 例如,由於與鄰近區內的其它對等體的連接已不再可用,對等體可檢測出其路 由表是過時的。對等體可在其路由表過時時對其更新。由於各對等體使用其自 身的路由表來發送消息,因此它將最終檢測出連接丟失並隨後相應地更新其路 由表。如果丟失互相之間的連接的兩個對等體的網絡配置改變了,則它們可進 行NAT探測過程。如果由於例如流量超載等性能原因而丟失連接的,則對等 體可等待,直至稍後當負載處於更合適的水平時重新建立連接。
對等協作會話中的對等體中的每一個可重複圖6所示的過程,使得各對等 體可維護路由表以便根據邊緣路由技術有效地與其它對等體進行通信。
圖7示出對等體可採用邊緣路由技術使用路由表來向其它對等體廣播改 變信息的過程。廣播的過程始於框710。在框710處,對等體生成一消息。在 框710處生成的消息可以是採用已知對等協作系統使用的格式的改變消息。然 而,本發明並不受限於消息的類型和格式。
在圖7的示例中,消息旨在用於向對等協作系統中的所有對等體廣播。然 而,本發明並不受限於消息的格式以及接收對等體的數量。在框710處生成的 消息可以是任何合適的格式,並且可被定向至對等協作會話中的對等體中的任 何一個或多個。
無論消息的類型如何以及無論消息的預期接收者,該過程前進至環路起始 712。環路起始712表示對包含對等體的每個對等體鄰近區進行以接收框710 處生成的消息的處理的開始。可使用根據圖6的過程構建的路由表來標識各鄰 近區。然而,可以按任何合適的方式標識鄰近區。
無論各鄰近區是如何被標識的,該過程前進至框714。在框714處,對於 所選的鄰近區,構建一個或多個生成樹。各生成樹定義可定址鄰近區內旨在接 收框710處生成的消息的所有對等體的分發路徑。例如,可為鄰近區350 (圖 3B)構建兩個可能的生成樹。為了到達鄰近區350內的所有對等體,可將消息 定向至對等體352A,以轉發給客戶機352B和客戶機352C,客戶機352C將從
25對等體352A接收到的消息轉發至對等體352B。相反,生成樹可由將消息發送 至對等體352B的對等體352A來構建,該對等體352B會接著將消息轉發至對 等體352C。然後,對等體352D可接收由對等體352C轉發的消息。因此,在 圖3B的簡化示例中,兩個生成樹對網絡350來說是可能的。對於包含具有對 等體間更複雜互聯的更多對等體的鄰近區,可標識多於兩個的生成樹。框714 的標識生成樹的機制對本發明並不重要。然而,在一些實施例中,由對等體維 護的路由表可以被看作有向圖,在這種情況下,可採用跨有向圖來構建生成樹 的已知算法。
無論這些生成樹是如何被構建的,該過程前進至框716。在框716處,選 擇框714構建的生成樹。在所示的實施例中,基於最低"成本"來進行選擇。 在該上下文中,"成本"可表示用於指示對等協作系統的性能特性的任何一個 或多個度量。例如,相對於其它生成樹要求消息被轉發次數最少的生成樹可以 被選為最低成本生成樹。或者,使得消息通過阻塞節點轉發次數最少的生成樹 可以被選擇為最低成本的生成樹。然而,在框716處,可使用任何合適類型的 度量來作為成本的指示。
無論這些生成樹是如何被選擇的,該過程繼續至判決框718。在判決框718 處,過程取決於在環路起始712所選擇的鄰近區是否可從執行圖7的過程的對 等體通過直接連接來到達而分叉。在所示出的實施例中,執行判決框718處的 檢査的一種簡單方法是確定起始對等體是否屬於所選擇的鄰近區。如果它是其 自身的鄰近區,則對等體可將其自身作為根來創建生成樹,然後沿該生成樹廣 播改變消息。
如果所選鄰近區是可以被直接到達的,則過程分叉至框720。在框720, 直接發送消息至形成所選生成樹的根節點的對等體。相反,如果起始對等體不 屬於所選鄰近區,則該過程從判決框718分叉至框740。在框740處,消息被 發送至執行圖7的過程的對等體的歸屬中繼(home relay)。消息可按將消息 在常規對等協作系統中被發送至對等體的歸屬中繼的方法發送至歸屬中繼。然 而,可採用任何合適的機制在框740進行該處理。
在框742處,歸屬中繼將消息轉發至所選生成樹的根節點。如常規對等協 作系統中,該消息由歸屬中繼轉發。通過將消息直接發送至作為所選生成樹的根節點的對等體來轉發消息。或者,在到達能夠與作為生成樹的根節點的對等 體通信的中繼伺服器之前,通過一個或多個中繼伺服器轉發消息。
無論該消息是在框720處被直接發送至根節點,還是在框742處間接通過 一個或多個中繼伺服器發送至根節點,該過程繼續至框722。在框722,該消 息通過生成樹被傳播。可由轉發消息至與其有直接連接的那些節點的根節點來 發起傳播。然後,這些對等體可將消息轉發至生成樹中與其具有如在路由表中 反映的直接連接的其它對等體。然而,可採用任何合適的機制來傳播信息。
在判決框724處,該過程取決於該消息是否到達鄰近區內的旨在接收消息 的所有對等體而分叉。如果是,則該過程分叉至判決框732,在框732處,該 過程進一步取決於是否有更多的剩餘鄰近區需要處理而分叉。如果是,則該過 程分叉迴環路起始712,在環路起始712處,對下一個鄰近區重複處理過程。 相反,如果沒有剩餘鄰近區,則處理終止。
然而,如果發送不成功,則過程分叉至在其中消息被重新發送的框730。 該消息可以與初始消息相同的方式被重新發送,或可選擇不同路由路徑將消息 發送至其目的對等體。然而,如果可能有多種途徑將消息發送至沒有收到消息 的對等體,則可以在重新發送時嘗試不同的途徑。可以按任何合適的順序嘗試 這些途徑。然而,在所示的實施例中,使用中繼伺服器進行重新發送可作為最 後的手段來嘗試,反映減少中繼伺服器上的負載的努力。
無論重新發送是通過何種機制進行的, 一旦成功,則該過程前進至判決框 732,在該判決框732處,如果存在下一個鄰近區,則該過程對下一個鄰近區 重複,否則該過程結束。
如上所述,可以增加對等協作系統中直接定址發送到其它對等體的消息的 數量,這能減少中繼伺服器上的負載,允許較低的成本和/或較高效的對等協作 系統。
至此描述了本發明的至少一個實施例的若干方面,可以理解,本領域的技 術人員可容易地想到各種更改、修改和改進。
這樣的更改、修改和改進旨在是本發明的一部分,且旨在處於本發明的精 神和範圍內。從而,上述描述和附圖僅用作示例。
可以用多種方式中的任一種來實現本發明的上述實施例。例如,可使用硬體、軟體或其組合來實現各實施例。當使用軟體實現時,該軟體代碼可在無論 是在單個計算機中提供的還是在多個計算機之間分布的任何合適的處理器或
處理器的集合上執行。
此外,應當理解,計算機可以用多種形式中的任一種來具體化,如機架式 計算機、臺式計算機、膝上型計算機、或圖形輸入板計算機。另外,計算機可 以具體化在通常不被認為是計算機但具有合適的處理能力的設備中,包括個人 數字助理(PDA)、智慧型電話、或任何其它合適的可攜式或固定電子設備。
同樣,計算機可以具有一個或多個輸入和輸出設備。這些設備主要可被用 來呈現用戶界面。可被用來提供用戶界面的輸出設備的示例包括用於可視地呈 現輸出的印表機或顯示屏和用於可聽地呈現輸出的揚聲器或其它聲音生成設 備。可被用於用戶界面的輸入設備的示例包括鍵盤和諸如滑鼠、觸摸板和數字 化輸入板等定點設備。作為另一示例,計算機可以通過語音標識或以其它可聽 格式來接收輸入信息。
這些計算機可以通過任何合適形式的一個或多個網絡來互連,包括作為局 域網或廣域網,如企業網絡或網際網路。這些網絡可以基於任何合適的技術並可 以根據任何合適的協議來操作,並且可以包括無線網絡、有線網絡或光纖網絡。
而且,此處略述的各種方法或過程可被編碼為可在採用各種作業系統或平 臺中任何一種的一個或多個處理器上執行的軟體。此外,這樣的軟體可使用多 種合適的程序設計語言和/或常規程序設計或腳本工具中的任何一種來編寫,而 且它們還可被編譯為可執行機器語言代碼或在框架或虛擬機上執行的中間代 碼。
就此,本發明可被具體化為用一個或多個程序編碼的一個或多個計算機可 讀介質(例如,計算機存儲器、 一個或多個軟盤、緊緻盤、光碟、磁帶、快閃記憶體、 現場可編程門陣列或其它半導體器件中的電路配置等),當這些程序在一個或 多個計算機或其它處理器上執行時,它們執行實現本發明的上述各個實施例的
方法。這一個或多個計算機可讀介質可以是便攜的,使得其上存儲的一個或多 個程序可被加載到一個或多個不同的計算機或其它處理器上以便實現本發明 上述的各個方面。
此處以一般的意義使用術語程序摂或軟體摂來指可被用來對計算機或其
28它處理器編程以實現本發明上述的各個方面的任何類型的計算機代碼或計算 機可執行指令集。另外,應當理解,根據本實施例的一個方面,當被執行時實 現本發明的方法的一個或多個電腦程式不必駐留在單個計算機或處理器上, 而是可以按模塊化的方式分布在多個不同的計算機或處理器之間以實現本發 明的各方面。
計算機可執行指令可以具有可由一個或多個計算機或其它設備執行的各 種形式,諸如程序模塊。 一般而言,程序模塊包括執行特定任務或實現特定抽 象數據類型的例程、程序、對象、組件、數據結構等。通常,程序模塊的功能 可以按需在各個實施例中進行組合或分布。
本發明的各個方面可單獨、組合或以未在前述實施例中特別討論的各種安 排來使用,從而並不將其應用限於前述描述中所述或附圖中所示的組件的細節 和安排。例如,可使用任何方式將一個實施例中描述的各方面與其它實施例中 描述的各方面組合。
在權利要求書中使用諸如"第一"、"第二"、"第三"等序數詞來修飾 權利要求元素本身並不意味著一個權利要求元素較之另一個權利要求元素的 優先級、先後次序或順序、或者方法的各動作執行的時間順序,而僅用作將具 有某一名字的一個權利要求元素與(若不是使用序數詞則)具有同一名字的另 一元素區分開的標籤以區分各權利要求元素。
同樣,此處所使用的短語和術語是出於描述的目的而不應被認為是限制。 此處對"包括"、"包含"、或"具有"、"含有"、"涉及"及其變型的使 用旨在包括其後所列的項目及其等效物以及其它項目。
權利要求
1.一種操作對等協作系統的方法,該對等協作系統中的多個對等體(112、114、122、124)的每一個向該多個對等體中的其它對等體(112、114、122、124)廣播協作信息,該方法包括確定(610)地址信息,該多個對等體中的第一對等體可採用該地址信息通過網絡地址轉換(NAT)設備接收分組;與該多個對等體中的至少第二對等體共享(614)該地址信息;以及將協作信息從該第二對等體協作信息發送(720,742)至該多個對等體中的其它對等體中的每一個,發送包括使用該地址信息發送包括被定址到該第一對等體的協作信息的至少一個分組。
2. 如權利要求1所述的方法,其特徵在於,確定地址信息包括 從該第一對等體發送探測分組(410)至伺服器;以及 在該第一對等體處接收響應(412)分組。
3. 如權利要求2所述的方法,其特徵在於,從該第二對等體發送包括發送 (740)至少一個分組至該伺服器,以用於分發至該多個對等體中的一部分。
4. 如權利要求1所述的方法,其特徵在於,共享該地址信息包括 傳輸發送(612)地址向量至伺服器;以及分發(614)該地址信息至該多個對等體中的其它對等體的每一個。
5. 如權利要求1所述的方法,其特徵在於該方法還包括將標識該多個對等體中的對等體(352A、 352B、 352C、 352D、 362E、 362F、 362G、 362H)組成的多個組(350、 360)的數據結構(324)存 儲於與該第二對等體相關聯的計算機可讀介質(340)中,各組中的各對等體 能夠向該組中的至少一個其它對等體直接發送分組;以及從該第二對等體發送包括將分組發送至該多個組中的每一個組中的至少 一個對等體(712)。
6. 如權利要求5所述的方法,其特徵在於,還包括將該多個組中的第一組中的多個對等體中的至少一個指定為超對 等體(362E);以及其中從該第二對等體發送包括將分組(542)發送至該超對等體;以及將該分組從該超對等體轉發至該第一組中的多個對等體(532、 534、 536)。
7. 如權利要求5所述的方法,其特徵在於,從該第二對等體發送包括 將該分組發送(740)至公共可訪問的伺服器;以及 將該分組從該公共可訪問的伺服器分發(742)至該多個組中的至少一個組中的對等體。
8. —種操作對等協作系統的方法,該對等協作系統中的多個對等體的每一 個向該多個對等體中的其它對等體中的每一個廣播協作信息,該方法包括維護多個路由表(324),該多個路由表中的每一個與該多個對等體中的 至少一部分中的對等體相關聯,並且各路由表標識該多個對等體組成的組 (350、 360),各組中的各對等體能夠使用直接定址到該組中的對等體的分組 與該組中的至少一個其它對等體通信;將分組發送(720、 742)至該各組中的每一個組中的至少一個對等體;以及從該各組中的至少一部分中的該至少一個對等體處,將該分組轉發(722) 至該組中的至少一個其它對等體,被轉發至各其它對等體的分組被直接定址至 該其它對等體。
9. 如權利要求8所述的方法,其特徵在於,還包括從該各組中的至少一個 組中的至少一個其它對等體(538)處,將分組轉發至該組中的第二其它對等 體(532、 534、 536),轉發至該第二其它對等體的分組(5422、 5433、 5424)被直接定址至該第二其它對等體。
10. 如權利要求8所述的方法,其特徵在於,將分組發送至該各組中的 每個組中的至少一個對等體包括將分組發送至公共可訪問的伺服器(560)以 及將該分組從該公共可訪問的伺服器轉發至該多個組中的一部分中的至少一 個對等體(552、 554、 556)。
11. 如權利要求8所述的方法,其特徵在於,將分組發送至該各組中的 每一個組中的至少一個對等體包括將分組發送至該各組中的第一組中的第一對等體(538);以及 將該分組從該第一對等體轉發至該第一組中的多個其它對等體(532、534、 536)中的每一個。
12. 如權利要求11所述的方法,其特徵在於,將分組發送至該各組中 的每一個組中的至少一個對等體包括將該分組發送至伺服器(560);以及 將該分組轉發至該各組中的第二組中的至少一個對等體(552、 554、 556)。
13. 如權利要求12所述的方法,還包括從該伺服器指定(541)該第一 對等體應該將該分組轉發至該第一組中的該多個其它對等體中的每一個。
14. 如權利要求8所述的方法,其特徵在於,該多個對等體在協作會話 中通信,並且維護多個路由表,包括當對等體進入或離開(624)該協作會話 或當對等體之間的互聯改變時,重新構建該多個路由表。
15. —種連接至網絡的計算設備,該計算設備具有用戶界面並且適於作 為對等體在對等協作系統中操作,該計算設備包括存儲計算機可執行組件的計算機可讀介質,包括用於通過該用戶界面(332)與用戶交互的活動組件(322),該活動組件 適於生成用於發送至協作會話中的多個其它對等體的數據改變命令,該數據改變命令是基於與用戶的交互的;用於存儲定義該多個對等體之間的在網絡上的互聯的信息的路由表 (324);以及用於通過發送多個消息來經網絡發送數據改變命令的通信組件(326), 各消息具有基於該路由表中的信息所選擇的地址,該各消息中的至少一個被直 接定址至該多個對等體中的至少一個。
16. 如權利要求15所述的計算設備,其特徵在於,該路由表包括被組 織為多個鄰近區(350、 360)的信息,各鄰近區包括多個對等體(352A、 352B、 352C、 352D、 362E、 362F、 362G、 362H),該鄰近區內的各對等體能夠與該 鄰近區內的至少一個其它對等體傳輸消息。
17. 如權利要求16所述的計算設備,其特徵在於,各鄰近區內的各對 等體位於相同的網絡地址轉換(NAT)設備(116、 126)之後,或者位於能從 該鄰近區內的不位於NAT設備之後的對等體處穿越的NAT設備之後。
18. 如權利要求17所述的計算設備,其特徵在於,該通信組件適於將 該多個消息中的每一個發送至該多個鄰近區中的每一個鄰近區中的對等體。
19. 如權利要求18所述的計算設備,其特徵在於,該通信組件適於將 該多個消息中的一部分直接發送至該多個鄰近區中的至少一個鄰近區中的對 等體。
20. 如權利要求19所述的計算設備,其特徵在於,該通信組件適於將 該多個消息中的一部分通過中介設備間接發送至該多個鄰近區中的至少一個 鄰近區中的對等體。
全文摘要
一種對等協作系統,其中可採用結合定址技術發送的消息將共享空間的改變廣播至協作會話中的所有對等體。消息可以被定址,用於直接對等傳輸、通過另一個對等體的間接傳輸或通過伺服器的間接傳輸。與各對等體通信而使用的定址的類型通過使用路由表被確定。該路由表定義互聯的對等體組,並可以被用來選擇各組中的一個或多個對等體作為該消息的初始接收者。該初始接收者可將該消息轉發至它們組內的其它對等體,使得所有對等體能接收該消息。對於位於NAT後的對等體,可使用一個或多個NAT穿越技術來獲取構建路由表的信息。
文檔編號H04L12/56GK101681337SQ200880016321
公開日2010年3月24日 申請日期2008年4月20日 優先權日2007年5月16日
發明者J·J·王, T·B·蒂奇納, T·D·桑菲利普 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀