專利名稱:Http 優(yōu)化、多歸屬、移動(dòng)性和優(yōu)先級(jí)的制作方法
技術(shù)領(lǐng)域:
本公開(kāi)一般涉及通信,并且更具體地涉及用于在無(wú)線通信網(wǎng)絡(luò)中獲取超文本分組數(shù)據(jù)內(nèi)容的技術(shù)。
背景技術(shù):
超文本傳輸協(xié)議(HTTP)是web瀏覽器和web應(yīng)用程序所使用的主要的通信協(xié)議。大型基礎(chǔ)設(shè)施已經(jīng)在互聯(lián)網(wǎng)內(nèi)建立起來(lái),以便以內(nèi)容分發(fā)網(wǎng)絡(luò)的形式支持HTTP協(xié)議的高效操作。因此,數(shù)量不斷増加的應(yīng)用程序正在被移植到HTTP協(xié)議。盡管這種移植有其它的原因(例如,網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)和防火墻穿越),但是利用web基礎(chǔ)設(shè)施大規(guī)模的可擴(kuò)展性的能力是主要的驅(qū)動(dòng)力。當(dāng)今,web站點(diǎn)通常是非常復(fù)雜的,其包括了數(shù)十或數(shù)百個(gè)對(duì)象,其中,每個(gè)對(duì)象必須使用HTTP來(lái)單獨(dú)請(qǐng)求。已經(jīng)在HTTP內(nèi)定義了各種優(yōu)化,以提高能夠?qū)?duì)象從服務(wù)器傳輸?shù)娇蛻舳说乃俣?。在有線網(wǎng)絡(luò)內(nèi),已經(jīng)對(duì)這些優(yōu)化應(yīng)用程序進(jìn)行了大量的工作;然而,對(duì)于理解這些特征如何在具有高往返時(shí)間(RTT)和高可變帶寬的更具挑戰(zhàn)性的移動(dòng)環(huán)境中起作用并進(jìn)行組合而言,還遺留有未解決的問(wèn)題。具體地,應(yīng)當(dāng)注意到,很多HTTP工作是在ー些年前完成的,在當(dāng)時(shí),移動(dòng)網(wǎng)絡(luò)的特性是與現(xiàn)在顯著不同的。
發(fā)明內(nèi)容
下面給出了簡(jiǎn)要概述,以便提供對(duì)所公開(kāi)方面中的ー些方面的基本理解。該概述不是全面的概括,而是g在既不指出關(guān)鍵或重要元素,也不限定這些方面的范圍。其目的是以簡(jiǎn)化形式給出所述特征的ー些概念,來(lái)作為后面給出的更具體描述的前序。在ー個(gè)方面中,提供了ー種用于通過(guò)以下操作進(jìn)行分組數(shù)據(jù)通信的方法建立多個(gè)并行連接用于分組數(shù)據(jù)通信;經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象;以及動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。在另一方面中,提供了用于分組數(shù)據(jù)通信的至少ー個(gè)處理器。第一模塊建立多個(gè)并行連接用于分組數(shù)據(jù)通信。第二模塊經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象。第三模塊動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。在另一方面中,提供了一種用于分組數(shù)據(jù)通信的計(jì)算機(jī)程序產(chǎn)品。非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)存儲(chǔ)了代碼集。第一代碼集使計(jì)算機(jī)建立多個(gè)并行連接用于分組數(shù)據(jù)通信。第ニ代碼集使所述計(jì)算機(jī)經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象。第三代碼集使所述計(jì)算機(jī)動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。在另一方面中,提供了ー種用于分組數(shù)據(jù)通信的裝置。所述裝置包括用于建立多個(gè)并行連接以用于分組數(shù)據(jù)通信的模塊。所述裝置包括用于經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì) 象的模塊。所述裝置包括用于動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用的模塊。在另一方面中,提供了一種用于分組數(shù)據(jù)通信的裝置。收發(fā)機(jī)建立多個(gè)并行連接以用于分組數(shù)據(jù)通信。所述收發(fā)機(jī)還經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象。計(jì)算平臺(tái)動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。為了實(shí)現(xiàn)前述及相關(guān)目標(biāo),ー個(gè)或多個(gè)方面包括下文中充分描述的并在權(quán)利要求中明確指出的特征。以下描述和附圖具體闡述了某些示例性方面,并且指出了可以運(yùn)用這些方面的原理的各種方式中的一小部分。根據(jù)下面結(jié)合附圖的具體描述,其它優(yōu)點(diǎn)和新穎性特征將變得顯而易見(jiàn),并且所公開(kāi)的方面_在包括所有這些方面及其等同物。
結(jié)合附圖并根據(jù)下面闡述的具體說(shuō)明,本公開(kāi)的特征、屬性和優(yōu)點(diǎn)將變得更加顯而易見(jiàn),在附圖中,相同的附圖標(biāo)記在全文中標(biāo)識(shí)一致,其中圖I示出了用于HTTP優(yōu)化的通信系統(tǒng)的示意圖。圖2A-2B示出了用于HTTP優(yōu)化的方法的流程圖。圖3示出了根據(jù)往返時(shí)間(RTT)的頁(yè)面加載時(shí)間的圖表。圖4示出了單個(gè)持久連接的鏈路使用模式的圖形。圖5示出了第一和第二上行鏈路請(qǐng)求和下行鏈路響應(yīng)的鏈路使用模式的圖形。圖6示出了在固定帶寬情況下針對(duì)不同RTT達(dá)到的最佳頁(yè)面下載時(shí)間的圖表。圖7示出了用于HTTP優(yōu)化的多個(gè)算法的示例關(guān)系的圖形。圖8示出了執(zhí)行HTTP優(yōu)化的移動(dòng)終端的方框圖。圖9示出了支持HTTP優(yōu)化的節(jié)點(diǎn)的方框圖。圖10示出了至少部分地位于移動(dòng)設(shè)備中的系統(tǒng)的方框圖,該移動(dòng)設(shè)備具有用于HTTP優(yōu)化的電子部件的邏輯組。
圖11示出了位于網(wǎng)絡(luò)中的系統(tǒng)的方框圖,該網(wǎng)絡(luò)具有用于支持HTTP優(yōu)化的電子部件的邏輯組。
具體實(shí)施例方式將并行HTTP連接和流水線處理進(jìn)行組合具有益處,S卩,克服了增加往返時(shí)間(RTT)的影響。通常,已知的瀏覽器運(yùn)用固定數(shù)目的并行連接和固定數(shù)目的未完成請(qǐng)求,盡管并行連接的數(shù)目是受必須聯(lián)系的不同服務(wù)器組的影響的。本發(fā)明的ー個(gè)方面是實(shí)時(shí)地改變并行連接和流水線請(qǐng)求的數(shù)目,使得未完成請(qǐng)求的數(shù)目是最小的,并且鏈路保持被完全利用。例如,可以基于請(qǐng)求的數(shù)據(jù)的總量來(lái)改變這些數(shù)目,以確保鏈路保持被完全利用;然而,尚未接收的數(shù)據(jù)的總量不能超過(guò)帶寬和RTT的乘積。這些數(shù)量都是連續(xù)變化的。此夕卜,因?yàn)樵趯?duì)象的報(bào)頭到達(dá)之前,該對(duì)象的大小是未知的,所以未完成數(shù)據(jù)的總量不是精確已知的。
ー種可能是構(gòu)建所有這些變量的概率模型,并且試圖將鏈路變?yōu)榭臻e的總的概率保持在某個(gè)閾值以下。例如,對(duì)象大小的概率模型可以使用關(guān)于對(duì)象類型(圖像、HTML、Java腳本、CSS等)與對(duì)象大小分布的對(duì)應(yīng)關(guān)系的歷史數(shù)據(jù)。尤其是如果有該對(duì)象的之前緩存的版本,則因?yàn)樵搶?duì)象沒(méi)有變化,所以將要返回的數(shù)據(jù)是零(或者僅僅是HTTP報(bào)頭),或者將要返回的數(shù)據(jù)是新的版本,其中,該新的版本很可能與舊的版本具有類似的大小。因此,基于最近測(cè)量的帶寬和往返時(shí)間,可以繼續(xù)對(duì)更多的對(duì)象進(jìn)行流水線處理,直到存在如下可能,即,已請(qǐng)求但還未接收的數(shù)據(jù)超過(guò)帶寬與RTT的乘積。只要更多的數(shù)據(jù)到達(dá)或者觀測(cè)到帶寬或往返時(shí)間的變化,就可以重復(fù)該計(jì)算。因此,如在下面更具體描述的,在連接的生命期期間,在HTTP連接上的流水線請(qǐng)求的目標(biāo)數(shù)目可以改變?,F(xiàn)在將參照附圖描述各個(gè)方面。在下面的描述中,為了說(shuō)明的目的,闡述了大量的具體細(xì)節(jié),以便提供對(duì)ー個(gè)或多個(gè)方面的透徹理解。然而,顯然,可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施各個(gè)方面。在其它實(shí)例中,以方框圖形式示出了已知的結(jié)構(gòu)和設(shè)備,以便有助于描述這些方面。在圖I中,在通信系統(tǒng)100中,移動(dòng)設(shè)備、接入終端或用戶設(shè)備(UE) 102針對(duì)超文本內(nèi)容104進(jìn)行流水線請(qǐng)求103,其中,超文本內(nèi)容104包含存儲(chǔ)在多個(gè)服務(wù)器112-114上的對(duì)象106、108、110。在一個(gè)示例性方面中,移動(dòng)設(shè)備102經(jīng)由空中鏈路116獲得接入,其中,該空中鏈路116使用于接收對(duì)象106-110然后呈現(xiàn)超文本內(nèi)容104所需要的往返時(shí)間(RTT)惡化。在ー個(gè)方面中,移動(dòng)設(shè)備102具有用于與節(jié)點(diǎn)(例如,宏小區(qū)、毫微微小區(qū)、中繼)119進(jìn)行通信的無(wú)線收發(fā)機(jī)118,其中,節(jié)點(diǎn)119用作無(wú)線廣域網(wǎng)(WWAN)120到因特網(wǎng)協(xié)議多媒體子系統(tǒng)(頂S) 122到位于核心網(wǎng)絡(luò)(CN)(例如,因特網(wǎng))124中的服務(wù)器112-114的一部分。可替換地或此外,移動(dòng)設(shè)備102具有用于與節(jié)點(diǎn)128進(jìn)行通信的收發(fā)機(jī)126,其中,節(jié)點(diǎn)128用作用于經(jīng)由CN 124接入服務(wù)器112-114的無(wú)線本地接入網(wǎng)(WLAN) 130。可替換地或此外,移動(dòng)設(shè)備102具有用于與節(jié)點(diǎn)134進(jìn)行通信的收發(fā)機(jī)132,其中,節(jié)點(diǎn)134用作個(gè)域網(wǎng)(PAN) 136,并且耦合到如在138處描繪的WffAN 120或者如在140處描繪的WLAN 130,以用于經(jīng)由CN 124到達(dá)服務(wù)器112-114。
在ー個(gè)方面,收發(fā)機(jī)118、126、132建立多個(gè)并行連接用于分組數(shù)據(jù)通信。收發(fā)機(jī)118、126、132進(jìn)ー步經(jīng)由這多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象。移動(dòng)設(shè)備102的計(jì)算系統(tǒng)124具有HTTP優(yōu)化部件144,其動(dòng)態(tài)地改變并行連接和經(jīng)由該并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。在圖2 (圖2A和圖2B)中,針對(duì)HTTP優(yōu)化、多歸屬、移動(dòng)性和優(yōu)先級(jí)描述了示例性方法200或操作序列。方框204描述了建立多個(gè)并行連接以用于分組數(shù)據(jù)通信。在具體的方面中,建立多個(gè)并行連接是通過(guò)使到多個(gè)服務(wù)器中的每個(gè)服務(wù)器的連接的數(shù)目最小化來(lái)完成的(方框206)。使用該多個(gè)并行連接來(lái)減少對(duì)于遲到的或丟失的所請(qǐng)求分組數(shù)據(jù)的總的擁塞響應(yīng)(方框208)。經(jīng)由該多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象(方框210)。動(dòng)態(tài)地改變并行連接的數(shù)目,以用于經(jīng)由并行連接發(fā)送額外的流水線請(qǐng)求,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用(方框212)。例如,完全的鏈路利用可能需要貪婪(greedy)資源利用或準(zhǔn)時(shí)(JiT)資源利用。在示例性方面中,該動(dòng)態(tài)改變是通過(guò)估計(jì)帶寬和往返時(shí)間來(lái)實(shí)現(xiàn)的(方框214)。繼續(xù)發(fā)送流水線請(qǐng)求,直到存在已請(qǐng)求但還未接收的分組數(shù)據(jù)超過(guò)了估計(jì)的帶寬和往返時(shí)間的乘積的可能情況(方框216)。在示例性方面中,包括了一個(gè)或多個(gè)進(jìn)ー步的優(yōu)化,尤其是如果網(wǎng)絡(luò)支持的話,其中,所述優(yōu)化有助于HTTP獲取。例如,確定漸進(jìn)順序以用于呈現(xiàn)分組數(shù)據(jù)部分,并且針對(duì)該漸進(jìn)順序來(lái)對(duì)多個(gè)流水線請(qǐng)求的順序進(jìn)行優(yōu)先級(jí)排序(方框218)。如果在獲取期間發(fā)生變化(方框220),則重新對(duì)該漸進(jìn)順序進(jìn)行優(yōu)先級(jí)排序,并且更新該過(guò)程(方框222)。對(duì)于另ー個(gè)例子,請(qǐng)求采用報(bào)頭壓縮的多個(gè)流水線請(qǐng)求(方框224)。對(duì)于另ー個(gè)例子,網(wǎng)絡(luò)可以識(shí)別(預(yù)料)到移動(dòng)設(shè)備可能需要額外的資源。在這種情況下,可以接收未被請(qǐng)求的、服務(wù)器識(shí)別的資源(方框226)。如果不需要,則以取消服務(wù)器識(shí)別的資源來(lái)進(jìn)行響應(yīng)能夠避免不必要地消耗空中資源(方框228)。對(duì)于另ー個(gè)例子,可以使用報(bào)頭范圍特征將多個(gè)流水線請(qǐng)求作為多個(gè)部分流水線請(qǐng)求來(lái)進(jìn)行發(fā)送(方框230)。對(duì)于另ー個(gè)例子,可以通過(guò)利用連接循環(huán)來(lái)聚合多歸屬主機(jī)的鏈路,來(lái)發(fā)送多個(gè)流水線請(qǐng)求(方框232)。通過(guò)檢測(cè)到接ロ已經(jīng)變成不可用或者已經(jīng)變成可用(方框234),識(shí)別使用該接ロ的打開(kāi)的連接(方框236),構(gòu)建已經(jīng)在該打開(kāi)的連接上發(fā)出但未完成的流水線請(qǐng)求的列表(方框238),以及部分地基于所識(shí)別的打開(kāi)的連接、接口和未完成的流水線請(qǐng)求列表來(lái)利用連接循環(huán)動(dòng)態(tài)地改變并行連接和經(jīng)由該并行連接的流水線請(qǐng)求的數(shù)目(方框240),則可以解決考慮到該多歸屬能力的移動(dòng)性。在示例性方面中,移動(dòng)設(shè)備可以針對(duì)每個(gè)接ロ維護(hù)單獨(dú)的域名服務(wù)(DNS)緩存,并且在缺少操作系統(tǒng)和web瀏覽器支持的情況下,可以使用網(wǎng)絡(luò)代理、靜態(tài)定義的路由和代理自動(dòng)配置(PAC)腳本。 圖3在圖表300中示出了使用Firefox web瀏覽器在針對(duì)nytimes. com啟用并行連接和流水線處理的情況下,更長(zhǎng)的RTT對(duì)于頁(yè)面加載時(shí)間的影響(以秒為單位)。檢測(cè)的頁(yè)面包括大約ー百(100)個(gè)對(duì)象,總計(jì)約I. 3MB的數(shù)據(jù)。在固定帶寬I. 5Mb/s鏈路上進(jìn)行該測(cè)試,并且以不同的其它延遲量重復(fù)該測(cè)試,以模擬更高的RTT鏈路。在完全鏈路利用的情況下,可能需要占用大約七(7)秒來(lái)下載頁(yè)面,并且事實(shí)上這是以非常低的往返時(shí)間來(lái)實(shí)現(xiàn)的,正如可能在有線網(wǎng)絡(luò)上所觀測(cè)到的。然而,顯然,隨著RTT増加,鏈路利用與RTT成反比地急劇下降。該實(shí)驗(yàn)結(jié)果表明,如果RTT大于通常在有線網(wǎng)絡(luò)上發(fā)現(xiàn)的值,即使當(dāng)今的web瀏覽器也不能完全利用中等帶寬的鏈路。此外,造成的增加的頁(yè)面加載時(shí)間完全在影響用戶體驗(yàn)的范圍內(nèi)(因?yàn)轫?yè)面加載時(shí)間從7s到21s增加200%是非常顯著的,但是從IOOms到300ms増加200%可能就不顯著)。如本文所使用的,鏈路利用是指客戶端利用網(wǎng)絡(luò)準(zhǔn)備分配的所有資源的能力。在EV-DO或HSPA情況中,當(dāng)一個(gè)用戶在這種意義上“未充分利用”鏈路時(shí),將未使用的容量分配給其它用戶,所以從整體上看,不存在未充分利用無(wú)線資源。但是,在我們看來(lái),差的鏈路 利用確實(shí)造成了差的用戶體驗(yàn),正如在較長(zhǎng)的頁(yè)面加載時(shí)間方面所感受到的。作為具體的例子,如果十(10)個(gè)用戶各自請(qǐng)求IMB的文件(不必所有都在同一時(shí)間)并且網(wǎng)絡(luò)具有8Mb/s的共享容量,則將占用IOs來(lái)將數(shù)據(jù)傳遞到所有的用戶。在平均等待時(shí)間方面,“順序地”處理數(shù)據(jù)比“并行地”向所有用戶傳遞數(shù)據(jù)更好,其中,“順序地”處理數(shù)據(jù)對(duì)每個(gè)用戶占用ls,“并行地”向所有用戶傳遞數(shù)據(jù)對(duì)每個(gè)用戶占用差不多10s??梢允褂迷贖TTP協(xié)議中可用的各種技術(shù)來(lái)優(yōu)化對(duì)象傳遞持久連接HTTP I. 0規(guī)范要求針對(duì)每個(gè)HTTP請(qǐng)求建立新的傳輸控制協(xié)議(TCP)連接。因?yàn)槊總€(gè)TCP連接建立意味著SYN/ACK (同歩/確認(rèn))交換和由于TCP擁塞控制的慢啟動(dòng)階段而導(dǎo)致的慢傳輸時(shí)段,該需求在對(duì)象傳遞時(shí)間方面需要高昂的代價(jià)。HTTP I. I引入了持久連接,以更好地支持向相同的服務(wù)器發(fā)出多個(gè)請(qǐng)求的情況。在這個(gè)情況中,在完成對(duì)先前響應(yīng)的接收之后,通過(guò)在相同連接上發(fā)送新的HTTP請(qǐng)求,來(lái)重用TCP連接。在這個(gè)方法中,在發(fā)送請(qǐng)求與接收響應(yīng)的第一個(gè)分組之間的時(shí)間(ー個(gè)往返時(shí)間)中,下行鏈路是空閑的。從圖4中可以看到單個(gè)持久連接的鏈路使用模式400,其中,上行鏈路請(qǐng)求402和下行鏈路響應(yīng)404之間的間隙表明了未充分利用鏈路(以間隙的形式表示)和如果RTT越高則未充分利用越嚴(yán)重的事實(shí)。應(yīng)當(dāng)認(rèn)識(shí)到,本公開(kāi)的益處是僅僅增加了鏈路帶寬而沒(méi)有處理RTT,該益處本身并沒(méi)有提高鏈路利用方面的性能。進(jìn)ー步參照?qǐng)D4,増加帶寬將會(huì)根據(jù)時(shí)間使每個(gè)上行鏈路和下行鏈路塊更窄(即,在較少時(shí)間內(nèi)傳輸相同的數(shù)據(jù)),但是不會(huì)減小間隙的大小。實(shí)際上,間隙將占據(jù)總下載時(shí)間的較大部分,因此在這種情況下,増加帶寬減小了鏈路利用。并行連接現(xiàn)代瀏覽器以并行方式打開(kāi)到相同或不同服務(wù)器(或這兩種情況)的多個(gè)TCP連接。該技術(shù)的效果是兩方面的第一,對(duì)于多個(gè)活動(dòng)發(fā)送TCP連接的聚合的擁塞控制行為可以認(rèn)為是等同于單個(gè)TCP連接,但是在慢啟動(dòng)期間擁塞窗ロ更快速地打開(kāi),并且對(duì)每個(gè)丟棄分組的擁塞響應(yīng)更少。第二,在一個(gè)連接上的傳輸斷斷續(xù)續(xù)的情況下(如上面針對(duì)持久連接所示),傳輸之間的空閑時(shí)段可以由其它連接使用,從而提高了鏈路利用。流水線實(shí)際上,HTTP I. I允許發(fā)送多個(gè)請(qǐng)求,而不需等待對(duì)第一請(qǐng)求的響應(yīng)的完成。這使得服務(wù)器能夠緊連著地發(fā)送響應(yīng),而不需鏈路在響應(yīng)之間變成空閑。因?yàn)镠TTP沒(méi)有提供其它的機(jī)制來(lái)匹配請(qǐng)求和響應(yīng),所以必須按照與接收請(qǐng)求相同的順序來(lái)發(fā)送響應(yīng)。在圖5中,針對(duì)持久連接的鏈路使用模式500示出了流水線處理的效果,其中,該持久連接具有第一和第二上行鏈路請(qǐng)求502、503和下行鏈路響應(yīng)504?,F(xiàn)代的web瀏覽器基本上都是使用上面的前兩種技木。然而,盡管在HTTP I. I規(guī)范中進(jìn)行了強(qiáng)制,但是對(duì)流水線的支持在服務(wù)器處以及有時(shí)在代理處不是普遍的,并且尤其是在透明代理的情況中存在一些罕見(jiàn)的失敗狀況的跡象。因此,在實(shí)現(xiàn)流水線處理時(shí)需要進(jìn)行注意,例如,注意檢測(cè)失敗狀況并且適當(dāng)?shù)胤祷氐椒橇魉€處理,以及通過(guò)保持該技術(shù)在其中已經(jīng)成功的服務(wù)器的白列表。Opera瀏覽器默認(rèn)啟用流水線(并且顯然實(shí)現(xiàn)了這種技術(shù))。在Firefox中支持流水線,但是默認(rèn)禁用了流水線。Safari和Chrome (當(dāng)前)不支持流水線。 從圖3中,在瀏覽器中沒(méi)有廣泛支持流水線的原因是清楚的,上文提及了這些問(wèn)題通過(guò)單獨(dú)使用持久連接和并行連接,瀏覽器對(duì)鏈路的利用在低RTT連接上是非常高的。在近些年中,內(nèi)容分發(fā)網(wǎng)絡(luò)已經(jīng)顯著地降低了典型的web RTT,從而改善了瀏覽器的執(zhí)行(這是主要的有價(jià)值的⑶N建議),并且由于大多數(shù)是有線和無(wú)線本地接入網(wǎng)(WLAN) web瀏覽器,所以發(fā)現(xiàn)的問(wèn)題很少??赡芟M谥С至魉€時(shí),在單個(gè)連接的情況下,鏈路利用應(yīng)當(dāng)是100%的,因?yàn)樵陧憫?yīng)之間不應(yīng)該有間隙。然而,在一些情況中,盡管服務(wù)器可以按照流水線的形式接受請(qǐng)求,但是它們可能不對(duì)每個(gè)請(qǐng)求進(jìn)行處理,直到前一個(gè)已經(jīng)完成。這導(dǎo)致響應(yīng)之間的間隙等于服務(wù)器處理所占用的時(shí)間。如果服務(wù)器是重負(fù)荷,并且必須執(zhí)行復(fù)雜的功能(例如,執(zhí)行用于生成響應(yīng)的腳本)和/或必須訪問(wèn)外部服務(wù)器(例如,數(shù)據(jù)庫(kù)),則這個(gè)時(shí)間可能是顯著的。如果存在中間代理,該中間代理在輸入側(cè)接受流水線請(qǐng)求而在輸出側(cè)發(fā)出串行請(qǐng)求,則可以觀測(cè)到相同的效果。即使在處理器并行地處理流水線請(qǐng)求的情況下,在發(fā)送給定響應(yīng)的時(shí)間到來(lái)時(shí),這個(gè)處理的結(jié)果也可能是不可用的。初始實(shí)驗(yàn)上面的數(shù)據(jù)使我們相信在高RTT鏈路上,例如,在無(wú)線廣域網(wǎng)(WffAN)上,存在web瀏覽性能提高的空間。進(jìn)ー步的證據(jù)來(lái)自在客戶端和中間代理之間應(yīng)用流水線,以及額外地引入不按順序返回響應(yīng)的可能性(即,通過(guò)由客戶端和代理支持的新的HTTP擴(kuò)展)。在該方法中,因?yàn)榭蛻舳撕痛碇g的低RTT允許單個(gè)TCP連接完全利用WffAN鏈路,并且代理被設(shè)計(jì)為在輸出側(cè)發(fā)出并行請(qǐng)求,所以提高了鏈路利用。還可以并入對(duì)所請(qǐng)求的資源的早期識(shí)別。應(yīng)當(dāng)注意,如果目標(biāo)HTTP服務(wù)器直接支持用于不按順序的響應(yīng)的HTTP擴(kuò)展(并且假設(shè)這些服務(wù)器并行地處理請(qǐng)求),則這種HTTP擴(kuò)展可以提供益處。應(yīng)當(dāng)相信,除了下面針對(duì)谷歌SPDY所描述的范圍,實(shí)驗(yàn)尚未涉及這種方法。在本發(fā)明中進(jìn)ー步進(jìn)行的實(shí)驗(yàn)針對(duì)不需要部署代理的情況(S卩,僅客戶端側(cè)的技木)。為了清楚起見(jiàn),最初聚焦在“理想瀏覽器”上,在該“理想瀏覽器”中,已經(jīng)消除了除網(wǎng)絡(luò)連接之外的所有瓶頸。具體而言,“理想瀏覽器”:對(duì)于用來(lái)呈現(xiàn)頁(yè)面所需要的完整的請(qǐng)求集合具有先驗(yàn)知識(shí);并且
在接收到時(shí),立即呈現(xiàn)內(nèi)容。因此,對(duì)于頁(yè)面加載時(shí)間的僅有貢獻(xiàn)是使用HTTP協(xié)議在網(wǎng)絡(luò)上傳輸數(shù)據(jù)所需要的時(shí)間。該“理想瀏覽器”被實(shí)現(xiàn)為Python腳本,其中,該腳本是與對(duì)象列表一起預(yù)先提供的(這是從對(duì)實(shí)際web頁(yè)面下載的跟蹤得到的),并且該腳本實(shí)現(xiàn)了使用HTTP持久連接、并行連接和流水線來(lái)下載對(duì)象的算法。對(duì)下載所有對(duì)象所占用的時(shí)間進(jìn)行測(cè)量。為了更好地理解并行連接、流水線以及網(wǎng)絡(luò)帶寬和RTT之間的相互影響,對(duì)于在一(I)個(gè)和十(10)個(gè)并行連接之間以及在每個(gè)連接上有一(I)個(gè)和十(10)個(gè)未完成請(qǐng)求之間進(jìn)行實(shí)驗(yàn)。(一(I)個(gè)未完成請(qǐng)求對(duì)應(yīng)于標(biāo)準(zhǔn)的非流水線方法,“n”個(gè)未完成請(qǐng)求意味著最初發(fā)送了 “n”個(gè)請(qǐng)求,隨后每次完全接收到ー個(gè)響應(yīng)時(shí)發(fā)送ー個(gè)新的請(qǐng)求)。在表1-6中示出了針對(duì)不同網(wǎng)絡(luò)帶寬和RTT的結(jié)果。具體地,在實(shí)際web服務(wù)器跟 蹤上,多個(gè)連接和流水線的不同配置的性能被理想化了。該web請(qǐng)求跟蹤是使用Wireshark從流行的web站點(diǎn)收集的。然后,對(duì)dump文件進(jìn)行處理以生成請(qǐng)求跟蹤文件。對(duì)于初始實(shí)驗(yàn),假設(shè)所有請(qǐng)求是預(yù)先已知的并且是按順序執(zhí)行的。僅從主服務(wù)器,即,不按比例共享構(gòu)成所涉及的web站點(diǎn)的對(duì)象的服務(wù)器,請(qǐng)求對(duì)象。主服務(wù)器現(xiàn)象也是針對(duì)流行web站點(diǎn)來(lái)表征的。下面的表I示出了針對(duì)多個(gè)連接和流水線的每個(gè)配置觀測(cè)到的平均下載時(shí)間
權(quán)利要求
1.一種用于分組數(shù)據(jù)通信的方法,所述方法包括 建立多個(gè)并行連接用于分組數(shù)據(jù)通信; 經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象;以及 動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。
2.根據(jù)權(quán)利要求I所述的方法,其中,發(fā)送所述多個(gè)流水線請(qǐng)求還包括接入無(wú)線廣域網(wǎng)的節(jié)點(diǎn)。
3.根據(jù)權(quán)利要求I所述的方法,其中,動(dòng)態(tài)地改變并行連接和流水線請(qǐng)求的所述數(shù)目還包括 估計(jì)帶寬和往返時(shí)間;以及 繼續(xù)發(fā)送流水線請(qǐng)求,直到存在已請(qǐng)求但未接收的分組數(shù)據(jù)超過(guò)所估計(jì)的帶寬和往返時(shí)間的乘積的可能情況。
4.根據(jù)權(quán)利要求I所述的方法,其中,建立所述多個(gè)并行連接用于分組數(shù)據(jù)通信還包括 使到所述多個(gè)服務(wù)器中的每個(gè)服務(wù)器的連接的數(shù)目最小化; 使用所述多個(gè)并行連接,以減少對(duì)遲到的或丟失的已請(qǐng)求分組數(shù)據(jù)的總的擁塞響應(yīng);以及 動(dòng)態(tài)地改變并行連接和流水線請(qǐng)求的數(shù)目,以優(yōu)化使所述連接的數(shù)目最小化和使用所述多個(gè)并行連接以減少所述總的擁塞這兩個(gè)步驟的相沖突的目標(biāo)。
5.根據(jù)權(quán)利要求I所述的方法,還包括 確定漸進(jìn)順序以用于呈現(xiàn)所述分組數(shù)據(jù)部分;以及 相對(duì)所述漸進(jìn)順序,來(lái)對(duì)所述多個(gè)流水線請(qǐng)求的順序進(jìn)行優(yōu)先級(jí)排序。
6.根據(jù)權(quán)利要求I所述的方法,其中,維持完全的鏈路利用還包括利用貪婪請(qǐng)求時(shí)機(jī)。
7.根據(jù)權(quán)利要求I所述的方法,其中,維持完全的鏈路利用還包括利用準(zhǔn)時(shí)請(qǐng)求時(shí)機(jī)。
8.根據(jù)權(quán)利要求I所述的方法,其中,發(fā)送所述多個(gè)流水線請(qǐng)求還包括請(qǐng)求報(bào)頭壓縮。
9.根據(jù)權(quán)利要求I所述的方法,還包括接收服務(wù)器識(shí)別的資源,其中,所述服務(wù)器識(shí)別的資源是未被請(qǐng)求的。
10.根據(jù)權(quán)利要求9所述的方法,還包括 確定不需要所述服務(wù)器識(shí)別的資源;以及 取消所述服務(wù)器識(shí)別的資源。
11.根據(jù)權(quán)利要求I所述的方法,發(fā)送所述多個(gè)流水線請(qǐng)求還包括使用報(bào)頭范圍特征,來(lái)發(fā)送多個(gè)部分流水線請(qǐng)求。
12.根據(jù)權(quán)利要求I所述的方法,其中,發(fā)送所述多個(gè)流水線請(qǐng)求還包括 檢測(cè)接ロ已經(jīng)變?yōu)椴豢捎没蛘咭呀?jīng)變?yōu)榭捎茫? 識(shí)別使用所述接ロ的打開(kāi)的連接構(gòu)造在所述打開(kāi)的連接上已經(jīng)發(fā)出的未完成的流水線請(qǐng)求的列表;以及部分地基于所識(shí)別的打開(kāi)的連接、所述接口和所述未完成的流水線請(qǐng)求的列表,來(lái)利用連接循環(huán)動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目。
13.根據(jù)權(quán)利要求I所述的方法,還包括針對(duì)每個(gè)接ロ維護(hù)單獨(dú)的域名服務(wù)(DNS)緩存。
14.用于分組數(shù)據(jù)通信的至少ー個(gè)處理器,所述至少一個(gè)處理器包括 第一模塊,用于建立多個(gè)并行連接用于分組數(shù)據(jù)通信; 第二模塊,用于經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象;以及 第三模塊,用于動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。
15.一種用于分組數(shù)據(jù)通信的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括 用于存儲(chǔ)代碼集的非暫時(shí)性計(jì)算機(jī)可讀介質(zhì),所述代碼集包括 第一代碼集,用于使計(jì)算機(jī)建立多個(gè)并行連接用于分組數(shù)據(jù)通信; 第二代碼集,用于使所述計(jì)算機(jī)經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象;以及 第三代碼集,用于使所述計(jì)算機(jī)動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。
16.一種用于分組數(shù)據(jù)通信的裝置,所述裝置包括 用于建立多個(gè)并行連接以用于分組數(shù)據(jù)通信的模塊; 用于經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象的模塊;以及 用于動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用的模塊。
17.一種用于分組數(shù)據(jù)通信的裝置,所述裝置包括 收發(fā)機(jī),用于建立多個(gè)并行連接以用于分組數(shù)據(jù)通信; 所述收發(fā)機(jī)還用于經(jīng)由所述多個(gè)并行連接發(fā)送多個(gè)流水線請(qǐng)求,以用于獲取由分別存儲(chǔ)在多個(gè)服務(wù)器上的分組數(shù)據(jù)部分構(gòu)成的超文本對(duì)象;以及 計(jì)算平臺(tái),用于動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目,以減少未完成請(qǐng)求,同時(shí)維持完全的鏈路利用。
18.根據(jù)權(quán)利要求17所述的裝置,其中,所述收發(fā)機(jī)還用于通過(guò)接入無(wú)線廣域網(wǎng)的節(jié)點(diǎn),來(lái)發(fā)送所述多個(gè)流水線請(qǐng)求。
19.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于通過(guò)以下操作來(lái)動(dòng)態(tài)地改變并行連接和流水線請(qǐng)求的數(shù)目 估計(jì)帶寬和往返時(shí)間;以及 繼續(xù)發(fā)送流水線請(qǐng)求,直到存在已請(qǐng)求但未接收的分組數(shù)據(jù)超過(guò)所估計(jì)的帶寬和往返時(shí)間的乘積的可能情況。
20.根據(jù)權(quán)利要求17所述的裝置,其中,經(jīng)由所述收發(fā)機(jī),所述計(jì)算平臺(tái)還用于通過(guò)以下操作來(lái)建立所述多個(gè)并行連接用于分組數(shù)據(jù)通信使到所述多個(gè)服務(wù)器中的每個(gè)服務(wù)器的連接的數(shù)目最小化; 使用所述多個(gè)并行連接,以減少對(duì)遲到的或丟失的已請(qǐng)求分組數(shù)據(jù)的總的擁塞響應(yīng); 以及 動(dòng)態(tài)地改變并行連接和流水線請(qǐng)求的數(shù)目,以優(yōu)化使所述連接的數(shù)目最小化和使用所述多個(gè)并行連接以減少所述總的擁塞這兩個(gè)操作的相沖突的目標(biāo)。
21.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于 確定漸進(jìn)順序以用于呈現(xiàn)所述分組數(shù)據(jù)部分;以及 相對(duì)所述漸進(jìn)順序,來(lái)對(duì)所述多個(gè)流水線請(qǐng)求的順序進(jìn)行優(yōu)先級(jí)排序。
22.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于通過(guò)利用貪婪請(qǐng)求時(shí)機(jī),來(lái)維持完全的鏈路利用。
23.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于通過(guò)利用準(zhǔn)時(shí)請(qǐng)求時(shí)機(jī),來(lái)維持完全的鏈路利用。
24.根據(jù)權(quán)利要求17所述的裝置,其中,所述收發(fā)機(jī)還用于通過(guò)請(qǐng)求報(bào)頭壓縮,來(lái)發(fā)送所述多個(gè)流水線請(qǐng)求。
25.根據(jù)權(quán)利要求17所述的裝置,其中,所述收發(fā)機(jī)還用于接收服務(wù)器識(shí)別的資源,其中,所述服務(wù)器識(shí)別的資源是未被請(qǐng)求的。
26.根據(jù)權(quán)利要求25所述的裝置,其中,所述計(jì)算平臺(tái)還用于 確定不需要所述服務(wù)器識(shí)別的資源;以及 取消所述服務(wù)器識(shí)別的資源。
27.根據(jù)權(quán)利要求17所述的裝置,其中,所述收發(fā)機(jī)還用于通過(guò)使用報(bào)頭范圍特征發(fā)送多個(gè)部分流水線請(qǐng)求,來(lái)發(fā)送所述多個(gè)流水線請(qǐng)求。
28.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于 檢測(cè)接ロ已經(jīng)變?yōu)椴豢捎没蛘咭呀?jīng)變?yōu)榭捎茫? 識(shí)別使用所述接ロ的打開(kāi)的連接 構(gòu)造在所述打開(kāi)的連接上已經(jīng)發(fā)出的未完成的流水線請(qǐng)求的列表;以及部分地基于所識(shí)別的打開(kāi)的連接、所述接口和所述未完成的流水線請(qǐng)求的列表,來(lái)利用連接循環(huán)動(dòng)態(tài)地改變并行連接和經(jīng)由所述并行連接的流水線請(qǐng)求的數(shù)目。
29.根據(jù)權(quán)利要求17所述的裝置,其中,所述計(jì)算平臺(tái)還用于針對(duì)每個(gè)接ロ維護(hù)單獨(dú)的域名服務(wù)(DNS)緩存。
全文摘要
將并行超文本傳輸協(xié)議(HTTP)連接和流水線處理相結(jié)合,通過(guò)實(shí)時(shí)地改變并行連接和流水線請(qǐng)求的數(shù)目使得未完成請(qǐng)求的數(shù)目最小并且鏈路保持被完全利用,克服了增加往返時(shí)間(RTT)的影響。HTTP棧中的最優(yōu)構(gòu)造和對(duì)請(qǐng)求和連接的調(diào)度改善了頁(yè)面加載時(shí)間,并且還提供了針對(duì)對(duì)象優(yōu)先級(jí)變化的更大響應(yīng)度。解決了在HTTP的應(yīng)用層上的多歸屬和移動(dòng)性。多歸屬提供了對(duì)多個(gè)接口(例如,WWAN和WLAN接口)的同時(shí)使用,這改善了下載時(shí)間,尤其是在接口的可用帶寬處于相同的數(shù)量級(jí)的情況下。移動(dòng)性提供了隨著設(shè)備移動(dòng)而切換連接。多歸屬和移動(dòng)性結(jié)合起來(lái)提供了更平滑的移動(dòng)性。這樣可以在沒(méi)有服務(wù)器或網(wǎng)絡(luò)支持的情況下提供移動(dòng)性。
文檔編號(hào)H04L29/06GK102656863SQ201080057494
公開(kāi)日2012年9月5日 申請(qǐng)日期2010年12月20日 優(yōu)先權(quán)日2009年12月18日
發(fā)明者L·維奇薩諾, M·沃森 申請(qǐng)人:高通股份有限公司