專利名稱:利用被動tcp性能測試設(shè)備來針對全局通信量負載平衡確定網(wǎng)絡接近度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及TCP連接,并且更具體地涉及確定TCP連接的連接質(zhì)量。
背景技術(shù):
此部分中描述的方法是可以被研究的方法,然而不一定是先前已經(jīng)被想到或研究 過的方法。因此,除非被指出,否則不應假設(shè)在此部分中描述的任何方法僅僅由于它們被包 含在此部分中就被視為現(xiàn)有技術(shù)。這里使用的術(shù)語“數(shù)據(jù)中心”指代相關(guān)聯(lián)的服務器的協(xié)同位置(colocation)。雖 然屬于特定數(shù)據(jù)中心的服務器處于同一建筑或綜合性建筑中,但是數(shù)據(jù)中心通常位于在地 理上彼此遠離的位置處。地理距離添加了保護以使得由自然災難引起的一個數(shù)據(jù)中心中的 突然故障不會同樣引起其他數(shù)據(jù)中心中的故障。例如,一個數(shù)據(jù)中心可能位于紐約的東海 岸而另一個數(shù)據(jù)中心可能位于舊金山的西海岸。全局負載平衡或者說“GLB”是用于在多個服務器間分配對特定服務的客戶端訪問 的機制。例如,在由屬于紐約和舊金山的數(shù)據(jù)中心的服務器提供一特定服務的情況下,GLB 可以分配客戶端訪問以使得連接到紐約的數(shù)據(jù)中心的客戶端數(shù)目與連接到舊金山的數(shù)據(jù) 中心的客戶端數(shù)目大約相同。當在因特網(wǎng)的背景下被使用時,GLB可以使用各種主動和被動監(jiān)視技術(shù)來生成因 特網(wǎng)的綜合映射。基于該映射,GLB作出通信量路由決定以將客戶端連接到“最靠近的”服 務器。這里使用的“靠近”不一定意味著該決定僅基于地理接近度。這里使用的“靠近的” 服務器是產(chǎn)生到客戶端的最快連接的服務器。因此,如果服務器位于100英里以外,且因為 嚴重擁塞所以對于客戶端而言到達該服務器比到達位于200英里以外的服務器更慢,那么 GLB將會使客戶端路由到200英里以外的“更靠近的”服務器。許多主動和被動監(jiān)視機制為GLB建立因特網(wǎng)接近度的全局映射。由這些機制使用 的協(xié)議可以包括但不限于ICMP(ping),BGP(邊界網(wǎng)關(guān)協(xié)議),以及人工錄入。因特網(wǎng)控制 報文協(xié)議(ICMP)是因特網(wǎng)的核心協(xié)議之一。一個重要的ICMP應用是ping工具。ping工 具發(fā)送并接收ICMP回顯請求以及響應報文以判斷一主機是否可達(reachable)并確定分 組行進到該主機以及從該主機行進所需時間的長度。邊界網(wǎng)關(guān)協(xié)議(BGP)是因特網(wǎng)的核心 路由協(xié)議。BGP通過維護對自治系統(tǒng)間的網(wǎng)絡可達性進行指定的IP網(wǎng)絡表格來進行工作。 BGP基于路徑、網(wǎng)絡策略和規(guī)則組來作出路由決定。遺憾的是,這些機制和協(xié)議不能監(jiān)視采 用TCP協(xié)議的web連接的實際性能,并因此不能實現(xiàn)針對TCP連接的準確路由確定。由于拓撲和連接性的動態(tài)改變,GLB系統(tǒng)可能很難維護因特網(wǎng)的完整且準確的映 射。映射的不準確可能導致錯誤的路由決定。基于采用了何種映射協(xié)議,可能需要大量時 間來校正這些路由決定。
在附圖的各圖示中作為示例而非作為限制來示出本發(fā)明,其中類似標號指代類似 元件,并且其中圖1是顯示根據(jù)本發(fā)明一實施例的連接到位于不同數(shù)據(jù)中心中的web信標 (beacon)的客戶端的圖示;圖2是顯示根據(jù)本發(fā)明一實施例的從web信標聚集的數(shù)據(jù)以及被分配給GLB服務 器的經(jīng)過處理的數(shù)據(jù)的圖示;圖3是顯示根據(jù)本發(fā)明一實施例的通過網(wǎng)塊(netblock)而被分組的經(jīng)過處理的 數(shù)據(jù)的圖示;以及圖4是其上可以實現(xiàn)本發(fā)明實施例的計算機系統(tǒng)的框圖。
具體實施例方式描述了用于測量實際的TCP連接的連接質(zhì)量的技術(shù)以及將測量信息用于后續(xù)通 信量路由決定中的技術(shù)。在以下描述中,出于說明的目的,提出了大量具體細節(jié)以提供對本 發(fā)明的全面理解。然而,應理解,本發(fā)明可以在不需要這些具體細節(jié)的情況下被實踐。在其 他實例中,以框圖形式示出為人熟知的結(jié)構(gòu)和設(shè)備以避免不必要地使本發(fā)明變得模糊。一般性概述傳輸控制協(xié)議(“TCP”)是使得聯(lián)網(wǎng)主機上的應用能夠創(chuàng)建到另一主機的連接的 因特網(wǎng)協(xié)議。例如,請求web頁面的客戶端可代表一個主機并且將web頁面內(nèi)容提供給該 客戶端的服務器可代表另一主機。TCP協(xié)議具有與主機間的連接有關(guān)的許多性質(zhì)。TCP保證從發(fā)送器到接收器的可 靠且按次序的數(shù)據(jù)遞送。為了實現(xiàn)按次序的遞送,TCP還規(guī)定重傳丟失分組并且丟棄所發(fā) 送的重復分組。TCP還能夠區(qū)分同一主機上運行的并發(fā)應用(例如,web服務器和電子郵件 服務器)的多個連接的數(shù)據(jù)。為了發(fā)起TCP連接,兩個主機交換初始序列號。初始序列號標識從各主機發(fā)送的 字節(jié)的次序,以使得所傳輸數(shù)據(jù)保持有序而無論在傳輸期間可能發(fā)生的任何斷裂或失序如 何。對于所傳輸?shù)拿恳蛔止?jié),序列號遞增。所發(fā)送的每一字節(jié)被發(fā)送器指派了序列號,然后接收器將確認發(fā)回發(fā)送器以確認 傳輸。例如,如果計算機A(發(fā)送器)發(fā)送具有序列號50的4個字節(jié)(分組中的這四個字 節(jié)具有所指派的序列號50、51、52和53),那么計算機B (接收器)將確認54發(fā)回計算機A 以指示出計算機B期望接收的下一字節(jié)。通過發(fā)送確認54,計算機B正在通知字節(jié)50、51、 52和53被正確接收了。如果不知道為什么最后兩個字節(jié)被損壞,那么計算機B因為字節(jié) 50和51被成功接收了所以發(fā)送確認值52。TCP還能夠執(zhí)行擁塞控制。例如,TCP可以調(diào)節(jié)數(shù)據(jù)進入網(wǎng)絡的速率,從而使數(shù)據(jù) 流保持為低于將引起網(wǎng)絡擁塞問題的速率。由發(fā)送器來測量針對所發(fā)送數(shù)據(jù)而接收的確認 或者接收確認的缺失,從而了解發(fā)送器和接收器間的網(wǎng)絡條件。TCP發(fā)送器和接收器然后可 以根據(jù)遇到的網(wǎng)絡條件來變更數(shù)據(jù)流的速率,以確保良好的通信量流。遺憾的是,不可以由第三方或非TCP協(xié)議來執(zhí)行為了確保對連接質(zhì)量的準確測量 而進行的實際TCP連接測量。例如,使用比如是ICMP的非TCP協(xié)議作為實際TCP連接測量的替代物可能導致錯誤結(jié)果。一個原因是=ICMP通信量與TCP的通信量相比,通常具有較 低的服務質(zhì)量(“QoS”)。QoS是給予因特網(wǎng)上的通信量的優(yōu)先次序。QoS通過根據(jù)來自應 用的請求保證數(shù)據(jù)流的某一性能水平,來將不同的優(yōu)先次序提供給不同的數(shù)據(jù)流。ICMP所 使用的Ping通信量的QoS與TCP相比被給予了更低的優(yōu)先次序,因為ping不被保證總是 達到Ping的目的地。相反,TCP保證所有的通信量將到達特定目的地。結(jié)果,某些測量可 能受到較低QoS的影響,例如但不限于比正常情況更大的分組丟棄速率和排隊時間。因此, 基于ICMP的對TCP連接的路由決定將會是錯誤的。第三方服務很難測量TCP連接質(zhì)量,因為TCP是點對點的協(xié)議。在點對點協(xié)議中, 通信量被從一個網(wǎng)絡點路由到另一網(wǎng)絡點。例如,一個網(wǎng)絡點可能是請求web頁面的客戶端, 而另一個網(wǎng)絡點可能是將web頁面提供給客戶端的服務器。第三方僅能夠在其在網(wǎng)絡上的情 況下在兩個連接點之間截取點對點連接的TCP通信量,并且能夠主動地查看在兩方之間的連 接中的所有分組。因此,由第三方服務來進行對TCP連接的測量是十分困難且不實際的。web信標(beacon)和被動監(jiān)視在一實施例中,web信標和被動服務器監(jiān)視測量在客戶端與數(shù)據(jù)中心內(nèi)的提供客 戶端內(nèi)容的服務器之間的實際TCP連接的連接質(zhì)量。web信標還已知為像素標簽(pixel tag)、透明GIF (clear GIF)或者零內(nèi)容圖像(zero-content image),并且是透明的或不可 見的圖形圖像,通常不大于1X1個像素。在一實施例中,通過將小量代碼或信標代碼置入產(chǎn)生的web頁面中來生成web信 標??蛻舳苏埱蟛⒈惶峁﹣碜詳?shù)據(jù)中心中的web服務器的產(chǎn)生的web頁面。當該產(chǎn)生的web 頁面被客戶端處理時,信標代碼致使客戶端瀏覽器從位于每個潛在數(shù)據(jù)中心位置中的信標 服務器取回web信標或零內(nèi)容圖像。例如,如果在美國存在能夠提供該web頁面的三個不 同的協(xié)同位置或數(shù)據(jù)中心,其中一個協(xié)同位置在西海岸,另一個協(xié)同位置在東海岸,并且又 一個協(xié)同位置在中西部,那么信標代碼致使客戶端請求來自位于具有TCP連接的各協(xié)同位 置的信標服務器的web信標或者零內(nèi)容圖像。在客戶端的后臺執(zhí)行這些請求以使得不干擾 當前產(chǎn)生的web頁面從web服務器的加載。在一實施例中,信標服務器的內(nèi)核模塊中的被動監(jiān)視系統(tǒng)從web信標取回測量并 登記在客戶端與數(shù)據(jù)中心之間的TCP連接的統(tǒng)計數(shù)據(jù)。例如,可以通過對TCP握手序列期 間分組的到達和離開進行計時來測量網(wǎng)絡等待時間(network latency)。作為另一示例, 可以通過對連接所需的TCP重傳次數(shù)進行計數(shù)來測量TCP連接壽命期間的分組丟失比率 (packet lossratio)。這兩個量度,網(wǎng)絡等待時間和分組丟失比率,提供了對特定客戶端與 特定數(shù)據(jù)中心之間的連接質(zhì)量的極好的指示。還可以通過被動監(jiān)視系統(tǒng)測量并登記與TCP 連接有關(guān)的任何其他測量結(jié)果。因為從web信標來測量TCP連接是基于從數(shù)據(jù)中心到客戶端的實際web通信量 的,所以確保了準確的TCP連接質(zhì)量測量結(jié)果。這些測量結(jié)果然后可被用于隨后作出明智 的全局通信量路由決定以將數(shù)據(jù)中心中“最靠近的”服務器連接到客戶端。在圖1中示出了說明根據(jù)一實施例的web信標和被動監(jiān)視的圖示。在圖1中,客 戶端100可被路由到3個不同的數(shù)據(jù)中心。數(shù)據(jù)中心102包含信標服務器108和web服務 器110。數(shù)據(jù)中心104包含信標服務器112和web服務器114。數(shù)據(jù)中心106包含信標服 務器116和web服務器118??蛻舳?00請求并接收來自web服務器110的web頁面(傳輸120)。由web服務器110提供的web頁面包含信標代碼,該信標代碼指示客戶端100從 位于各數(shù)據(jù)中心中的web信標服務器取回web信標。結(jié)果,客戶端100通過請求122來請 求來自數(shù)據(jù)中心102中的信標服務器108的web信標,通過請求124來請求來自數(shù)據(jù)中心 104中的信標服務器112的web信標,并且通過請求126來請求來自數(shù)據(jù)中心106中的信 標服務器116的web信標。為了取回web信標,在客戶端100與各信標服務器108、112和 116之間建立了 TCP連接。所有這些對web信標的請求都是在客戶端的后臺做出的以不干 擾web服務器110的頁面加載。在各信標服務器中的被動監(jiān)視系統(tǒng)測量并登記關(guān)于為了取回web信標而在客戶 端100與各信標服務器108、112和116之間建立的TCP連接的統(tǒng)計數(shù)據(jù)。對TCP連接的測 量被用于確定客戶端100與對應于各信標服務器的數(shù)據(jù)中心之間的質(zhì)量。所登記并記錄的 測量數(shù)據(jù)可以隨實現(xiàn)方式的不同而不同。在一實施例中,測量數(shù)據(jù)包括但不限于往返等待 時間數(shù)據(jù)和分組丟失速率數(shù)據(jù)。關(guān)于針對web信標的各TCP連接的測量和統(tǒng)計數(shù)據(jù)由各信 標服務器來存儲。通過其他方法來測量TCP連接還可以使用各種其他方法來執(zhí)行對TCP連接性能的測量。信標,或引導客戶端連 接到服務器,被用來測量連接性能??梢砸龑Э蛻舳诉B接到多個信標服務器。使用不止一 個信標服務器以使得連接的多個端點得到測量。此外,可以引導客戶端基于對信標服務器 的隨機選擇來連接到特定的信標服務器。信標服務器可以是僅專用于測量連接數(shù)據(jù)的專用 服務器。信標服務器也可以是提供真實通信量的服務器??梢允褂萌魏晤愋偷幕赥CP的 連接協(xié)議,包括但不限于FTP (文件傳送協(xié)議),HTTP (超文本傳送協(xié)議)或者IRC (因特網(wǎng) 在線聊天),并且可以使用對用戶所連接到的位置有一定控制的任何應用。在一實施例中,應用被置于客戶端的計算機上。當應用被啟動或運行時,應用嘗 試連接到多個信標服務器。在另一實施例中,針對各出現(xiàn)的信標服務器,從分析器做出DNS 請求,并且應答被發(fā)送以供客戶端連接到多個信標服務器。對信標服務器的選擇可以隨實 現(xiàn)方式的不同而不同。在一實施例中,引導客戶端基于隨機選擇方法來連接到特定的信標 服務器。即使使用隨機選擇,隨時間逝去而收集的數(shù)據(jù)的量也足夠使得隨機選擇方法接近 使得各客戶端連接到每一數(shù)據(jù)中心中的信標服務器的準確性。一旦連接到任何的信標服務 器,各信標服務器中的被動監(jiān)視系統(tǒng)就測量并登記關(guān)于所建立的從客戶端到信標服務器的 連接的統(tǒng)計數(shù)據(jù)。聚集并處理數(shù)據(jù)在一實施例中,數(shù)據(jù)庫從位于各數(shù)據(jù)中心中的信標服務器收集TCP測量結(jié)果以及 相關(guān)的客戶端IP地址??梢杂蓴?shù)據(jù)庫服務器請求數(shù)據(jù)或者由各web信標服務器定期地發(fā) 送數(shù)據(jù)。數(shù)據(jù)庫可以位于特定的數(shù)據(jù)中心中或者遠程地位于獨立設(shè)施中。在一實施例中,數(shù)據(jù)庫服務器將從信標服務器接收到的數(shù)據(jù)歸一化到分立網(wǎng)塊的 集合中。這里使用的網(wǎng)塊是客戶端IP地址的范圍。例如,網(wǎng)塊“1.1. 1.0”指示出其IP地 址以“1. 1. 1.X”開始的所有客戶端,其中“X”可以是0和255之間的任何值。同一網(wǎng)塊中 的客戶端可以使用到數(shù)據(jù)中心的相同路徑。結(jié)果,針對同一網(wǎng)塊中的客戶端的TCP連接測 量結(jié)果可以被聚集以提供關(guān)于從特定客戶端到特定數(shù)據(jù)中心的路徑的更完整信息。為了確 定最佳服務目的地,從各數(shù)據(jù)中心到各可能網(wǎng)塊的路徑的連接性能被測量并維護。
在一實施例中,可用服務器或數(shù)據(jù)中心的列表通過到各特定網(wǎng)塊的連接質(zhì)量而被 排序(sort)。在另一實施例中,數(shù)據(jù)庫服務器基于從信標服務器接收到的TCP統(tǒng)計數(shù)據(jù)來 歸一化數(shù)據(jù)。在這種情形下,基于與相關(guān)IP地址的連接質(zhì)量來給連接排序。在又一實施例 中,數(shù)據(jù)庫收集測量數(shù)據(jù)和相對應的IP地址并且不再對數(shù)據(jù)執(zhí)行任何進一步的處理。在一實施例中,基于測量結(jié)果的數(shù)據(jù)被從數(shù)據(jù)庫輸出到用作全局負載平衡器的分 布式授權(quán)域名服務器(authoritative name server)。基于測量結(jié)果的數(shù)據(jù)為全局負載平 衡器提供用以做出關(guān)于客戶端路由的正確決定的信息。在一實施例中,基于測量結(jié)果的數(shù) 據(jù)可以被全局負載平衡器排他地用于確定客戶端路由。在另一實施例中,基于測量結(jié)果的 數(shù)據(jù)是全局負載平衡器為了做出路由決定而考慮的附加數(shù)據(jù)。在圖2中示出了說明根據(jù)一實施例的從信標服務器收集TCP統(tǒng)計數(shù)據(jù)的中央數(shù) 據(jù)庫的圖示。在圖2中,圖1的三個數(shù)據(jù)中心的信標服務器(數(shù)據(jù)中心102的信標服務器 108、數(shù)據(jù)中心104的信標服務器112和數(shù)據(jù)中心106的信標服務器116)將數(shù)據(jù)發(fā)送到中 央數(shù)據(jù)庫200。中央數(shù)據(jù)庫200基于各種標準來聚集并分類數(shù)據(jù)。經(jīng)過處理的數(shù)據(jù)然后被 發(fā)送到GLB202、GLB 204,GLB 206和GLB 208。在另一實施例中,經(jīng)過處理的數(shù)據(jù)被從中央 數(shù)據(jù)庫200發(fā)送到其他用戶裝置(consumer) 210。其他用戶裝置包括可被容宿于數(shù)據(jù)中心 中的除web服務器之外的應用。例如,因特網(wǎng)公司可以具有允許客戶端直接連接到應用的 獨立音樂或媒體應用。因為這些應用被包含在與信標服務器相同的數(shù)據(jù)中心中,所以由中 央服務器積聚的TCP數(shù)據(jù)也可以用于將通信量高效地路由到這些其他應用。利用基于測量結(jié)果的數(shù)據(jù)的全局負載平衡器隨后描述全局負載平衡器如何使用基于測量結(jié)果的數(shù)據(jù)的示例。當客戶端請求訪 問特定web頁面時執(zhí)行全局負載平衡。執(zhí)行DNS查找來將由客戶端輸入的web站點URL (例 如,“麗· sampledomain. com,,)翻譯為IP地址(例如,“1. 2. 3. 4”)。查找被引導到授權(quán)域 名服務器(也是全局負載平衡器)。全局負載平衡器檢查請求IP地址。然后將請求IP地 址與經(jīng)分類的基于測量結(jié)果的數(shù)據(jù)中的、該特定網(wǎng)塊(或者IP地址的范圍)的信息進行比 較。全局負載平衡器選擇通過各種TCP統(tǒng)計數(shù)據(jù)(例如網(wǎng)絡等待時間和分組丟失)而被排 序的列表上的第一個可用web服務器,并且將該web服務器的IP地址返回給客戶端??蛻?端因此被路由到具有最佳可用TCP連接性的web服務器。在圖3中示出根據(jù)本發(fā)明一實施例的通過網(wǎng)塊而分類的經(jīng)處理數(shù)據(jù)的例示。數(shù)據(jù) 具有“客戶端”列300、“協(xié)同位置A”列302、“協(xié)同位置B”列304和“協(xié)同位置C”列306。 “客戶端”列300列出各協(xié)同位置所連接到的客戶端的IP地址。在一實施例中,在網(wǎng)塊中列 出客戶端。在行308中,網(wǎng)塊“1. 1. 1.0/24”指示出在IP地址“1. 1. 1.x”處的客戶端的子 網(wǎng)掩碼是24,其中χ可以是0-255間的任何數(shù)字。如果客戶端希望從此網(wǎng)塊連接到協(xié)同位 置,那么連接到協(xié)同位置A花費10ms,連接到協(xié)同位置B花費50ms,并且連接到協(xié)同位置C 花費80ms。因此,來自網(wǎng)塊“1. 1. 1. 0”的客戶端將是最靠近協(xié)同位置A的。在行310中,網(wǎng)塊“2. 2. 2. 0/26”指示出在IP地址“2. 2. 2. χ”處的客戶端的子網(wǎng) 掩碼是26,其中χ可以是0-63間的任何數(shù)字。如果客戶端希望從此網(wǎng)塊連接到協(xié)同位置, 那么連接到協(xié)同位置A花費100ms,連接到協(xié)同位置B花費40ms,并且連接到協(xié)同位置C花 費5ms。因此,來自網(wǎng)塊“2. 2. 2. 0”的客戶端將是最靠近協(xié)同位置C的。在行312中,網(wǎng)塊“3. 3. 3. 0/24”指示出在IP地址“3. 3. 3. χ”處的客戶端的子網(wǎng)掩碼是24,其中χ可以是0-255間的任何數(shù)字。如果客戶端希望從此網(wǎng)塊連接到協(xié)同位置, 那么連接到協(xié)同位置A花費300ms,連接到協(xié)同位置B花費1ms,并且連接到協(xié)同位置C花 費500ms。因此,來自網(wǎng)塊“3. 3. 3. 0”的客戶端將是最靠近協(xié)同位置B的。閉合電路反饋在一實施例中,生成能夠動態(tài)地響應因特網(wǎng)拓撲和性能改變的閉合電路反饋回 路。如以上示出的,全局負載平衡器將客戶端路由到特定web服務器以取得web內(nèi)容。全 局負載平衡器基于通過取回web信標的TCP連接測量來確定路由。當客戶端從服務器取回web頁面內(nèi)容時,web頁面內(nèi)容包含指示客戶端再一次從 各數(shù)據(jù)中心取回web信標的信標代碼。通過不斷地從web信標TCP連接得到更多的測量和 統(tǒng)計數(shù)據(jù),連接質(zhì)量測量系統(tǒng)能夠針對影響網(wǎng)絡可用性的情形進行快速地自我校正。這些 情形包括但不限于光纖斷裂、裝備問題、服務器故障切換或者容量問題。硬件概述圖4是示出其上可以實現(xiàn)本發(fā)明實施例的計算機系統(tǒng)400的框圖。計算機系統(tǒng) 400包括總線402或者用于傳送信息的其他通信機制,以及與總線402耦合以供處理信息 的處理器404。計算機系統(tǒng)400還包括主存儲器406,比如隨機存取存儲器(RAM)或其他的 動態(tài)存儲器件,其耦合到總線402以供存儲信息和要由處理器404來執(zhí)行的指令。主存儲 器406還可以用來在執(zhí)行要由處理器404來執(zhí)行的指令期間存儲臨時變量或者其他中間信 息。計算機系統(tǒng)400還包括只讀存儲器(ROM) 408或者耦合到總線402以供存儲靜態(tài)信息 和處理器404的指令的其他靜態(tài)存儲器件。諸如磁盤或光盤之類的存儲設(shè)備410被設(shè)置并 耦合到總線402以供存儲信息和指令。計算機系統(tǒng)400可以經(jīng)由總線402被耦合到顯示器412,比如陰極射線管(CRT), 其用于向計算機用戶顯示信息。包括字母數(shù)字以及其他按鍵的輸入設(shè)備414被耦合到總線 402以供將信息和命令選擇傳送到處理器404。另一類型的用戶輸入設(shè)備是用于將方向信 息和命令選擇傳輸?shù)教幚砥?04的并且用于控制顯示器412上的光標移動的光標控制416, 比如鼠標、跟蹤球或者光標方向鍵。該輸入設(shè)備通常具有允許設(shè)備指定平面上的位置的、兩 個軸(第一軸(例如,χ)和第二軸(例如,y))上的兩個自由度。本發(fā)明涉及使用計算機系統(tǒng)400來實現(xiàn)這里所描述的技術(shù)。根據(jù)本發(fā)明的一個實 施例,那些技術(shù)是由計算機系統(tǒng)400響應于處理器404執(zhí)行在主存儲器406中包含的一個 或多個指令的一個或多個序列來執(zhí)行的。這樣的指令可以是從另一機器可讀介質(zhì)(比如存 儲設(shè)備410)被讀取到主存儲器406中的。執(zhí)行在主存儲器406中包含的指令序列致使處 理器404執(zhí)行這里描述的處理步驟。在替代實施例中,可以使用硬連線的電路來替代軟件 指令或者與軟件指令結(jié)合來實現(xiàn)本發(fā)明。因此,本發(fā)明的實施例不限于硬件電路和軟件的 任何特定組合。這里使用的術(shù)語“機器可讀介質(zhì)”指代參與提供致使機器以特定方式操作的數(shù)據(jù) 的任何介質(zhì)。在使用計算機系統(tǒng)400實現(xiàn)的實施例中,例如,在將指令提供給處理器404以 供執(zhí)行方面涉及了各種機器可讀介質(zhì)。這樣的介質(zhì)可以采取許多種形式,包括但不限于存 儲介質(zhì)和傳輸介質(zhì)。存儲介質(zhì)包括非易失性介質(zhì)和易失性介質(zhì)二者。非易失性介質(zhì)例如包 括諸如存儲設(shè)備410之類的光或磁盤。易失性介質(zhì)包括諸如主存儲器406之類的動態(tài)存儲 器。傳輸介質(zhì)包括同軸線纜、銅線或光纖,其包括構(gòu)成總線402的導線。傳輸介質(zhì)還可以采取聲或光波的形式,比如在無線電波和紅外數(shù)據(jù)通信期間生成的那些。所有這些介質(zhì)必須 是有形的以使得由該介質(zhì)所承載的指令能夠通過將指令讀取到機器中的物理機制而被刪 除。機器可讀介質(zhì)的常見形式例如包括軟盤、軟磁盤、硬盤、磁帶或任何其他磁介質(zhì), CD-ROM或任何其他光介質(zhì),穿孔卡、紙質(zhì)磁帶或者任何其他具有孔圖案的物理介質(zhì),RAM、 R0M、EPR0M、FLASH_EPR0M或者任何其他存儲器芯片或匣,如此后描述的載波,或者計算機可 以從其進行讀取的任何其他介質(zhì)。各種形式的機器可讀介質(zhì)可以在將一個或多個指令的一個或多個序列承載到處 理器404以供執(zhí)行方面被涉及。例如,指令可能最初被承載在遠程計算機的磁盤上。遠程 計算機可以將指令加載到其動態(tài)存儲器并利用調(diào)制解調(diào)器經(jīng)由電話線路來發(fā)送指令。計算 機系統(tǒng)400本地的調(diào)制解調(diào)器可以在電話線路上接收數(shù)據(jù)并且使用紅外發(fā)射器將數(shù)據(jù)轉(zhuǎn) 換為紅外信號。紅外檢測器能夠接收紅外信號中承載的數(shù)據(jù)并且適當?shù)碾娐纺軌驅(qū)?shù)據(jù)置 于總線402上??偩€402將數(shù)據(jù)承載到主存儲器406,處理器404從主存儲器406取回并執(zhí) 行指令。由主存儲器406接收到的指令可以在由處理器404執(zhí)行之前或者之后可選地被存 儲在存儲設(shè)備410上。計算機系統(tǒng)400還包括耦合到總線402的通信接口 418。通信接口 418提供耦合 到網(wǎng)絡鏈路420的雙向數(shù)據(jù)通信,該網(wǎng)絡鏈路420連接到本地網(wǎng)絡422。例如,通信接口 418 可以是用于將數(shù)據(jù)通信連接提供到相應類型的電話線路的綜合業(yè)務數(shù)字網(wǎng)絡(ISDN)卡或 者調(diào)制解調(diào)器。作為另一示例,通信接口 418可以是將數(shù)據(jù)通信連接提供到兼容LAN的局 域網(wǎng)(LAN)卡。無線鏈路同樣可以被實現(xiàn)。在任一這樣的實現(xiàn)方式中,通信接口 418發(fā)送 并接收承載代表各種類型信息的數(shù)字數(shù)據(jù)流的電、電磁或光信號。網(wǎng)絡鏈路420通常通過一個或多個網(wǎng)絡將數(shù)據(jù)通信提供到其他數(shù)據(jù)設(shè)備。例如, 網(wǎng)絡鏈路420通過本地網(wǎng)絡422提供到主機計算機424的連接或者到由因特網(wǎng)服務提供商 (ISP) 426所操作的數(shù)據(jù)裝備的連接。ISP 426接著通過現(xiàn)在通常稱作“因特網(wǎng)”的萬維分 組數(shù)據(jù)通信網(wǎng)絡428來提供數(shù)據(jù)通信服務。本地網(wǎng)絡422和因特網(wǎng)428都使用承載數(shù)字數(shù) 據(jù)流的電、電磁或光信號。承載了去向以及來自計算機系統(tǒng)400的數(shù)字數(shù)據(jù)的、通過各種網(wǎng) 絡的信號以及網(wǎng)絡鏈路420上的并且通過通信接口 418的信號是傳輸信息的載波的示例性 形式。計算機系統(tǒng)400能夠通過(一個或多個)網(wǎng)絡、網(wǎng)絡鏈路420以及通信接口 418 發(fā)送消息并且接收數(shù)據(jù)(包括程序代碼)。在因特網(wǎng)的示例中,服務器430可以通過因特網(wǎng) 428、ISP 426、本地網(wǎng)絡422以及通信接口 418來發(fā)送所請求的應用程序代碼。所接收的代碼可以由處理器404在接收到其時來執(zhí)行,和/或被存儲在存儲設(shè)備 410或者其他非易失性存儲器中以供隨后執(zhí)行。以這種方式,計算機系統(tǒng)400可以以載波的 形式獲得應用代碼。在前述說明書中,已經(jīng)參考可能隨實現(xiàn)方式的不同而不同的許多具體細節(jié)描述了 本發(fā)明的實施例。因此,關(guān)于本發(fā)明是什么并且申請人希望本發(fā)明是什么的唯一且排他的 表示是從此申請發(fā)布的、這些權(quán)利要求所發(fā)布的具體形式的權(quán)利要求集合,其包括任何后 續(xù)的修正。這里針對這些權(quán)利要求中所包含的術(shù)語明確提出的任何限定決定如在權(quán)利要求 中使用的這些術(shù)語的含義。因此,未在權(quán)利要求中明確記載的任何限制、要件、性質(zhì)、特征、優(yōu)點或?qū)傩圆粦匀魏畏绞较拗七@樣的權(quán)利要求的范圍。因此,將說明書和附圖視為說明 性的而非限制性的。
權(quán)利要求
一種用于測量從多個數(shù)據(jù)中心到客戶端的連接質(zhì)量的方法,包括接收針對多個客戶端中的每個客戶端的連接質(zhì)量測量結(jié)果;其中,所述針對每個客戶端的連接質(zhì)量測量結(jié)果包括,來自所述多個數(shù)據(jù)中心的每個數(shù)據(jù)中心的,對(a)所述數(shù)據(jù)中心與(b)所述每個客戶端之間的連接質(zhì)量的測量;一旦接收到針對所述多個客戶端的連接質(zhì)量測量結(jié)果,就基于所述連接質(zhì)量測量結(jié)果和所述客戶端的IP地址來生成基于測量結(jié)果的數(shù)據(jù);以及向負載平衡服務器輸出所述基于測量結(jié)果的數(shù)據(jù)以供由所述負載平衡服務器用來確定如何將消息路由到所述多個數(shù)據(jù)中心。
2.根據(jù)權(quán)利要求1所述的方法,其中,對連接質(zhì)量的測量是基于從所述客戶端到多個 信標服務器的TCP連接的,其中,所述多個信標服務器中的每個信標服務器對應于所述多 個數(shù)據(jù)中心中的一個數(shù)據(jù)中心。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述TCP連接是將web信標代碼提供給所述多個 客戶端中的每個客戶端的結(jié)果。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述基于測量結(jié)果的數(shù)據(jù)被組織到多個組中,其 中,對每個組而言,所述客戶端的IP地址落入特定的IP地址范圍內(nèi)。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述基于測量結(jié)果的數(shù)據(jù)的組包括通過到所述 特定的IP地址范圍的連接質(zhì)量而被排序的數(shù)據(jù)中心。
6.根據(jù)權(quán)利要求1所述的方法,其中,對連接質(zhì)量的測量包括網(wǎng)絡等待時間。
7.根據(jù)權(quán)利要求1所述的方法,其中,對連接質(zhì)量的測量包括分組丟失比率。
8.根據(jù)權(quán)利要求2所述的方法,其中,所述TCP連接源自從所述多個數(shù)據(jù)中心中的每個 數(shù)據(jù)中心取回對應于所述多個數(shù)據(jù)中心中的一個數(shù)據(jù)中心的零內(nèi)容圖像的客戶端。
9.一種方法,包括從服務器向計算機可讀存儲介質(zhì)中存儲包括連接質(zhì)量測量結(jié)果和多個客戶端的IP地 址的基于測量結(jié)果的數(shù)據(jù);其中,所述連接質(zhì)量測量結(jié)果基于對(a)多個數(shù)據(jù)中心中的特定數(shù)據(jù)中心與(b)所述 多個客戶端中的每個客戶端之間的連接質(zhì)量的測量;基于所述基于測量結(jié)果的數(shù)據(jù),確定如何將消息路由到所述多個數(shù)據(jù)中心。
10.一種用于測量從多個數(shù)據(jù)中心到客戶端的連接質(zhì)量的方法,包括從多個客戶端接收請求;基于所述請求存儲對連接質(zhì)量的測量;向聚集服務器輸出對連接質(zhì)量的測量,其中,所述聚集服務器基于所述連接質(zhì)量測量 結(jié)果和所述多個客戶端的IP地址來生成基于測量結(jié)果的數(shù)據(jù)。
11.一種系統(tǒng),包括第一多個服務器,所述第一多個服務器中的每個特定服務器位于多個數(shù)據(jù)中心中的特 定數(shù)據(jù)中心中,其中所述第一多個服務器針對多個客戶端中的每個客戶端測量連接質(zhì)量測量結(jié)果;其中,所述針對每個客戶端的連接質(zhì)量測量結(jié)果包括,來自所述多個數(shù)據(jù)中心中的每 個數(shù)據(jù)中心的,對(a)所述數(shù)據(jù)中心與(b)所述每個客戶端之間的連接質(zhì)量的測量;聚集服務器,其中,所述聚集服務器從所述第一多個服務器接收連接質(zhì)量測量結(jié)果,以基于所述連接質(zhì)量測量結(jié)果和所述客戶端的IP地址來生成基于測量結(jié)果的數(shù)據(jù);以及第二多個服務器,其中,所述第二多個服務器從所述聚集服務器接收所述基于測量結(jié) 果的數(shù)據(jù)以確定如何將消息路由到所述多個數(shù)據(jù)中心。
12.—種承載一個或多個指令序列的計算機可讀存儲介質(zhì),所述一個或多個指令序列 在被一個或多個處理器執(zhí)行時致使所述一個或多個處理器接收針對多個客戶端中的每個客戶端的連接質(zhì)量測量結(jié)果;其中,所述針對每個客戶 端的連接質(zhì)量測量結(jié)果包括,來自所述多個數(shù)據(jù)中心的每個數(shù)據(jù)中心的,對(a)所述數(shù)據(jù) 中心與(b)所述每個客戶端之間的連接質(zhì)量的測量;一旦接收到針對所述多個客戶端的連接質(zhì)量測量結(jié)果,就基于所述連接質(zhì)量測量結(jié)果 和所述客戶端的IP地址來生成基于測量結(jié)果的數(shù)據(jù);向負載平衡服務器輸出所述基于測量結(jié)果的數(shù)據(jù)以供由所述負載平衡服務器用來確 定如何將消息路由到所述多個數(shù)據(jù)中心。
13.根據(jù)權(quán)利要求12所述的計算機可讀存儲介質(zhì),其中,對連接質(zhì)量的測量基于從所 述客戶端到多個信標服務器的TCP連接,其中,所述多個信標服務器中的每個信標服務器 對應于所述多個數(shù)據(jù)中心中的一個數(shù)據(jù)中心。
14.根據(jù)權(quán)利要求13所述的計算機可讀存儲介質(zhì),其中,所述TCP連接是將web信標代 碼提供給所述多個客戶端中的每個客戶端的結(jié)果。
15.根據(jù)權(quán)利要求12所述的計算機可讀存儲介質(zhì),其中,所述基于測量結(jié)果的數(shù)據(jù)被 組織到多個組中,在這些組中,所述客戶端的IP地址落入特定的IP地址范圍內(nèi)。
16.根據(jù)權(quán)利要求15所述的計算機可讀存儲介質(zhì),其中,所述基于測量結(jié)果的數(shù)據(jù)的 組包括通過到所述特定的IP地址范圍的連接質(zhì)量而被排序的數(shù)據(jù)中心。
17.根據(jù)權(quán)利要求12所述的計算機可讀存儲介質(zhì),其中,對連接質(zhì)量的測量包括網(wǎng)絡 等待時間。
18.根據(jù)權(quán)利要求12所述的計算機可讀存儲介質(zhì),其中,對連接質(zhì)量的測量包括分組 丟失比率。
19.根據(jù)權(quán)利要求13所述的計算機可讀存儲介質(zhì),其中,所述TCP連接源自從所述多個 數(shù)據(jù)中心中的每個數(shù)據(jù)中心取回對應于所述多個數(shù)據(jù)中心中的一個數(shù)據(jù)中心的零內(nèi)容圖 像的客戶端。
全文摘要
描述了用于測量在客戶端與多個數(shù)據(jù)中心之間的TCP連接質(zhì)量的技術(shù)。被稱作web信標的小量代碼被置于產(chǎn)生的web頁面上。當客戶端請求產(chǎn)生的web頁面時,web頁面被提供給客戶端。當web頁面代碼被處理時,web信標指示客戶端在后臺通過TCP連接從多個數(shù)據(jù)中心取回零內(nèi)容圖像。當建立了各連接時,被動監(jiān)視系統(tǒng)測量并登記關(guān)于從客戶端到數(shù)據(jù)中心的每個TCP連接的統(tǒng)計數(shù)據(jù)。統(tǒng)計數(shù)據(jù)被聚集到數(shù)據(jù)庫中并且可以基于客戶端的IP地址的范圍以及連接質(zhì)量測量結(jié)果而被分類。將數(shù)據(jù)從數(shù)據(jù)庫輸出到全局負載平衡器以確定從并發(fā)客戶端到多個數(shù)據(jù)中心的路由。
文檔編號G06F13/14GK101903872SQ200880121846
公開日2010年12月1日 申請日期2008年12月12日 優(yōu)先權(quán)日2007年12月21日
發(fā)明者大衛(wèi)·阿普蓋爾, 杰彥斯·威加亞拉戈哈凡, 邁克爾·克里斯蒂安 申請人:雅虎公司