專利名稱:用于提供更快速且更高效的數(shù)據(jù)通信的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)通信技術(shù),更具體地說,涉及用于提高互聯(lián)網(wǎng)上的數(shù)據(jù)通信速度和帶寬效率。
背景技術(shù):
網(wǎng)絡(luò)和互聯(lián)網(wǎng)應(yīng)用表現(xiàn)出的一些趨勢大大提高了互聯(lián)網(wǎng)上使用的帶寬。其中ー個 趨勢就是越來越多的視頻在互聯(lián)網(wǎng)上被點播。這樣的點播包括觀看大型和簡短的視頻剪輯。另外,互聯(lián)網(wǎng)上還可以觀看定期表演秀和完整的電影。増大互聯(lián)網(wǎng)上的流量的另ー個趨勢是網(wǎng)站(例如購物門戶、新聞門戶和社交網(wǎng)絡(luò))變得全球化,這意味著網(wǎng)站在服務(wù)于世界各地的人們,因此數(shù)據(jù)會在互聯(lián)網(wǎng)上跨越更長的距離,從而加劇了擁塞。帶寬消耗的增加帶來了ー些主要問題,下面說明了其中的幾方面問題用戶的問題-目前的互聯(lián)網(wǎng)帶寬不足,因此用戶體驗到的有效“速度”偏低;內(nèi)容所有者的問題-為了讓用戶能夠觀看大量的資料,需要對主機和帶寬成本方面投入大量的資金;以及互聯(lián)網(wǎng)服務(wù)提供商(ISP)的問題-互聯(lián)網(wǎng)流量的增長要求ISP以巨大的財政支出加大基礎(chǔ)設(shè)施(通信線路、路由器等等)的投入。尚待解決的ー個主要問題是,需要一種新的數(shù)據(jù)傳輸方法,不但對用戶而言足夠快,對內(nèi)容發(fā)布商來說足夠?qū)嵒?,對ISP來說也不需要基礎(chǔ)設(shè)施投資。在使互聯(lián)網(wǎng)對于用戶來說變得更快并且對于廣播商來說變得更為便宜方面,已經(jīng)作出了很多嘗試。但這些嘗試在某一方面都有所欠缺,無法成為廣泛實用的解決方案,或者只是ー種不夠全面的解決方案,僅僅解決了與互聯(lián)網(wǎng)流量増大相關(guān)聯(lián)的主要問題的ー個子集。大多數(shù)上述解決方案都需要投入數(shù)十億美元的資金才能整合成全面的解決方案。目前互聯(lián)網(wǎng)上的大量內(nèi)容都是根據(jù)用戶和用戶的會話動態(tài)創(chuàng)建的(這一度被稱為“Web 2. O”趨勢),而上述嘗試在應(yīng)對這一方面時大多有所欠缺。例如,Amazon網(wǎng)站和Salesforce網(wǎng)站上的大多數(shù)頁面視圖都是為觀眾定制的,因此對于任意兩名觀眾來說都不盡相同。這種動態(tài)信息使迄今為止提供的大多數(shù)解決方案都無法存儲內(nèi)容并將內(nèi)容提供給正在尋找類似內(nèi)容的其他人。正在使用中的一種解決方案被稱為“代理”。圖I是提供在網(wǎng)絡(luò)2中使用代理的示例的示意圖。代理或代理服務(wù)器4、6、8是被放在一個或多個客戶端(在圖I中顯示為客戶端設(shè)備10、12、14、16、18、20,它們通過互聯(lián)網(wǎng)22請求數(shù)據(jù))與(客戶端設(shè)備從其中請求數(shù)據(jù)的)ー個或多個Web服務(wù)器30、32、34之間的設(shè)備。代理服務(wù)器4、6、8以自己的名義從Web服務(wù)器30、32、34請求數(shù)據(jù),并緩存來自Web服務(wù)器30、32、34的響應(yīng),以便向作出類似請求的其他客戶端設(shè)備提供這些響應(yīng)。如果代理服務(wù)器4、6、8的地理位置足夠靠近客戶端設(shè)備10、12、14、16、18、20,而且代理服務(wù)器4、6、8的存儲器和帶寬足夠?qū)捑b,代理服務(wù)器4、6、8將加快它所服務(wù)的客戶端設(shè)備10、12、14、16、18、20的請求。但請注意,為了提供全面的互聯(lián)網(wǎng)沖浪解決方案,圖I中的代理服務(wù)器需要部署在世界各地每ー個需要使用互聯(lián)網(wǎng)的位置,每個位置的代理服務(wù)器的存儲容量都需要接近于互聯(lián)網(wǎng)上任何地方所存儲的數(shù)據(jù)容量總和。上述方案將耗費巨額成本,這明顯不切實際。此外,這些代理解決方案很難處理好目前Web上盛行的動態(tài)數(shù)據(jù)。有些商業(yè)公司,例如Akamai,曾經(jīng)在全球各地部署了這樣的代理,這些代理仍在服務(wù)于互聯(lián)網(wǎng)上選出的一小組站點。如果對Web上的所有站點使用這種解決方案,投入的資金將高達數(shù)十億美元。此外,這種解決方案無法處理動態(tài)內(nèi)容。
為了打造龐大的發(fā)布系統(tǒng)而且無需代理解決方案所涉及的大量硬件資金,諸如BitTorrent的一些“點對點文件共享”解決方案應(yīng)運而生。圖2是提供點對點文件傳輸網(wǎng)絡(luò)50的示例的示意圖。在網(wǎng)絡(luò)50中,文件存儲在用戶的計算機(這些計算機在這里被稱為客戶端設(shè)備60)中。每個用戶都可以通過互聯(lián)網(wǎng)62向其他用戶提供數(shù)據(jù),這樣就分擔了內(nèi)容發(fā)布商的服務(wù)負荷、幫助它們節(jié)省了相關(guān)成本并為用戶提供了多個數(shù)據(jù)下載點(這些點在這里被稱為對等設(shè)備70、72、74、76、78),從而提高了下載速度。然而,每個這樣的點對點解決方案都必須包含某種索引,以用來查找所需數(shù)據(jù)。在典型的點對點文件共享系統(tǒng)中,索引位于服務(wù)器80上或者分布在多個服務(wù)器上,因此系統(tǒng)中可用的文件數(shù)量相對不是很大(否則服務(wù)器成本會大幅上揚,或者查找時間會非常長)。點對點文件共享解決方案在文件共享系統(tǒng)中是可接受的,原因在于大眾感興趣的媒體文件并不是太多(可能感興趣的電影和歌曲為百萬數(shù)量級)。存儲和維護數(shù)百萬個條目的索引在技術(shù)上和經(jīng)濟上都是切實可行的。然而,如果使用這種系統(tǒng)來服務(wù)于目前互聯(lián)網(wǎng)上可用的數(shù)千億個文件,存儲和維護這樣ー個索引的成本也將高達數(shù)十億美元。此外,這 些類型的點對點文件共享系統(tǒng)無法處理動態(tài)HTTP數(shù)據(jù)。總之,目前不存在這樣ー種系統(tǒng)既能夠在互聯(lián)網(wǎng)上快速傳輸大多數(shù)數(shù)據(jù),也不需要投入大量資金,而且/或者提供了針對互聯(lián)網(wǎng)流量擁塞問題的切實可行的解決方案。因此,整個行業(yè)仍面臨著ー種迄今尚未解決的需求,迫切需要解決上述缺陷和不足。
發(fā)明內(nèi)容
本系統(tǒng)和方法在通信網(wǎng)絡(luò)內(nèi)提供更快速、更高效的數(shù)據(jù)通信。簡而言之,在結(jié)構(gòu)上,除其它情況之外,這種系統(tǒng)的ー個實施例可以按如下方式實現(xiàn)。提供一種用于加速數(shù)據(jù)通信的網(wǎng)絡(luò),其中所述網(wǎng)絡(luò)包含至少ー個客戶端通信設(shè)備,用于發(fā)起數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù);至少ー個代理通信設(shè)備,被分配給數(shù)據(jù)服務(wù)器,用于從客戶端通信設(shè)備接收數(shù)據(jù)請求,其中所述代理跟蹤哪些客戶端通信設(shè)備曾從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng);至少ー個對等通信設(shè)備,用于存儲響應(yīng)于至少ー個客戶端通信設(shè)備的數(shù)據(jù)請求而接收到的數(shù)據(jù)中的部分數(shù)據(jù),其中這些數(shù)據(jù)可以應(yīng)客戶端通信設(shè)備的請求發(fā)送到至少ー個客戶端通信設(shè)備;以及至少ー個加速服務(wù)器,用于確定將哪個代理通信設(shè)備分配給哪個數(shù)據(jù)服務(wù)器,并將該信息提供給至少一個客戶端通信設(shè)備。
本系統(tǒng)和方法還在網(wǎng)絡(luò)內(nèi)提供了通信設(shè)備,其中該通信設(shè)備包含存儲器以及處理器,該處理器被存儲器配置為執(zhí)行以下步驟發(fā)起數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù);分配給數(shù)據(jù)服務(wù)器(被稱為所分配的數(shù)據(jù)服務(wù)器);從網(wǎng)絡(luò)內(nèi)的獨立設(shè)備接收數(shù)據(jù)請求,并跟蹤網(wǎng)絡(luò)內(nèi)的哪些客戶端通信設(shè)備從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng);以及存儲響應(yīng)于所發(fā)起的數(shù)據(jù)請求而接收到的數(shù)據(jù)中的部分數(shù)據(jù),其中所述部分數(shù)據(jù)可以應(yīng)通信設(shè)備的請求被發(fā)送到通信設(shè)備。在查看以下附圖和具體實施方式
之后,本發(fā)明中的其他系統(tǒng)、方法、特征和優(yōu)勢對于本領(lǐng)域技術(shù)人員將變得顯而易見。所有這些其他的系統(tǒng)、方法、特征和優(yōu)勢都g在包含在說明內(nèi)、在本發(fā)明的范圍之內(nèi)并由所附權(quán)利要求保護。
本發(fā)明的很多方面可以通過參見以下附圖而被更好地理解。附圖中的組件不一定按比例繪出,而是突出重點以明確說明本發(fā)明的原理。此外,在附圖中,相同的附圖標記在 這幾幅圖中始終表示相應(yīng)的部件。圖I是提供了網(wǎng)絡(luò)中使用代理的先有技術(shù)示例的示意圖。圖2是提供了點對點文件傳輸網(wǎng)絡(luò)的先有技術(shù)示例的示意圖。圖3是提供了根據(jù)本發(fā)明的通信網(wǎng)絡(luò)的示例的示意圖。圖4是進一歩示出圖3中的通信網(wǎng)絡(luò)上的通信設(shè)備的示意圖。圖5是進ー步示出圖4中的存儲器的示意圖。圖6是進一歩示出圖5的加速應(yīng)用程序的元素以及加速應(yīng)用程序的通信路徑的示意圖。圖7是進一歩示出通信網(wǎng)絡(luò)內(nèi)使用的主數(shù)據(jù)庫中的兩個主數(shù)據(jù)庫的圖表。圖8是示出加速系統(tǒng)初始化程序模塊的操作的流程圖。圖9是進一歩示出通信網(wǎng)絡(luò)的不同元素之間的通信的流程圖。圖10是延續(xù)圖9中的流程圖的流程圖,其中集中于代理對HTTP請求的響應(yīng)。圖11是延續(xù)圖10中的流程圖的流程圖,其中示出了從代理接收到對等設(shè)備列表或單對等設(shè)備列表時執(zhí)行的操作。圖12是示出代理、客戶端或?qū)Φ仍O(shè)備為確定某個HTTP請求是否仍然有效而執(zhí)行的步驟的流程圖。圖13是大致說明了加速服務(wù)器的操作的流程圖。圖14是進一歩示出根據(jù)本發(fā)明替代實施例的TCPIP加速的流程圖。圖15是進一歩示出根據(jù)本發(fā)明替代實施例的TCPIP加速的流程圖,詳細說明了成功完成連接階段之后客戶端和TCPIP服務(wù)器之間的通信(讀取和寫入命令)。
具體實施例方式本系統(tǒng)和方法能夠在通信網(wǎng)絡(luò)內(nèi)提供更快速、更高效的數(shù)據(jù)通信。圖3的示意圖提供了這種通信網(wǎng)絡(luò)100的ー個示例。圖3中的網(wǎng)絡(luò)100包含多個通信設(shè)備。由于每個通信設(shè)備內(nèi)都存儲了通過軟件提供的功能(此功能可能在每個通信設(shè)備中都相同),故每個通信設(shè)備都可以根據(jù)網(wǎng)絡(luò)100的要求用作客戶端、對等設(shè)備或代理,如同本文所詳述。請注意,將結(jié)合對圖4的說明來提供對通信設(shè)備的詳細說明?;氐綀D3,網(wǎng)絡(luò)100的示例性實施例說明了其中ー個通信設(shè)備用作客戶端102。客戶端102能夠與ー個或多個對等設(shè)備112、114、116以及ー個或多個代理122進行通信。出于舉例說明的目的,網(wǎng)絡(luò)中包含三個對等設(shè)備和ー個代理,但是應(yīng)注意的是,客戶端能夠與任意數(shù)量的代理和對等設(shè)備進行通信。
通信網(wǎng)絡(luò)100還包含Web服務(wù)器152。此Web服務(wù)器152是客戶端102請求信息的服務(wù)器,它可以是典型的HTTP服務(wù)器,例如用于在傳遞互聯(lián)網(wǎng)上的眾多此類服務(wù)器上的內(nèi)容的HTTP服務(wù)器。請注意,服務(wù)器152并非限于HTTP服務(wù)器。實際上,如果在通信網(wǎng)絡(luò)中使用了一不同的通信協(xié)議,此服務(wù)器可以是能夠處理不同協(xié)議的服務(wù)器。還應(yīng)注意,雖然本說明中使用的是HTTP,但本發(fā)明可以與其他的任何通信協(xié)議相關(guān),HTTP并非g在作為對本發(fā)明的限制。通信網(wǎng)絡(luò)100還包含具有加速服務(wù)器存儲設(shè)備164的加速服務(wù)器162。如同本文所詳述,加速服務(wù)器存儲設(shè)備164中包含有加速服務(wù)器數(shù)據(jù)庫。加速服務(wù)器數(shù)據(jù)庫存儲通信網(wǎng)絡(luò)100中存儲有加速軟件的那些通信設(shè)備的互聯(lián)網(wǎng)協(xié)議(IP)地址。具體地說,加速服務(wù)器數(shù)據(jù)庫中包含存儲于其中的在通信網(wǎng)絡(luò)100內(nèi)當前在線且存儲有加速軟件的通信設(shè)備的列表。對于每個這樣的代理,加速服務(wù)器都會分配一 IP地址列表。在圖3的通信網(wǎng)絡(luò)100中,客戶端102中的應(yīng)用程序正在從Web服務(wù)器152請求信息,這正是此通信設(shè)備內(nèi)的軟件將此通信設(shè)備指定為客戶端的原因。此外,由于代理122作為距離Web服務(wù)器152最近的通信設(shè)備從客戶端102接收到請求,代理122的軟件功能會將此通信設(shè)備指定為代理。請注意,根據(jù)本發(fā)明的替代實施例,此代理不必是距離Web服務(wù)器最近的通信設(shè)備。也可以選擇一不同的通信設(shè)備作為代理。由于對等設(shè)備112、114、116包含由客戶端102從Web服務(wù)器152請求的信息中的至少一部分信息,因此由對等設(shè)備112、114、116的軟件提供的對等設(shè)備112、114、116的功能會將這些通信設(shè)備指定為對等設(shè)備。請注意,這里詳細說明了指定客戶端、代理和對等設(shè)備的過程。還應(yīng)注意,通信網(wǎng)絡(luò)100中的客戶端、代理、對等設(shè)備、加速服務(wù)器、Web服務(wù)器和其他組件的數(shù)量可能不同于圖3中所示的數(shù)量。實際上,通信網(wǎng)絡(luò)100中的客戶端、代理、對等設(shè)備、加速服務(wù)器、Web服務(wù)器和其他組件的數(shù)量并不局限于當前說明的數(shù)量。在說明在通信網(wǎng)絡(luò)100內(nèi)執(zhí)行的功能之前,以下內(nèi)容進ー步說明了根據(jù)本發(fā)明的第一示例性實施例的通信設(shè)備200。圖4是進一歩示出通信網(wǎng)絡(luò)100內(nèi)的通信設(shè)備200的示意圖,此設(shè)備包含計算機的一般組件。請注意,如前所述,圖4中的通信設(shè)備200可以用作客戶端、代理或者對等設(shè)備。圖4中所示,從硬件架構(gòu)角度而言,通信設(shè)備200通常包括通過本地接ロ 250通信連接的處理器202、存儲器210、至少ー個存儲設(shè)備208以及ー個或多個輸入和/或輸出(I/O)設(shè)備240(或外圍設(shè)備)。舉例而言,本地接ロ 250可以是但不限于本技術(shù)領(lǐng)域中已知的一個或多個總線連接或者其他有線或無線連接。本地接ロ 250還可以具有用于實現(xiàn)通信的其他元素,例如控制器、緩沖器(緩存)、驅(qū)動器、中繼器和接收器,但為了簡化說明而沒有在這里提及。此外,本地接ロ 250可能包括地址、控制和/或數(shù)據(jù)連接,以實現(xiàn)在前面提到的組件之間的正確通信。處理器202是用于執(zhí)行軟件,尤其是存儲在存儲器210中的軟件的硬件設(shè)備。處理器52可以是任何定制或可商用的處理器、中央處理單元(CPU)、與通信設(shè)備200相關(guān)聯(lián)的多個處理器中的輔助處理器、基于半導體的(微型芯片或芯片組形式的)微處理器、宏處理器或者幾乎任何用于執(zhí)行軟件指令的設(shè)備。在圖5的說明中進ー步示出和描述的存儲器210可以包括易失存儲元件(例如隨機存取存儲器(諸如DRAM、SRAM、SDRAM等等的RAM))和非易失存儲元件(例如ROM、硬盤驅(qū)動器、磁帶、CDROM等等)中的任意ー種或者它們的組合。此外,存儲器210可以集成電子、磁性、光學和/或其他類型的存儲介質(zhì)。請注意,存儲器210可以具有分布式架構(gòu),其中各個組件之間彼此相距較遠,但都可以被處理器202訪問。 位于存儲器210內(nèi)的軟件212可能包含ー個或多個獨立的程序,每個程序都包含用于實現(xiàn)通信設(shè)備200的邏輯功能的可執(zhí)行指令有序列表,如下所述。在圖4中的示例中,存儲器210中的軟件212至少包含加速應(yīng)用程序220和互聯(lián)網(wǎng)瀏覽器214。此外,存儲器210可能包含操作系統(tǒng)(0/S)230。操作系統(tǒng)230實際上控制計算機程序的執(zhí)行,并提供調(diào)度、輸入輸出控制、文件和數(shù)據(jù)管理、內(nèi)存管理以及通信控制和相關(guān)服務(wù)。請注意,除了加速應(yīng)用程序220、互聯(lián)網(wǎng)瀏覽器214和操作系統(tǒng)230之外,存儲器210還可能包含其他的軟件應(yīng)用程序。雖然本說明中所指的是客戶端從互聯(lián)網(wǎng)瀏覽器發(fā)起的請求,但本發(fā)明不限于從互聯(lián)網(wǎng)瀏覽器發(fā)起的請求。實際上,請求可以發(fā)起于電子郵件程序或者可用于請求在Web服務(wù)器或其他服務(wù)器(其保存客戶端設(shè)備所請求的數(shù)據(jù))上存儲的數(shù)據(jù)的其他任何程序。通信設(shè)備200的功能可以由源程序、可執(zhí)行程序(對象代碼)、腳本或其他任何包含一組待執(zhí)行指令的實體提供。當由源程序提供功能時,需要通過可能包含或未包含在存儲器210內(nèi)的編譯器、匯編器、解釋器等等來轉(zhuǎn)換本程序,以使其能夠在操作系統(tǒng)230上正確操作。此外,可以將通信設(shè)備200的功能編寫為(a)具有多種數(shù)據(jù)類和方法類的面向?qū)ο蟮木幊陶Z言,或者(b)具有例程、子例程和/或函數(shù)的過程編程語言。I/O設(shè)備240可以包括輸入設(shè)備,例如但不限于鍵盤、鼠標、掃描儀、麥克風等。此夕卜,I/o設(shè)備240還可以包括輸出設(shè)備,例如但不限于打印機、顯示器等。最后,I/O設(shè)備240還可以包括通過輸入和輸出來進行通信的設(shè)備,例如但不限于調(diào)制器/解調(diào)器(調(diào)制解調(diào)器,用于訪問其他設(shè)備、系統(tǒng)或網(wǎng)絡(luò))、射頻(RF)或其他收發(fā)器、電話接ロ、網(wǎng)橋、路由器等
坐寸ο當通信設(shè)備200在工作中時,處理器202將被配置為執(zhí)行在存儲器210中存儲的軟件212,以便向/從存儲器210傳送數(shù)據(jù)以及根據(jù)軟件212總體控制通信設(shè)備200的操作。軟件212和0/S 230的整體或者部分(通常是后者)被處理器202讀取,并可能在處理器202緩沖內(nèi)井隨后被執(zhí)行。當通信設(shè)備200的功能由軟件實現(xiàn)(如圖4所示)吋,請注意,功能可以存儲在任何計算機可讀介質(zhì)上,該計算機可讀介質(zhì)可供任何計算機相關(guān)系統(tǒng)或方法使用或者與其結(jié)合使用。在本文的場景下,計算機可讀介質(zhì)是電子、磁性、光學或其他物理設(shè)備,或者意指可能包含或存儲供計算機相關(guān)系統(tǒng)或方法使用或者與其結(jié)合使用的計算機程序。可以在供指令執(zhí)行系統(tǒng)、裝置或設(shè)備(例如基于計算機的系統(tǒng)、包含處理器的系統(tǒng)或者能夠從指令執(zhí)行系統(tǒng)、裝置或設(shè)備提取并執(zhí)行指令的其他系統(tǒng))使用或者與其結(jié)合使用的任何計算機可讀介質(zhì)中實現(xiàn)通信設(shè)備200的功能。在本文的場景下,“計算機可讀介質(zhì)”可以是能夠存儲、傳送、傳播或運載供指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或者與其結(jié)合使用的程序的任何模塊。計算機可讀介質(zhì)可以是例如但不限于電子、磁性、光學、電磁、紅外或半導體系統(tǒng)、裝置、設(shè)備或傳播介質(zhì)。計算機可讀介質(zhì)的更多具體示例(非窮舉性列表)可包括以下各項具有一條或多條導線的電連接(電子)、便攜式計算機軟盤(磁性)、隨機存取存儲器(RAM)(電子)、只讀存儲器(ROM)(電子)、可擦除可編程只讀存儲器(EPROM、EEPROM或閃存)(電子)、光纖(光學)以及便攜式壓縮光盤只讀存儲器(CDROM)(光學)。請注意,計算機可讀介質(zhì)還可以是紙張或者能夠?qū)⒊绦虼蛴≡谄渖系牧愆`適當介質(zhì),原因在于,可以通過例如對紙張或其他介質(zhì)執(zhí)行光學掃描等電子方式來捕獲程序,并在必要時以適當?shù)姆绞竭M行編譯、解釋或者以其它方式處理,然后將其存儲在計算機內(nèi)存中。在替代實施例中,通信設(shè)備200的功能是由硬件實現(xiàn)的??梢允褂迷诒炯夹g(shù)領(lǐng)域眾所周知的以下任何技術(shù)或這些技術(shù)的組合來實現(xiàn)所述功能具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門的離散邏輯電路、具有適當?shù)慕M合邏輯門的特定用途集成電路(ASIC)、可編程門陣列(PGA)、現(xiàn)場可編程門陣列(FPGA)等等。 通信設(shè)備200的至少ー個存儲設(shè)備208可以是很多不同類別的存儲設(shè)備中的一種。如同本文所詳述,存儲設(shè)備208可能包含配置數(shù)據(jù)庫280和緩存數(shù)據(jù)庫282?;蛘?,配置數(shù)據(jù)庫280和緩存數(shù)據(jù)庫282可以位于與通信設(shè)備200進行通信的不同存儲設(shè)備上。隨后的說明假設(shè)配置數(shù)據(jù)庫280和緩存數(shù)據(jù)庫282位于同一個存儲設(shè)備上,但請注意,本發(fā)明并非g在限于這種配置。配置數(shù)據(jù)庫280存儲對通信網(wǎng)絡(luò)100中的所有元件通用的配置數(shù)據(jù),并且用于為存儲在存儲器210內(nèi)的加速應(yīng)用程序220中的不同模塊提供設(shè)置和同步信息,如同本文所詳述。緩存數(shù)據(jù)庫282存儲對通信設(shè)備200為自己或代表通信網(wǎng)絡(luò)100中的其他元件發(fā)出的HTTP請求的響應(yīng)。如同本文另外所詳述,對HTTP請求的響應(yīng)存儲在緩存數(shù)據(jù)庫282中,以供此通信設(shè)備200在將來使用,或者供通信網(wǎng)絡(luò)100中需要檢索這些信息并將此通信設(shè)備用作對等設(shè)備或代理的其他通信設(shè)備使用。此外,如同本文所詳述,緩存數(shù)據(jù)庫282中已存儲有通信設(shè)備知道的URL(即曾發(fā)現(xiàn)對這些URL的請求)的列表。對于每個URL,緩存數(shù)據(jù)庫282中存儲有URL本身、Web服務(wù)器針對此URL返回的HTTP頭、上次從Web服務(wù)器直接加載此URL的內(nèi)容的時間、上次在Web服務(wù)器上更改URL的內(nèi)容的時間以及包含此URL內(nèi)容的區(qū)塊和數(shù)據(jù)本身的區(qū)塊的列表。本說明中的區(qū)塊被定義為大小完全相同的數(shù)據(jù)段,組合在一起構(gòu)成了 URL的全部內(nèi)容。請注意,雖然本說明是針對大小完全相同的數(shù)據(jù)段提供的,但根據(jù)本發(fā)明的替代實施例,區(qū)塊可以具有不同的大小。圖5是進ー步示出圖4中的存儲器210的示意圖。如圖5所示,存儲器210可以分成兩個基本層,即操作系統(tǒng)層260和應(yīng)用層270。操作系統(tǒng)層260包含操作系統(tǒng)230,其中操作系統(tǒng)230進ー步包含至少ー個設(shè)備驅(qū)動程序262和至少ー個通信棧264。設(shè)備驅(qū)動程序262是負責為通信設(shè)備200中的各種硬件設(shè)備(例如處理器202、存儲設(shè)備208和I/O設(shè)備240)處理基本操作命令的軟件模塊。此外,通信棧264還通過實現(xiàn)各種標準通信協(xié)議為通信設(shè)備200的應(yīng)用程序提供了在網(wǎng)絡(luò)100內(nèi)進行通信的方式。應(yīng)用層270包括通信設(shè)備200上運行的所有應(yīng)用程序。因此,應(yīng)用層270包括互聯(lián)網(wǎng)瀏覽器214 (用于查看位于遠程Web服務(wù)器上的信息)、加速應(yīng)用程序220 (如下所詳述)以及存儲在通信設(shè)備200上的任何其他應(yīng)用程序216。如下所另外詳述,加速應(yīng)用程序220會攔截使用互聯(lián)網(wǎng)的通信設(shè)備(客戶端)應(yīng)用程序所發(fā)起的請求,以修改請求并通過通信網(wǎng)絡(luò)路由這些請求??梢酝ㄟ^多種方法來攔截這些請求。其中的ー種方法是創(chuàng)建同樣也位于存儲器210內(nèi)的中間驅(qū)動程序272,該中間驅(qū)動程序272會將自己附于所有通信應(yīng)用程序上,攔截通信設(shè)備200上的通信應(yīng)用程序(例如互聯(lián)網(wǎng)瀏覽器214)的待發(fā)請求,并將這些請求路由到加速應(yīng)用程序220。一旦加速應(yīng)用程序220修改了這些請求,將這些請求路由到通信網(wǎng)絡(luò)100上的其他系統(tǒng)元件,并從通信網(wǎng)絡(luò)100上的其他系統(tǒng)元件接收到回復,加速應(yīng)用程序220會將這些回復返回給中間驅(qū)動程序272,中間驅(qū)動程序272將這些回復返回給請求通信應(yīng)用程序。圖6是進ー步示出加速應(yīng)用程序220的組成元素以及加速應(yīng)用程序220的通信路徑的示意圖。加速應(yīng)用程序220包含加速系統(tǒng)初始化程序模塊222,當加速應(yīng)用程序220啟動時會調(diào)用此模塊。加速系統(tǒng)初始化程序模塊222能夠初始化通信設(shè)備200的所有元件。加速應(yīng)用程序220還包含三個并行運行的獨立模塊,即客戶端模塊224、對等模塊226和代理模塊228,它們中的每ー個都會根據(jù)通信設(shè)備200在特定時刻在通信網(wǎng)絡(luò)100中承擔的作用而開始發(fā)揮作用。本文中進ー步詳細說明了每個模塊的作用??蛻舳四K224提供當通信設(shè)備200從Web服務(wù)器152請求信息(例如但不限于網(wǎng)頁、數(shù)據(jù)、視頻或音頻)時所需的功能??蛻舳四K224會使具有客戶端模塊224的通信設(shè)備200攔截信息請求,并將信息請求傳送給通信網(wǎng)絡(luò)100中的其他元件,例如服務(wù)器、代理或?qū)Φ仍O(shè)備。本文中詳細說明了這ー過程。對等模塊226提供通信設(shè)備200在響應(yīng)通信網(wǎng)絡(luò)100內(nèi)的其他客戶端并向這些客戶端提供它們所請求的信息時所需的功能(具有此對等模塊226的這個通信設(shè)備200已經(jīng) 在其他時間下載了這些信息)。本文中詳細說明了這ー過程。代理模塊228提供了通信網(wǎng)絡(luò)100中用作客戶端的其他通信設(shè)備查詢擁有此代理模塊228并用作代理的這個通信設(shè)備200時所需的功能,以獲取通信網(wǎng)絡(luò)100中含有所請求信息的對等設(shè)備的列表。本文中進ー步詳細說明了這ー過程。加速應(yīng)用程序220與存儲設(shè)備208上的配置數(shù)據(jù)庫280和緩存數(shù)據(jù)庫282進行交互。如前所述,配置數(shù)據(jù)庫280存儲可能對通信網(wǎng)絡(luò)100中的所有通信設(shè)備通用的配置數(shù)據(jù),并用于為存儲在存儲器210內(nèi)的加速應(yīng)用程序220中的不同模塊222、224、226、228提供設(shè)置和同步信息。緩存數(shù)據(jù)庫282存儲對通信設(shè)備200為自己或代表通信網(wǎng)絡(luò)100中的其他元件發(fā)出的信息請求(例如HTTP請求)的響應(yīng)。對HTTP請求的響應(yīng)存儲在緩存數(shù)據(jù)庫282中,以供此通信設(shè)備200在將來使用,或者供通信網(wǎng)絡(luò)100中需要檢索這些信息并將此通信設(shè)備200用作對等設(shè)備或代理的其他通信設(shè)備使用。本文中詳細說明了這ー過程。存儲在緩存數(shù)據(jù)庫282內(nèi)的信息可能包括與客戶端發(fā)送的請求相關(guān)的任何信息。舉例而言,此類信息可能包括元數(shù)據(jù)和實際被請求的數(shù)據(jù)。例如,對于視頻HTTP請求,元數(shù)據(jù)可能包括響應(yīng)客戶端請求的Web服務(wù)器的版本,而且數(shù)據(jù)將是所請求的視頻本身。在緩存數(shù)據(jù)庫中的存儲空間不足的情況下,相關(guān)通信設(shè)備的軟件會使通信設(shè)備清除以前存儲的數(shù)據(jù),以便為要存儲在緩存數(shù)據(jù)庫中的新數(shù)據(jù)騰出空間。舉例而言,這種以前的數(shù)據(jù)可能包括很可能不會再使用的數(shù)據(jù)。此類數(shù)據(jù)可以是舊數(shù)據(jù)或者已知不再有效的數(shù)據(jù)。通信設(shè)備可以選擇使用在本技術(shù)領(lǐng)域眾所周知的任何方法清除不太緊要的數(shù)據(jù)。圖7是進一歩示出通信網(wǎng)絡(luò)100內(nèi)使用的主數(shù)據(jù)庫的兩個主數(shù)據(jù)庫,即加速服務(wù)器數(shù)據(jù)庫164和緩存數(shù)據(jù)庫282的圖表。如前所述,加速服務(wù)器數(shù)據(jù)庫164存儲通信網(wǎng)絡(luò)100中存儲有加速軟件的那些通信設(shè)備的IP地址。具體地說,加速服務(wù)器數(shù)據(jù)庫164包含存儲于其中的通信設(shè)備列表,這些通信設(shè)備中存儲有加速軟件,而且當前在通信網(wǎng)絡(luò)100中處于在線狀態(tài)。加速服務(wù)器為每個用作代理的通信設(shè)備分配一系列IP地址。每個通信設(shè)備都是IP地址處于此通信設(shè)備所“承認”的范圍內(nèi)的任何Web服務(wù)器的代理。舉例而言,當?shù)谝煌ㄐ旁O(shè)備(也就是本文中所述的具有加速應(yīng)用程序220的第一通信設(shè)備)上線時,加速服務(wù)器將為此通信設(shè)備分配世界上的所有IP地址,此通信設(shè)備將成為所有Web服務(wù)器 的代理。當?shù)诙ㄐ旁O(shè)備上線時,它將分擔第一通信設(shè)備的IP地址列表,這樣這每個通信設(shè)備將能夠負責不同部分的萬維網(wǎng)服務(wù)器。通信設(shè)備200的緩存數(shù)據(jù)庫282中存儲有通信設(shè)備200所知道的URL列表286。每當通信設(shè)備200接收到位于特定URL處的信息的請求時,此通信設(shè)備200都會知道這個URL。如圖7所示,對于URL列表286中的每個URL 288,緩存數(shù)據(jù)庫282存儲URL本身290 ;Web服務(wù)器152為此URL返回的HTTP頭部292、上次從Web服務(wù)器152直接加載此URL內(nèi)容的時間294、上次在Web服務(wù)器152上更改URL內(nèi)容的時間296以及包含此URL內(nèi)容和區(qū)塊內(nèi)容的區(qū)塊列表298。如前所述,本說明中的區(qū)塊被定義為大小完全相同的數(shù)據(jù)段,組合在一起構(gòu)成了 URL的全部內(nèi)容,也就是URL描述出其所在位置的全部內(nèi)容。作為非限定性的示例,可以使用例如大小為16KB的區(qū)塊,以使任何HTTP響應(yīng)都能夠分為16KB的區(qū)塊。根據(jù)本發(fā)明的替代實施例,如果響應(yīng)的最后ー個區(qū)塊達不到指定的區(qū)塊大小(例如,對于本示例而言是16KB),此區(qū)塊的剰余部分將被留空。對于每個這樣的區(qū)塊300,緩存數(shù)據(jù)庫282將包含區(qū)塊的校驗和302、區(qū)塊本身的數(shù)據(jù)304以及最可能含有針對此區(qū)塊的數(shù)據(jù)的對等設(shè)備的列表306。如同本文所詳述,當通信網(wǎng)絡(luò)100中的其他通信設(shè)備用作客戶端的對等設(shè)備以從中下載區(qū)塊數(shù)據(jù)時,針對該區(qū)塊的數(shù)據(jù)可以供通信網(wǎng)絡(luò)100中的其他客戶端使用。對于每個區(qū)塊,都會計算其校驗和并將校驗和與區(qū)塊本身存儲在一起??梢允褂帽炯夹g(shù)領(lǐng)域已知的多種方法中的任一種來計算校驗和。計算校驗和的目的是能夠唯一識別數(shù)據(jù),校驗和將是數(shù)據(jù)的“密鑰”,其中數(shù)據(jù)就是區(qū)塊。舉例而言,客戶端希望加載ー URL的內(nèi)容,因此服務(wù)于此請求的代理會將區(qū)塊的校驗和發(fā)送給此客戶端以及存儲這些區(qū)塊的對等設(shè)備。請注意,每個不同的區(qū)塊可能會來自不同的對等設(shè)備。此客戶端隨后與每個這樣的對等設(shè)備進行通信,并提供它希望對等設(shè)備能夠傳回到客戶端的區(qū)塊的校驗和。對等設(shè)備在其緩存數(shù)據(jù)庫中查找校驗和(密鑰),并返回與此校驗和(密鑰)相對應(yīng)的區(qū)塊(數(shù)據(jù))。如圖7所示,對于對等設(shè)備列表306內(nèi)的每個對等設(shè)備308,緩存數(shù)據(jù)庫282將包含對等設(shè)備IP地址310以及對等設(shè)備的連接狀態(tài)312,此連接狀態(tài)312表明對等設(shè)備308是否在線。根據(jù)本發(fā)明的一個實施例,緩存數(shù)據(jù)庫282可以按URL和校驗和編制索引。按這種方式對緩存數(shù)據(jù)庫編制索引非常有用,原因如下。當代理在使用緩存數(shù)據(jù)庫時,代理將從客戶端接收到此客戶端查找URL的請求。在這種情況下,代理需要按URL來對緩存數(shù)據(jù)庫編制索引,以幫助查找具有此URL的區(qū)塊的相應(yīng)對等設(shè)備的列表。當對等設(shè)備在使用此緩存數(shù)據(jù)庫時,對等設(shè)備從客戶端獲取對特定校驗和的請求,并對等設(shè)備需要數(shù)據(jù)庫按校驗 和被編制索引,以便它們能夠迅速找到正確的區(qū)塊。當然,如同在本領(lǐng)域普通技術(shù)人員能夠 理解的那樣,可以按其他的任何方式來對緩存數(shù)據(jù)庫編制索引。說明了通信網(wǎng)絡(luò)100的組件之后,下面將進一步說明這些組件如何交互和單獨工 作。圖8是示出加速系統(tǒng)初始化程序模塊222 (以下簡稱“初始化程序222”)的操作的流 程圖300。請注意,應(yīng)將流程圖中的所有過程說明或框視為演示性的模塊、區(qū)段、代碼部分或 步驟,它們包含一條或多條用于在過程中實現(xiàn)特定邏輯功能的指令,并且替代實現(xiàn)方式包 含在本發(fā)明的有效范圍內(nèi),其中可以按與本文中所示或討論的順序不同的順序來實現(xiàn)它們 的功能,包括根據(jù)涉及到的功能,大體上同時執(zhí)行或倒序執(zhí)行,如同在本發(fā)明所屬的領(lǐng)域的 技術(shù)人員能夠理解的那樣。初始化程序222是當通信設(shè)備200啟動時通信設(shè)備200中第一個操作的元件(框 302)。當初始化程序222啟動時,該初始化程序222首先與加速服務(wù)器162進行通信以便 向加速服務(wù)器162注冊。這是通過向加速服務(wù)器162提供具有初始化程序222的通信設(shè)備 200的主機名以及該通信設(shè)備200上的接口的所有IP地址和媒體訪問控制(MAC)地址來執(zhí) 行的。根據(jù)本發(fā)明的替代實施例,如框304所示,初始化程序222會向加速服務(wù)器162檢 查是否有更新版本的加速應(yīng)用程序軟件可用。此操作可以通過很多已知方法中的任何一種 方法來執(zhí)行,例如但不限于向加速服務(wù)器162提供加速應(yīng)用程序軟件的版本號。從加速服 務(wù)器162返回的消息會表明是否存在更新版本的加速應(yīng)用程序軟件。如果存在更新版本的 加速應(yīng)用程序軟件,則初始化程序222會從加速服務(wù)器162或一不同位置下載最新版本的 加速應(yīng)用程序軟件,并在通信設(shè)備200上安裝這個最新的版本。此外,初始化程序222還可 能在以后每隔設(shè)定時段調(diào)度額外版本檢查。舉例而言,初始化程序222可以每兩天檢查一 次是否存在系統(tǒng)更新。如框306所示,初始化程序222隨后將來自通信設(shè)備200的出站網(wǎng)絡(luò)流量重定向 為流經(jīng)加速應(yīng)用程序162。如前所述,重定向出站網(wǎng)絡(luò)流量的一種方法是插入中間驅(qū)動程序 212,此驅(qū)動程序會攔截并重定向流量。請注意,還可以通過很多種其他的方法來實施這一 重定向,這些都為本領(lǐng)域普通技術(shù)人員所熟知。如框308所示,初始化程序222隨后會啟動通信設(shè)備200的客戶端模塊224,并將 通信設(shè)備200的客戶端模塊224配置為攔截通信設(shè)備200的所有出站網(wǎng)絡(luò)通信,然后從中 間驅(qū)動程序272或所實施的其他路由方法將這些出站網(wǎng)絡(luò)通信路由到客戶端模塊224。此 操作被執(zhí)行,以使得客戶端模塊224將能夠接收到來自網(wǎng)絡(luò)應(yīng)用程序的所有網(wǎng)絡(luò)流量、在 必要時修改網(wǎng)絡(luò)流量以及重新路由流量。如同在本領(lǐng)域普通技術(shù)人員所了解的那樣,為了 重新路由通信,需要對流量進行修改,例如更改請求的目的地。如框310所示,初始化程序222隨后會啟動代理模塊228和對等模塊226以在通信 設(shè)備200上運行。代理模塊228和對等模塊226會偵聽通信設(shè)備200上預(yù)先確定的端口, 以便將這些端口上的入站網(wǎng)絡(luò)流量路由到代理模塊228和對等模塊226。如同本文所詳述, 上述操作將使通信設(shè)備200能夠根據(jù)需要用作通信網(wǎng)絡(luò)100內(nèi)的其他通信設(shè)備的代理和對 等設(shè)備。圖9是進一步示出根據(jù)用于提供更快速、更高效數(shù)據(jù)通信的系統(tǒng)和方法,通信網(wǎng)100 ^350o
352 )3^,^/^ 200M#P, —ilf^JcnT tii,;l§“ GET http://www.aol.com/index.html HTTP/1. 1 ”0 jitlilf 5}< flTf&jft [=| /Pf /P200 ±f 23£NiM3l 2i4,M23£NiM3l 214 iE#/A5M;!jpfcJi ffi,#M/A5 c m~rieft nftmL&Rm w mfcm m *&mm-
272MWfil200 tJ§^$fa Ulfe 224 200 ± 224(M 354) 224 152 *J IP jftilt ( BP# ±^ tJ WWW. aol. co m ±|/IEKJ Web Hx^UIEKl IP tlh ), #>|#ltt; IPiPiSM#^162(^ 356),^ nT^^^iM 200ffl#^SWfflffi^ (KT “ftI") m&m*
152 m IP ilLMJl^l 162^^W!£^M^g jtfc ip (U 358) mm@162m&r&t^immm* mmmm162 il SiJcfflff ioo rt ^nTffiifi^W 'MW&,R IP M@U Web152 ipA5C^# 0J7Ji iüfMo
inU 360 Jfi^,224HC$ni#^c ( M#P “GET http://www. aol. com/index. html HTTP/1. 1”) ‘RM^jhKtlPiSM#^ 162mPff^iXM, [^{ü
200 nT^3ig|lJ$ ^^iai^igi#^c & ( FhAl l (PDA) sJOTtki )M, , HTTPWeb %'M
a 109380 ^M , 382 ^^c tHf J.o # u,mmmmmmtm*[ooss] mm 384Mdm*mmff,Io^M2.B,i'b]wp (\mw5ms) mf wn,.ira^s, ff/AMJi%-^h 162
如框386所示,選擇了代理之后,客戶端會通知所選的代理將使用它來處理這一 請求,并通知其他代理將不使用它們來處理這一請求??蛻舳穗S后會向所選的代理發(fā)送針 對原始信息請求的前五個數(shù)據(jù)區(qū)塊的請求(框388)。通過將所請求的區(qū)塊按它們在完整響 應(yīng)中的順序指定給所選的代理,客戶端從所選的代理接收對等設(shè)備的列表以及所請求區(qū)塊 的校驗和。舉例而言,對于前五個區(qū)塊,客戶端會向所選的代理要求第一個到第五個區(qū)塊, 并且對于第四批的五個區(qū)塊,客戶端會向此代理要求第十六個到第二十個區(qū)塊。如前所述, 一次可以請求更多或更少的區(qū)塊。如框390所示,在從客戶端接收到請求之后,所選的代理通過以下操作來確定其 是否具有與所請求的數(shù)據(jù)區(qū)塊相關(guān)的信息在其緩存數(shù)據(jù)庫中查找此請求,并確定所選的 代理中是否存儲有與通信網(wǎng)絡(luò)中已存儲該請求的被請求數(shù)據(jù)的那些對等設(shè)備的相關(guān)的信 息,或者確定所選的代理本身是否在其存儲器中存儲有該請求的被請求數(shù)據(jù)。除了確定所 選的代理是否在其數(shù)據(jù)庫中包含針對此請求的條目外,所選的代理還可以確定此信息是否 仍然有效。具體地說,所選的代理確定其存儲器中或?qū)Φ仍O(shè)備的存儲器中存儲的數(shù)據(jù)是否 仍然反映針對此請求從服務(wù)器本身接收到的信息。本文中詳細說明了被所選的代理用來確 定此信息是否仍然有效的過程。如框392所示,如果信息(該請求的被請求數(shù)據(jù))存在且仍然有效,則代理將為客 戶端準備響應(yīng),對于每個區(qū)塊而言,此響應(yīng)包括(i)區(qū)塊的校驗和;(ii)根據(jù)所選代理的 數(shù)據(jù)庫包含這些區(qū)塊的對等設(shè)備的列表;以及(iii)如果這些區(qū)塊是信息的前五個區(qū)塊, 而且客戶端的初始請求是直接發(fā)送到服務(wù)器的,所選的代理還會提供從會服務(wù)器接收到的 特定協(xié)議的頭部。如框394所示,每個區(qū)塊的對等設(shè)備列表按與請求客戶端的地理位置的接近程度 排序。根據(jù)本示例,每個區(qū)塊的列表中只保留五個最近的對等設(shè)備,其余的對等設(shè)備從此列 表中丟棄。如框396所示,準備的響應(yīng)(即最近的對等設(shè)備的列表)將被發(fā)回到客戶端。請 注意,如果這是最后一組要針對此請求提供的區(qū)塊,向客戶端提供與此有關(guān)的信息將會非 常有用。如果所選的代理發(fā)現(xiàn)自己沒有與此請求相關(guān)的信息,或者所選的代理發(fā)現(xiàn)自己擁 有的信息不再有效,所選的代理將需要直接從服務(wù)器加載這些信息,以便能夠回復請求客 戶端。如框400所示,所選的代理隨后會將請求直接發(fā)送給服務(wù)器。接下來,所選的代理將 從服務(wù)器接收到的信息(請求的頭部以及響應(yīng)本身的區(qū)塊)存儲在自己的數(shù)據(jù)庫中,以供 對客戶端的這個特定響應(yīng)之用,并供可能請求此數(shù)據(jù)的其他客戶端在將來使用(框402)。 所選的代理隨后會為客戶端準備響應(yīng)(列表),其中這個響應(yīng)包含協(xié)議頭部(如果這些區(qū) 塊是前五個區(qū)塊)以及這五個區(qū)塊的校驗和,并提供自己以作為這些區(qū)塊的唯一對等設(shè)備 (框404)。此列表隨后將被發(fā)回到客戶端(框406)。圖11是延續(xù)圖10的流程圖的流程圖420,其中說明了從代理接收到包含多個對 等設(shè)備的列表或單對等設(shè)備列表時執(zhí)行的操作。如框422所示,客戶端從代理接收到響應(yīng) (包括區(qū)塊的列表以及區(qū)塊的相應(yīng)數(shù)據(jù),包括對等設(shè)備和前面提到的其他信息),而且對于 這五個區(qū)塊中的每一個,客戶端會向針對該區(qū)塊列出的每個對等設(shè)備發(fā)送請求以便下載此 區(qū)塊??蛻舳税l(fā)送給每個對等設(shè)備的區(qū)塊請求是客戶端希望接收到的數(shù)據(jù)的校驗和,也就 是區(qū)塊的密鑰(標識符)。
如框424所示,對等設(shè)備隨后就它們是否仍然擁有此區(qū)塊的數(shù)據(jù)作出回復。舉例 而言,有些對等設(shè)備當前可能不在線,有些雖然在線,但可能已經(jīng)丟棄了相關(guān)信息,而有些 對等設(shè)備可能仍然擁有這些相關(guān)信息,即區(qū)塊。如框426所示,客戶端隨后會選擇最快地對 所請求的信息作出肯定回答的對等設(shè)備,該客戶端讓此對等設(shè)備知道已選中它來向客戶端 提供區(qū)塊,并通知其他對等設(shè)備沒有選中它們。如框428所示,所選的對等設(shè)備隨后會將區(qū)塊發(fā)送給客戶端。請注意,如果沒有任 何對等設(shè)備回復客戶端的請求,客戶端會返回到代理,指明客戶端全部是否定的,代理隨后 會提供包含另外五個代理的列表(如果存在這些代理),或者該代理繼續(xù)直接從Web服務(wù)器 下載信息,這與上面提到的在不存在任何對等設(shè)備的情況下所發(fā)生的相同。客戶端隨后會將區(qū)塊存儲在自己的緩存中(框430),這樣,當該客戶端在將來用 作尋找這些信息的其他客戶端的對等設(shè)備時,該客戶端可以將這些區(qū)塊提供給請求通信設(shè) 備。如框432所示,如果某些區(qū)塊不是從任何對等設(shè)備加載的,客戶端會在下一輪的請求 中再次從代理請求這些區(qū)塊,將這些區(qū)塊標記為無法從對等設(shè)備的客戶端列表中加載的區(qū) 塊。在這種情況下,代理會直接從服務(wù)器加載數(shù)據(jù)并將其返回給客戶端。客戶端隨后會向代理確認它正確接收到了哪些區(qū)塊(框434)。代理隨后會在其數(shù) 據(jù)庫中查找這些區(qū)塊,并將客戶端添加到針對這些區(qū)塊的對等設(shè)備列表中,具體地說,由于 此客戶端現(xiàn)在存儲著這些區(qū)塊,因此可以將這些區(qū)塊提供給將其作為對等設(shè)備的其他客戶 端(框436)。如框438所示,客戶端隨后會將數(shù)據(jù)傳送給作出初始請求的Web瀏覽器或客戶端 的其他應(yīng)用程序,使其按原計劃使用這些數(shù)據(jù)??蛻舳穗S后會檢查代理所設(shè)置的標記,從而 檢查是否針對此請求接收到了所有區(qū)塊(框440)。具體地說,當代理提供最后五個區(qū)塊的 列表時,代理將此信息納入其給客戶端的回復中,此信息被稱為“標記”。此信息將使客戶端 獲悉針對特定的資源請求已經(jīng)接收到所有信息。如果最后接收到的區(qū)塊不是此請求的最后區(qū)塊,客戶端的處理過程會返回到圖10 上的框384中的功能而繼續(xù)進行,但是改為向所選的代理發(fā)送針對原始信息請求的接下來 五個數(shù)據(jù)區(qū)塊的請求?;蛘?,如果已接收到針對此請求的所有區(qū)塊,則請求完成,流程從圖 9上的框352處重新開始。圖12是示出代理、客戶端或?qū)Φ仍O(shè)備為確定某個HTTP請求是否仍然有效而執(zhí)行 的步驟的流程圖500。具體地說,如下說明提供了關(guān)于以下的示例代理、客戶端或?qū)Φ仍O(shè) 備如何確定代理的存儲器或者對等設(shè)備或客戶端的存儲器中存儲的特定數(shù)據(jù)是否仍然反 映當前在Web服務(wù)器上的信息。如框502所示,在正在檢查HTTP請求的有效性的代理、客 戶端或?qū)Φ仍O(shè)備的緩存數(shù)據(jù)庫中查找HTTP請求。舉例而言,由RFC 2616定義的HTTP協(xié)議 概括了 Web服務(wù)器能夠在HTTP頭部內(nèi)定義的用于表明特定數(shù)據(jù)有效性的具體方法,例如但 不限于使用HTTP頭部信息(例如使用max age [最大壽命]來表明此數(shù)據(jù)在失效之前可以 緩存的時間、使用no cache[無緩存]來表明始終不對數(shù)據(jù)進行緩存)以及使用其他信息。如框504所示,這些標準的驗證方法都針對本文中討論的HTTP請求信息進行了測 試。如框506所示,此時確定了存儲的所請求信息是否有效。如果所請求的信息有效,則返 回“VALID”(有效)響應(yīng)(框508)?;蛘撸绻埱蟮男畔o效,則向相關(guān)的Web服務(wù)器 發(fā)送HTTP條件請求,以確定針對此請求存儲的數(shù)據(jù)是否仍然有效(框510)。如果針對此請求存儲的數(shù)據(jù)仍然有效,則返回“ VALID”(有效)響應(yīng)(框508)?;蛘撸绻槍Υ苏埱蟠?儲的數(shù)據(jù)無效,將返回“ INVALID”(無效)響應(yīng)(框514)。請注意,與圖12相關(guān)的上述說 明解釋了如何檢查HTTP信息是否仍然有效。還可以使用一些類似的方法來確定任何其他 協(xié)議的有效性,本領(lǐng)域普通技術(shù)人員應(yīng)當能夠領(lǐng)會和理解這些方法。圖13是大致說明了加速服務(wù)器的操作的流程圖550。加速服務(wù)器在本系統(tǒng)和方法 中的主要作用是向客戶端提供哪些代理服務(wù)于哪些請求有關(guān)的信息,以及保持所有網(wǎng)絡(luò)元 件總是具有最新的軟件更新。如框552所示,加速服務(wù)器向網(wǎng)絡(luò)元件發(fā)送“keep alive”(保 持活動)信號,并在自己的數(shù)據(jù)庫中跟蹤哪些網(wǎng)絡(luò)元件處于在線狀態(tài)。如框554所示,加速 服務(wù)器繼續(xù)等待客戶端請求并繼續(xù)確定是否接收到了ー個客戶端請求。一旦接收到請求,加速服務(wù)器會測試所接收到的請求的類型(框556)。如果某 個客戶端請求在網(wǎng)絡(luò)內(nèi)注冊自己(客戶端每次在自己的主機上開始運行時都會發(fā)生此事 件),則此客戶端將被添加到加速服務(wù)器上存儲的按客戶端IP地址排序的代理列表中(框 558)。如果請求的目的是查找要用于處理特定請求的代理,加速服務(wù)器會創(chuàng)建空的新代 理列表(框560)。加速服務(wù)器隨后會在代理數(shù)據(jù)庫中捜索接下來五個處于活動狀態(tài)的代 理,這些代理的IP地址最接近于請求中所指向的服務(wù)器的IP地址(框562)。就此而論, 192. 166. 3. 103與192. 166. 3. 212的接近度高于與192. 167. 3. 104的接近度。加速服務(wù)器 隨后會將此代理列表發(fā)送給客戶端(框564)。針對元件需要升級到新的版本的情況,如果請求的目的是檢查最新加速軟件的版 本,加速服務(wù)器會向此網(wǎng)元(客戶端、對等設(shè)備或代理)發(fā)送最新存在的加速軟件的版本號 以及用于下載新版本的URL (框566)。盡管如前所述,上述示例重點說明的是HTTP數(shù)據(jù)請求,但本系統(tǒng)和方法同樣能夠 處理其他協(xié)議請求。舉例而言,在獨立的實施例中所說明的加速方法可以加速任何OSI層 的任何通信協(xié)議(SMTP、DNS、UDP、以太網(wǎng)等等)。在下面的這個替代實施例中說明了加速方 法能夠加速TCPIP的方式。如同在本領(lǐng)域普通技術(shù)人員所了解的那樣,TCPIP是ー種相對 低層的協(xié)議,而相比之下,HTTP是ー種高層協(xié)議。為了說明TCPIP通信,可以參考圖3,其中 的Web服務(wù)器是ー個TCPIP服務(wù)器。在TCPIP中有三個具有特殊意義的通信命令,即連接(connect)、寫入(write)和 讀取(read)。連接是由通信設(shè)備中發(fā)起通信以指示TCPIP棧連接到遠程通信設(shè)備的應(yīng)用程 序發(fā)出的命令。連接消息包含通信設(shè)備的IP地址以及要連接到的端口號。應(yīng)用程序會使 用寫入命令來指示TCPIP棧向它所連接到的通信設(shè)備發(fā)送消息(例如數(shù)據(jù))。此外,應(yīng)用程 序還會使用讀取命令要求TCPIP棧提供從它所連接到的遠程通信設(shè)備發(fā)出的消息。在兩端 通常存在連接的通信會話,后面跟隨讀取和寫入。圖49-TCPIP加速系統(tǒng)設(shè)置
權(quán)利要求
1.一種用于加速數(shù)據(jù)通信并使數(shù)據(jù)通信更高效的網(wǎng)絡(luò),包括 至少一個客戶端通信設(shè)備,用于發(fā)起原始數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù); 至少一個代理通信設(shè)備,其被分配給所述數(shù)據(jù)服務(wù)器,用于從所述客戶端通信設(shè)備接收所述數(shù)據(jù)請求,其中所述代理跟蹤所述網(wǎng)絡(luò)中已有哪些客戶端通信設(shè)備從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng)或所述響應(yīng)的部分; 至少一個對等通信設(shè)備,其中存儲有響應(yīng)于客戶端通信設(shè)備的先前數(shù)據(jù)請求而接收到的數(shù)據(jù)中的至少一部分數(shù)據(jù),其中所述先前數(shù)據(jù)請求針對的是與在所述發(fā)起數(shù)據(jù)請求期間所請求的數(shù)據(jù)相同的數(shù)據(jù),并且其中該部分數(shù)據(jù)可以應(yīng)所述客戶端通信設(shè)備的請求從所述對等通信設(shè)備發(fā)送到所述至少一個客戶端通信設(shè)備;以及 至少一個加速服務(wù)器,用于決定哪個代理通信設(shè)備應(yīng)被分配給哪個數(shù)據(jù)服務(wù)器,并將該信息提供給所述至少一個客戶端通信設(shè)備。
2.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述客戶端通信設(shè)備、對等通信設(shè)備和代理通信設(shè)備中的每一者中都包含有客戶端模塊、對等模塊和代理模塊,從而允許所述客戶端通信設(shè)備、所述對等通信設(shè)備和所述代理通信設(shè)備用作客戶端通信設(shè)備、對等通信設(shè)備和代理通信設(shè)備中的任一種設(shè)備。
3.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述加速服務(wù)器為每個代理通信設(shè)備分配互聯(lián)網(wǎng)協(xié)議地址列表。
4.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述加速服務(wù)器中存儲有在線通信設(shè)備列表,所述在線通信設(shè)備列表包括客戶端通信設(shè)備、代理通信設(shè)備和對等通信設(shè)備。
5.如權(quán)利要求I所述的網(wǎng)絡(luò),其中每個客戶端通信設(shè)備、代理通信設(shè)備和對等通信設(shè)備維護所述客戶端通信設(shè)備、代理通信設(shè)備和對等通信設(shè)備分別知道的數(shù)據(jù)請求和數(shù)據(jù)響應(yīng)以及相關(guān)聯(lián)的數(shù)據(jù)存儲在哪個通信設(shè)備的列表。
6.權(quán)利要求I所述的網(wǎng)絡(luò),其中來自所述客戶端通信設(shè)備的所述數(shù)據(jù)請求是HTTP請求,并且其中所述服務(wù)器是Web服務(wù)器。
7.如權(quán)利要求6所述的網(wǎng)絡(luò),其中每個客戶端通信設(shè)備中包含存儲所述客戶端通信設(shè)備知道的統(tǒng)一資源定位器(URL)列表的存儲設(shè)備,每個代理通信設(shè)備中包含存儲所述代理通信設(shè)備知道的URL列表的存儲設(shè)備,并且其中每個對等通信設(shè)備中包含存儲所述對等通信設(shè)備知道的URL列表的存儲設(shè)備。
8.如權(quán)利要求7所述的網(wǎng)絡(luò),其中在存儲URL的所述存儲設(shè)備內(nèi),伴隨每個URL,所述存儲設(shè)備中還存儲有由以下各項構(gòu)成的組中的至少一項由所述數(shù)據(jù)服務(wù)器針對該URL返回的HTTP頭部、包含該URL的內(nèi)容的區(qū)塊列表以及所述區(qū)塊的內(nèi)容,其中這些區(qū)塊是組合在一起形成所述URL的全部內(nèi)容的數(shù)據(jù)段。
9.如權(quán)利要求I所述的網(wǎng)絡(luò),其中每個客戶端通信設(shè)備都包含存儲設(shè)備,其中所述存儲設(shè)備中存儲有由以下各項構(gòu)成的組中的至少一項包含與所述數(shù)據(jù)請求相關(guān)聯(lián)的內(nèi)容的區(qū)塊列表以及所述區(qū)塊的內(nèi)容,其中這些區(qū)塊是組合在一起形成與所述數(shù)據(jù)請求相關(guān)聯(lián)的全部內(nèi)容的數(shù)據(jù)段,其中所述區(qū)塊的大小相同。
10.如權(quán)利要求7所述的網(wǎng)絡(luò),其中在存儲URL的所述存儲設(shè)備內(nèi),伴隨每個URL,所述存儲設(shè)備中還存儲有包含該URL的內(nèi)容的區(qū)塊列表,其中這些區(qū)塊是組合在一起形成該URL的全部內(nèi)容的數(shù)據(jù)段,并且伴隨每個區(qū)塊,所述存儲設(shè)備中還存儲有該區(qū)塊自身的數(shù)據(jù)、該區(qū)塊的校驗和以及最可能具有針對該區(qū)塊的數(shù)據(jù)的對等設(shè)備列表。
11.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述網(wǎng)絡(luò)包含多個對等通信設(shè)備,其中所述至少一個代理通信設(shè)備進一步跟蹤哪些對等通信設(shè)備中存儲有所請求的數(shù)據(jù)的至少一部分。
12.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述至少一個加速服務(wù)器準備可能適合處理所述數(shù)據(jù)請求的代理通信設(shè)備的列表。
13.如權(quán)利要求12所述的網(wǎng)絡(luò),其中可能適合的所述代理通信設(shè)備的列表包括具有在數(shù)值上接近于所述數(shù)據(jù)服務(wù)器IP地址的IP地址的代理通信設(shè)備。
14.如權(quán)利要求12所述的網(wǎng)絡(luò),其中所述客戶端通信設(shè)備選擇代理通信設(shè)備,向選中的代理通信設(shè)備通知該選中的代理通信設(shè)備正在被用于所述數(shù)據(jù)請求,并向所有未選中的代理通信設(shè)備通知所述未選中的代理通信設(shè)備未被用于所述數(shù)據(jù)請求。
15.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述代理跟蹤對等設(shè)備以及存儲在所述對等設(shè)備 內(nèi)的數(shù)據(jù)中的一部分數(shù)據(jù),并且其中如果存在滿足所述原始數(shù)據(jù)請求所需的一部分數(shù)據(jù),但所述代理還不知道哪個對等設(shè)備中存儲有該部分數(shù)據(jù),則所述代理自身向所述服務(wù)器查詢所述數(shù)據(jù)的缺失部分,并將所述數(shù)據(jù)的所述缺失部分發(fā)送到所述請求客戶端通信設(shè)備。
16.如權(quán)利要求I所述的網(wǎng)絡(luò),其中所述代理跟蹤對等設(shè)備以及存儲在所述對等設(shè)備內(nèi)的數(shù)據(jù)中的一部分數(shù)據(jù),并且其中如果所述至少一個代理知道特定的對等設(shè)備中存儲有滿足所述原始數(shù)據(jù)請求所需的一部分數(shù)據(jù),則所述代理提供所述特定的對等設(shè)備作為針對滿足所述原始數(shù)據(jù)請求所需的所述部分數(shù)據(jù)而使用的對等設(shè)備。
17.—種網(wǎng)絡(luò)內(nèi)的通信設(shè)備,包括 存儲器,以及 處理器,被所述存儲器配置為執(zhí)行以下步驟 發(fā)起數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù); 分配給數(shù)據(jù)服務(wù)器,所述數(shù)據(jù)服務(wù)器被稱為所分配的數(shù)據(jù)服務(wù)器; 從所述網(wǎng)絡(luò)內(nèi)的獨立設(shè)備接收數(shù)據(jù)請求,并跟蹤所述網(wǎng)絡(luò)內(nèi)的哪些客戶端通信設(shè)備曾從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng);以及 存儲響應(yīng)于所發(fā)起的數(shù)據(jù)請求而接收到的數(shù)據(jù)中的部分數(shù)據(jù),其中所述部分數(shù)據(jù)可以應(yīng)通信設(shè)備的請求而被發(fā)送到所述通信設(shè)備。
18.如權(quán)利要求17所述的通信設(shè)備,其中所述通信設(shè)備進一步包括存儲所述通信設(shè)備知道的統(tǒng)一資源定位器(URL)的列表的存儲設(shè)備。
19.如權(quán)利要求18所述的通信設(shè)備,其中在存儲URL的所述存儲設(shè)備內(nèi),伴隨每個URL,所述存儲設(shè)備中還存儲有由以下各項構(gòu)成的組中的至少一項由所述數(shù)據(jù)服務(wù)器針對該URL返回的HTTP頭部、包含該URL的內(nèi)容的區(qū)塊列表以及所述區(qū)塊的內(nèi)容,其中這些區(qū)塊是組合在一起形成所述URL的全部內(nèi)容的數(shù)據(jù)段。
20.如權(quán)利要求17所述的通信設(shè)備,其中所述通信設(shè)備包含存儲設(shè)備,其中所述存儲設(shè)備中存儲有由以下各項構(gòu)成的組中的至少一項包含與所述數(shù)據(jù)請求相關(guān)聯(lián)的內(nèi)容的區(qū)塊列表,以及所述區(qū)塊的內(nèi)容,其中這些區(qū)塊是組合在一起形成與所述數(shù)據(jù)請求相關(guān)聯(lián)的全部內(nèi)容的數(shù)據(jù)段,其中所述區(qū)塊的大小相同。
21.如權(quán)利要求18所述的通信設(shè)備,其中在存儲URL的所述存儲設(shè)備內(nèi),伴隨每個URL,所述存儲設(shè)備中還存儲有包含該URL的內(nèi)容的區(qū)塊列表,其中這些區(qū)塊是組合在一起形成該URL的全部內(nèi)容的數(shù)據(jù)段,并且伴隨每個區(qū)塊,所述存儲設(shè)備中還存儲有該區(qū)塊自身的數(shù)據(jù)、該區(qū)塊的校驗和以及最可能具有針對該區(qū)塊的數(shù)據(jù)的其他通信設(shè)備列表。
22.如權(quán)利要求17所述的通信設(shè)備,其中所述數(shù)據(jù)請求是HTTP請求,并且其中所述數(shù)據(jù)服務(wù)器是Web服務(wù)器。
23.如權(quán)利要求17所述的通信設(shè)備,其中所述處理器被所述存儲器進一步配置為執(zhí)行以下步驟跟蹤哪些其他通信設(shè)備中存儲有所請求的數(shù)據(jù)的至少一部分。
24.一種用于加速數(shù)據(jù)通信并使數(shù)據(jù)通信更高效的網(wǎng)絡(luò),包括 至少一個客戶端通信設(shè)備,用于發(fā)起原始數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù); 至少一個代理通信設(shè)備,其被分配給所述數(shù)據(jù)服務(wù)器,用于從所述客戶端通信設(shè)備接收所述數(shù)據(jù)請求,其中所述代理跟蹤所述網(wǎng)絡(luò)中已有哪些客戶端通信設(shè)備從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng)或所述響應(yīng)的部分;以及 至少一個加速服務(wù)器,用于決定哪個代理通信設(shè)備應(yīng)被分配給哪個數(shù)據(jù)服務(wù)器,并將該信息提供給所述至少一個客戶端通信設(shè)備。
25.一種用于加速數(shù)據(jù)通信并使數(shù)據(jù)通信更高效的網(wǎng)絡(luò),包括 至少一個客戶端通信設(shè)備,用于發(fā)起原始數(shù)據(jù)請求,以從數(shù)據(jù)服務(wù)器獲取數(shù)據(jù); 至少一個代理通信設(shè)備,其被分配給所述數(shù)據(jù)服務(wù)器,用于從所述客戶端通信設(shè)備接收所述數(shù)據(jù)請求,其中所述代理跟蹤所述網(wǎng)絡(luò)已中有哪些客戶端通信設(shè)備從所分配的數(shù)據(jù)服務(wù)器接收到對數(shù)據(jù)請求的響應(yīng)或所述響應(yīng)的部分;以及 至少一個對等通信設(shè)備,其中存儲有響應(yīng)于客戶端通信設(shè)備的先前數(shù)據(jù)請求而接收到的數(shù)據(jù)中的至少一部分數(shù)據(jù),其中所述先前數(shù)據(jù)請求針對的是與在所述發(fā)起數(shù)據(jù)請求期間所請求的數(shù)據(jù)相同的數(shù)據(jù),并且其中該部分數(shù)據(jù)可以應(yīng)所述客戶端通信設(shè)備的請求從所述對等通信設(shè)備發(fā)送到所述至少一個客戶端通信設(shè)備。
26.—種在系統(tǒng)內(nèi)使用的方法,用于通過具有代理緩存存儲器的代理通信設(shè)備在具有客戶端緩存存儲器的請求客戶端通信設(shè)備與數(shù)據(jù)服務(wù)器之間發(fā)送消息,并利用在所述系統(tǒng)中維護客戶端通信設(shè)備列表的加速服務(wù)器,所述方法包括以下步驟 所述請求客戶端通信設(shè)備向所述加速服務(wù)器發(fā)送所述數(shù)據(jù)服務(wù)器的標識符; 所述加速服務(wù)器將一個或多個客戶端通信設(shè)備與所述數(shù)據(jù)服務(wù)器相關(guān)聯(lián),并向所述請求客戶端通信設(shè)備提供所述一個或多個客戶端通信設(shè)備的列表; 所述請求客戶端通信設(shè)備從所提供的客戶端通信設(shè)備中選擇一個客戶端通信設(shè)備,以用作與所述數(shù)據(jù)服務(wù)器進行通信的所述代理通信設(shè)備,并向所述代理通信設(shè)備發(fā)送打算發(fā)往所述數(shù)據(jù)服務(wù)器的消息; 所述代理通信設(shè)備確定所述客戶端通信設(shè)備中的一個或多個客戶端通信設(shè)備先前是否從所述數(shù)據(jù)服務(wù)器接收到對所接收的消息的響應(yīng);并且 如果存在先前從所述數(shù)據(jù)服務(wù)器接收到對所接收的消息的響應(yīng)的一個或多個客戶端通信設(shè)備,則執(zhí)行以下步驟 所述代理通信設(shè)備向所述請求客戶端通信設(shè)備發(fā)送先前接收到所述響應(yīng)的一個或多個客戶端通信設(shè)備的列表,其中所述先前接收到所述響應(yīng)的一個或多個客戶端通信設(shè)備被稱為對等通信設(shè)備; 所述請求客戶端通信設(shè)備從所述列表中的所述一個或多個對等通信設(shè)備分一個或多個部分地檢索所請求的響應(yīng); 所述請求客戶端通信設(shè)備將所述請求和所述響應(yīng)存儲在所述客戶端緩存存儲器中;以及 所述代理通信設(shè)備將所述請求客戶端通信設(shè)備的標識符連同所述請求和所述響應(yīng)存儲在所述代理緩存存儲器中。
27.如權(quán)利要求26所述的方法,其中在從所述請求客戶端通信設(shè)備接收到打算發(fā)往所述數(shù)據(jù)服務(wù)器的消息時,所述代理通信設(shè)備檢查所述代理通信設(shè)備的所述代理緩存存儲器中過去是否接收到對所述客戶端通信設(shè)備向所述數(shù)據(jù)服務(wù)器發(fā)送的同一消息的響應(yīng),如果所述代理通信設(shè)備不知道任何客戶端通信設(shè)備曾經(jīng)接收到對該消息的響應(yīng),則執(zhí)行以下步驟 所述代理通信設(shè)備向所述數(shù)據(jù)服務(wù)器發(fā)送所述請求客戶端通信設(shè)備消息; 所述數(shù)據(jù)服務(wù)器向所述代理通信設(shè)備發(fā)回所述響應(yīng)消息; 所述代理通信設(shè)備將所述請求客戶端通信設(shè)備消息和所述數(shù)據(jù)服務(wù)器響應(yīng)消息存儲在所述代理緩存存儲器中; 所述代理通信設(shè)備向所述請求客戶端通信設(shè)備發(fā)回所述數(shù)據(jù)服務(wù)器響應(yīng);而且 所述請求客戶端將所述通信設(shè)備將所述請求和所述響應(yīng)存儲在所述客戶端緩存存儲器中。
28.如權(quán)利要求26所述的方法,其中所述代理通信設(shè)備將自己從所述數(shù)據(jù)服務(wù)器接收到的回復分成一個或多個較小的數(shù)據(jù)區(qū)塊,并將這些區(qū)塊存儲在所述代理緩存存儲器中,其中所述數(shù)據(jù)被存儲為構(gòu)成所述數(shù)據(jù)的一系列區(qū)塊,對于每個區(qū)塊,該區(qū)塊的校驗和連同該區(qū)塊以及已知在過去曾接收到該部分數(shù)據(jù)的網(wǎng)元的列表被存儲。
29.如權(quán)利要求26所述的方法,其中所述一個或多個對等通信設(shè)備的列表只包括在從所述對等通信設(shè)備接收信息的速度方面對所述請求客戶端通信設(shè)備最有利的對等通信設(shè)備。
30.如權(quán)利要求29所述的方法,其中被所述代理通信設(shè)備確定為最有利的客戶端通信設(shè)備是與所述請求客戶端通信設(shè)備最接近的客戶端通信設(shè)備。
31.如權(quán)利要求29所述的方法,其中被所述代理通信設(shè)備確定為最有利的客戶端通信設(shè)備是與所述請求網(wǎng)元之間的連接最佳的客戶端通信設(shè)備。
32.如權(quán)利要求26所述的方法,其中所述數(shù)據(jù)服務(wù)器通過執(zhí)行以下步驟來在所述代理通信設(shè)備和所述數(shù)據(jù)服務(wù)器之間進行關(guān)聯(lián) 所述加速服務(wù)器跟蹤所有在線的客戶端通信設(shè)備;以及 當從所述請求客戶端通信設(shè)備接收到所述數(shù)據(jù)服務(wù)器的所述標識符時,所述加速服務(wù)器從所有在線的客戶端通信設(shè)備中選擇對于用作與所述數(shù)據(jù)服務(wù)器通信的一個或多個所述代理通信設(shè)備最佳的一個或多個客戶端通信設(shè)備。
33.如權(quán)利要求32所述的方法,其中被所述加速服務(wù)器選為最佳代理的客戶端通信設(shè)備是所有在線的客戶端通信設(shè)備中互聯(lián)網(wǎng)協(xié)議(IP)地址最接近于所述數(shù)據(jù)服務(wù)器的IP地址的客戶端通信設(shè)備。
34.如權(quán)利要求32所述的方法,其中當所述加速設(shè)備感應(yīng)到這些代理通信設(shè)備上的負荷增大時,所述加速服務(wù)器向所述客戶端通信設(shè)備返回的代理通信設(shè)備的數(shù)量增大。
35.如權(quán)利要求34所述的方法,其中所述加速服務(wù)器通過執(zhí)行以下步驟來感應(yīng)各個潛在代理通信設(shè)備上的負荷 當所述客戶端通信設(shè)備接收到所述代理通信設(shè)備列表時,所述客戶端通信設(shè)備將所述請求發(fā)送到所有代理通信設(shè)備;以及 如果所述客戶端通信設(shè)備未從一個或多個代理通信設(shè)備得到響應(yīng),則所述客戶端通信設(shè)備向所述加速服務(wù)器提供該信息。
36.如權(quán)利要求34所述的方法,其中所述加速服務(wù)器通過對每個潛在代理通信設(shè)備執(zhí)行定期負荷檢查來感應(yīng)所述各個潛在代理通信設(shè)備上的負荷。
37.如權(quán)利要求26所述的方法,其中所述數(shù)據(jù)服務(wù)器通過執(zhí)行以下步驟來在所述代理通信設(shè)備和所述數(shù)據(jù)服務(wù)器之間進行關(guān)聯(lián) 所述加速服務(wù)器跟蹤所有在線的客戶端通信設(shè)備;以及 所述加速服務(wù)器選擇可用作與所述數(shù)據(jù)服務(wù)器進行通信的代理的、按所述請求客戶端的地理位置在地理上被排列優(yōu)先級的一個或多個客戶端通信設(shè)備,使得對于從中可接收到來自所述請求客戶端通信設(shè)備的請求的特定地理位置而言,所述客戶端通信設(shè)備的列表中的每個客戶端通信設(shè)備都具有較高的優(yōu)先級。
38.如權(quán)利要求26所述的方法,其中所述請求客戶端通信設(shè)備在從所述加速服務(wù)器接收到的所述客戶端通信設(shè)備列表中,通過測試哪個客戶端通信設(shè)備最快速地響應(yīng)來自所述請求客戶端通信設(shè)備的查詢,來選擇最合適的代理通信設(shè)備。
39.如權(quán)利要求27所述的方法,其中當所述代理通信設(shè)備向所述數(shù)據(jù)服務(wù)器作出請求時,所述代理通信設(shè)備會向所述數(shù)據(jù)服務(wù)器發(fā)送所述代理通信設(shè)備針對來自所述請求客戶端通信設(shè)備的該請求從所述請求客戶端通信設(shè)備接收的所有參數(shù)。
40.如權(quán)利要求26所述的方法,其中被所述代理通信設(shè)備用來測試是否存在接收到對同一條消息的響應(yīng)的其他客戶端通信設(shè)備的方法通過以下步驟來執(zhí)行 當從所述數(shù)據(jù)服務(wù)器接收到響應(yīng)并緩存所述響應(yīng)時,所述代理通信設(shè)備接收并緩存有效性變量,所述有效性變量指示針對同一類型的請求,所述響應(yīng)在哪些情況下有效;以及 所述代理通信設(shè)備通過查找所述請求客戶端通信設(shè)備的消息來檢查所述代理緩存存儲器, 其中,如果該消息存在并且響應(yīng)被緩存,或者與已接收到所述響應(yīng)的客戶端通信設(shè)備相關(guān)的信息被緩存,則所述代理通信設(shè)備在所述代理緩存存儲器中檢查所述請求的條目的有效性變量, 其中,如果該條目不存在或者所述數(shù)據(jù)不再有效,則所述代理通信設(shè)備認為自己沒有存儲針對該請求的響應(yīng)。
41.如權(quán)利要求26所述的方法,其中當所述請求客戶端通信設(shè)備向所述代理通信設(shè)備提供具有附加參數(shù)的請求時,所述代理通信設(shè)備在所述代理緩存存儲器內(nèi)將所述附加參數(shù)存儲在所述數(shù)據(jù)請求的條目中,并且在將來的查找操作中查找所述數(shù)據(jù)時,將該信息與所述請求一起用作關(guān)鍵字。
42.如權(quán)利要求26所述的方法,其中所述客戶端通信設(shè)備、代理通信設(shè)備和對等通信設(shè)備都被稱為網(wǎng)元,并且其中每個網(wǎng)元中包含客戶端模塊、對等模塊和代理模塊,從而允許每個網(wǎng)元用作客戶端通信設(shè)備、對等通信設(shè)備和代理通信設(shè)備中的任一種設(shè)備。
43.如權(quán)利要求40所述的方法,其中來自所述請求客戶端通信設(shè)備的所述請求是對URL的HTTP請求,所述數(shù)據(jù)服務(wù)器是Web服務(wù)器,并且所述代理通信設(shè)備向所述Web服務(wù)器發(fā)送的所述附加數(shù)據(jù)是所述請求客戶端通信設(shè)備的URL和Cookie參數(shù),所述有效性變量是HTTP到期時間。
44.如權(quán)利要求26所述的方法,其中請求選自由UDP、DNS、TCP、FTP、POP3、SMTP和SQL組成的組。
45.一種在系統(tǒng)內(nèi)使用的方法,用于通過具有代理緩存存儲器的代理通信設(shè)備在具有客戶端緩存存儲器的請求客戶端通信設(shè)備和數(shù)據(jù)服務(wù)器之間發(fā)送消息,并利用在所述系統(tǒng)中維護客戶端通信設(shè)備列表的加速服務(wù)器,所述方法包括以下步驟 所述請求客戶端通信設(shè)備向所述加速服務(wù)器發(fā)送所述數(shù)據(jù)服務(wù)器的標識符; 所述加速服務(wù)器將一個或多個客戶端通信設(shè)備與所述數(shù)據(jù)服務(wù)器相關(guān)聯(lián),并向所述請求客戶端通信設(shè)備提供一個或多個客戶端通信設(shè)備的列表; 所述請求客戶端通信設(shè)備從所提供的客戶端通信設(shè)備中選擇一個客戶端通信設(shè)備,以用作與所述數(shù)據(jù)服務(wù)器進行通信的代理通信設(shè)備,并向所述代理通信設(shè)備發(fā)送打算發(fā)往所述數(shù)據(jù)服務(wù)器的消息; 所述代理通信設(shè)備確定所述客戶端通信設(shè)備中的一個或多個客戶端通信設(shè)備先前是否從所述數(shù)據(jù)服務(wù)器接收到對所接收的消息的響應(yīng), 其中所述代理通信設(shè)備將自己從所述數(shù)據(jù)服務(wù)器接收到的回復分成一個或多個較小的數(shù)據(jù)區(qū)塊,并將這些區(qū)塊存儲在所述代理緩存存儲器中,其中所述數(shù)據(jù)被存儲為構(gòu)成所述數(shù)據(jù)的一系列區(qū)塊,并且對于每個區(qū)塊,該區(qū)塊的校驗和連同該區(qū)塊以及已知在過去曾接收到該部分數(shù)據(jù)的網(wǎng)元的列表被存儲;以及 如果存在先前從所述數(shù)據(jù)服務(wù)器接收到對所接收的消息的響應(yīng)的一個或多個客戶端通信設(shè)備,則執(zhí)行以下步驟 所述代理通信設(shè)備向所述請求客戶端通信設(shè)備發(fā)送所述區(qū)塊校驗和的列表,該列表包含針對每個此類區(qū)塊的所述數(shù)據(jù)服務(wù)器響應(yīng),所述代理通信設(shè)備發(fā)送過去從所述代理通信設(shè)備接收到此類校驗和的客戶端通信設(shè)備的標識符,其中過去從所述代理通信設(shè)備接收到此類校驗和的這些客戶端通信設(shè)備被稱為對等設(shè)備; 所述請求客戶端通信設(shè)備通過向從所述代理通信設(shè)備接收到的列表中的一個或多個對等設(shè)備請求所述列表中的區(qū)塊,來檢索所述響應(yīng)或所述響應(yīng)的部分; 所述請求客戶端通信設(shè)備將所述請求和所述響應(yīng)存儲在所述客戶端緩存存儲器中;以及 所述代理通信設(shè)備將所述請求客戶端通信設(shè)備的標識符與所述請求客戶端通信設(shè)備接收到的區(qū)塊存儲在一起。
全文摘要
一種用于提高用戶的網(wǎng)絡(luò)通信速度,同時降低內(nèi)容所有者和ISP的網(wǎng)絡(luò)擁塞的系統(tǒng)。本系統(tǒng)使用包括加速服務(wù)器、客戶端、代理和對等設(shè)備在內(nèi)的網(wǎng)元,其中,由應(yīng)用程序生成的通信請求將被同一臺機器上的客戶端攔截。服務(wù)器的IP地址被發(fā)送到加速服務(wù)器,加速服務(wù)器提供供此IP地址使用的代理列表。所述代理中的一個或多個代理利用先前曾見過作為該請求的響應(yīng)的內(nèi)容的部分或全部的對等設(shè)備列表進行響應(yīng)。客戶端隨后從這些對等設(shè)備將數(shù)據(jù)分部分且并行下載,從而提高Web傳輸速度。
文檔編號G08C15/00GK102667509SQ201080052448
公開日2012年9月12日 申請日期2010年10月8日 優(yōu)先權(quán)日2009年10月8日
發(fā)明者奧弗·威爾蘭斯基, 德里·B·史瑞曼 申請人:霍樂網(wǎng)絡(luò)有限公司