專利名稱:估計客戶機和服務(wù)器間連接的帶寬的方法、設(shè)備和服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理網(wǎng)絡(luò)領(lǐng)域,尤其涉及客戶機通過因特網(wǎng)服務(wù)提供器與網(wǎng)絡(luò)連接的數(shù)據(jù)處理網(wǎng)絡(luò)。
背景技術(shù):
客戶機和其因特網(wǎng)服務(wù)提供器(ISP)之間的最大技術(shù)上可行帶寬是一個重要量度,因為它對可達(dá)到性能設(shè)定限制。由于至少兩個原因,提供和維護網(wǎng)站的那些人員對這個量度感興趣。第一,借助于客戶機最大可得帶寬的知識,網(wǎng)站可以指定誰對不良性能負(fù)責(zé)。如果好像使用具有適當(dāng)帶寬的ISP連接的客戶機經(jīng)受了長時間延遲,網(wǎng)站應(yīng)該設(shè)法找出延遲的原因,而如果客戶機的因特網(wǎng)鏈路限制了帶寬,那么,那個用戶經(jīng)受的任何延遲可能在網(wǎng)站的糾正能力之外。第二,如果網(wǎng)站知道客戶機帶寬容量是多少,網(wǎng)站可以使其行為適應(yīng)那個容量。在防止低帶寬用戶不得不從頭到尾遭受中間延遲時間的同時,將更高水平的特征提供給高帶寬用戶的能力是一個吸引人的特征。
由于許多變量影響著傳送文檔所需的時間量,在諸如因特網(wǎng)之類的開放網(wǎng)絡(luò)的背景下,測量帶寬是困難的。尤其,介入路由器和代理器的存在使跟蹤一個文檔旅行到任何特定目的地所花費的時間量成為問題。一些文檔可能在各種各樣路由器節(jié)點上發(fā)生延遲,而另一些文檔可能沒有延遲。由于這樣的延遲是非確定性的,通過確定一個文檔從已知源點到達(dá)花費了多長時間來測量帶寬充滿了困難。因此,人們希望實現(xiàn)獲得客戶機可得帶寬的可靠估計的方法和系統(tǒng)。人們還希望實現(xiàn)的解決方案能夠在客戶機現(xiàn)有環(huán)境下起作用。
發(fā)明內(nèi)容
上述的目的是通過包括請求服務(wù)器將第一和第二對象背對背地供應(yīng)給客戶機、估計客戶機和服務(wù)器之間的網(wǎng)絡(luò)連接的帶寬的方法、程序、設(shè)備和服務(wù)器解決的。
根據(jù)本發(fā)明的一個方面,提供了估計客戶機和服務(wù)器之間的連接的帶寬的設(shè)備,該設(shè)備包括請求服務(wù)器將第一和第二對象相繼供應(yīng)給客戶機的代碼片斷;響應(yīng)訪問服務(wù)器的客戶機將代碼片斷傳送給客戶機的裝置;調(diào)用客戶機上要執(zhí)行的代碼片斷的裝置;響應(yīng)來自代碼片斷的請求將第一和第二對象發(fā)送到客戶機的裝置;和確定傳送第一和第二對象之間的時間間隔和從中估計帶寬的裝置。
根據(jù)本發(fā)明的另一個方面,提供了估計客戶機網(wǎng)絡(luò)連接的可得帶寬的方法,該方法包括使服務(wù)器能夠向服務(wù)提供器請求估計客戶機和服務(wù)器之間的連接的帶寬;通過將請求服務(wù)器將第一和第二對象按時間順序供應(yīng)給客戶機的代碼片斷提供給客戶機,響應(yīng)對帶寬估計的請求;調(diào)用代碼片斷讓客戶機向服務(wù)器請求第一和第二對象,其中,代碼片斷將指示傳送第一和第二對象之間經(jīng)過的時間量的信息返回給服務(wù)提供器;部分地根據(jù)經(jīng)過的時間估計可得帶寬。
根據(jù)本發(fā)明的又一個方面,提供了在通過客戶機ISP將服務(wù)器與客戶機相連接的數(shù)據(jù)處理網(wǎng)絡(luò)中的服務(wù)器,該服務(wù)器被配置成包括將帶寬估計代碼片斷提供給客戶機的裝置,帶寬估計代碼片斷被配置成請求服務(wù)器將第一和第二對象按時間上相鄰事務(wù)發(fā)送給客戶機;將代碼片斷生成的請求識別成用于帶寬估計的請求并通過將第一和第二數(shù)據(jù)對象提供給客戶機響應(yīng)該請求的裝置;和從客戶機接收指示傳送第一和第二對象之間的時間經(jīng)過的信息的裝置。
第一和第二對象被發(fā)送到客戶機??蛻魴C確定傳送第一和第二對象之間的時間間隔。該時間間隔與有關(guān)第二對象大小的信息一起用于估計帶寬。對第一和第二對象的請求最好利用在網(wǎng)絡(luò)上唯一的URL(統(tǒng)一資源定位符)標(biāo)識第一和第二對象,以防止該請求受到代理高速緩沖存儲器服務(wù)。第一和第二對象可以從在結(jié)構(gòu)上與客戶機ISP接近的內(nèi)容分配網(wǎng)絡(luò)服務(wù)器發(fā)送到客戶機,以提高帶寬估計的可靠性。在一個實施例中,第二對象具有小于等于與網(wǎng)絡(luò)相聯(lián)系的最小傳輸單位的大小,以防止第二對象在網(wǎng)絡(luò)中被碎化。使客戶機能夠啟動帶寬估計進程(通過請求信息包對)的軟件可以從服務(wù)器(或第三方服務(wù)提供器)提供給客戶機,作為最好可在客戶機的萬維網(wǎng)瀏覽器內(nèi)執(zhí)行的代碼片斷。在一種實施方案中,代碼片斷創(chuàng)建一對圖像對象,創(chuàng)建唯一標(biāo)識符,和利用包含唯一標(biāo)識符的URL將圖像對象與服務(wù)器上的一對數(shù)據(jù)對象(信息包)相聯(lián)系。唯一標(biāo)識符在整個網(wǎng)絡(luò)上是唯一的,并且對于特定請求是唯一的。服務(wù)器可以忽略或剝?nèi)RL的唯一部分。在這種實施方案中,所有對第一和第二對象的請求都由服務(wù)器上或CDN(內(nèi)容分配網(wǎng)絡(luò))服務(wù)器上單對對象服務(wù)。在將帶寬估計進程委托給服務(wù)提供器的一個實施例中,服務(wù)提供器還可以監(jiān)視服務(wù)器的響應(yīng)時間,和當(dāng)對特定客戶機的響應(yīng)時間長于客戶機帶寬保證的時間時,提醒服務(wù)器。
通過參照附圖進行如下詳細(xì)描述,本發(fā)明的其它目的和優(yōu)點將更加清楚,在附圖中圖1是數(shù)據(jù)處理網(wǎng)絡(luò)的方塊圖;圖2是根據(jù)本發(fā)明的一個實施例確定客戶機可得帶寬(obtainable)的方法的流程圖;圖3是例示在圖2的方法中強調(diào)在根據(jù)本發(fā)明一個實施例的網(wǎng)絡(luò)連接的客戶機方執(zhí)行的處理的細(xì)節(jié)的流程圖;和圖4是例示使服務(wù)器能夠確定客戶機可得帶寬的第三方服務(wù)的流程圖。
雖然本發(fā)明因各種變型和可替代形式而異,但其特定實施例以示例示出在附圖中,并且在這里將得到詳細(xì)描述。但是,不言而喻,這里給出的附圖和詳細(xì)描述并非打算使本發(fā)明局限于所公開的特定實施例,而是相反,其用意是涵蓋落在所附權(quán)利要求書所限定的本發(fā)明的精神和范圍內(nèi)的所有變型、等效物、和可替代物。
具體實施例方式
一般地說,本發(fā)明關(guān)注的是估計客戶機和其ISP之間的鏈路上的可得帶寬的方法和系統(tǒng)。當(dāng)客戶機訪問萬維網(wǎng)服務(wù)器時,服務(wù)器或第三方提供器(由服務(wù)器指定)將可在客戶機的瀏覽器內(nèi)執(zhí)行的一些相對簡單的代碼發(fā)送到客戶機。當(dāng)執(zhí)行代碼時,客戶機生成從服務(wù)器得到一對信息包的請求。服務(wù)器自己或讓另一個站點“背對背”或在時間上靠得很近地提供這些請求信息包。當(dāng)客戶機接收到整個第一信息包時,它記錄接收時間。當(dāng)客戶機接收到整個第二信息包時,它再次記錄接收時間。根據(jù)兩個記錄時間的差值和第二信息包大小的知識,客戶機方代碼可以計算出經(jīng)驗帶寬數(shù)。通過重復(fù)該進程三次或更多次和利用最高確定帶寬獲得提高了的精度。
參照圖1,圖1描繪了根據(jù)本發(fā)明一個實施例的數(shù)據(jù)處理網(wǎng)絡(luò)100的所選部件。在所描繪的實施例中,網(wǎng)絡(luò)100包括被顯示成通過鏈路103以及客戶機ISP 110與諸如因特網(wǎng)之類的廣域網(wǎng)相連接的客戶機系統(tǒng)(客戶機)102。本發(fā)明感興趣的是獲取客戶機-ISP鏈路103的最大可得帶寬的可靠估計。由于發(fā)送到客戶機102和從客戶機102發(fā)送的所有信息包都必須穿過鏈路103,并且絕大多數(shù)客戶機的瓶頸帶寬是客戶機-ISP鏈路103,因此鏈路103的最大可得帶寬基本上決定了客戶機發(fā)送和檢索數(shù)據(jù)的能力。取決于實施方案(例如,ADSL(非對稱數(shù)字用戶環(huán)路)),客戶機發(fā)送和接收數(shù)據(jù)的帶寬可能不同。對于許多應(yīng)用來說,網(wǎng)站提供器和其它設(shè)備最感興趣的參數(shù)是客戶機接收信息的最大可得帶寬,而本發(fā)明的焦點就是這個參數(shù)。ISP 110代表傳送到客戶機102和從客戶機102接收的所有業(yè)務(wù)必須通過的網(wǎng)關(guān)。通常,ISP 110允許客戶機102以月或年預(yù)訂費為代價訪問因特網(wǎng)。一般說來,定期費用隨鏈路的質(zhì)量或速度而改變。希望或要求高速因特網(wǎng)訪問的用戶通常比通過撥號訪問的用戶支付更多費用。可替代地,帶寬受本地服務(wù)器提供器可以提供的帶寬限制的提供器(例如,處在顧客零售店)可以有嘗提供鏈路。另外,地理和其它考慮可能要求最終用戶只能擁有撥號連接。
客戶機102是諸如臺式計算機或筆記本電腦之類的數(shù)據(jù)處理設(shè)備或系統(tǒng)、諸如允許上網(wǎng)蜂窩式電話或PDA(個人數(shù)字助理)之類的無線設(shè)備、或任何其它“網(wǎng)絡(luò)可意識(network aware)”設(shè)備。訪問萬維網(wǎng)上的內(nèi)容是利用在客戶機硬件上執(zhí)行的瀏覽器實現(xiàn)的。在任何有效范圍上使用的幾乎所有瀏覽器共享某些共同屬性。一個這樣的屬性是瀏覽器執(zhí)行JavaScrip_代碼的能力。JavaScrip_是美國網(wǎng)景公司開發(fā)的開放、與平臺無關(guān)、面向?qū)ο蟮挠嬎銠C編程語言。在所描繪的實施例中,客戶機102包含使系統(tǒng)或設(shè)備能夠執(zhí)行JavaScrip_代碼的全功能運行時(runtime)環(huán)境。
當(dāng)客戶機102想要檢索諸如機構(gòu)主頁之類的信息時,客戶機利用其瀏覽器輸入主頁的統(tǒng)一資源定位符(URL)(例如,www.OrganizationName.com)。客戶機瀏覽器生成從存儲對象的服務(wù)器(或從代理服務(wù)器)中檢索URL所代表的對象的請求。如圖1所示,服務(wù)器150代表機構(gòu)網(wǎng)站或萬維網(wǎng)實體。在服務(wù)器150上或在服務(wù)器150可訪問的存儲器上存儲著,例如,機構(gòu)主頁。
服務(wù)器150所代表的機構(gòu)很可能不僅對確定誰正在訪問其網(wǎng)站感興趣,而且對其訪問者擁有什么水平的因特網(wǎng)能力感興趣。這個信息可以用于區(qū)分提供給訪問者的服務(wù)的類型。當(dāng)萬維網(wǎng)實施方案不合適時,也可以通知服務(wù)器。具體地說,如果服務(wù)器150意識到擁有高帶寬連接的特定客戶機在觀看頁面等時正經(jīng)受顯著延遲,網(wǎng)站設(shè)備和實施方案可能需要修改。
難以獲取客戶機實際帶寬的精確量度部分原因是因特網(wǎng)的結(jié)構(gòu)。理論上,確定客戶機帶寬可以通過正當(dāng)數(shù)據(jù)從服務(wù)器傳送到客戶機時啟動定時器和當(dāng)信息包的傳送完成時終止定時器來完成。如果數(shù)據(jù)量已知,傳輸時間可以用于計算經(jīng)驗帶寬量度。在局域網(wǎng)中,這種途徑可以通過讓服務(wù)器背對背地(即,以時間上相鄰的序列)將一對信息包發(fā)送到客戶機來實現(xiàn)。然后,當(dāng)客戶機接收到第一信息包時,啟動定時器。一旦接收到第二信息包就終止定時器,并且,通過將第二信息包的大小除以經(jīng)過的時間來估計帶寬。但是,在因特網(wǎng)的背景下,介入硬件設(shè)備和文件高速緩沖存儲器的存在使該項工作變得異常困難。
例如,如圖1所示,從客戶機102到服務(wù)器150的任何路徑都要穿過多個路由器112。如果服務(wù)器150試圖通過簡單地將一對信息包發(fā)送到客戶機來確定客戶機帶寬,第二信息包可能在任何一個路由器112上發(fā)生延遲,同時該路由器為某些其它信息包服務(wù)。另外,因特網(wǎng)上的許多設(shè)備包括文件高速緩沖存儲器。文件高速緩沖存儲器是用于存儲最近受訪問的數(shù)據(jù)的存儲設(shè)施。如果客戶機請求(例如)特定對象,則該對象的副本可以被適當(dāng)?shù)馗咚倬彺嬖诳蛻魴C102和服務(wù)器150之間的一個或多個路由器和/或代理服務(wù)器上的存儲設(shè)備中。文件高速緩沖存儲器的例子在圖1中用內(nèi)容分配網(wǎng)絡(luò)(CDN)服務(wù)器120表示。CDN是通過使大高速緩存文件保持在大量不同服務(wù)器上減少對單個萬維網(wǎng)服務(wù)器的訪問次數(shù)和防止單個萬維網(wǎng)服務(wù)器過載的一種嘗試。最好,這些CDN服務(wù)器120位于與各種ISP 110接近的距離上。在這種應(yīng)用的背景下,兩個設(shè)備的距離指的是兩個設(shè)備之間的網(wǎng)絡(luò)“跳段(hop)”的個數(shù)。假設(shè)CDN服務(wù)器120處在與主ISP 110接近的距離上和CDN服務(wù)器高速緩存數(shù)量很大的頻繁訪問對象,顯而易見,對萬維網(wǎng)對象的很多請求可能受到由處在與請求者ISP接近的距離上的對象的高速緩存副本服務(wù)。正如后面更詳細(xì)描述的那樣,本發(fā)明的一個實施例有利于利用CDN 120的存在帶來的影響,以提高經(jīng)驗導(dǎo)出帶寬數(shù)的可靠性。但是,就一般性地測量客戶機-ISP帶寬而言,文件高速緩沖存儲器的存在使事情復(fù)雜化,因為不能肯定特定對象正受到來自何方的服務(wù)。在信息包對例子中,如果第一信息包受到由來自遠(yuǎn)程服務(wù)器的服務(wù),而第二信息包受到來自附近服務(wù)器的服務(wù),所得的帶寬確定結(jié)果很可能是不精確的和不可靠的。
本發(fā)明面臨來自瀏覽器內(nèi)部、在因特網(wǎng)上實現(xiàn)信息包對概念所固有的困難。所實現(xiàn)的解決方案的一些部分可能以一組或一系列存儲在計算機可讀媒體上的計算機可執(zhí)行指令的形式出現(xiàn)。指令可以存儲在諸如磁盤或磁帶之類的永久性存儲媒體、諸如閃速存儲器件之類包括電可擦除器件的只讀存儲器(ROM)器件等上。在執(zhí)行指令的時候,軟件可以駐留在諸如數(shù)據(jù)處理系統(tǒng)的系統(tǒng)存儲器或與系統(tǒng)處理器之一相聯(lián)系的高速緩沖存儲器之類的易失性存儲媒體中。
參照圖2,該流程圖例示了確定因特網(wǎng)環(huán)境內(nèi)特定客戶機鏈路的帶寬的方法200。在一種實施方案中,實現(xiàn)本發(fā)明所需的許多代碼或軟件是可在大多數(shù)傳統(tǒng)瀏覽器內(nèi)執(zhí)行的JavaScrip_代碼。在所描繪的實施例中,方法200包括諸如圖1的服務(wù)器150之類的服務(wù)器對客戶機請求的檢測。從客戶機接收的典型請求是對特定URL的眾所周知的HTTP(超文本傳輸協(xié)議)格式化GET請求。一旦接收到這樣的請求,服務(wù)器確定(方塊204)它是否想要估計請求客戶機的帶寬。服務(wù)器可以選擇只為所選客戶機和只在所選的時間估計帶寬。例如,服務(wù)器可以選擇只為頻繁訪問服務(wù)器(即,請求來自服務(wù)器的URL)的客戶機估計帶寬。服務(wù)器也可以選擇只在活動性低的時間內(nèi)(當(dāng)與供應(yīng)帶寬確定所需的信息包相聯(lián)系的處理開銷影響較小時)或在活動性高的時間內(nèi)(當(dāng)分配服務(wù)器可用帶寬重要時)估計帶寬。如果服務(wù)器不選擇在接收到請求之后進行帶寬估計,服務(wù)器將簡單地以傳統(tǒng)方式為請求服務(wù)。
如果服務(wù)器的確開始帶寬估計,所描繪的方法200的實施例首先初始化(方塊206)跟蹤或計數(shù)已經(jīng)執(zhí)行的帶寬估計疊代次數(shù)的變量。在本發(fā)明的優(yōu)選實施例中,進行了多次帶寬估計疊代,以提高最后結(jié)果的精度。疊代次數(shù)很可能由服務(wù)器確定,而跟蹤疊代次數(shù)很可能是客戶機方的責(zé)任,但是,可替代實施方案可以以可替代方式分配這些責(zé)任。在疊代變量被初始化之后,服務(wù)器(或如下參照圖4所述的第三方提供器)向請求客戶機發(fā)送(方塊208)JavaScrip_代碼片斷。JavaScrip_代碼片斷是為執(zhí)行特定工作而設(shè)計的一段JavaScrip_源代碼。在本發(fā)明中,傳送給客戶機的代碼片斷(客戶機方代碼片斷)一般被設(shè)置成向服務(wù)器請求一對信息包和進行包括(例如)啟動定時器、計算時間、計算帶寬等的其它帶寬估計活動??蛻魴C方代碼片斷的實現(xiàn)將在下面參照圖3作更詳細(xì)描述。
當(dāng)服務(wù)器將代碼片斷發(fā)送到客戶機時,客戶機瀏覽器,更具體地說,客戶機瀏覽器的JavaScrip運行時環(huán)境執(zhí)行代碼片斷。在一個實施例中,服務(wù)器可以將確定是否應(yīng)該確定客戶機-ISP帶寬的能力嵌入這個代碼片斷中。如果要確定客戶機-ISP帶寬,代碼片斷讓客戶機生成對來自服務(wù)器的第一和第二信息包的請求。在所述的實施例中,這兩個信息包都通過唯一的預(yù)定URL(即,很有把握地說,URL以前從未被請求過)標(biāo)識。在本發(fā)明的背景下,唯一URL是所希望的,以保證在中間路由器或代理服務(wù)器的高速緩沖存儲器中不會找到請求的對象?;谝粋€實施例的唯一URL是通過將唯一字符串附在預(yù)定對象名上生成的。當(dāng)服務(wù)器接收到來自客戶機的信息包請求時,所請求URL的格式將通知服務(wù)器為了估計帶寬的目的正在請求URL。
雖然希望在整個網(wǎng)絡(luò)上發(fā)送唯一URL,但對于每個請求客戶機來說,未必都擁有唯一信息包。每個客戶機的唯一對象將需要大量的存儲空間。為了在整個網(wǎng)絡(luò)上發(fā)送請求,如圖2所描繪的本發(fā)明使用唯一URL,但通過剝離(方塊210)URL字符串的唯一部分,留下所有客戶機公用的URL,保留服務(wù)器方的存儲空間。因此,在服務(wù)器上唯一URL的巨大(可能無限)集合被映射成兩段內(nèi)容。
一旦識別出對第一帶寬估計信息包的請求,服務(wù)器然后可能選擇等待對第二信息包的請求的接收,以便服務(wù)器可以保證兩個信息包是背對背傳送的。在本發(fā)明的背景下,背對背傳輸表明信息包對中的信息包的傳輸之間的間隔小于客戶機瀏覽器可檢測的最小時間間隔。這個最小值當(dāng)前通常在大約10ms的數(shù)量級,為了保證信息包是背對背發(fā)送的,在大多數(shù)服務(wù)器應(yīng)用中,這個時間足夠了。
在接收到對第二信息包的請求之后,將第一和第二信息包背對背地供應(yīng)(方塊212)給請求客戶機。信息包可以由服務(wù)器150本身供應(yīng)。在希望減少服務(wù)設(shè)備和客戶機之間的跳段數(shù)的另一個實施例中,服務(wù)器將所請求信息包的服務(wù)委托給內(nèi)容分配網(wǎng)絡(luò)。如上面圖1所述,CDN是有意處在諸如圖1的ISP 110之類的ISP附近(就網(wǎng)絡(luò)跳段而言)的文件高速緩沖存儲器服務(wù)器的網(wǎng)絡(luò)(譬如CDN 150)。
在本發(fā)明的背景下CDN的使用有利于通過減少當(dāng)信息包被發(fā)送給請求客戶機時它們穿過的網(wǎng)絡(luò)跳段的個數(shù),提高估計帶寬的可靠性。當(dāng)特定ISP和特定服務(wù)器之間的地理距離大(例如,國外萬維網(wǎng)服務(wù)器)時,這尤其正確。許多大型萬維網(wǎng)服務(wù)器已經(jīng)將CDN用作減少對所請求數(shù)據(jù)的訪問次數(shù),并且,也許更重要的是,防止當(dāng)在短時間內(nèi)生成大量請求時可能出現(xiàn)的過載狀況的方法。
在一個實施例中,使供應(yīng)的第二信息包局限于防止網(wǎng)絡(luò)將信息包劃分成可能曲解帶寬確定的多個信息包的大小。例如,在一個實施例中,第二信息包的大小被限制成正好等于一個最小傳輸單位(MTU)減去各種首標(biāo)的大小。例如,IP首標(biāo)和TCP首標(biāo)一起需要40個字節(jié)。服務(wù)器選擇第二信息包的內(nèi)容大小,使得內(nèi)容大小+HTTP首標(biāo)大小+TCP首標(biāo)大小+IP首標(biāo)大小不超過一個MTU。正如其名稱所暗示的那樣,MTU是保證作為單個信息包發(fā)送的最大數(shù)據(jù)量。大于MTU的任何信息包可以被中間路由器碎化。換句話說,MTU是保證不會被因特網(wǎng)路由器碎化的發(fā)送的最小信息包。因特網(wǎng)上的MTU是576個字節(jié)。所有網(wǎng)絡(luò)硬件都必須遵守意思是不允許網(wǎng)絡(luò)上任何設(shè)備將MTU劃分成多個更小信息包的MTU概念。在一種優(yōu)先實施方案中,用指令發(fā)送第一和第二HTTP對象(即,第一和第二信息包),以便中間高速緩沖存儲器不高速緩存這些對象。但是,一些中間高速緩沖存儲器可能不服從這些指令,高速緩存這些對象。但是,正如下面參照圖3所述的那樣,這樣的不服從不影響本發(fā)明的帶寬估算進程。
在方塊212中傳送到信息包之后,服務(wù)器然后等待客戶機方代碼片斷,以便根據(jù)接收第二信息包所要求的經(jīng)過時間計算帶寬。然后,將計算的帶寬傳送(方塊241)到服務(wù)器加以存儲。
將每次疊代之后客戶機將其加1的疊代變量N與預(yù)定閾值相比較(方塊218)。進行另一次疊代過程,直到N=MAX。疊代次數(shù)的用意是在不消耗過多時間和資源的同時保證可靠值。并非很確鑿的證據(jù)表明,在大多數(shù)應(yīng)用中,4次疊代進程足以精度很高地估計客戶機的最大可得帶寬。在完成了其中每次疊代產(chǎn)生相應(yīng)計算帶寬值、指定疊代次數(shù)的進程之后,服務(wù)器選擇(方塊220)選擇計算閾值的最大值作為帶寬值??商娲?,客戶機可以存儲估計帶寬值中的每一個,選擇最大值,和將那個單一值發(fā)送到服務(wù)器。使用最大值是因為,當(dāng)假設(shè)客戶機上的信息包處理及時發(fā)生時(即,當(dāng)假設(shè)客戶機方?jīng)]有將第一信息包的處理延遲這樣長的時間間隔,以致于第二信息包的估計傳輸時間被人為縮短,從而人為造成高帶寬估計時),對于測量的帶寬來說,理論上不可能超過實現(xiàn)物理帶寬。在這種假設(shè)下,估計帶寬不能超過鏈路的物理帶寬,以便任何估計帶寬必須小于等于最大可得帶寬。
現(xiàn)在參照圖3,該流程圖例示了在前面圖2的討論中涉及的客戶機方代碼片斷300的實施例。在所描述的實施例中,代碼片斷300創(chuàng)建唯一ID(方塊302)。唯一ID可以以把握性很高地保證沒有其它客戶機將生成同一唯一ID(從而使ID不是唯一的)的任何方式生成。例如,在一個實施例中,唯一性是通過連接從日期指示符的時間中推導(dǎo)出的數(shù)字字符串和隨機數(shù)實現(xiàn)的。如上所述,唯一ID用作保證出現(xiàn)在與ISP連接的任何代理服務(wù)器或路由器中的任何高速緩沖存儲器不能為信息包對中的每個信息包服務(wù)的機制。
在創(chuàng)建了唯一ID之后,客戶機方代碼片斷創(chuàng)建(方塊304)第一和第二對象。在優(yōu)選實施例中,創(chuàng)建的對象是圖像對象。圖像對象一般用于訪問圖形圖像。但是,在本發(fā)明的背景下,選擇圖像對象是因為,它們支持的方法可用在確定帶寬確定中。具體地說,所有JavaScrip_圖像對象都支持當(dāng)裝載圖像對象時調(diào)用的OnLoad事件管理器。在通過標(biāo)記兩個不同信息包被完全裝載的時間進行操作的本發(fā)明中,這個事件管理器是非常有用的。圖像對象還支持指示在圖像裝載嘗試期間是否遇到錯誤的OnError事件管理器。還應(yīng)該注意到,JavaScrip圖像對象不需要被顯示在瀏覽器屏幕上,因此,取決于實施方案,最終用戶可能看不見。
賦予創(chuàng)建的第一和第二圖像對象兩者以附有唯一ID、包括與相應(yīng)圖像對象有關(guān)的“友好”名稱(例如,ImageObjectOne和ImageObjectTwo)的名稱。將同一唯一ID用于信息包對中的兩個信息包有利于使服務(wù)器能夠確定兩個請求來自同一客戶機。在這種實施方案中,服務(wù)器可以一直等待到具有相同ID的兩個請求都被得到接收,然后,背對背地發(fā)送信息包。
然后,通過設(shè)置所創(chuàng)建對象的源(SRC)屬性使圖像對象“指向”(方塊306)服務(wù)器。當(dāng)SRC屬性得到定義時,這些對象將啟動從服務(wù)器方檢索命名對象。在第一和第二對象被檢索出現(xiàn)之前,客戶機代碼片斷激活(方塊308)對象的onload和onerror事件。當(dāng)接收到一個信息包之后事件裝載器最終被觸發(fā)(方塊310)時,記錄該時間(方塊312)。記錄的時間代表帶寬估計時序開始的時刻。因此,接收作為圖像對象的第一信息包是客戶機可以確定在客戶機上什么時候開始接收到第二信息包的方法。
在方塊312中記錄了第一時間之后,代碼片斷監(jiān)視(方塊314)整個第二圖像對象的接收。當(dāng)?shù)诙D像對象被完全裝載(方塊316)時,代碼片斷計算經(jīng)過的時間,并且,借助于第二信息包大小的知識,確定帶寬的計算值(方塊318)。在一個實施例中,第二對象的大小被嵌入代碼片斷中。然后,將疊代變量N加1(方塊319)和使計算的帶寬值返回到(方塊320)服務(wù)器。在一個實施例中,這可以通過在檢索帶寬值作為一個參數(shù)的服務(wù)器上使對象指向URL來實現(xiàn)。在另一個實施例中,客戶機只通知服務(wù)器兩個信息包之間的時間延遲,以及用在確定中的唯一ID。服務(wù)器利用時間延遲和第二信息包的大小(通過唯一ID跟蹤)確定帶寬。如果由于HTTP錯誤而沒有一個對象被裝載(使onerror管理器被觸發(fā)),JavaScrip代碼片斷可以要求客戶機重復(fù)或中止實驗。代碼片斷可以限制客戶機的重復(fù)次數(shù)。最后,每個會話,或一旦一個時間間隔已到(例如,每4個小時)可以一次完成整個帶寬估計。在典型實施例中,由于相關(guān)的開銷,不對每頁進行確定。服務(wù)器提供的代碼片斷使客戶機根據(jù)服務(wù)器要求的條件重復(fù)實驗。服務(wù)器也可以要求只有其整個客戶機基體的一個隨機集合進行帶寬估計。現(xiàn)在參照圖4,圖4例示了將帶寬估計功能提供給服務(wù)器的方法的流程圖。在所描繪的實施例中,當(dāng)受到服務(wù)器調(diào)用時,標(biāo)號16所代表的第三方提供器負(fù)責(zé)將代碼片斷的代碼傳送給適當(dāng)?shù)目蛻魴C。在所描繪的實施例中,服務(wù)器150通過將請求發(fā)送到提供器160來響應(yīng)客戶機請求。提供器160接收(方塊402)該請求和將代碼片斷發(fā)送到客戶機(方塊404)。在這種情況下,提供器160(或CDN 120)將信息包供應(yīng)(方塊406)回給客戶機和從客戶機接收(方塊408)確定的帶寬(在適當(dāng)?shù)寞B代次數(shù)之后)。然后,提供器160將帶寬傳送回到請求服務(wù)器。通過應(yīng)用第三方提供器,使服務(wù)器從將客戶機方代碼片斷保留成實現(xiàn)帶寬確定所需的服務(wù)器方腳本的要求中解放出來,而是可以集中在要根據(jù)確定的帶寬作出的決定上。第三方服務(wù)器可以選擇連續(xù)地傳送帶寬信息,或以集中的形式向服務(wù)器160報告操作符。另外,提供器160可以被實現(xiàn)成當(dāng)估計的帶寬與一個或多個其它服務(wù)器統(tǒng)計數(shù)據(jù)不一致時,將糾正動作通知發(fā)送到服務(wù)器。舉一個例子來說,除了跟蹤客戶機方帶寬限制之外,提供器160可以跟蹤服務(wù)器方響應(yīng)時間。監(jiān)視服務(wù)器響應(yīng)時間的示范性方法和系統(tǒng)公開在名稱為Measuring Response Time for a Computer Accessing Information From aNetwork(申請?zhí)?9/736,348,申請日期2000年12月14日)和Verificationof Service Level Agreement Contracts(申請?zhí)?9/736,537,申請日期2000年12月14日)的專利申請中,特此引用,以供參考。
對于本領(lǐng)域的普通技術(shù)人員來說,顯而易見,本發(fā)明關(guān)注的是為客戶機-ISP鏈路經(jīng)驗地導(dǎo)出帶寬確定的機制。不言而喻,在詳細(xì)說明和附圖中顯示和描述的本發(fā)明的形式只被當(dāng)作當(dāng)前優(yōu)選的例子。我們的意思是,所附的權(quán)利要求書被廣義地解釋為包括所公開的優(yōu)選實施例的所有變型。
權(quán)利要求
1.一種估計客戶機和服務(wù)器之間的連接的帶寬的設(shè)備,該設(shè)備包括請求服務(wù)器將第一和第二對象相繼供應(yīng)給客戶機的代碼片斷;響應(yīng)訪問服務(wù)器的客戶機將代碼片斷傳送給客戶機的裝置;調(diào)用客戶機上要執(zhí)行的代碼片斷的裝置;響應(yīng)來自代碼片斷的請求將第一和第二對象發(fā)送到客戶機的裝置;和確定傳送第一和第二對象之間的時間間隔和從中估計帶寬的裝置。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中,請求第一和第二對象的裝置包括利用連接客戶機和服務(wù)器的網(wǎng)絡(luò)上唯一的URL標(biāo)識第一和第二對象的裝置。
3.根據(jù)權(quán)利要求2所述的設(shè)備,其中,將第一和第二對象發(fā)送到客戶機的裝置包括將第一和第二對象從在結(jié)構(gòu)上與客戶機的ISP接近的內(nèi)容分配網(wǎng)絡(luò)服務(wù)器發(fā)送到客戶機的裝置。
4.根據(jù)權(quán)利要求3所述的設(shè)備,其中,第二對象具有小于或等于與網(wǎng)絡(luò)相聯(lián)系的最小傳輸單位的大小,以防止第二對象被碎化。
5.根據(jù)權(quán)利要求3所述的設(shè)備,其中,代碼片斷包括創(chuàng)建第一和第二圖像對象的裝置;生成唯一標(biāo)識符(uniqueID)的裝置;和利用包含uniqueID的URL將第一和第二圖像對象與服務(wù)器上的第一和第二對象相聯(lián)系的裝置。
6.根據(jù)權(quán)利要求5所述的設(shè)備,進一步包括通過服務(wù)器忽略第一和第二URL中的uniqueID的裝置,其中來自任何客戶機的、對第一和第二對象的請求受服務(wù)器上的單對對象服務(wù),而不管與服務(wù)器接收的URL中的uniqueID如何。
7.根據(jù)權(quán)利要求5所述的設(shè)備,其中,生成uniqueID的裝置包括根據(jù)日期時間值和隨機數(shù)導(dǎo)出標(biāo)識符的裝置。
8.根據(jù)權(quán)利要求5所述的設(shè)備,進一步包括只有在接收到具有和與對第一對象的請求相聯(lián)系的uniqueID相同的uniqueID的、對第二對象的請求之后,才響應(yīng)對第一對象的請求的裝置。
9.根據(jù)權(quán)利要求1所述的設(shè)備,進一步包括調(diào)用代碼片斷數(shù)次以獲得帶寬的數(shù)次估計的裝置以及選擇最高獲得帶寬作為估計帶寬的裝置。
10.一種估計客戶機網(wǎng)絡(luò)連接的可得帶寬的方法,該方法包括使服務(wù)器能夠向服務(wù)提供器請求估計客戶機和服務(wù)器之間的連接的帶寬;通過將請求服務(wù)器將第一和第二對象按時間順序供應(yīng)給客戶機的代碼片斷提供給客戶機,響應(yīng)對帶寬估計的請求;調(diào)用代碼片斷讓客戶機向服務(wù)器請求第一和第二對象,其中代碼片斷將指示傳送第一和第二對象之間經(jīng)過的時間量的信息返回給服務(wù)提供器;和部分地根據(jù)經(jīng)過的時間估計可得帶寬。
11.根據(jù)權(quán)利要求10所述的方法,進一步包括保持服務(wù)器的響應(yīng)時間數(shù)據(jù),并根據(jù)所選客戶機的服務(wù)器響應(yīng)時間和與所選擇客戶機相聯(lián)系的估計帶寬提醒服務(wù)器。
12.根據(jù)權(quán)利要求10所述的方法,代碼片斷利用在連接客戶機和服務(wù)器的網(wǎng)絡(luò)上唯一的URL標(biāo)識第一和第二對象。
13.根據(jù)權(quán)利要求12所述的方法,其中,服務(wù)器通過將第一和第二對象從在結(jié)構(gòu)上與客戶機與之連接的ISP服務(wù)器接近的內(nèi)容分配網(wǎng)絡(luò)服務(wù)器發(fā)送到客戶機來響應(yīng)對第一和第二對象的請求。
14.根據(jù)權(quán)利要求13所述的方法,其中,第二對象具有小于或等于與網(wǎng)絡(luò)相聯(lián)系的最小傳輸單位的大小,以防止第二對象被碎化。
15.根據(jù)權(quán)利要求14所述的方法,進一步包括調(diào)用代碼片斷數(shù)次以獲得帶寬的數(shù)次估計和選擇最高估計帶寬。
16.根據(jù)權(quán)利要求10所述的方法,其中,代碼片斷包括創(chuàng)建第一和第二圖像對象;生成唯一標(biāo)識符(uniqueID);和利用包含uniqueID的URL將第一和第二圖像對象與第一和第二對象相聯(lián)系。
17.一種在通過客戶機ISP將服務(wù)器與客戶機相連接的數(shù)據(jù)處理網(wǎng)絡(luò)中的服務(wù)器,該服務(wù)器被配置成包括將帶寬估計代碼片斷提供給客戶機的裝置,帶寬估計代碼片斷被配置成請求服務(wù)器將第一和第二對象按時間上相鄰的事件發(fā)送給客戶機;將代碼片斷生成的請求識別成用于帶寬估計的請求并通過將第一和第二數(shù)據(jù)對象提供給客戶機來響應(yīng)該請求的裝置;和從客戶機接收指示傳送第一和第二對象之間經(jīng)過的時間的信息的裝置。
18.根據(jù)權(quán)利要求17所述的服務(wù)器,其中,帶寬估計代碼片斷利用在整個網(wǎng)絡(luò)上和對于特定請求來說唯一的第一和第二URL向服務(wù)器請求第一和第二對象。
19.根據(jù)權(quán)利要求17所述的服務(wù)器,其中,第一和第二URL每一個都包括從與請求相聯(lián)系的日期時間和隨機數(shù)中導(dǎo)出的唯一部分。
20.根據(jù)權(quán)利要求17所述的服務(wù)器,其中,服務(wù)器通過將第一和第二對象提供給在結(jié)構(gòu)上與客戶機從CDN服務(wù)器接收第一和第二對象的客戶機ISP接近的內(nèi)容分配網(wǎng)絡(luò)服務(wù)器,將第一和第二數(shù)據(jù)對象提供給客戶機。
全文摘要
估計客戶機和服務(wù)器之間的網(wǎng)絡(luò)連接的帶寬的方法、程序、設(shè)備和服務(wù)器包括請求服務(wù)器將第一和第二對象背對背地供應(yīng)給客戶機。第一和第二對象被發(fā)送到客戶機??蛻魴C確定傳送第一和第二對象之間的時間間隔。該時間間隔與有關(guān)第二對象大小的信息一起用于估計帶寬。對第一和第二對象的請求最好利用在網(wǎng)絡(luò)上唯一的URL標(biāo)識第一和第二對象,以防止該請求受到文件高速緩沖存儲器服務(wù)。第一和第二對象可以從在結(jié)構(gòu)上與客戶機ISP接近的內(nèi)容分配網(wǎng)絡(luò)服務(wù)器發(fā)送到客戶機,以提高帶寬估計的可靠性。
文檔編號G06F15/16GK1627710SQ20041008572
公開日2005年6月15日 申請日期2004年10月15日 優(yōu)先權(quán)日2003年12月12日
發(fā)明者拉馬克里什南·雷杰默尼 申請人:國際商業(yè)機器公司