用于內容分布的服務器選擇的制作方法
【專利摘要】本發明涉及用于內容分布的服務器選擇。在實施例中,一種方法包括:接收第一服務器計算機的第一路由表;接收第二服務器計算機的第二路由表;從客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的請求,其中所述請求包括客戶端計算機的客戶端互聯網協議地址;至少部分基于客戶端互聯網協議地址、第一路由表及第二路由表,評估第一服務器計算機到客戶端計算機比第二服務器計算機到客戶端計算機更接近;至少部分基于評估第一服務器計算機比第二服務器計算機更接近客戶端計算機,向客戶端計算機發送客戶端計算機的第一地址,其中第一地址識別存儲在第一服務器計算機上的媒體項目標題。
【專利說明】用于內容分布的服務器選擇
[0001]利益聲明
[0002]本申請要求于2013年9月24日提交的美國臨時申請61/881599的優先權。
【技術領域】
[0003]本公開一般涉及數據通信網絡。更具體地,本公開涉及用于評估內容服務器計算機到客戶端計算機的接近度的技術。
【背景技術】
[0004]本節中描述的方法是可實行的方法,但不必是以前設想或實行的方法。因此,除非另外指出,否則不應僅憑借其包含在本節中而假設本節中描述的任何方法適用于現有技術。
[0005]通過客戶端計算機,用戶可選擇電影或其他媒體在用戶的客戶端計算機或與客戶端計算機連接的設備上觀看和/或收聽。客戶端計算機可從分布于一個或多個互聯網絡上的一個或多個內容服務器計算機請求和下載內容。
[0006]客戶端計算機觀測的吞吐量和延遲基于很多因素。例如,吞吐量和延遲內容數據可穿過的網絡的數量、所穿過的任何網絡的帶寬、所穿過的任何網絡的網絡擁塞、以及客戶端計算機與內容服務器計算機之間的距離的影響。因此,用戶體驗的體驗質量基于一天中的時間、當前互聯網服務提供商以及客戶端計算機正在從其下載內容的特定內容服務器計算機而變化很大。
[0007]維護內容服務器計算機的內容提供商可試圖通過在更多內容服務器計算機上托管內容來提升用戶的體驗質量。但是,客戶端計算機仍然會不注意地不必要地選擇從內容服務器計算機下載內容,在該內容服務器計算機中,內容可能穿過多個有限的擁塞的網絡。因此,即使其他內容服務器計算機可能是足夠且可用的,用戶的體驗質量也會受到損害。
[0008]內容提供商可試圖通過在內容分布網絡(“⑶N”)上托管內容來增加用戶的體驗質量。通常,⑶N是部署于跨越一組分布于各地的網絡的多個數據中心中的服務器計算機的大型分布式系統。CDN的目的是向客戶端計算機傳遞高可用性高性能內容。但是,在CDN上托管內容與其他解決方案相比可能非常昂貴。而且,當更便宜的內容服務器計算機足夠且可用時,客戶端計算機可選擇從昂貴的CDN下載內容,CDN根據有多少數據轉移到客戶端計算機來向內容提供商索取費用。
【發明內容】
[0009]所附權利要求可作為本發明的
【發明內容】
。
【專利附圖】
【附圖說明】
[0010]在附圖中:
[0011]圖1示出了在示例性實施例中的包括分布于多個互聯網絡的控制服務器計算機、內容服務器計算機及客戶端計算機的系統。
[0012]圖2示出了在示例性實施例中的控制服務器計算機。
[0013]圖3示出了在示例性實施例中的響應于接收對關于保存媒體項目標題的內容服務器計算機的信息的請求,評估和選擇最近的一個或多個內容服務器計算機的流程。
[0014]圖4示出了根據示例性實施例的評估哪些保存所請求的媒體項目的拷貝的內容服務器計算機最接近客戶端計算機的流程。
[0015]圖5示出了在示例性實施例中的用于對于特定客戶端計算機為被評估為最近的內容服務器計算機分配等級的流程。
[0016]圖6示出了在示例性實施例中的用于排序每個等級中的最近內容服務器計算機的流程。
[0017]圖7是示出了在其上可實現實施例的計算機系統。
【具體實施方式】
[0018]為進行解釋,在以下描述中闡述了多個具體細節以便提供對本發明的全面理解。但是,顯然本發明可沒有這些具體細節而實踐。在其他示例中,熟知的結構和設備以方框圖形式示出以避免不必要地模糊對本發明。
[0019]此處按照以下提綱來描述實施例:
[0020]1.0 概述
[0021]2.0網絡拓撲結構
[0022]2.1控制服務器計算機
[0023]2.2 網站
[0024]2.3內容服務器計算機
[0025]2.4客戶端計算機
[0026]3.0流程概述
[0027]4.0控制服務器計算機組件及流程
[0028]4.1內容服務器數據庫
[0029]4.2路由表存儲庫
[0030]4.3接近度評估單元
[0031]4.3.1前綴及CIDR塊記法
[0032]4.3.2 AS-Path 屬性
[0033]4.3.3多出口鑒別器屬性
[0034]4.3.4地理位置屬性
[0035]4.3.5利用社區屬性
[0036]4.3.6為內容分布網絡確定接近度
[0037]4.4基于費用分組內容服務器計算機
[0038]4.4.1 等級
[0039]4.4.2等級分配單元
[0040]4.5負載平衡
[0041]4.6容錯性及配置
[0042]4.7為同一標題的多個文件獨立評估接近度
[0043]5.0實現機制——硬件概述
[0044]6.0本公開的其他方面
[0045]1.0 概述
[0046]描述了評估內容服務器計算機到客戶端計算機的接近度的方法。在實施例中,該方法包括:接收第一服務器計算機的第一路由表;接收第二服務器計算機的第二路由表;從客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的請求,其中該請求包括客戶端計算機的客戶端互聯網協議地址;至少部分基于客戶端互聯網協議地址、第一路由表及第二路由表,評估第一服務器計算機到客戶端計算機比第二服務器計算機到客戶端計算機更接近;至少部分基于評估第一服務器計算機比第二服務器計算機更接近客戶端計算機,向客戶端計算機發送至客戶端計算機的第一地址,其中第一地址識別存儲在第一服務器計算機上的媒體項目標題。在實施例中,該評估包括評估第一服務器計算機在物理位置上到客戶端計算機比第二服務器計算機到客戶端計算機更接近。
[0047]在實施例中,該方法包括:接收第三服務器計算機的第三路由表;至少部分基于客戶端互聯網協議地址、第一路由表及第三路由表,評估第一服務器計算機到客戶端計算機與第三服務器計算機到客戶端計算機一樣接近;至少部分基于評估第一服務器計算機到客戶端計算機與第三服務器計算機到客戶端計算機一樣接近,向客戶端計算機發送第二地址,其中第二地址識別存儲在第三服務器計算機上的媒體項目標題。
[0048]在實施例中,客戶端計算機是第一客戶端計算機,請求是第一請求,客戶端互聯網協議地址是第一客戶端互聯網協議地址;該方法進一步包括:從第二客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的第二請求,其中該第二請求包括第二客戶端計算機的第二客戶端互聯網協議地址;至少部分基于第二客戶端互聯網協議地址、第一路由表及第二路由表,評估第二服務器計算機到第二客戶端計算機比第一服務器計算機到第二客戶端計算機更接近;至少部分基于評估第二服務器計算機到第二客戶端計算機比第一服務器計算機到第二客戶端計算機更接近,向第二客戶端計算機發送至第二客戶端計算機的第二地址,其中第二地址識別存儲在第二服務器計算機上的媒體項目標題。
[0049]在其他實施例中,本發明包括計算機裝置和配置為執行上述步驟的計算機可讀介質。
[0050]2.0網絡拓撲結構
[0051]通過客戶端計算機,用戶可選擇媒體項目(例如,電影、有聲書、圖像、音樂或其任意部分)在用戶的客戶端計算機上觀看和/或收聽。客戶端計算機可從分布于一個或多個互聯網絡的內容服務器計算機請求和下載該媒體項目。客戶端計算機在客戶端計算機與內容服務器計算機之間觀測的吞吐量和延遲基于很多因素,例如,所穿過的網絡的數量、所穿過的任何網絡的帶寬、所穿過的任何網絡的網絡擁塞、以及客戶端計算機與內容服務器計算機之間的距離。因此,客戶端計算機可通過從距離客戶端計算機最近的內容服務器計算機請求和下載媒體項目來提高觀測的吞吐量及降低觀測的延遲。最近的內容服務器計算機可以是在網絡拓撲結構方面和/或地理位置方面最接近。
[0052]圖1示出了在示例性實施例中的包括分布于多個互聯網絡的控制服務器計算機、內容服務器計算機及客戶端計算機的數據處理系統。雖然圖1示出了具體實施例以便展示清晰的示例,但是其他實施例可忽略、加入、重排和/或修改所示任意元件。在圖1中,系統100包括多個互聯網絡:互聯網110、第一網絡112、第二網絡114、互聯網服務提供商(“ISP”)網絡116、傳輸網絡118及內容分發網絡(“CDN”)180。
[0053]示于圖1中的每個網絡廣泛地包括一個或多個其他網絡的結合。例如,雖然互聯網110示為單一網絡,但是互聯網110由很多公有和私有的互聯網絡及互聯網組成。
[0054]第一網絡112、第二網絡114和ISP網絡116可以為對等網絡。對等網絡是管理上分離的網絡的互連以便在每個網絡之間交換業務。通常,在對等網絡協議中,一方不向另一方為交換的業務支付費用。例如,在內容服務器計算機133上存儲數據且使數據從內容服務器計算機133通過第二網絡114和第一網絡112發送給客戶端計算機192的內容提供商,幾乎沒有任何費用。
[0055]ISP網絡116可以為由ISP維護的網絡。ISP網絡也可被稱為嵌入式網絡。ISP可希望在其自己的網絡上托管內容以更快地向用戶提供頻繁請求的內容。例如,如果媒體項目被頻繁請求(例如最近發布的電影),則ISP可在ISP網絡上的內容服務器計算機(例如,內容服務器計算機136)上存儲該媒體項目的拷貝。因此,客戶端計算機(例如,客戶端計算機194)可接收存儲在內容服務器計算機136上的內容比接收存儲在例如第一網絡112上的內容服務器計算機131上的內容更快。通常,不是擁有ISP網絡的ISP但在ISP網絡上存儲內容的內容提供商,幾乎沒有任何費用。
[0056]傳輸網絡118是可使網絡業務在兩個網絡之間穿過或“傳輸”的傳輸網絡。傳輸網絡對于某些客戶端計算機和/或網絡可以為對等網絡。為了展示清晰的示例,此處傳輸網絡118是對于所有示于圖1中的客戶端計算機和/或網絡的傳輸網絡。例如,連接到ISP網絡116的客戶端計算機196可請求存儲在位于傳輸網絡118上的內容服務器計算機138上的媒體項目。內容服務器計算機138可通過傳輸網絡118和ISP網絡116發送所請求的媒體項目給客戶端計算機196。傳輸網絡118管理員可向在內容服務器計算機138上存儲媒體項目的內容提供商為在傳輸網絡118上消耗帶寬索取費用。在一些情況下,例如之前的示例,客戶端計算機194的內容提供商和ISP分擔費用。
[0057]⑶N180是內容分布網絡或內容分發網絡。通常,⑶N是部署于跨越一組分布于各地的網絡的多個數據中心中的服務器計算機的大型分布式系統。CDN的目的是向客戶端計算機傳遞高可用性高性能內容。CDN通常由內容提供商(例如媒體公司)為傳遞內容提供商的內容給終端用戶而付費。CDN傳輸數據給客戶端計算機可能比傳輸網絡更加昂貴。
[0058]2.1控制服務器計算機
[0059]系統100包括連接到內容服務器計算機131、內容服務器計算機132、內容服務器計算機133、內容服務器計算機134、內容服務器計算機136、內容服務器計算機138、及虛擬內容服務器計算機182(共同稱為“內容服務器計算機130”)的控制服務器計算機102。控制服務器計算機102也連接到客戶端計算機192、客戶端計算機194、及客戶端計算機196 (共同稱為“客戶端計算機190”)。控制服務器計算機102通過一個或多個網絡(互聯網110、第一網絡112、第二網絡114、ISP網絡116、傳輸網絡118和/或⑶N180)連接到內容服務器計算機130和客戶端計算機190。在一些實施例中,內容服務器計算機或客戶端計算機可位于與控制服務器計算機102相同的網絡中。
[0060]控制服務器計算機102可從客戶端計算機190中的一個接收一個或多個對關于保存特定媒體項目標題的內容服務器計算機130的信息的請求。作為響應,控制服務器計算機102可向提出請求的客戶端計算機發送如下所述的信息,所述信息包含一個或多個被評估為最近的保存特定媒體項目標題的內容服務器計算機的地址,和/或存儲在一個或多個被評估為最近的內容服務器計算機上的特定媒體項目或文件的地址。地址可以為統一資源定位符(“URL”)或任意其他識別特定服務器計算機或識別一個或多個服務器計算機上的媒體項目或文件的字符串或數據。控制服務器計算機102可將地址分組為一個或多個等級、對地址進行排序和/或為每個地址分配權重。控制服務器計算機102的組件和流程將在以下其他章節中進一步討論。
[0061]2.2 網站
[0062]網站包括一個或多個內容服務器計算機。網站中的內容服務器計算機通過路由器連接到一個或多個網絡。為方便表示,在特定路由器“后面”的內容服務器計算機通過特定路由器連接到其他網絡或設備。在路由器后面的內容服務器計算機被認為在同一網站中,因為在客戶端與任意在同一路由器后面的服務器之間的網絡拓撲結構大體上相同。
[0063]在圖1中,系統100包括網站152、網站153、網站154、網站156、網站158、及虛擬網站184(共同稱為“網站150”)。網站152包括內容服務器計算機131和內容服務器計算機132,每個內容服務器計算機通過路由器142連接到第一網絡112。網站153包括通過路由器143連接到第二網絡114的內容服務器計算機133。網站154包括通過路由器144連接到第二網絡114的內容服務器計算機134。網站156包括通過路由器146連接到ISP網絡116的內容服務器計算機136。網站158包括通過路由器148連接到傳輸網絡118的內容服務器計算機138。
[0064]從任意在同一網站中的內容服務器計算機(即,通過同一路由器)發送給特定客戶端的數據穿過大體相同的網絡路徑。為了展示清晰的示例,假設客戶端計算機196從內容服務器計算機131請求第一媒體項目,并且客戶端計算機196從內容服務器計算機132請求第二媒體項目。內容服務器計算機131可通過路由器142、第一網絡112、第二網絡114和ISP網絡116發送來自第一媒體項目的數據給客戶端計算機196。同樣地,內容服務器計算機132可通過路由器142、第一網絡112、第二網絡114和ISP網絡116發送來自第二媒體項目的數據給客戶端計算機196。如此例所示,由于內容服務器計算機131和內容服務器計算機132在網站152中(即,內容服務器計算機131和內容服務器計算機132通過路由器142連接到客戶端計算機196),因此,來自第一媒體項目的數據和來自第二媒體項目的數據采取了相似的路徑。
[0065]控制服務器計算機102可基于在同一網站中的內容服務器計算機具有相似的吞吐量的原則進行配置。如果內容服務器計算機不具有相似的吞吐量,則管理員可在不同路由器后面放置不同的內容服務器計算機。因此,具有不同性能的內容服務器計算機在不同網站中。例如,內容服務器計算機131具有相似于內容服務器計算機132的硬件配置。因此,如圖1所示,管理員可配置內容服務器計算機131和內容服務器計算機132在同一路由器142的后面,并且因此在同一網站(網站152)中。相反,內容服務器計算機133可具有不同于內容服務器計算機134的硬件配置。例如,內容服務器計算機133可能具有檢索數據大大慢于安裝在內容服務器計算機134中的固態驅動器的盤驅動器。因此,管理員可配置內容服務器計算機133和內容服務器計算機134分別在路由器143和路由器144的后面。因此,內容服務器計算機133和內容服務器計算機134分別處在不同網站中,例如,網站153和網站154。
[0066]此外或替換地,網站可以為邏輯分割的。控制服務器計算機102可存儲從每個內容服務器計算機到邏輯網站的映射。為了展示清晰的示例,假設路由器143和路由器144是同一路由器,因此內容服務器計算機133和內容服務器計算機134在同一路由器后面。還假設內容服務器計算機133具有不同于內容服務器計算機134的硬件配置,該硬件配置導致內容服務器計算機133具有低于內容服務器計算機134的吞吐量。控制服務器計算機102可存儲將內容服務器計算機133分配到網站153和將內容服務器計算機134分配到網站154的映射。因此,在每個邏輯網站中的所有內容服務器計算機可表現相似。
[0067]網站可彼此臨近。例如,即使內容服務器計算機133和內容服務器計算機134物理上位于同一房間,因為內容服務器計算機133和內容服務器計算機134可在不同路由器后面,因此可在不冋網站中。
[0068]系統100還包括虛擬網站184,其包括虛擬內容服務器計算機182。對⑶N上的媒體項目的請求可被轉發給在任意數量位置中的任意數量的內容服務器計算機。即使在CDN的所有內容服務器計算機在地理位置上都不同,CDN的所有服務器對任意給定客戶端也有望表現相似。因此,控制服務器計算機102可視⑶N(例如,⑶N18)為好像⑶N包括單一網站(例如,虛擬網站184),該單一網站包括單一內容服務器計算機(例如,虛擬內容服務器計算機182)。
[0069]2.3內容服務器計算機
[0070]內容服務器計算機130存儲和提供媒體項目。媒體項目包含編碼的媒體內容,當該編碼的媒體內容被計算機或在計算機上運行的軟件讀取時,可被用于播放電影、電視節目、有聲書、播客、圖片、幻燈片或任意其他可向用戶呈現或播放的媒體內容的至少一部分。
[0071]一組媒體項目可共同包含整條編碼的多媒體內容,并且在該組媒體項目中的每個媒體項目可包含整條編碼的多媒體內容的一部分。例如,一組媒體項目可共同包含編碼的電影,并且在一組媒體項目中的每個媒體項目可包含該數字編碼的電影的兩秒的數據塊。
[0072]多組媒體項目可表示不同質量等級的同一電影。例如,第一組和第二組媒體項目均可包含特定的編碼的電影。但是,第一組媒體項目可能包含低于第二組媒體項目的比特率的特定的編碼的電影。此外或替換地,第一組媒體項目可以以兼容第一類型的客戶端計算機的第一格式,例如,臺式計算機上運行的瀏覽器;而第二組媒體項目可以以兼容第二類型的客戶端計算機的第二格式,例如,移動設備上運行的應用。
[0073]媒體內容通常要求大量的存儲空間。媒體項目庫可超過拍字節(petabyte)。由于媒體庫的規模這樣大,因此單一內容服務器計算機可包含一組包括庫中的媒體標題的一部分的媒體項目。
[0074]整個庫可分布于多個內容服務器計算機。例如,每個網站150可包含分布于網站中的內容服務器計算機的整個庫的拷貝。此外或替換地,為了冗余,每個網站可存儲兩個或兩個以上整個庫的拷貝,并且每個網站可將其庫的拷貝分布于網站中的內容服務器計算機。在實施例中,同一媒體項目的兩個拷貝不可存儲在同一內容服務器計算機上。
[0075]此外或替換地,每個網站可存儲整個庫的至少一部分,并且每個網站可將其庫的一部分分布于網站中的內容服務器計算機。此外或替換地,媒體項目可至少部分基于流行度進行優先化。存儲較高優先級媒體項目的拷貝的內容服務器計算機比存儲較低優先級媒體項目的多。
[0076]2.4客戶端計算機
[0077]客戶端計算機可以為臺式計算機、筆記本電腦、平板電腦、電話、其他移動設備、游戲控制器、機頂盒、流媒體播放器、影碟播放器、電視、混合電視、或任意其他能夠請求、接收、流送、播放和/或顯示來自內容服務器計算機的媒體項目的計算設備。例如,在圖1中,客戶端計算機192可以為臺式計算機,客戶端計算機194可以為游戲控制器,客戶端計算機196可以為移動電話或智能電話。
[0078]客戶端計算機可包括通過路由器連接到另一網絡的其自身的網絡。例如,客戶端計算機可以為連接到路由器、連接到有線調制解調器、連接到ISP、及連接到一個或多個其他網絡的機頂盒。
[0079]在圖1中,系統100包括客戶端計算機192、客戶端計算機194及客戶端計算機196(共同稱為“客戶端計算機190”)。客戶端計算機190連接系統100中的每個服務器。例如,客戶端計算機192可通過第一網絡112(具體通過路由器142)連接內容服務器計算機131和內容服務器計算機132。客戶端計算機192可通過第一網絡112和第二網絡114(具體通過路由器143和路由器144)分別連接內容服務器計算機133和內容服務器計算機134。客戶端計算機192可通過第一網絡112、第二網絡114和ISP網絡116 (具體通過路由器146)連接內容服務器計算機136。客戶端計算機192可通過第一網絡112、第二網絡114和傳輸網絡118 (具體通過路由器148)連接內容服務器計算機138。客戶端計算機192可通過第一網絡112、互聯網110和⑶N180連接虛擬內容服務器計算機182。客戶端計算機192可通過第一網絡112和互聯網110連接控制服務器計算機102。
[0080]3.0流程概述
[0081]圖3示出了在示例性實施例中的響應于接收對關于保存媒體項目標題的內容服務器計算機的信息的請求,評估和選擇最近的一個或多個內容服務器計算機的流程。雖然圖3示出了根據實施例的示例性步驟,但是其他實施例可忽略、加入、重排和/或修改所示任意步驟。為了展示清晰的示例,圖3參照圖1進行描述,但圖1的采用特定布置在其他實施例中不要求。
[0082]在圖3中,步驟305,控制服務器計算機(例如,控制服務器計算機102(圖1))收集多個路由表。路由表是存儲在包含關于連接到路由器或服務器計算機的網絡的拓撲結構的信息的路由器和/或服務器計算機上的數據表或數據的集合。BGP路由表是包含互聯網協議(“IP”)網絡或指定網絡可達性的前綴的路由列表的表或數據集合。存儲在BGP路由表中的每個路由還可包括其他屬性:AS-Path、MED、地理位置及社區屬性。存儲于被存儲在路由器和/或服務器計算機上的BGP路由表中的路由被傳播給其他路由器和/或服務器計算機,以使其他路由器和/或服務器計算機知道新的網絡和/或網絡的新的路由。
[0083]返回到步驟305,在一個實施例中,控制服務器計算機102為每個內容服務器計算機130、路由器140和/或網站150收集路由表。例如,每個內容服務器計算機130可維護其自身的路由表或從內容服務器計算機處于其后面的路由器下載路由表。每個內容服務器計算機130可向控制服務器計算機102上傳其路由表。控制服務器計算機102可將接收到的路由表存儲在路由表存儲庫或數據庫中,并且將接收到的路由表與上傳該路由表的內容服務器計算機相關聯。如果第一路由表與路由表存儲庫中的第二路由表相同,則控制服務器計算機102可刪除第二路由表。控制服務器計算機102可將關聯被刪除的第二路由表的內容服務器計算機與第一路由表相關聯。
[0084]此外或替換地,路由器140和/或網站150可以與路由表相關聯。例如,每個路由器140可向控制服務器計算機102上傳路由表。控制服務器計算機102可將上傳的路由表存儲在路由表存儲庫中,并且將路由表與路由器、路由器所屬的網站和/或路由器后的每個內容服務器計算機相關聯。控制服務器計算機102可包括路由器和網站、網站和內容服務器計算機和/或路由器和內容服務器計算機的映射。
[0085]在步驟310,控制服務器計算機102接收來自客戶端計算機的對關于保存媒體項目標題或媒體項目標題的一部分的內容服務器計算機的信息的請求。例如,與客戶端計算機192交互的用戶可通過圖形用戶界面選擇特定電影(“電影XYZ”)在客戶端計算機192上觀看。作為響應,客戶端計算機192向控制服務器計算機102發送對關于保存電影XYZ的拷貝的內容服務器計算機的信息的請求。控制服務器計算機102接收該請求并進行到步驟 320。
[0086]在步驟320,控制服務器計算機102評估哪些內容服務器計算機最接近提出請求的客戶端計算機,以及哪些保存著所請求的媒體項目標題的拷貝。例如,控制服務器計算機102可維護記錄在每個內容服務器計算機130上存儲著哪些電影或電影的部分的數據庫。繼續步驟310的示例,為了展示清晰的示例,假設電影XYZ存儲在內容服務器計算機131、內容服務器計算機136、內容服務器計算機138、及虛擬內容服務器計算機182上。控制服務器計算機102可至少部分基于與每個內容服務器計算機131、136、138、182相關聯的路由表來評估哪些內容服務器計算機是最接近的。采用路由表來評估接近度的流程將在后面的章節中討論。在此示例中,控制服務器計算機102可評估內容服務器計算機131、內容服務器計算機136及虛擬內容服務器計算機182是最接近的。
[0087]在步驟340,控制服務器計算機102向客戶端計算機發送關于被評估為最接近客戶端計算機192且保存所請求的媒體項目標題的拷貝的內容服務器計算機的信息。繼續步驟320的示例,控制服務器計算機102可向客戶端計算機192發送一組識別內容服務器計算機131、內容服務器計算機136及內容服務器計算機182的網絡位置的統一資源定位符
(“亂”)。
[0088]4.0控制服務器計算機組件及流程
[0089]控制服務器計算機102可評估對于每個客戶端計算機190的最近的保存媒體項目標題的內容服務器計算機。此外,控制服務器計算機102可基于費用將內容服務器計算機分組為不同等級,和/或至少部分基于容量、帶寬、或任意其他性能參數為內容服務器計算機加權。結果可返回到提出請求的客戶端計算機。
[0090]圖2示出了在示例性實施例中的控制服務器計算機。雖然圖2示出了特定實施例以便展示清晰的示例,但是其他實施例可忽略、加入、重排和/或修改所示任意元件。在圖2中,控制服務器計算機102被展示為好像所有組件都在單一計算機上實現;但是控制服務器計算機可用多個計算機(例如,數據庫服務器、文件服務器、及執行接近度評估、分組和/或加權的服務器計算機)實現。為了展示清晰的示例,圖2可參照圖1來描述,但圖1的采用特定布置在其他實施例中不要求。
[0091]在圖2中,控制服務器計算機102包括處理器202、內容服務器數據庫220、路由表存儲庫230、接近度評估單元240、等級分配單元250、以及加權單元260。處理器202可包括配置為執行存儲的程序來為控制服務器計算機102或其任意組件執行此處將進一步描述的流程和操作的CPU。
[0092]4.1內容服務器數據庫
[0093]內容服務器數據庫220包括存儲在每個內容服務器計算機130上的可用媒體項目列表。內容服務器數據庫220還可包括每個內容服務器計算機130的地址。例如,內容服務器數據庫220可包括存儲在內容服務器計算機131上的所有媒體項目列表。內容服務器數據庫220還可包括對于內容服務器計算機131和/或對于存儲在內容服務器計算機131上的媒體項目的統一資源定位符(“URL”)。
[0094]內容服務器數據庫220可包括每個網站150和/或內容服務器計算機130的估計吞吐量。估計吞吐量可基于可用帶寬、每個內容服務器計算機130的速度、及其他因素。例如,內容服務器數據庫220可存儲內容服務器計算機131的估計帶寬(例如,每秒一千兆比特)和內容服務器計算機133的估計帶寬(例如,每秒兩千兆比特)。還例如,內容服務器數據庫220可存儲網站156的估計帶寬(可以為每秒四千兆比特)和虛擬網站184的估計帶寬(例如,每秒六千兆比特)。
[0095]此外或替換地,內容服務器數據庫220可包括每個網站150和/或內容服務器計算機130的相對吞吐量。例如,內容服務器數據庫220可存儲內容服務器計算機131相比于內容服務器計算機133的相對吞吐量(例如,0.5或50%,表示內容服務器計算機131具有內容服務器計算機133的一半帶寬)。同樣地,內容服務器數據庫220可存儲網站156相比于虛擬網站184的相對吞吐量(例如,0.66或66%,表示網站156的帶寬是虛擬網站184的帶寬的三分之二)。
[0096]內容服務器數據庫220還可包括用于從一個或多個內容服務器計算機130和/或網站150發送數據的費用、估計費用和/或費用指示器。例如,內容服務器數據庫220可存儲從虛擬內容服務器計算機182或虛擬網站184傳輸每千兆比特的費用$1.00。還例如,內容服務器數據庫220可存儲指示從位于傳輸網絡118的內容服務器計算機138向客戶端計算機192傳輸數據比從位于第二網絡114(對等網絡)的內容服務器計算機133要昂貴的數據。
[0097]4.2路由表存儲庫
[0098]路由表存儲庫230可包括由控制服務器計算機102接收的每個內容服務器計算機130、每個路由器140和/或每個網站150的路由表。在圖2中,路由表存儲庫230包括對應于每個內容服務器計算機130的路由表:對應于內容服務器計算機131的路由表231、對應于內容服務器計算機132的路由表232、對應于內容服務器計算機133的路由表233、對應于內容服務器計算機134的路由表234、對應于內容服務器計算機136的路由表236及對應于內容服務器計算機138的路由表238。
[0099]路由表對CDN(例如,CDN180)和/或虛擬內容服務器計算機(例如,虛擬內容服務器計算機182)不可用。例如,一些CDN可不向內容提供商分發路由表。因此在實施例中,CDN可被廣泛評估。例如,控制服務器計算機102可至少部分基于客戶端計算機類型、客戶端計算機位置或任意其他與客戶端計算機有關的屬性,評估虛擬內容服務器計算機182是最接近任意客戶端計算機190或其子集的內容服務器計算機之一。此外或替換地,路由表存儲庫230可包括對應于虛擬內容服務器計算機182的路由表。對應于虛擬內容服務器計算機182的路由表至少部分由網絡管理員配置。
[0100]4.3接近度評估單元
[0101 ] 接近度評估單元240可采用存儲在路由表存儲庫230中的路由表來評估哪些內容服務器計算機130、路由器140和/或網站150最接近特定的客戶端計算機。特別地,接近度評估單元240可向內容服務器數據庫220查詢保存包括至少所選媒體標題的一部分的媒體項目的內容服務器計算機。接近度評估單元240可向路由表存儲庫查詢與返回的內容服務器計算機一致的路由表。接近度評估單元240可至少部分基于返回的路由表,評估哪個(些)返回的內容服務器計算機最接近特定的提出請求的客戶端計算機。
[0102]圖4示出了根據示例性實施例的用于評估哪些保存所請求的媒體項目的拷貝的內容服務器計算機最接近客戶端計算機的更詳細的流程。雖然圖4示出了根據實施例的示例性步驟,但是其他實施例可忽略、加入、重排和/或修改所示任意步驟。為了展示清晰的示例,圖4可采用在圖1和圖2中所示的實施例來進行描述。
[0103]現在參見圖4,在步驟410中,接近度評估單元240向內容服務器數據庫220查詢保存一個或多個媒體項目的內容服務器計算機列表。例如,接近度評估單元240向內容服務器數據庫220查詢保存作為電影XYZ的編碼的拷貝或電影XYZ的編碼的拷貝的一部分的媒體項目的所有內容服務器計算機。為了展示清晰的示例,假設內容服務器計算機131、內容服務器計算機132、內容服務器計算機133、內容服務器計算機136、以及內容服務器計算機138保存作為電影XYZ的編碼的拷貝或電影XYZ的編碼的拷貝的一部分的媒體項目。因此,響應于來自接近度評估單元240的查詢,內容服務器數據庫220返回滿足該查詢的內容服務器計算機列表:內容服務器計算機131、內容服務器計算機132、內容服務器計算機133、內容服務器計算機136、以及內容服務器計算機138。
[0104]在步驟420中,接近度評估單元240檢索與步驟410中返回的內容服務器計算機相關的路由表。繼續步驟410的示例,接近度評估單元240從路由表存儲庫230檢索相應的路由表:路由表231、路由表232、路由表233、路由表236和路由表238。
[0105]在步驟430、440、450、460中,接近度評估單元240至少部分基于檢索的路由表,評估最接近特定客戶端計算機的內容服務器計算機。接近度評估單元240可采用路由表的一個或多個路由屬性來評估哪些內容服務器計算機最接近特定客戶端計算機。
[0106]4.3.1前綴及CIDR塊記法
[0107]接近度評估單元240可至少部分基于存儲在每個檢索的路由表和提出請求的客戶端計算機的IP地址中的前綴,評估哪些內容服務器計算機130是最接近的。路由表中的前綴指示特定IP地址或子網的可達性。通常,前綴作為無類域間路由(“CIDR”)塊存儲。CIDR塊記法可能相差很大。為了展示清晰的示例,本公開采用Net CIDR塊記法。但是,其他實施例可采用其他格式或記法。在Net CIDR塊記法中,CIDR塊包括兩個組分:IP地址和斜線后面的稱為前綴大小的數字,例如,255.255.255.0/24。IP地址可作為三十二位的串存儲,其中為每個子網分配八位;因此,每個子網可從O到255變化。前綴大小指示在稱為前綴掩碼的三十二位寬的掩碼中的“I”的位數,該前綴大小應用于IP地址以確定范圍。
[0108]以下三個示例示出了 CIDR塊記法如何被用于指定一個或多個子網或地址的范圍:在第一個示例中,192.168.100.0/22 表示從 192.168.100.0 到 192.168.103.255范圍的1024個子網。在第二個示例中,192.168.111.0/24表示從192.168.111.0到192.168.111.255范圍的256個子網。在第三個示例中,192.168.111.031/32表示一個子網或地址:192.168.111.031。如這三個示例所示,前綴大小越大,子網或地址的范圍越窄。
[0109]現在返回到圖4,在步驟430中,接近度評估單元240至少部分基于作為CIDR塊存儲的前綴,評估哪些內容服務器計算機是最接近的。為了展示清晰的示例,假設客戶端計算機194具有IP地址:38.104.134.186。也假設第一路由存儲在路由表231中,第二路由存儲在路由表233中,第三路由存儲在路由表234中,第四路由存儲在路由表236中,且第五路由存儲在路由表238中。進一步假設第一路由、第二路由、第三路由和第四路由每個包括前綴=38.104.134.186/32 ;第五路由包括前綴:38.104.134.0/24。客戶端計算機194的IP地址在每個前綴的范圍內。前四個路由被評估為比第五路由更接近,因為前四個路由比第五路由的范圍窄。因此,接近度評估單元240評估內容服務器計算機131、133、134和136同樣比內容服務器計算機138接近客戶端計算機194。
[0110]此外或替換地,具有大體重疊的范圍的前綴可被認為距離同樣遠。例如,接近度評估單元240可評估兩個前綴38.104.134.184/30和38.104.134.186/31同樣接近具有IP地址38.104.134.186的客戶端計算機。
[0111]4.3.2AS-PATH 屬性
[0112]接近度評估單元240可至少部分基于AS-Path屬性,評估哪些內容服務器計算機是最接近的。AS-Path屬性可包括指示數據到達預期網絡或地址所穿過的網絡的AS數。每個路由器140可包括唯一的AS數。為了展示清晰的示例,假設圖1中為每個路由器140采用的參考數字為路由器的AS數;因此,路由器143的AS數是143,且路由器142的AS數是142,以此類推。進一步假設每個內容服務器計算機130的AS數是內容服務器計算機處于其后面的路由器的AS數。因此,路由器143后面的內容服務器計算機133的AS數是143,且內容服務器計算機131和內容服務器計算機132 二者的AS數都是142。
[0113]當本地路由插入到路由表中時,AS-Path屬性可以為空。例如,對應于內容服務器計算機133、路由器143或網站153的路由表233可包括具有包括客戶端計算機194的IP地址的前綴的路由。路由的AS-Path屬性可以為空,因為客戶端計算機194對內容服務器計算機133、路由器143和/或網站153來說是本地的。
[0114]當路由傳播給其他路由器時,當前路由的AS數可附加到AS-Path屬性。為了展示清晰的示例,假設路由器143傳播之前示例中的路由給路由器146。路由器146可存儲接收到的路由的拷貝,但AS-Path屬性可被置為“143”。因此,AS-Path可指示通過路由器143在路由器146和客戶端計算機194之間發送的數據。還例如,假設路由器146傳播其新的路由給路由器148。路由器148的路由表可包括具有與存儲在路由器143的原路由相同的前綴的新路由,但AS-Path屬性可被置為“148143”。AS-Path向路由器148指示在內容服務器計算機133和路由器146之間發送的數據通過路由器146和路由器143。
[0115]返回到圖4,在步驟440中,且如上所示,接近度評估單元240至少部分基于存儲在每個被評估為同樣最近路由中的AS-Path屬性,評估哪些內容服務器計算機是最接近的。特別地,接近度評估單元240可評估包括更短AS-Path的路由更接近提出請求的客戶端計算機。為了展示清晰的示例,假設接近度評估單元240基于存儲在之前章節中討論的五個路由中的每個路由中的前綴,評估五個路由中的存儲在路由表231、233、234、236中的前四個路由同樣最接近客戶端計算機194。進一步假設第一路由包括AS-Path:143 ;第二路由和第三路由包括空AS-Path ;且第四路由包括AS-Path:143。接近度評估單元240可至少部分基于存儲在每個路由的AS-Path中的AS數的數量,評估內容服務器計算機133和內容服務器計算機134比內容服務器計算機131和內容服務器計算機136更接近客戶端計算機194。此外,接近度評估單元240可評估內容服務器計算機133和內容服務器計算機134同樣接近客戶端計算機194。
[0116]4.3.3多出口鑒別器屬性
[0117]接近度評估單元240可至少部分基于存儲在每個路由中的多出口鑒別器(“MED”)屬性,評估哪些內容服務器計算機是最接近的。MED屬性指示進入具有多個入口點的網絡的優選路徑。通常,較低的MED值假設為優選于較高的MED值。但是,在其他實施例中,較高的MED值假設為優選于較低的MED值。
[0118]網絡管理員可設置MED值來指示優選。為了展示清晰的示例,假設內容服務器計算機138存在于傳輸網絡118,傳輸網絡118可向在內容服務器計算機138上托管內容以向其他網絡傳輸數據的內容提供商索取費用。還假設內容服務器計算機131存在于第一網絡112(對等網絡),第一網絡112不向在內容服務器計算機138上托管內容以向其他網絡傳輸數據的內容提供商索取費用。因此,內容服務器計算機138的網絡管理員可以為對應于內容服務器計算機138的路由表238中的所有路由將MED屬性設置為更高的值。更高的MED值可指示其他內容服務器計算機低優選于其他內容服務器計算機,例如內容服務器計算機131。網絡管理員可因為很多其他原因而提高MED值。例如,特定子網被獲知比另一子網具有更高的平均延遲,因此到特定子網的每個路由被網絡管理員分配較高的MED值。MED值也可基于客戶端計算機的或子網的位置(例如,國家)、設備類型(例如,游戲控制器)、測試計劃和/或ISP。因此,接近度評估單元240可基于MED屬性和客戶端計算機的位置、設備類型、測試計劃和/或ISP,評估一些路由為低優選的。
[0119]現在返回到圖4,在步驟450中,接近度評估單元240至少部分基于存儲在每個被評估為同樣最近路由中的MED屬性,評估哪些內容服務器計算機是最接近的。特別地,接近度評估單元240可評估包括較低MED的路由更接近提出請求的客戶端計算機。為了展示清晰的示例,假設接近度評估單元240基于存儲在之前章節中討論的五個路由中的分別存儲在路由表233和路由表234中的第二路由和第三路由這兩個路由的每個路由中的前綴和AS-Path,評估第二路由和第三路由同樣最接近客戶端計算機194。進一步假設第二路由包括MED值:1 ;且第三路由包括MED值:10。接近度評估單元240可至少部分基于存儲在每個路由的MED屬性中的MED值,評估內容服務器計算機133比內容服務器計算機134更接近客戶端計算機194。
[0120]在實施例中,如果路由不包含MED值,則接近度評估單元240可假設該路由具有最大可能MED值,該最大可能MED值指示該路由對于所有具有匹配該路由中的其他屬性的屬性的所有路由來說是最壞可能路由。在另一實施例中,如果路由不包含MED值,則接近度評估單元240可假設該路由具有最小可能MED值,該最小可能MED值指示該路由對于所有具有匹配該路由中的其他屬性的屬性的所有路由來說是最好可能路由。
[0121]4.3.4地理位置屬性
[0122]接近度評估單元240可至少部分基于存儲在每個路由中的地理位置屬性,評估哪些內容服務器計算機是最接近的。地理位置屬性可宣告路由子網或前綴的位置。例如,路由中的地理位置屬性可包括路由前綴的近似經度和緯度。此外或替換地,地理位置屬性可包括路由前綴的街道地址。此外或替換地,地理位置屬性可包括其他地理位置參數。
[0123]網絡管理員可設置地理位置屬性來指示子網位于哪里。例如,內容服務器計算機131的網絡管理員可以為路由表231中的所有本地路由設置為內容服務器計算機131的街道地址,以指示本地路由或子網的地理位置。網絡管理員可因為很多其他原因設置地理位置屬性,包括:特定內容服務器計算機對于全部位于特定區域的特定組子網具有特定的高吞吐量;或者特定內容服務器計算機必須專用,或至少預期首先用于向特定區域發送或流送數據。
[0124]現在返回到圖4,在步驟460中,接近度評估單元240至少部分基于存儲在每個被評估為同樣最近路由中的地理位置屬性,評估哪些內容服務器計算機是最接近的。為了展示清晰的示例,假設接近度評估單元240基于存儲在之前章節中討論的五個路由中的分別存儲在路由表233和路由表234中的第二路由和第三路由這兩個路由的每個路由中的前綴和AS-Path,評估第二路由和第三路由同樣最接近客戶端計算機194。進一步假設內容服務器計算機133位于英國倫敦的特定街道的西面,而內容服務器計算機134位于倫敦的同一特定街道的東面。進一步假設第二路由和第三路由包括識別第二路由和第三路由的前綴是倫敦西面的地理位置值。接近度評估單元240可至少部分基于存儲在每個路由的地理位置屬性中的地理位置值,評估內容服務器計算機133比內容服務器計算機134更接近客戶端計算機194。
[0125]在實施例中,如果路由不包含地理位置屬性,則接近度評估單元240可假設該路由具有最壞可能地理位置值,該最壞可能地理位置值指示該路由對于所有具有匹配該路由中的其他屬性的屬性的所有路由來說是最遠可能路由。在另一實施例中,如果路由不包含地理位置屬性,則接近度評估單元240可假設該路由具有最好可能地理位置值,該最好可能地理位置值指示該路由對于所有具有匹配該路由中的其他屬性的屬性的所有路由來說是最近可能路由。
[0126]4.3.5利用社區屬性
[0127]社區屬性可以為加到每條路徑或前綴以修改該路由如何與其他路由相比的屬性。社區屬性的另一名稱為“路由性能”或“路由屬性”。通常,社區屬性作為數字存儲在每個路由中,但可以為字符串或任意其他數據類型。值可以為由網絡管理員定義的任意值。為了展示清晰的示例,特定社區屬性可參考特定值來描述,但采用的特定值在其他實施例中不要求。在實施例中,設置為第一值(例如,“I”)的社區屬性可指示地理位置值應被視為該地理位置值是最好可能地理位置值。設置為第二值(例如,“2”)的社區屬性可指示MED值應被視為該MED值和任意觀測或比較的MED值一樣好。設置為第三值(例如,“3”)的社區屬性可指示MED屬性和地理位置屬性二者均應被視為該MED屬性和地理位置屬性二者分別為最好可能MED值和地理位置值。社區屬性可不同地指示接近度評估單元240忽略一個或多個屬性、為一個或多個屬性分配最壞可能值、為一個或多個屬性分配最好可能值、或評估一個或多個路由的接近度或路由屬性。
[0128]現在返回圖4,在步驟430至步驟460的每個步驟中,接近度評估單元240可至少部分基于存儲于每個最近路由中的社區屬性,評估每個不同路由。為了展示清晰的示例,假設接近度評估單元240基于存儲在之前章節中討論的五個路由中的分別存儲在路由表233和路由表234中的第二路由和第三路由這兩個路由的每個路由中的前綴和AS-Path,評估第二路由和第三路由同樣最接近客戶端計算機194。假設第二路由具有MED值“1”,且第三路由具有MED值“10”。假設內容服務器計算機133位于英國倫敦的特定街道的西面,而內容服務器計算機134位于倫敦的同一特定街道的東面。假設第二路由和第三路由包括識別第二路由和第三路由的前綴是倫敦西面的地理位置值。進一步假設分配給第二路由和第三路由的社區屬性指示接近度評估單元240應忽略第二路由和第三路由的MED屬性和地理位置屬性。因此,接近度評估單元240可評估內容服務器計算機133和內容服務器計算機134同樣接近客戶端計算機194,即使無論是內容服務器計算機133還是內容服務器計算機134正常本應被評估為比另一個更接近客戶端計算機194。
[0129]4.3.6為內容分布網絡確定接近度
[0130]如上所述,⑶N180和虛擬內容服務器計算機182可以為部署于跨越一組分布于各地的網絡的多個數據中心中的服務器計算機的大型分布式系統。因此,接近度評估單元240可假設CDN180內的虛擬內容服務器計算機182與在任意其他網絡的任意其他內容服務器計算機同樣接近客戶端計算機190。如果存在虛擬內容服務器計算機182可用的路由表,則虛擬表可被包含在路由表存儲庫230中及包含在以上討論的流程中。
[0131]4.4基于費用分組內容服務器計算機
[0132]對于特定客戶端計算機,一些被評估為最近的內容服務器計算機對于內容提供商向其發送數據比其他內容服務器計算機便宜。因此,控制服務器計算機102可至少部分基于費用,將一個或多個被評估為最近的內容服務器計算機分組到等級。
[0133]4.4.1 等級
[0134]等級可以為一組一個或多個被評估為花費內容提供商相同或幾乎相同金額的內容服務器計算機。為了展示清晰的示例,假設第一網絡112和第二網絡114至少是對彼此及客戶端計算機192及客戶端計算機194的對等網絡。如上所述,對等網絡通常不會為在這兩個對等網絡或連接到對等網絡的客戶端計算機之間發送數據而向內容提供商索取費用。因此,對于客戶端計算機192或客戶端計算機194,控制服務器計算機102可將無論是在第一網絡112上還是在第二網絡114上的內容服務器計算機分組為同一等級,因為從網絡無論是向客戶端計算機192還是向客戶端計算機194傳輸數據的費用被評估為相同(例如,免費)。
[0135]較高等級可指示較高費用。例如,CDN180是為分布數據而向內容提供商索取費用的CDN。同樣地,傳輸網絡118是為分布數據而向內容提供商索取費用的傳輸網絡。為了展示清晰的示例,假設CDN180管理員和傳輸網絡118管理員分別為傳輸到無論是傳輸網絡118還是CDN180外的每千兆字節向內容提供商索取相同金額。因此,對于客戶端計算機192或客戶端計算機194,控制服務器計算機102可將傳輸網絡118和CDN180上的內容服務器計算機分組為同一等級,因為費用被評估為近似相同(例如,不免費)。此外,控制服務器計算機102可分配給無論是在傳輸網絡118還是在CDN180上的內容服務器計算機比分配給無論是在第一網絡112還是在第二網絡114上的內容服務器計算機的等級更高的等級,因為更高等級花費內容提供商更多費用。
[0136]控制服務器計算機102可以為內容服務器計算機分配任意等級數。為了展示清晰的示例,假設從虛擬內容服務器計算機182傳輸數據的評估費用高于內容服務器計算機138。進一步假設從內容服務器計算機131和內容服務器計算機133傳輸數據的費用低于無論是虛擬內容服務器計算機182還是內容服務器計算機138。因此,控制服務器計算機102可以將內容服務器計算機131和內容服務器計算機133分配到第一等級。控制服務器計算機102可以將內容服務器計算機138分配到第二等級。并且,控制服務器計算機102可以將虛擬內容服務器計算機182分配到第三等級。
[0137]4.4.2等級分配單元
[0138]控制服務器計算機102可采用等級分配單元250為特定客戶端計算機關聯最近的內容服務器計算機。等級分配單元250連接到接近度評估單元240和內容服務器數據庫220。等級分配單元250可從接近度評估單元240接收對于特定客戶端計算機被評估為最近的內容服務器計算機。等級分配單元250可使用存儲在內容服務器數據庫220中的數據來評估從每個被評估為最近的內容服務器計算機提供媒體項目的費用或相對費用。
[0139]圖5示出了在示例性實施例中的用于對于特定客戶端計算機為被評估為最近的內容服務器計算機分配等級的流程。雖然圖5示出了根據實施例的示例性步驟,但是其他實施例可忽略、加入、重排和/或修改所示任意步驟。為了展示清晰的示例,圖5可采用示于圖1和圖2中的實施例來描述。為了展示清晰的示例,假設內容服務器數據庫220將每個內容服務器計算機130與該內容服務器計算機所處的網絡相關聯。假設內容服務器數據庫220包括從每個網路向不同網絡的客戶端計算機傳輸數據的每千兆字節的價格。此外,假設根據內容服務器數據庫220,從CDN180傳輸數據的費用是最貴的,從傳輸網絡118傳輸數據的費用稍便宜些,而從任意其他網絡傳輸數據的費用是最小的。
[0140]現在參考圖5,在步驟510中,等級分配單元250從接近度評估單元240接收被評估為到特定客戶端計算機同樣最近的內容服務器計算機的列表。例如,等級分配單元250可接收被評估為到客戶端計算機192同樣最近并且也保存作為電影XYZ的拷貝的媒體項目的內容服務器計算機的列表。該列表可包括內容服務器計算機133、內容服務器計算機136、內容服務器計算機138以及虛擬內容服務器計算機182。
[0141]在步驟520中,等級分配單元250向內容服務器數據庫220查詢每個被評估為同樣最近的內容服務器計算機所處的網絡的列表。繼續步驟510中的當前示例,等級分配單元250可向內容服務器數據庫220查詢內容服務器計算機133、內容服務器計算機136、內容服務器計算機138以及虛擬內容服務器計算機182所處的網絡。
[0142]在步驟530中,等級分配單元250接收來自內容服務器數據庫220的每個被評估為同樣最近的內容服務器計算機所處的網絡的列表。繼續步驟520中的當前示例,網絡的列表包括第二網絡114、ISP網絡116、傳輸網絡118以及⑶N180。
[0143]在步驟540中,等級分配單元250向內容服務器數據庫220查詢從在步驟530中接收到的列表中的每個網絡傳輸數據的估價。繼續步驟530中的示例,等級分配單元250可向內容服務器數據庫220查詢從第二網絡114、ISP網絡116、傳輸網絡118以及⑶N180向通過第一網絡112連接每個內容服務器計算機130的客戶端計算機192傳輸數據的每千兆字節的價格。
[0144]此外或替換地,等級分配單元250可向內容服務器數據庫220查詢從在步驟530中接收到的列表中的每個網絡傳輸數據的費用的相對指示器。例如,內容服務器數據庫220可存儲每個網絡相比于每個其他網絡的相對費用指示器。等級分配單元250向內容服務器數據庫220查詢在步驟530中接收到的網絡列表中的每個網絡的相對指示器。
[0145]在步驟550中,等級分配單元250接收來自內容服務器數據庫220的從在步驟530中接收到的列表中的每個網絡傳輸數據的估價。繼續步驟540中的示例,等級分配單元250可接收來自內容服務器數據庫220的價格:從第二網絡114和ISP網絡116傳輸數據的每千兆字節的價格是免費的;從傳輸網絡118傳輸數據的每千兆字節的價格是$1.00 ;而從CDN傳輸數據的每千兆字節的價格是$2.00。
[0146]此外或替換地,等級分配單元250可接收來自內容服務器數據庫220的對于每個所查詢的網絡的相對費用指示器:⑶N180傳輸數據比第二網絡114、ISP網絡116或傳輸網絡118費用高;傳輸網絡118傳輸數據比第二網絡114或ISP網絡116費用高;以及第二網絡114傳輸數據與ISP網絡116費用大致相同。
[0147]在步驟560中,等級分配單元250將價格與每個被評估為同樣最近的內容服務器計算機相關聯。繼續步驟550中的示例,等級分配單元250將第二網絡114的價格關聯到內容服務器計算機133,將ISP網絡116的價格關聯到內容服務器計算機136,將傳輸網絡118的價格關聯到內容服務器計算機138,以及將CDN 180的價格關聯到虛擬內容服務器計算機182。
[0148]此外或替換地,等級分配單元250將第二網絡114的相對費用指示器關聯到內容服務器計算機133,將ISP網絡116的相對費用指示器關聯到內容服務器計算機136,將傳輸網絡118的相對費用指示器關聯到內容服務器計算機138,以及將CDN 180的相對費用指示器關聯到虛擬內容服務器計算機182。
[0149]在步驟570中,等級分配單元250為每個被評估為同樣最近的內容服務器計算機分配等級。繼續步驟560中的示例,等級分配單元250將內容服務器計算機133和內容服務器計算機136分配到第一等級,因為每個服務器的價格是相同的并且每個服務器的價格無論是比內容服務器計算機138還是比虛擬內容服務器計算機182都要低。等級分配單元250可以將內容服務器計算機138分配到第二等級,因為內容服務器計算機138的價格比第一較低等級中的內容服務器計算機要高。等級分配單元250可以將虛擬內容服務器計算機182分配到第三等級,因為虛擬內容服務器計算機182的價格比較低等級中的內容服務器計算機要高。此外或替換地,等級分配單元250可采用相對價格指示器做出類似的分配。
[0150]在步驟580中,等級分配單元250返回分組為不同等級的被評估為同樣最近的內容服務器計算機。繼續步驟570中的示例,等級分配單元250可將分組為不同等級的被評估為同樣最近的內容服務器計算機返回到控制服務器計算機102,以返回到客戶端計算機192。等級可向客戶端計算機指示客戶端計算機應在從第二等級中的內容服務器計算機請求媒體項目之前從第一等級中的每個內容服務器計算機請求媒體項目,以此類推。此外或替換地,等級分配單元250可將分組到等級的被評估為同樣最近的內容服務器計算機返回到加權單元260。
[0151]4.5負載平衡
[0152]每個包含內容服務器計算機的網站的帶寬相差很大。例如,網站152可能具有兩倍于網站154的帶寬。因此,如果客戶端計算機向網站152中的內容服務器計算機比向網站154中的內容服務器計算機提出更多請求,則對于更多用戶來說,綜合體驗質量會更好。在實施例中,控制服務器計算機102可通過按特定順序指示客戶端應連接哪個(些)服務器來使內容服務器計算機負載平衡。
[0153]加權單元260連接到等級分配單元250和內容服務器數據庫220。加權單元260可從等級分配單元250接收分組到等級的被評估為同樣最近的內容服務器計算機。加權單元260可使用存儲在內容服務器數據庫220中的數據來評估每個等級內的每個被評估為同樣最近的內容服務器計算機的吞吐量。加權單元260然后可排序每個等級內的每個最近的內容服務器計算機,并將每個等級內排序的最近內容服務器計算機返回到控制服務器計算機102,控制服務器計算機102進而將每個等級內排序的最近內容服務器計算機返回給提出請求的客戶端計算機。
[0154]此外或替換地,加權單元260連接到接近度評估單元240。加權單元260可從接近度評估單元240接收未分組到等級的被評估為同樣最近的內容服務器計算機。加權單元260然后可排序每個最近的內容服務器計算機,并向控制服務器計算機102返回排序的最近內容服務器計算機。控制服務器計算機102可將排序的最近內容服務器計算機返回給提出請求的客戶端計算機。
[0155]圖6示出了在示例性實施例中的用于排序每個等級中的最近內容服務器計算機的流程。雖然圖6示出了根據實施例的示例性步驟,但是其他實施例可忽略、加入、重排和/或修改所示任意步驟。為了展示清晰的示例,圖6采用示于圖1和圖2中的實施例進行描述。
[0156]現在參考圖6,在步驟610中,加權單元260從等級分配單元250接收分組到等級的被評估為同樣最近的內容服務器計算機的列表。例如,加權單元260可從等級分配單元250接收包括分組到第一等級中的內容服務器計算機134和內容服務器計算機136以及分組到第二等級中的內容服務器計算機138和虛擬內容服務器計算機182的列表。
[0157]在步驟620中,加權單元260向內容服務器數據庫220查詢列表中的每個內容服務器計算機所處的網站。繼續步驟610中的當前示例,加權單元260向內容服務器數據庫220查詢以確定內容服務器計算機134、內容服務器計算機136、內容服務器計算機138以及虛擬內容服務器計算機182屬于哪個網站。
[0158]在步驟630中,加權單元260從內容服務器數據庫220接收列表中的每個內容服務器計算機所處的網站。繼續步驟620中的當前示例,加權單元260從內容服務器數據庫220接收內容服務器計算機134、內容服務器計算機136、內容服務器計算機138以及虛擬內容服務器計算機182所屬的網站列表,即,網站154、網站156、網站158以及虛擬網站184。
[0159]在步驟640中,加權單元260向內容服務器數據庫220查詢每個網站的吞吐量。繼續步驟630中的當前示例,加權單元260可向內容服務器數據庫220查詢網站154、網站156、網站158以及虛擬網站184的吞吐量。
[0160]在步驟650中,加權單元260將每個網站的吞吐量與相應的內容服務器計算機相關聯。為了展示清晰的示例,假設網站154被評估為具有每秒100千兆字節的吞吐量,網站156被評估為具有每秒200千兆字節的吞吐量,網站158被評估為具有每秒100千兆字節的吞吐量,以及虛擬網站184被評估為具有每秒800千兆字節的吞吐量。繼續步驟640中的當前示例,加權單元260可將每秒100千兆字節與內容服務器計算機134相關聯,每秒200千兆字節與內容服務器計算機136相關聯,每秒100千兆字節與內容服務器計算機138相關聯,以及每秒1000千兆字節與虛擬內容服務器計算機182相關聯。
[0161]在步驟660中,加權單元260至少部分基于與每個同樣最近的內容服務器計算機相關聯的吞吐量,排序每個等級中被評估為同樣最近的內容服務器計算機。繼續步驟650中的當前示例,加權單元260可具有66%的概率將內容服務器計算機136排在內容服務器計算機134之前,因為與內容服務器計算機136相關聯的估計吞吐量是與內容服務器計算機134相關聯的估計吞吐量的兩倍。加權單元260可具有80%的概率將虛擬內容服務器計算機182排在內容服務器計算機138之前,因為與虛擬內容服務器計算機182相關聯的估計吞吐量是與內容服務器計算機138相關聯的估計吞吐量的五倍。
[0162]此外或替換地,加權單元260可以為每個等級中的最近內容服務器計算機分配概率。采用之前示例中的估計吞吐量,加權單元260可以為內容服務器計算機136分配概率66%,而為內容服務器計算機134分配概率33%,因為與內容服務器計算機136相關聯的估計吞吐量是與內容服務器計算機134相關聯的估計吞吐量的兩倍。此外,加權單元260可以為虛擬內容服務器計算機182分配概率80 %,而為內容服務器計算機138分配概率20 %,因為與虛擬內容服務器計算機182相關聯的估計吞吐量是與內容服務器計算機138相關聯的估計吞吐量的五倍。
[0163]在步驟670中,加權單元260返回每個等級內排序的被評估為同樣最近的內容服務器計算機。繼續步驟660中的當前示例,加權單元260可將每個等級內排序的被評估為最近的內容服務器計算機返回給控制服務器計算機102以返回給客戶端計算機192。每個等級內排序的被評估為最近的內容服務器計算機向客戶端計算機指示客戶端計算機應在從第二服務器計算機請求媒體項目標題之前從第一服務器計算機請求媒體項目標題。此外或替換地,分配給每個內容服務器計算機的概率可返回給控制服務器計算機102以返回給客戶端計算機192。
[0164]在實施例中,一個或多個社區屬性可被用于在不同位置的內容服務器之間的平衡負載。為了展示清晰的示例,假設在亞特蘭大的內容服務器計算機被評估為比在西雅圖的內容服務器計算機更接近客戶端計算機,并且兩個內容服務器計算機均具有相同的文件,但是亞特蘭大內容服務器計算機的最大帶寬是西雅圖內容服務器計算機最大帶寬的50%。管理員希望向西雅圖內容服務器計算機發送業務,即使亞特蘭大內容服務器計算機被評估為更接近特定客戶端計算機。因此,管理員可設置一個或多個社區屬性來指示控制服務器當在亞特蘭大的內容服務器計算機和在西雅圖的內容服務器計算機之間評估時應忽略地理位置屬性。此外或替換地,管理員可設置一個或多個社區屬性來指示對于同一文件,如果亞特蘭大內容服務器計算機被評估為最接近客戶端計算機且兩個內容服務器計算機都具有客戶端計算機請求的同一文件,則控制服務器應有66%的時間選擇西雅圖內容服務器計算機而33%的時間選擇亞特蘭大內容服務器計算機。
[0165]4.6容錯性及配置
[0166]所有被評估為最接近特定的提出請求的客戶端計算機的內容服務器計算機可被返回。但是如果網站故障,所有網站中的內容服務器計算機可能會不可達。例如,如果路由器142故障,內容服務器計算機131和內容服務器計算機132 二者均可能會不可達。因此,連接到第一網站的第一內容服務器計算機的客戶端計算機可能要浪費時間去試圖連接到同一網站的另一內容服務器計算機。例如,如果當路由器142故障時,客戶端計算機192連接到內容服務器計算機131,則客戶端計算機192可能要浪費時間去試圖連接到內容服務器計算機132。
[0167]此外,在一些未在圖1中示出的實施例中,多于兩個的很多內容服務器計算機可包含在單一網站中。因此,如果包括客戶端計算機連接到的內容服務器計算機的網站的路由器故障,客戶端計算機花費五秒來確定內容服務器計算機不可達,并且客戶端計算機從屬于同一網站的其他五個內容服務器計算機請求數據,則客戶端將浪費二十五秒來嘗試找到不可達的服務器。因此,響應于接收對關于保存媒體項目標題的內容服務器計算機的信息的請求,控制服務器計算機102可配置為每個網站返回一個內容服務器計算機。因此,如果網站的對于特定內容服務器計算機的路由故障,客戶端計算機從其請求數據的下一個內容服務器計算機將來自不同網站且通過不同路由器。
[0168]或者,控制服務器計算機102可返回多個來自同一網站的內容服務器計算機。控制服務器計算機102可將來自同一網站的內容服務器計算機與來自其他網站的內容服務器計算機交叉,從而如果客戶端計算機按內容服務器計算機被返回的相同的順序從內容服務器計算機請求媒體項目,則客戶端計算機在嘗試另一網站的至少一個其他內容服務器計算機之前,將不從同一網站請求數據。
[0169]此外,控制服務器計算機102可配置為返回至少最小數量的保存媒體項目的內容服務器計算機的信息。為了展示清晰的示例,假設內容服務器計算機131和內容服務器計算機132每個保存電影XYZ的拷貝,且沒有其他內容服務器計算機保存電影XYZ的拷貝。進一步假設控制服務器計算機102配置為返回每個都包括所請求的媒體項目的至少兩個內容服務器計算機的信息。還假設控制服務器計算機102配置為每個網站不返回多于一個內容服務器計算機的信息。雖然控制服務器計算機102配置為每個網站不返回多于一個內容服務器計算機的信息,但是控制服務器計算機102可由管理員配置為返回內容服務器計算機131和內容服務器計算機132 二者的信息以確保每個都包括所請求的媒體項目的至少兩個內容服務器計算機都被返回。
[0170]控制服務器計算機102可具有額外配置。例如,管理員可配置控制服務器計算機102不返回虛擬內容服務器計算機,或其他在CDN上的內容服務器計算機。管理員還可配置控制服務器計算機102至少部分基于客戶端計算機國家、設備類型、用戶和/或A/B測試分配,返回特定內容服務器計算機或網站的信息。例如,如果客戶端計算機是特定設備類型,則管理員可配置控制服務器計算機102返回在一個或多個特定嵌入網絡或對等網絡上的內容服務器計算機的信息。
[0171]4.7為同一標題的多個文件獨立評估接近度
[0172]每個媒體項目(例如電影)可包含一個或多個文件。例如,電影可包含音頻文件和分離的視頻文件。此處討論的一個或多個系統和方法可被用于獨立地為每個文件確定選擇哪個內容服務器。因此,控制服務器計算機可確定對于視頻文件,第一網站的第一內容計算機最接近客戶端計算機,而對于音頻文件,第二網站的第二內容計算機最接近客戶端計算機。同樣地,音頻文件和/或視頻文件可分成一個或多個文件,且此處討論的一個或多個系統和方法可被用于獨立地為每個文件確定選擇哪個內容服務器。
[0173]5.0實現機制——硬件概述
[0174]根據實施例,此處所述的技術由一個或多個專用計算設備實現。專用計算設備可以為硬連線的以執行該技術,或者可包括數字電子設備,例如,一個或多個永久被編程以執行該技術的專用集成電路(ASIC)或現場可編程門陣列(FPGA),或者可包括一個或多個被編程以按照在固件、存儲器、其他存儲設備或其組合中的程序指令來執行本技術的通用硬件處理器。這樣的專用計算設備還可將定制的編程與定制的硬連線邏輯、ASIC或FPGA相結合來實現本技術。該專用計算設備可以為臺式計算機系統、便攜式計算機系統、手持設備、網絡設備或任意其他包含硬連線和/或程序邏輯以實現本技術的設備。
[0175]例如,圖7是示出了其上可實現本發明的實施例的計算機系統700的框圖。計算機系統700包括用于傳送信息的總線702或其他傳送機制,以及與總線702連接用于處理信息的硬件處理器704。硬件處理器704可以為,例如,通用微處理器。
[0176]計算機系統700還包括連接到總線702用于存儲將由處理器704執行的指令和信息的主存儲器706,例如,隨機存取存儲器(RAM)或其他動態存儲設備。主存儲器706還可用于存儲在由處理器704執行的指令的執行期間的臨時變量或其他中間信息。當這些指令存儲于處理器704可訪問的非暫時性存儲介質中時,這些指令使得計算機系統700成為被定制為執行指令中指定的操作的專用機器。
[0177]計算機系統700進一步包括連接到總線702用于存儲用于處理器704的靜態信息和指令的只讀存儲器(ROM) 708或其他靜態存儲設備。存儲設備710 (例如,磁盤或光盤)被提供且連接到總線702以存儲信息和指令。
[0178]計算機系統700可通過總線702連接到用于向計算機用戶顯示信息的顯示器712,例如,陰極射線管(CRT)。包括字母數字鍵和其他鍵的輸入設備714連接到總線702用于向處理器704傳送信息和命令選擇。另一類型的用戶輸入設備是用于向處理器704傳送方向信息和命令選擇且用于控制光標在顯不器712上移動的光標控制器716,例如鼠標、軌跡球或光標方向鍵。該輸入設備通常在兩個軸(第一軸(例如,X)和第二軸(例如,y))中具有兩個自由度,這可使設備指定在平面中的位置。
[0179]計算機系統700可采用與計算機系統結合可導致或編程計算機系統700為專用機器的定制的硬連線邏輯、一個或多個ASIC或FPGA、固件和/或程序邏輯來實現此處所述的技術。根據實施例,此處的技術由計算機系統700響應于處理器704執行一個或多個包含在主存儲器706中的一個或多個序列的一個或多個指令來執行。這些指令可從另一存儲介質(例如,存儲設備710)讀入主存儲器706中。包含在主存儲器706中的指令序列的執行導致處理器704執行此處所述的處理步驟。在替換的實施例中,硬連線電路可用于代替或結合軟件指令。
[0180]此處使用的術語“存儲介質”指任意存儲導致機器按特定方式操作的數據和/或指令的非暫時性介質。這種存儲介質可包括非易失性介質和/或易失性介質。非易失性介質包括,例如,光盤或磁盤,例如,存儲設備710。易失性介質包括動態存儲器,例如,主存儲器706。例如,存儲介質的普通形式包括:軟盤、柔性盤(flexible disk)、硬盤、固態驅動器、磁帶或任意其他磁性數據存儲介質、CD-ROM、任意其他光學數據存儲介質、任意帶孔的物理介質、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任意其他存儲器芯片或盒式存儲器。
[0181]存儲介質與傳輸介質不同,但可與傳輸介質結合使用。傳輸介質參與在存儲介質之間傳輸信息。例如,傳輸介質包括:同軸電纜、銅線和光纖,包括包含總線702的線。傳輸介質還能夠采用聲波或光波的形式,例如在無線電波和紅外線數據通信中產生的聲波或光波。
[0182]各種形式的介質涉及攜帶一個或多個指令的一個或多個序列到處理器704以用于執行。例如,指令可首先攜帶于遠程計算機的磁盤或固態驅動器上。遠程計算機可加載指令到其動態存儲器中,并采用調制解調器通過電話線發送該指令。計算機系統700本地的調制解調器能夠接收電話線上的數據,并使用紅外線發射器將數據轉換為紅外線信號。紅外線探測器能夠接收紅外線信號中攜帶的數據,并且適當的電路能夠將數據置于總線702上。總線702攜帶該數據到主存儲器706,從主存儲器706處理器704取出并執行該指令。由主存儲器706接收到的指令在由處理器704執行之前或之后可選擇地存儲到存儲設備710 上。
[0183]計算機系統700還包括連接到總線702的通信接口 718。通信接口 718提供到連接至本地網絡722的網絡鏈路720的雙向數據通信連接。例如,通信接口 718可以為綜合業務數字網(ISDN)卡、有線調制解調器、衛星調制解調器或提供到相應類型的電話線的數據通信連接的調制解調器。作為另一示例,通信接口 718可以為提供到可兼容LAN的數據通信連接的局域網(LAN)卡。無線鏈路也可被實現。在任意這種實現中,通信接口 718發送和接收攜帶表示各種類型的信息的數字數據流的電信號、電磁信號或光信號。
[0184]網絡鏈路720通常提供通過一個或多個網絡到其他數據設備的數據通信。例如,網絡鏈路720可提供通過本地網絡722到主計算機724或到由互聯網服務提供商(ISP) 726操作的數據設備的連接。ISP726進而通過現在通常被稱為“互聯網”(728)的全球數據包通信網絡來提供數據通信服務。本地網絡722和互聯網728 二者均使用攜帶數字數據流的電信號、電磁信號或光信號。通過各種網絡的信號和在網絡鏈路720上并通過通信接口 718的從計算機系統700攜帶數字數據以及攜帶數字數據至計算機系統700的信號是傳輸介質的示例性形式。
[0185]計算機系統700能夠通過網絡、網絡鏈路720和通信接口 718發送消息和接收包括程序代碼的數據。在互聯網示例中,服務器730可通過互聯網728、ISP726、本地網絡722和通信接口 718發送請求的應用程序的代碼。
[0186]接收到的代碼可在其接收時由處理器704執行,和/或存儲在存儲設備710或其他非易失性存儲器中用于后續執行。
[0187]在上述說明書中,已經參考多個具體細節對本發明的實施例進行了描述,該具體細節可隨著不同實現而不同。因此,說明書和附圖應被認為是說明性而非限制性意義。本發明的范圍的唯一排外的指示以及 申請人:預期的本發明的范圍是從本申請以這種權利要求提出的具體形式提出的該組權利要求的文字及等同范圍,包括任意后面的修正。
[0188]6.0本公開的其他方面
[0189]在上述說明書中,已經參考多個具體細節對本發明的實施例進行了描述,該具體細節可隨著不同實現而不同。因此,什么是本發明以及 申請人:預期的本發明的唯一排外的指示是從本發明以這種權利要求提出的具體形式提出的該組權利要求,包括任意后面的修正。此處清楚闡明的任意對包含在這種權利要求中的術語的定義在用于權利要求中時應約束該術語的含義。因此,未在權利要求中清晰陳述的限制、元素、性能、特征、優勢或屬性不應以任何形式限制該權利要求的范圍。因此,說明書和附圖應被認為是說明性而非限制性意義。
[0190]此處所述的主題的方面陳述于以下編號的條款中:
[0191]1.一種方法,包括:接收第一服務器計算機的第一路由表;接收第二服務器計算機的第二路由表;從客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的請求,其中所述請求包括所述客戶端計算機的客戶端互聯網協議地址;至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近;至少部分基于評估所述第一服務器計算機比所述第二服務器計算機更接近所述客戶端計算機,向所述客戶端計算機發送至所述客戶端計算機的第一地址,其中所述第一地址識別存儲在所述第一服務器計算機上的所述媒體項目標題;其中,所述方法由一個或多個專用計算設備執行。
[0192]2.如條款I所述的方法,其中所述評估包括評估所述第一服務器計算機在物理位置上到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
[0193]3.如任意條款1-2所述的方法,其中所述客戶端計算機是第一客戶端計算機,所述請求是第一請求,所述客戶端互聯網協議地址是第一客戶端互聯網協議地址;所述方法進一步包括:從第二客戶端計算機接收對關于保存所述媒體項目標題的內容服務器的信息的第二請求,其中所述第二請求包括所述第二客戶端計算機的第二客戶端互聯網協議地址;至少部分基于所述第二客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近;至少部分基于評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近,向所述第二客戶端計算機發送至所述第二客戶端計算機的第二地址,其中所述第二地址識別存儲在所述第二服務器計算機上的所述媒體項目標題。
[0194]4.如任意條款1-3所述的方法,包括:接收第三服務器計算機的第三路由表;至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第三路由表,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近;至少部分基于評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近,向所述客戶端計算機發送第二地址;其中所述第二地址識別存儲在所述第三服務器計算機上的所述媒體項目標題。
[0195]5.如任意條款1-4所述的方法,包括:確定所述第一服務器計算機在第一路由器后面;確定所述第三服務器計算機在第二路由器后面;至少部分基于確定所述第一路由器與所述第二路由器是不同的路由器,確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站;至少部分基于確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站,向所述客戶端計算機發送所述第二地址。
[0196]6.如任意條款1-5所述的方法,包括:評估所述第一服務器計算機的第一帶寬;評估所述第三服務器計算機的第二帶寬;至少部分基于所述第一帶寬,確定第一概率;至少部分基于所述第二帶寬,確定第二概率;向所述客戶端計算機發送按照對應于所述第一概率和所述第二概率的大小的順序的所述第一地址和所述第二地址的列表。
[0197]7.如任意條款1-6所述的方法,其中:所述第一路由表包括特定屬性類型的第一屬性;所述第三路由表包括所述特定屬性類型的第二屬性;所述第三路由表包括指示忽略所述特定屬性類型的社區值;至少部分基于忽略所述第一屬性和所述第二屬性,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近。
[0198]8.如任意條款1-7所述的方法,包括:確定用于從所述第一服務器計算機向所述客戶端計算機發送數據的第一費用;確定用于從所述第三服務器計算機向所述客戶端計算機發送數據的第二費用;對于所述客戶端計算機,當所述第一費用低于所述第二費用時,將所述第一服務器計算機分配到第一等級,并且將所述第三服務器計算機分配到第二等級;向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
[0199]9.如任意條款1-8所述的方法,包括:確定所述第三服務器計算機與內容分發網絡相關聯;對于所述客戶端計算機,至少部分基于確定所述第二服務器計算機與所述內容分發網絡相關聯,將所述第一服務器計算機分配到第一等級,并且將所述第二服務器計算機分配到第二等級;向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
[0200]10.如任意條款1-9所述的方法,包括:至少部分基于所述客戶端計算機、所述客戶端計算機的設備類型、所述客戶端計算機的國家、登錄所述客戶端計算機的用戶、測試協議、所述客戶端計算機的互聯網服務提供商,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
[0201]11.存儲一個或多個序列的指令的非暫時性計算機可讀的數據存儲介質,所述指令當執行時導致一個或多個處理器執行條款1-10所述的任意方法。
[0202]12.包括指令的計算機程序產品,所述指令當在一個或多個處理器上實現時,執行條款1-10所述的任意方法。
[0203]13.具有配置為執行條款1-10所述的任意方法的處理器的計算機設備。
【權利要求】
1.一種方法,包括: 接收第一服務器計算機的第一路由表; 接收第二服務器計算機的第二路由表; 從客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的請求,其中所述請求包括所述客戶端計算機的客戶端互聯網協議地址; 至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近; 至少部分基于評估所述第一服務器計算機比所述第二服務器計算機更接近所述客戶端計算機,向所述客戶端計算機發送至所述客戶端計算機的第一地址,其中所述第一地址識別存儲在所述第一服務器計算機上的所述媒體項目標題; 其中,所述方法由一個或多個專用計算設備執行。
2.如權利要求1所述的方法,其中評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近包括:評估所述第一服務器計算機在物理位置上到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
3.如權利要求1所述的方法,其中所述客戶端計算機是第一客戶端計算機,所述請求是第一請求,所述客戶端互聯網協議地址是第一客戶端互聯網協議地址;所述方法進一步包括: 從第二客戶端計算機接收對關于保存所述媒體項目標題的內容服務器的信息的第二請求,其中所述第二請求包括所述第二客戶端計算機的第二客戶端互聯網協議地址; 至少部分基于所述第二客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近; 至少部分基于評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近,向所述第二客戶端計算機發送至所述第二客戶端計算機的第二地址,其中所述第二地址識別存儲在所述第二服務器計算機上的所述媒體項目標題。
4.如權利要求1所述的方法,包括: 接收第三服務器計算機的第三路由表; 至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第三路由表,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近; 至少部分基于評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近,向所述客戶端計算機發送第二地址; 其中所述第二地址識別存儲在所述第三服務器計算機上的所述媒體項目標題。
5.如權利要求4所述的方法,包括: 確定所述第一服務器計算機在第一路由器后面; 確定所述第三服務器計算機在第二路由器后面; 至少部分基于確定所述確定第一路由器與所述第二路由器是不同的路由器,確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站; 至少部分基于確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站,向所述客戶端計算機發送所述第二地址。
6.如權利要求4所述的方法,包括: 評估所述第一服務器計算機的第一帶寬; 評估所述第三服務器計算機的第二帶寬; 至少部分基于所述第一帶寬,確定第一概率; 至少部分基于所述第二帶寬,確定第二概率; 向所述客戶端計算機發送按照對應于所述第一概率和所述第二概率的大小的順序的所述第一地址和所述第二地址的列表。
7.如權利要求4所述的方法,其中: 所述第一路由表包括特定屬性類型的第一屬性; 所述第三路由表包括所述特定屬性類型的第二屬性; 所述第三路由表包括指示忽略所述特定屬性類型的社區值; 至少部分基于忽略所述第一屬性和所述第二屬性,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近。
8.如權利要求4所述的方法,包括: 確定用于從所述第一服務器計算機向所述客戶端計算機發送數據的第一費用; 確定用于從所述第三服務器計算機向所述客戶端計算機發送數據的第二費用; 對于所述客戶端計算機,當所述第一費用低于所述第二費用時,將所述第一服務器計算機分配到第一等級,并且將所述第三服務器計算機分配到第二等級; 向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
9.如權利要求4所述的方法,包括: 確定所述第三服務器計算機與內容分發網絡相關聯; 對于所述客戶端計算機,至少部分基于確定所述第二服務器計算機與所述內容分發網絡相關聯,將所述第一服務器計算機分配到第一等級,并且將所述第二服務器計算機分配到第二等級; 向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
10.如權利要求1所述的方法,包括:至少部分基于所述客戶端計算機、所述客戶端計算機的設備類型、所述客戶端計算機的國家、登錄所述客戶端計算機的用戶、測試協議、所述客戶端計算機的互聯網服務提供商,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
11.一種計算機系統,包括: 處理器; 存儲器; 按以下配置的處理模塊: 接收第一服務器計算機的第一路由表; 接收第二服務器計算機的第二路由表; 從客戶端計算機接收對關于保存媒體項目標題的內容服務器的信息的請求,其中所述請求包括所述客戶端計算機的客戶端互聯網協議地址; 至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近; 至少部分基于評估所述第一服務器計算機比所述第二服務器計算機更接近所述客戶端計算機,向所述客戶端計算機發送至所述客戶端計算機的第一地址,其中所述第一地址識別存儲在所述第一服務器計算機上的所述媒體項目標題。
12.如權利要求11所述的系統,其中所述處理模塊配置為至少部分基于評估所述第一服務器計算機在物理位置上到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
13.如權利要求11所述的系統,其中: 所述客戶端計算機是第一客戶端計算機,所述請求是第一請求,所述客戶端互聯網協議地址是第一客戶端互聯網協議地址; 所述處理模塊配置為: 從第二客戶端計算機接收對關于保存所述媒體項目標題的內容服務器的信息的第二請求,其中所述第二請求包括所述第二客戶端計算機的第二客戶端互聯網協議地址; 至少部分基于所述第二客戶端互聯網協議地址、所述第一路由表及所述第二路由表,評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近; 至少部分基于評估所述第二服務器計算機到所述第二客戶端計算機比所述第一服務器計算機到所述第二客戶端計算機更接近,向所述第二客戶端計算機發送至所述第二客戶端計算機的第二地址,其中所述第二地址識別存儲在所述第二服務器計算機上的所述媒體項目標題。
14.如權利要求11所述的系統,其中所述處理模塊配置為: 接收第三服務器計算機的第三路由表; 至少部分基于所述客戶端互聯網協議地址、所述第一路由表及所述第三路由表,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近; 至少部分基于評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近,向所述客戶端計算機發送第二地址; 其中所述第二地址識別存儲在所述第三服務器計算機上的所述媒體項目標題。
15.如權利要求14所述的系統,其中所述處理模塊配置為: 確定所述第一服務器計算機在第一路由器后面; 確定所述第三服務器計算機在第二路由器后面; 至少部分基于確定所述第一路由器與所述第二路由器是不同的路由器,確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站; 至少部分基于確定所述第一服務器計算機與所述第三服務器計算機處于不同的網站,向所述客戶端計算機發送所述第二地址。
16.如權利要求14所述的系統,其中所述處理模塊配置為: 評估所述第一服務器計算機的第一帶寬; 評估所述第三服務器計算機的第二帶寬; 至少部分基于所述第一帶寬,確定第一概率; 至少部分基于所述第二帶寬,確定第二概率; 向所述客戶端計算機發送按照對應于所述第一概率和所述第二概率的大小的順序的所述第一地址和所述第二地址的列表。
17.如權利要求14所述的系統,其中: 所述第一路由表包括特定屬性類型的第一屬性; 所述第三路由表包括所述特定屬性類型的第二屬性; 所述第三路由表包括指示忽略所述特定屬性類型的社區值; 所述處理模塊配置為至少部分基于忽略所述第一屬性和所述第二屬性,評估所述第一服務器計算機到所述客戶端計算機與所述第三服務器計算機到所述客戶端計算機一樣接近。
18.如權利要求14所述的系統,其中所述處理模塊配置為: 確定用于從所述第一服務器計算機向所述客戶端計算機發送數據的第一費用; 確定用于從所述第三服務器計算機向所述客戶端計算機發送數據的第二費用; 對于所述客戶端計算機,當所述第一費用低于所述第二費用時,將所述第一服務器計算機分配到第一等級,并且將所述第三服務器計算機分配到第二等級; 向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
19.如權利要求14所述的系統,其中所述處理模塊配置為: 確定所述第三服務器計算機與內容分發網絡相關聯; 對于所述客戶端計算機,至少部分基于確定所述第二服務器計算機與所述內容分發網絡相關聯,將所述第一服務器計算機分配到第一等級,并且將所述第二服務器計算機分配到第二等級; 向所述客戶端計算機發送所述第一地址和所述第二地址以及指示所述第一地址被分配到所述第一等級及所述第二地址被分配到所述第二等級的數據。
20.如權利要求11所述的系統,其中所述處理模塊配置為至少部分基于所述客戶端計算機、所述客戶端計算機的設備類型、所述客戶端計算機的國家、登錄所述客戶端計算機的用戶、測試協議、所述客戶端計算機的互聯網服務提供商,評估所述第一服務器計算機到所述客戶端計算機比所述第二服務器計算機到所述客戶端計算機更接近。
【文檔編號】H04L29/12GK104468502SQ201410495886
【公開日】2015年3月25日 申請日期:2014年9月24日 優先權日:2013年9月24日
【發明者】克里斯托弗·布蘭德, 戴維·弗拉加爾 申請人:奈飛公司