專利名稱:用于利用應(yīng)用層重定向?qū)?nèi)容路由到客戶端的服務(wù)器選擇的制作方法
技術(shù)領(lǐng)域:
特定實施例一般地涉及內(nèi)容分發(fā)系統(tǒng)。
背景技術(shù):
內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)是內(nèi)容遞送節(jié)點的分布式網(wǎng)絡(luò)。內(nèi)容遞送節(jié)點對將內(nèi)容傳送 至請求該內(nèi)容的一個或多個客戶端。內(nèi)容遞送節(jié)點通常被分散在很多地理位置上。例如, 一個節(jié)點可能位于紐約,而另一個節(jié)點可能位于舊金山。如果下載大多媒體文件,則選擇非最佳的位置來傳送內(nèi)容可能會導(dǎo)致很大的不利 于內(nèi)容遞送的后果。例如,大量數(shù)據(jù)將必須通過更多的網(wǎng)絡(luò)鏈路被傳輸。這會導(dǎo)致向用戶 傳送內(nèi)容的延遲。例如,如果用戶在舊金山而紐約的服務(wù)器被選擇,則將會經(jīng)受比選擇舊金 山的服務(wù)器更長的等待時間,并且內(nèi)容將必須被不必要地傳輸通過從紐約到舊金山的所有 路程,從而導(dǎo)致服務(wù)提供商網(wǎng)絡(luò)的低效利用。
圖1示出了根據(jù)一個實施例的用于遞送內(nèi)容的系統(tǒng)的示例。圖2示出了根據(jù)一個實施例的可以由客戶端104的瀏覽器下載的頁面的示例。圖3提供了根據(jù)一個實施例的系統(tǒng)中的數(shù)據(jù)流的更詳細(xì)的示例。圖4示出了根據(jù)一個實施例的用于確定內(nèi)容路由決定的方法的簡要流程圖。
具體實施例方式腿特定實施例一般地涉及確定用于遞送內(nèi)容的服務(wù)器。在一個實施例中,從已經(jīng)下載頁面的客戶端接收針對探測鏈接(probelink)的第 一請求。該請求是從應(yīng)用接收的。測試可以被執(zhí)行,以確定能夠最佳地服務(wù)來自客戶端的 內(nèi)容請求的服務(wù)器。例如,針對不同服務(wù)器的往返時間被計算出來,并且針對客戶端確定的 最佳往返時間被選擇。在接收到請求后,內(nèi)容路由器向客戶端發(fā)送重定向,其中該重定向致 使客戶端跟隨重定向去往服務(wù)器。然后,服務(wù)器將重定向發(fā)送回客戶端,客戶端通過向內(nèi)容 路由器發(fā)送第二請求來跟隨該重定向。第二請求被與客戶端相關(guān)聯(lián),并且針對服務(wù)器的往 返時間被計算出來。例如,往返時間是以重定向鏈接被發(fā)送以及第二請求被接收的時間為 基礎(chǔ)的。然后,基于所計算的往返時間,確定服務(wù)器的位置是否應(yīng)該被指定作為客戶端的內(nèi) 容遞送者(content deliverer).例如,多個位置被測試,并且具有最短往返時間的位置可 以被選擇作為內(nèi)容遞送者。特定實施例使用應(yīng)用層重定向來確定服務(wù)器。例如,超文本傳輸協(xié)議(HTTP)重定 向被用來致使客戶端向服務(wù)器發(fā)送重定向。然后,服務(wù)器響應(yīng)于重定向,這使得客戶端將第 二請求發(fā)送回服務(wù)器。因此,提供了可以測量往返時間并確定向用戶遞送內(nèi)容的最佳位置 的應(yīng)用層解決方案。
示例實施例圖1示出了根據(jù)一個實施例的用于遞送內(nèi)容的系統(tǒng)100的示例。如圖所示,提供 了內(nèi)容路由器102、客戶端104、以及多個服務(wù)器106。服務(wù)器106可以被設(shè)立在地理上分散 的不同位置108中。內(nèi)容路由器102被配置為確定應(yīng)該作為用于客戶端104的內(nèi)容遞送者的位置108。 內(nèi)容路由器102是中途攔截定向在⑶N(內(nèi)容分發(fā)網(wǎng)絡(luò))處的客戶請求的裝置。內(nèi)容路由 器的任務(wù)在于確保內(nèi)容是從處于相對于客戶端來說的最佳位置中的服務(wù)器取得的。例如, 可以選擇最接近客戶端104的位置。盡管描述了最接近的位置,但是應(yīng)該理解,可以使用其 他因素來確定哪個服務(wù)器106是向客戶端104遞送內(nèi)容的最佳 服務(wù)器。例如,服務(wù)器106 可以是最接近客戶端104的服務(wù)器,但是遞送來自該位置的內(nèi)容的網(wǎng)絡(luò)可能會經(jīng)受低帶寬 吞吐量或者可能會發(fā)生故障。所以,可以確定不是最接近的服務(wù)器、但是可以更快地遞送內(nèi) 容的另一個服務(wù)器106作為遞送內(nèi)容的最佳服務(wù)器。服務(wù)器106可以是能夠遞送內(nèi)容的任何裝置。例如,服務(wù)器106可以包括能夠?qū)?內(nèi)容遞送至客戶端104的網(wǎng)絡(luò)裝置。在一個示例中,內(nèi)容可以在處于內(nèi)容分發(fā)網(wǎng)絡(luò)中的不 同位置108中的服務(wù)器106上被復(fù)制。根據(jù)位置108,內(nèi)容可能被以不同的等待時間遞送至 客戶端104。例如,期望最接近客戶端104的服務(wù)器106能夠最快地將內(nèi)容遞送至客戶端 104。另外,可以考慮諸如網(wǎng)絡(luò)的可用帶寬、網(wǎng)絡(luò)故障之類的其他因素??蛻舳?04包括可以使用瀏覽器下載諸如網(wǎng)頁之類的頁面的計算機。網(wǎng)頁可以是 允許用戶下載內(nèi)容的門戶(portal)。當(dāng)用戶請求內(nèi)容時,客戶端104可以向內(nèi)容路由器102 發(fā)送請求。位置108可以包括多個服務(wù)器106。例如,位置108可以是包括能夠遞送內(nèi)容的多 個路由器的服務(wù)器群或數(shù)據(jù)中心。本說明書描述了使用服務(wù)器來確定往返時間。服務(wù)器可 以被確定作為位置108的代表,并且被用作確定往返時間的基礎(chǔ)。將會理解,當(dāng)內(nèi)容被遞送 時,所選位置中的任意服務(wù)器可以被使用。如下面將要描述的,在用戶請求內(nèi)容之前,服務(wù)器確定單元110可能已經(jīng)選擇了 應(yīng)該將內(nèi)容遞送至客戶端104的位置108。這個決定可以在用戶請求內(nèi)容之前被確定。服務(wù)器確定單元110使用可以確定向客戶端104遞送內(nèi)容的位置108的應(yīng)用層解 決方案。如下面將更加詳細(xì)地描述的,客戶端104的應(yīng)用可以向內(nèi)容路由器102發(fā)送針對 探測鏈接的請求。然后,內(nèi)容路由器102選擇用于位置108的服務(wù)器106。服務(wù)器確定單 元110然后可以向客戶端104發(fā)送諸如超文本傳輸協(xié)議(HTTP)重定向之類的重定向請求。 這使得客戶端104將消息重定向到服務(wù)器106。然后,服務(wù)器106將重定向發(fā)送回客戶端, 這使得客戶端向內(nèi)容路由器102發(fā)送第二請求。然后,服務(wù)器確定單元110可以確定其對 將被發(fā)送并接收的消息所花費的往返時間。據(jù)此,服務(wù)器確定單元110可以確定服務(wù)器106 是否應(yīng)該被選擇來遞送內(nèi)容。例如,以上處理可以針對多個位置108中的大量服務(wù)器106 執(zhí)行。具有最短往返時間的服務(wù)器106可以被選擇作為內(nèi)容遞送者。可以考慮諸如帶寬之 類的其他因素來確定遞送內(nèi)容最快的服務(wù)器106。圖2示出了根據(jù)一個實施例的可以由客戶端104的瀏覽器下載的頁面200的示 例。盡管示出了頁面200,但是應(yīng)該理解,任何頁面都可以由客戶端104下載。在一個示例 中,頁面200可以是列出可以由用戶播放的內(nèi)容的門戶。如圖所示,設(shè)置了允許用戶播放內(nèi)容204的按鈕202。在這種情況下,不同的電影可以被播放。當(dāng)用戶選擇按鈕202時,用戶 期望內(nèi)容應(yīng)該幾乎立即被播放。例如,用戶可能期望內(nèi)容在2秒鐘內(nèi)被播放。如果在開啟 內(nèi)容時發(fā)生延遲,則用戶可能變得不感興趣并且取消下載。在用戶選擇顯示的項目之后,根據(jù)指向內(nèi)容的統(tǒng)一資源定位符(URL)的類型,HTTP GET或者實時流傳輸協(xié)議(RSTP)DESCRIBE被客戶端104的客戶端應(yīng)用生成。請求去往內(nèi) 容路由器102,內(nèi)容路由器102將客戶端104重定向到適當(dāng)?shù)姆?wù)器106。為了最小化用戶 經(jīng)受的等待時間,內(nèi)容路由決定在播放請求被接收到之前被預(yù)先做出。所以,不需要等待 播放請求(HTTP GET或者RTSP DESCRIBE),當(dāng)頁面200首先在客戶端104的路由器上被加 載時,內(nèi)容路由決定可以被執(zhí)行。在一種情況下,內(nèi)容分發(fā)網(wǎng)絡(luò)不知道門戶頁面何時被下 載,這意味著內(nèi)容路由器102不知道頁面何時被加載。然而,頁面可以在其中包括探測鏈接 (probelink)106o探測鏈接指向內(nèi)容路由器102,從而使得其在頁面被加載時被接觸。
探測鏈接206可以是致使客戶端104向內(nèi)容路由器102發(fā)送針對探測鏈接的請求 的鏈接。探測鏈接206可以被繪制為圖像或者可視(例如,通過使圖像為單獨像素,或者通 過使圖像具有與頁面背景相同的顏色)。例如,當(dāng)圖像在頁面200中被下載時,它使得應(yīng)用 向內(nèi)容路由器102發(fā)送針對將要發(fā)送的探測鏈接的請求。例如,探測鏈接可以是被發(fā)送的 HTTP請求。另外,探測鏈接可以是可視的,并且被嵌入在用于頁面200的代碼中。當(dāng)代碼被 下載時,探測鏈接請求可以被發(fā)送至內(nèi)容路由器102。盡管用戶正在通過關(guān)注內(nèi)容選擇而瀏覽頁面200,但是內(nèi)容路由器102可以在后 臺確定內(nèi)容路由決定。在用戶選擇播放項目之前,內(nèi)容路由器102可以做出內(nèi)容路由決定, 例如,內(nèi)容瀏覽器102可能已經(jīng)選擇服務(wù)器106來向客戶端104遞送內(nèi)容。例如,內(nèi)容路由 器102可能已經(jīng)對用戶的互聯(lián)網(wǎng)協(xié)議(IP)地址和位置108進(jìn)行配對??蛻舳?04和位置 108之間的映射可以被保存在數(shù)據(jù)庫中。當(dāng)請求被接收到時,客戶端104可以被重定向到位 置108,以請求內(nèi)容。這使得該位置處的服務(wù)器106能夠在低等待時間的環(huán)境下向客戶端 104遞送內(nèi)容。盡管描述了頁面200,但是用戶可以以其他方式訪問內(nèi)容。例如,用戶可以選擇通 過電子郵件接收到的媒體鏈接。在這種情況下,鏈接(URL)可以直接指向內(nèi)容文件。當(dāng)內(nèi) 容路由器102從其從未見過的客戶端104接收這個URL時,一系列重定向被觸發(fā),以找出最 佳服務(wù)器106。一旦確定了服務(wù)器,內(nèi)容被從最佳位置傳送,并且來自相同客戶端的所有后 續(xù)請求現(xiàn)在可以被重定向到相同的位置。內(nèi)容路由器102對客戶端104和位置108進(jìn)行配 對,并將這種映射保存在它的數(shù)據(jù)庫中用于將來的請求。來自客戶端104的將來的請求不 需要經(jīng)歷服務(wù)器確定處理,因為數(shù)據(jù)庫查找被用來確定最佳位置108。數(shù)據(jù)庫條目可以在 所配置的時間間隔之后被無效,然后內(nèi)容路由器102針對相同的客戶端再次執(zhí)行相同的確 定。圖3提供了根據(jù)一個實施例的系統(tǒng)100中的數(shù)據(jù)流的更詳細(xì)的示例。針對多個位 置108中的多個服務(wù)器106,以下的處理可以被執(zhí)行。如300處所示,客戶端104可以下載 頁面200。探測鏈接可以被作為頁面200的一部分下載。在302,針對探測鏈接的請求被 發(fā)送至內(nèi)容路由器102。在一個示例中,針對多個探測鏈接的請求可以被發(fā)送。例如,針對 三個位置的探測鏈接可以被發(fā)送至內(nèi)容路由器102。在一個示例中,探測鏈接可以是諸如 HTTP地址內(nèi)容路由器/探測之類的HTTP請求。這可以向內(nèi)容路由器102發(fā)送針對探測鏈接的請求。服務(wù)器確定單元110可以存儲針對客戶端104的標(biāo)識符或IP地址。這隨后被 用來關(guān)聯(lián)用于確定往返時間的從客戶端104接收的第二請求。在304,內(nèi)容路由器102確定測試的位置108,并確定作為代表的服務(wù)器106。然 后,內(nèi)容路由器102向客戶端104發(fā)送將客戶端重定向到所選擇的服務(wù)器106的重定向消 息。例如,諸如狀態(tài)代碼307之類的HTTP重定向被發(fā)送至客戶端104。重定向中的位置字 段可以包含指向?qū)⒁綔y的服務(wù)器106的專用統(tǒng)一資源標(biāo)識符(URI)。這致使客戶端104 對與客戶端106的HTTP連接進(jìn)行初始化。應(yīng)該注意,重定向是從內(nèi)容路由器102到客戶端 104的HTTP請求。這不同于ping命令,ping命令可能不總是行得通。這是因為客戶端可 以處于防火墻后面,并且從客戶端104到內(nèi)容路由器102的無保護的ping命令不能穿過防 火墻。相反,Ping被發(fā)送通過不允許ping的端口。然而,響應(yīng)于請求探測鏈接的客戶端的 HTTP重定向?qū)⒋┻^防火墻。Ping程序根據(jù)互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)回顯請求,確定往 返時間。大量互聯(lián)網(wǎng)服務(wù)供應(yīng)商在他們的邊界處過濾出ICMP回 顯請求。特定實施例使用 諸如HTTP或RTSP重定向之類的應(yīng)用層協(xié)議機制,從而請求可以在未經(jīng)過濾的情況下穿過。另外,對于防火墻,請求被客戶端104初始化,并且防火墻被請求不去防礙剩下的 處理。重定向序列由請求探測鏈接的客戶端104觸發(fā),該客戶端建立與內(nèi)容路由器102的傳 輸控制協(xié)議(TCP)連接,并且做出請求。從內(nèi)容路由器102到客戶端104的響應(yīng)(重定向 命令)在相同的TCP連接上被傳遞到客戶端104。防火墻將重定向命令識別為相同的TCP 處理的一部分,并讓重定向通過。來自服務(wù)器106的重定向也被識別并傳遞。在306,重定向致使客戶端104跟隨重定向,并且對與服務(wù)器306的HTTP連接進(jìn)行 初始化。例如,發(fā)送至客戶端104的重定向被重定向到服務(wù)器106-1。在308,服務(wù)器106-1 檢測專用URI,這使得其將重定向發(fā)送回客戶端304。該重定向被跟隨回到內(nèi)容路由器102。 例如,客戶端104可以向內(nèi)容路由器102發(fā)送HTTP消息contentrouter/probe。這個處理 可以針對被請求的所有探測鏈接執(zhí)行。例如,服務(wù)器106-2和服務(wù)器106-3也可以利用服 務(wù)器106-1的上述探測而被探測。內(nèi)容路由器102將標(biāo)識符與客戶端104相關(guān)聯(lián),然后可 以使用基于前一消息被發(fā)送的時間來計算往返時間。在一個示例中,針對每個服務(wù)器106 的往返時間被計算??梢杂嬎銖脑?04對重定向進(jìn)行初始化到在310來自客戶端104的第 二請求被接收時經(jīng)過的時間。這可以測量服務(wù)器106和客戶端104之間的往返時間。該往 返時間可以包括從內(nèi)容路由器102向客戶端104發(fā)送消息以及從客戶端104向內(nèi)容路由器 102發(fā)送消息所花費的時間。然而,假設(shè)該時間對于所有服務(wù)器106來說都是相同的,則其 可以被包括在計算中。當(dāng)多個位置108被測試時,服務(wù)器確定單元110可以確定最佳服務(wù)器104(或位 置),以指派作為內(nèi)容遞送者。例如,確定這樣的位置,其中服務(wù)器確定單元110確定可以將 內(nèi)容最快地遞送到客戶端104的位置。針對服務(wù)器106的不同的往返時間可以被比較,并 且最佳位置可以基于往返時間來確定。具有最短往返時間的位置108可以被確定作為應(yīng)該 被選擇來向客戶端104遞送內(nèi)容的位置。在一些情況下,最佳位置用帶寬來指示比用等待時間來指示更好。帶寬可以通 過使探測鏈接指向適當(dāng)大小的虛擬HTML文件來測量。在高帶寬路徑上,通過使相應(yīng)的位 置108提供更快的下載,文件可以更快下載。然而,服務(wù)器106不能通過發(fā)布2000K和 307-re-direct 二者來響應(yīng)于GET請求。所以,需要一種在探測文件已經(jīng)被傳輸之后將客戶端104重定向回內(nèi)容路由器102的替代機制。在一個示例中,門戶頁面上的探測鏈接為 <iframe src =,,http://conteritrouter/probe· html,,><ifr£ime>。當(dāng)胃;^立溝 104 /人內(nèi) 足各 由器 102 請求probe, html 時,其被重定向到 HTTP 地址 server-in-locationl/dummy· html。 位于服務(wù)器106上的文件可以是<html><body>< !— 不可視的虛擬數(shù)據(jù)。裝入期望的大小.........—><img src = “ http//contentrouter/probe, jpg“ ></img></body></html>當(dāng)文件被請求時,來自服務(wù)器的HTTP響應(yīng)使用標(biāo)準(zhǔn)報頭字段來防止內(nèi)容的緩存。 例如,來自服務(wù)器106的HTTP響應(yīng)具有被設(shè)置為no-Cache的Cache-Control字段,從而使 得在任何地方dummy, html都不被緩存。加載以上文件使得客戶端104與內(nèi)容路由器接觸, 以請求probe, jpg。這時,內(nèi)容路由器102可以計算往返時間,該往返時間包括用于dummy, html的下載時間。探測處理可以串行或并行執(zhí)行。對于串行處理,客戶端104可以串行請求探測鏈 接。例如,一旦一個往返被完成,則針對探測鏈接的第二請求可以被發(fā)送。如果請求被并行 發(fā)送,則來自服務(wù)器106的第一響應(yīng)可以被看作具有最短往返時間,所以這個服務(wù)器106可 以被選擇作為向客戶端104遞送內(nèi)容的服務(wù)器。不需要等待剩余的位置完成比賽。所以, 做出內(nèi)容路由決定所需的時間被最小化。在后續(xù)實施例中,在頁面200上只提供了一個探測鏈接。內(nèi)容路由器102可以通 過將針對探測鏈接的相同請求重定向多次來逐一地探測服務(wù)器106。當(dāng)存在很多位置時,這 將導(dǎo)致重定向的次數(shù)超過客戶端104的瀏覽器所支持的最大數(shù)目。因此,考慮到多個連續(xù) 的重定向,可以在一個頁面200上提供多個探測鏈接。另外,為了避免重定向限制,單個探測鏈接可以分散到多個探針中。這可以通 過將單個探針制作為在線幀(in-line frame)來實現(xiàn)。例如,門戶頁面上的探測鏈接可 以為 <iframe src = “ http//contentrouter/probe “ ></iframe>,并且 HTTP 地址 contentrouter/probe處的頁面可以看起來如下<html><body><img src =“ http//contentrouter/probe 1〃 ></img><img src =" http//contentrouter/probe2“ ></img><img src =" http//contentrouter/probe3“ ></img></body></html>
所以,加載門戶頁面導(dǎo)致客戶端104請求三個探測鏈接,即探針1、探針2、以及探 針3。這可以將頁面200從內(nèi)容分發(fā)網(wǎng)絡(luò)的內(nèi)部去耦合。例如,頁面200不需要被修改為具 有將要探測的新位置。當(dāng)在線幀被請求時,內(nèi)容路由器102可以利用包含指向單獨的服務(wù)器106的探針 的頁面進(jìn)行響應(yīng)。這避免了從客戶端到內(nèi)容路由器的一個往返。在這種情況下,HTTP地址 contentrouter/probe處的頁面可以為<html>
<body><img src = “ server-in-location 1/probe“ ></img><img src =" server-in-location 2/probe" ></img><img src =" server-in-location 3/probe" ></img></body></html>另外,在頁面200上,不能使用探測鏈接。在這種情況下,下載頁面的媒體請求可 以下載探測鏈接,在這種情況下,在傳送實際內(nèi)容之前進(jìn)行重定向。針對頁面的第一請求, 用戶可能會經(jīng)歷增加的等待時間。RTSP請求還可以使用RTSP重定向請求來往復(fù)??蛻舳?04還可以在到達(dá)內(nèi)容路由器102之前通過一個或多個中間代理。如果這 種情況發(fā)生,則內(nèi)容路由器102不能確定客戶端104的IP地址。內(nèi)容路由器102可能會信 任在代理處生成的請求,這是因為代理充當(dāng)客戶端104進(jìn)行動作。這使得內(nèi)容路由器102 不能可靠的識別來自客戶端104的隨后的請求,以確定往返時間。即,內(nèi)容路由器102需要 確定第一請求何時被從客戶端接收到,并將其與第二請求相關(guān)聯(lián),以確定往返時間。當(dāng)代理被使用時,內(nèi)容路由器102可以服務(wù)于針對探測鏈接的請求并生成用于客 戶端104的標(biāo)識符。該標(biāo)識符可以被以HTTP cookie的形式發(fā)送至客戶端104。內(nèi)容路由 器102將內(nèi)容路由決定記錄在它的數(shù)據(jù)庫中,作為標(biāo)識符和所選擇的位置108之間的映射。 下次客戶端104從內(nèi)容路由器102請求內(nèi)容時,客戶端104發(fā)送cookie,其可以被用來使用 標(biāo)識符執(zhí)行數(shù)據(jù)庫查找。這提供了被選擇用于客戶端104的位置。圖4示出了根據(jù)一個實施例的用于確定內(nèi)容路由決定的方法的簡要流程圖400。 步驟402接收對于探測鏈接的請求。探測鏈接可以在內(nèi)容路由器102處從客戶端104接收。步驟404確定在其中測量往返時間的服務(wù)器106。例如,位置108處的服務(wù)器可以 被確定。在步驟406,重定向請求被從內(nèi)容路由器102發(fā)送至客戶端104。該請求將客戶端 104重定向到服務(wù)器106。服務(wù)器106也將重定向發(fā)送回客戶端104,這使得客戶端向內(nèi)容 路由器102發(fā)送第二請求。在步驟408,內(nèi)容路由器102從客戶端104接收第二請求。在410,內(nèi)容路由器102確定往返時間。這個處理可以針對多個服務(wù)器執(zhí)行。步驟412確定是否應(yīng)該探測更多的位置108。 如果是,則該處理重復(fù)到步驟406,其中其他重定位被發(fā)送。如果不需要探測更多的位置 108,則步驟414確定應(yīng)該作為客戶端104的內(nèi)容遞送者的位置108。這可以是最接近客戶 端104的位置108,也可以是具有最大帶寬的位置108。特定實施例提供了很多優(yōu)點。例如,額外的等待時間不會被附加到針對內(nèi)容的請求上。相反,內(nèi)容路由決定是在用戶請求內(nèi)容之前執(zhí)行的。另外,不需要對層3或?qū)?進(jìn)行 增強。另外,不需要域名服務(wù)(DNS)支持。相反,在客戶端104處的應(yīng)用對探測鏈接請求進(jìn) 行初始化的情況下,提供了應(yīng)用層解決方案。通過使用重定向,防火墻的存在將不是問題。 這是因為內(nèi)容路由器102向應(yīng)于來自客戶端104的請求。盡管針對本發(fā)明的特定實施例描述了本發(fā)明,但是這些特定實施例只是說明性 的,而不是限制性的。包括C、C++、Java、匯編語言等在內(nèi)的任何適當(dāng)?shù)木幊陶Z言都可以被用來執(zhí)行特定 實施例的例程??梢圆捎弥T如程序上的或者對象導(dǎo)向的不同編程技術(shù)。例程可以在單個處 理裝置或多個處理器上執(zhí)行。盡管步驟、操作、或者計算被以特定次序示出,但是在不同的 特定實施例中這種次序可以改變。在一些特定實施例中,如本說明書中順序示出的多個步 驟可以被同時執(zhí)行。
用于特定實施例的“計算機可讀介質(zhì)”可以是包含、存儲、傳送、傳播、或傳輸用于 指令執(zhí)行系統(tǒng)、設(shè)備、系統(tǒng)或裝置的任意介質(zhì)。計算機可讀介質(zhì)例如可以是電、磁、光、電磁、 紅外、或半導(dǎo)體系統(tǒng)、設(shè)備、系統(tǒng)、裝置、傳播介質(zhì)、或計算機存儲器,這里的舉例只是示例性 的而不是限制性的。特定實施例可以以軟件、硬件或者它們的組合中的控制邏輯的形式實 現(xiàn)。當(dāng)由一個或多個處理器執(zhí)行時,控制邏輯可操作以執(zhí)行特定實施例中描述的處理。可以通過使用編程的通用數(shù)字計算機、使用專用集成電路、可編程邏輯裝置、現(xiàn)場 (field)可編程門陣列、光學(xué)、化學(xué)、生物學(xué)、量子或納米技術(shù)系統(tǒng)來實現(xiàn)特定實施例。一般, 特定實施例的功能可以通過現(xiàn)有技術(shù)中已知的任意裝置來實現(xiàn)??梢允褂梅植际?、聯(lián)網(wǎng)系 統(tǒng)、部件、和/或電路。數(shù)據(jù)的通信或傳輸可以是有線的、無線的、或者任意其他方式。應(yīng)該明白,附圖中示出的一個或多個元件也可以以更加分散或綜合的方式實現(xiàn), 或者可以在某些情況中不可操作的情況下被去除或者棄用,如根據(jù)特定應(yīng)用所使用。實現(xiàn) 可以被存儲在機器可讀介質(zhì)中的程序或代碼以允許計算機執(zhí)行上述任何方法也在本發(fā)明 的精神和范圍內(nèi)。說明書及隨后的權(quán)利要求書中使用的“一”、“一個”、“該”包括多種引用,除非上下 文清楚地做出例外聲明。另外,說明書及隨后的權(quán)利要求中使用的“中”的意思包括“中”和 “上”,除非上下文清楚地做出例外聲明。所以,盡管這里描述了特定實施例,但是在前面的公開中預(yù)期了各種修改、各種改 變和替代。應(yīng)該明白,在不脫離所述的范圍和精神的條件下,可以不相應(yīng)地使用其他特征而 僅采用特定實施例中的一些特征。所以,可以作出很多修改,以適應(yīng)實質(zhì)范圍和精神的情形 和材料。
權(quán)利要求
一種方法,包括從已經(jīng)下載頁面的客戶端接收針對探測鏈接的第一請求;確定能夠服務(wù)來自所述客戶端的內(nèi)容請求的位置中的服務(wù)器;向所述客戶端發(fā)送重定向消息,所述重定向消息致使所述客戶端跟隨所述重定向消息去往所述服務(wù)器,并接收返回到所述客戶端的重定向;基于在所述客戶端處接收自所述服務(wù)器的所述重定向,從所述客戶端接收第二請求;將所述第二請求與所述探測鏈接相關(guān)聯(lián);針對所述服務(wù)器計算往返時間;以及基于所計算的往返時間,確定所述位置是否應(yīng)該被指定為所述客戶端的內(nèi)容遞送者。
2.根據(jù)權(quán)利要求1所述的方法,還包括 針對多個位置計算多個往返時間;以及基于所計算的往返時間,確定所述多個位置中的位置作為所述內(nèi)容遞送者。
3.根據(jù)權(quán)利要求1所述的方法,還包括針對多個位置向所述客戶端發(fā)送多個重定向消息;以及基于首先接收到來自服務(wù)器的第二請求的位置,確定所述多個位置中的所述位置作為 所述內(nèi)容遞送者。
4.根據(jù)權(quán)利要求1所述的方法,其中所述重定向消息是穿過客戶端的防火墻的重定向 消息。
5.根據(jù)權(quán)利要求1所述的方法,其中所述第一請求是從所述客戶端處的應(yīng)用接收的。
6.根據(jù)權(quán)利要求1所述的方法,其中所述內(nèi)容遞送者是在針對內(nèi)容的內(nèi)容請求被接收 之前被確定的。
7.根據(jù)權(quán)利要求6所述的方法,還包括當(dāng)所述內(nèi)容請求被接收時,將所述客戶端重定 向到所確定的位置。
8.根據(jù)權(quán)利要求1所述的方法,其中所述往返時間是基于所述重定向消息被發(fā)送至所 述客戶端的時間以及所述第二請求是何時被接收的。
9.根據(jù)權(quán)利要求1所述的方法,其中所述重定向消息使得文件被從所述服務(wù)器下載。
10.一種設(shè)備,包括 一個或多個處理器;以及編碼在一個或多個有形介質(zhì)中由所述一個或多個處理器執(zhí)行的邏輯,當(dāng)所述邏輯被執(zhí) 行時可操作用于從已經(jīng)下載頁面的客戶端接收針對探測鏈接的第一請求; 確定能夠服務(wù)來自所述客戶端的內(nèi)容請求的位置中的服務(wù)器; 向所述客戶端發(fā)送重定向消息,所述重定向消息致使所述客戶端跟隨所述重定向消息 去往所述服務(wù)器并接收返回到所述客戶端的重定向;基于在所述客戶端接收自所述服務(wù)器的所述重定向,從所述客戶端接收第二請求; 將所述第二請求與所述探測鏈接相關(guān)聯(lián); 針對所述服務(wù)器計算往返時間;以及基于所計算的往返時間,確定所述位置是否應(yīng)該被指定為所述客戶端的內(nèi)容遞送者。
11.根據(jù)權(quán)利要求10的設(shè)備,其中所述邏輯被執(zhí)行時還可操作用于針對多個位置計算多個往返時間;以及基于所計算的往返時間,確定所述多個位置中的位置作為所述內(nèi)容遞送者。
12.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述邏輯被執(zhí)行時還可操作用于 針對多個位置向所述客戶端發(fā)送多個重定向消息;以及基于首先接收到來自服務(wù)器的第二請求的位置,確定所述多個位置中的所述位置作為 所述內(nèi)容遞送者。
13.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述重定向消息是穿過客戶端的防火墻的重定 向消息。
14.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述第一請求是從所述客戶端處的應(yīng)用接收的。
15.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述內(nèi)容遞送者是在針對內(nèi)容的內(nèi)容請求被接 收到之前被確定的。
16.根據(jù)權(quán)利要求15所述的設(shè)備,其中所述邏輯被執(zhí)行時還可操作用于在所述內(nèi)容請 求被接收到時將所述客戶端重定向到所確定的位置。
17.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述往返時間是基于所述重定向消息被發(fā)送到 所述客戶端的時間和所述第二請求是何時被接收到的。
18.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述重定向消息使得文件被從所述服務(wù)器下載。
19.一種設(shè)備,包括用于從已經(jīng)下載頁面的客戶端接收針對探測鏈接的第一請求的裝置; 用于確定能夠服務(wù)來自所述客戶端的內(nèi)容請求的位置中的服務(wù)器的裝置; 用于向所述客戶端發(fā)送重定向消息的裝置,所述重定向消息致使所述客戶端跟隨所述 重定向消息去往所述服務(wù)器并接收返回到所述客戶端的重定向;用于基于在所述客戶端接收自所述服務(wù)器的所述重定向從所述客戶端接收第二請求 的裝置;用于將所述第二請求與所述探測鏈接相關(guān)聯(lián)的裝置; 用于針對所述服務(wù)器計算往返時間的裝置;以及用于基于所計算的往返時間,確定所述位置是否應(yīng)該被指定為所述客戶端的內(nèi)容遞送 者的裝置。
20.根據(jù)權(quán)利要求19所述的設(shè)備,還包括用于計算針對多個位置的多個往返時間的裝置;以及用于基于所計算的往返時間,確定所述多個位置中的位置作為所述內(nèi)容遞送者的裝置。
全文摘要
在一個實施例中,從已經(jīng)下載了頁面的客戶端接收對于探測鏈接的第一請求。該請求是從應(yīng)用接收的。測試可以被執(zhí)行以確定最佳地服務(wù)來自客戶端的內(nèi)容請求的服務(wù)器。在接收到請求后,內(nèi)容路由器向客戶端發(fā)送重定向,其中該重定向致使客戶端跟隨重定向去往服務(wù)器。然后,服務(wù)器將重定向發(fā)送回客戶端,客戶端通過向內(nèi)容路由器發(fā)送第二請求來跟隨重定向。第二請求被與客戶端相關(guān)聯(lián),并且針對服務(wù)器的往返時間被計算出來。然后,基于計算出來的往返時間確定服務(wù)器的位置是否應(yīng)該被指定作為客戶端的內(nèi)容遞送者。
文檔編號H04L12/26GK101971597SQ200980108421
公開日2011年2月9日 申請日期2009年3月10日 優(yōu)先權(quán)日2008年3月13日
發(fā)明者安尼爾·托馬斯, 迪帕克·普諾蘭·庫羅斯, 馬赫什·查克拉瓦西·維塔爾·維韋賈納德罕 申請人:思科技術(shù)公司