分布式網絡坐標系統的製作方法
2023-07-05 10:13:51
專利名稱:分布式網絡坐標系統的製作方法
分布式網絡坐標系統
背景技術:
在網絡上用戶體驗的質量可能受到網絡上狀況的很大影響,所述狀況諸如是在用戶設備與一個或多個伺服器之間的等待時間(latency)和可得到的帶寬。例如,在高度交互的客戶機-伺服器應用中,在客戶設備處的用戶可以對來自伺服器的內容作出重複的請求。即使在客戶設備與伺服器之間有足夠的帶寬來允許相對快速地傳送大的文件,長的等待時間也會促成令人失望的用戶體驗,其中伺服器沒有表現為對客戶設備進行響應。相反, 在牽涉到大的數據傳送但相對較少的客戶機-伺服器交互的客戶機-伺服器應用中,短的等待時間並不能克服帶寬不足以提供對於數據的可接受傳送時間的缺點。在許多情形下,給定的在線服務可以與能夠提供在線服務給客戶設備的許多伺服器相關聯。解決以上略述的所考慮問題的一種方式是把每個客戶設備指引到能夠給用戶提供高服務質量的優選的伺服器。然而,用於將客戶設備指引到伺服器的現有技術常常導致客戶設備與對於提供優質的用戶體驗而言非理想的伺服器通信。而且,現有的技術常常使得某些伺服器過載,而同時讓其它伺服器相對地利用不足。作為例子,客戶設備常常通過提供域名到域名服務(「DNS」)伺服器而請求訪問在線服務。作為響應,DNS伺服器將給客戶設備提供位置可能被設置為在地理上臨近DNS伺服器的一個或多個伺服器的列表。因此,DNS伺服器的地理位置常常是客戶設備將使用哪個伺服器來訪問web服務的決定因素。然而,客戶設備可能位於相對遠離DNS伺服器的位置。而且,網絡等待時間和帶寬不總是直接與地理臨近性相關,在某些情形下,在物理距離上相對遠離客戶設備的伺服器可能能夠比物理上更接近於客戶設備的伺服器提供更高的服務質量。
發明內容
本文檔涉及計算機網絡。一種技術存儲網絡中第一設備的初始網絡位置,該網絡還包括第二設備。所述技術可包括監視與第二設備的現有應用通信有關的一個或多個網絡性能度量(metric)。所述技術還可包括根據初始網絡位置和網絡性能度量來確定第一設備的更新的網絡位置。另一種實現被顯現為包括存儲設備和操縱構件(manipulation component)的系統。存儲設備可被配置成存儲網絡中內容伺服器或客戶設備的第一網絡位置。操縱構件可被配置成將客戶設備或內容伺服器的第一網絡位置操縱到第二網絡位置。另一種實現被顯現為確定對於設備的第一網絡坐標的技術。第一網絡坐標可以標識網絡中設備的各自的第一網絡位置。所述技術還可以包括確定對於設備的第二網絡坐標。第二網絡坐標可以標識網絡中設備的各自的第二網絡位置。所述技術還可以包括為設備計算第一網絡坐標與第二網絡坐標之間的差別。所述差別可以反映一個個設備在網絡內的移動。所述技術還可以包括根據差別來識別所述一個個設備的子集以用於進一步處理。以上列出的例子打算提供快速參考以便幫助讀者,以及不打算規定這裡描述的構思的範圍。
附圖舉例說明了在本文檔中傳達的創造性構思的實現。通過參考結合附圖作出的以下說明可以更容易理解所舉例說明的實現。在各個附圖上同樣的參考數字在任何可行的地方被使用來指示同樣的單元。而且,每個參考數字的最左邊數字傳達了在參考數字被首次引入處的圖和相關聯的討論。圖1、5和9顯示按照本構思的某些實現的網絡系統的例子。圖2A、2B和2C顯示按照本構思的某些實現的、某些設備的構件的例子。圖3A JB和7顯示按照本構思的某些實現的、由某些設備存儲的數據結構的例子。圖4、6、8和10顯示可以按照本構思的某些實現來完成的示範性方法的流程圖。
具體實施例方式本文檔涉及到分布式坐標系統,其尤其可以在客戶機/伺服器處理模型中被利用。更具體地,這裡公開的實施例可以為了各種目的而有利地使用某些網絡設備的網絡位置。在總地相對於圖1、2A、2B、2C、3A、;3B和4所舉例說明的第一場景中,客戶設備可以確定在網絡系統中它的位置,例如網絡坐標。網絡系統可包括幾個地標(landmark)伺服器,所述地標伺服器用作為「信標」,以使得客戶設備能夠自定位,例如確定它自己的坐標。 網絡系統還可以包括幾個內容伺服器。客戶設備可以通過網絡系統與內容伺服器通信,並根據這些通信來更新它自己的位置。在總地相對於圖5、6和7所舉例說明的第二種場景中,引入了經由多個接口的網絡訪問。客戶設備可以通過使用第一(例如,有線)接口而與地標和/或內容伺服器通信,以便確定在網絡系統上它自己的位置。客戶設備還可以通過使用第二(例如,無線)接口進行通信,以便確定在網絡系統上的另一個位置。因此,客戶設備的位置可以根據哪個接口正被使用而被設置在網絡系統內的不同坐標處。客戶設備可以根據對於各個接口的它的坐標, 來為訪問特定的web服務而選擇第一或第二網絡接口。在總地相對於圖8所舉例說明的第三種場景中,公開了網絡位置的操縱。例如,月艮務器可以具有在網絡系統中的第一位置。伺服器可以將該第一位置操縱到網絡系統內的第二位置,這例如是通過響應於帶有被操縱的第二位置的客戶請求來進行。在某些實現中,月艮務器可以確定發出請求的客戶設備應當訪問另一個伺服器。伺服器可以操縱它自己的位置以便更加遠離發出請求的客戶設備,這樣使得客戶將訪問另外的伺服器。在總地相對於圖9和10所舉例說明的第四種場景中,公開了示範性診斷技術。例如,隨著時間的推移,某些設備可以在網絡坐標系統內移動。設備的移動可被使用來識別在網絡上諸如擁塞的路由器那樣的特定網絡狀況。第一種場景
考慮圖1,圖上顯示網絡系統100的例子。網絡系統100可包括能夠通過網絡系統100 進行通信的多個設備。例如,網絡系統100可包括地標伺服器110(1)、11(K2)、110(3)和 11(Κ4),內容伺服器120(1)、120(2)和130,客戶設備140和DNS伺服器150。為了方便起見,網絡系統100的一個個構件通過包括括號中的參考數字而被標識,例如,地標伺服器110(1)。當全體地引用構件時括號中的參考數字將省略,例如,「地標伺服器110」通常可以指地標伺服器110(1),(2), (3)和/或⑷中的一個或多個。當在這裡使用時,術語伺服器(例如,地標伺服器或內容伺服器)、機器、計算機和設備(例如,客戶設備)可被理解為是指可以發送或接收數據的任何設備。例如,這些術語可被理解為是指以下的任一項物理伺服器、在伺服器上運行的虛擬機(例如,使用虛擬化技術)、運行單個作業系統的計算設備、運行一個以上的作業系統的計算設備、運行不同的作業系統(例如,Microsoft Windows , Linux , FreeBSD )的計算設備、不同於伺服器的計算設備(例如,膝上型計算機、可尋址的電源)、或計算設備的一部分(例如,附連到網絡的 (network attached)盤、附連到網絡的存儲器、存儲子系統、存儲區域網絡(SAN)、圖形處理單元、數值加速器(numerical accelerator)、或量子計算設備)。當在這裡使用時,術語網絡和網絡系統可被理解為是指使得能在實體之間進行通信的一個或多個通信信道。例如,術語網絡可包括一個或多個有線或無線通信信道,其被使用來實施一個或多個區域網(「LAN」)、廣域網(「WAN」)、網際網路、虛擬專用網(「VPN」)、內聯網、外聯網、或它們的組合。示範性無線網可以實施3G和4G移動通信、Wi-Fi LAN和藍牙連接。示範性有線網尤其可包括撥號、電纜、數字用戶線(DSL)、綜合業務數字網(ISDN)和乙太網技術。網絡系統可包括諸如路由器、集線器和交換機以及通過網絡系統進行通信的端點(例如,客戶機和伺服器)那樣的設備。如圖1所示,網絡系統100可包括一個或多個地標伺服器110。圖1可以被概念化為二維網絡坐標系統的表示,其中每條點線用10個單位的坐標空間間隔開。坐標系統可包括水平取向的X軸180和垂直取向的y軸190。地標伺服器110、內容伺服器120和130、 客戶設備140和DNS伺服器150在圖1上被圖示在大致它們各自的網絡坐標處。例如,在 (0,0)的地標伺服器110(1)被顯示在圖1的左下角。同樣地,地標伺服器110C3)被顯示在圖1的右上角,在00,40)。正如在下面更詳細地討論的,圖1描繪了在兩個不同的坐標處,例如,在(10,30)和00,30)處的客戶設備140,以反映客戶設備140在坐標系統內的移動。一般地說,地標伺服器110可以動作以通過網絡系統100建立網絡坐標系統。例如,地標伺服器110可以各自具有在網絡系統100內的對應的全局網絡坐標組。在一些實施例中,對於每個地標伺服器110,網絡坐標是靜止的,且不改變。而且,為了討論起見,每個地標伺服器110的網絡坐標在以下的討論中由始至終保持一致。其中對於給定地標伺服器的坐標可以改變的示範性環境將在下面詳細說明。內容伺服器120和130以及客戶設備140可被配置成確定它們自己在網絡坐標系統內相對於地標伺服器110的位置。例如,內容伺服器120和130以及客戶設備140可以測量對於與地標伺服器110中的一個或多個通信的往返行程時間(等待時間)。根據所測量的等待時間,內容伺服器120和130以及客戶設備140可以執行計算,以確定它們各自的網絡坐標。例如,所述計算可以實施一個或多個到達時間差(TDOA)或三角測量算法。一般地說,客戶設備140也可以通過網絡系統100進行通信以訪問一個或多個web 服務。例如,內容伺服器120可以提供對第一 web服務的訪問,諸如在比如「www. 123news. com"的域名下可訪問的新聞服務。同樣地,內容伺服器130可以提供對第二 web服務的訪問,諸如在比如「www. xyzsearch. com」那樣的域名下的在線搜尋引擎。
正如下面更詳細地討論的,客戶設備140例如可以初始地通過與地標伺服器110 通信而確定它的本地網絡坐標。客戶設備140然後可以查詢內容伺服器130,以通過使用由內容伺服器130提供的搜尋引擎而搜索新聞服務,且從搜尋引擎得到域名「www. 123news. com」作為查詢結果。客戶設備140可以根據從客戶設備140發送查詢給內容伺服器130時直至它接收到來自內容伺服器130的響應的往返行程時間,而更新它的本地網絡坐標。根據更新的網絡坐標,客戶設備140然後可以確定是訪問內容伺服器120(1)處還是120(2) 處的 「www. 123news. com」。
應當指出,地標伺服器110、內容伺服器120和130以及客戶設備140在這裡是相對於由每個機器實施的功能性被描述的。然而,這裡描述的某個功能性可以在各種機器之間被組合。例如,在一些實施例中,單個伺服器可以例如通過用作為具有已知的、可能固定的坐標的信標和也提供對web服務的訪問而既起地標伺服器的作用又起內容伺服器的作用。同樣地,內容伺服器可以通過從另一個機器訪問web服務而用作為客戶設備。而且,這裡公開的對於每個機器的各種處理可被跨多個機器地分布。例如,地標伺服器110和內容伺服器120和130可被實施為包括幾個不同機器的伺服器場地或機架,所述機器共同地操作來提供地標伺服器和/或內容伺服器功能性。
圖I還舉例說明了示範的域名服務(「DNS」)伺服器150。一般地說,客戶設備140 可以通過訪問DNS伺服器150而得到對於給定域名的網際網路協議(「IP」)地址。例如,客戶設備140可以發送域名「www. xyzsearch. com」到DNS伺服器150,並作為響應,接收對於內容伺服器130的IP位址「IP1」。同樣地,客戶設備140可以發送域名「www. 123news. com」 到DNS伺服器150,並且接收對於內容伺服器120(1)的IP位址「IP2」和對於內容伺服器 120(2)的 「IP3」。
正如下面更詳細地討論的,對於給定機器的網絡坐標不一定必須反映地理位置。 而是,對於給定機器的網絡坐標標識在網絡坐標系統中該機器的位置,這是網絡距離的虛擬表示。正如也是在下面更詳細地討論的,網絡坐標可以通過使用諸如等待時間或帶寬那樣的網絡性能度量而被定義。
使用等待時間作為例子,網絡坐標系統上每個單位可以對應於I毫秒的時間。因此,從地標伺服器110(1)發送到地標伺服器110(4)的分組在40毫秒的時間內從(0,0) 行進到(40,O)。而且,對於這樣的分組的往返行程時間將花費80毫秒,來例如在X軸上行進40個單位回到地標伺服器110(1)。然而,應當指出,通過使用諸如TDOA或維瓦爾第 (Vivaldi)算法那樣的某些技術得到的坐標不一定必須在時間單位與網絡坐標單位之間具有固定的映射。不過,某些描述的實現將使用在時間與網絡坐標單位之間固定的對應以便於討論,除非另外指出的。
而且,為了簡潔和清晰起見,網絡坐標系統的最初的討論將作出某些簡化的假設。 例如,用於分組從地標伺服器110(1)到地標伺服器110(4)的往返行程時間通常可包括某些延遲,用於由地標伺服器110(4)處理分組。除非另外指示,這樣的處理將被假設為瞬時的,以簡化網絡坐標系統的討論,但可在其它實施例中被考慮。
而且,為了清晰起見,討論將集中在二維網絡坐標系統。然而,在一些實施例中,網絡坐標系統可包括一維、三維、四維或更多數量的維。然而,實驗結果間接表明在給定這樣的實現的相對複雜性下,為網絡坐標系統使用多於四維可導致在接近真實網絡狀況下的收益遞減(diminishing returns)。而且,雖然為了簡單起見,所公開的實施例利用了笛卡爾平面,但實施例可以在非笛卡爾或非歐幾裡德空間中被實施。例如,可以使用球、橢圓、極、 拋物線或其它坐標系統。
圖2A、2B和2C—般性地分別舉例說明了地標伺服器110、內容伺服器120和130、以及客戶設備140的示範性結構。
圖2A舉例說明了地標伺服器110的示範性結構。地標伺服器110可包括中央處理單元(「CPU」)211,其可操作地連接到存儲器212。例如,CPU 211可以是精簡指令集計算 (RISC)或複雜指令集計算(CISC)微處理器,其經由總線被連接到存儲器212。存儲器212 可以是諸如隨機存取存儲器(RAM)那樣的易失性存儲裝置或諸如閃速存儲器那樣的非易失性存儲器。雖然在圖2A上未示出,地標伺服器110也可以包括各種輸入/輸出設備,例如, 鍵盤、滑鼠、顯示器、印表機等等。而且,地標伺服器110可包括一個或多個非易失性存儲裝置,諸如硬碟驅動器(HDD)、光學(壓密盤/數字視頻盤)驅動器、磁帶驅動器等等。一般地說,由地標伺服器110處理的任何數據可被存儲在存儲器212中,也可以按需要被提交到非易失性存儲裝置。
地標伺服器110的存儲器212可包括實施這裡描述的某種處理的各種構件。例如, 存儲器212可包括信標構件213、操縱構件214、DNS查找客戶機215、DNS更新客戶機216 和診斷構件217。每個構件213-217可包括被存儲在存儲器212中的指令,所述指令可以由 CPU 211讀出和執行。而且,構件213-217還可以被存儲在非易失性存儲裝置中,以及按需要被檢索到存儲器212中,以便實施這裡描述的處理。
信標構件213通常可以操作來為客戶設備140和內容伺服器120和130提供「信標」,以便在網絡系統100上自定位。例如,信標構件213可以通過網絡系統100接收信標請求,和提供信標響應給發出請求的機器。客戶設備140和內容伺服器120和130可以通過以下方式進行自定位,即根據在發送它們的信標請求與接收信標響應之間的時間差,即往返行程時間或等待時間,而執行某些計算。
操縱構件214通常可以操作來操縱客戶設備140和內容伺服器120和130在網絡系統100上的位置。例如,操縱構件214可以使得客戶設備140自定位到網絡系統100內的被操縱的位置。通過這樣做,地標伺服器110可以使得客戶設備140表現為更靠近或更遠離特定的內容伺服器120,正如下面更詳細地討論的。
DNS查找客戶機215可以被地標伺服器110使用來為內容伺服器120和130查找 DNS條目,例如,IP位址。DNS更新客戶機216可以被地標伺服器110使用來更新用於地標伺服器110的DNS條目。診斷構件217可以被地標伺服器110使用來診斷在網絡系統100 上的某些狀況。例如,通過使用診斷構件217可以識別擁塞的或出故障的路由器。
圖2B舉例說明了內容伺服器120和130的示範性結構。內容伺服器120和130通常可包括與以上相對於地標伺服器110討論的類似的硬體構件。例如,內容伺服器120和 130可包括例如通過總線而被連接到存儲器222的CPU 221。存儲器222可包括CPU-可執行的構件 223、224、225、226 和 227。
Web服務構件223可以通過網絡系統100為客戶設備140提供web服務。例如, web服務構件223可以代表在內容伺服器120(1)和120(2)上的新聞服務「www. 123news. com」,以及可以代表在內容伺服器130上的搜尋引擎「www. abcsearch. com」。
自定位構件224可以為內容伺服器120和130執行處理以便在網絡系統100上自定位,這例如是通過計算它們的位置坐標而進行的。例如,自定位構件224可以通過網絡系統100而與在地標伺服器110的一個或多個上的信標構件213通信,並根據通信的往返行程等待時間而得出本地網絡坐標。自定位構件224還可以相對於其它內容伺服器來更新它的本地網絡坐標,例如,內容伺服器120(1)的自定位構件224可以根據與內容伺服器 120(2)或130通信的等待時間,更新它的本地坐標。
自定位構件224可以把涉及自定位的數據存儲在坐標表格225中。DNS更新客戶機226可以執行某些操作來在DNS伺服器150上填充用於內容伺服器120和130的DNS條目。例如,DNS更新客戶機226可以提供IP位址和網絡坐標給DNS伺服器150,然後DNS伺服器150可以通過各種DNS查找客戶機存儲DNS條目來用於以後的檢索。
圖2C舉例說明了客戶設備140的示範性結構。客戶設備140通常可包括與以上相對於地標伺服器110和內容伺服器120和130討論的類似的硬體構件。例如,客戶設備 140可包括例如通過總線被連接到存儲器242的CPU 241。存儲器242可包括CPU可執行的構件 243、244、245 和 246。
web瀏覽器243可以經由web服務構件223訪問從內容伺服器120和130可得到的web服務,並且把從內容伺服器得到的內容顯示給客戶設備140的用戶。例如,web瀏覽器243可以從內容伺服器120(1)或120(2)得到新聞網頁,和可以從內容伺服器130得到搜索門戶頁面。
自定位構件244可以執行與以上相對於內容伺服器120/130的自定位構件224所討論的類似的操作。同樣地,坐標表格245可以存儲與以上相對於坐標表格225所討論的類似的數據。DNS查找客戶機246可以執行與以上相對於地標伺服器110的DNS查找客戶機215所討論的類似的操作。
圖3A和3B表示了可以由客戶設備140上的自定位構件244維護的示範性坐標表格245。特別地,圖3A和3B表示了在兩個不同的時間點處被存儲在客戶設備140上的坐標表格245,正如下面更詳細地討論的。一般地說,圖3B表示了相對於圖3A所示的坐標表格 245的版本的、坐標表格245的更新的版本。
如圖3A和3B所示,坐標表格245可包括設備列301,它標識網絡系統100上的各種設備,例如,地標伺服器110和內容伺服器120和130。RTT列302可以標識從客戶設備 140觀察到的、對於與設備列301中標識的設備進行通信的、以毫秒計的往返行程等待時間。例如,對於客戶設備140而言,用於與地標伺服器110(2)進行通信的往返行程時間可以是28. 28毫秒。坐標列303可以為設備列301中的每個設備標識網絡坐標中的位置。應當指出,術語「本地」被使用來標識存儲著坐標表格245的設備。因此,由於圖3A和3B表示了在客戶設備140上的坐標表格245,所以為了清晰起見,在設備列301中使用了術語「本地」。雖然客戶設備140通常為每個設備保留網絡坐標直到它們被更新,但在RTT列302中的往返行程時間一旦被使用來計算本地坐標,就可以在存儲器中被刪除或被改寫。
圖4舉例說明了示範性方法400。正如下面討論的,方法400例如可以通過客戶設備140的自定位構件244確定在網絡坐標系統上客戶設備140的本地坐標而被實施。通過使用方法400,客戶設備140還可以訪問諸如與「www. xyzsearch. com」相關聯的在線搜尋引擎和與「www. 123news. com」相關聯的新聞服務那樣的web服務。為了討論起見,圖I所示的網絡坐標系統被假設為完全基於在各種機器之間的等待時間測量。使用諸如帶寬那樣的其它網絡性能度量來建立網絡坐標系統的實施例將在後面討論。
方法400在塊401開始,該塊牽涉到與地標伺服器通信。在本例的上下文中,客戶設備140可以與地標伺服器110中的一個或多個通信。客戶設備140可以通過網絡系統 100在一個或多個分組中將位置請求發送到例如地標伺服器110(2),(3)和(4)。地標伺服器110(2),(3)和⑷可以用信標響應來響應位置請求。
接著,塊402牽涉到識別網絡性能度量。在本例的上下文中,客戶設備140可以識別與位置請求和信標響應相關聯的網絡性能度量。例如,客戶設備140可以從每個地標伺服器確定從位置請求的發送到信標響應的接收的往返行程時間。客戶設備140還可以把這些值記錄在坐標表格245中,如圖3A所示。例如,對於地標伺服器110(2)的往返行程時間是28. 28毫秒,對於地標伺服器110(3)是63. 24毫秒,以及對於地標伺服器110 (4)是84. 84 毫秒。
接著,塊403牽涉到確定初始位置。在本例的上下文中,客戶設備140可以確定初始網絡位置,例如,定位在網絡系統100上的客戶設備140的網絡坐標組。例如,客戶設備 140可以確定初始的一組本地坐標(10,30),正如圖3A所示的。應當指出,客戶設備140不一定必須與所有的地標伺服器110通信,以標識這個初始的本地坐標組。
然而,在一些實施例中,客戶設備140優選地當定位在特定的坐標系統內時與附加的地標伺服器通信。在某種程度上,客戶設備140可以通過與附加的地標伺服器通信而減小收斂到坐標組上的時間量。地標伺服器的最佳數目可以取決於內容伺服器的數目、坐標維數、坐標空間的特性和諸如往返行程時間的變化性那樣的網絡狀況。例如,附加的地標伺服器可能是在具有附加坐標維數的實施例中想要的,以便給客戶設備140提供以在每個維上不同的位置處的信標。使用附加的地標伺服器還可以減小在利用特定地標伺服器的等待時間測量中的任何不精確性的影響。最佳化技術也可以被應用到速度收斂和減小測量誤差。
接著,塊404牽涉到與內容伺服器通信。在本例的上下文中,客戶設備140可以與內容伺服器130通信。例如,用戶可以在web瀏覽器243中輸入字符串「www. xyzsearch. com」。客戶設備140然後可以從DNS伺服器150得到用於內容伺服器130的IP位址,例如 IPl0客戶設備140然後可以發送請求到內容伺服器130,例如,包括搜索詞「新聞」。內容伺服器130可以用諸如用於「www. 123news. com」的域名那樣的用戶數據來響應,用戶隨後可以使用該用戶數據來訪問從內容伺服器120(1)和120(2)可得到的新聞服務。
接著,塊405牽涉到監視網絡性能度量。在本例的上下文中,客戶設備140可以監視關聯於與內容伺服器130的通信的某些網絡性能度量。例如,客戶設備140可以確定用於與內容伺服器130進行通信的往返行程時間(例如,等待時間)是20毫秒。如圖3B所示, 客戶設備140可以把這個值加到坐標表格245。
接著,塊406牽涉到確定更新的位置。在本例的上下文中,客戶設備140可以根據對於與內容伺服器130進行通信的等待時間,而更新它的位置。例如,客戶設備140可以確定根據在(30,30)處的內容伺服器130的位置和20毫秒的往返行程時間,客戶設備140 在網絡坐標系統中離開內容伺服器130 10個單位。而且,因為內容伺服器130和客戶設備140在y方向上具有完全相同的坐標(例如,30),所以客戶設備140的所有移動可以是在X方向上。因此,客戶設備140可以確定它的初始X坐標(10)需要被更新到(20),例如, 離開內容伺服器130 10個單位。如圖3B所示,客戶設備140然後可以把它的更新的位置 (20,30)記錄在坐標表格245。應當指出,圖I通過使用在位置(20,30)處劃上陰影的圖標而舉例說明了對於客戶設備140的更新的位置。
接著,塊407牽涉到根據更新的位置選擇內容伺服器。在本例的上下文中,客戶設備140可以通過使用更新的網絡坐標而選擇內容伺服器用於訪問「www. 123news. com」。例如,客戶設備140可以從DNS伺服器150請求「www. 123news. com」的DNS解析。DNS伺服器 150可以用分別對於內容伺服器120(1)和120(2)的IP位址和網絡坐標進行響應。例如, DNS伺服器150可以提供對於內容伺服器120(1)的IP位址IP2和網絡坐標(0,30),以及對於內容伺服器120(2)的IP位址IP3和網絡坐標(30,30)。
客戶設備140然後可以分別根據它的更新的位置和內容伺服器120(1)與120⑵ 的位置,選擇內容伺服器用於訪問新聞服務。例如,客戶設備140可以選擇具有最短的網絡距離的內容伺服器。因此,因為內容伺服器120(2)位於離開5個單位的(25,30)處,而內容伺服器120(1)位於離開20個單位的(0,30)處,所以客戶設備140可以選擇內容伺服器 120(2)。
應當指出,在以上討論的例子中,客戶設備140在更新它的位置之前,根據與內容伺服器130的通信,會選擇內容伺服器120(1)。這是因為在(10,30)處的客戶設備140的初始位置,相比於內容伺服器120(2)(例如,15個網絡單位),更接近於內容伺服器120(1) (例如,10個網絡單位)。
而且,應當指出,客戶設備140的更新的網絡位置可以反映客戶設備140的連接性的各種改變。例如,如果客戶設備140是諸如蜂窩電話、PDA、或膝上型計算機那樣的行動裝置,則可以至少部分地通過把客戶設備140移到新的物理位置,而造成客戶設備140在網絡坐標系統內的移動。然而,即使客戶設備140是靜止的,例如臺式計算機或伺服器,客戶設備140仍舊可能在網絡坐標系統內移動。這種移動可能是由在網絡系統100上可得到的連接性的改變而造成的。
作為例子,被客戶設備140使用來與位於「左面」或在負X方向上的設備通信的路由器可能出故障或變為擁塞的。這可以造成對於客戶設備140在負X方向上的通信的增加的等待時間,甚至是在沒有客戶設備140的任何物理移動的情況下。因此,鑑於對於與內容伺服器120(1)進行通信的增加的等待時間的可能性,對於客戶設備140而言,訪問內容伺服器120(2)處而不是內容伺服器120(1)處的「www. 123news. com」可以是有利的。
還應當指出,在以上的例子中,客戶設備140成功地能夠更新它的位置,而無需使用專用的探測業務量來發現它的更新的位置。更確切地說,網絡業務量被使用來從內容伺服器130得到用戶數據,諸如網頁。涉及這個現有的應用業務量的網絡性能度量被使用來更新對於客戶設備140的位置。這是有利的,因為專用的探測業務量可以招致相當大的開銷花費。例如,專用網絡探測可以牽涉到在客戶設備140和內容伺服器120(1)、120⑵和 130中的一個或多個內容伺服器上的處理器和存儲器利用。而且,專用網絡探測將導致網絡系統100上專用於載送探測通信的業務量。與此相反,客戶設備140能夠利用與訪問搜尋引擎「www. abcsearch. com」相關聯的處理器和存儲器利用以及網絡業務量來更新它的位置。
算法考慮在以上的討論中,作出某些簡化假設,以便於討論某些實施例。然而,這裡公開的實施例是與在分布式網絡坐標系統中使用的各種算法兼容的,正如下面討論的。
例如,網絡坐標系統的單位在上面是用以毫秒計的等待時間定義的,例如,I個單位等於I毫秒的單向行程或2毫秒的往返行程時間。然而,在一些實施例中,例如通過使用 TDOA技術,可以使用等待時間的相對差值,而不是絕對時間值來確定網絡坐標。
作為例子,考慮設備(未示出)位於坐標(20,20)以及與每個地標伺服器110通信以建立初始位置。這樣的設備距離每個地標伺服器是等距的,大約為網絡坐標系統上的 28. 28單位。因此,通過使用I毫秒到I個網絡坐標單位的固定的映射,設備僅僅在用於與每個地標伺服器110通信的往返行程時間大約為28. 28X2=56. 56毫秒的情況下才位於 (20,20)。
然而,方法400也可以通過使用到達時間差(TDOA)方法而被實施。通過使用這樣的方法,設備可以改而在假定設備與每個地標伺服器之間的等待時間等同的情況下位於 (20,20),而不管對於每個地標伺服器的、以秒計的實際的等待時間。因此,通過使用TDOA 方法,在用於與地標伺服器通信的等待時間之間沒有任何差別便指示了 設備是距離每個地標伺服器等距的。同樣地,諸如以上一特別地相對於步驟405和406-討論的那些的位置更新,也可以通過使用TDOA技術,例如與內容伺服器130的通信而被實施。
而且,這裡公開的實施例可以與諸如維瓦爾第的算法那樣的分布式坐標算法兼容。在這樣的實施例中,客戶設備140可以不斷地調節它的本地坐標,以使得相對於到網絡系統100上其它設備的測量的往返行程時間的誤差最小化。在另外的實施例中,緯度和經度或其它地理位置可被使用來自舉(bootstrap)對於客戶設備140的初始的網絡坐標組。 在這樣的實施例中,測量的往返行程時間可被使用來改進初始的該組坐標,正如以上討論的。替換地,初始位置可以如以上討論的那樣在方法400的塊403,即,相對於地標伺服器 110被確定。使用對於地標伺服器110的固定的或全局的坐標,可以加速這樣的算法的收斂時間。
另外,應當指出,分布式坐標算法可以使用一個以上的往返行程測量來計算坐標組。例如,方法400的塊401和404可包括分別與地標伺服器110和內容伺服器130的多個通信。塊402和405可包括往返行程測量的統計處理,諸如計算在客戶設備140與地標伺服器110和內容伺服器130之間的往返行程時間的指數移動平均。在這樣的實施例中, 可以根據平均等待時間,而不是根據單次測量,來計算坐標。在另外的實施例中,最小的或中值的往返行程時間可以結合或替代平均時間被使用。
而且,分布式坐標算法可以引入對於每個往返行程測量的可信度和/或誤差的概念。應當指出,在方法400的塊406,客戶設備140根據與具有20暈秒的往返行程時間的內容伺服器130的單次通信,在網絡坐標系統中移動全部的10個單位。一般地說,可能有用的是例如取決於與對於內容伺服器130的往返行程時間和/或坐標相關聯的可信度值或分數,而使位置更新小於所述全部的10個單位。
另外,客戶設備140可以根據與地標伺服器110和內容伺服器120/130的另外的通信,不斷更新它在網絡系統100內的位置。例如,客戶設備140可以在接收到來自內容伺服器120(2)的新聞網頁之後更新它的坐標。內容伺服器120/130還可以以與客戶設備140同樣的方式不斷更新它們的坐標。
還應當指出,本發明的實施例可以無需使用地標伺服器110而被實施。許多分布式坐標算法不需要使用具有固定位置的設備。不過,地標伺服器110可以服務於幾個有用的目的。首先,地標伺服器110可以提供一致的參考點,這對於其它設備在網絡系統100上的自定位是有用的。而且,倘若有足夠數目的地標伺服器110是可得到的,則可以減小到坐標組的收斂時間。
得到坐標正如以上討論的,客戶設備140可以使用地標伺服器110和內容伺服器130的坐標來更新它的本地坐標。客戶設備140可以通過使用如下面討論的不同的技術而得到對於地標伺服器110和內容伺服器130的坐標。
在一些實施例中,對於地標伺服器110的坐標可以已知是永久的或對於某個或許預定的時間段是固定的。例如,地標伺服器110的坐標可以獨立於涉及到地標伺服器的連接性的網絡性能和度量的改變,而對於預定的時間段保持為恆定的值。因此,可能可行的是讓客戶設備140用對於每個地標伺服器的已知網絡坐標預先配置。在其它實施例中,客戶設備140可以通過用信標請求來請求坐標而得到對於每個地標伺服器的坐標。因為對於某個時間段,坐標可以保持為恆定,所以客戶設備140不一定必須不斷地更新對於每個地標伺服器的網絡坐標。
然而,正如也討論的,可能希望周期地更新地標伺服器110的坐標。例如,如果在網絡系統100上的連接鏈路在網絡坐標系統的給定區域內被去除或被限制,則可以預期 由於這種對於網絡系統100的物理改變的結果,一個或多個地標伺服器可能經歷增加的等待時間。在這樣的環境下,可能希望給受到影響的地標伺服器賦予新的坐標,以便把它們 「移動」遠離客戶設備和內容伺服器,這樣,所述客戶設備和內容伺服器將不再能夠使用被去除的連接鏈路。同樣地,如果通信鏈路被添加或它的容量被擴展,則可能希望給受到影響的地標伺服器賦予新的坐標,以便把它們「移動」得更靠近客戶設備和內容伺服器,這樣,所述客戶設備和內容伺服器將能夠利用添加/擴展的鏈路。在再另外的實施例中,地標伺服器110可以通過使用諸如方法400那樣的技術而周期地自定位。在這樣的實施例中,地標伺服器110可以配備有類似於自定位構件224和244那樣的自定位構件。
在其中地標伺服器110接收更新的坐標的情形下,可以使用幾種方法來把坐標提供給內容伺服器120/130和客戶設備140。例如,當新的坐標被賦予時,地標伺服器110可以把新的坐標「推送」到網絡系統100上的每個設備。替換地,地標伺服器110可以等待來自網絡系統100上的設備的下一個信標請求,並用新賦予的坐標進行響應。
而且,地標伺服器110還可以與在DNS伺服器150上的域名和對應的DNS條目相關聯。例如,在地標伺服器110上的DNS更新客戶機216可以把對於地標伺服器的坐標的拷貝保留在DNS伺服器150上的文本(txt)記錄中。DNS更新客戶機216還可以按想要的那樣更新txt記錄,以便反映新賦予的坐標。客戶設備140和內容伺服器120/130可被配置成除了地址記錄以外還請求DNS txt記錄,以便得到對於地標伺服器的坐標。客戶設備 140可以使用DNS查找客戶機246用於這些目的。在一些實施例中,內容伺服器120/130也可以被配置以類似於DNS查找客戶機246那樣的DNS查找客戶機。
內容伺服器120/130可以使用如以上討論的類似的技術來提供它們的各自的坐標給客戶設備140。例如,內容伺服器120/130可以通過使用類似於以上相對於方法400討論的那樣的處理,不斷地更新它們的坐標,並且保留/更新具有其當前的坐標的DNS txt記錄。在這樣的實施例中,客戶設備140可被配置成當從DNS伺服器150請求域名的解析時請求DNS txt記錄以及地址記錄。
在另外的實施例中,內容伺服器120/130可以把它們的坐標直接提供到客戶設備 140。例如,客戶設備140可以得到具有用於內容伺服器120(1)的IP位址的DNS地址記錄。 在接收到來自客戶設備140的初始通信後,內容伺服器120(1)可以提供它自己的坐標,以及其它內容伺服器,諸如內容伺服器120 (2)的坐標給客戶設備140。客戶設備140可以把它自己的坐標與從內容伺服器120 (I)接收的坐標進行比較,以確定是從內容伺服器120 (I)還是從 120 (2)訪問 「www. 123news. com,,。
在一些實施例中,內容伺服器120和130可以在網頁上提供它們的坐標給客戶設備140。例如,對於「www. 123news. com」的主頁可包括標記語言代碼,諸如超文本標記語言 (HTML)或擴展標記語言(XML)代碼。內容伺服器120(1)和120(2)可以在標記語言代碼中包括它們的坐標。因此,每次在客戶設備140處刷新網頁時,客戶設備140將得到對應的更新的坐標。
在另外的實施例中,網頁可包括腳本代碼,諸如JavaScript 或VBScript 。腳本代碼可直接包括坐標,或可以是客戶設備140可執行的,以便從對應的內容伺服器檢索坐標。在再另外的實施例中,來自單個內容伺服器的標記語言或腳本代碼可包括對於多個內容伺服器的坐標。因此,如果客戶設備140從內容伺服器120(1)檢索網頁,則該網頁可包括對於內容伺服器120(1)和120(2)兩者的坐標。在這樣的實施例中,內容伺服器120(1) 和120(2)可以周期地互相傳達它們更新的坐標。
網絡性能度量正如以上討論的,等待時間可被用作為用於定義網絡坐標系統上的距離的度量。對於給定設備的本地坐標可以根據等待時間的一次或移動平均而被確定。在一些實施例中,地標伺服器110、內容伺服器120/130和客戶設備140可被配置成實施傳輸控制協議擴展統計 (「TCP ESTATS」)。一般地說,TCP ESTATS可以基於逐個連接地提供擁塞、帶寬、等待時間和其它網絡性能度量。例如,TCP ESTATS直接指示往返行程時間,並且指示分組丟失以及為給定連接所傳送的數據量。因此,帶寬和擁塞測量可以從TCP ESTATS推定。
而且,TCP ESTATS可以在許多計算設備上被預先配置,且可以作用來在無論何時被配置以TCP ESTATS的設備從事網絡通信時監視TCP業務量。因此,例如,在客戶設備140 與內容伺服器130之間的通信可以使用在網絡系統100上的TCP/IP(網際網路協議)連接。 對於通信的網絡性能度量可以反映在用於TCP/IP連接的TCP ESTATS信息中。因此,例如, 方法400的塊402和405可以通過處理分別用於與地標伺服器110和內容伺服器130的連接的TCP ESTATS數據而被實施。
等待時間不是適用於定義網絡系統100的網絡坐標系統的唯一的度量。在一些實施例中,帶寬可被使用為替換的距離量度(measure)。一般地說,互相之間具有可得到的高帶寬的兩個設備,比起具有可得到的較低帶寬的兩個設備,可以在網絡坐標系統上定位得更靠近。然而,應當指出,帶寬測量通常可能牽涉到比等待時間測量顯著更多的用於測量的網絡業務量。這是因為單個分組和響應可能適用於確定在兩個設備之間的等待時間,而帶寬測量可能牽涉到顯著大於一個分組和響應的傳送。
而且,複合的網絡性能度量也可以被使用來定義網絡坐標系統。作為例子,網絡距離可以根據在兩個設備之間的吞吐量,或根據等待時間與帶寬的和值或乘積,而被定義。在再另外的實施例中,所述和值和/或乘積可被加權,以得到想要的用戶體驗。一般地說,帶寬和等待時間測量可以通過使用網絡統計而得到,例如通過使用TCP ESTATS得到的網絡統計。
作為例子,在其中用戶以相對較少的伺服器交互而訪問大的數據文件的實施例中,帶寬可以相對較重地被加權。同樣地,在高度交互的應用中,帶寬可以不予考慮,或相對較輕地加權。這樣的加權機制例如可以通過將加權因子乘以在任何兩個設備之間的測量的等待時間和/或帶寬而被實施。
後臺位置更新在以上的方法400的討論中,客戶設備140響應於對於搜索新聞服務的用戶請求,訪問內容伺服器130處的搜尋引擎。與請求相關聯的通信被使用來更新客戶設備140的本地坐標。因此,在網絡系統100上請求數據的用戶的行動被利用來更新客戶設備140的位置,而不招致在網絡系統100上附加的探測業務量的代價。
然而,不是來自客戶設備140的所有通信都必然地響應於用戶輸入。而是,在一些情形下,由web瀏覽器243進行的後臺處理可被使用來通過網絡系統100得到用戶數據。例如,web瀏覽器243可以周期地訪問網絡系統100上的時間伺服器(未示出),例如以便更新與web瀏覽器243相關聯的時鐘或系統時鐘。
在一些實施例中,時間伺服器還可以具有它自己的網絡坐標組。因此,客戶設備 140可以通過使用後臺通信來更新它的位置而實施方法400。作為另一個例子,在web瀏覽器243中用戶條目的伺服器一側的自動完成也可以被使用來更新位置坐標,例如當自動完成伺服器具有相關聯的網絡坐標組時。還應當指出,內容伺服器120和130還可以使用對於用戶數據(例如,web內容、時間數據、自動完成數據、等等)的前臺和/或後臺請求來更新它們在坐標系統內的位置。
第二種場景在一些實施例中,客戶設備140可以具有多種訪問網絡系統100的方式。例如,客戶設備140可能能夠通過使用有線接口,例如電纜數據機、DSL、乙太網等等,而連接到網絡系統100。客戶設備140還可能能夠通過使用諸如Wi-Fi或3G接口那樣的無線接口而連接到網絡系統100。有時,客戶設備140可以同時通過兩種接口被連接到網絡系統100。在其它時間,客戶設備140可以通過使用兩種接口中的僅僅一種接口而被連接到網絡系統100。
圖5舉例說明了如以上相對於圖I討論的網絡系統100。然而,在圖5上,客戶設備140被圖解為處在坐標系統內的幾個不同的位置。當使用有線接口連接到網絡系統100 時,客戶設備140可以確定它自己的坐標是(10,30)。然而,當使用無線接口連接到網絡系統100時,客戶設備140可以初始地確定它的坐標是(40,30),並隨後更新對於無線接口的坐標為(35,30)。然而,應當指出,圖I的前面的討論不限於有線或無線接口,以及相對於圖 I討論的實施例可以用有線或無線接口被實施。
對於上下文,考慮諸如客戶設備140那樣的單個設備為什麼可能對於不同接口具有不同的網絡坐標可以是有用的。雖然客戶設備140在一個時間僅僅可以處在一個地理位14置,但到網絡系統100上各種設備的等待時間對於不同的網絡接口可以是非常不同的。例如,客戶設備140可以使用到由電纜ISP操作的伺服器的有線接口,例如,電纜數據機。 同時,客戶設備140可以使用無線接口,例如3G,來連接到由它們的蜂窩服務提供者操作的伺服器。雖然客戶設備140對於兩個接口是在同一個物理位置,但與網絡系統100的通信在使用有線接口時被通過電纜ISP伺服器來路由,而在使用無線接口時被通過蜂窩提供者伺服器路由。通過這兩個伺服器到網絡系統100上的各種設備的等待時間可以是非常不同的,因為兩個伺服器可以是處在不同的物理位置。因此,有可能客戶設備140同時具有對於每個接口的兩個不同的網絡坐標組。為了得到對於各個接口的網絡坐標,客戶設備140可以實施諸如以上相對於方法400討論的那些的技術來識別對於每個接口的它的本地坐標。
在某些情形下,對於客戶設備140,可能希望通過使用一個接口而不是另一個接口來訪問特定的web服務。取決於對於每個接口的各自的網絡坐標,客戶設備140當使用特定的接口時可以更接近於特定的web瀏覽器。作為例子,客戶設備140可能希望在網絡系統100上從內容伺服器130訪問搜尋引擎「www. abcsearch. com」。如果客戶設備140具有對於有線接口的網絡坐標,這些網絡坐標比對於無線接口的坐標更接近於內容伺服器130, 則客戶設備140可以使用有線接口,而不是無線接口,來與內容伺服器130通信。一般地, 客戶設備140可以從幾個網絡接口中選擇使用具有較低的等待時間的接口,以便提供更好的用戶體驗。
圖6舉例說明了適用於例如由客戶設備140上的自定位構件244實施的示範性方法 600。
塊601牽涉到識別對於第一網絡接口和第二網絡接口的、在網絡坐標系統中的位置。在本例的上下文中,客戶設備140可以通過使用以上相對於方法400討論的那些的技術,而識別對於第一有線接口的、在網絡系統100內的它的本地坐標。同樣地,客戶設備140 也可以識別對於第二無線接口的、在網絡系統100內的它的本地坐標。如圖7所示,客戶設備140可對於每個接口在坐標表格245中包括分開的RTT測量和本地坐標。例如,圖7舉例說明了客戶設備140確定對於有線接口的它的本地坐標是(10,30),以及對於無線接口是(40,30)。
應當指出,客戶設備140當確定它的本地坐標時不一定必須在兩個接口上與同一組設備通信。例如,客戶設備140可以與地標伺服器110(2),(3)和⑷通信,以得到對於有線接口的它的本地坐標,並且改而與地標伺服器110(1),(3)和(4)通信以得到對於無線接口的它的本地坐標。同樣地,客戶設備140可以通過使用每個網絡接口與不同的設備通信而更新坐標。
接著,塊602牽涉到接收對於訪問服務的請求。在本例的上下文中,客戶設備140 的用戶可以在web瀏覽器243中輸入請求以訪問諸如web服務「www. abcsearch. com」那樣的網絡服務。這時,客戶設備140可以接著識別與「www. abcsearch. com」相關聯的一個或多個IP位址,這例如是通過從DNS伺服器150得到它們來進行的。例如,客戶設備140可以得到對於內容伺服器130的IP位址和網絡坐標,例如,IPl和(30,30)。
接著,塊603牽涉到從第一和第二網絡接口進行選擇。在本例的上下文中,客戶設備140可以根據對於各個網絡接口的網絡坐標,從有線網絡接口或無線網絡接口進行選擇,以便訪問「WWW. abcsearch. com」。例如,客戶設備140可以選擇具有離內容伺服器130的最接近網絡坐標的接口。應當指出,當使用無線接口時,客戶設備140是處在(40,30), 即,沿正X方向離開(30,30)處的內容伺服器130 10個單位。然而,當使用有線接口時,客戶設備140是處在(10,30),它是沿負X方向離開(30,30)處的內容伺服器130 20個單位。 因此,客戶設備140可以選擇無線接口用於訪問「www. abcsearch. com」,因為無線接口有離對應內容伺服器130的較小網絡距離。
接著,塊604牽涉到存儲對於所選擇的網絡的更新的坐標。在本例的上下文中,客戶設備140例如根據與內容伺服器130的通信,可以更新對於無線接口的它的本地坐標。例如,如果在內容伺服器130與客戶設備140之間存在低的等待時間條件,則客戶設備140可以更新它的位置,以移動得更靠近內容伺服器130,例如,大約為(35,30),正如圖5上褪色的圖標顯示的。應當指出,在一些情形下,客戶設備140可以確定使用無線接口比起使用有線接口,它的更新的坐標把客戶設備140定位為更加遠離內容伺服器130。在這樣的情形下,客戶設備140可以開始使用有線接口訪問「www. abcsearch. com」。
接著,塊605可以牽涉到在將來的某個時間重新啟動設備。在本例的上下文中,客戶設備140可以重新啟動。為了本例的目的,重新啟動可包括進入休眠模式、電源完全關斷、或僅僅斷開與一個或這兩個網絡接口的連接。客戶設備140還可以將對於每個接口的它的當前的網絡坐標記入日誌(log),供將來參考。
接著,塊606牽涉到使用更新的坐標作為初始值。在本例的上下文中,客戶設備 140可以使用對於每個網絡接口的最近更新的坐標作為用於更新它的位置的初始值,例如使用方法400的一個或多個步驟。作為例子,客戶設備140可以重新連接到無線接口,並使用(35,30)的更新的坐標作為對於無線接口的它的初始坐標。在這樣的實施例中,客戶設備140可能不需要執行方法400的塊401-403,即,通過與地標伺服器110通信而確定它的初始位置。替代地,客戶設備140可以通過使用記入日誌的坐標,立即開始在網絡系統100 上與內容伺服器120/130通信。
正如以上相對於圖I討論的,網絡坐標可以在設備特定的基礎上,例如,對於網絡系統100中的每個設備而被計算。另外,正如相對於圖5討論的,在單個設備可以對於不同的網絡接口具有不同坐標的場合下,改進是可能的。在再另外的改進中,每個網絡接口可以具有一個以上的相關聯網絡坐標組,正如下面更詳細地討論的。
一般地說,客戶設備140的每個網絡接口可以通過接入網絡在網絡系統100上通信,所述接入網絡連接客戶設備140到網際網路服務提供者。在以上討論的例子中,客戶設備 140可以將第一接入網絡用於有線連接以連接到電纜ISP,而將第二接入網絡用於到它們的蜂窩服務提供者的無線3G連接。然而,在一些情形下,客戶設備140可以使用同一個接口連接到多個接入網絡。
例如,考慮在家中的用戶,他連接到無線路由器,以訪問它們的電纜網際網路服務。 用戶在它們的電纜網際網路服務方面可能有某些困難,並可能決定使用替換的無線連接,諸如 3G 可攜式連接或 WiMax (Worldwide Interoperability for Microwave Access (全球微波接入互操作性))連接。因此,用戶從用於它們的電纜ISP的接入網絡切換到用於替換的無線連接的不同的接入網絡,而同時繼續使用無線接口。
在這樣的實施例中,客戶設備140可以在接入網絡的基礎上計算和更新網絡坐標,例如,對於用戶的電纜ISP的第一坐標組和對於3G或WiMax連接的第二坐標組。客戶設備140可以將對於每個相應的接入網絡的坐標記入日誌,供以後使用。因此,如果用戶從 3G或WiMax連接切換回它們自己的無線路由器和ISP,則客戶設備140可以使用以前記入日誌的、用於它們自己的ISP的坐標作為初始坐標。與通過同地標伺服器110通信而重新初始化坐標相比,這可以加速對於坐標的收斂時間。
以上公開的技術當用戶在地理位置之間移動時也可以是有用的。當用戶到達新的目的地,例如咖啡店時,用戶可以訪問由咖啡店提供的Wi-Fi網際網路服務。咖啡店可以使用與用戶的家庭ISP不同的接入網絡。因此,用戶第一次連接到咖啡店Wi-Fi服務時,客戶設備140可以全部地實施方法400,例如確定初始坐標組,然後當用戶瀏覽到各個不同的網址時,迭代地更新坐標。客戶設備140也可以將對於咖啡店Wi-Fi網絡的坐標記入日誌。在以後訪問咖啡店時,客戶設備140可以訪問對於咖啡店的最近的記入日誌的坐標組,並使用這些作為初始坐標來用於訪問。
第三種場景在某些情形下,可能希望操縱客戶設備140和/或內容伺服器120/130的網絡坐標, 以得到某些結果。特別地,給定設備的網絡坐標可被基於網絡性能而操縱成使得設備表現為處在不同於「實際」位置的、網絡系統100上的位置。作為例子,內容伺服器120(2)可被配置成使得它自己表現為處在與通常通過等待時間的實際測量而得到的位置不同的位置。 這樣的處理可被實施,以便使得客戶設備140 (和在網絡系統100上的其它客戶設備)訪問在不同的內容伺服器處,例如在內容伺服器120(1)處的web服務。因此,通過操縱它自己的位置,內容伺服器120(2)可以故意重定向客戶設備140到內容伺服器120(1),雖然內容伺服器120(2)實際上是在網絡坐標系統中最接近的內容伺服器。這個方法例如對於為了負荷平衡的目的而減小內容伺服器120(2)上的處理負荷,使內容伺服器120(2)停止使用 (decommission),或是在不同的(或許更新的或最佳化的)內容從內容伺服器120 (I)而不是內容伺服器120(2)可得到的場合下,可以是有用的。
在內容伺服器120 (2)上的操縱構件227可以實施某種處理來達到內容伺服器 120(2)的坐標操縱。圖8舉例說明了適用於實施這樣的技術的示範性方法800。下面的討論是參照如圖I所示的各種設備的位置進行的。
塊801牽涉到接收來自客戶的請求。在本例的上下文中,內容伺服器120(2)可以接收對於「WWW. 123news. com」的請求。例如,所述請求可以由客戶設備140發送,例如作為對網頁的HTTP請求。
接著,塊802牽涉到確定在網絡坐標系統內的移動。在本例的上下文中,內容伺服器120(2)可以確定內容伺服器120 (2)遠離客戶設備140的移動。例如,內容伺服器120 (2) 可能打算通過操縱在網絡系統100上它自己的位置以表現為更加遠離客戶設備140,而使它自己慢慢地「停止使用」。一般地說,內容伺服器120(2)可以通過在網絡坐標系統內的任何維度中移動它自己而做到這一點。這可以具有減小內容伺服器120(2)上的工作負荷,直至最終沒有另外的請求被內容伺服器120(2)接收到的效果。在這一點,可以使內容伺服器 120(2)變為完全地離線,而不用中斷「www. 123news. com」的可用性。
對於本二維例子來說,內容伺服器120(2)將更改它的位置的X分量,正如下面討論的。在三維或更多維坐標系統的情形下,也可以有高度或z分量。在一些實施例中,在網絡系統100上設備的預設高度或z分量可以是O。因此,內容伺服器120(2)可以僅僅增加它的高度分量的絕對值,以使它自己移動遠離網絡系統100上的各種設備。甚至在網絡系統100上的實際等待時間條件通常不會導致內容伺服器120(2)具有增加的高度分量的場合下也可以是這種情形。
接著,塊803牽涉到確定操縱數據。在本例的上下文中,內容伺服器120⑵可以確定操縱數據,例如,被操縱的坐標,其反映從(25,30)到(40,30)的移動。例如,被操縱的坐標可被包括在DNS txt記錄。替換地,被操縱的坐標可被包括在用於與「www. 123news. com」 相關聯的網頁的修改的標記語言或腳本代碼中。正如討論的,在一些實施例中,腳本代碼並不直接包括坐標,而是可由客戶設備140執行來檢索坐標。在這樣的實施例中,操縱數據可以是由內容伺服器120(2)本地存儲的更新的坐標的拷貝,用於當腳本代碼被客戶設備140 執行時的以後的檢索。
接著,塊804牽涉到操縱位置。在本例的上下文中,內容伺服器120(2)可以把操縱數據,例如,操縱的坐標,提供到遠程設備,諸如客戶設備140。內容伺服器120(2)可以直接或間接地這樣做。在其中坐標被包括在標記語言或腳本代碼的實施例中,內容伺服器 120(2)可以把坐標連同對於「www. 123news. com」的網頁一起發送到客戶設備140。在其中坐標通過客戶機執行的腳本代碼而被檢索的實施例中,內容伺服器120(2)可以在與網頁分開的通信中提供坐標。在其中坐標經由DNS txt記錄被分發的實施例中,內容伺服器 120(2)可以通過把具有被操縱的坐標的DNS txt記錄上載到DNS伺服器150而間接地提供它的坐標到客戶設備140。
在一些實施例中,慢慢地移動內容伺服器120(2)遠離客戶設備140是有用的。在這樣的實施例中,內容伺服器120(2)可以迭代地實施方法800的一個或多個塊。例如,內容伺服器120(2)可以每天操縱它的位置I個單位,慢慢地移動遠離一個或多個客戶設備。 在幾天或幾星期的時間段後,這可以導致穩定地減小對於內容伺服器120(2)的工作負荷, 因為較少的客戶設備將選擇內容伺服器120(2)來訪問「www. 123news. com」。最終,內容伺服器120(2)可被移動得足夠遠,這樣,網絡系統100上的每個客戶設備比起120(2)更接近於另一個內容伺服器,因此內容伺服器120(2)將被完全地停止使用。
操縱客戶機坐標在某些情形下,可能希望操縱客戶設備140的位置,代替或附加於操縱內容伺服器的位置。例如,地標伺服器110可以使用操縱構件214來指引客戶設備140遠離內容伺服器 120(2)和/或趨向內容伺服器120 (I)。在這樣的實施例中,地標伺服器110以幾種不同的方式操縱客戶設備140的坐標,正如下面討論的。
地標伺服器110操縱客戶設備140的位置的一個方法是故意延遲信標響應。例如, 應當指出,如果地標伺服器110(3)和⑷在方法400的塊401延遲它們的對客戶設備140 的響應,則這將具有使客戶設備140沿負X方向移動的效果。為了做到這一點,地標伺服器 110(3)和(4)可以計算足以將客戶設備140移動到被操縱的位置的附加等待時間段。在這樣的實施例中,附加等待時間段可以是在方法800的塊803確定的操縱數據。應當指出,客戶設備140不一定必須知道它的位置正在被地標伺服器110操縱。
然而,因為在接收信標響應中的延遲,故意地引入等待時間可能具有減慢對於客戶設備140的收斂時間的後果。在另外的實施例中,地標伺服器110可被配置成在信標響應中提供值,客戶設備140可以使用這些值來確定它的位置,正如在下面更詳細地討論的。這樣的實現可以允許地標伺服器110立即對信標請求進行響應,而同時仍舊操縱客戶設備 140的位置。
例如,地標伺服器110可以在它們的信標響應中包括可由客戶設備140施加的某些縮放因子。例如,地標伺服器110(3)和110(4)可以在信標響應中包括值「2」,指示客戶設備140可以把信標響應的測量的等待時間乘以因數2。地標伺服器110(1)和110(2)可以同樣地在信標響應中提供值「1」,指示客戶設備140可以使用實際的等待時間值(例如乘以I)來計算它的位置。在這種情形下,縮放因子會用作為在方法800的塊803中所確定的操縱數據。這樣地使用縮放因子,地標伺服器110便可以對信標請求立即響應,而同時仍舊移動客戶設備140趨向內容伺服器120(1)和遠離內容伺服器120(2)。
在其它實施例中,地標伺服器110可以直接在信標響應中提供等待時間(和/或帶寬)值。作為例子,地標伺服器110可包括數值,指示客戶設備可以使用該數值,例如,以毫秒計的等待時間測量,作為要代替實際測量的等待時間來使用的操縱數據。因此,地標伺服器110(3)和110 (4)可以在它們的信標響應中發送相對較大的等待時間值,以及地標伺服器(I)和(2)可以使用相對較小的值。這樣的實現也可以具有沿想要的方向移動客戶設備 140的效果。應當指出,在其中帶寬被操縱的實施例中,較小的帶寬值將具有移動客戶設備 140遠離特定的地標伺服器的效果。當操縱實際測量的等待時間和/或帶寬時,被發送到客戶設備140的等待時間和/或帶寬值可以如以上討論的那樣被縮放。
在再另外的實施例中,地標伺服器110可以改而直接地操縱客戶設備140的坐標。 作為例子,在信標響應中,地標伺服器110可以包括用於客戶設備140的坐標組以用作為它的本地坐標。在一些情形下,信標響應可包括重寫(override)標誌,指示客戶設備140應當重寫它自己的等待時間測量,並使用被包括在信標響應中的坐標。坐標和重寫標誌可被包括在各種類型的通信中,包括作為標記語言或腳本代碼。
在再另外的實施例中,內容伺服器120(2)可以執行類似於以上相對於地標伺服器110討論的那樣的處理,以操縱用於客戶設備140的坐標。例如,內容伺服器120(2)可以故意地延遲響應客戶設備140,以使得客戶設備140將更新它的位置來移動遠離內容伺服器120(2)。替換地,內容伺服器120(2)可以把前述的等待時間縮放因子或操縱的坐標發送到客戶設備140。
在再另外的實施例中,內容伺服器120(1)可以例如通過代表內容伺服器120(2) 提供等待時間因子或操縱的坐標,而操縱用於內容伺服器120(2)的坐標。一般地說,因為客戶設備140可以使用與內容伺服器120/130的通信來確定它自己的坐標,所以以上相對於地標伺服器110描述的技術也可以應用於與內容伺服器120/130進行的通信。
而且,地標伺服器110和內容伺服器120/130不需要直接提供操縱數據到客戶設備140。而是,地標伺服器110例如可以提供操縱數據到內容伺服器120/130,這樣使得內容伺服器120/130把它們自己的坐標、等待時間值等等報告給客戶設備140,以便實施想要的操縱。同樣地,地標伺服器110和內容伺服器120/130可以用操縱數據來填充DNS伺服器150上的一個或多個txt記錄。在這樣的實施例中,當用DNS伺服器150解析域名時,客戶設備140可以得到操縱數據。
正如以上討論的,操縱網絡系統100內的設備的位置對於使一個或多個伺服器停止使用可能是有用的,或者在減小伺服器上的處理或網絡負荷可能有用的其它時間可能是有用的。而且,通過使用與以上討論的類似的技術,可以達到負荷平衡。例如,地標伺服器和/或內容伺服器120/130可被配置成操縱網絡坐標,以使得經歷較低負荷的內容伺服器被移動趨向具有高度密集的客戶設備的位置,以及經歷較高負荷的內容伺服器被移動遠離這些區域。替換地,客戶設備可被移動趨向具有相對較低負荷的伺服器,和/或遠離具有相對較高負荷的伺服器。
客戶和/或內容伺服器坐標的操縱並不限於使伺服器停止使用或負荷平衡的目的。例如,可以在其中對於重定向客戶機到不同的內容伺服器是有用的各種其它環境下操縱坐標。例如,一個內容伺服器120(1)可包括「www. 123news. com」網址的特定版本,例如 Adobe Flash 版本,而內容伺服器120 (2)可包括網址的標準HTML版本。在這樣的情形下, 可能希望把使能Adobe Flash 的客戶設備重定向到內容伺服器120 (I),而把未使能的客戶設備重定向到內容伺服器120(2)。
作為另一個例子,內容伺服器120(1)可以具有以特定的格式可得到的數據,諸如以Microsoft Access 格式可得到的資料庫。內容伺服器120 (2)可以具有以不同格式的類似的或完全相同的資料庫,諸如以MySQL。在這樣的情形下,可能希望把具有Microsoft Access 能力的客戶機重定向到內容伺服器120 (I),而把具有MySQL能力的客戶機重定向到內容伺服器120(2)。
第四種場景以上描述的技術對於把客戶設備140指引到適當的內容伺服器以用於得到對web服務的訪問可以是有用的。然而,在網絡坐標系統內的客戶設備140和內容伺服器120/130的移動也可以提供關於在網絡系統100上的狀況的某些信息。例如,如果客戶設備140和內容伺服器120/130 —致地移動遠離地標伺服器110(2)和110(3),則這可以指示它們正經歷與地標伺服器110(2)和(3)的某些連接性問題。這甚至在客戶設備140和內容伺服器 120/130之間的相對距離不改變的情形下也可能是真實的。
例如,考慮圖9,其舉例說明了在網絡系統100上客戶設備140和內容伺服器120(2)和130的移動。圖9上顯示的正常圖標代表了在第一時間每個設備的位置,且劃陰影的圖標代表響應於網絡連接性的某種改變的設備的新位置。應當指出,這些設備的每個設備在第一時間具有30的y坐標,但隨後每個設備沿負I方向移動20個單位。然而,還應當指出,內容伺服器120(1)並沒有移動。取決於被使用來定義網絡坐標系統的網絡性能度量, 這可能暗示了在內容伺服器120(2),130和客戶設備140中的每一個與地標伺服器(2)和(3)之間的增加的等待時間、減小的帶寬或二者。而且,這可能暗示了某些共享的網絡狀況,諸如出故障的或擁塞的路由器,可能被客戶設備140、內容伺服器120(2)和內容伺服器 130使用。所述狀況的識別可以通過注意到內容伺服器120(1)在網絡系統100內未展現類似的移動而被促進,正如下面更詳細地討論的。
圖10舉例說明了例如適合於由地標伺服器110上的診斷構件217實施的示範性方法1000。
方法1000可以在塊1001開始,這牽涉到確定第一網絡坐標。在本例的上下文中, 地標伺服器110可以確定在第一時間的一個或多個設備的第一網絡坐標。例如,診斷構件 217可以確定120(1)、客戶設備140、內容伺服器120(2)和內容伺服器130的網絡坐標,例如分別為(0,30)、(10,30)、(25,30)和(30,30)。
接著,塊1002牽涉到確定第二網絡坐標。在本例的上下文中,地標伺服器110可以確定在第二時間的對於設備的第二網絡坐標。例如,診斷構件217可以確定在某個預定的時間量內,例如一天內,以上識別的設備的網絡坐標是如由圖9的劃上陰影的圖標顯示的。 例如,診斷構件217可以識別內容伺服器120 (I)、客戶設備140、內容伺服器120 (2)和內容伺服器130的位置是分別在(0,30)、(10,10)、(25,10)和(30,10)。
接著,塊1003牽涉到計算所述坐標的差值。在本例的上下文中,地標伺服器110 可以計算對於每個設備的第一坐標組和第二坐標組的差值。因此,診斷構件217可以識別 客戶設備140、內容伺服器120(2)和內容伺服器130在一天內每個已經沿負7方向移動20 個單位。相反,診斷構件217可以識別內容伺服器120(1)沒有移動。
接著,塊1004可以識別設備的子集。在本例的上下文中,地標伺服器110可以識別已經移動的設備子集,例如用於進一步處理。因此,診斷構件217可以識別客戶設備140、 內容伺服器120(2)和內容伺服器130作為設備的子集,其排除了內容伺服器120(1)。
接著,塊1005牽涉到識別設備的公共通信路由。在本例的上下文中,地標伺服器 110可以識別與設備子集相關聯的公共通信路由。例如,診斷構件217可以確定設備子集的每個設備通過公共的路由器或其它通信路由(交換機、集線器、物理有線、無線路徑、代理或其它伺服器、網際網路服務提供者等等)而與地標伺服器110 (2)和(3)通信。通過識別這樣的公共通信路由,方法1000可以幫助管理員確定網絡系統100上可能存在問題的地方。 這個技術可以有利於識別過載的連接,例如,太多的帶寬被使用在特定的連接上。這個技術也可以有利於識別通信錯誤,例如,由沒有被應答的通信而造成的重發。
在另外的實施例中,在塊1004,可以使用閾值技術來識別設備子集。例如,僅僅移動大於預定數目(例如10個)的網絡單位的設備可被識別。這可能是有用的,因為內容伺服器120(1)可以被預期為在網絡坐標系統內展現某種正常的移動。通過將這樣的閾值設置得足夠高,在塊1004,內容伺服器120(1)的正常移動(例如,由於預期的等待時間的波動) 可能不會觸發把內容伺服器120(1)包括在設備子集中。
而且,附加於使用移動的絕對值或作為其替換,移動的速率也可以被使用來在塊 1004識別設備子集。作為例子,每天10個單位的移動可被指定為用於包括在子集中的閾值。因此,在連續四天的每天內移動5個單位的設備將總共移動20個單位,但仍將不被包括在子集內。然而,一天內移動10個單位和以後不移動的設備將被包括在子集內。
在再另外的實施例中,某些類型的設備可以被排除在方法1000之外。作為例子, 行動裝置,諸如膝上型計算機、蜂窩電話、個人數字助理(PDA)等等,可被預期為展現在網絡系統100內的顯著移動。相反,伺服器和/或臺式計算機可能往往保持為相對靜止,因此對於通過方法1000考慮可能是更有用的。
還應當指出,診斷構件217也可以被包括在客戶設備140和/或內容伺服器 120/130中,以實施以上相對於方法1000所描述的處理。
方法實現正如以上討論的,圖4,6,8和10分別顯示了示範性方法400,600,800和1000的流程圖。這些方法中的每個與本構思的至少某些實現一致。應當指出,方法400,600,800和1000 被描述的次序不打算被解釋為限制,以及任何數目的描述的塊可以以任何次序被組合來實施所述方法,或替換的方法。
而且,雖然示範性方法是相對於公開的系統實施例討論的,但這些方法可以以任何適當的硬體、軟體、固件或它們的任何組合被實施。在一種情形下,所述方法被存儲在計算機可讀媒體上作為一組指令,使得其由計算設備的處理器的執行使得計算設備執行所述方法。
權利要求
1.一種方法包括以下步驟存儲在網絡(100)中第一設備(140)的初始網絡位置,所述網絡包括該第一設備(140) 和第二設備(130);監視涉及到與第二設備(140)的現有應用通信的一個或多個網絡性能度量(302);以及根據該初始網絡位置和網絡性能度量(302),確定第一設備(140)的更新的網絡位置。
2.按照權利要求1的方法,其中網絡性能度量包括TCP擴展的統計(「TCPESTATS」)。
3.按照權利要求1的方法,其中現有的應用通信包括以下的一項或多項 來自第二設備的、對於網頁的請求,來自第二設備的、對於當前時間的請求,或來自第二設備的、對於自動完成數據的請求。
4.按照權利要求1的方法,其中第一設備的更新的網絡位置根據第二設備的網絡位置被確定。
5.按照權利要求1的方法,其中初始網絡位置被表示為網絡坐標系統的坐標,所述方法還包括與多個地標伺服器進行通信,所述地標伺服器具有被表示為在網絡坐標系統中的已知坐標的位置,其中更新的網絡位置包括根據一個個地標伺服器的已知坐標而被確定的更新的坐標。
6.按照權利要求1的方法,所述方法還包括識別在網絡中第一設備的第二網絡位置,其中第一設備同時處在該第一網絡位置和該第二網絡位置;接收對於訪問在網絡上可得到的網絡服務的請求;以及確定是從第一位置還是從第二位置訪問該網絡服務。
7.一種系統(100),包括存儲裝置(222 ),被配置成存儲網絡中的內容伺服器(120)或客戶設備(140 )的第一網絡位置;以及操縱構件(227),被配置成將客戶設備(140)或內容伺服器(120)的第一網絡位置操縱成第二網絡位置。
8.按照權利要求7的系統,其中第一網絡位置包括網絡坐標系統的第一網絡坐標,以及操縱構件還被配置成通過確定對於第二網絡位置的第二網絡坐標而操縱第一網絡位置。
9.按照權利要求7的系統,其中操縱構件還被配置成通過提供值給遠程設備而操縱第一網絡位置,其中所述值被遠程設備應用來確定客戶設備或內容伺服器的第二網絡位置。
10.按照權利要求7的系統,其中操縱構件還被配置成通過給遠程設備提供以對應於第二網絡位置的網絡性能度量而操縱第一網絡位置。
11.一種計算機可讀存儲媒體(222),其包括指令,使得一個或多個處理器(221)執行按照權利要求1一 6中的任何一項的方法。
全文摘要
本文檔涉及到分布式網絡坐標系統。一種實現提供了計算機可讀存儲媒體,其包括可以使得處理器執行某些動作的指令。例如,所述動作可包括存儲網絡中的第一設備的初始網絡位置。該網絡可包括第一設備和第二設備。所述動作還可包括監視涉及到與第二設備的現有應用通信的一個或多個網絡性能度量,和根據初始網絡位置和網絡性能度量確定第一設備的更新的網絡位置。網絡健康的各方面可以從監視坐標系統內各種設備的網絡位置的改變而得到。
文檔編號H04L12/26GK102546245SQ20111044693
公開日2012年7月4日 申請日期2011年12月28日 優先權日2010年12月28日
發明者A.G.格林伯格, K.達摩爾, R.克恩, S.阿賈瓦爾, T.V.庫裡恩, 袁利華 申請人:微軟公司