專利名稱:用于提供客戶端加速技術(shù)的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及數(shù)據(jù)通信網(wǎng)絡(luò)。本發(fā)明尤其涉及用于自動(dòng)部署、 安裝和執(zhí)行客戶端加速程序的系統(tǒng)和方法。
背景技術(shù):
現(xiàn)在,越來越要求企業(yè)對(duì)位于企業(yè)網(wǎng)范圍外部的服務(wù)提供商、合 作伙伴、雇員提供應(yīng)用程序的訪問。然而,廣域網(wǎng)(WAN)鏈接擁塞、 服務(wù)器負(fù)荷繁重和遠(yuǎn)程連接帶寬低可能阻礙訪問應(yīng)用程序并可能降低 遠(yuǎn)程訪問應(yīng)用程序的性能。這些因素本質(zhì)上影響并降低了雇員的勞動(dòng) 生產(chǎn)率和對(duì)企業(yè)應(yīng)用軟件和設(shè)施進(jìn)行投資的回報(bào)。此外,這些因素還可能使用戶感到沮喪,并使用戶疏遠(yuǎn)使用遠(yuǎn)程訪問應(yīng)用程序。為了從 這些應(yīng)用程序的投資回報(bào)中得到滿意的投資回報(bào),企業(yè)需要確保不論 在任何位置所有用戶都可以快速有效地使用應(yīng)用程序。一種用于提高遠(yuǎn)程訪問應(yīng)用程序性能的方法是,在企業(yè)網(wǎng)中安裝 執(zhí)行特定功能以加速應(yīng)用程序性能的器具,所述器具通常作為網(wǎng)關(guān)安 裝在公共網(wǎng)絡(luò)上的WAN和專用數(shù)據(jù)網(wǎng)絡(luò)的企業(yè)服務(wù)器之間,并對(duì)通過 兩者之間的數(shù)據(jù)進(jìn)行處理。當(dāng)這樣的器具用于執(zhí)行加速功能時(shí),通常 將其稱作"加速器"。因?yàn)榧铀倨魇褂迷谄髽I(yè)網(wǎng)中,因此它對(duì)于降低企業(yè)網(wǎng)自身的延遲以及降低企業(yè)服務(wù)器上的負(fù)荷更加有效。然而,對(duì)于 處理因企業(yè)網(wǎng)外部出現(xiàn)的問題而引起的延遲,諸如WAN鏈接擁塞、遠(yuǎn)
程連接帶寬低等,就不那么有效。在另一種方法中, 一些公司為WAN的客戶端或者客戶端LAN提 供了應(yīng)用程序加速解決方案。這些方案通常分為兩種主要類型(1) 作為網(wǎng)關(guān)安裝在WAN和客戶機(jī)之間用于執(zhí)行應(yīng)用程序加速功能的網(wǎng) 絡(luò)器具;和(2)駐留在客戶端LAN的應(yīng)用程序加速服務(wù)器。然而, 安裝和維護(hù)位于客戶端LAN的加速服務(wù)器或者器具需耗費(fèi)時(shí)間、費(fèi)用 和資源。在許多情況下,可能從許多不同的遠(yuǎn)程位置訪問企業(yè)網(wǎng),諸 如從許多不同的分公司辦公室進(jìn)行訪問。為了為所有的遠(yuǎn)程客戶機(jī)部 署客戶端加速,企業(yè)將不得不在每個(gè)遠(yuǎn)程位置安裝和維護(hù)基于器具或 者基于服務(wù)器的加速器。另外,如果從遠(yuǎn)程位置訪問應(yīng)用程序的需要 是零星的,那么在所述位置安裝和維護(hù)客戶端LAN上的這種加速器所耗費(fèi)的時(shí)間、費(fèi)用和資源可能超過其收益。另外,客戶端LAN上基于服務(wù)器的加速器或者器具的方案可能成 為一種限制,這是因?yàn)樵诳蛻舳薒AN基于服務(wù)器的加速器或者器具將 客戶端LAN的加速限制在具有基于服務(wù)器的加速器或者基于器具的加 速器的位置。隨著用戶能夠在與普遍性的移動(dòng)計(jì)算裝置耦接的不同遠(yuǎn) 程位置處訪問多種計(jì)算設(shè)備以及無線網(wǎng)絡(luò)訪問的利用率增加,用戶可 以在任何時(shí)間點(diǎn)從寬范圍的遠(yuǎn)程接入點(diǎn)來訪問網(wǎng)絡(luò)。例如,當(dāng)用戶在 接入點(diǎn)之間漫游期間,用戶能從辦公室的臺(tái)式計(jì)算機(jī)、智能手機(jī)或個(gè) 人數(shù)字助理、膝上計(jì)算機(jī)、家庭辦公計(jì)算機(jī)、或者在遠(yuǎn)程辦公位置處 的計(jì)算機(jī)(諸如在用戶或者客戶辦公室處)來訪問企業(yè)網(wǎng)。因此,用 戶可以期望通過企業(yè)網(wǎng)在任何遠(yuǎn)程位置、在任何用戶可以使用的多臺(tái) 計(jì)算機(jī)中的任何一 臺(tái)來訪問遠(yuǎn)程應(yīng)用程序。遠(yuǎn)程接入點(diǎn)和/或用戶可以 使用的多臺(tái)計(jì)算設(shè)備中每個(gè)均可以具有至企業(yè)網(wǎng)的不同客戶端LAN連接。企業(yè)可能沒有時(shí)間、費(fèi)用和資源在所有可能的遠(yuǎn)程接入點(diǎn)或?yàn)樗?有可能的計(jì)算設(shè)備都使用客戶端LAN解決方案,或者可能沒有時(shí)間、 費(fèi)用和資源隨著用戶的計(jì)算設(shè)備和遠(yuǎn)程接入點(diǎn)的數(shù)目增加而不斷地安 裝和維護(hù)這種解決方案。另外,用戶可從公共網(wǎng)絡(luò)、專用網(wǎng)絡(luò)或者從 企業(yè)不可訪問的或在企業(yè)的控制和管理下的客戶端LAN訪問企業(yè)網(wǎng)。 因此,企業(yè)可能不能在所有這些接入點(diǎn)來使用客戶端LAN加速器。 因而,所期望的是提供客戶端加速能力的系統(tǒng)和方法,以提高遠(yuǎn) 程訪問應(yīng)用程序的性能。所期望的系統(tǒng)和方法不應(yīng)要求在客戶機(jī)和WAN之間安裝和維護(hù)用于運(yùn)行加速軟件的服務(wù)器或網(wǎng)絡(luò)器具。如果加 速器功能可以在客戶端和WAN的企業(yè)網(wǎng)側(cè)同時(shí)實(shí)施,則還可以期望進(jìn) 一步提高遠(yuǎn)程訪問應(yīng)用程序的性能。發(fā)明內(nèi)容本發(fā)明的目的在于一種用于在客戶機(jī)上動(dòng)態(tài)部署并執(zhí)行加速功能 的系統(tǒng)和方法,以提高遠(yuǎn)程訪問應(yīng)用程序的性能以及傳送。通過諸如 遠(yuǎn)程訪問應(yīng)用程序的加速程序來提供客戶端加速功能,所述加速程序用于在客戶端和服務(wù)器之間進(jìn)行通信時(shí)執(zhí)行下列加速技術(shù)中的一種或 更多1)多協(xié)議壓縮2)傳輸控制協(xié)議池(pooling) , 3)傳輸控制協(xié) 議復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)高速緩存。在一個(gè)方面中,行本發(fā)明的加速程序。器具可以截獲客戶端要求建立與服務(wù)器的通信 會(huì)話或者連接的請(qǐng)求,并將加速程序傳送給所述客戶機(jī)。在一些情況 下,器具確定正在通過客戶機(jī)訪問的應(yīng)用程序是否可以被加速,并僅 當(dāng)應(yīng)用程序可以被加速時(shí)提供所述加速程序。 一旦接收到加速程序, 客戶機(jī)自動(dòng)執(zhí)行加速程序的靜默安裝,并在完成安裝時(shí)執(zhí)行加速程 序。在一個(gè)方面中,本發(fā)明涉及用于為客戶機(jī)動(dòng)態(tài)提供加速程序以進(jìn) 行自動(dòng)安裝和執(zhí)行的方法。所述加速程序加速客戶機(jī)對(duì)于遠(yuǎn)程訪問應(yīng) 用程序的訪問。該方法包括以下步驟通過器具接收客戶機(jī)要求建立 與服務(wù)器的通信會(huì)話的請(qǐng)求,通過所述器具將包括網(wǎng)絡(luò)驅(qū)動(dòng)器的加速 程序傳送至客戶機(jī),以在客戶機(jī)上對(duì)于經(jīng)過服務(wù)器所提供的應(yīng)用程序 的客戶機(jī)訪問執(zhí)行加速。當(dāng)接收到加速程序時(shí),客戶機(jī)則自動(dòng)執(zhí)行網(wǎng) 絡(luò)驅(qū)動(dòng)器至客戶機(jī)儲(chǔ)存器(storage)的靜默安裝。當(dāng)安裝了網(wǎng)絡(luò)驅(qū)動(dòng) 器,客戶機(jī)就在分配給客戶機(jī)網(wǎng)絡(luò)棧的存儲(chǔ)器(memory)中自動(dòng)執(zhí)行 網(wǎng)絡(luò)驅(qū)動(dòng)器。在本發(fā)明的一個(gè)實(shí)施例中,所述方法包括當(dāng)建立了與服務(wù)器之 間的通信會(huì)話時(shí),則通過所述器具將加速程序傳送至客戶機(jī)。在另一 實(shí)施例中,所述方法包括通過加速程序建立與服務(wù)器的通信會(huì)話。在 一些實(shí)施例中,加速程序安裝在客戶機(jī)上,而無需通過客戶機(jī)的用戶 重啟客戶機(jī)或者與其進(jìn)行交互。在另外的實(shí)施例中,在客戶機(jī)上對(duì)客 戶機(jī)用戶、客戶機(jī)的應(yīng)用程序或服務(wù)器透明地執(zhí)行加速程序的安裝和執(zhí)行。在一些實(shí)施例中,本發(fā)明的網(wǎng)絡(luò)驅(qū)動(dòng)器包括與網(wǎng)絡(luò)棧的傳輸層 對(duì)接的過濾設(shè)備驅(qū)動(dòng)器。在一個(gè)實(shí)施例中,加速程序?qū)W(wǎng)絡(luò)棧的網(wǎng)絡(luò) 層、會(huì)話層或者應(yīng)用層透明地提供了對(duì)于服務(wù)器上應(yīng)用程序的客戶端 加速訪問。在另一實(shí)施例中,本發(fā)明的方法包括通過所述器具將第一程序傳 送至客戶機(jī)。所述第一程序包括加速程序。當(dāng)接收到第一程序時(shí),客 戶機(jī)自動(dòng)執(zhí)行第一程序,從而安裝并執(zhí)行加速程序。在一些實(shí)施例中, 第 一程序包括提供給瀏覽器并在瀏覽器上執(zhí)行的可執(zhí)行指令。在本發(fā)明的一些實(shí)施例中,所述方法包括通過所述器具接收來自 客戶機(jī)的要求訪問服務(wù)器上的應(yīng)用程序的請(qǐng)求,并通過所述器具將消 息傳送至客戶機(jī),以通知加速程序?qū)蛻魴C(jī)和服務(wù)器之間的通信執(zhí)行 至少一種加速技術(shù)。在另一實(shí)施例中,所述器具確定應(yīng)用程序是否能 夠被加速,如果應(yīng)用程序能夠被加速則傳送消息至客戶機(jī)。在一些實(shí)施例中,所述加速程序在客戶機(jī)上執(zhí)行下列加速技術(shù)的其中之一1)壓縮,2)解壓縮,3)傳輸控制協(xié)議連接池,4)傳輸控 制協(xié)議連接復(fù)用,5)傳輸控制協(xié)議緩沖,和6)高速緩存。在另一實(shí)施 例中,所述加速程序執(zhí)行客戶機(jī)和服務(wù)器之間通信信息的加密或解 密。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)驅(qū)動(dòng)器建立與所述器具或者服務(wù)器的虛擬 專用網(wǎng)絡(luò)連接。所述器具可以包括高速緩存、網(wǎng)關(guān)、服務(wù)器、防火墻、 代理、路由器、交換機(jī)或者橋。在另一方面中,本發(fā)明涉及一種用于向客戶機(jī)自動(dòng)提供加速程序 的方法,用于加速客戶機(jī)對(duì)遠(yuǎn)程訪問應(yīng)用程序的訪問。所述方法包括 通過器具接收來自客戶機(jī)的要求通過服務(wù)器訪問應(yīng)用程序的請(qǐng)求,并 通過所述器具確定該應(yīng)用程序能夠被加速。所述方法進(jìn)一步包括通過 所述器具將加速程序傳送至客戶機(jī),以在客戶機(jī)上自動(dòng)安裝并執(zhí)行。 在一個(gè)實(shí)施例中,本發(fā)明的方法包括當(dāng)從所述器具接收到加速程序 時(shí),通過客戶機(jī)自動(dòng)執(zhí)行并安裝所述加速程序。在一些實(shí)施例中,客 戶機(jī)對(duì)客戶機(jī)上的應(yīng)用程序、客戶機(jī)上的用戶或者服務(wù)器透明地接 收、安裝和/或執(zhí)行加速程序。在另一實(shí)施例中,所述器具確定所述應(yīng)用程序不能被加速,并將 請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器。在一些實(shí)施例中,所述器具確定所述應(yīng)用程序能夠通過下列加速技術(shù)之一來加速1)壓縮,2)解壓縮,3)傳輸控 制協(xié)議連接池,4)傳輸控制協(xié)議連接復(fù)用,5)傳輸控制協(xié)議緩沖, 和6)高速緩存。所述器具可以傳送加速程序,所述加速程序被配置成 用于提供由所述器具確定為能夠?qū)?yīng)用程序加速的加速技術(shù)。加速程 序可以執(zhí)行或運(yùn)行這些加速技術(shù)的其中之一。在一些實(shí)施例中,加速 程序?yàn)樗銎骶呋蛘叻?wù)器提供了虛擬專用網(wǎng)絡(luò)。所述器具可以包括 高速緩存、網(wǎng)關(guān)、服務(wù)器、防火墻、代理、路由器、交換機(jī)或者橋。在一些方面中,本發(fā)明涉及一種用于動(dòng)態(tài)地向客戶機(jī)提供加速程 序的器具,所述加速程序用于加速客戶機(jī)對(duì)遠(yuǎn)程訪問應(yīng)用程序的訪 問。所述器具可以包括用于接收、確定和傳送的裝置,所述用于接收、 確定和傳送的裝置接收來自客戶機(jī)的要求通過服務(wù)器訪問應(yīng)用程序的 請(qǐng)求,確定應(yīng)用程序能夠被加速并將加速程序傳送給客戶機(jī)。加速程 序可以被配置成在客戶機(jī)上自動(dòng)安裝和運(yùn)行。在一些實(shí)施例中,所述器具還包括用于確定加速和轉(zhuǎn)發(fā)請(qǐng)求裝 置,用于通過該器具確定應(yīng)用程序不能被加速,并將所述請(qǐng)求轉(zhuǎn)發(fā)給 服務(wù)器。在另外一些實(shí)施例中,所述器具包括用于確定的裝置,所述 用于確定的裝置確定應(yīng)用程序能夠利用下列加速技術(shù)之一被加速1 ) 壓縮,2)解壓縮,3)傳輸控制協(xié)議連接池,4)傳輸控制協(xié)議連接復(fù) 用,5)傳輸控制協(xié)議緩沖,和6)高速緩存。在一個(gè)實(shí)施例中,所述 器具具有用于傳送加速程序的裝置,用于通過所述器具傳送加速程 序,所述加速程序配置成提供通過器具確定的能夠加速應(yīng)用程序的加 速技術(shù)。所述器具還可以使用加速程序來建立虛擬專用網(wǎng)絡(luò)。所述器 具可以包括高速緩存、網(wǎng)關(guān)、服務(wù)器、防火墻、代理、路由器、交換 機(jī)或者橋。在另一方面中,客戶端加速功能通過執(zhí)行傳輸層連接池技術(shù)的加 速程序來提供,以提高遠(yuǎn)程訪問應(yīng)用程序遞送和通信的性能。加速程 序建立從客戶機(jī)至服務(wù)器的傳輸層連接,所述傳輸層連接可以由客戶 機(jī)上的多個(gè)應(yīng)用程序使用,或者在客戶機(jī)的應(yīng)用程序之間共享。加速
程序保持傳輸層連接處于打開狀態(tài),以降低傳輸層連接請(qǐng)求的數(shù)目以 及為客戶機(jī)上運(yùn)行的一個(gè)應(yīng)用程序或多個(gè)應(yīng)用程序建立的與服務(wù)器的 傳輸層連接的數(shù)目。在一個(gè)方面中,本發(fā)明涉及一種加速訪問的方法,所述方法通過 在客戶機(jī)上使至服務(wù)器的一個(gè)或更多傳輸層連接入池來加速客戶機(jī)對(duì) 服務(wù)器的訪問。該方法包括通過客戶機(jī)上的加速程序截獲第一請(qǐng)求, 所述第一請(qǐng)求是第一應(yīng)用程序要求建立與服務(wù)器的第一傳輸層連接的 請(qǐng)求,然后通過加速程序建立加速程序和服務(wù)器之間的傳輸層連接。 該方法還包括通過加速程序截獲第二請(qǐng)求,所述第二請(qǐng)求是第二應(yīng)用 程序要求建立與服務(wù)器的第二傳輸層連接的請(qǐng)求,并通過加速程序使 用已建立的傳輸層連接為笫二應(yīng)用程序提供請(qǐng)求的傳輸層連接。在一個(gè)實(shí)施例中,本發(fā)明的方法包括當(dāng)來自客戶機(jī)請(qǐng)求要求建立 與服務(wù)器的一個(gè)連接或者會(huì)話時(shí),通過器具將加速程序傳送至客戶 機(jī)。當(dāng)接收到加速程序時(shí),客戶機(jī)可以自動(dòng)安裝并執(zhí)行加速程序。在 一些實(shí)施例中,加速程序包括對(duì)接至客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾設(shè) 備驅(qū)動(dòng)器。在其他的實(shí)施例中,所述方法還包括通過加速程序經(jīng)過已 建立的傳輸層連接對(duì)來自要求客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù) 用。在一些實(shí)施例中,所述方法包括通過加速程序在客戶機(jī)上執(zhí)行下列加速技術(shù)的其中之一1)多協(xié)議壓縮,2)傳輸控制協(xié)議復(fù)用,3) 傳輸控制協(xié)議緩沖,以及4)高速緩存。在另一實(shí)施例中,所述加速程 序執(zhí)行客戶機(jī)和服務(wù)器之間通信的加密或解密。在一個(gè)實(shí)施例中,該 方法包括當(dāng)接收到復(fù)位和結(jié)束命令時(shí),通過加速程序關(guān)閉第一傳輸層 連接。在另一實(shí)施例中,所述方法包括在等待活動(dòng)時(shí)期期間,通過加 速程序保持服務(wù)器和第一應(yīng)用程序或第二應(yīng)用程序之間的傳輸層連接 處于打開狀態(tài)。在另外的實(shí)施例中,加速程序在從客戶機(jī)至服務(wù)器的 通信信息中插入指令以保持傳輸層連接打開。在本發(fā)明的一個(gè)實(shí)施例中,該方法包括通過比較每個(gè)應(yīng)用程序傳 送至服務(wù)器的字節(jié)數(shù)和來自服務(wù)器的應(yīng)答的字節(jié)數(shù),通過加速程序來 確定傳輸層連接當(dāng)時(shí)是正由第一應(yīng)用程序或正由第二應(yīng)用程序使用。 在一些實(shí)施例中,加速程序確定傳輸層連接當(dāng)前正由第一應(yīng)用程序使
用,然后打開加速程序和服務(wù)器之間的第二傳輸層連接,以供第二應(yīng) 用程序使用。在一個(gè)實(shí)施例中,在加速程序和與服務(wù)器通信的器具之 間建立傳輸層連接。在一些實(shí)施例中,所述器具建立一個(gè)或更多傳輸 層連接池,以供加速程序使用。在另 一 實(shí)施例中,所述方法包括通過客戶機(jī)透明地對(duì)客戶機(jī)網(wǎng)絡(luò) 棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層執(zhí)行加速程序。在另外的實(shí)施例中, 所述方法包括通過客戶機(jī)透明地對(duì)第 一應(yīng)用程序、第二應(yīng)用程序或者 服務(wù)器其中之一執(zhí)行加速程序。在另一方面中,本發(fā)明涉及一種加速訪問的系統(tǒng),所述系統(tǒng)通過 在客戶機(jī)上使至服務(wù)器的一個(gè)或更多傳輸層連接入池來加速客戶機(jī)對(duì) 于一個(gè)或更多服務(wù)器的訪問。該系統(tǒng)包括用于截獲第 一請(qǐng)求和建立傳 輸層連接的裝置,用于通過客戶機(jī)上的加速程序截獲第一請(qǐng)求,所述 第一請(qǐng)求是第一應(yīng)用程序要求建立與服務(wù)器的第一傳輸層連接的請(qǐng) 求,并通過加速程序建立加速程序和服務(wù)器之間的傳輸層連接。該系 統(tǒng)還包括用于截獲第二請(qǐng)求和使用已建立傳輸層連接裝置,用于通過 加速程序截獲第二請(qǐng)求,所述第二請(qǐng)求是第二應(yīng)用程序要求建立與服 務(wù)器的第二傳輸層連接的請(qǐng)求,以及通過加速程序來使用已建立的傳輸層連接為第二應(yīng)用程序提供請(qǐng)求的傳輸層連接。在一個(gè)實(shí)施例中,本發(fā)明的系統(tǒng)包括用于通過客戶機(jī)來自動(dòng)安裝 和運(yùn)行加速程序的裝置。在一個(gè)實(shí)施例中,所述系統(tǒng)包括用于傳送加 速程序的器具,用于當(dāng)從客戶機(jī)接收到要求建立與服務(wù)器的一個(gè)連接 或者會(huì)話的請(qǐng)求時(shí),將加速程序傳送至客戶機(jī)。加速程序可以包括對(duì) 接至客戶機(jī)的網(wǎng)絡(luò)棧傳輸層的過濾設(shè)備驅(qū)動(dòng)器。在一些實(shí)施例中,該 系統(tǒng)包括用于復(fù)用的裝置,用于通過加速程序經(jīng)過第二傳輸層連接對(duì) 來自客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。在一些實(shí)施例中,所述系統(tǒng)包括在客戶機(jī)上執(zhí)行下列加速技術(shù)其中之一的加速程序1)多協(xié)議壓縮,2)傳輸控制協(xié)議復(fù)用,3)傳輸 控制協(xié)議緩沖,以及4)高速緩存。在另一實(shí)施例中,所述加速程序?qū)?客戶機(jī)和服務(wù)器之間的通信進(jìn)行加密或解密。在一個(gè)實(shí)施例中,該系 統(tǒng)包括用于關(guān)閉的裝置,用于在接收到復(fù)位和結(jié)束命令時(shí)通過加速程 序關(guān)閉第一傳輸層連接。在另一實(shí)施例中,加速程序在等待活動(dòng)時(shí)期
期間保持服務(wù)器和第一應(yīng)用程序或第二應(yīng)用程序之間的傳輸層連接處 于打開狀態(tài)。在系統(tǒng)的另外實(shí)施例中,加速程序在從客戶機(jī)至服務(wù)器 的通信信息中插入指令以保持傳輸層連接打開。在系統(tǒng)的一個(gè)實(shí)施例中,加速程序包括用于確定的裝置,所述用 于確定的裝置通過比較每個(gè)應(yīng)用程序傳送至服務(wù)器的字節(jié)數(shù)和來自服 務(wù)器的應(yīng)答的字節(jié)數(shù)來確定傳輸層連接當(dāng)時(shí)正由第一應(yīng)用程序或第二 應(yīng)用程序之一在使用。在另一實(shí)施例中,加速程序包括用于確定傳輸 層連接在使用和打開第二傳輸層連接的裝置,用于確定傳輸層連接當(dāng) 前正由第 一應(yīng)用程序使用,并打開加速程序和服務(wù)器之間的第二傳輸 層連接以供第二應(yīng)用程序使用。在一些實(shí)施例中,加速程序在加速程 序和與服務(wù)器通信的器具之間建立第二傳輸層連接。在一個(gè)實(shí)施例中,該器具提供了一個(gè)或更多傳輸層連接的池,以供加速程序使用。在系統(tǒng)的另一實(shí)施例中,客戶機(jī)透明地對(duì)客戶機(jī)網(wǎng)絡(luò)棧的應(yīng)用 層、會(huì)話層或者網(wǎng)絡(luò)層執(zhí)行加速程序。在另外的實(shí)施例中,所述系統(tǒng) 包括客戶機(jī),所述客戶機(jī)透明地對(duì)第一應(yīng)用程序、第二應(yīng)用程序或者服務(wù)器其中之一執(zhí)行加速程序。在另一方面中,客戶端加速功能由執(zhí)行傳輸層連接復(fù)用技術(shù)的加 速程序來提供,以提高遠(yuǎn)程訪問應(yīng)用程序通信和遞送的性能。加速程 序建立從客戶機(jī)至服務(wù)器的傳輸層連接,所述傳輸層連接可以由客戶 機(jī)上的多個(gè)應(yīng)用程序使用,或者在客戶機(jī)的應(yīng)用程序之間共享。該加 速程序?qū)?jīng)過由加速程序維持的相同傳輸層連接對(duì)來自一個(gè)或更多應(yīng) 用程序的請(qǐng)求進(jìn)行復(fù)用。因而,在使用傳輸層連接時(shí),加速程序可以 利用一個(gè)應(yīng)用程序的等待時(shí)間通過相同傳輸層連接為第二應(yīng)用程序的 請(qǐng)求進(jìn)行服務(wù)。在一個(gè)方面中,本發(fā)明涉及一種加速的方法,所述方法通過共享 的傳輸層連接對(duì)多個(gè)應(yīng)用程序請(qǐng)求進(jìn)行復(fù)用來加速客戶機(jī)對(duì)服務(wù)器上 一個(gè)或更多應(yīng)用程序進(jìn)4亍客戶才幾訪問的方法。所述方法包括通過客戶 機(jī)上的加速程序截獲客戶機(jī)的第一應(yīng)用程序要求訪問服務(wù)器的請(qǐng)求, 并通過所述加速程序經(jīng)由建立在加速程序和服務(wù)器之間的傳輸層連接 來傳送第一請(qǐng)求。該方法還包括通過加速程序截獲客戶機(jī)的第二應(yīng)用 程序要求訪問服務(wù)器的第二請(qǐng)求,并通過所述加速程序經(jīng)由第一應(yīng)用
程序所使用的已建立傳輸層連接來傳送第二請(qǐng)求。在一個(gè)實(shí)施例中,本發(fā)明的方法包括當(dāng)從服務(wù)器接收到對(duì)于第一 應(yīng)用程序的請(qǐng)求的響應(yīng)時(shí),通過加速程序傳輸?shù)诙?qǐng)求。在一些實(shí)施 例中,該方法包括當(dāng)確定第一應(yīng)用程序目前沒有正在使用傳輸層連接 時(shí),通過加速程序來傳送第二請(qǐng)求。在另一實(shí)施例中,該方法包括通 過比較第一應(yīng)用程序傳送至服務(wù)器的字節(jié)數(shù)和服務(wù)器應(yīng)答的字節(jié)數(shù), 來由加速程序確定第一應(yīng)用程序目前沒有正在使用傳輸層連接。在另 外的實(shí)施例中,該方法包括通過檢驗(yàn)客戶機(jī)和服務(wù)器之間消息中的消 息標(biāo)識(shí)符長(zhǎng)度,由加速程序來確定第一應(yīng)用程序目前沒有正在使用傳 輸層連接。在本發(fā)明的一個(gè)實(shí)施例中,該方法還包括由加速程序經(jīng)過傳輸層 連接對(duì)來自客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。在另外的實(shí)施 例中,該方法包括通過加速程序使供客戶機(jī)的多個(gè)應(yīng)用程序使用的至 服務(wù)器的多個(gè)傳輸層連接入池。在一些實(shí)施例中,所述方法包括當(dāng)從 客戶機(jī)接收到要求建立與服務(wù)器的連接的請(qǐng)求時(shí),通過器具將加速程 序傳送至客戶機(jī)。當(dāng)接收到加速程序時(shí),客戶機(jī)可以自動(dòng)安裝并執(zhí)行 加速應(yīng)用程序。在一些實(shí)施例中,加速程序包括對(duì)接至客戶機(jī)網(wǎng)絡(luò)棧 的傳輸層的過濾設(shè)備驅(qū)動(dòng)器。在一些實(shí)施例中,該方法包括通過加速程序來執(zhí)行下列加速技術(shù)之一1)壓縮,2)解壓縮,3)傳輸控制協(xié)議緩沖,和4)高速緩存。 在另一實(shí)施例中,所述加速程序執(zhí)行客戶機(jī)和服務(wù)器之間通信的加密 或解密。在一個(gè)實(shí)施例中,所述方法包括當(dāng)接收到第一應(yīng)用程序和第 二應(yīng)用程序的重啟或結(jié)束命令時(shí),通過加速程序來關(guān)閉傳輸層連接。 在另一實(shí)施例中,所述方法包括建立加速程序和與服務(wù)器通信的器具 之間的傳輸層連接。在一個(gè)實(shí)施例中,該器具建立了一個(gè)或更多傳輸 層連接的池,以供加速程序使用。在另外的實(shí)施例中,所述器具通過 一個(gè)或更多傳輸層連接的池,對(duì)加速程序和服務(wù)器之間的多個(gè)通信進(jìn) 行復(fù)用。在本發(fā)明的 一個(gè)實(shí)施例中,所述方法包括通過客戶機(jī)透明地對(duì)客 戶機(jī)網(wǎng)絡(luò)棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層中之一執(zhí)行加速程序。在另 一實(shí)施例中,所述方法包括通過客戶機(jī)透明地對(duì)第一應(yīng)用程序、第二
應(yīng)用程序或者服務(wù)器執(zhí)行加速程序。在另一個(gè)方面中,本發(fā)明涉及一種加速系統(tǒng),所述加速系統(tǒng)通過 共享的傳輸層連接來復(fù)用多個(gè)應(yīng)用程序請(qǐng)求,以加速客戶機(jī)對(duì)服務(wù)器 上一個(gè)或更多應(yīng)用程序進(jìn)行的客戶機(jī)訪問。所述系統(tǒng)包括用于截獲和 傳送第一請(qǐng)求的裝置,用于通過客戶機(jī)上的加速程序截獲客戶機(jī)的第 一應(yīng)用程序要求訪問服務(wù)器的請(qǐng)求,并通過所述加速程序經(jīng)由建立在 加速程序和服務(wù)器之間的傳輸層連接來傳送第一請(qǐng)求。該系統(tǒng)還包括 用于截獲和傳送第二請(qǐng)求的裝置,用于通過加速程序截獲客戶機(jī)的第 二應(yīng)用程序要求訪問服務(wù)器的第二請(qǐng)求,并通過所述加速程序經(jīng)過由 第 一應(yīng)用程序所使用的已建立傳輸層連接來傳送第二請(qǐng)求。在一個(gè)實(shí)施例中,本發(fā)明的系統(tǒng)包括用于傳送第二請(qǐng)求的裝置, 用于在從服務(wù)器接收到對(duì)第一應(yīng)用程序的請(qǐng)求的響應(yīng)時(shí),通過加速程 序來傳送第二請(qǐng)求。在另一實(shí)施例中,該系統(tǒng)包括用于傳送第二請(qǐng)求 的裝置,用于在確定第一應(yīng)用程序目前沒有正在使用傳輸層連接時(shí), 通過加速程序來傳送第二請(qǐng)求。在一些實(shí)施例中,該系統(tǒng)包括用于確 定的裝置,用于利用加速程序通過比較第一應(yīng)用程序傳送至服務(wù)器的 字節(jié)數(shù)和服務(wù)器應(yīng)答的字節(jié)數(shù)來確定第一應(yīng)用程序目前沒有正在使用 傳輸層連接。在又一實(shí)施例中,該系統(tǒng)包括用于確定的裝置,用于由 加速程序通過檢驗(yàn)客戶機(jī)和服務(wù)器之間的消息中的消息標(biāo)識(shí)長(zhǎng)度來確 定第一應(yīng)用程序目前沒有正在使用傳輸層連接。在一些實(shí)施例中,該系統(tǒng)包括用于經(jīng)由傳輸層連接對(duì)來自客戶機(jī) 上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用的加速程序。在另外的實(shí)施例中, 系統(tǒng)包括使供多個(gè)應(yīng)用程序使用的至服務(wù)器的多個(gè)傳輸層連接入池的 加速程序。在一個(gè)實(shí)施例中,所述系統(tǒng)包括用于傳送加速程序的器具, 用于當(dāng)從客戶機(jī)接收到要求建立與服務(wù)器的一個(gè)連接或者會(huì)話的請(qǐng)求 時(shí),將加速程序傳送至客戶機(jī)。在另一實(shí)施例中,當(dāng)接收到加速程序 時(shí),客戶機(jī)自動(dòng)安裝并運(yùn)行加速程序。在一些實(shí)施例中,加速程序包 括對(duì)接至客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾設(shè)備驅(qū)動(dòng)器。在一些實(shí)施例中,加速程序執(zhí)行下列加速技術(shù)之一l)壓縮,2) 解壓縮,3)傳輸控制協(xié)議緩沖,和4)高速緩存。在另一實(shí)施例中, 所述加速程序?qū)蛻魴C(jī)和服務(wù)器之間通信進(jìn)行加密或解密。在一個(gè)實(shí)
施例中,所述系統(tǒng)包括用于關(guān)閉的裝置,用于當(dāng)接收到第一應(yīng)用程序 和第二應(yīng)用程序的重啟或結(jié)束命令時(shí),通過加速程序來關(guān)閉傳輸層連 接。在另一實(shí)施例中,所述方法包括建立加速程序和與服務(wù)器通信的 器具之間的傳輸層連接。在一個(gè)實(shí)施例中,所述器具建立一個(gè)或更多 傳輸層連接的池,以供加速程序使用。在另外的實(shí)施例中,所述器具 通過一個(gè)或更多傳輸層連接池,對(duì)加速程序和服務(wù)器之間的多個(gè)通信 進(jìn)行復(fù)用。
在本發(fā)明的 一個(gè)實(shí)施例中,所述方法包括通過客戶端透明地對(duì)于 客戶機(jī)網(wǎng)絡(luò)棧的應(yīng)用層、會(huì)話層、、或者網(wǎng)絡(luò)層中之一執(zhí)行加速程序。 在另 一 實(shí)施例中,所述方法包括通過客戶機(jī)透明地對(duì)第 一應(yīng)用程序、 第二應(yīng)用程序或者服務(wù)器執(zhí)行加速程序。在一些實(shí)施例中,所述系統(tǒng) 包括用于建立加速程序和與服務(wù)器通信的器具之間的傳輸層連接的裝 置。該器具可以提供一個(gè)或更多傳輸層連接的池,以供加速程序使用。 所述器具還通過一個(gè)或更多傳輸層連接的池,對(duì)加速程序和服務(wù)器之 間的多個(gè)通信進(jìn)行復(fù)用。
在又一個(gè)方面中,客戶端加速功能通過加速程序來提供,所述加 速程序執(zhí)行傳輸層連接緩沖技術(shù)來提高遠(yuǎn)程訪問應(yīng)用程序的通信和遞 送性能。該加速程序建立從客戶機(jī)至服務(wù)器的傳輸層連接,并基于客 戶機(jī)從服務(wù)器接收響應(yīng)的消耗速率與客戶機(jī)向服務(wù)器傳送請(qǐng)求的生產(chǎn) 速率之間的差值確定來對(duì)客戶機(jī)的請(qǐng)求進(jìn)行緩沖。因而,如果客戶機(jī) 的響應(yīng)消耗速率跟不上請(qǐng)求的提交速率,則加速程序可以減速客戶機(jī) 的傳送。在一個(gè)方面中,本發(fā)明涉及一種用于在客戶機(jī)上管理從服務(wù)器接 收響應(yīng)的消耗速率與向服務(wù)器傳送請(qǐng)求的生產(chǎn)速率之間的差值的方 法。所述方法包括在客戶機(jī)上通過加速程序截獲應(yīng)用程序要求訪問服 務(wù)器的請(qǐng)求,所述加速程序代表應(yīng)用程序經(jīng)由傳輸層連接與服務(wù)器進(jìn)行通信。所述方法還包括通過加速程序確定接收的服務(wù)器響應(yīng)的消耗 速率與客戶機(jī)所傳送請(qǐng)求的生產(chǎn)速率之間的差值降低至閾值之下,然后通過加速程序?qū)⑺稣?qǐng)求存儲(chǔ)在客戶機(jī)的存儲(chǔ)元件中。在一個(gè)實(shí)施 例中,消耗速率低于生產(chǎn)速率。在本發(fā)明的一些實(shí)施例中,該方法包括基于客戶機(jī)的生產(chǎn)速率或者消耗速率的改變來通過加速程序確定傳送存儲(chǔ)的請(qǐng)求。在另一些實(shí) 施例中,所述方法包括當(dāng)從客戶機(jī)接收到要求建立與服務(wù)器的連接的 請(qǐng)求時(shí),通過器具將加速程序傳送至客戶機(jī)。在一個(gè)實(shí)施例中,當(dāng)接 收到加速程序時(shí),該方法包括通過客戶機(jī)自動(dòng)安裝并運(yùn)行加速程序。 加速程序可以包括對(duì)接至客戶機(jī)的網(wǎng)絡(luò)棧傳輸層的過濾設(shè)備驅(qū)動(dòng)器。 在另一實(shí)施例中,加速程序?qū)Υ鎯?chǔ)在存儲(chǔ)元件中的請(qǐng)求進(jìn)行壓縮。在一個(gè)實(shí)施例中,本發(fā)明的方法包括通過加速程序提供一個(gè)或更 多傳輸層連接的池,以供客戶機(jī)上應(yīng)用程序訪問服務(wù)器。在另一實(shí)施 例中,該方法還包括由加速程序經(jīng)過傳輸層連接對(duì)來自客戶機(jī)上的多 個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。在另一方面中,本發(fā)明涉及一種用于在客戶機(jī)上管理從服務(wù)器接 收響應(yīng)的消耗速率與向服務(wù)器傳送請(qǐng)求的生產(chǎn)速率之間的差值的系 統(tǒng)。所述系統(tǒng)包括用于截獲請(qǐng)求的裝置,用于在客戶機(jī)上通過加速程 序截獲應(yīng)用程序要求訪問服務(wù)器的請(qǐng)求,所述加速程序代表應(yīng)用程序 經(jīng)由傳輸層連接與服務(wù)器進(jìn)行通信。所述系統(tǒng)還包括用于確定差值和 存儲(chǔ)請(qǐng)求的裝置,用于通過加速程序確定接收的服務(wù)器響應(yīng)的消耗速 率與客戶機(jī)所傳送請(qǐng)求的生產(chǎn)速率之間的差值降低至閾值之下,并通 過加速程序?qū)⑺稣?qǐng)求存儲(chǔ)在客戶機(jī)的存儲(chǔ)元件中。在一些實(shí)施例 中,消耗速率低于生產(chǎn)速率。在一個(gè)實(shí)施例中,本發(fā)明的該系統(tǒng)包括用于確定傳送存儲(chǔ)的請(qǐng)求 的裝置,用于基于客戶機(jī)的生產(chǎn)速率或者消耗速率的改變通過加速程 序確定傳送存儲(chǔ)的請(qǐng)求。在另一實(shí)施例中,所述系統(tǒng)包括傳送加速程 序的器具,用于當(dāng)從客戶機(jī)接收到要求建立與服務(wù)器的連接的請(qǐng)求 時(shí),將加速程序傳送至客戶機(jī)。在一些實(shí)施例中,當(dāng)接收到加速程序 時(shí),客戶機(jī)自動(dòng)安裝并運(yùn)行加速程序。在一個(gè)實(shí)施例中,加速程序包 括對(duì)接至客戶機(jī)的網(wǎng)絡(luò)棧傳輸層的過濾設(shè)備驅(qū)動(dòng)器。在另外的實(shí)施例 中,該系統(tǒng)包括用于壓縮的裝置,用于通過加速程序?qū)Υ鎯?chǔ)元件中存 儲(chǔ)的請(qǐng)求進(jìn)行壓縮。在一些實(shí)施例中,本發(fā)明的加速程序提供一個(gè)或更多傳輸層連接 的池,以供客戶機(jī)上的應(yīng)用程序來訪問服務(wù)器。在一些實(shí)施例中,該 加速程序經(jīng)由傳輸層連接對(duì)來自客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行
復(fù)用。在系統(tǒng)的一個(gè)實(shí)施例中,客戶機(jī)透明地對(duì)客戶機(jī)網(wǎng)絡(luò)棧的應(yīng)用 層、會(huì)話層或者網(wǎng)絡(luò)層執(zhí)行加速程序。在另一實(shí)施例中,客戶機(jī)透明 地對(duì)應(yīng)用程序或者服務(wù)器執(zhí)行加速程序。在另一方面中,通過以綜合有效的方式來執(zhí)行多個(gè)下列加速技術(shù)的加速程序來提供客戶端加速功能1)多協(xié)議壓縮,2)傳輸控制協(xié) 議池,3)傳輸控制協(xié)議復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)高速緩 存。加速程序建立客戶機(jī)和服務(wù)器之間的傳輸層連接,并在傳輸層截 獲網(wǎng)絡(luò)包。加速程序使用內(nèi)核級(jí)的數(shù)據(jù)結(jié)構(gòu)來訪問在傳輸層截獲的網(wǎng) 絡(luò)包,隨后在接口點(diǎn)或者加速程序的執(zhí)行點(diǎn)對(duì)截獲的網(wǎng)絡(luò)包執(zhí)行一種 或更多加速技術(shù)。在一個(gè)方面中,本發(fā)明涉及一種方法,所述方法用于在客戶機(jī)上 由加速程序?qū)?jīng)由客戶機(jī)和服務(wù)器之間的傳輸層連接通信的網(wǎng)絡(luò)包執(zhí) 行多種加速技術(shù)。該網(wǎng)絡(luò)包在傳輸層通過加速程序來截獲。該方法包 括在客戶機(jī)上通過加速程序來建立加速程序和服務(wù)器之間的傳輸層 連接,在傳輸層上通過加速程序截獲在客戶機(jī)和服務(wù)器之間通信的網(wǎng) 絡(luò)包。該方法還包括通過加速程序?qū)υ趥鬏攲咏孬@的網(wǎng)絡(luò)包執(zhí)行多種 加速技術(shù)。在一個(gè)實(shí)施例中,該方法包括經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)通過加速程序 訪問網(wǎng)絡(luò)包,所述內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)由至傳輸層連接的接口提供。所述 方法還包括通過加速程序?qū)⑺鼍W(wǎng)絡(luò)包傳送給服務(wù)器。所述加速程序 可以在客戶機(jī)上對(duì)截獲的傳輸層網(wǎng)絡(luò)包執(zhí)行下列技術(shù)之一1)壓縮, 2)解壓縮,3)傳輸控制協(xié)議連接池,4)傳輸控制協(xié)議連接復(fù)用, 5)傳輸控制器協(xié)議緩沖,和6)高速緩存。在另一實(shí)施例中,所述方 法包括通過加速程序?qū)W(wǎng)絡(luò)包的一部分進(jìn)行加密或者解密。在一些實(shí) 施例中,本發(fā)明的方法包括通過加速程序來提供至服務(wù)器的虛擬專用 網(wǎng)絡(luò)連接。在另一實(shí)施例中,該方法包括在客戶機(jī)操作系統(tǒng)的內(nèi)核模 式或者用戶模式通過加速程序來執(zhí)行多種加速技術(shù)。在本發(fā)明的一些實(shí)施例中,該方法包括在加速程序的可執(zhí)行指令 的一部分中,通過加速程序在加速技術(shù)相互之后執(zhí)4亍多種加速4支術(shù)。 在另一些實(shí)施例中,該方法包括在加速程序的可執(zhí)行指令中在一個(gè)接 口點(diǎn)處,通過加速程序在加速技術(shù)相互之后執(zhí)行多種加速技術(shù)。在另一實(shí)施例中,本發(fā)明的方法包括在加速程序的可執(zhí)行指令的執(zhí)行實(shí)例 期間,通過加速程序在加速技術(shù)相互之后執(zhí)行多種加速技術(shù)。在一些 實(shí)施例中,內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)提供對(duì)網(wǎng)絡(luò)包的一個(gè)或者更多應(yīng)用級(jí)協(xié)議 有效負(fù)荷的訪問。在另一方面中,本發(fā)明涉及一種系統(tǒng),所述系統(tǒng)用于在客戶機(jī)上 由加速程序?qū)?jīng)由客戶機(jī)和服務(wù)器之間的傳輸層連接通信的網(wǎng)絡(luò)包執(zhí) 行多種加速技術(shù)。該網(wǎng)絡(luò)包在傳輸層通過加速程序來截獲。該系統(tǒng)包 括用于建立傳輸層連接和截獲網(wǎng)絡(luò)包的裝置,用于在客戶機(jī)上通過加 速程序來建立加速程序和服務(wù)器之間的傳輸層連接,并在傳輸層上通 過加速程序截獲在客戶機(jī)和服務(wù)器之間通信的網(wǎng)絡(luò)包。該系統(tǒng)還包括 用于執(zhí)行多種加速技術(shù)的裝置,用于通過加速程序?qū)υ趥鬏攲咏孬@的 網(wǎng)絡(luò)包執(zhí)行多種加速技術(shù)。在本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例中,所述加速程序通過調(diào)用至傳輸 層連接的應(yīng)用程序接口得到內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)。在一個(gè)實(shí)施例中,加速 程序?qū)⒕W(wǎng)絡(luò)包傳送至服務(wù)器。在一些實(shí)施例中,多種加速技術(shù)包括下列技術(shù)中至少之一l)壓縮,2)解壓縮,3)傳輸控制協(xié)議連接池, 4)傳輸控制協(xié)議連接復(fù)用,5)傳輸控制協(xié)議緩沖,和6)高速緩存。 在另一實(shí)施例中,加速程序?qū)W(wǎng)絡(luò)包的一部分進(jìn)行加密或解密。在一 些實(shí)施例中,加速程序提供了至服務(wù)器的虛擬專用網(wǎng)絡(luò)連接。在另一 實(shí)施例中,加速程序在客戶機(jī)的操作系統(tǒng)的用戶模式或者內(nèi)核模式中 執(zhí)行。在一些實(shí)施例中,本發(fā)明的加速程序包括可執(zhí)行指令,用于在多 種加速技術(shù)相互之后執(zhí)行多種加速技術(shù)的每一技術(shù)。在另一實(shí)施例 中,加速程序包括一個(gè)接口點(diǎn),在所述接口點(diǎn)處,在加速技術(shù)相互之 后執(zhí)行多種加速技術(shù)。在其他實(shí)施例中,加速程序包括具有執(zhí)行實(shí)例 的可執(zhí)行指令,在執(zhí)行實(shí)例時(shí),在加速技術(shù)相互之后執(zhí)行多種加速技 術(shù)。在一個(gè)實(shí)例中,加速程序經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)在傳輸層獲得了對(duì) 于一個(gè)或更多網(wǎng)絡(luò)包的應(yīng)用層協(xié)議有效負(fù)荷的訪問。在另一方面中,本發(fā)明旨在一種用于動(dòng)態(tài)重定向的系統(tǒng)和方法, 所述用于動(dòng)態(tài)重定向的系統(tǒng)和方法在客戶機(jī)上對(duì)客戶機(jī)與服務(wù)器的通 信進(jìn)行動(dòng)態(tài)重定向,以繞過確定不可用于這種通信的中介物。客戶機(jī)
上的加速程序建立客戶機(jī)和服務(wù)器之間的傳輸層連接,并截獲客戶機(jī) 至服務(wù)器的通信。傳輸層連接可以通過中介物來建立,諸如網(wǎng)關(guān)、代 理或者器具。如果客戶端加速程序確定中介物不能用于客戶機(jī)至服務(wù) 器的通信,則加速程序自動(dòng)建立至服務(wù)器的第二傳輸層連接以繞過中 介物。然后,加速程序通過至服務(wù)器的第二傳輸層連接來傳送所截獲 的客戶機(jī)的通信信息。加速程序可以自動(dòng)將截獲的客戶機(jī)至服務(wù)器的
通信透明地重新定向至客戶機(jī)的應(yīng)用程序或者任何用戶。
在一個(gè)方面中,本發(fā)明涉及一種重定向方法,所述重定向方法用 于當(dāng)確定中介物不能用于客戶機(jī)至服務(wù)器的通信時(shí),在客戶機(jī)上重定
向客戶至服務(wù)器的通信以繞過所述中介物。該方法包括通過客戶機(jī) 上的加速程序經(jīng)由中介物建立客戶機(jī)和服務(wù)器之間的傳輸層連接,以 及通過加速程序確定中介物不能用來由客戶機(jī)經(jīng)由傳輸層連接與服務(wù) 器的通信。該方法還包括通過加速程序截獲從客戶機(jī)至服務(wù)器的通 信,以及通過加速程序建立加速程序和服務(wù)器之間的第二傳輸層連接 以繞過中介物。在一個(gè)實(shí)施例中,直接建立與服務(wù)器的第二傳輸層連 接。在另一實(shí)施例中,經(jīng)由第二中介物建立與服務(wù)器的第二傳輸層連 接。所述中介物和第二中介物可以包括高速緩存、網(wǎng)關(guān)、防火墻、服 務(wù)器、代理、路由器、交換機(jī)或者橋。
在一個(gè)實(shí)施例中,本發(fā)明的方法包括通過加速程序經(jīng)由第二傳輸 層連接將通信信息傳送至服務(wù)器。在一個(gè)實(shí)施例中,該方法包括當(dāng)從 中介物接收到加速程序時(shí),通過客戶機(jī)自動(dòng)安裝并運(yùn)行加速程序。在 一個(gè)實(shí)施例中,加速程序包括對(duì)接至客戶機(jī)的網(wǎng)絡(luò)棧傳輸層的過濾設(shè) 備驅(qū)動(dòng)器。在其他實(shí)施例中,該方法包括通過加速程序?qū)λ鐾ㄐ判?息執(zhí)行下列加速技術(shù)之一l)壓縮,2)傳輸控制協(xié)議連接池,3)傳 輸控制協(xié)議連接復(fù)用,4)傳輸控制協(xié)議緩沖,和5)高速緩存。在另 一些實(shí)施例中,該方法包括通過加速程序?qū)蛻魴C(jī)和服務(wù)器之間的通 信進(jìn)行加密。
在另一方面中,本發(fā)明涉及一種用于重定向的系統(tǒng),所述重定向 的系統(tǒng)用于當(dāng)確定中介物不能用于客戶機(jī)至服務(wù)器的通信時(shí),在客戶 機(jī)上重定向客戶機(jī)至服務(wù)器的通信以繞過所述中介物。該系統(tǒng)包括用 于建立傳輸層連接和確定中介物不可用的裝置,用于通過客戶機(jī)上的
加速程序經(jīng)由中介物建立客戶機(jī)和服務(wù)器之間的傳輸層連接,并通過 加速程序確定中介物不能用來由客戶機(jī)使用以經(jīng)由傳輸層連接至服務(wù) 器的通信。該系統(tǒng)還包括用于截獲通信信息和建立第二傳輸層連接的 裝置,用于通過加速程序截獲從客戶機(jī)至服務(wù)器的通信信息,并通過 加速程序建立加速程序和服務(wù)器之間的第二傳輸層連接以繞過中介 物。在一個(gè)實(shí)施例中,該系統(tǒng)直接建立與服務(wù)器的第二傳輸層連接。 在另一實(shí)施例中,該系統(tǒng)經(jīng)過第二中介物建立與服務(wù)器的第二傳輸層 連接。所述中介物和第二中介物可以包括高速緩存、網(wǎng)關(guān)、防火墻、 服務(wù)器、代理、路由器、交換機(jī)或者橋。
在本發(fā)明的系統(tǒng)的一個(gè)實(shí)施例中,加速程序經(jīng)由第二傳輸層連接 將通信信息傳送至服務(wù)器。在另一實(shí)施例中,該系統(tǒng)包括當(dāng)從中介物 接收到加速程序時(shí)通過客戶機(jī)自動(dòng)安裝并運(yùn)行加速程序。在一些實(shí)施 例中,加速程序包括對(duì)接至客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾設(shè)備驅(qū)動(dòng) 器。在其他實(shí)施例中,該系統(tǒng)包括對(duì)所述通信信息執(zhí)行下列加速技術(shù)
之一的加速程序l)壓縮,2)傳輸控制協(xié)議連接池,3)傳輸控制協(xié) 議連接復(fù)用,4)傳輸控制協(xié)議緩沖,和5)高速緩存。本發(fā)明的加速 程序還可以對(duì)客戶機(jī)和服務(wù)器之間的通信進(jìn)行加密。
在下面的附圖和說明書中將闡述本發(fā)明的各個(gè)實(shí)施例的詳細(xì)情況。
通過參考下面結(jié)合附圖進(jìn)行的描述,本發(fā)明前述的以及其他目 的、方面、特征以及優(yōu)勢(shì)將更加顯而易見且更容易被理解,其中
圖1A和1B示出了用于實(shí)施本發(fā)明的示例實(shí)施例的計(jì)算設(shè)備的實(shí) 施例方框圖2A示出了本發(fā)明的客戶端加速程序的實(shí)施例方框圖; 圖2B示出了利用服務(wù)器操作客戶端加速程序的網(wǎng)絡(luò)環(huán)境的實(shí)施例 方框圖2C示出了結(jié)合與服務(wù)器通信的器具來操作客戶端加速程序的 網(wǎng)絡(luò)環(huán)境的另一實(shí)施例的方框圖2D示出了本發(fā)明的器具的實(shí)施例的方框圖3A示出了本發(fā)明的方法實(shí)施例的步驟圖,所述方法用于動(dòng)態(tài)提 供和自動(dòng)安裝并執(zhí)行本發(fā)明客戶端加速程序;圖3B示出了本發(fā)明方法的實(shí)施例的步驟圖,所述方法用于確定應(yīng) 用程序可以加速;圖3C示出了本發(fā)明方法的另一實(shí)施例的步驟圖,所述方法用于通 過在傳輸層截獲并使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)的加速程序來執(zhí)行多種加速技 術(shù);圖4A示出了本發(fā)明方法的另一實(shí)施例的步驟圖,所述方法用于通過第一程序在客戶機(jī)上自動(dòng)安裝并執(zhí)行加速程序圖4B示出了本發(fā)明方法的實(shí)施例步驟圖,所述方法用于加速程序 和第一程序,以提供虛擬專用網(wǎng)絡(luò)連接并執(zhí)行一個(gè)或更多加速技術(shù);圖5示出了本發(fā)明方法的實(shí)施例的步驟圖,所述方法用于重定向 客戶機(jī)至服務(wù)器的通信,以繞過確定不能將通信信息傳送至服務(wù)器的 中介物;圖6示出了本發(fā)明方法的實(shí)施例的步驟圖,所述方法用于執(zhí)行傳 輸控制協(xié)議緩沖的客戶端加速技術(shù);圖7示出了本發(fā)明方法的實(shí)施例的步驟圖,所述方法用于執(zhí)行傳 輸控制協(xié)議連接池的客戶端加速技術(shù);圖7B示出了 HTTP事務(wù)的實(shí)施例設(shè)置的圖解視圖,所述HTTP 事務(wù)由多個(gè)應(yīng)用程序通過本發(fā)明實(shí)施例所提供的一個(gè)或更多傳輸層連 接的池來執(zhí)行;圖8示出了本發(fā)明方法的實(shí)施例的步驟圖,所述方法用于執(zhí)行傳輸控制協(xié)議復(fù)用的客戶端加速技術(shù);圖9示出了傳輸層包的內(nèi)容長(zhǎng)度標(biāo)識(shí)符的實(shí)施例的圖解視圖;和圖10示出了通過多個(gè)程序塊傳送的消息的內(nèi)容長(zhǎng)度標(biāo)識(shí)符的另一 實(shí)施例圖解視圖。從結(jié)合附圖在下面陳述的詳細(xì)說明中,本發(fā)明的特征和優(yōu)勢(shì)將更 加顯而易見,其中,在全文中相同參考符號(hào)標(biāo)識(shí)了相應(yīng)的元件。在附 圖中,相同附圖標(biāo)記通常表示相同、功能相似和/或結(jié)構(gòu)相似的元件。
具體實(shí)施方式
本發(fā)明示例實(shí)施例的目的在于,在網(wǎng)絡(luò)環(huán)境中使用和執(zhí)行客戶端
加速技術(shù),以提高諸如遠(yuǎn)程訪問應(yīng)用程序的客戶機(jī)和服務(wù)器之間的通 信性能。在一個(gè)示例實(shí)施例中,本發(fā)明目的在于以對(duì)于客戶機(jī)操作透 明且與其無縫連接的方式在客戶機(jī)上自動(dòng)安裝和運(yùn)行客戶端加速程 序。在另一示例實(shí)施例中,本發(fā)明目的在于當(dāng)所述器具設(shè)備確定客戶 機(jī)對(duì)服務(wù)器的訪問或者遠(yuǎn)程應(yīng)用程序的訪問可以加速時(shí),通過該器具 設(shè)備為客戶機(jī)動(dòng)態(tài)提供客戶端加速程序。在另一示例實(shí)施例中,本發(fā) 明的目的在于一種加速程序,其用于在客戶機(jī)上執(zhí)行下列加速技術(shù)的一個(gè)或多個(gè)1)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3)傳輸控制協(xié)議 復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)高速緩存。在一個(gè)示例實(shí)施例 中,本發(fā)明使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)在傳輸層以綜合有效的方式執(zhí)行了這 些加速技術(shù)。在又一示例實(shí)施例中,客戶端加速程序執(zhí)行代理重定向 技術(shù),以自動(dòng)繞過任何中介物設(shè)備,從而連續(xù)不斷地提供客戶機(jī)對(duì)服 務(wù)器或遠(yuǎn)程訪問應(yīng)用程序的訪問??蛻舳思铀俪绦蚝捅景l(fā)明的功能可以在任何類型和形式的計(jì)算設(shè) 備上使用和執(zhí)行,諸如能夠在任何類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此 處描述的本發(fā)明操作的器具、網(wǎng)絡(luò)設(shè)備或者計(jì)算機(jī)。圖1A和圖1B描 述用于實(shí)施本發(fā)明實(shí)施例的計(jì)算設(shè)備100的方框圖。如圖1A和圖1B 所示,每個(gè)計(jì)算設(shè)備100包括中央處理單元102以及主存儲(chǔ)器單元 122。如圖1A所示,典型的計(jì)算設(shè)備100可以包括可視顯示設(shè)備124、 鍵盤126和/或諸如鼠標(biāo)的指示設(shè)備127。每個(gè)計(jì)算設(shè)備100還可以包 括附加的可選元件,諸如一個(gè)或更多輸入/輸出設(shè)備130a-130b (統(tǒng)一使 用附圖標(biāo)記130來引用)以及與中央處理單元102通信的高速緩存存 儲(chǔ)器140。中央處理單元102是用于對(duì)從主存儲(chǔ)器單元122取出的指令進(jìn)行 響應(yīng)和處理的任何邏輯電路。在許多實(shí)施例中,中央處理單元由微處 理器單元提供,諸如California州的Mountain View的Intel公司制 造的微處理器;Illinois州的Schaumburg的Motorola公司制造的微處 理器;California州的Santa Clara的Transmeta /〉司制造的微處理 器;RS/6000處理器,New York州的White Plains的International Business Machines制造的微處理器;或者California州的Sunnyvale 的Advanced Micro Devices制造的微處理器。計(jì)算設(shè)備100可以基于這些處理器中的任何處理器,或者基于能夠如此出所描述進(jìn)行操作的任 何其他處理器。主存儲(chǔ)器單元122可以是能夠存儲(chǔ)數(shù)據(jù)并使得任何儲(chǔ)存位置可以 由微處理器102直接訪問的一個(gè)或更多存儲(chǔ)器芯片,諸如靜態(tài)隨機(jī)存 取存儲(chǔ)器(SRAM ),突發(fā)式SRAM或者同步突發(fā)式SRAM( BSRAM ), 動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM )、快速翻頁模式DRAM( FPM DRAM )、 增強(qiáng)型DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM (EDO RAM)、擴(kuò) 展型數(shù)據(jù)輸出DRAM (EDO RAM)、爆發(fā)式擴(kuò)展數(shù)據(jù)輸出DRAM (BEDO DRAM ),增強(qiáng)型DRAM( EDRAM )、同步DRAM( SDRAM )、 JEDEC SRAM, PC 100 SDRAM、雙倍數(shù)據(jù)速率SDRAM (DDR SDRAM )、增強(qiáng)型SDRAM( ESDRAM )、同步鏈接DRAM( SLDRAM )、 直接總線式隨機(jī)DRAM (DRDRAM)或鐵電體RAM ( FRAM )。主 存儲(chǔ)器122可以基于上述的任何存儲(chǔ)器芯片,或者能夠如此處所描述 進(jìn)行操作的任何其他可用的存儲(chǔ)器芯片。在圖1A所示的實(shí)施例中,處 理器102通過系統(tǒng)總線150 (將在下面更加詳細(xì)地描述)與主存儲(chǔ)器 204進(jìn)行通信。圖1描述了計(jì)算設(shè)備100的實(shí)施例,其中處理器通過存 儲(chǔ)器端口 103直接與主存儲(chǔ)器122進(jìn)行通信。例如,在圖1B中,主存 儲(chǔ)器122可以為DRDRAM。圖1B描述了其中主處理器102通過二級(jí)總線直接與高速緩存存儲(chǔ) 器140進(jìn)行通信的實(shí)施例,所述二級(jí)總線有時(shí)稱作后端總線。在另一 實(shí)施例中,主處理器102使用系統(tǒng)總線150與高速緩存緩沖器140進(jìn)行 通信。高速緩存存儲(chǔ)器140通常比主存儲(chǔ)器122具有更快的響應(yīng)時(shí)間, 并且通常由SRAM、 BSRAM或EDRAM提供。在如圖1A所示的實(shí)施例中,處理器102通過本地系統(tǒng)總線150與 各種I/O設(shè)備130進(jìn)行通信??梢允褂酶鞣N總線將中央處理單元102 連接至I/0設(shè)備130中的任何一種設(shè)備,所述各種總線包括VESAVL 總線,ISA總線,EISA總線,微通道結(jié)構(gòu) (MCA) 總線,PCI總 線,PCI-X總線,PCI-Express總線,或者NuBus。對(duì)于其中I/0設(shè) 備為視頻顯示器124的實(shí)施例,處理器102可以使用加速圖形接口 (AGP)與顯示器124進(jìn)行通信。圖1B描述了計(jì)算機(jī)100的實(shí)施例, 其中主處理器102通過HyperTransport、 Rapid I/O或者InfiniBand
直接與I/O設(shè)備130b進(jìn)行通信。圖IB還描述了其中本地總線和直接 通信相混合的實(shí)施例處理器102在與I/O設(shè)備130b直接通信的同 時(shí),使用本地互連總線與I/O設(shè)備130a通信。
計(jì)算設(shè)備100可以支持任何適當(dāng)?shù)陌惭b設(shè)備116、諸如用于接收諸 如3.5英寸、5.25英寸盤或者ZIP盤的軟盤的軟盤驅(qū)動(dòng)器、CD-ROM 驅(qū)動(dòng)器、CD-R/RW驅(qū)動(dòng)器、DVD-ROM驅(qū)動(dòng)器、各種格式的磁帶驅(qū)動(dòng) 器、USB設(shè)備、硬件驅(qū)動(dòng)器或者適合于安裝軟件和程序的其他任何設(shè) 備,所述軟件和程序諸如是任何加速軟件120或者加速軟件中涉及本 發(fā)明的部分。
計(jì)算設(shè)備100可以進(jìn)一步包括儲(chǔ)存設(shè)備128,諸如一個(gè)或更多硬盤 驅(qū)動(dòng)器或者獨(dú)立磁盤的冗余陣列,所述儲(chǔ)存設(shè)備128用于存儲(chǔ)操作系 統(tǒng)以及其他相關(guān)軟件,以及用于存儲(chǔ)應(yīng)用軟件應(yīng)用程序,諸如任何與 本發(fā)明的加速程序120相關(guān)的程序??蛇x地,還可以使用任何安裝設(shè) 備116作為儲(chǔ)存設(shè)備128。另外,可以從可啟動(dòng)的介質(zhì)運(yùn)行操作系統(tǒng)和 程序,例如像是KNOPPIX⑧的可啟動(dòng)CD,用于GNU/Linux的可啟動(dòng) 的CD,其可以從knoppix.net作為GNU/Linux發(fā)行產(chǎn)品而得到。另外,計(jì)算設(shè)備100可以包括網(wǎng)絡(luò)接口 118,以通過各種連接與局 域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或者互聯(lián)網(wǎng)對(duì)接,所述各種連接包括 但并不僅限于標(biāo)準(zhǔn)電話線、LAN或者WAN鏈接(例如802.11, Tl, T3, 56kb, X.25)、寬帶連接(例如ISDN、幀中繼、ATM)、無線 連接或者所有上述連接或者上述連接的任何某些組合。網(wǎng)絡(luò)接口 118 可以包括內(nèi)建的網(wǎng)絡(luò)適配器,網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線 網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或者適 合于將計(jì)算設(shè)備100對(duì)接至能夠通信的任何類型網(wǎng)絡(luò)且能夠執(zhí)行此處 所述操作的其他設(shè)備。
在計(jì)算設(shè)備100中可以存在廣泛種類的I/O設(shè)備130a- 130n。輸 入設(shè)備包括鍵盤、鼠標(biāo)、跟蹤墊、跟蹤球、麥克風(fēng)和繪畫板。輸出設(shè) 備包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光打印機(jī)和染料升華打 印機(jī)。1/0設(shè)備可以由1/0控制器123控制,如圖1A所示。1/0控制器 123可以控制一個(gè)或更多I/O設(shè)備,諸如鍵盤126和指示設(shè)備127,例 如指針或者光筆。另外,I/O設(shè)備還可以為計(jì)算設(shè)備100提供存儲(chǔ)器128 和/或安裝設(shè)備116。在又一實(shí)施例中,計(jì)算設(shè)備100可以提供USB連 接以接收手持USB儲(chǔ)存設(shè)備,諸如California州的Los Alamitos的 Twintech Industry, Inc.制造的設(shè)備的USB快閃驅(qū)動(dòng)線。在一些實(shí)施例中,計(jì)算設(shè)備100可以包括或者連接至多個(gè)顯示設(shè) 備124a-124n,所述顯示設(shè)備每個(gè)均可以具有相同或者不同的類型和/ 或形式。因而,1/0設(shè)備130a-130n中的任何一個(gè)和/或1/0控制器123 可以包括任何類型和/或形式的適當(dāng)硬件、軟件或硬件與軟件的組合, 以支持、啟動(dòng)或者提供連接以及供計(jì)算設(shè)備100使用多個(gè)顯示裝置 124a-124n。例如,計(jì)算設(shè)備100可以包括任何類型和/或形式的視頻適 配器、視頻卡、驅(qū)動(dòng)器和/或庫,以與顯示設(shè)備124a-124n對(duì)接、通信、 連接或者使用所述顯示設(shè)備。在一個(gè)實(shí)施例中,視頻適配器可以包括 多種連接器,以對(duì)接至多種顯示設(shè)備124a-124n。在另一些實(shí)施例中, 計(jì)算設(shè)備100可以包括多個(gè)視頻適配器,并使每個(gè)視頻適配器連接至 一個(gè)或更多顯示設(shè)備124a-124n。在一些實(shí)施例中,計(jì)算設(shè)備100的操 作系統(tǒng)的任何部分均可以配置成用于使用多個(gè)顯示器124a-124n。在另 一些實(shí)施例中,可以由一個(gè)或更多其他計(jì)算設(shè)備來提供一個(gè)或更多顯 示設(shè)備124a-124n,諸如通過網(wǎng)絡(luò)連接至計(jì)算設(shè)備100的計(jì)算設(shè)備100a 和100b。這些實(shí)施例可以包括設(shè)計(jì)和構(gòu)造成使用另一計(jì)算機(jī)的顯示設(shè) 備作為計(jì)算設(shè)備100的笫二顯示設(shè)備124a的任何類型的軟件。本領(lǐng)域 普通技術(shù)人員應(yīng)當(dāng)認(rèn)識(shí)和理解的是,存在可以將計(jì)算設(shè)備100配置成 具有多個(gè)顯示設(shè)備124a-124n的各種方法和實(shí)施例。在另一實(shí)施例中,1/O設(shè)備130可以是系統(tǒng)總線1S0和外部通信總 線之間的橋170。所述外部通信總線諸如是USB總線、Apple Deskt叩 總線、RS-232串行連接、SCSI總線、FireWire總線,F(xiàn)ireWire 800總 線,以太網(wǎng)總線,AppleTalk總線,千兆以太網(wǎng)總線,異步傳輸模式總 線,HIPPI總線,超級(jí)HIPPI總線,SerialPlus總線,SCI/LAMP總 線,F(xiàn)ibreChannel總線或串行小型計(jì)算機(jī)系統(tǒng)接口總線。圖1A和1B中所繪類型的計(jì)算設(shè)備100通常在操作系統(tǒng)的控制下進(jìn)行操作,所述操作系統(tǒng)控制任務(wù)的調(diào)度和系統(tǒng)資源的訪問。計(jì)算設(shè) 備100可以運(yùn)行任何操作系統(tǒng),諸如任何版本的Microsoft Windows 操作系統(tǒng),不同軟件版本的Unix和linux操作系統(tǒng)、Macintosh計(jì)算
機(jī)的任何版本的MAC OS 、任何嵌入式操作系統(tǒng)、任何實(shí)時(shí)操作系 統(tǒng)、任何開源操作系統(tǒng)、任何專有操作系統(tǒng)、任何移動(dòng)計(jì)算設(shè)備的操 作系統(tǒng)、或者能夠在計(jì)算設(shè)備上運(yùn)行并執(zhí)行此處所描述操作的任何其 他操作系統(tǒng)。典型的操作系統(tǒng)包括WINDOWS 3.x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3.51 、 WINDOWS NT 4.0、 WINDOWS CE和WINDOWS XP,上述所有操作系統(tǒng)均由 Washington州Redmond的Microsoft公司制造;California州Cupertino 的 Apple Computer制造的 MacOS; New York州 Armonk的 International Business Machines制造的OS/2;和由Utah州的Salt Lake City的Caldera Corp發(fā)布可以自由獲取的Linux操作系統(tǒng),或者其他 任何類型和/或形式的Unix操作系統(tǒng)。在其他實(shí)施例中,計(jì)算設(shè)備100可以具有不同的處理器、操作系 統(tǒng)以及符合所述設(shè)備的輸入設(shè)備。例如,在一個(gè)實(shí)施例中,計(jì)算機(jī)IOO 是由Palm.Inc制造的Treo 180、 270、 300、 600或650智能電話。在 該實(shí)施例中,Treo智能電話在PlamOS操作系統(tǒng)的控制下操作,并包 括指示筆輸入設(shè)備以及五向(five-way)導(dǎo)航設(shè)備。另外,計(jì)算設(shè)備100 可以是任何工作站、臺(tái)式計(jì)算機(jī)、膝上或者筆記本計(jì)算機(jī)、服務(wù)器、 手提計(jì)算機(jī)、移動(dòng)電話、任何其他計(jì)算機(jī)或者能夠通信且具有執(zhí)行所 述操作的足夠的處理器能力和存儲(chǔ)器能力的其他形式計(jì)算設(shè)備或者電 信設(shè)備。在一個(gè)方面中,本發(fā)明涉及客戶端加速程序,所述客戶端加速程 序用于執(zhí)行一個(gè)或更多加速技術(shù),以加速、增強(qiáng)或者改善客戶機(jī)與服 務(wù)器的通信和/或?qū)Ψ?wù)器的訪問,諸如訪問服務(wù)器提供的應(yīng)用程序。 現(xiàn)在參考圖2A,描繪了具有本發(fā)明的加速程序120的客戶機(jī)205。簡(jiǎn) 要說明,客戶機(jī)205在具有操作系統(tǒng)的計(jì)算設(shè)備100上操作,所述操 作系統(tǒng)具有內(nèi)核模式202和用戶模式203以及具有一個(gè)或更多層 210a-210b的網(wǎng)絡(luò)棧210??蛻魴C(jī)205已經(jīng)安裝和/或執(zhí)行了 一個(gè)或更多 應(yīng)用程序220a-220n。在一些實(shí)施例中, 一個(gè)或更多應(yīng)用程序220a-220n 可以通過網(wǎng)絡(luò)棧210與網(wǎng)絡(luò)進(jìn)行通信。應(yīng)用程序220N其中之一可以包 括第一程序222,例如在一些實(shí)施例中是用于安裝和/或執(zhí)行加速程序 120的程序。
客戶機(jī)205的網(wǎng)絡(luò)棧210可以包括任何類型和形式的軟件或硬件 或者其結(jié)合,以提供與網(wǎng)絡(luò)的連接和通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)棧 210包括網(wǎng)絡(luò)協(xié)議程序組的軟件實(shí)現(xiàn)。網(wǎng)絡(luò)棧210可以包括一個(gè)或更多 網(wǎng)絡(luò)層,諸如本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)和理解的開放系統(tǒng)互連(OSI) 通信模型中的任何網(wǎng)絡(luò)層。因而,網(wǎng)絡(luò)棧210可以包括用于OSI模型 的任何下列層的任何類型和形式的協(xié)議1) 物理層,2)數(shù)據(jù)鏈路 層,3)網(wǎng)絡(luò)層,4)傳輸層,5)會(huì)話層,6)表示層和7)應(yīng)用 層。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)棧310可以包括互聯(lián)網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò) 層協(xié)議上的傳輸控制協(xié)議(TCP),通常稱之為TCP/IP。在一些實(shí)施 例中,TCP/IP協(xié)議可以在以太網(wǎng)協(xié)議上執(zhí)行,以太網(wǎng)協(xié)議可以包括任 何IEEE廣域網(wǎng)(WAN)或者局域網(wǎng)(LAN)協(xié)議族中的協(xié)議,諸如 由IEEE802.3所包括的那些協(xié)議。在一些實(shí)施例中,網(wǎng)絡(luò)棧210包括 任何類型和形式的無線協(xié)議,諸如IEEE 802.11和/或移動(dòng)互聯(lián)網(wǎng)協(xié)議。 鑒于基于TCP/IP的網(wǎng)絡(luò),因此可以使用任何基于TCP/IP的協(xié) 議,包括信報(bào)傳遞應(yīng)用程序接口 (MAPI)(電子郵件),文件傳輸協(xié) 議(FTP)、超文本傳輸協(xié)議(HTTP )、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS) 協(xié)議(文件傳輸)、獨(dú)立計(jì)算架構(gòu)(ICA )協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP )、 無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議和IP語音(VoIP)協(xié)議。在另 一實(shí)施例中,網(wǎng)絡(luò)棧210包括任何類型和形式的傳輸控制協(xié)議,諸如 改進(jìn)的傳輸控制協(xié)議,例如TCP事務(wù)(T/TCP) 、 TCP選擇性確認(rèn)(TCP-SACK) 、 TCP大窗口 (TCP-LW)、諸如TCP- Vegas協(xié)議 的擁塞預(yù)測(cè)協(xié)議和TCP欺騙協(xié)議。在另外的實(shí)施例中,網(wǎng)絡(luò)棧210可 以使用諸如UDP over IP的任何類型和形式的用戶數(shù)據(jù)報(bào)協(xié)議(UDP),諸如用于語音通信或者實(shí)時(shí)數(shù)據(jù)通信。另外,網(wǎng)絡(luò)棧310可以包括支持一個(gè)或更多層的一個(gè)或更多網(wǎng)絡(luò) 驅(qū)動(dòng)器,諸如TCP驅(qū)動(dòng)器或者網(wǎng)絡(luò)層驅(qū)動(dòng)器。網(wǎng)絡(luò)驅(qū)動(dòng)器可以作為計(jì) 算設(shè)備100的操作系統(tǒng)的部分或者作為任何網(wǎng)絡(luò)接口卡或者計(jì)算設(shè)備 100的其他網(wǎng)絡(luò)訪問部件部分而包括在其中。在一些實(shí)施例中,可以定 制、修改或者改變網(wǎng)絡(luò)棧210中的任何網(wǎng)絡(luò)驅(qū)動(dòng)器,以提供定制或者 修改的網(wǎng)絡(luò)棧210部分,從而支持此處描述的本發(fā)明的任何技術(shù)。在 另外的實(shí)施例中,加速程序120被設(shè)計(jì)和構(gòu)造成對(duì)由客戶機(jī)205的操
作系統(tǒng)提供或者安裝的網(wǎng)絡(luò)棧210進(jìn)行操作或者與其結(jié)合進(jìn)行工作。網(wǎng)絡(luò)棧210包括任何類型和形式的接口,用于接收、獲取、提供 或者訪問與客戶機(jī)205的網(wǎng)絡(luò)通信相關(guān)的任何信息和數(shù)據(jù)。在一個(gè)實(shí) 施例中,與網(wǎng)絡(luò)棧210的接口包括應(yīng)用程序接口 (API)。所述接口還 可以包括任何函數(shù)調(diào)用、勾桂(hooking)或者過濾機(jī)制、事件或者回 調(diào)機(jī)制,或者任何類型的對(duì)接技術(shù)。網(wǎng)絡(luò)棧210經(jīng)過接口可以接收或 者提供與網(wǎng)絡(luò)棧210的操作或者功能相關(guān)的任何類型和形式的數(shù)據(jù)結(jié) 構(gòu),諸如對(duì)象。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡(luò)包或者一個(gè)或更多網(wǎng) 絡(luò)包相關(guān)的信息和數(shù)據(jù)。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)包括在網(wǎng)絡(luò)棧210 的協(xié)議層被處理的一部分網(wǎng)絡(luò)包,諸如傳輸層的網(wǎng)絡(luò)包。在一些實(shí)施 例中,數(shù)據(jù)結(jié)構(gòu)225包括內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu),而在另外的實(shí)施中,數(shù)據(jù) 結(jié)構(gòu)225包括用戶模式的數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)可以包括在內(nèi) 核模式202中操作的網(wǎng)絡(luò)棧210部分或者在內(nèi)核模式202中運(yùn)行的網(wǎng)絡(luò)驅(qū)動(dòng)器或者其他軟件得到的或與之相關(guān)的數(shù)據(jù)結(jié)構(gòu),或者由服務(wù)、進(jìn) 程(Process)、任務(wù)、線程或者其他在操作系統(tǒng)的內(nèi)核模式中運(yùn)行或 操作的其他可執(zhí)行指令得到或者接收的任何數(shù)據(jù)結(jié)構(gòu)。另外,網(wǎng)絡(luò)棧210的一些部分可以在內(nèi)核模式202中執(zhí)行或者操 作,例如數(shù)據(jù)鏈路層或者網(wǎng)絡(luò)層,而另外的部分在用戶模式203中執(zhí) 行或者操作,諸如網(wǎng)絡(luò)棧210的應(yīng)用層。例如網(wǎng)絡(luò)棧的第一部分210a 可以為應(yīng)用程序220a-220n提供對(duì)網(wǎng)絡(luò)棧210的用戶模式訪問,而網(wǎng)絡(luò) 棧210的第二部分210b提供了對(duì)網(wǎng)絡(luò)的訪問。在一些實(shí)施例中,網(wǎng)絡(luò) 棧的第一部分210a可以包括一個(gè)或更多網(wǎng)絡(luò)棧210的較高層,諸如5-7 層中的任一層。在另外的實(shí)施例中,網(wǎng)絡(luò)棧210的第二部分2101)包括 一個(gè)或更多網(wǎng)絡(luò)棧的較低層,諸如l-4層中的任一層。在用戶模式203、 內(nèi)核模式202或其結(jié)合中,在任何一個(gè)或更多網(wǎng)絡(luò)層,或者在網(wǎng)絡(luò)層 的任何部分或者至網(wǎng)絡(luò)層的接口點(diǎn),或者與用戶模式203和內(nèi)核模式 202的接口點(diǎn)或者任何部分,網(wǎng)絡(luò)棧210的第一部分210a和笫二部分 210b中的每一部分可以包括網(wǎng)絡(luò)棧210的任何部分。本發(fā)明的加速程序120可以包括軟件、硬件或者軟件和硬件的任 何組合。在一些實(shí)施例中,加速程序120包括任何類型和形式的可執(zhí) 行指令,所述可執(zhí)行指令被構(gòu)造并設(shè)計(jì)成執(zhí)行或者提供此處所描述的 本發(fā)明的功能和操作。在一些實(shí)施例中,加速程序120包括任何類型 和形式的應(yīng)用程序、程序、服務(wù)、進(jìn)程、任務(wù)或者線程。在一個(gè)實(shí)施 例中,加速程序120包括驅(qū)動(dòng)器,諸如被構(gòu)造和設(shè)計(jì)成與網(wǎng)絡(luò)棧210 對(duì)接并與網(wǎng)絡(luò)棧210 —起工作的網(wǎng)絡(luò)驅(qū)動(dòng)器。加速程序120的邏輯、 功能和/或操作可以執(zhí)行一個(gè)或更多下列本發(fā)明的加速技術(shù):1 )多協(xié)議 壓縮238, 2)傳輸控制協(xié)議池224, 3)傳輸控制協(xié)議復(fù)用226, 4)傳 輸控制協(xié)議緩沖228,和5)通過高速緩存管理器232進(jìn)行高速緩存, 這些技術(shù)將在下面進(jìn)行更加詳細(xì)的描述。另外,所述加速程序120可 以執(zhí)行對(duì)客戶機(jī)205接收和/或傳送的任何通信的加密234和/或解密。 在一些實(shí)施例中,加速程序120還在客戶機(jī)205和諸如服務(wù)器的另一 計(jì)算設(shè)備100之間執(zhí)行穿隧(tunneling)。在其他實(shí)施例中,加速程 序120提供了至服務(wù)器的虛擬專用網(wǎng)絡(luò)連接。在一些實(shí)施例中,加速程序120在網(wǎng)絡(luò)棧210的一個(gè)或更多層進(jìn) 行操作,諸如在傳輸層。在一個(gè)實(shí)施例中,加速程序120包括過濾驅(qū) 動(dòng)器、勾掛機(jī)制或者任何形式和類型的適當(dāng)網(wǎng)絡(luò)驅(qū)動(dòng)器接口,所述接 口諸如通過傳輸驅(qū)動(dòng)器接口 (TDI)對(duì)接至網(wǎng)絡(luò)棧的傳輸層。在一些實(shí) 施例,加速程序120對(duì)接至諸如傳輸層的第一協(xié)議層,和諸如傳輸協(xié) 議層之上的任何層的另一協(xié)議層,例如應(yīng)用協(xié)議層。在一個(gè)實(shí)施例中, 加速程序120可以包括遵守網(wǎng)絡(luò)驅(qū)動(dòng)器接口標(biāo)準(zhǔn)(NDIS)的驅(qū)動(dòng)器或 者NDIS驅(qū)動(dòng)器。在另一實(shí)施例中,加速程序120可以包括迷你過濾器 或者迷你端口驅(qū)動(dòng)器。在一個(gè)實(shí)施例中,加速程序120或者其部分在 內(nèi)核模式202中操作。在另一實(shí)施例中,加速程序120或者其部分在 用戶模式203中操作。在一些實(shí)施例中,加速程序中一部分在內(nèi) 核模式202中操作,而加速程序120中的另一部分在用戶模式203中進(jìn) 行操作。在另外的實(shí)施例中,加速程序120在用戶模式203中進(jìn)行操 作,但是卻對(duì)接至內(nèi)核模式驅(qū)動(dòng)器、處理、服務(wù)、任務(wù)或者操作系統(tǒng) 的一部分,諸如以得到內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225。在又一些實(shí)施例中,加速 程序120是用戶模式應(yīng)用程序或者程序,諸如應(yīng)用程序220a-220n。加速程序120可以相對(duì)于網(wǎng)絡(luò)棧210中的任何其他協(xié)議層以透明 的方式在協(xié)議層操作或者對(duì)接至協(xié)議層。例如,在一個(gè)實(shí)施例中,加 速程序120對(duì)于傳輸層以下的任何協(xié)議層(諸如,網(wǎng)絡(luò)層)和傳輸層 以上的任何協(xié)議層(諸如會(huì)話層、表示層或應(yīng)用層協(xié)議)透明地操作網(wǎng)絡(luò)棧210的傳輸層或者對(duì)接至網(wǎng)絡(luò)棧210的傳輸層。這使得網(wǎng)絡(luò)棧 210的其他協(xié)議層能夠根據(jù)需要進(jìn)行操作,并且無需修改即可使用本發(fā) 明的加速程序120。因而,加速程序120可以對(duì)接至傳輸層,以加速經(jīng) 過傳輸層攜帶的任何協(xié)議所提供的任何通信,諸如基于TCP/IP的任何 應(yīng)用層協(xié)議。另外,加速程序120可以相對(duì)于任何應(yīng)用程序220a-220n、客戶機(jī) 205的用戶和與客戶機(jī)205通信的任何其他計(jì)算設(shè)備(諸如服務(wù)器)以 透明方式在網(wǎng)絡(luò)棧210進(jìn)行操作或者對(duì)接至網(wǎng)絡(luò)棧210??梢栽诳蛻魴C(jī) 205上以這樣一種方式安裝和/或運(yùn)行加速程序120,以使得加速程序 120可以在不改變應(yīng)用程序220a-220n的情況下,對(duì)應(yīng)用程序220a-220n 的任何通信進(jìn)行加速。在一些實(shí)施例中,客戶機(jī)205的用戶或者與客 戶機(jī)205通信的計(jì)算設(shè)備意識(shí)不到加速程序120的存在、執(zhí)行或者操 作。因而,在一些實(shí)施例中,加速程序120對(duì)于應(yīng)用程序220a-220n、 客戶機(jī)205的用戶、另一計(jì)算設(shè)備(諸如服務(wù)器)或者通過加速程序 120所對(duì)接的協(xié)議層之上或者之下的任何協(xié)議層以透明方式安裝、運(yùn)行 和/或操作加速程序120。在一些實(shí)施例中,加速程序120以綜合的方式或者形式來執(zhí)行加 速#支術(shù)224、 226、 228、 232中的一種或者更多。在一個(gè)實(shí)施例中,加 速程序128包括任何類型和形式的機(jī)制,以在網(wǎng)絡(luò)棧210的傳輸協(xié)議 層截獲、勾掛、過濾或者接收通信信息。通過在傳輸層截獲客戶機(jī)205 的網(wǎng)絡(luò)包,并經(jīng)過諸如內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225的數(shù)據(jù)結(jié)構(gòu)在傳輸層對(duì)接 至網(wǎng)絡(luò)棧210,加速程序120可以對(duì)網(wǎng)絡(luò)包執(zhí)行傳輸層相關(guān)的加速技 術(shù),諸如傳輸控制協(xié)議(TCP)緩沖、TCP池和TCP復(fù)用。另外,加 速程序120可以對(duì)傳輸層協(xié)議網(wǎng)絡(luò)包的有效負(fù)荷所攜帶的任一協(xié)議或 者多種協(xié)議執(zhí)行壓縮225。在一個(gè)實(shí)施例中,加速程序120使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225來提供 對(duì)一個(gè)或更多網(wǎng)絡(luò)包的任何部分的訪問,例如包括來自客戶機(jī)205的 請(qǐng)求或者來自服務(wù)器的響應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)包。在一個(gè)實(shí)施例中,加速程 序120可以使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)來執(zhí)行期望的加速技術(shù)。在一個(gè)實(shí)施 例中,當(dāng)使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225時(shí),加速程序120在內(nèi)核模式202
中運(yùn)行,而在另一實(shí)施例中,當(dāng)使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225時(shí),加速程 序120在用戶模式203中運(yùn)行。在一些實(shí)施例中,可以將內(nèi)核級(jí)數(shù)據(jù) 結(jié)構(gòu)復(fù)制成或者傳送至第二內(nèi)核級(jí)數(shù)據(jù)機(jī)構(gòu)或者任何期望的用戶級(jí)數(shù) 據(jù)結(jié)構(gòu)。盡管在圖2A中將加速程序120—般地描繪為具有在用戶模式 203中操作的第一部分和在內(nèi)核模式202中操作的第二部分,但是在一 些實(shí)施例中,加速程序120的任何部分均可在用戶模式203或者內(nèi)核 模式202中運(yùn)行。在一些實(shí)施例中,加速程序120僅僅可以在用戶模 式203中操作,而在另外的實(shí)施例中,加速程序120僅僅可以在內(nèi)核 模式202中操作。另外,通過在網(wǎng)絡(luò)棧210的傳輸層截獲網(wǎng)絡(luò)數(shù)據(jù)包或者經(jīng)過內(nèi)核 級(jí)數(shù)據(jù)結(jié)構(gòu)225獲得對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的訪問,加速程序120可以在執(zhí)行 加速應(yīng)用程序120的任何可執(zhí)行指令的時(shí)刻、或者單個(gè)接口點(diǎn)、或者 單個(gè)執(zhí)行點(diǎn)執(zhí)行或者應(yīng)用本發(fā)明的多種加速技術(shù)。例如,在一個(gè)實(shí)施 例中,在加速程序120的指令集或者函數(shù)中,諸如可以通過調(diào)用構(gòu)造 并設(shè)計(jì)成執(zhí)行加速技術(shù)的可執(zhí)行指令集來執(zhí)行多種加速技術(shù)。在一些 實(shí)施例中,在執(zhí)行的一個(gè)接口點(diǎn)、位置處或者在指令集中,加速程序 120調(diào)用與任何程序、服務(wù)、進(jìn)程、任務(wù)、線程或者可執(zhí)行指令的一個(gè) 或更多應(yīng)用程序接口 (API),所述可執(zhí)行指令被設(shè)計(jì)并構(gòu)造成用于提 供1)多協(xié)議壓縮238, 2)傳輸控制協(xié)議池224, 3)傳輸控制協(xié)議 復(fù)用226, 4)傳輸控制協(xié)議緩沖228,和5 )通過高速緩存管理器232 進(jìn)行高速緩存,并且在一些實(shí)施例中還提供加密234。通過在加速程序120的可執(zhí)行指令中的一個(gè)地點(diǎn)或位置或者在網(wǎng) 絡(luò)棧210的一個(gè)協(xié)議層(諸如傳輸層)執(zhí)行多種加速技術(shù),可以更加 高效和有效地執(zhí)行這些加速技術(shù)的綜合。在一個(gè)方面中,可以減少進(jìn) 程之間的上下文切換的數(shù)目以及存儲(chǔ)器所需或者使用的數(shù)據(jù)結(jié)構(gòu)的副 本或者所使用數(shù)據(jù)結(jié)構(gòu)的數(shù)目。此外,在加速程序120的可執(zhí)行指令 集中,可以諸如以緊密耦合的方式有效地執(zhí)行加速技術(shù)中的任何技術(shù) 之間的通信和同步。因而,可以更加有效地執(zhí)^f亍與將在加速^支術(shù)之間 共享或傳送的信息和數(shù)據(jù)相關(guān)以及與將執(zhí)行的加速技術(shù)的順序相關(guān)的 任何邏輯、規(guī)則、功能或者操作。加速程序120可以在傳輸層截獲TCP 包,經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225得到TCP包的有效負(fù)荷,然后以期望的 順序執(zhí)行期望的加速技術(shù)。例如,網(wǎng)絡(luò)包可以首先壓縮,然后進(jìn)行高速緩存。在另一實(shí)施例中,可以經(jīng)過已緩沖、入池和/或復(fù)用的TCP連 接將已壓縮的高速緩存數(shù)據(jù)通信傳送至服務(wù)器。仍然參考圖2A,在一些實(shí)施例中,第一程序222可以用于以自動(dòng)、 靜默、透明的方式或者其他方式來安裝和/或執(zhí)行加速程序120。在一 個(gè)實(shí)施例中,第一程序222包括加載至應(yīng)用程序220a-220n之中并由其 執(zhí)行的插件,諸如ActiveX控件或者Java控件或腳本。例如,第一程 序包括諸如位于存儲(chǔ)器空間或者應(yīng)用程序220的上下文中由網(wǎng)絡(luò)瀏覽 器應(yīng)用程序220加載和運(yùn)行的ActiveX控件。在另一實(shí)施例中,第一程 序222包括加載至諸如瀏覽器的應(yīng)用程序220a-220n并由其運(yùn)行的可執(zhí) 行指令集。在一個(gè)實(shí)施例中,第一程序222包括設(shè)計(jì)并構(gòu)造成用于安 裝加速程序120的程序。在一些實(shí)施例中,第一程序222通過網(wǎng)絡(luò)從 另一計(jì)算設(shè)備獲取、下載或者接收加速程序120。在另一實(shí)施例中,第 一程序222是將諸如網(wǎng)絡(luò)驅(qū)動(dòng)器的程序安裝在客戶機(jī)205的操作系統(tǒng) 上的安裝程序或者即插即用管理器。在另一實(shí)施例中,第一程序222可以包括加速程序120的功能、 操作和邏輯部分,以促進(jìn)或者執(zhí)行此處描述的加速程序120的任何功 能、操作和邏輯,諸如任何加速技術(shù)。在一些實(shí)施例中,第一程序222 用于建立諸如傳輸層連接的連接,或者與器具或服務(wù)器的通信會(huì)話, 諸如安全套接字層(SSL)通信會(huì)話。在一個(gè)實(shí)施例中,第一程序222 用于建立或促進(jìn)建立虛擬專用網(wǎng)絡(luò)連接和通信會(huì)話。圖2A中所描繪的加速程序120或客戶機(jī)205的高速緩存管理器 232可以包括軟件、硬件或者軟件和硬件的任何組合,以提供對(duì)任何類 型和形式的內(nèi)容(諸如由服務(wù)器206a-206n服務(wù)的對(duì)象或者動(dòng)態(tài)生成的 對(duì)象)的高速緩存、控制和管理。高速緩存管理器232所處理和存儲(chǔ) 的數(shù)據(jù)、對(duì)象或者內(nèi)容可以包括諸如標(biāo)記語言的任何格式的數(shù)據(jù)或者 通過任何協(xié)議通信的數(shù)據(jù)。在一些實(shí)施例中,高速緩存232對(duì)存儲(chǔ)的 原始數(shù)據(jù)或者以前計(jì)算、產(chǎn)生或傳送的數(shù)據(jù)進(jìn)行復(fù)制,其中相對(duì)于讀 取高速緩存存儲(chǔ)元件,要取得、計(jì)算或者獲取原始數(shù)據(jù)可能需要更長(zhǎng) 的訪問時(shí)間。當(dāng)數(shù)據(jù)存儲(chǔ)在高速緩存存儲(chǔ)元件中時(shí),將來可以通過訪 問高速緩存的副本來使用所述數(shù)據(jù),而不是重新取得或者重新計(jì)算原
始數(shù)據(jù),因此降低了訪問時(shí)間。在一些實(shí)施例中,高速緩存存儲(chǔ)元件可以包括在客戶機(jī)205的存儲(chǔ)器中的數(shù)據(jù)對(duì)象。在另外的實(shí)施例中, 高速緩存存儲(chǔ)元件可以包括比客戶機(jī)205所使用的存儲(chǔ)器的訪問時(shí)間 更快的存儲(chǔ)器。在另一實(shí)施例中,高速緩存存儲(chǔ)元件可以包括任何類 型和形式的客戶機(jī)205的儲(chǔ)存元件,諸如硬盤的一部分。在又一實(shí)施 例中,高速緩存管理器232可以使用存儲(chǔ)器、儲(chǔ)存器或者用于對(duì)數(shù)據(jù)、 對(duì)象和其他內(nèi)容進(jìn)行高速緩存的處理單元任何部分和組合。另外,本發(fā)明的高速緩存管理器232包括任何邏輯、功能、規(guī)則 或者操作,以執(zhí)行此處所述本發(fā)明的任何技術(shù)的實(shí)施例。例如,高速 緩存管理器232包括基于無效時(shí)間周期的截止期限或者當(dāng)從客戶機(jī) 205a-205n或服務(wù)器206a-206n接收到無效命令時(shí)使對(duì)象無效的邏輯 或者功能。在一些實(shí)施例中,高速緩存管理器2"可以作為在內(nèi)核空 間202中執(zhí)行的程序、服務(wù)、進(jìn)程或者任務(wù)進(jìn)行操作,在另一些實(shí)施 例中,可以作為在用戶空間203中執(zhí)行的程序、服務(wù)、進(jìn)程或者任務(wù) 進(jìn)行操作。在一個(gè)實(shí)施例中,高速緩存管理器232的第一部分在用戶 空間203中執(zhí)行,而第二部分在內(nèi)核空間202中執(zhí)行。在一些實(shí)施例 中,高速緩存管理器232可以包括任何類型的通用處理器(GPP)或 者任何其他類型集成電路,諸如現(xiàn)場(chǎng)可編程門陣列(FPGA)、可編程 邏輯器件(PLD)或者專用集成電路(ASIC)。加速程序120或者客戶機(jī)205的加密引擎234包括用于操縱諸如 SSL或TSL的任何安全相關(guān)協(xié)議的處理或者其相關(guān)功能的任何邏輯、 事務(wù)規(guī)則、功能或者操作。例如,加密引擎234對(duì)客戶機(jī)205傳送的 網(wǎng)絡(luò)包或者其部分進(jìn)行加密和解密。加密引擎234還可以代替客戶機(jī) 205a-205n來設(shè)置或建立SSL或者TLS連接。因而,加密引擎234提 供了 SSL處理的卸載和加速。在一個(gè)實(shí)施例中,加密引擎2M使用隧 道協(xié)議來提供客戶機(jī)205a-205n與諸如服務(wù)器的另 一計(jì)算設(shè)備之間的 虛擬專用網(wǎng)絡(luò)。仍然參考圖2A,加速程序U0或者客戶機(jī)205的多協(xié)議壓縮引擎 238包括用于壓縮一個(gè)或更多網(wǎng)絡(luò)包的協(xié)議(諸如客戶機(jī)205的網(wǎng)絡(luò)棧 210所使用的任何協(xié)議)的任何邏輯、事務(wù)規(guī)則、功能或操作。例如, 多協(xié)議壓縮238可以包括壓縮和解壓縮實(shí)用工具,包括GZip壓縮和解 壓縮、差分壓縮和解壓縮,或者用于對(duì)網(wǎng)絡(luò)上傳送的數(shù)據(jù)進(jìn)行壓縮和 解壓縮的任何其他專用實(shí)用工具或公眾可以得到的實(shí)用工具。在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎230在客戶機(jī)205和諸如服務(wù)器的另一計(jì) 算設(shè)備之間對(duì)任何基于TCP/IP的協(xié)議進(jìn)行雙向壓縮,所述基于TCP/IP 的協(xié)議包括信報(bào)傳遞應(yīng)用程序接口 (MAPI)(電子郵件)、文件傳輸 協(xié)議(FTP )、超文本傳輸協(xié)議(HTTP )、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS ) 協(xié)議(文件傳輸)、獨(dú)立計(jì)算架構(gòu)(ICA )協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP )、 無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議和IP語音(VoIP)協(xié)議。在另 外的實(shí)施例中,多協(xié)議壓縮引擎238提供了基于超文本標(biāo)記語言 (HTML)的協(xié)議的壓縮,在一些實(shí)施例中,提供了任何標(biāo)記語言的 壓縮,諸如可擴(kuò)展標(biāo)記語言(XML)。因而,本發(fā)明的多協(xié)議壓縮引 擎238用于加速通過臺(tái)式客戶機(jī)訪問應(yīng)用程序的性能,所述臺(tái)式客戶 機(jī)例如是Microsoft Outlook和非網(wǎng)絡(luò)的瘦客戶機(jī)(thin clients ) , i者如 通過例如Oracle, SAP和Siebel的企業(yè)應(yīng)用程序來運(yùn)4亍的任何客戶 機(jī),以及諸如便攜式PC的移動(dòng)客戶機(jī)。本發(fā)明的加速程序120還執(zhí)行緩沖、入池和復(fù)用的傳輸協(xié)議層加 速技術(shù),這將在下面更加詳細(xì)地進(jìn)行描述。因而,加速程序120包括 任何類型和形式的可執(zhí)行指令,所述可執(zhí)行指令具有用于執(zhí)行此處描 述的這些技術(shù)中任何技術(shù)的邏輯、規(guī)則、功能和操作。所述加速程序 120在網(wǎng)絡(luò)棧210的傳輸層對(duì)應(yīng)用程序220a-220n經(jīng)過網(wǎng)絡(luò)棧210進(jìn)行 的任何傳輸層應(yīng)用程序接口 (API)的調(diào)用進(jìn)行截獲、控制和管理。加 速程序120以透明的方式對(duì)客戶機(jī)205的任何請(qǐng)求進(jìn)行響應(yīng),以4吏得 客戶機(jī)205從網(wǎng)絡(luò)棧210的傳輸協(xié)議層接收到期望的響應(yīng)。例如,在 一個(gè)實(shí)施例中,加速程序120在客戶機(jī)205的網(wǎng)絡(luò)棧210截獲要求與諸 如服務(wù)器的另一計(jì)算設(shè)備建立傳輸層連接的請(qǐng)求,并可以使用通過加 速程序120建立的一個(gè)或更多傳輸層連接的池來對(duì)所述請(qǐng)求進(jìn)行響 應(yīng)。在一個(gè)實(shí)施例中,加速程序120經(jīng)由供第二應(yīng)用程序220b ^f吏用而 建立的傳輸層連接對(duì)來自第一應(yīng)用程序220a的請(qǐng)求進(jìn)行復(fù)用。在一些實(shí)施例中,加速程序120包括緩沖或保持機(jī)制,用于在網(wǎng) 絡(luò)上進(jìn)行傳送之前,在客戶機(jī)205上緩沖或者保持客戶機(jī)205的通信 信息。例如,客戶機(jī)205從網(wǎng)絡(luò)(諸如從服務(wù)器)接收通信信息的消 耗速率可以低于客戶機(jī)205在網(wǎng)絡(luò)上傳送通信信息的生產(chǎn)速率。因而, 在客戶機(jī)205可以以這樣的速率向服務(wù)器206a-206n發(fā)送更多的請(qǐng)求, 所述速率比客戶機(jī)205消耗和處理來自這種請(qǐng)求的響應(yīng)的速率更大。 加速程序120可以截獲通信信息,并確定客戶機(jī)205的消耗速率和/或 生產(chǎn)速率是否低于預(yù)定闞值,諸如由用戶、客戶機(jī)205或者另一計(jì)算 設(shè)備配置的閾值。如果所確定的速率低于期望的閾值,則加速程序120 將截荻的通信信息存儲(chǔ)至客戶機(jī)的存儲(chǔ)元件中,直到客戶機(jī)205的性 能將消耗速率和/或生產(chǎn)速率增加至大于等于預(yù)定或期望閾值的速率。 在這一點(diǎn),加速程序120在網(wǎng)絡(luò)上傳送客戶機(jī)的通信信息。因而,本 發(fā)明提供了客戶端通信機(jī)制,以基于客戶機(jī)205的通信生產(chǎn)和/或消耗 性能來調(diào)節(jié)客戶機(jī)205的通信。圖2中所描述的應(yīng)用程序220a-220n可以是任何類型和/或形式的 應(yīng)用程序,諸如任何類型和/或形式的網(wǎng)絡(luò)瀏覽器、基于網(wǎng)絡(luò)的客戶機(jī)、 客戶機(jī)-服務(wù)器應(yīng)用程序、瘦客戶機(jī)計(jì)算客戶機(jī)、ActiveX控件或者Java 小程序,或者是能夠在客戶機(jī)205上執(zhí)行或者通過網(wǎng)絡(luò)204進(jìn)行通信 的任何其他類型和/或形式的可執(zhí)行指令。應(yīng)用程序220a-220n可以使 用任何類型的協(xié)議,并且可以是例如HTTP客戶機(jī)、FTP客戶機(jī)、Oscar 客戶機(jī)或者Telnet客戶機(jī)。在一些實(shí)施例中,應(yīng)用程序220a-220n使 用遠(yuǎn)程顯示或者表示層協(xié)議。在一個(gè)實(shí)施例中,應(yīng)用程序220a-220n 是Florida州Fort Lauderdale的Citrix Systems, Inc開發(fā)的ICA客戶 機(jī)。在另外的實(shí)施例中,應(yīng)用程序220a-220n包括Washington州 Redmond的Microsoft公司開發(fā)的遠(yuǎn)程桌面(RDP )客戶機(jī)。在另外 的實(shí)施例中,應(yīng)用程序220a-220n包括與VoIP通信相關(guān)的任何類型的 軟件,諸如軟IP電話。在再一些實(shí)施例中,應(yīng)用程序220a-220n包括 與實(shí)時(shí)數(shù)據(jù)通信相關(guān)的任何應(yīng)用程序,諸如用于流視頻和/或音頻的應(yīng) 用程序?,F(xiàn)在參考圖2B,描繪了用于執(zhí)行本發(fā)明的加速程序l20的網(wǎng)絡(luò)環(huán) 境200。簡(jiǎn)要來講,環(huán)境200包括通過網(wǎng)絡(luò)204與一個(gè)或更多服務(wù)器 206a-206n通信的客戶機(jī)205a-205n。服務(wù)器206a-206n可以提供或者 執(zhí)行供客戶機(jī)205a-205n使用的一個(gè)或更多應(yīng)用程序220a-220n。服務(wù) 器206a-206n還可以包括加速程序120a - 120n,以提供給客戶機(jī)205a - 205n來安裝和運(yùn)行。例如,在一個(gè)實(shí)施例中,諸如當(dāng)請(qǐng)求建立與服 務(wù)器206a-206n的連接或者通信會(huì)話時(shí),服務(wù)器206a-206n響應(yīng)于來自 客戶機(jī)205a-205n的要求訪問服務(wù)器的請(qǐng)求,將加速程序120a - 120n 傳送至客戶才幾205a-205n。網(wǎng)絡(luò)204可以是任何類型和形式的網(wǎng)絡(luò)。網(wǎng)絡(luò)204可以是局域網(wǎng)(LAN)(諸如公司企業(yè)內(nèi)部網(wǎng)),城域網(wǎng)(MAN)或者廣域網(wǎng)(WAN)(互聯(lián)網(wǎng)或者萬維網(wǎng))。網(wǎng)絡(luò)204的拓樸結(jié)構(gòu)可以是總線型、星型或 者環(huán)形網(wǎng)絡(luò)拓樸結(jié)構(gòu)。網(wǎng)絡(luò)204和網(wǎng)絡(luò)拓樸可以是能夠支持此處所述 本發(fā)明的操作的任何網(wǎng)絡(luò)或者網(wǎng)絡(luò)拓樸??蛻魴C(jī)205a-205n和服務(wù)器 206a-206n可以通過各種連接而連接至一個(gè)或更多網(wǎng)絡(luò)204,所述各種 連接包括標(biāo)準(zhǔn)電話線、LAN或WAN鏈接(例如T1, T3, 56kb, X.25, SNA, DECNET),寬帶連接 (ISDN,幀中繼,ATM,千兆以太網(wǎng), SONET網(wǎng)上承栽以太網(wǎng)(Ethernet-over-SONET))和無線連接或者 它們的結(jié)合。所述連接可以使用各種通信協(xié)議來建立(例如TCP/IP, IPX, SPX, NetBIOS,以太網(wǎng),ARCNET,光纖分布式數(shù)據(jù)接口(FDDI) , RS232, IEEE 802.11, IEEE 802.1 la, IEEE 802.1 lb, IEEE 802.11g和直接異步連接)。在一些實(shí)施例中,服務(wù)器206a-206n可以運(yùn)^f亍應(yīng)用程序220a-220n,例如所述應(yīng)用程序可以是應(yīng)用服務(wù)器,用于提供郵件服務(wù),諸 如由Washington州Redmond的Microsoft公司制造的Microsoft Exchange,或者是網(wǎng)絡(luò)或者互聯(lián)網(wǎng)服務(wù)器或者桌面共享服務(wù)器或協(xié)作(collaboration)服務(wù)器。在一些實(shí)施例中,220a- 220n中任一個(gè)均可 以包括任何類型的代管服務(wù),諸如由Florida州Ft. Lauderdale的Citrix Systems, Inc提供的GOToMeeting.com、由California州Santa Clara 的WebEx, Inc提供的WebEx.com或者Washington州Redmond的 Microsoft公司提供的LiveMeeting.com。在另一實(shí)施例中,客戶機(jī)205a-205n中任一個(gè)均可通過網(wǎng)絡(luò)204與 服務(wù)器群206a-206n或者服務(wù)器網(wǎng)絡(luò)通信,所述服務(wù)器群或服務(wù)器網(wǎng)絡(luò) 是作為單個(gè)實(shí)體進(jìn)行管理的一個(gè)或更多服務(wù)器的邏輯組。服務(wù)器群206a-206n可以運(yùn)行一個(gè)或更多應(yīng)用程序220a-220n,諸如用于提供瘦33f。在
一個(gè)實(shí)施例中,作為應(yīng)用程序220a-220n,服務(wù)器206a或者服務(wù)器群 206a-206n執(zhí)行由Citrix Systems, Inc提供的Citrix Access SuiteTM(諸 如MetaFrame或者Citrix Presentation Server )和/或Microsoft Corporation制造的Microsoft Windows Terminal Services中的任何服 務(wù)。在一些實(shí)施例中,服務(wù)器206a-206n中的任何一個(gè)包括用于將客 戶機(jī)205a- 205n連接至任一個(gè)服務(wù)器206a - 206n的網(wǎng)關(guān)、防火墻、 路由器、交換機(jī)或者橋。在一個(gè)實(shí)施例中,服務(wù)器206a-206n包括代理。 在另一實(shí)施例中,服務(wù)器206a-206n包括負(fù)荷平衡器。在一些實(shí)施例 中,客戶機(jī)205a - 205n可以經(jīng)過器具與服務(wù)器206a-206n通信。圖2C描述了網(wǎng)絡(luò)環(huán)境201的另一實(shí)施例,其中器具250用于客戶 機(jī)205a-205n與服務(wù)器220a-220n之間的連接和通信。簡(jiǎn)要來講,器具 250包括用于提供網(wǎng)絡(luò)204上的客戶機(jī)205a-205n與網(wǎng)絡(luò)204'上的服務(wù) 器206a-206n之間通信的計(jì)算設(shè)備或者網(wǎng)絡(luò)設(shè)備。在一些實(shí)施例中,客 戶機(jī)205a-205n和服務(wù)器206a-206n可以在相同網(wǎng)絡(luò)204上或者不同的 網(wǎng)絡(luò)上。在另外的實(shí)施例中,客戶機(jī)205a-205n可以在諸如互聯(lián)網(wǎng)的公 共網(wǎng)絡(luò)上,而服務(wù)器206a - 206n可以在諸如公司或者企業(yè)網(wǎng)絡(luò)的專用 網(wǎng)絡(luò)上。器具250包括任何類型的計(jì)算設(shè)備或者網(wǎng)絡(luò)設(shè)備。在一些實(shí)施例 中,器具250包括網(wǎng)關(guān)、代理、SSLVPN設(shè)備、橋、路由器或者交換 機(jī)。在一個(gè)實(shí)施例中,器具250提供了從網(wǎng)絡(luò)204上的客戶機(jī)205a-205n 至網(wǎng)絡(luò)204,上的服務(wù)器206a-206n的虛擬專用連接。在一些實(shí)施例中, 器具250可以建立與網(wǎng)絡(luò)204上的客戶機(jī)205a-205n的第 一傳輸層連接 以及與網(wǎng)絡(luò)204,上的服務(wù)器206a-206n的第二傳輸層連接。在一些實(shí)施 例中,器具250提供了遠(yuǎn)程訪問應(yīng)用程序和通信的加速,諸如客戶機(jī) 205a-205n與服務(wù)器206a-206n之間的應(yīng)用程序220a-220n。如同客戶 端加速程序120—樣,器具250的可執(zhí)行指令的邏輯、功能和/或操作 可以執(zhí)行一個(gè)或更多下列加速技術(shù)1)多協(xié)議壓縮,2)傳輸控制協(xié) 議池,3)傳輸控制協(xié)議復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)經(jīng)過高 速緩存管理器進(jìn)行的高速緩存。另外,器具250可以對(duì)客戶機(jī)205接 收和/或傳輸?shù)娜魏瓮ㄐ艌?zhí)行加密和/或解密。在一個(gè)實(shí)施例中,器具250 諸如對(duì)客戶機(jī)205a-205n至服務(wù)器206a-206n執(zhí)行穿隧。 圖2D示出了器具250的一個(gè)實(shí)例架構(gòu)。簡(jiǎn)要來講,器具250包括 硬件層206以及分成用戶空間203和內(nèi)核空間202的軟件層。硬件層 206提供了硬件元件,在所述硬件元件上,執(zhí)行內(nèi)核空間202和用戶空 間203內(nèi)部的程序和服務(wù)。硬件層206還提供了這樣的結(jié)構(gòu)和元件, 所述結(jié)構(gòu)和元件允許內(nèi)核空間202和用戶空間203內(nèi)部的程序和服務(wù) 相對(duì)于器具250從外部和在內(nèi)部傳送數(shù)據(jù)。軟件層包括程序、服務(wù)、 進(jìn)程、任務(wù)、線程和其他可執(zhí)行指令,以提供器具250的邏輯、功能 和操作。器具250包括應(yīng)用程序加速確定機(jī)制275和客戶端加速程序120。 應(yīng)用程序加速確定機(jī)制275包括軟件、硬件或者硬件和軟件的任何組 合。在一些實(shí)施例中,應(yīng)用程序加速確定機(jī)制275包括任何類型和形 式的可執(zhí)行指令,諸如程序、服務(wù)、進(jìn)程、任務(wù)或線程,其具有用于 確定在客戶機(jī)205a-205n和/或服務(wù)器206a-206n上執(zhí)行的應(yīng)用程序 220a-220n是否可以加速、或者客戶才幾205a-205n和服務(wù)器206a-206n 之間的通信或者訪問是否可以加速的邏輯、功能、規(guī)則或者操作。在 一個(gè)實(shí)施例中,應(yīng)用程序加速確定機(jī)制275使用數(shù)據(jù)庫來確定應(yīng)用程 序220a-220n是否可以加速。例如,數(shù)據(jù)庫可以將應(yīng)用程序220a-220n 與能夠加速應(yīng)用程序220a-220n的一個(gè)或更多加速技術(shù)相關(guān)聯(lián),并可以 進(jìn)一步基于客戶機(jī)205a-205n和/或服務(wù)器206a-206n的用戶、類型、形 式、位置、處理能力和其他特征。在一些實(shí)施例中,應(yīng)用程序加速確 定機(jī)制275使用包括有信息的存儲(chǔ)器中的查找表、文件、數(shù)據(jù)結(jié)構(gòu)或 者對(duì)象,所述信息用于通過名稱、類型或者類別來識(shí)別應(yīng)用程序 220a-220n是否可以通過加速技術(shù)進(jìn)行加速。在另外的實(shí)施例中,器具 250和/或應(yīng)用加速確定機(jī)制275包括有配置機(jī)制,諸如用戶接口、圖 形、命令行等,以接收用來指示、表明或者配置應(yīng)用程序220a-220n 或者對(duì)服務(wù)器206a-206n的訪問是否可以加速的用戶輸入。在一些實(shí)施例,應(yīng)用程序加速確定機(jī)制275從服務(wù)器206a-206n請(qǐng) 求指示信息,所述指示信息指示了在另外的實(shí)施例中對(duì)于某種類型和 形式的客戶4幾205a-205n是否可以通過某種加速才支術(shù)對(duì)應(yīng)用程序220a-220n進(jìn)4亍加速。在又一實(shí)施例中,應(yīng)用程序加速確定機(jī)制275包括歷 史信息數(shù)據(jù)庫,所述歷史信息數(shù)據(jù)庫與使用或者不使用一種或更多客
戶端加速技術(shù)情況下的客戶機(jī)205a-205n與服務(wù)器206a-206n之間的應(yīng) 用程序220a-220n的性能相關(guān),以提供比較和啟發(fā)信息數(shù)據(jù)庫,所述比較和啟發(fā)信息與在何處使用本發(fā)明的任何客戶端加速技術(shù)對(duì)應(yīng)用程序 220a-220n加速或者能夠?qū)ζ溥M(jìn)行加速相關(guān)。例如,器具250可以從客 戶機(jī)205a-205n獲取與應(yīng)用程序220a-220n的性能相關(guān)的網(wǎng)絡(luò)相關(guān)性 能信息。因此,基于網(wǎng)絡(luò)204的操作和性能特征,或者受到改變網(wǎng)絡(luò) 204的操作和性能特征的影響,應(yīng)用程序220a-220n能否被加速的確定 可能改變。在一個(gè)方面中,應(yīng)用程序2加a-:220n可能不能被加速,或者可以被 加速但是加速?zèng)]有效率或者將非常微小。在一個(gè)實(shí)施例中,該類型和 形式的應(yīng)用程序220a-220n可能不能使用協(xié)議或者不能夠以適合于使 用加速技術(shù)的方式進(jìn)行通信。在另一實(shí)施例中,應(yīng)用程序220a-220通 信的協(xié)議或者方式可能允許執(zhí)行加速技術(shù)來加速,但是要基于客戶機(jī) 205a-205n、器具250或者服務(wù)器206a-206n的操作或者性能特征中任 一個(gè),這時(shí)加速技術(shù)將是沒有效率的或者將提供微小的加速。因而, 應(yīng)用程序加速確定機(jī)制275可以基于應(yīng)用程序220a-220n是否能夠加速或者加速是否滿足性能提高的期望預(yù)定閾值來確定不期望對(duì)應(yīng)用程序 220a-220n加速。在另外的方面中,器具250在器具250的儲(chǔ)存器或者存儲(chǔ)元件中 存儲(chǔ)有客戶端加速程序120,諸如通過器具的硬件層206提供的儲(chǔ)存器 或者存儲(chǔ)器。在一個(gè)實(shí)施例中,器具250經(jīng)過應(yīng)用程序加速確定機(jī)制 275動(dòng)態(tài)確定正由客戶機(jī)205a-205n使用的或者將由其使用的應(yīng)用程序 220a-220n可以通過在客戶機(jī)205a-205n上執(zhí)行加速程序120進(jìn)行加 速,并將加速程序120從器具250的儲(chǔ)存器或者存儲(chǔ)器傳輸或者另外 傳送至客戶機(jī)205a-205n。在另一些實(shí)施例中,器具250確定客戶機(jī) 205a- 205n和服務(wù)器206a-206n之間的通信可以通過在客戶機(jī)2O5上執(zhí) 行的加速程序120進(jìn)行加速,則將加速程序120傳送至客戶機(jī)205。在 一些實(shí)施例中,器具250從諸如服務(wù)器206a-206n的另 一計(jì)算設(shè)備100 接收、下載或者得到加速程序120。如圖2D所示,硬件層206包括用于執(zhí)行軟件程序和服務(wù)的處理單 元262、用于存儲(chǔ)軟件和數(shù)據(jù)的存儲(chǔ)器264、用于傳送和接收網(wǎng)絡(luò)上的
數(shù)據(jù)的網(wǎng)絡(luò)端口 266和加密處理器260,所述加密處理器260用于執(zhí)行 與網(wǎng)上接收和傳輸?shù)臄?shù)據(jù)的加密套接字層處理相關(guān)的功能。在一些實(shí) 施例中,中央處理單元262可以在單個(gè)處理器中執(zhí)行加密處理器260 功能。另外,對(duì)于處理單元262和加密處理器260中每一個(gè),硬件層 206均可以包括多個(gè)處理器。盡管通常以加密處理器260來說明器具 250的硬件層206,但是處理器260可以是用于執(zhí)行與任何加密協(xié)議相 關(guān)功能的處理器,諸如安全套接字層(SSL)或者傳輸層安全(TLS) 協(xié)議。在一些實(shí)施例中,處理器260可以是通用處理器(GPP),而 在另外的實(shí)施例中,其可以具有用于執(zhí)行任何安全相關(guān)協(xié)議處理的可 執(zhí)行指令。盡管以圖2D中的特定元件來說明器具250的硬件層206,但是器 具250的硬件部分或部件可以包括任何類型和形式的計(jì)算設(shè)備元件、 硬件或者軟件,諸如圖1A和圖1B所示并結(jié)合圖1A和1B討論的計(jì)算 設(shè)備IOO。在一些實(shí)施例中,器具250可以包括高速緩存、服務(wù)器、網(wǎng) 關(guān)、路由器、交換機(jī)、橋或者其他類型和形式的計(jì)算設(shè)備或者網(wǎng)絡(luò)設(shè) 備,并且可以具有與其相關(guān)的任何硬件和/或軟件元件。器具250的操作系統(tǒng)將可用的系統(tǒng)存儲(chǔ)器分配、管理或者分割成 內(nèi)核空間202和用戶空間204。在實(shí)例的軟件架構(gòu)200中,操作系統(tǒng)可 以是任何類型和/或形式的UNIX操作系統(tǒng),盡管并未這樣限制本發(fā) 明。因此,器具250可以運(yùn)行任何操作系統(tǒng),諸如任何版本的 Microsoft Windows操作系統(tǒng),不同軟件版本的Unix和Linux操作系 統(tǒng)、Macintosh計(jì)算機(jī)的任何版本的MAC OS 、任何嵌入式操作系統(tǒng)、 任何網(wǎng)絡(luò)操作系統(tǒng)、任何實(shí)時(shí)操作系統(tǒng)、任何開源操作系統(tǒng)、任何專 有操作系統(tǒng)、任何移動(dòng)計(jì)算設(shè)備或者網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)、或者能夠 在器具250上運(yùn)行并執(zhí)行此處所描述操作的任何其他操作系統(tǒng)。內(nèi)核空間202為運(yùn)行內(nèi)核230預(yù)留,包括任何設(shè)備驅(qū)動(dòng)器、內(nèi)核 擴(kuò)展或者其他內(nèi)核相關(guān)軟件。本領(lǐng)域技術(shù)人員公知的是,內(nèi)核230是 操作系統(tǒng)的核心,提供對(duì)于應(yīng)用程序104的硬件相關(guān)元件和資源的訪 問、控制和管理。根據(jù)本發(fā)明的實(shí)施例,內(nèi)核空間202還包括大量的 網(wǎng)絡(luò)服務(wù)或者與高速緩存管理器2M協(xié)同工作的處理,所述高速緩存 管理器232有時(shí)還稱作集成高速緩存,所述集成高速緩存有益之處將
在此處進(jìn)一步描述。另外,內(nèi)核230的實(shí)施例將依賴于器具250安裝、 配置或者使用的操作系統(tǒng)的實(shí)施例。在一個(gè)實(shí)施例中,器具250包括一個(gè)用于與客戶機(jī)120a-120b和/ 或服務(wù)器206a-206n通信的網(wǎng)絡(luò)棧267,諸如基于TCP/IP的棧。在一 個(gè)實(shí)施例中,網(wǎng)絡(luò)棧267用于同笫一網(wǎng)絡(luò)進(jìn)行通信,諸如網(wǎng)絡(luò)204和 第二網(wǎng)絡(luò)204,。在一些實(shí)施例中,器具250終止第一傳輸層連接,諸 如客戶機(jī)205a-205n的TCP連接,并建立與服務(wù)器206a-206n的第二 傳輸層連接,以供客戶機(jī)205a-205n使用,例如第二傳輸層連接在器具 250和服務(wù)器206a- 206n終止。第一和第二傳輸層連接可以通過單個(gè)網(wǎng) 絡(luò)棧267來建立。在另外的實(shí)施例中,器具250可以包括多個(gè)網(wǎng)絡(luò)棧, 例如267和267,,并且可以在一個(gè)網(wǎng)絡(luò)棧267建立或終止第一傳輸層 連接,在第二網(wǎng)絡(luò)棧267,建立和終止第二傳輸層連接。例如, 一個(gè)網(wǎng) 絡(luò)??梢杂糜诮邮蘸蛡魉偷谝痪W(wǎng)絡(luò)的網(wǎng)絡(luò)包,而另一網(wǎng)絡(luò)棧用于接收 和傳送第二網(wǎng)絡(luò)的網(wǎng)絡(luò)包。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)棧267包括緩沖器 243,用于對(duì)由器具250傳輸?shù)囊粋€(gè)或更多網(wǎng)絡(luò)包進(jìn)行排隊(duì)。如圖2D所示,內(nèi)核空間202包括高速緩存管理器232、高速層2-7集成的包引擎240、加密引擎234、策略引擎236和多協(xié)議壓縮邏輯 238。不是在用戶空間203中,而是在內(nèi)核空間202或者內(nèi)核模式中運(yùn) 行這些部件或者進(jìn)程232、 240、 234、 236和238提高了這些部件中每 一個(gè)、單個(gè)部件及其組合的性能。內(nèi)核操作意思是這些部件或者進(jìn)程 232、 240、 234、 236和238在器具250的操作系統(tǒng)的核心地址空間中 運(yùn)行。例如,通過將加密和解密操作移動(dòng)至內(nèi)核,在內(nèi)核模式中運(yùn)行 加密引擎234提高了加密性能,從而降低了內(nèi)核模式中的存儲(chǔ)器空間 或者內(nèi)核線程與用戶模式中的存儲(chǔ)器空間或者線程之間的轉(zhuǎn)移數(shù)量。 例如,內(nèi)核模式中得到的數(shù)據(jù)可以不必傳輸或者拷貝至運(yùn)行在用戶模 式中的處理或者線程,諸如從內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)至用戶級(jí)數(shù)據(jù)結(jié)構(gòu)。在 另 一方面中,還可以降低在內(nèi)核模式和用戶模式之間的上下文切換數(shù) 目。另外,可以更加有效地在內(nèi)核空間202中執(zhí)行部件或者處理232、 240、 235、 236和238任何之間的通信和同步。在一些實(shí)施例中,部件232、 240、 "4、 236和"8中任何部分可 以在內(nèi)核空間202中運(yùn)行或操作,而這些部件2M、 240、 "4、 2%
和238中的另外部分可以在用戶空間203中運(yùn)行或者操作。在一個(gè)實(shí) 施例中,本發(fā)明使用用于提供對(duì)一個(gè)或更多網(wǎng)絡(luò)包的任何部分進(jìn)行訪 問的內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu),例如包括來自客戶機(jī)205a-205n的請(qǐng)求或者來自 服務(wù)器206a-206n的響應(yīng)的網(wǎng)絡(luò)數(shù)據(jù)包。在一些實(shí)施例中,可以通過包 引擎240經(jīng)由至網(wǎng)絡(luò)棧267的傳輸層驅(qū)動(dòng)接口或者過濾器得到內(nèi)核級(jí) 數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)可以包括經(jīng)過內(nèi)核空間202訪問的與網(wǎng)絡(luò) 棧267相關(guān)的任何接口和/或數(shù)據(jù)、通過網(wǎng)絡(luò)棧267接收或傳送的網(wǎng)絡(luò) 包或者網(wǎng)絡(luò)流(network traffic )。在另外的實(shí)施例中,內(nèi)核級(jí)數(shù)據(jù)結(jié) 構(gòu)可以由任一部件或者進(jìn)程232、 240、 234、 236和238來使用,以執(zhí)行期望的部件或者進(jìn)程的操作。在一個(gè)實(shí)施例中,當(dāng)使用內(nèi)核級(jí)數(shù)據(jù) 結(jié)構(gòu)時(shí),部件232、 240、 234、 236和238運(yùn)行在內(nèi)核模式202中,而 在另一實(shí)施例中,當(dāng)使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)時(shí),部件232、 240、 234、 236 和238運(yùn)行在用戶模式中。在一些實(shí)施例中,可以將內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu) 復(fù)制或者傳送至第二內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)或者任何期望的用戶級(jí)數(shù)據(jù)結(jié) 構(gòu)。與客戶端加速程序120相同,器具還可以對(duì)客戶機(jī)205a-205n與服 務(wù)器206a-206n之間的任何通信執(zhí)行高速緩存。在一些實(shí)施例中,高速 緩存存儲(chǔ)器232元件可以包括在器具250的存儲(chǔ)器264中的數(shù)據(jù)對(duì)象。 在另外的實(shí)施例中,高速緩存存儲(chǔ)元件可以包括訪問時(shí)間比存儲(chǔ)器264 更快的存儲(chǔ)器。在另一實(shí)施例中,高速緩存存儲(chǔ)元件可以包括器具250 的任何類型和形式的儲(chǔ)存元件,諸如硬盤的一部分。在一些實(shí)施例中, 處理單元262可以提供高速緩存存儲(chǔ)器,以供本發(fā)明的高速緩存管理 器232使用。在又一實(shí)施例中,高速緩存管理器232可以使用存儲(chǔ)器、 儲(chǔ)存器或者用于對(duì)數(shù)據(jù)、對(duì)象和其他內(nèi)容進(jìn)行高速緩存的器具250的 處理單元中的任何部分和組合。另外,本發(fā)明的高速緩存管理器232包括任何邏輯、功能、規(guī)則 或者操作,以執(zhí)行此處所述的本發(fā)明技術(shù)的任何實(shí)施例。例如,高速 緩存管理器232包括基于無效時(shí)間周期的截止期限或者當(dāng)從客戶機(jī) 205a-205n或服務(wù)器206a-206n接收到無效命令時(shí)使對(duì)象無效的邏輯 或者功能。在一些實(shí)施例中,高速緩存管理器2:32可以作為在內(nèi)核空 間202中執(zhí)行的程序、服務(wù)、進(jìn)程或者任務(wù)進(jìn)行操作,在另一些實(shí)施
例中,可以作為在用戶空間203中執(zhí)行的程序、服務(wù)、進(jìn)程或者任務(wù) 進(jìn)行操作。在一個(gè)實(shí)施例中,高速緩存管理器232的第一部分在用戶 空間203中執(zhí)行,而第二部分在內(nèi)核空間202中執(zhí)行。在一些實(shí)施例 中,高速緩存管理器232可以包括任何類型的通用處理器(GPP)或 者任何其他類型集成電路,諸如現(xiàn)場(chǎng)可編程門陣列(FPGA)、可編程 邏輯器件(PLD)或者專用集成電路(ASIC)。圖2D所描述的策略引擎236例如可以包括智能統(tǒng)計(jì)引擎或者其他 可編程應(yīng)用程序。在一個(gè)實(shí)施例中,策略引擎236提供配置機(jī)制,以 允許用戶來識(shí)別、指定、限定或者配置高速緩存策略。在一些實(shí)施例 中,策略引擎236還具有至存儲(chǔ)器入口,以支持諸如查找表或者哈希 表的數(shù)據(jù)結(jié)構(gòu),從而使得能夠進(jìn)行用戶選擇高速緩存策略決策。在另 外的實(shí)施例中,策略引擎236可以包括任何邏輯、規(guī)則、功能或者操 作,以在確定并提供對(duì)于安全、網(wǎng)絡(luò)流、網(wǎng)絡(luò)訪問、壓縮、或器具250 執(zhí)行的任何其他功能或者操作的訪問、控制和管理之外,確定并提供 了對(duì)器具250高速緩存的對(duì)象、數(shù)據(jù)或者內(nèi)容的訪問、控制和管理。 在一些實(shí)施例中,加速程序120從器具"0的策略引擎236接收、下載 或者獲取策略信息。在另外的實(shí)施例中,加速程序120獨(dú)立于器具250 的策略引擎236或者與其結(jié)合執(zhí)行并操作策略引擎"6。與客戶端加速程序120的方式類似,并仍然參考圖2D,器具包括 加密引擎234,所述加密引擎包括用于處理任何安全相關(guān)協(xié)議進(jìn)程的任 何邏輯、業(yè)務(wù)規(guī)則、功能或者操作,或與其相關(guān)的任何功能,所述安 全相關(guān)協(xié)議諸如是SSL或者TLS。例如,加密引擎234對(duì)經(jīng)過器具250 傳送的網(wǎng)絡(luò)包或者其部分進(jìn)行加密和解密。加密引擎2:34還可以代替 客戶機(jī)205a-205n、服務(wù)器206a-206n或者器具2SO來設(shè)置或建立SSL 或者TLS連接。因而,加密引擎234提供了 SSL的卸載和加速處理。 在一個(gè)實(shí)施例中,加密引擎234使用隧道協(xié)議來提供客戶機(jī)205a-205n 與服務(wù)器206a-206n之間的虛擬專用網(wǎng)絡(luò)。在一些實(shí)施例中,加密引擎 234與加密處理器260進(jìn)行通信。在另外的實(shí)施例,加密引擎234包括 在加密處理器260上運(yùn)行的可執(zhí)行指令。同樣,與客戶端加速程序120相同,器具250可以包括多協(xié)議壓 縮引擎238,,所述壓縮引擎包括用于壓縮一個(gè)或更多網(wǎng)絡(luò)包協(xié)議的任
何邏輯、業(yè)務(wù)規(guī)則、功能或者操作,所述網(wǎng)絡(luò)包協(xié)議諸如是器具250 的網(wǎng)絡(luò)棧267使用的協(xié)議中的任何協(xié)議。在一個(gè)實(shí)施例中,多協(xié)議壓 縮引擎238在客戶機(jī)102a-102n和服務(wù)器206a-206n之間對(duì)任何基于 TCP/IP的協(xié)議進(jìn)行雙向壓縮,所述基于TCP/IP的協(xié)議包括信報(bào)傳遞 應(yīng)用程序接口 (MAPI)(電子郵件),文件傳輸協(xié)議(FTP)、超文 本傳輸協(xié)議(HTTP)、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳 輸)、獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用 協(xié)議(WAP)、移動(dòng)IP協(xié)議和IP語音(VoIP)協(xié)議。在另外的實(shí)施 例中,多協(xié)議壓縮引擎238提供了基于協(xié)議的超文本標(biāo)記語言 (HTML)的壓縮,在一些實(shí)施例中,提供了任何標(biāo)記語言的壓縮, 諸如可擴(kuò)展標(biāo)記語言(XML)。在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238 提供了任何高性能協(xié)議的壓縮,諸如任何設(shè)計(jì)用于器具250和器具250 通信的協(xié)議。在另一實(shí)施例中,多協(xié)議壓縮引擎238壓縮使用改進(jìn)傳 輸控制協(xié)議的任何通信或者任何有效負(fù)荷,諸如TCP事務(wù)(T/TCP)、 TCP選擇性確認(rèn) (TCP-SACK) 、 TCP大窗口 (TCP-LW)、諸如 TCP- Vegas協(xié)議的擁塞預(yù)測(cè)協(xié)議和TCP欺騙協(xié)議。因而,本發(fā)明的多協(xié)議壓縮引擎238加速了用戶通過臺(tái)式客戶機(jī) 訪問應(yīng)用程序的性能,所述臺(tái)式客戶機(jī)例如是Microsoft Outlook和非 網(wǎng)絡(luò)的瘦客戶才幾,諸如通過例如Oracle, SAP和Siebel的通用企業(yè)應(yīng) 用程序來運(yùn)行的任何客戶機(jī),以及諸如便攜式PC的移動(dòng)客戶機(jī)。在一 些實(shí)施例中,與訪問網(wǎng)絡(luò)棧267的包處理引擎240集成在一起并通過 在內(nèi)核模式202中執(zhí)行,多協(xié)議壓縮引擎2:38能夠?qū)CP/IP協(xié)議執(zhí)行 的任何協(xié)議進(jìn)行壓縮,諸如任何應(yīng)用層協(xié)議。圖2D中描述的高速層2-7集成包引擎240也稱作包處理引擎或者 包引擎,負(fù)責(zé)管理器具250經(jīng)過網(wǎng)絡(luò)端口 266接收和傳送的包的內(nèi)核 級(jí)處理。高速層2-7集成包引擎240可以包括在諸如網(wǎng)絡(luò)包的接收或網(wǎng)絡(luò)包的傳送的處理期間對(duì)一個(gè)或更多網(wǎng)絡(luò)包進(jìn)行排隊(duì)的緩沖器。另 外,高速層2-7集成包引擎240與一個(gè)或更多網(wǎng)絡(luò)棧267通信,以經(jīng)過 網(wǎng)絡(luò)端口 266發(fā)送和接收網(wǎng)絡(luò)包。高速層2-7集成包引擎240與加密引 擎234、高速緩存管理器232、策略引擎M6和多協(xié)議壓縮邏輯238結(jié) 合工作。特別地,將加密引擎234配置成執(zhí)行包的SSL處理,將策略 引擎236配置成執(zhí)行與業(yè)務(wù)管理相關(guān)的功能,諸如請(qǐng)求級(jí)別內(nèi)容切換 和請(qǐng)求級(jí)別高速緩存重定向,并將多協(xié)議壓縮邏輯238配置成執(zhí)行與 數(shù)據(jù)的壓縮和解壓縮相關(guān)的功能。高速層2-7集成包引擎240包括包處理定時(shí)器242。在一個(gè)實(shí)施例 中,包處理定時(shí)器242提供一個(gè)或更多時(shí)間間隔,以觸發(fā)即將到來(即 接收)或即將發(fā)出(傳送)的網(wǎng)絡(luò)包的處理。在一些實(shí)施例中,高速 層2-7集成包引擎240響應(yīng)于定時(shí)器242對(duì)網(wǎng)絡(luò)包進(jìn)行處理。包處理定 時(shí)器242為包引擎240提供任何類型和形式的信號(hào),以通知、觸發(fā)或 者傳送與事件、間隔或者發(fā)生相關(guān)的時(shí)間。在許多實(shí)施例中,包處理 定時(shí)器242以微秒級(jí)的速度進(jìn)行操作。例如,在一些實(shí)施例中,包處 理定時(shí)器242提供時(shí)間間隔或者使得高速層2-7集成包引擎240以10ms 的時(shí)間間隔對(duì)網(wǎng)絡(luò)包進(jìn)行處理,而在另外的實(shí)施中,是以5ms的時(shí)間 間隔,在又一實(shí)施例中,是以1和/或2ms的時(shí)間間隔。在操作期間, 高速層2-7集成包引擎240可以與加密引擎234、高速緩存管理器2M、 策略引擎236和多協(xié)議壓縮引擎238對(duì)接、結(jié)合或者通信。因而,可 以響應(yīng)于包處理定時(shí)器242和/或包引擎240來執(zhí)行加密引擎2:34、高 速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任何邏輯、 功能或者操作。因此,可以以通過包處理定時(shí)器242提供的時(shí)間間隔 的顆粒度來執(zhí)行加密引擎234、高速緩存管理器232、策略引擎"6和 多協(xié)議壓縮邏輯238的任何邏輯、功能或者操作,例如以小于或者等 于10ms的時(shí)間間隔來執(zhí)行。例如,在一個(gè)實(shí)施例中,高速緩存管理器 232可以響應(yīng)于高速層2-7集成包引擎2訓(xùn)和/或包處理定時(shí)器242來執(zhí) 行任何高速緩存對(duì)象的無效。在另一實(shí)施例中,高速緩存對(duì)象的終止 或者無效時(shí)間可以設(shè)置為與包處理定時(shí)器242的時(shí)間間隔具有相同的 顆粒度數(shù)量級(jí),諸如每10ms。在另外的實(shí)施例中,包引擎240或者其部分可以諸如像加速程序 120的一部分一樣,在客戶機(jī)20Sa-205n上進(jìn)行操作。因而,加速程序 120可以如上所述根據(jù)包處理定時(shí)器242在客戶機(jī)205a-205n上進(jìn)行操 作。在一個(gè)方面中,加速程序UO可以在執(zhí)行時(shí)的一個(gè)點(diǎn)處并響應(yīng)于 由包處理定時(shí)器242提供的顆粒度時(shí)間間隔,來執(zhí)行綜合的加速技術(shù)。與內(nèi)核空間202相反,用戶空間203是用戶模式應(yīng)用程序或者在用
戶模式中運(yùn)行的程序所使用的部分操作系統(tǒng)或者存儲(chǔ)器區(qū)域。用戶模式應(yīng)用程序可以不直接訪問內(nèi)核空間202,而使用服務(wù)調(diào)用來訪問內(nèi)核 服務(wù)。如圖2D所示,器具250的用戶空間203包括圖形用戶接口( GUI) 210、命令行接口 (CLI) 212、外殼(shell)服務(wù)214、健康狀況監(jiān)視 程序216和守護(hù)進(jìn)程(daemon )服務(wù)218。 GUI 210和CLI 212提供了 一種裝置,通過所述裝置,系統(tǒng)管理器或者其他用戶可以諸如在用戶 空間203或者內(nèi)核空間202中且經(jīng)由器具250的操作系統(tǒng)與器具250 進(jìn)行交互并控制器具250的操作。GUI210可以是任何類型和形式的圖 形用戶接口,并且可以經(jīng)過文本、圖形或者通過任何類型的程序或者 應(yīng)用程序來呈現(xiàn),諸如瀏覽器。CLI212可以是任何類型和形式的命令 行或者基于文本的接口,諸如通過操作系統(tǒng)提供的命令行。例如,CLI 212可以包括外殼,所述外殼是使用戶能夠與操作系統(tǒng)進(jìn)行交互的工 具。在一些實(shí)施例中,可以經(jīng)過bash, csh, tcsh,或ksh類型的外殼 來提供CLI212。外殼服務(wù)214包括程序、服務(wù)、任務(wù)、進(jìn)程或者可執(zhí) 行指令,以支持用戶經(jīng)由GUI 210和/或CLI212與器具250或者操作 系統(tǒng)進(jìn)行交互。仍然參考圖2D,健康狀況監(jiān)視程序216用于監(jiān)視、檢驗(yàn)、報(bào)告和 確保網(wǎng)絡(luò)系統(tǒng)正確工作以及用戶正在接收網(wǎng)絡(luò)上的請(qǐng)求內(nèi)容。健康狀 況監(jiān)視程序216包括一個(gè)或者更多程序、服務(wù)、任務(wù)、進(jìn)程或者可執(zhí) 行指令,以提供用于監(jiān)視器具250的任何活動(dòng)的邏輯、規(guī)則、功能或 操作。在一些實(shí)施例中,健康狀況監(jiān)視程序216截獲并檢查經(jīng)過器具 250的任何網(wǎng)絡(luò)流。在一些實(shí)施例中,健康狀況監(jiān)視程序216通過任何 適當(dāng)?shù)难b置和/或結(jié)構(gòu)與下述一個(gè)或更多程序?qū)?加密引擎234、高速 緩存管理器232、策略引擎236、多協(xié)議壓縮邏輯238、包引擎240、守 護(hù)進(jìn)程服務(wù)218和外殼服務(wù)214。因而,健康狀況監(jiān)視程序216可以調(diào) 用任何應(yīng)用程序接口 (API)來確定器具250的任何部分的情況、狀態(tài) 或者健康狀況。例如,健康狀況監(jiān)視程序216可以以周期為基礎(chǔ)發(fā)出 聲脈沖信號(hào)或者發(fā)送狀態(tài)詢問,以檢驗(yàn)程序、進(jìn)程、服務(wù)或者任務(wù)是 否處于活動(dòng)狀態(tài)或者是否當(dāng)前正在運(yùn)行。在另外的實(shí)施例,健康狀況 監(jiān)視程序216可以檢驗(yàn)由任何程序、進(jìn)程、服務(wù)或者任務(wù)提供的狀態(tài)、 錯(cuò)誤或者歷史日志,以確定器具250的任何部分的任何條件、狀態(tài)或錯(cuò)誤。在另外的實(shí)施例中,健康狀況監(jiān)視程序216可以以類似方式來檢 驗(yàn)和確定與器具250通信的或器具250向其傳送加速程序120的任何客 戶機(jī)205a-205n上的任何客戶端加速程序120的狀態(tài)、錯(cuò)誤和歷史曰 志。在一些實(shí)施例中,健康狀況監(jiān)視程序216或者其部分可以在客戶 機(jī)205a-205n上執(zhí)行。守護(hù)進(jìn)程服務(wù)218是連續(xù)地或者在后臺(tái)運(yùn)行并對(duì)器具250接收的 周期性服務(wù)器請(qǐng)求進(jìn)行處理的程序。在一些實(shí)施例中,守護(hù)進(jìn)程服務(wù) 可以將請(qǐng)求轉(zhuǎn)發(fā)至其他程序或者處理,諸如另一適當(dāng)?shù)氖刈o(hù)進(jìn)程服務(wù) 218??梢詿o人看管地運(yùn)行守護(hù)進(jìn)程服務(wù)218,以執(zhí)行連續(xù)或者周期性 的系統(tǒng)廣泛(wide)功能,諸如網(wǎng)絡(luò)控制,或者執(zhí)行任何期望的任務(wù)。 在一些實(shí)施例中, 一個(gè)或者更多守護(hù)進(jìn)程服務(wù)218在用戶空間2(B中 運(yùn)行,而在另外的實(shí)施例中, 一個(gè)或更多守護(hù)進(jìn)程服務(wù)218在內(nèi)核空 間202中運(yùn)行?,F(xiàn)在將參考圖3A,對(duì)本發(fā)明的方法300的實(shí)施例進(jìn)行描述,所述 方法用于通過器具250動(dòng)態(tài)地提供加速程序120,并通過客戶機(jī)205自 動(dòng)安裝和執(zhí)行加速程序120。簡(jiǎn)要來講,在步驟310,器具2S0截獲來 自客戶機(jī)205的要求建立與服務(wù)器通信會(huì)話的請(qǐng)求。在步驟315,器具 250將加速程序120傳送至客戶機(jī)205,以供客戶機(jī)205自動(dòng)安裝和執(zhí) 行。在步驟320,當(dāng)接收到加速程序UO時(shí),客戶機(jī)205自動(dòng)運(yùn)行或者 執(zhí)行加速程序120的靜默安裝。在步驟325,當(dāng)完成加速程序120的安 裝時(shí),客戶機(jī)205在網(wǎng)絡(luò)棧210自動(dòng)執(zhí)行加速程序120,以截獲客戶機(jī) 205和服務(wù)器206之間的通信信息。在步驟330,加速程序120執(zhí)行多 種加速技術(shù)中的任何一種,并可以對(duì)通信信息進(jìn)行加密和/或解密。更加詳細(xì)地講,在步驟310,器具250可以通過適當(dāng)?shù)难b置和機(jī)制 截獲或者接收來自客戶機(jī)205的要求建立與服務(wù)器206通信的請(qǐng)求。 在一個(gè)實(shí)施例中,器具250的包引擎240截獲來自客戶機(jī)205的通信。 在另外的實(shí)施例中,器具250例如使用加速程序120來建立與客戶機(jī) 205的第一傳輸層連接,以及代替客戶機(jī)205建立與服務(wù)器206的第二 傳輸層連接。因而,器具250可以接收、截獲或得到任何傳送至服務(wù) 器206的客戶機(jī)通信。在一些實(shí)施例中,器具250截獲客戶機(jī)205要求 建立與服務(wù)器206的傳輸層連接的請(qǐng)求。在另外的實(shí)施例中,器具205 截獲要求經(jīng)過傳輸層連接之上的任何協(xié)議層建立通信會(huì)話的請(qǐng)求,諸 如HTTP的應(yīng)用層協(xié)議。本發(fā)明的方法實(shí)施例可以利用要求在客戶機(jī) 205的網(wǎng)絡(luò)棧210的任何協(xié)議層建立通信會(huì)話的請(qǐng)求來實(shí)施。在步驟315,器具250將加速程序120傳送至客戶機(jī)205。器具250 可以在客戶機(jī)205請(qǐng)求建立通信會(huì)話之前、期間或者之后的任何點(diǎn)處 傳送加速程序120。在一個(gè)實(shí)施例中,器具250響應(yīng)于截獲客戶機(jī)請(qǐng)求 將加速程序120傳送至客戶機(jī)205。在另一實(shí)施例中,器具250將所述 請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器206,并將加速程序120傳送至客戶機(jī)205。在一些 實(shí)施例中,器具250建立了與服務(wù)器206的通信會(huì)話,并且一旦建立 了通信會(huì)話時(shí),器具250就傳送加速程序120。在又一實(shí)施例中,器具 250執(zhí)行對(duì)客戶機(jī)205或者客戶機(jī)205的用戶的認(rèn)證和/或授權(quán),如果 認(rèn)證的用戶或者客戶機(jī)205也如此被授權(quán),則器具250將加速程序120 傳送至客戶機(jī)205。在一個(gè)實(shí)施例中,器具250將客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)至服 務(wù)器206,以進(jìn)行認(rèn)證和/或授權(quán),如果服務(wù)器206對(duì)客戶的請(qǐng)求進(jìn)行 了認(rèn)證和/或授權(quán),則器具250將加速程序120傳送至客戶機(jī)205。在一些實(shí)施例中,器具250傳送來自器具250的儲(chǔ)存器或者存儲(chǔ)器 中的加速程序120。在另外的實(shí)施例中,器具250從服務(wù)器206請(qǐng)求加 速程序120,并將所述接收的加速程序120傳送至客戶機(jī)205。在另外 的實(shí)施例中,服務(wù)器206將加速程序120傳送至客戶機(jī)205。在一個(gè)實(shí) 施例中,器具250將統(tǒng)一資源定位器(URL)傳送給客戶機(jī)205,以供 客戶機(jī)205獲取、下載或者接收加速程序。在一些實(shí)施例中,URL指 示了加速程序120在器具250的儲(chǔ)存器或者存儲(chǔ)器中的位置,而在另 外的實(shí)施例中URL指示了服務(wù)器206上的加速程序120,所述服務(wù)器 206諸如是提供用于下載的加速程序120的網(wǎng)絡(luò)服務(wù)器。在一個(gè)實(shí)施例 中,加速程序120存儲(chǔ)在客戶機(jī)205中,器具M(jìn)O將諸如加密或者證書 密鑰的密鑰傳送給客戶機(jī)205,以供客戶機(jī)205來安裝和利用存儲(chǔ)在客 戶機(jī)205上的加速程序120。在一些實(shí)施例中,器具250將用于安裝和 執(zhí)行客戶機(jī)205上的加速程序120的任何文件、配置、數(shù)據(jù)或者其他 信息傳送至客戶機(jī)205。在一個(gè)實(shí)施例中,將加速程序120設(shè)計(jì)和構(gòu)造成通過客戶機(jī)205
自動(dòng)安裝和執(zhí)行。加速程序120可以包括使得加速程序120根據(jù)客戶 機(jī)205的操作系統(tǒng)的類型和形式被操作系統(tǒng)注冊(cè)和識(shí)別的任何文件、 入口、配置、數(shù)據(jù)或者指令。在一個(gè)實(shí)施例中,諸如服務(wù)器或者器具 的另外的計(jì)算裝置將加速程序傳送至客戶機(jī)205,且客戶機(jī)205自動(dòng)安 裝和執(zhí)行加速程序120。在一個(gè)實(shí)施例中,加速程序120被設(shè)計(jì)和構(gòu)造 成添加至正運(yùn)行的計(jì)算設(shè)備100的即插即用(PnP)設(shè)備。在一些實(shí)施 例中,加速程序120是自安裝的可執(zhí)行程序,諸如是包括安裝程序和 加速程序120的可執(zhí)行程序。在另外的實(shí)施例中,加速程序120可以 包括多個(gè)文件,例如安裝包或者安裝卸載包,諸如在客戶機(jī)205的操 作系統(tǒng)中注冊(cè)和安裝加速程序120需要的文件。例如,加速程序120 可以包括.inf文件和.sys文件。.inf文件為Microsoft Windows操作 系統(tǒng)族的Windows Setup提供了安裝設(shè)備需要的信息,諸如設(shè)備的有 效邏輯配置單和裝置相關(guān)驅(qū)動(dòng)文件名。在一些實(shí)施例中,.inf文件可以 包括automn.inf文件,所述autorun.inf是告知或者通知操作系統(tǒng)啟動(dòng)哪個(gè)可執(zhí)行程序以及與啟動(dòng)可執(zhí)行程序相關(guān)的任何配置信息的配置文 件。在一個(gè)實(shí)施例中.sys文件是包括加速程序120或者其部分的驅(qū)動(dòng)器文件。在步驟320,客戶機(jī)205自動(dòng)安裝加速程序l20。加速程序U0可 以根據(jù)客戶機(jī)205的操作系統(tǒng)以任何適當(dāng)?shù)姆绞絹戆惭b。在一個(gè)實(shí)施 例中,客戶機(jī)205在接收到加速程序120時(shí),安裝加速程序120。在一 些實(shí)施例中,客戶機(jī)205自動(dòng)實(shí)施或者執(zhí)行加速程序120的靜默安裝。 在一個(gè)實(shí)施例中,對(duì)客戶機(jī)205的用戶或者應(yīng)用程序透明地執(zhí)行靜默 安裝。在另外的實(shí)施例中,加速程序120的靜默安裝不需要重新引導(dǎo) 或者重新啟動(dòng)客戶機(jī)205。在另一實(shí)施例中,靜默安裝不需要通過用戶 進(jìn)行交互來開始和/或完成安裝。在另外的實(shí)施例中,在客戶機(jī)20S正 在運(yùn)行的同時(shí),發(fā)生加速程序120的靜默安裝,并對(duì)網(wǎng)絡(luò)棧210的網(wǎng) 絡(luò)層、會(huì)話層和/或應(yīng)用層透明。在一些實(shí)施例中,加速程序120是通 過客戶機(jī)205執(zhí)行的自安裝可執(zhí)行程序。在另一實(shí)施例中,客戶機(jī)205 使用即插即用管理器來安裝加速程序120。在一個(gè)實(shí)施例中,客戶機(jī) 205包括用于接收和安裝加速程序120的安裝管理器。在另一實(shí)施例 中,通過器具250傳送的加速程序120還包括用于安裝加速程序120
的安裝程序。在另外的實(shí)施例中,加速程序120通過靜默安裝來自動(dòng)安裝。在 一個(gè)實(shí)施例中,靜默安裝包括無需用戶來照看的安裝。在另一實(shí)施例 中,靜默安裝包括不需要或者不用通過用戶進(jìn)行交互來開始和/或完成 安裝的安裝。在一些實(shí)施例中,安裝是靜默安裝,其原因在于,安裝 過程不顯示與安裝過程或者狀態(tài)相關(guān)的信息。在一個(gè)實(shí)施例中,安裝 是靜默安裝,其原因在于,它對(duì)于用戶是透明的。在另外的實(shí)施例中, 加速程序是靜默安裝,這是因?yàn)榧铀俪绦?20的安裝不需要重新引導(dǎo) 或者重新啟動(dòng)客戶機(jī)205。在另一實(shí)施例中,安裝是靜默安裝,其原因 在于,在客戶機(jī)205的操作期間在無需中斷或者打斷客戶機(jī)操作的情 況下,無縫地發(fā)生所述安裝。因而,可以以對(duì)于客戶機(jī)205的程序或 者用戶以透明的方式安裝加速程序120,而不需要重新引導(dǎo),也不用向 與安裝相關(guān)的用戶顯示任何信息。為了防止或者避免重新引導(dǎo)或重新啟動(dòng)客戶機(jī)205,在一些實(shí)施例 中,客戶機(jī)205諸如客戶機(jī)205的操作系統(tǒng),具有用于在操作系統(tǒng)運(yùn) 行的同時(shí)為即插即用設(shè)備安裝和配置驅(qū)動(dòng)器(諸如在加速程序120的 一個(gè)實(shí)施例中的網(wǎng)絡(luò)驅(qū)動(dòng)器)的即插即用管理器。在一個(gè)實(shí)施例中, 基于加速程序120的安裝包的配置,不指示即插即用管理器來重新引 導(dǎo)或者重新啟動(dòng)客戶機(jī)205。在另一實(shí)施例中,.inf文件不包括重新引 導(dǎo)或者重新啟動(dòng)計(jì)算機(jī)的指令。在一個(gè)實(shí)施例中,加速程序120可以 作為并行部件來實(shí)現(xiàn),而不是替換使用中的共享動(dòng)態(tài)鏈接庫(DDL)。 在另一特定實(shí)施例中,對(duì)于加速程序120的網(wǎng)絡(luò)驅(qū)動(dòng)器,加速程序120 使用INetCfgPnpReconfigCallback網(wǎng)絡(luò)驅(qū)動(dòng)器API,從而使得不要求 用戶重新啟動(dòng)操作系統(tǒng)改變配置來使驅(qū)動(dòng)器有效。另外,加速程序120 可以具有通知對(duì)象,所述通知對(duì)象調(diào)用在INetCfgComponentControl 的ApplyPnpChanges方法實(shí)施內(nèi)的SendPnpReconfig API,以將配置信 息發(fā)送至擁有該對(duì)象的網(wǎng)絡(luò)部件的驅(qū)動(dòng)器。SendPnpReconfig API提供 了具有將數(shù)據(jù)發(fā)送至驅(qū)動(dòng)器的機(jī)制的通知對(duì)象,在一些實(shí)施例中,用 于避免在結(jié)構(gòu)改變生效前請(qǐng)求用戶重新引導(dǎo)操作系統(tǒng)。在步驟325,當(dāng)自動(dòng)地、靜默地或者透明地完成了加速程序120的 安裝時(shí),加速程序120在客戶機(jī)205上自動(dòng)執(zhí)行。在一些實(shí)施例中,
用來安裝加速程序120的安裝程序啟動(dòng)或者執(zhí)行加速程序120。在一些 實(shí)施例中,加速程序120的安裝程序進(jìn)行系統(tǒng)調(diào)用以加載或者執(zhí)行客 戶機(jī)205的存儲(chǔ)器中的加速程序120。在一個(gè)實(shí)施例中,加速程序120 的安裝包括啟動(dòng)加速程序120的指令、命令或者偽指令(directive)。 在一個(gè)實(shí)施例中,加速程序120包括自動(dòng)運(yùn)行配置,諸如autorun.inf文 件,該文件通知客戶機(jī)205自動(dòng)運(yùn)行加速程序120。在另外的實(shí)施例中, 即插即用管理器或者客戶機(jī)205的操作系統(tǒng)在安裝時(shí)自動(dòng)執(zhí)行加速程 序120。在一個(gè)實(shí)施例中,加速程序120包括客戶機(jī)205啟動(dòng)的服務(wù)、 進(jìn)程、線程或者任務(wù)。在一些實(shí)施例中,加速程序120是配置成自動(dòng) 啟動(dòng)的操作系統(tǒng)服務(wù)。在一個(gè)實(shí)施例中,加速程序120包括在客戶機(jī) 操作系統(tǒng)的網(wǎng)絡(luò)棧的存儲(chǔ)器中加載的網(wǎng)絡(luò)驅(qū)動(dòng)器。
在另 一實(shí)施例中,加速程序120包括加載至客戶機(jī)205的存儲(chǔ)器中 的網(wǎng)絡(luò)驅(qū)動(dòng)器。在一些實(shí)施例中,加速程序120加載至分配給網(wǎng)絡(luò)棧 210的存儲(chǔ)器中。在一些情況下,加速程序120在允許加速程序120訪 問的諸如傳輸層的網(wǎng)絡(luò)棧協(xié)議層的存儲(chǔ)器區(qū)域或者空間中加載和執(zhí) 行。在其他的情況下,加速程序在允許加速程序120訪問內(nèi)核級(jí)數(shù)據(jù) 結(jié)構(gòu)225的存儲(chǔ)器中加載和執(zhí)行。在另外的實(shí)施例中,加速程序120 被加載至應(yīng)用程序220a-220n的存儲(chǔ)器中。在另外的實(shí)施例中,加速 程序120在其身的存儲(chǔ)器空間或者上下文中獨(dú)立地執(zhí)行。在一個(gè)實(shí)施 例中,加速程序120在應(yīng)用程序220a-220n的存儲(chǔ)器空間或者上下文 中運(yùn)行。在一些實(shí)施例中,加速程序120被加載至用戶模式存儲(chǔ)器或 者分配給用戶模式203的存儲(chǔ)器中,而在另一些實(shí)施例中,加速程序 120被加載至內(nèi)核模式存儲(chǔ)器或者分配給內(nèi)核模式202的存儲(chǔ)器中。
在一些實(shí)施例中,加速程序120加載至存儲(chǔ)器和/或在客戶機(jī)205 上對(duì)客戶機(jī)的用戶、客戶機(jī)205的應(yīng)用程序、器具250或者服務(wù)器206 透明地執(zhí)行所述加速程序。在另外的實(shí)施例中,加速程序120執(zhí)行以 與網(wǎng)絡(luò)棧120的傳輸層的對(duì)接,并對(duì)傳輸層之上的任何協(xié)議層(諸如, 會(huì)話層或者應(yīng)用層)和傳輸層之下的任何協(xié)議層(諸如網(wǎng)絡(luò)層)透明 地執(zhí)行。在一個(gè)實(shí)施例中,加速程序120對(duì)客戶機(jī)205的任何傳輸層 連接或者對(duì)于傳輸層本身透明地執(zhí)行。在步驟330,被加栽、啟動(dòng)或者執(zhí)行的加速程序120執(zhí)行加速程序 120的多種加速技術(shù)中的任何一種技術(shù),諸如由以下技術(shù)提供的任何技 術(shù)1)多協(xié)議壓縮238, 2)傳輸控制協(xié)議池224, 3)傳輸控制協(xié)議 復(fù)用226, 4)傳輸控制協(xié)議緩沖228,和5)經(jīng)由高速緩存管理器232 的高速緩存。加速程序120還可以執(zhí)行對(duì)客戶機(jī)205和服務(wù)器206之間 通信的任何加密和/或解密。在一個(gè)實(shí)施例中,加速程序120執(zhí)行多協(xié) 議壓縮。在另一實(shí)施例中,加速程序120執(zhí)行傳輸控制協(xié)議池,而在 又一實(shí)施例中,加速程序120經(jīng)過入池的傳輸層連接執(zhí)行復(fù)用。 一個(gè) 實(shí)施例中,加速程序120執(zhí)行傳輸控制協(xié)議緩沖。在一些實(shí)施例中, 加速程序120執(zhí)行高速緩存。在另外的實(shí)施例中,加速程序120執(zhí)行 高速緩存和壓縮。在一個(gè)實(shí)施例中,加速程序120執(zhí)行對(duì)于傳輸層池 和復(fù)用的高速緩存。在另一實(shí)施例中,加速程序120對(duì)于傳輸層池和 復(fù)用執(zhí)行多協(xié)議壓縮。在另一實(shí)施例中,加速程序120執(zhí)行對(duì)于TCP 緩沖的高速緩存和/或壓縮,而在另一實(shí)施例執(zhí)行對(duì)于TCP池和復(fù)用的 的高速緩存和/或壓縮。因而,本發(fā)明的客戶端加速程序120通過器具250動(dòng)態(tài)地提供,并 在客戶機(jī)205上以靜默地方式或者對(duì)客戶機(jī)205的應(yīng)用程序或者用戶 透明地自動(dòng)安裝和執(zhí)行,以對(duì)客戶機(jī)205和服務(wù)器206之間的通信執(zhí) 行一種或更多客戶端加速技術(shù)。加速程序120可以對(duì)于網(wǎng)絡(luò)棧中的任 何協(xié)議層以及對(duì)于客戶機(jī)的用戶、客戶機(jī)的應(yīng)用程序、器具或者服務(wù) 器透明地執(zhí)行這些加速技術(shù)。在另一方面中,本發(fā)明涉及這樣一種器具250,所述器具用于確定 客戶機(jī)205要求訪問的應(yīng)用程序是否可以加速,在所述應(yīng)用程序可以 加速時(shí),為客戶機(jī)205提供加速程序120?,F(xiàn)在將參考圖3B對(duì)本發(fā)明 方法的另一實(shí)施例進(jìn)行描述。當(dāng)要求建立連接或者通信會(huì)話以及要求 訪問服務(wù)器上的應(yīng)用程序時(shí),可以實(shí)施本發(fā)明。簡(jiǎn)要地概述方法350, 在步驟355,器具250截獲來自客戶機(jī)205的要求訪問服務(wù)器206上的 應(yīng)用程序220a-220n的請(qǐng)求。在步驟260,器具250確定應(yīng)用程序220 是否能夠加速。在步驟365,如果應(yīng)用程序220不能加速,那么在步驟 367應(yīng)用程序?qū)⒄?qǐng)求轉(zhuǎn)發(fā)至服務(wù)器。在步驟365,如果應(yīng)用程序220可 以被加速,則器具250確定加速程序120是否安裝在客戶機(jī)205上,或 者已經(jīng)在以前將其傳送至客戶機(jī)205。如果還未向客戶機(jī)205提供加速 程序120,那么方法350在上述方法300的步驟315繼續(xù)傳送、安裝和 執(zhí)行加速程序。如果已經(jīng)在客戶機(jī)205上安裝和執(zhí)行了加速程序120, 那么器具250在步驟375發(fā)送消息給客戶機(jī)205上的加速程序120以對(duì) 應(yīng)用程序220進(jìn)行加速。在方法350的步驟330,加速程序120對(duì)應(yīng)用 程序220的通信執(zhí)行多種加速技術(shù),并可以對(duì)這樣的通信進(jìn)行加密和/ 或解密。更詳細(xì)地來講,在步驟355,器具250可以通過任何適當(dāng)?shù)难b置和 結(jié)構(gòu)截獲來自客戶機(jī)205的要求訪問服務(wù)器206提供的應(yīng)用程序的請(qǐng) 求。在一個(gè)實(shí)施例中,器具250的包引擎240截獲來自客戶機(jī)205的通 信。在另外的實(shí)施例中,器具250例如使用加速程序120建立與客戶 機(jī)205的第 一傳輸層連接,并代替客戶機(jī)205建立與服務(wù)器205的第二 傳輸層連接。因而,器具250可以接收、截獲或者另外獲取傳送至服 務(wù)器206的客戶機(jī)通信中的任何通信。在一些實(shí)施例中,器具250截 獲客戶機(jī)205要求經(jīng)過已經(jīng)建立的與服務(wù)器206的傳輸層連接來訪問 應(yīng)用程序220的請(qǐng)求。在另外的實(shí)施例中,器具205截獲要求經(jīng)過傳 輸層連接上的任何協(xié)議層(諸如HTTP的應(yīng)用層協(xié)議)來建立通信會(huì) 話的請(qǐng)求。在一個(gè)實(shí)施例中,器具205截獲客戶機(jī)205要求經(jīng)過遠(yuǎn)程 顯示協(xié)議(諸如ICA或者RDP)顯示和提供來自服務(wù)器206的應(yīng)用程 序220的請(qǐng)求。在步驟360,器具250確定客戶機(jī)20S請(qǐng)求的應(yīng)用程序2M是否可 以加速。在一些實(shí)施例中,器具250從截獲的客戶機(jī)請(qǐng)求中識(shí)別、提 取或者處理應(yīng)用程序標(biāo)識(shí)符,所述標(biāo)識(shí)符以名稱、類型或者分類 (category )識(shí)別了應(yīng)用程序。在一個(gè)實(shí)施例中,應(yīng)用程序加速確定機(jī) 制275由器具250使用,以確定應(yīng)用程序220是否可以被加速。在一些 實(shí)施例中,應(yīng)用程序加速確定機(jī)制275在數(shù)據(jù)庫、查找表或者存儲(chǔ)器 或者儲(chǔ)存裝置中其他結(jié)構(gòu)數(shù)據(jù)源(諸如數(shù)據(jù)結(jié)構(gòu)或者對(duì)象)中執(zhí)行詢 問或查詢,從而確定應(yīng)用程序220是否可以被加速。在另外的實(shí)施例 中,器具250發(fā)送諸如請(qǐng)求的通信信息至服務(wù)器206,以確定應(yīng)用程序 220是否可以被加速。在另外的實(shí)施例中,器具250具有性能日志或者歷史,以確定應(yīng) 用程序220以前是否被加速過以及所述加速是否提高了應(yīng)用程序220 的性能和操作。因而,如果這種加速滿足應(yīng)用程序220的性能或操作 改善的預(yù)定閾值,器具250則可以確定應(yīng)用程序220可以加速。在又 一實(shí)施例中,器具250基于網(wǎng)絡(luò)204、客戶機(jī)205或者服務(wù)器206的當(dāng) 前操作和性能提供了啟發(fā)式規(guī)則。在一個(gè)實(shí)施例中,如果客戶機(jī)205 具有特定的性能和操作特性或者能力,則可以確定應(yīng)用程序220能夠 被加速,例如具有特定速度的處理器或者最小的存儲(chǔ)器量。在一些實(shí) 施例中,可以基于諸如在器具250的策略管理器中的配置策略或者規(guī) 則來確定應(yīng)用程序220能夠加速。例如,可以對(duì)在遠(yuǎn)程用戶和/或服務(wù) 器206之間通信的應(yīng)用程序220進(jìn)行加速,所述遠(yuǎn)程用戶使用特定類 型客戶機(jī)205來訪問特定類型應(yīng)用程序220。在另外的實(shí)施例中,可以 基于客戶機(jī)205的用戶認(rèn)證和授權(quán)來確定應(yīng)用程序220能夠加速。在 又一實(shí)施例中,器具220可以確定不能對(duì)應(yīng)用程序220進(jìn)行加速。例 如,應(yīng)用程序220是偶爾使用類型的應(yīng)用程序。在步驟365,如果確定應(yīng)用程序220不能被加速,或者不希望對(duì)客 戶機(jī)205上的應(yīng)用程序220應(yīng)用加速技術(shù),則在步驟368,器具250將 截獲的客戶機(jī)請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器206,且不向客戶機(jī)205傳送或者提供 加速程序120。在一個(gè)實(shí)施例中,器具250可以執(zhí)行或者提供基于器具 的器具220 (應(yīng)用程序)的加速。在另外的實(shí)施例中,器具250不執(zhí)行 對(duì)器具250上的應(yīng)用程序220的加速。在又一實(shí)施例中,器具2S0可以 執(zhí)行一些加速技術(shù),但是另外如果器具250確定應(yīng)用程序220不能夠 被加速或者不期望被加速,不對(duì)應(yīng)用程序220執(zhí)行加速技術(shù)。在步驟365,如果確定應(yīng)用程序220能夠被加速或者期望對(duì)客戶機(jī) 205上的應(yīng)用程序應(yīng)用加速技術(shù),則器具250確定是否已將加速程序 120提供給客戶機(jī)205。在一個(gè)實(shí)施例中,器具250確定加速程序120 是否已經(jīng)安裝在客戶機(jī)205上或者是否正在客戶機(jī)205上執(zhí)行。在一 些實(shí)施例中,器具250發(fā)送通信信息至客戶機(jī)205上的加速程序120 以確定加速程序120是否可以在客戶機(jī)205上運(yùn)行。在另外的實(shí)施例 中,器具250檢查日志文件或者歷史文件以確定加速程序UO是否已 經(jīng)傳送至客戶機(jī)205。在另一實(shí)施例中,器具250檢查客戶機(jī)205或者 器具250的健康狀況監(jiān)視程序216,以確定是否正在客戶機(jī)205上執(zhí)行 加速程序120。
如果器具250確定加速程序120已經(jīng)傳送、已經(jīng)在客戶機(jī)205上安 裝和/或執(zhí)行,則器具250將根據(jù)結(jié)合圖3A描述的方法300的步驟提供 加速程序120。例如,器具250將加速程序120傳送至客戶機(jī)205,所 述客戶機(jī)205 —旦接收到加速程序,則自動(dòng)安裝和執(zhí)行。在一個(gè)實(shí)施 例中,當(dāng)達(dá)到方法300的實(shí)施例的適當(dāng)步驟的性能時(shí),器具250可以 在步驟275發(fā)送消息給加速程序,以對(duì)應(yīng)用程序220應(yīng)用一個(gè)或更多 加速技術(shù)。在另外的實(shí)施例中,如果加速程序120已經(jīng)安裝并執(zhí)行, 那么在步驟375,器具250發(fā)送消息給加速程序120以對(duì)應(yīng)用程序220 應(yīng)用一個(gè)或更多加速技術(shù)。在一些實(shí)施例中,加速程序120對(duì)識(shí)別的應(yīng)用程序120執(zhí)行加速程 序120可以利用的加速技術(shù)中任一加速技術(shù)。在另外的實(shí)施例中,器 具250向加速程序120指明對(duì)應(yīng)用程序220執(zhí)行哪種加速技術(shù)。在一個(gè) 實(shí)施例中,加速程序120可以基于每個(gè)會(huì)話對(duì)應(yīng)用程序120應(yīng)用期望 的加速技術(shù)。即,從器具250到加速程序120的消息僅告知加速程序 120對(duì)應(yīng)用程序220的該會(huì)話或?qū)嵗龍?zhí)行加速技術(shù)。在另外的實(shí)施例 中,當(dāng)加速程序120從器具250接收到對(duì)識(shí)別的應(yīng)用程序220應(yīng)用加速 技術(shù)的消息時(shí),加速程序120對(duì)應(yīng)用程序220的任何實(shí)例或者會(huì)話應(yīng) 用加速技術(shù),直到重新引導(dǎo)或者重新啟動(dòng)客戶機(jī)205,或者重新引導(dǎo)或 者重新啟動(dòng)器具205。在一個(gè)實(shí)施例中,在步驟375來自器具250的消息并非是特定應(yīng)用 程序的。例如,該消息通知加速程序120對(duì)客戶機(jī)205的任何應(yīng)用程 序執(zhí)行一種或更多加速技術(shù)。在一些實(shí)施例中,發(fā)送至客戶機(jī)205的 消息通知加速程序120停止對(duì)應(yīng)用程序220或者對(duì)所有應(yīng)用程序220a - 220n使用任一種或者更多加速程序。在另一實(shí)施例中,器具250發(fā) 送消息給加速程序120,以忽略某些應(yīng)用程序220。在又一實(shí)施例中, 器具250發(fā)送消息給加速程序120,以向加速程序120提供配置數(shù)據(jù)或 信息,諸如加速技術(shù)的更新或者新加速技術(shù)的應(yīng)用。在步驟330,加速程序120對(duì)應(yīng)用程序220執(zhí)行加速程序120的多 種加速技術(shù)中的任一種,諸如由下列技術(shù)提供的任何技術(shù)1)多協(xié)議 壓縮238, 2)傳輸控制協(xié)議池224, 3)傳輸控制協(xié)議復(fù)用226, 4)傳 輸控制協(xié)議緩沖228,和5)經(jīng)由高速緩存管理器232的高速緩存。加
速程序120可以執(zhí)行應(yīng)用程序220在客戶機(jī)205和服務(wù)器206之間的通 信的任何加密和/或解密。在一個(gè)實(shí)施例中,加速程序120執(zhí)行應(yīng)用程 序相關(guān)數(shù)據(jù)的多協(xié)議壓縮。在另一實(shí)施例中,加速程序執(zhí)行傳輸控制 協(xié)議池,而在又一實(shí)施例中,加速程序120經(jīng)由入池的傳輸層連接來 執(zhí)行復(fù)用。 一個(gè)實(shí)施例中,加速程序120執(zhí)行傳輸控制協(xié)議緩沖。在 一些實(shí)施例中,加速程序120執(zhí)行高速緩存。在另外的實(shí)施例中,加 速程序120執(zhí)行高速緩存和壓縮。在一個(gè)實(shí)施例中,加速程序120對(duì) 傳輸層池執(zhí)行高速緩存,而在另一實(shí)施例中還對(duì)復(fù)用執(zhí)行高速緩存。 在另一實(shí)施例中,加速程序120對(duì)TCP緩沖執(zhí)行多協(xié)議壓縮,在再一 實(shí)施例中,對(duì)傳輸層池執(zhí)行多協(xié)議壓縮,在又一實(shí)施例中,還對(duì)復(fù)用 執(zhí)行多協(xié)議壓縮。在另一實(shí)施例中,加速程序120對(duì)壓縮進(jìn)行高速緩 存,在再一實(shí)施例中,對(duì)TCP池執(zhí)行高速緩存,在又一實(shí)施例中,還 對(duì)復(fù)用執(zhí)行高速緩存。因而,本發(fā)明的器具250動(dòng)態(tài)地確定是否對(duì)應(yīng)用程序進(jìn)行加速或 者應(yīng)用程序是否能夠被加速,并發(fā)送消息通知本發(fā)明的客戶端加速程 序120以在客戶機(jī)205上對(duì)應(yīng)用程序220執(zhí)行任一種或者更多加速技 術(shù)。另外,在一些實(shí)施例中,可通過器具將多個(gè)加速程序120動(dòng)態(tài)地 遞送給客戶機(jī)205,并通過客戶機(jī)205自動(dòng)安裝和執(zhí)行。例如,可以根 據(jù)本發(fā)明的技術(shù)和方法,為到服務(wù)器205的每個(gè)連接或者與應(yīng)用程序 220的每個(gè)通信會(huì)話提供加速程序120。因而,客戶機(jī)205可以自動(dòng)安 裝并執(zhí)行多個(gè)加速程序120,以處理和執(zhí)行每個(gè)服務(wù)器206a-206n或者 每個(gè)應(yīng)用程序220a- 220n的加速。在一個(gè)方面中,本發(fā)明涉及通過加速程序以綜合高效的方式來執(zhí) 行多種加速技術(shù)。加速程序120在傳輸控制協(xié)議連接的傳輸層截獲網(wǎng) 絡(luò)包,并使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)來得到網(wǎng)絡(luò)包的信息和數(shù)據(jù),諸如有效 負(fù)荷數(shù)據(jù),以在加速程序120執(zhí)行的單個(gè)接口點(diǎn)或者位置應(yīng)用多種加 速技術(shù)?,F(xiàn)在參考圖3D,將描述用于以綜合的方式執(zhí)行多種加速技術(shù) 的方法380的實(shí)施例。簡(jiǎn)要來講,在步驟280,加速程序120在傳輸層 截獲經(jīng)過傳輸層連接在客戶機(jī)205和服務(wù)器206之間通信的網(wǎng)絡(luò)包。 在步驟3卯,加速程序120在傳輸層通過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)對(duì)網(wǎng)絡(luò)包進(jìn)行 訪問,例如經(jīng)由API提供的到客戶機(jī)205的網(wǎng)絡(luò)棧210的數(shù)據(jù)結(jié)構(gòu)。在步驟395,加速程序120在加速程序120中的接口點(diǎn)或者執(zhí)行點(diǎn)使用 內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)以綜合的方式執(zhí)行多種加速技術(shù)。進(jìn)一步詳細(xì)地講,在步驟385,加速程序120通過任何適當(dāng)?shù)难b置 和結(jié)構(gòu)截獲經(jīng)過傳輸層連接在客戶機(jī)205和服務(wù)器206之間通信的網(wǎng) 絡(luò)包。在一個(gè)實(shí)施例中,加速程序120截獲客戶機(jī)請(qǐng)求或者對(duì)請(qǐng)求響 應(yīng)的網(wǎng)絡(luò)包或相關(guān)網(wǎng)絡(luò)包,所述請(qǐng)求要求建立客戶機(jī)205和服務(wù)器206 之間的傳輸層連接。在另一實(shí)施例中,加速程序120截獲請(qǐng)求或者對(duì) 請(qǐng)求響應(yīng)的網(wǎng)絡(luò)包或相關(guān)網(wǎng)絡(luò)包,所述請(qǐng)求要求經(jīng)過客戶機(jī)205和服 務(wù)器206之間的傳輸層連接訪問或使用應(yīng)用程序220。在一個(gè)實(shí)施例 中,加速程序120在傳輸協(xié)議層經(jīng)由網(wǎng)絡(luò)棧210的傳輸驅(qū)動(dòng)接口或者 與傳輸協(xié)議層對(duì)接的網(wǎng)絡(luò)驅(qū)動(dòng)器截獲網(wǎng)絡(luò)包。在另一實(shí)施例中,加速 程序120在傳輸協(xié)議層或者網(wǎng)絡(luò)棧210的任何其他協(xié)議層經(jīng)由網(wǎng)絡(luò)驅(qū) 動(dòng)器接口規(guī)范(NDIS)驅(qū)動(dòng)器或者迷你端口驅(qū)動(dòng)器或者迷你過濾器驅(qū) 動(dòng)器截獲網(wǎng)絡(luò)包。在一些實(shí)施例中,加速程序120在傳輸層經(jīng)過勾掛 或者過濾機(jī)制截獲網(wǎng)絡(luò)包。在步驟390,加速程序UO經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)2M訪問或者獲取在傳輸層截獲的網(wǎng)絡(luò)包的信息和數(shù)據(jù)。通過使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225, 加速程序120可以得到有效負(fù)荷的信息和數(shù)據(jù)或者在傳輸層通過網(wǎng)絡(luò) 包傳送和攜帶的一個(gè)或更多協(xié)議的信息和數(shù)據(jù)。在一些實(shí)施例中,使 用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)來表示網(wǎng)絡(luò)棧層和/或傳輸層以上層的網(wǎng)絡(luò)包,使得 加速程序120能夠在傳輸層對(duì)傳輸層網(wǎng)絡(luò)包攜帶的協(xié)議層執(zhí)行或者操 作多種加速技術(shù)。在一個(gè)實(shí)施例中,使用單個(gè)內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225防 止或者避免了使用網(wǎng)絡(luò)棧210的各個(gè)協(xié)議層的多個(gè)數(shù)據(jù)結(jié)構(gòu)隨著上下 文切換而進(jìn)行的復(fù)制和存儲(chǔ)器分配。在一個(gè)實(shí)施例中,加速程序120 將內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225復(fù)制到第二數(shù)據(jù)結(jié)構(gòu),所述第二數(shù)據(jù)結(jié)構(gòu)包括 另一內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)或者用戶級(jí)數(shù)據(jù)結(jié)構(gòu)。在步驟395,加速程序UO在可執(zhí)行指令集或程序210中的單個(gè)接 口點(diǎn)或位置、或者在程序210的一個(gè)執(zhí)行點(diǎn)實(shí)施、執(zhí)行或者操作多種 加速技術(shù)。加速程序120執(zhí)行加速程序120的多種加速技術(shù)中的任何 技術(shù),諸如由以下技術(shù)提供的任何技術(shù)1)多協(xié)議壓縮238, 2)傳輸 控制協(xié)議池224, 3)傳輸控制協(xié)議復(fù)用226, 4)傳輸控制協(xié)議緩沖228,
和5)經(jīng)由高速緩存管理器232的高速緩存。加速程序120還可以在執(zhí) 行加速程序120的加速技術(shù)的相同點(diǎn)處對(duì)客戶機(jī)205和服務(wù)器206之間 的應(yīng)用程序220的通信執(zhí)行任何加密和/或解密。在一個(gè)實(shí)施例中,加速程序120在諸如函數(shù)調(diào)用的可執(zhí)行指令集 中或者一個(gè)地點(diǎn)或位置中,在加速技術(shù)相互之后執(zhí)行任何期望的加速 技術(shù)。例如,加速程序120經(jīng)由內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)得到截獲的網(wǎng)絡(luò)包, 然后在加速技術(shù)相互之后執(zhí)行代表加速技術(shù)的邏輯、功能、規(guī)則或者 操作的指令。因而,經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225可以一次提取或得到網(wǎng) 絡(luò)包的信息和數(shù)據(jù),并可以用作代表加速技術(shù)的應(yīng)用程序120的任何 指令的輸入、參數(shù)、變?cè)蜅l件。盡管網(wǎng)絡(luò)包攜帶了更高級(jí)別的協(xié)議 數(shù)據(jù)和信息,但是在一些實(shí)施例中,加速程序120在執(zhí)行期間的一個(gè) 點(diǎn)處和一個(gè)時(shí)間對(duì)網(wǎng)絡(luò)包和更高級(jí)別的協(xié)議數(shù)據(jù)和信息進(jìn)行處理。另 外,加速程序120可以按照任何期望的順序以綜合的方式來執(zhí)行多種 加速技術(shù)的每種技術(shù),諸如將壓縮數(shù)據(jù)存儲(chǔ)在高速緩存管理器232中, 或者對(duì)從高速緩存中取得的數(shù)據(jù)進(jìn)行壓縮/解壓縮。在一個(gè)實(shí)施例中,加速程序120在相互之后執(zhí)行多協(xié)議壓縮和高 速緩存。在另一實(shí)施例中,加速程序120在相互之后經(jīng)過入池的傳輸 層連接執(zhí)行與傳輸控制協(xié)議池和復(fù)用相關(guān)的操作。在一個(gè)實(shí)施例中, 加速程序120在壓縮和高速緩存之后或者在TCP池和/或復(fù)用之后執(zhí)行 傳輸控制協(xié)議緩沖。在一些實(shí)施例中,加速程序120執(zhí)行高速緩存。 在一個(gè)實(shí)施例中,加速程序120隨后對(duì)傳輸層池和復(fù)用執(zhí)行高速緩存。 在另一實(shí)施例中,加速程序120隨后對(duì)傳輸層池和復(fù)用執(zhí)行多協(xié)議壓 縮。在另一實(shí)施例中,加速程序120隨后對(duì)TCP緩沖執(zhí)行高速緩存和/ 或壓縮,在另一實(shí)施例中,隨后對(duì)TCP池和復(fù)用執(zhí)行高速緩存和/或壓 縮。盡管,通常將加速程序描述為隨后執(zhí)行加速技術(shù),但是隨后執(zhí)行輯:、二能和操;。由于在加速程序的單個(gè)接口點(diǎn)或者執(zhí)行點(diǎn)可以執(zhí)行 加速技術(shù)、任何其他的操作或功能的可執(zhí)行指令,使用這種加速技術(shù) 的可執(zhí)行指令的綜合,加速程序仍可以得到高效的操作和性能。另夕卜, 可以在傳輸層的一個(gè)位置和/或一個(gè)時(shí)間處理傳輸協(xié)議層攜帶的或者傳
輸協(xié)議層之上的協(xié)議層的加速技術(shù)。因而,由于網(wǎng)絡(luò)包在網(wǎng)絡(luò)棧210 的這些更高層或者在網(wǎng)絡(luò)棧210的隨后的點(diǎn)進(jìn)行處理和傳輸,因此不 需要再次應(yīng)用這些更高層協(xié)議的加速技術(shù)。在另一方面中,本發(fā)明可以使用第一程序222和加速程序120 (在 該實(shí)施例中也稱作第二程序)來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,可以諸如經(jīng) 過器具250使用第 一程序222連同第二程序120 —起來促進(jìn)和建立與服 務(wù)器206的虛擬專用網(wǎng)絡(luò)連接,在所述器具250上可以應(yīng)用本發(fā)明的 客戶端加速技術(shù)。在另外的實(shí)施例中,使用第一程序222來安裝和執(zhí) 行第二程序或者加速程序120?,F(xiàn)在將參考圖4A描述用于實(shí)施本發(fā)明 該方面的方法400的實(shí)施例。簡(jiǎn)要來講,在步驟402,客戶機(jī)進(jìn)入系統(tǒng) 并建立與器具205的通信會(huì)話。在步驟404,器具250發(fā)送第一程序222 至客戶機(jī)205。在步驟406,客戶機(jī)205安裝并執(zhí)行第一程序222,接 著第一程序222安裝并執(zhí)行加速程序120,即第二程序。在步驟407, 客戶機(jī)205經(jīng)過已建立的加密數(shù)據(jù)通信會(huì)話與專用網(wǎng)絡(luò)進(jìn)行通信并訪 問專用網(wǎng)絡(luò)上的資源。在步驟410,客戶機(jī)205從器具250退出,并終 止與器具250的通信會(huì)話。在方法400的步驟402,客戶機(jī)205執(zhí)行進(jìn)入系統(tǒng)的過程,并建立 經(jīng)過網(wǎng)絡(luò)204與器具250的加密數(shù)據(jù)通信會(huì)話。在一個(gè)實(shí)施例中,加 密數(shù)據(jù)通信會(huì)話用作客戶機(jī)205到任一服務(wù)器206a - 206n的橋信息流 (bridge traffic)的隧道,其在專用數(shù)據(jù)通信網(wǎng)絡(luò)204,中駐留在器具 250之后。在一個(gè)實(shí)施例中,客戶機(jī)205使用網(wǎng)絡(luò)瀏覽器,諸如Microsoft Internet Explorer⑧或者Netscape Navigator⑧來進(jìn)入系統(tǒng)并4吏用安全套 接字層(SSL)或者諸如IPSec和傳輸層安全協(xié)議(TLS)的其他加密 方法來建立與器具250之間的數(shù)據(jù)通信會(huì)話。在另一實(shí)施例中,諸如 安全套接字層上的超文本傳輸協(xié)議(HTTPS)的協(xié)議可以用來啟動(dòng)加 密數(shù)據(jù)通信會(huì)話。在步驟404,響應(yīng)于進(jìn)入系統(tǒng)和加密數(shù)據(jù)通信會(huì)話的建立,器具 250發(fā)送笫一程序給網(wǎng)絡(luò)204上的客戶機(jī)205。將第一程序設(shè)計(jì)并構(gòu)造 或者配置成充當(dāng)加密數(shù)據(jù)通信會(huì)話上的通信的隧道端點(diǎn)。在一個(gè)實(shí)施 例中,第一程序包括通過客戶機(jī)204的瀏覽器自動(dòng)安裝和執(zhí)行的插件 應(yīng)用程序。例如,第一程序可以包括作為插件提供的供MicrosoftInternet Explorer 網(wǎng)絡(luò)瀏覽器執(zhí)行的ActiveX控件。在另一實(shí)施例中, 第 一程序可以包括作為插件提供的供Netscape Navigator 網(wǎng)絡(luò)瀏覽器 執(zhí)行Java小程序,或者在網(wǎng)絡(luò)環(huán)境中工作的另外控制或者編程部件。在步驟406,客戶機(jī)205安裝并執(zhí)行第一程序222,其中執(zhí)行第一 程序包括在客戶機(jī)205上安裝笫二程序。在一個(gè)實(shí)施例中,笫一程序 222可以諸如使用結(jié)合圖3A和方法300討論的任何一種技術(shù)自動(dòng)安裝 并執(zhí)行。在一些實(shí)施例中,第一程序222從器具250獲取、下載或者 接收第二程序或者加速程序120。在另一實(shí)施例中,第一程序222包括 諸如加速程序120的第二程序的安裝程序或者安裝管理器,以諸如通 過靜默安裝或者對(duì)客戶機(jī)205的用戶、客戶機(jī)205的應(yīng)用程序220、器 具250或者服務(wù)器206透明的安裝來自動(dòng)安裝并執(zhí)行第二程序。在一個(gè)實(shí)施例中,將第二程序部分上配置成截獲運(yùn)行在客戶機(jī)205 上其目標(biāo)是網(wǎng)絡(luò)204上資源的應(yīng)用程序220的通信信息,并將截荻的 通信信息提供給第一程序222,以通過加密的數(shù)據(jù)通信會(huì)話將其發(fā)送至 器具250。第二程序還可以配置成提供內(nèi)部網(wǎng)絡(luò)名稱解析服務(wù)以及可選 的分割網(wǎng)絡(luò)流。通過分割網(wǎng)絡(luò)流,本發(fā)明的實(shí)施例就能夠確定將哪個(gè) 業(yè)務(wù)引導(dǎo)(channel)至SSL隧道或者第一程序222的加密隧道,以及 允許哪個(gè)業(yè)務(wù)或者使得哪個(gè)業(yè)務(wù)在客戶機(jī)205的正常、例行或者典型 操作下繼續(xù)通過網(wǎng)絡(luò)棧210的傳輸層進(jìn)行處理。在一個(gè)實(shí)施例中,第 二程序包括作為"掛鉤"插入在客戶機(jī)205的操作系統(tǒng)中的動(dòng)態(tài)截荻器 (例如,過濾器設(shè)備驅(qū)動(dòng)器)。例如,第二程序可以包括附著至客戶 機(jī)操作系統(tǒng)的傳輸層棧的過濾器設(shè)備驅(qū)動(dòng)器,諸如Microsoft Windo ws⑧操作系統(tǒng)的傳輸層棧。在步驟408,已經(jīng)安裝了第一和第二程序,運(yùn)行在客戶機(jī)205上的應(yīng)用程序可以經(jīng)過已建立的加密數(shù)據(jù)通信會(huì)話與專用數(shù)據(jù)通信網(wǎng)絡(luò) 204進(jìn)行通信并對(duì)其上的資源(諸如應(yīng)用程序或者數(shù)據(jù))進(jìn)行訪問。該 通信進(jìn)行的方式將在下面結(jié)合圖4B更加詳細(xì)地進(jìn)行討論。注意,在一 個(gè)實(shí)施例中,通過由客戶機(jī)205自動(dòng)安裝和執(zhí)行的單個(gè)控件或者編程 部件(諸如本發(fā)明的加速程序120)來執(zhí)行如上所述的第一程序和第二 程序的功能。除了提供虛擬專用網(wǎng)絡(luò)連接和通信之外,第一程序222 和/或諸如加速程序120的第二程序可以對(duì)經(jīng)過虛擬專用網(wǎng)絡(luò)連接(例 如,加密的隧道或者至器具250的橋)的客戶機(jī)通信信息執(zhí)行此處描 述的加速技術(shù)中的任何一種。在步驟410,客戶機(jī)204執(zhí)行退出過程以從網(wǎng)絡(luò)204斷開連接,終 止與器具250的加密數(shù)據(jù)通信會(huì)話。在一個(gè)實(shí)施例中,在退出時(shí),第 一程序222自動(dòng)清除客戶機(jī)205的操作系統(tǒng)進(jìn)行的修改,將操作系統(tǒng) 返回至第一程序222和/或第二程序安裝之前的狀態(tài)。在一個(gè)實(shí)施例 中,第一程序222和/或第二程序還包括卸載程序或者卸栽指令,以便 以不干擾客戶機(jī)205的連續(xù)操作的方式,將第一和第二程序從客戶機(jī) 205的操作系統(tǒng)中或者從客戶機(jī)205上的另外操作中移除。在又一實(shí)施 例中,第一程序222和/或加速程序120移除供客戶機(jī)205的應(yīng)用程序在使用本發(fā)明提供的任何通信連接或者會(huì)話期間使用的任何文件,諸 如臨時(shí)文件或者cookies。圖4B描述了本發(fā)明的另一方法450的實(shí)施例,通過該方法,客戶 機(jī)205與專用數(shù)據(jù)通信網(wǎng)絡(luò)204進(jìn)行通信,并對(duì)其上的資源進(jìn)行訪問。 例如,方法450代表了可以由方法400的步驟408實(shí)施的方法。簡(jiǎn)要來 講,在步驟452,客戶機(jī)205經(jīng)過第一程序和/或第二程序進(jìn)行新連接 或者對(duì)域名進(jìn)行解析,諸如進(jìn)行TCP/IP域名解析。在步驟454,執(zhí)行 第二程序。在步驟456,第二程序截獲來自客戶機(jī)205的其目標(biāo)是專用 網(wǎng)絡(luò)204,的通信信息,并將通信信息重新路由或者發(fā)送至第一程序 222。在步驟458,第一程序222終止該連接或者代理該連接,分離有效負(fù)荷,并將有效負(fù)荷封裝,以經(jīng)過已建立的加密通信會(huì)話進(jìn)行遞送。 在步驟460,第一程序222經(jīng)過預(yù)先建立的加密通信會(huì)話將在公共網(wǎng)絡(luò) 204上截獲的通信信息發(fā)送至專用網(wǎng)絡(luò)204中的器具250。在步驟462, 器具250對(duì)從第一程序接收的通信信息進(jìn)行解密,并將解密的通信信 息轉(zhuǎn)發(fā)至適當(dāng)?shù)哪繕?biāo)資源,諸如服務(wù)器206a-206n。在步驟464,目 標(biāo)資源對(duì)解密的通信信息進(jìn)行處理,并在步驟464,目標(biāo)資源發(fā)送響應(yīng) 通信信息(如果存在)給器具250。在步驟468,器具250對(duì)響應(yīng)通信 信息進(jìn)行加密,并經(jīng)過預(yù)先建立的加密通信會(huì)話在公共網(wǎng)絡(luò)205上將 加密通信信息發(fā)送到客戶機(jī)205的第一程序222。在步驟470,第一程 序222解密響應(yīng)通信信息,并經(jīng)過第二程序?qū)⒔饷艿耐ㄐ判畔⑥D(zhuǎn)發(fā)至 適當(dāng)?shù)目蛻魴C(jī)應(yīng)用程序。
在步驟452,客戶機(jī)205的應(yīng)用程序220進(jìn)行新連接或者經(jīng)過客戶 機(jī)205的網(wǎng)絡(luò)棧210的傳輸協(xié)議層對(duì)域名進(jìn)行解析。在一個(gè)實(shí)施例中, 應(yīng)用程序220可以請(qǐng)求建立客戶機(jī)205和服務(wù)器206之間或者客戶機(jī) 205和器具250之間的傳輸層連接。在另一實(shí)施例中,應(yīng)用程序220或 者客戶機(jī)205可以請(qǐng)求訪問服務(wù)器206提供的應(yīng)用程序220。例如,通 過傳送代表服務(wù)器206上執(zhí)行的應(yīng)用程序220輸出的ICA或者RDP遠(yuǎn) 程顯示協(xié)議,服務(wù)器206可以提供基于服務(wù)器的計(jì)算或者瘦客戶機(jī)計(jì) 算。在另一實(shí)施例中,客戶機(jī)205可以請(qǐng)求訪問服務(wù)器206的資源, 諸如文件或者目錄或者電子郵件服務(wù)。在一些實(shí)施例中,客戶機(jī)205 可以位于公共網(wǎng)絡(luò)204上,而服務(wù)器206可以位于專用網(wǎng)絡(luò)204,上。 在另外的實(shí)施例中,客戶機(jī)205和服務(wù)器206可以位于不同的專用網(wǎng) 絡(luò)上。在步驟454,第二程序自動(dòng)地或者在啟動(dòng)任何傳輸層功能之前執(zhí)行 一個(gè)或更多功能。在一些實(shí)施例中,第二程序是本發(fā)明的加速程序120 或者包括本發(fā)明的加速程序120。在一個(gè)實(shí)施例中,第二程序截獲或接 收步驟452的客戶機(jī)請(qǐng)求。在一些實(shí)施例中,客戶機(jī)205的應(yīng)用程序 220對(duì)網(wǎng)絡(luò)棧210進(jìn)行API調(diào)用,所述調(diào)用由第二程序截獲。在任何 API調(diào)用被網(wǎng)絡(luò)棧210的傳輸層處理之前,將第二程序勾桂至或者對(duì)接 至網(wǎng)絡(luò)棧210,以在傳送通信信息或者對(duì)其處理之前執(zhí)行邏輯、規(guī)則、功能或者操作以經(jīng)過傳輸層連接傳送。在步驟456,第二程序諸如通過客戶機(jī)205上的任何應(yīng)用程序 220a-220n截獲來自客戶機(jī)205的通信信息,并將其重新路由至第一程 序222,所述通信信息的目標(biāo)是網(wǎng)絡(luò)204,上的資源,在一個(gè)實(shí)施例中, 第一程序222包括ActiveX控件插件、Java小程序或者其他在網(wǎng)絡(luò)環(huán) 境中工作的控件或者編程部件。第二程序可以從網(wǎng)絡(luò)包或者提供已截 獲的通信信息的包中訪問、讀取或者獲得目標(biāo)信息,從而確定該通信 信息的目標(biāo)是網(wǎng)絡(luò)204,,諸如器具250之后的專用網(wǎng)絡(luò)。例如,第二 程序可以從網(wǎng)絡(luò)包提取或者解譯目標(biāo)IP地址和/或端口 。當(dāng)確定截獲的 通信信息其目標(biāo)是網(wǎng)絡(luò)204,時(shí),第二程序經(jīng)過任何適當(dāng)?shù)慕涌谘b置和 機(jī)制將截獲的通信信息發(fā)送至第一程序222,諸如經(jīng)由進(jìn)程間通信接口 或者API調(diào)用。在一個(gè)實(shí)施例中,將截獲的通信信息原封不動(dòng)地發(fā)送 至第一程序222,或者在另外的實(shí)施例中,截獲的通信信息在發(fā)送至第 一程序222之前由第二程序進(jìn)行預(yù)處理。例如,第二程序可以從截獲 的通信信息中移除有效負(fù)荷,并將有效負(fù)荷轉(zhuǎn)發(fā)至第一程序222。在步驟458,終止每個(gè)截獲的通信信息或者由第一程序222來代 理,并且第一程序222準(zhǔn)備所截獲的通信信息,以經(jīng)過已建立的加密 數(shù)據(jù)通信會(huì)話進(jìn)行傳輸。在一個(gè)實(shí)施例中,第一程序222分離出有效 負(fù)荷,并將有效負(fù)荷封裝,以經(jīng)過已建立的加密數(shù)據(jù)通信會(huì)話進(jìn)行傳 送。在另一實(shí)施例中,當(dāng)從第二程序接收到截獲的通信信息時(shí),第一 程序222對(duì)其進(jìn)行封裝。在一些實(shí)施例中,有效負(fù)荷為TCP有效負(fù)荷, 并經(jīng)過諸如器具250將其封裝成客戶機(jī)205和服務(wù)器206之間的新TCP 連接。在步驟460,第一程序222經(jīng)過預(yù)先建立的加密數(shù)據(jù)通信會(huì)話將網(wǎng) 絡(luò)204上截獲的通信信息發(fā)送至網(wǎng)絡(luò)204,中的器具250。在一些實(shí)施例 中,第一程序222對(duì)截獲的通信信息進(jìn)行加密,并將加密的截獲通信 信息發(fā)送至器具250。在一個(gè)實(shí)施例中,根據(jù)SSL協(xié)議來實(shí)施加密。 在另外的實(shí)施例中,加密基于TLS。第一程序222或者加速程序120 可以使用任何類型和形式的加密和/或解密。在步驟462,器具2S0充當(dāng)代理,所述代理終止了第一程序222發(fā) 送的連接。器具250對(duì)從第一程序222接收到的通信信息進(jìn)行解密, 并經(jīng)由器具250已經(jīng)建立的與網(wǎng)絡(luò)204上的目標(biāo)資源的第二連接,將 解密的通信信息轉(zhuǎn)發(fā)至網(wǎng)絡(luò)204上適當(dāng)目標(biāo)資源。在一個(gè)實(shí)施例中, 根據(jù)SSL協(xié)議或者其他可應(yīng)用的加密和解密協(xié)議實(shí)施解密。在一些實(shí) 施例中,器具250對(duì)轉(zhuǎn)發(fā)至目標(biāo)資源的通信信息執(zhí)行一種或更多加速 技術(shù),諸如由以下加速技術(shù)提供的一種或更多種加速技術(shù)l)多協(xié)議 壓縮238,, 2)傳輸控制協(xié)議池224,, 3)傳輸控制協(xié)議復(fù)用226,, 4) 傳輸控制協(xié)議緩沖228,,以及5)經(jīng)過高速緩存管理器進(jìn)行高速緩存 232,。在步驟464,目標(biāo)資源對(duì)解密的通信信息進(jìn)行處理。在一個(gè)實(shí)施例 中,解密的通信信息是要求建立連接或者通信會(huì)話的請(qǐng)求。在另外實(shí) 施例,解密的通信信息是要求代替客戶機(jī)205啟動(dòng)或訪問應(yīng)用程序220的請(qǐng)求。在另外的實(shí)施例中,解密的通信信息是網(wǎng)頁請(qǐng)求,諸如要求 從網(wǎng)絡(luò)服務(wù)器206接收網(wǎng)頁的HTTP請(qǐng)求。在步驟466,如果解密的通信信息包括有響應(yīng)的請(qǐng)求,則目標(biāo)資源 向器具250發(fā)出響應(yīng)通信信息。在一些實(shí)施例中,響應(yīng)包括對(duì)建立客 戶機(jī)205所請(qǐng)求的連接或者通信會(huì)話的確認(rèn)。在另外的實(shí)施例中,響 應(yīng)包括錯(cuò)誤消息。在一個(gè)實(shí)施例中,響應(yīng)包括認(rèn)證請(qǐng)求或者引起響應(yīng) 的機(jī)制。在一些實(shí)施例中,響應(yīng)包括供客戶機(jī)205使用的加速程序120。 在另外的實(shí)施例中,響應(yīng)包括HTML,諸如由客戶機(jī)205顯示的網(wǎng)頁。在另外的實(shí)施例中,響應(yīng)包括諸如動(dòng)態(tài)產(chǎn)生的對(duì)象的對(duì)象。在步驟468,第一程序250經(jīng)過預(yù)先建立的加密數(shù)據(jù)通信會(huì)話在網(wǎng) 絡(luò)204上將響應(yīng)通信信息發(fā)送至客戶機(jī)205上的第一程序220。在一個(gè) 實(shí)施例中,器具250對(duì)響應(yīng)通信信息進(jìn)行加密,并將加密的響應(yīng)通信 信息發(fā)送至第一程序222。在一個(gè)實(shí)施例中,根據(jù)SSL協(xié)議或者其他 可應(yīng)用的加密和解密協(xié)議來實(shí)施加密。另外,器具250可以對(duì)到客戶 機(jī)205的通信信息執(zhí)行本發(fā)明的任何加速技術(shù),諸如多協(xié)議壓縮238,、 高速緩存232,或者TCP緩沖228,。在步驟470,第一程序222對(duì)響應(yīng)通信信息進(jìn)解密,并經(jīng)過第二程 序?qū)⑼ㄐ判畔⑥D(zhuǎn)發(fā)至適當(dāng)?shù)膽?yīng)用程序222。第一程序222可以使用任何 適當(dāng)?shù)慕涌谘b置和機(jī)構(gòu)與第二程序進(jìn)行通信,諸如經(jīng)過任何類型和形 式的進(jìn)程間通信機(jī)制或者API調(diào)用。第二程序經(jīng)過客戶機(jī)205的網(wǎng)絡(luò) 棧210將響應(yīng)通信信息提供至應(yīng)用程序220。因而,應(yīng)用程序220透明 地接收響應(yīng)通信信息,而無需改變或者修改應(yīng)用程序220。根據(jù)本發(fā)明的另外實(shí)施例,在步驟458在網(wǎng)絡(luò)204上發(fā)送通信信息 之前,客戶機(jī)205對(duì)截獲的通信信息執(zhí)行附加處理。由于本發(fā)明的實(shí) 施例提供了充當(dāng)代理的VPN的解決方案,所述代理在對(duì)這種數(shù)據(jù)進(jìn)行 加密之前終止客戶機(jī)處的連接,因此可以更加有效地執(zhí)行附加的處 理。這種處理可以包括截獲的通信信息的域名服務(wù)(DNS)名稱解析, 以使得客戶機(jī)應(yīng)用程序能夠使用他們所選擇的任何IP地址并能夠在運(yùn) 行時(shí)動(dòng)態(tài)改變那些地址。這種附加的處理允許本發(fā)明的實(shí)施例有效地 綜合另外的技術(shù),諸如全局服務(wù)負(fù)荷平衡,從而在分布的網(wǎng)關(guān)或者服 務(wù)器之中實(shí)現(xiàn)更大的可用性和更高的效率。附加的連接處理還可以使 得能夠保持與截獲的通信信息相關(guān)的詳細(xì)日志和統(tǒng)計(jì)。 在本發(fā)明的另 一實(shí)施例中,器具250終止從客戶機(jī)205上的第一程 序接收到的通信,并進(jìn)一步對(duì)包括在其中的一個(gè)或更多請(qǐng)求進(jìn)行處 理,而不是如步驟462所示將通信信息轉(zhuǎn)發(fā)至網(wǎng)絡(luò)204上的目標(biāo)。該 進(jìn)一步的處理可以包括后端加密,其中在將通信信息傳遞至網(wǎng)絡(luò)204 上的適當(dāng)目標(biāo)之前,通過器具250對(duì)通信信息進(jìn)行再次加密,從而提 供了端對(duì)端的網(wǎng)絡(luò)安全。因此目標(biāo)將對(duì)業(yè)務(wù)進(jìn)行解密并進(jìn)行適當(dāng)響 應(yīng)。另外,這種處理允許器具250通過目標(biāo)服務(wù)器對(duì)出自高速緩存中 的響應(yīng)進(jìn)行服務(wù),而不是要求目標(biāo)服務(wù)器進(jìn)行額外的工作,并允許局 域網(wǎng)絡(luò)負(fù)荷平衡、全局服務(wù)負(fù)荷平衡和/或通信壓縮,從而提高網(wǎng)絡(luò)204 的效率和響應(yīng)。根據(jù)上述方法,在客戶機(jī)205和網(wǎng)絡(luò)204之間建立基于加密數(shù)據(jù)通 信會(huì)話的VPN。例如,在一個(gè)實(shí)施例中,經(jīng)過HTTPS建立安全VPN。 此后,通過該加密的數(shù)據(jù)通信會(huì)話將所有從客戶機(jī)205到網(wǎng)絡(luò)204的 通信經(jīng)第一程序路由至器具250,并且對(duì)于網(wǎng)絡(luò)204到客戶機(jī)205的通 信也是一樣。應(yīng)當(dāng)注意的是,盡管可以使用HTTPS來建立加密數(shù)據(jù)通 信會(huì)話,但是經(jīng)過加密數(shù)據(jù)通信會(huì)話傳送的通信信息并不必要是 HTTPS包數(shù)據(jù)或者甚至是HTTP包數(shù)據(jù)。例如,通信信息還可以包括 傳輸控制協(xié)議/用戶數(shù)據(jù)報(bào)協(xié)議(TCP/UDP)或者互聯(lián)網(wǎng)控制消息協(xié)議 (ICMP)包數(shù)據(jù),但是這些實(shí)例并不是對(duì)本發(fā)明的限制。另外,盡管 參考圖48描述的方法描述了客戶機(jī)205上的應(yīng)用程序與網(wǎng)絡(luò)204上的資源之間的請(qǐng)求-響應(yīng)類型的通信,但是根據(jù)本發(fā)明的加密通信并不需 要基于請(qǐng)求-響應(yīng)。相反,所述通信可以是任何類型的通信。因此,任 何可以建立連接或者諸如UDP會(huì)話的通信會(huì)話的客戶機(jī)應(yīng)用程序均能 夠根據(jù)本發(fā)明的實(shí)施例來發(fā)送和接收加密的通信信息。在另一方面中,本發(fā)明涉及一種加速程序120,所述加速程序用于 從客戶機(jī)動(dòng)態(tài)繞過與服務(wù)器206連接或者通信的任何中介設(shè)備。例如, 客戶機(jī)205可以經(jīng)過一個(gè)或更多中介物與服務(wù)器連接,所述中介物諸 如是本發(fā)明的器具250。由于某種原因,中介物可能不能由客戶機(jī)205 用來與服務(wù)器206進(jìn)行通信,例如,器具250可能因維護(hù)而停機(jī),或 者處于重新引導(dǎo)或者重新啟動(dòng)的過程中。本發(fā)明的加速程序120確定 中介物不可用,則自動(dòng)建立與服務(wù)器206的不同連接或者通信會(huì)話。
上述操作可以對(duì)于客戶機(jī)205的用戶或者程序透明地進(jìn)行,以使得連 接和/或通信會(huì)話看起來沒有改變或者中斷。現(xiàn)在參考圖5,將描述用于自動(dòng)繞過中介物的本發(fā)明方法500的實(shí) 施例。簡(jiǎn)要來講,在步驟505,加速程序120經(jīng)過諸如器具250的中介 物建立客戶機(jī)205和服務(wù)器206之間的傳輸層連接。在步驟510,加速 程序120確定客戶機(jī)205不能使用中介物經(jīng)過已建立的傳輸層連接與 服務(wù)器206進(jìn)行通信。在步驟515,加速程序120在客戶機(jī)205上截獲 從客戶機(jī)205至服務(wù)器206的通信信息。在步驟520,加速程序120在 客戶機(jī)205和服務(wù)器206之間建立第二傳輸層連接,結(jié)果繞過了確定 不可用于與服務(wù)器206進(jìn)行客戶機(jī)通信的中介物。在步驟525,加速程 序120將截獲的客戶機(jī)205的通信信息經(jīng)過第二傳輸層連接傳輸至服 務(wù)器206。進(jìn)一步詳細(xì)地說明,在步驟505,加速程序120經(jīng)過中介物建立客 戶機(jī)205和服務(wù)器206之間的傳輸層連接。在一個(gè)實(shí)施例中,中介物 包括器具250。在另外的實(shí)施例中,中介物包括下列之一高速緩存、 服務(wù)器、網(wǎng)關(guān)、防火墻、橋、路由器、交換機(jī)、集線器、代理或者任 何充當(dāng)或者提供這些類型和形式中介物中任一種的功能和操作的軟件 應(yīng)用程序或程序。在一個(gè)實(shí)施例中,中介物可以在服務(wù)器206上操作。 在一些實(shí)施例中,經(jīng)過多個(gè)相同類型和形式或者不同類型和形式的中 介物來建立傳輸層連接。在另一實(shí)施例中,傳輸層連接包括根據(jù)此處 描述的本發(fā)明的操作,在器具250處或者作為客戶機(jī)205建立的傳輸 層連接池的連接。在步驟510,加速程序120確定客戶機(jī)205不能利用中介物或不能 使用中介物經(jīng)過已建立的傳輸層連接與服務(wù)器206進(jìn)行通信。加速程 序120可以通過任何適當(dāng)?shù)难b置和/或機(jī)制來確定中介物的狀態(tài)或者可 用性。在一個(gè)實(shí)施例中,通過接收與到中介物的傳送相關(guān)的錯(cuò)誤消息 或者失敗的答復(fù),加速程序120確定中介物不可用。例如,當(dāng)經(jīng)過已 建立的傳輸層連接從客戶機(jī)205傳送通信信息時(shí),加速程序120可以 接收失敗的傳輸層通信響應(yīng)。在另外的實(shí)施例中,加速程序120可以 基于預(yù)定的頻率將ping命令傳輸至中介物,以監(jiān)視中介物的狀態(tài)和可 用性。如果加速程序120不能接收來自中介物的響應(yīng),或者在一些實(shí)
施例中,接收了延遲的答復(fù)或者比期望的延遲時(shí)間更長(zhǎng)的答復(fù),則加速程序120可以確定中介物不可由客戶機(jī)205利用或者不能由客戶機(jī) 205使用。在另外的實(shí)施例中,服務(wù)器206、器具205或者中介物可以 發(fā)送消息到客戶機(jī)205或者加速程序120,提供識(shí)別中介物不可由客戶 機(jī)205利用或者不能由客戶機(jī)205使用的信息。在一些實(shí)施例中,斷 開或者中斷已建立的傳輸層連接,或者在另外的實(shí)施例中,關(guān)閉已建 立的傳輸層連接。在步驟515,加速程序120截荻從客戶機(jī)205到服務(wù)器206的、其目標(biāo)是通過已建立的傳輸層連接經(jīng)由中介物來運(yùn)送的通信信息。加速 程序120可以在任何點(diǎn)處、在網(wǎng)絡(luò)棧210的任何協(xié)議層截獲通信信息。在一個(gè)實(shí)施例中,在已建立的傳輸層連接上進(jìn)行傳輸之前,加速程序 120在傳輸協(xié)議層截獲通信信息。例如,在一些實(shí)施例中,加速程序 120包括具有傳輸驅(qū)動(dòng)器接口或者對(duì)接至傳輸協(xié)議層的網(wǎng)絡(luò)驅(qū)動(dòng)器。在 另外的實(shí)施例中,本發(fā)明以第一程序222和結(jié)合圖4A - 4B所討論的作 為第二程序的加速程序120來實(shí)施,其中第一程序222或者加速程序 120截獲通信信息。在步驟520,加速程序120為客戶機(jī)205建立與服務(wù)器206的第二 傳輸層連接,以繞過在步驟510確定不能由客戶機(jī)使用的或者利用的 中介物。在一個(gè)實(shí)施例中,例如當(dāng)客戶機(jī)205和服務(wù)器位于相同網(wǎng)絡(luò) 205上時(shí),或者位于可在客戶機(jī)205和服務(wù)器206之間路由的不同網(wǎng)絡(luò) 上時(shí),加速程序120建立直接到服務(wù)器206的第二傳輸層連接。在另 一實(shí)施例中,加速程序120建立與諸如第二器具250,的笫二中介物的 第二傳輸層連接。在一些實(shí)施例中,加速程序UO請(qǐng)求器具"0建立 與服務(wù)器250的另一傳輸層連接。在一個(gè)實(shí)施例中,器具250使用與 服務(wù)器206的傳輸層連接池的第二傳輸層連接。在另外的實(shí)施例中, 加速程序120請(qǐng)求服務(wù)器206建立第二傳輸層連接。在一些實(shí)施例中, 加速程序120使用與服務(wù)器206的傳輸層連接池中的第二傳輸層連 接,所述傳輸層連接池是根據(jù)此處描述的本發(fā)明的操作由加速程序120 建立的。在一個(gè)實(shí)施例中,加速程序UO在步驟520對(duì)客戶機(jī)205的用戶或 者應(yīng)用程序220透明地建立第二傳輸層連接,或者在一些實(shí)施例中, 對(duì)于傳輸層以上或以下的任何協(xié)議層透明地建立第二傳輸層連接。在一些實(shí)施例中,當(dāng)在步驟510確定中介物不可用或者不應(yīng)該由客戶機(jī) 205使用時(shí),則為客戶機(jī)205自動(dòng)建立第二傳輸層連接。在另外的實(shí)施 例中,例如在第一次嘗試傳送通信信息但不能將截獲的通信信息傳輸 至服務(wù)器206時(shí),自動(dòng)建立第二傳輸層連接。在一些實(shí)施例中,當(dāng)不 能進(jìn)行一個(gè)或更多通信信息的重試傳輸時(shí),或者耗盡了預(yù)定數(shù)目的重 試時(shí),則自動(dòng)建立第二傳輸層連接。在另外的實(shí)施例中,當(dāng)確定中介 物延遲了網(wǎng)絡(luò)包的傳輸或者接收速率,產(chǎn)生了延遲或者以不期望的方 式影響了傳輸層連接的使用時(shí),則建立第二傳輸層連接。在一個(gè)實(shí)施 例中,加速程序120執(zhí)行負(fù)荷平衡并建立繞過中介物的第二傳輸層連 接,以卸除中介物到客戶機(jī)205和/或第二中介物的任何處理或者操 作。在步驟525,加速程序120將截獲的客戶機(jī)205的通信信息經(jīng)過第 二傳輸層連接傳送至服務(wù)器206。在一個(gè)實(shí)施例中,加速程序120將截 獲的通信信息直接傳輸至服務(wù)器106。在另外的實(shí)施例中,加速程序 120經(jīng)過諸如第二器具250的第二中介物傳輸截獲的通信信息。通過使 用第二傳輸層連接,加速程序120繞過中介物并繼續(xù)客戶機(jī)205的應(yīng) 用程序220對(duì)服務(wù)器206的操作。在一個(gè)實(shí)施例中,客戶機(jī)205的應(yīng)用 程序220繼續(xù)操作并與服務(wù)器220進(jìn)行通信,如同器具250在持續(xù)使用 先前或者第一次建立的傳輸層連接一樣。因而,加速程序uo防止、 避免或者回避了加速程序120沒有繞過中介物時(shí)可能出現(xiàn)的任何通信 中斷、干擾、等待、延遲或者其他操作或性能問題。在另一方面中, 即使在從中間設(shè)備訪問存在問題或者中斷的情況下,本發(fā)明的技術(shù)自 動(dòng)提供了客戶機(jī)205對(duì)服務(wù)器206或者遠(yuǎn)程訪問應(yīng)用程序的持續(xù)訪 問。另外,可以使用上述本發(fā)明的重定向和繞過技術(shù)來執(zhí)行客戶機(jī)205 對(duì)一個(gè)或更多服務(wù)器206a- 206n訪問的業(yè)務(wù)管理和負(fù)荷平衡,所述服 務(wù)器206a - 206n為客戶機(jī)205提供了應(yīng)用程序220a - 220n或者其他內(nèi) 容和功能。例如,在一個(gè)實(shí)施例中,客戶機(jī)訪問服務(wù)器所使用的中介 物或者器具可能隨著傳輸層連接的增加而超負(fù)荷,使得響應(yīng)、性能或 者其他操作的速率降低。當(dāng)確定降低了中介物或者器具的性能時(shí),加
速程序120可以將客戶機(jī)重新定向至另一中介物或器具、或者服務(wù)器, 以繞開客戶機(jī)至服務(wù)器的端到端連接中的任何性能瓶頸。在其他的方面中,本發(fā)明涉及與客戶機(jī)網(wǎng)絡(luò)棧的傳輸協(xié)議層相關(guān) 或者在客戶機(jī)網(wǎng)絡(luò)棧的傳輸協(xié)議層執(zhí)行的客戶端加速技術(shù)。加速程序 120可以包括執(zhí)行下列任何一種或更多技術(shù)的可執(zhí)行指令1)傳輸控 制協(xié)議(TCP )緩沖228, 2 ) TCP連接池224 ,和3 ) TCP復(fù)用226。 在一些實(shí)施例中,當(dāng)加速程序120透明地處理在客戶機(jī)網(wǎng)絡(luò)棧的傳輸 協(xié)議層截獲的通信信息時(shí),加速程序120可以控制和管理客戶機(jī)的TCP 連接以及該連接上客戶機(jī)205的應(yīng)用程序220a-220n的使用和傳輸。 圖6描述了實(shí)施本發(fā)明的TCP緩沖技術(shù)的方法600的實(shí)施例,而圖7A -7B描述了本發(fā)明的TCP連接池技術(shù)的實(shí)施例,圖8、 9、 IO描繪了 TCP復(fù)用技術(shù)。簡(jiǎn)要地來描述圖6中的方法600的實(shí)施例,在步驟605,加速程序 120截獲從客戶機(jī)205到服務(wù)器206的通信信息,諸如客戶機(jī)205要求 訪問服務(wù)器206的請(qǐng)求。在步驟610,加速程序120確定所接收的服務(wù) 器響應(yīng)的速率和客戶機(jī)傳送請(qǐng)求的生產(chǎn)速率之間的差值是否降至預(yù)定 閾值之下。如果在步驟615,生產(chǎn)和消耗速率之間的差值未降至預(yù)定閾 值以下,則在步驟617,加速程序120將通信信息轉(zhuǎn)發(fā)至服務(wù)器260。 如果在步驟615,速率的差值在預(yù)定值之下,則在步驟620,加速程序 120將通信信息存儲(chǔ)在客戶機(jī)205的存儲(chǔ)器中。在步驟625,加速程序 120確定速率的差值是否已經(jīng)改變至預(yù)定闊值之上,并且如果已經(jīng)改變 至預(yù)定閾值之上,則將存儲(chǔ)的通信信息轉(zhuǎn)發(fā)至服務(wù)器206。另外,加速 程序120將通信信息保持在客戶機(jī)205的存儲(chǔ)器中,直至速率差值在 步驟625改變至預(yù)定閾值以上的時(shí)刻點(diǎn)。例如,如果客戶機(jī)205正以 比客戶機(jī)205耗費(fèi)所產(chǎn)生的響應(yīng)更大的速率將請(qǐng)求傳輸至服務(wù)器206 時(shí),本發(fā)明的加速程序120保持進(jìn)一步的傳送,直至速率的差值已經(jīng) 改變的時(shí)刻點(diǎn)。進(jìn)一步詳細(xì)地說明,在步驟605,加速程序截獲從客戶機(jī)205至服 務(wù)器206的通信信息。加速程序120可以在網(wǎng)絡(luò)棧210中的任何點(diǎn)和任 何協(xié)議層截獲通信信息。在一個(gè)實(shí)施例中,在已建立的傳輸層連接上 進(jìn)行傳輸之前,加速程序120在傳輸協(xié)議層截獲通信信息。例如,在 一些實(shí)施例中,加速程序120包括具有傳輸驅(qū)動(dòng)器接口或者對(duì)接至傳 輸協(xié)議層的網(wǎng)絡(luò)驅(qū)動(dòng)器。在另外的實(shí)施例中,本發(fā)明以第一程序222 和結(jié)合圖4A-4B所討論的作為第二程序的加速程序120得以實(shí)施,其 中第一程序222或者加速程序120截獲通信信息。在一個(gè)實(shí)施例中, 通信信息包括客戶機(jī)205請(qǐng)求使用或者訪問服務(wù)器206的資源的請(qǐng) 求,諸如應(yīng)用程序220。在步驟610,加速程序120確定消耗速率和生產(chǎn)速率之間的差值是 否降至預(yù)定閾值之下。在一個(gè)實(shí)施例中,加速程序120對(duì)客戶機(jī)205 向服務(wù)器206傳送的請(qǐng)求數(shù)目進(jìn)行計(jì)數(shù)和跟蹤,并且在另外的實(shí)施例 中,加速程序120對(duì)客戶機(jī)205從服務(wù)器206接收的響應(yīng)數(shù)目進(jìn)行計(jì)數(shù) 和跟蹤。在一些實(shí)施例中,客戶機(jī)205基于每個(gè)應(yīng)用程序220對(duì)接收 的請(qǐng)求和傳送的響應(yīng)進(jìn)行跟蹤??梢栽诰W(wǎng)絡(luò)棧120的任何協(xié)議層對(duì)響 應(yīng)和請(qǐng)求進(jìn)行跟蹤。在一個(gè)實(shí)施例中,從提交點(diǎn)至傳輸層或者至客戶 機(jī)205和服務(wù)器206之間的傳輸層連接,對(duì)客戶機(jī)205或者應(yīng)用程序 220傳送的請(qǐng)求的數(shù)目進(jìn)行計(jì)數(shù)和跟蹤。同樣,在另外的實(shí)施例,從接 收點(diǎn)到傳輸層,或者從客戶機(jī)205和服務(wù)器206之間的傳輸層連接, 和/或在將響應(yīng)提供給網(wǎng)絡(luò)棧210的傳輸層之上的協(xié)議層(諸如應(yīng)用 層)的點(diǎn)處,對(duì)客戶機(jī)205或者應(yīng)用程序220從服務(wù)器206接收的響應(yīng) 的數(shù)目進(jìn)行計(jì)數(shù)和跟蹤。在一些實(shí)施例中,加速程序120訪問、檢查或者獲取傳輸層連接 的接收和發(fā)送的TCP緩沖相關(guān)的信息和數(shù)據(jù),所述傳輸層連接是通過 客戶機(jī)205和服務(wù)器206之間的加速程序120建立的。例如,加速程序 120可以確定任何TCP/IP緩沖器的默認(rèn)容量和最大容量以及當(dāng)前使用 的緩沖器部分,從而確定從客戶機(jī)205至服務(wù)器206的網(wǎng)絡(luò)包的發(fā)送 和接收之間的速率差值。在其他實(shí)施例中,加速程序120使用任何類 型和形式的擁塞算法來確定是否存在因客戶機(jī)205至服務(wù)器206的網(wǎng) 絡(luò)包的消耗和生產(chǎn)之間的差別而產(chǎn)生的擁塞。在另一實(shí)施例中,加速 程序120諸如通過網(wǎng)絡(luò)驅(qū)動(dòng)器或者TCP服務(wù)提供商從傳輸層連接使用 的擁塞算法中獲取信息和數(shù)據(jù)或者與其對(duì)接。例如,在一個(gè)實(shí)施例中, 加速程序120確定連接使用的擁塞窗口相關(guān)的信息和數(shù)據(jù)。可以通過加速程序120的任何適當(dāng)?shù)难b置和結(jié)構(gòu)來配置、指定、 限定或者識(shí)別預(yù)定閾值。在一個(gè)實(shí)施例中,可以將閾值指定為客戶機(jī)205和/或應(yīng)用程序220的生產(chǎn)速率和消耗速率之間的百分比、相對(duì)值 或絕對(duì)值。消耗和/或生產(chǎn)速率可以以任意顆粒度通過任意時(shí)間周期上 的消耗接收數(shù)目和產(chǎn)生傳輸數(shù)目分別標(biāo)識(shí)。在一些實(shí)施例中,閾值可 以指定為客戶機(jī)205和/或器具220的生產(chǎn)速率和消耗速率之間的量 差,而在一些實(shí)施例中,可以指定為一段時(shí)間周期上的量差。例如, 可以將閾值指定為客戶機(jī)205產(chǎn)生的請(qǐng)求比客戶機(jī)205消耗的請(qǐng)求多 100個(gè)的時(shí)間點(diǎn)。在另一實(shí)例中,閾值可以指定為客戶機(jī)205在每個(gè)時(shí) 間周期產(chǎn)生的請(qǐng)求比同 一時(shí)間周期期間客戶機(jī)205消耗的請(qǐng)求多10個(gè) 的時(shí)間點(diǎn)。在步驟615,如果客戶機(jī)205和/或應(yīng)用程序220的生產(chǎn)和消耗速 率的差值不低于預(yù)定閾值,則在步驟617加速程序120將通信信息轉(zhuǎn) 發(fā)至服務(wù)器206。在一些實(shí)施例中,加速程序?qū)νㄐ判畔?zhí)行本發(fā)明的 加速技術(shù)中的任何技術(shù)。例如,可以將通信信息經(jīng)過入池的復(fù)用傳輸 層連接轉(zhuǎn)發(fā)至服務(wù)器,并且可以另外進(jìn)行壓縮。在另外的實(shí)施例中, 客戶機(jī)205可以將通信信息轉(zhuǎn)發(fā)至提供客戶機(jī)205至服務(wù)器206的連接 的器具250。在步驟615,如果客戶機(jī)205和/或應(yīng)用程序220的生產(chǎn)和消耗速 率的差值低于預(yù)定閾值,則加速程序120在步驟620將通信信息存儲(chǔ) 在客戶機(jī)205的存儲(chǔ)器中。在一些實(shí)施例中,存儲(chǔ)器可以是客戶機(jī)205 的內(nèi)核模式202的存儲(chǔ)器,而在另外的實(shí)施例中,存儲(chǔ)器可以處于客 戶機(jī)205的用戶模式203中。在一個(gè)實(shí)施例中,加速程序120可以經(jīng)過 高速緩存管理器232在高速緩存中存儲(chǔ)通信信息。在其他實(shí)施例中, 加速程序120可以使用對(duì)象、數(shù)據(jù)結(jié)構(gòu)或者其他加速程序120可以存 取的數(shù)據(jù)元素來緩沖、保持或者存儲(chǔ)截獲的通信信息。在一個(gè)實(shí)施例 中,可以將截獲的通信信息以壓縮的方式存儲(chǔ)在存儲(chǔ)器中。在另外的 實(shí)施例中,加速程序120將截獲的通信信息發(fā)送至第一程序222,以存儲(chǔ)或者保持在存儲(chǔ)器中,以供在隨后的時(shí)間點(diǎn)進(jìn)行傳送。在步驟625,加速程序120確定何時(shí)將存儲(chǔ)通信信息傳送至服務(wù)器 206。在一個(gè)實(shí)施例中,加速程序120執(zhí)行步驟610至615,以確定客 戶機(jī)205的生產(chǎn)速率和消耗速率中的差值是否高于閾值,在所述閾值
之上,則在步驟617處加速程序120將存儲(chǔ)的通信信息轉(zhuǎn)發(fā)至服務(wù)器 206。在一些實(shí)施例中,加速程序120基于輪詢或者事件以規(guī)則的或者 預(yù)定的頻率比較生產(chǎn)速率和消耗速率的差值,并當(dāng)差值升至預(yù)定閾值 以上時(shí),加速程序120將通信信息轉(zhuǎn)發(fā)至服務(wù)器206。在另外的實(shí)施例 中,加速程序120設(shè)置或者配置有定時(shí)器,以確定多長(zhǎng)時(shí)間存儲(chǔ)截獲 的通信信息。當(dāng)定時(shí)器期間截止時(shí),加速程序120將存儲(chǔ)的通信信息 傳送至服務(wù)器206。在另外的實(shí)施例中,加速程序120檢查自存儲(chǔ)截獲 的通信信息開始客戶機(jī)205所消耗的服務(wù)器響應(yīng)的數(shù)目。如果消耗響 應(yīng)的數(shù)目大于預(yù)定數(shù)目,則加速程序120從存儲(chǔ)緩沖器或者儲(chǔ)存器中 釋放截獲的通信信息,并提交所述通信信息以將其傳送至服務(wù)器206。如果在步驟625,加速程序120確定生產(chǎn)或者消耗的速率沒有以適 當(dāng)?shù)姆绞礁淖?,則加速程序120將截獲的通信信息保持或者維持在存 儲(chǔ)器中,直到到達(dá)適當(dāng)?shù)臅r(shí)間點(diǎn)。在一個(gè)實(shí)施例中,在步驟617,即使 產(chǎn)生和/或消耗速率沒有改變,加速程序120仍將通信信息轉(zhuǎn)發(fā)至服務(wù) 器。例如,在等待產(chǎn)生和/或消耗速率改變的時(shí)間周期之后,速率沒有 發(fā)生改變,則加速程序120將通信信息發(fā)送至服務(wù)器206。盡管通常討論的本發(fā)明的TCP緩沖技術(shù)與截獲的通信信息或者請(qǐng) 求相關(guān),但是可以對(duì)截獲的客戶機(jī)205至服務(wù)器206的多個(gè)通信信息 順序地、幾乎同時(shí)地或者并行地實(shí)施本發(fā)明的方法600的實(shí)施例。此 外,在另外的實(shí)施例中,可以在客戶機(jī)上對(duì)從客戶機(jī)至多個(gè)服務(wù)器206a -206n的相關(guān)通信信息實(shí)施本發(fā)明的方法600。例如,可以在客戶機(jī) 和205和第一服務(wù)器206a之間實(shí)施方法600的第一實(shí)施例,而在客戶 機(jī)205和第二服務(wù)器2(^b之間實(shí)施方法600的第二實(shí)施例。此外,在 一些實(shí)施例中,可以使用每個(gè)應(yīng)用程序的各自生產(chǎn)和消耗速率對(duì)第一 應(yīng)用程序200a并同樣對(duì)第二應(yīng)用程序200b實(shí)施方法600。在其他的實(shí) 施例中,方法600可以對(duì)于第一應(yīng)用程序200a實(shí)施,但是不對(duì)第二應(yīng) 用程序200b實(shí)施。根據(jù)本發(fā)明的另一方法,通過打開與每個(gè)服務(wù)器的一個(gè)或更多連 接并維持這些連接來允許客戶機(jī)205的應(yīng)用程序?qū)Ψ?wù)器206進(jìn)行反 復(fù)的數(shù)據(jù)訪問,客戶端加速程序120降低了因反復(fù)打開和關(guān)閉客戶機(jī) 連接而導(dǎo)致的服務(wù)器206a - 206n和/或器具250的處理負(fù)荷。此處通常
將該技術(shù)稱作"連接池"。簡(jiǎn)要來說明方法700,在步驟702,加速程 序120截獲應(yīng)用程序要求訪問服務(wù)器的請(qǐng)求,在步驟704,確定與請(qǐng)求 相關(guān)的服務(wù)器的標(biāo)識(shí)。在步驟706,加速程序120確定加速程序120是 否具有已經(jīng)建立的至服務(wù)器206的空閑傳輸層連接可供應(yīng)用程序220 使用。如果沒有可供應(yīng)用程序220使用的至服務(wù)器206的空閑傳輸層 連接,則在步驟708加速程序220建立至服務(wù)器206的傳輸層連接,以 供客戶機(jī)205使用。在步驟706,如果存在可供應(yīng)用程序220使用的可 用傳輸層連接,則在步驟710,加速程序120轉(zhuǎn)換應(yīng)用程序的請(qǐng)求以通 過可用的傳輸層連接傳送或者發(fā)送。進(jìn)一步地概述,在步驟712,加速程序120接收服務(wù)器206對(duì)請(qǐng)求 的響應(yīng),并在步驟714將所述響應(yīng)轉(zhuǎn)換成至應(yīng)用程序220的響應(yīng)。在 步驟716,加速程序120可以維持或者保持傳輸層連接處于打開狀態(tài), 以供客戶機(jī)205的任何應(yīng)用程序220a - 220n使用。通過在客戶機(jī)205 上使與服務(wù)器206a-206n的傳輸層連接維持在打開狀態(tài),并根據(jù)需要 打開或者關(guān)閉與應(yīng)用程序的連接,加速程序120可以使服務(wù)器免除與 在網(wǎng)絡(luò)204 (諸如互聯(lián)網(wǎng))上為客戶機(jī)205服務(wù)相關(guān)的TCP連接負(fù)荷 問題。在步驟718,如果確定客戶機(jī)205的一個(gè)或更多應(yīng)用程序220不 再使用該連接來訪問服務(wù)器206,則加速程序120在某點(diǎn)關(guān)閉傳輸層連 接。進(jìn)一步詳細(xì)說明,在步驟702,加速程序120截獲客戶機(jī)205的任 何應(yīng)用程序220a- 220n要求訪問服務(wù)器206的請(qǐng)求。在一些實(shí)施例 中,在經(jīng)過傳輸層連接建立或者傳輸請(qǐng)求之前,在傳輸協(xié)議層截獲該 請(qǐng)求。在另外的實(shí)施例中,在傳輸層之上的任何協(xié)議層或者傳輸層連 接截獲該請(qǐng)求。在一個(gè)實(shí)施例中,應(yīng)用程序220的請(qǐng)求是要求打開或 者建立與服務(wù)器206的傳輸層連接的請(qǐng)求。在一些實(shí)施例中,響應(yīng)于 該請(qǐng)求,加速程序120建立傳輸層連接池的第一傳輸層連接,以供客 戶機(jī)205的應(yīng)用程序220a-220n使用。在另一實(shí)施例中,應(yīng)用程序請(qǐng) 求是要求經(jīng)過已建立的客戶機(jī)205的傳輸層連接訪問服務(wù)器的請(qǐng)求。在步驟704,加速程序120通過任何適當(dāng)?shù)难b置和結(jié)構(gòu)根據(jù)請(qǐng)求確 定服務(wù)器206的標(biāo)識(shí)。在一些實(shí)施例中,請(qǐng)求的內(nèi)容標(biāo)識(shí)有或者引用 有服務(wù)器206的域名或者互聯(lián)網(wǎng)協(xié)議地址,例如請(qǐng)求的文本串可以標(biāo)
識(shí)有服務(wù)器206的域名。在一個(gè)實(shí)施例中,通過TCP包的頭部信息來 確定服務(wù)器206的標(biāo)識(shí),所述頭部信息諸如是目標(biāo)互聯(lián)網(wǎng)協(xié)議地址和 端口號(hào)。在另外的實(shí)施例中,服務(wù)器206與應(yīng)用程序220關(guān)聯(lián),加速 程序120在數(shù)據(jù)庫或者其他結(jié)構(gòu)信息存儲(chǔ)器中查找或者查詢?cè)撽P(guān)聯(lián)。在步驟706,加速程序120確定是否存在能夠由應(yīng)用程序220空閑 使用或者可以加以利用的傳輸層連接。在一個(gè)實(shí)施例中,加速程序120 可能尚未與服務(wù)器206建立傳輸層連接,因此不存在可由應(yīng)用程序220 利用的傳輸層連接。在另外的實(shí)施例中,加速程序120能具有以前建 立的與服務(wù)器206的傳輸層連接,但是確定另一應(yīng)用程序220目前正 在積極使用該連接。正如下面將進(jìn)一步討論的一樣,加速程序120基 于從服務(wù)器206接收的用于應(yīng)用程序220的消息(諸如對(duì)請(qǐng)求的響應(yīng)) 長(zhǎng)度,確定已建立的傳輸層連接是否可供另一應(yīng)用程序使用或者可以 由應(yīng)用程序220a-220n共享,和/或確定服務(wù)器206和應(yīng)用程序220之間的通信當(dāng)前是否處于等待狀態(tài)。在步驟708,如果加速程序120確定傳輸層連接不能由應(yīng)用程序 220加以利用,則加速程序120建立與服務(wù)器206的傳輸層連接。在一 些實(shí)施例中,在步驟708建立的傳輸層連接是與服務(wù)器206的第一傳 輸層連接,而在另外的實(shí)施例中,該傳輸層連接是至服務(wù)器206的多 個(gè)傳輸層連接中的第二傳輸層連接。在又一個(gè)實(shí)施例中,加速程序120 等待已建立的傳輸層連接變得可以利用或者變?yōu)榭臻e狀態(tài),以將應(yīng)用 程序的請(qǐng)求傳送至服務(wù)器206。例如,加速程序120可以確定第一程序220a經(jīng)由已建立的連接立刻完成與服務(wù)器206的交易。在步驟710,加速程序120轉(zhuǎn)換將要經(jīng)過傳輸層連接傳輸至服務(wù)器 206的應(yīng)用程序的請(qǐng)求。在一些實(shí)施例中,對(duì)于共享該連接的客戶機(jī) 205的所有應(yīng)用程序220a- 220n,加速程序120使用一個(gè)傳輸層連接 通信的端口號(hào)。在一些情況下,加速程序120跟蹤請(qǐng)求和基于逐個(gè)應(yīng) 用程序的請(qǐng)求的未完結(jié)響應(yīng)。因而,加速程序120在任何給定時(shí)間點(diǎn) 辨別哪個(gè)應(yīng)用程序220正在經(jīng)過至服務(wù)器206的傳輸層連接傳送和接 收網(wǎng)絡(luò)包。在一個(gè)實(shí)施例中, 一次僅一個(gè)應(yīng)用程序220在傳輸層連接 上進(jìn)行發(fā)送和接收,因而加速程序220可以得知哪個(gè)應(yīng)用程序220正 在使用該連接。在一些實(shí)施例中,加速程序UO使應(yīng)用程序no的處
理id與請(qǐng)求相關(guān)聯(lián)。在其他實(shí)施例中,加速程序120提供端口號(hào)并使 其與應(yīng)用程序220關(guān)聯(lián),然后把待傳輸?shù)腡CP網(wǎng)絡(luò)包中的端口號(hào)修改 為應(yīng)用程序分配的端口號(hào)。在另外的實(shí)施例中,通過應(yīng)用程序220來 提供端口號(hào),加速程序120在TCP網(wǎng)絡(luò)包中相應(yīng)地改變或者提供該端 口號(hào)。在步驟712,加速程序120接收服務(wù)器206對(duì)應(yīng)用程序的請(qǐng)求的響 應(yīng)。在一個(gè)實(shí)施例中,服務(wù)器206并不響應(yīng)該請(qǐng)求。在另外的實(shí)施例 中,服務(wù)器206以錯(cuò)誤或者失敗消息進(jìn)行響應(yīng)。在一些實(shí)施例中,服 務(wù)器206以多個(gè)響應(yīng)進(jìn)行響應(yīng)。在其他的實(shí)施例中,服務(wù)器206以包 括多個(gè)網(wǎng)絡(luò)包或者多個(gè)TCP段的響應(yīng)進(jìn)行響應(yīng)。在另外的實(shí)施例中, 服務(wù)器206以標(biāo)識(shí)了分配給該應(yīng)用程序220的源端口號(hào)或者與其相關(guān) 的源端口號(hào)的一個(gè)或更多網(wǎng)絡(luò)包進(jìn)行響應(yīng)。在一個(gè)實(shí)施例中,服務(wù)器 206以標(biāo)識(shí)了傳輸層連接的源端口號(hào)和客戶機(jī)205的多個(gè)應(yīng)用程序所使 用的源端口號(hào)的一個(gè)或更多網(wǎng)絡(luò)包進(jìn)行響應(yīng)。在步驟714,加速程序120以對(duì)應(yīng)用程序220進(jìn)行響應(yīng)的方式處理 或者轉(zhuǎn)換來自服務(wù)器206的響應(yīng)。在一個(gè)實(shí)施例中,加速程序120使 用應(yīng)用程序220的端口號(hào)來替換所接收的網(wǎng)絡(luò)包或者多個(gè)包中的源端 口號(hào)。在另外的實(shí)施例中,加速程序120經(jīng)過跟蹤機(jī)制來確定應(yīng)用程 序220當(dāng)前正使用傳輸層連接,然后經(jīng)過網(wǎng)絡(luò)棧210來傳送對(duì)于應(yīng)用 程序220的響應(yīng)。在一個(gè)實(shí)施例中,該響應(yīng)沒有改變,且傳送該響應(yīng) 以經(jīng)過連接的傳輸層之上的網(wǎng)絡(luò)棧210的協(xié)議層進(jìn)行處理。在一些實(shí) 施例中,加速程序120在處理響應(yīng)并將其轉(zhuǎn)發(fā)至應(yīng)用程序220之前, 等待將被接收的響應(yīng)的多個(gè)部分,諸如TCP段。在一個(gè)實(shí)施例中,加 速程序120將響應(yīng)傳送至第一程序222,所述第一程序與應(yīng)用程序220 對(duì)接并將所述響應(yīng)提供至應(yīng)用程序220。在步驟716,加速程序120在客戶機(jī)205至服務(wù)器206的一個(gè)或更多傳輸層連接池中維持或保持該傳輸層連接處于打開狀態(tài)。在一個(gè)實(shí) 施例中,加速程序120或者網(wǎng)絡(luò)棧210的傳輸層驅(qū)動(dòng)器包括保持連接 (keep - alive )機(jī)制,當(dāng)連接處于等待狀態(tài)時(shí),諸如在沒有數(shù)據(jù)發(fā)送 的情況下,所述保持連接機(jī)制周期性地探查連接的另一端。保持連接 機(jī)制可以發(fā)送該消息來接收響應(yīng),從而確定該連接盡管可能處于等待
狀態(tài)但是還處于有效狀態(tài)。保持連接消息和相應(yīng)的響應(yīng)可以包括任何 類型和形式的格式、命令、偽指令或者通信信息。因而,在一些實(shí)施例中,加速程序120經(jīng)過傳輸層驅(qū)動(dòng)器將保持連接的消息傳送至傳輸 層連接或者使得傳送該消息。在一些實(shí)施例中,加速程序120設(shè)置保 持連接消息的頻率,而在另一實(shí)施例中,基于使用該連接的應(yīng)用程序 220a - 220n的性能或者活動(dòng)來改變保持連接消息的頻率。在一些實(shí)施例中,加速程序120截獲在傳輸層連接上接收的任何 RST和/或FIN命令,即TCP/IP命令,以重啟和/或終止TCP連接。 在一個(gè)實(shí)施例中,加速程序120忽略截獲的RST和/或FIN命令、對(duì)其 不采取措施或者丟棄、刪除或沖掉截獲的RST和/或FIN命令。在另外 的實(shí)施例中,加速程序120截獲并接收RST和/或FIN命令,但發(fā)送消 息至連接的另一端,以保持或者維持該連接處于打開狀態(tài)。在另外的 實(shí)施例中,加速程序U0響應(yīng)于因RST和/或FIN命令的處理而引起的 已建立的傳輸層連接的關(guān)閉,建立新傳輸層連接。在另外的實(shí)施例中,加速程序120在截獲的客戶機(jī)205的通信信 息中插入指令、命令或者偽指令,以指示服務(wù)器206保持打開連接或 者保持不關(guān)閉連接除非客戶機(jī)205發(fā)送打開的命令。例如,在一個(gè)實(shí) 施例中,加速程序120截獲HTTP協(xié)議的GET請(qǐng)求的通信信息,諸如 協(xié)議版本l.O,并向至服務(wù)器206的通信信息中插入保持連接頭部,例 如"Connection:Keep-Alive"。在另外的實(shí)施例中,GET請(qǐng)求或者其他 HTTP命令可以包括保持連接頭部。在這些實(shí)施例中,加速程序120 可以截獲通信信息并檢查保持連接頭部,然后將通信信息轉(zhuǎn)發(fā)至服務(wù) 器206。在一些實(shí)施例中,使了 HTTP的1.1版本或者更高版本,利用 該協(xié)議隱含了保持連接機(jī)制,使得服務(wù)器206保持連接打開直至客戶 機(jī)205請(qǐng)求關(guān)閉該連接。在另外的實(shí)施例中,加速程序120保持至服 務(wù)器206的傳輸層連接打開,直至客戶機(jī)205重新引導(dǎo)或者重新啟動(dòng)、 網(wǎng)絡(luò)204變得不可用或客戶機(jī)205從網(wǎng)絡(luò)204斷開連接、或者服務(wù)器 206重新引導(dǎo)或者重新啟動(dòng)。在步驟718,加速程序120可以在任何期望的時(shí)間點(diǎn)關(guān)閉客戶機(jī) 205和服務(wù)器206之間的任何一個(gè)或更多傳輸層連接。在一些實(shí)施例 中,當(dāng)客戶機(jī)205上使用連接的一個(gè)或更多應(yīng)用程序220a-220n終止 時(shí),加速程序120關(guān)閉傳輸層連接。在另外的實(shí)施例中,當(dāng)使用該連 接的任何應(yīng)用程序220a- 220n超時(shí)周期期限截止時(shí),加速程序120關(guān) 閉傳輸層連接。例如,加速程序120可以配置、設(shè)置或者提供使預(yù)定 的時(shí)間周期期限截止的定時(shí)器,并且如果在該周期內(nèi),連接處于等待 狀態(tài)或者保持等待狀態(tài),則加速程序120關(guān)閉該連接。在一些實(shí)施例 中,服務(wù)器206可能重新引導(dǎo)、重新啟動(dòng)或者連接可能斷開或中斷, 因而加速程序120關(guān)閉該連接。在一些實(shí)施例中,當(dāng)完成了請(qǐng)求的發(fā) 送以及從服務(wù)器206響應(yīng)的所有數(shù)據(jù)的接收時(shí),加速程序120傳送RST 和/或FIN命令或者使其被傳送,以關(guān)閉連接。在另外的實(shí)施例中,當(dāng) 客戶機(jī)205重新啟動(dòng)或者重新引導(dǎo)時(shí)、斷開至網(wǎng)絡(luò)204的連接時(shí)、網(wǎng) 絡(luò)204不可用時(shí)或者服務(wù)器206重新啟動(dòng)或重新引導(dǎo)時(shí),則關(guān)閉傳輸 層連接或者傳輸層連接池。在一些實(shí)施例中,當(dāng)加速程序120確定因客戶機(jī)205的一個(gè)或更 多應(yīng)用程序220a- 220n共享至服務(wù)器206的連接而僅需要第一傳輸層 連接時(shí),則保持至服務(wù)器206的第一傳輸層連接處于打開狀態(tài),而關(guān) 閉服務(wù)器的第二傳輸層連接。在另外的實(shí)施例中,加速程序120維持 至服務(wù)器206a - 206n的一個(gè)傳輸層連接池,并基于客戶機(jī)205上應(yīng)用 程序220a- 220n的傳輸層連接使用率、通信或者請(qǐng)求的增加來建立至 給定服務(wù)器206的第二或者多個(gè)傳輸層連接。盡管通常相對(duì)于從客戶機(jī)205至服務(wù)器206的一個(gè)或更多傳輸層 連接池來討論方法700的實(shí)施例,但是加速程序120可以順序地、幾 乎同時(shí)地、并發(fā)地建立客戶機(jī)與多個(gè)服務(wù)器206a-:206n中每一個(gè)之間 的傳輸層連接池。因而,第一應(yīng)用程序220a和第二應(yīng)用程序220b可 以使用至服務(wù)器206a的一個(gè)或更多傳輸層連接的第一池,第三應(yīng)用程 序220c和第四應(yīng)用程序2Z0d可以使用至服務(wù)器206b的一個(gè)或更多傳 輸層連接的第二池。此外,方法700的實(shí)施例中的每個(gè)步驟可以以不 同的實(shí)例、不同的頻率來執(zhí)行。在一些實(shí)施例中,可以使用多個(gè)加速 程序120的實(shí)例來處理至每個(gè)服務(wù)器206a - 206n的一個(gè)或更多傳輸層 連接的每個(gè)池。圖7B示出了根據(jù)一個(gè)實(shí)例實(shí)施例的本發(fā)明傳輸層連接池技術(shù)的消 息傳送步驟示意圖。簡(jiǎn)要來講,圖7B描述了加速程序120提供傳輸層
連接的流程圖,在一個(gè)實(shí)施例中,所述加速程序120提供至服務(wù)器206 的傳輸層連接,或者在另一實(shí)施例中提供至器具205的傳輸層連接, 以供客戶機(jī)205的兩個(gè)應(yīng)用程序220a和220b ^f吏用??蛻魴C(jī)204上的加 速程序120使用應(yīng)用程序220提供的網(wǎng)絡(luò)地址1打開客戶機(jī)205與服務(wù) 器206或器具250之間的第一傳輸層連接,如步驟752所示。步驟752 示出為雙向步驟,這是因?yàn)門CP/IP協(xié)議采用了多階段握手以打開連 接。一旦建立了傳輸層連接,加速程序120就截荻指定了 /sales/forecast,html路徑名的來自應(yīng)用程序220a的GET請(qǐng)求,如步驟 754所示。因?yàn)樵诩铀俪绦?20和服務(wù)器206或器具205之間沒有打開 空閑的傳輸層連接,所以加速程序120打開一個(gè)傳輸層連接。在一個(gè) 實(shí)施例中,加速程序120將應(yīng)用程序220a的請(qǐng)求映射到指示服務(wù)器260 的網(wǎng)絡(luò)地址的第二網(wǎng)絡(luò)地址2,如步驟756所示。例如,加速程序120 執(zhí)行網(wǎng)絡(luò)地址轉(zhuǎn)換,以修改至應(yīng)用程序220a請(qǐng)求的服務(wù)器206a的目 標(biāo)端口和/或目標(biāo)IP地址或至同樣可處理或響應(yīng)請(qǐng)求的另一服務(wù)器 206b的目標(biāo)端口和/或目標(biāo)IP地址。在另一實(shí)施例中,當(dāng)應(yīng)用程序220s 接收到或者產(chǎn)生請(qǐng)求時(shí),加速程序120將該請(qǐng)求發(fā)送至服務(wù)器206或 器具250。加速程序120還將GET請(qǐng)求傳送至該服務(wù)器206或者器具250, 如步驟758所示。在一個(gè)實(shí)施例中,加速程序250將請(qǐng)求轉(zhuǎn)發(fā)至服務(wù) 器206,而在另外的實(shí)施例中,器具M(jìn)0經(jīng)過器具250和服務(wù)器206之 間已入池或者入池且復(fù)用的傳輸層連接來轉(zhuǎn)發(fā)請(qǐng)求。在一些實(shí)施例 中,服務(wù)器206以請(qǐng)求的網(wǎng)頁進(jìn)行響應(yīng),如步驟"760所示。加速程序 120將網(wǎng)頁轉(zhuǎn)發(fā)至應(yīng)用程序220a,如步驟762所示。在一個(gè)實(shí)施例中, 關(guān)閉加速程序120和服務(wù)器206或器具250之間的傳輸層連接,如步驟 764所示。在另外的實(shí)施例中,加速程序120截獲關(guān)閉請(qǐng)求,忽略該請(qǐng) 求并使傳輸層連接處于打開狀態(tài)。根據(jù)TCP/IP協(xié)議,關(guān)閉網(wǎng)絡(luò)連接可 能要涉及到多階段處理。因此,步驟764的流程線示出為雙向。在另 外的實(shí)施例中,根據(jù)本發(fā)明的池方面的技術(shù),使為笫一應(yīng)用程序220 建立并供其使用的傳輸層連接保持打開狀態(tài)或者維持打開狀態(tài),以為 相同應(yīng)用程序220a或者諸如第二應(yīng)用程序220b的不同應(yīng)用程序中的
另外數(shù)據(jù)步驟提供方便。在步驟766,加速程序120截獲從第二應(yīng)用程序220a至服務(wù)器206 或器具250的請(qǐng)求。如果存在打開的空閑傳輸層連接和/或第二應(yīng)用程 序220b可用的傳輸層連接,諸如在步驟756為第一應(yīng)用程序220a建立 的傳輸層連接,則加速程序120使用該先前建立的傳輸層連接。因而, 不需要在步驟766打開第二傳輸層連接。否則,加速程序120建立至 服務(wù)器206或者器具250的第二傳輸層連接。在步驟768,加速程序截 獲來自第二應(yīng)用程序220b的請(qǐng)求,例如請(qǐng)求網(wǎng)頁/sales/forecast.html, 并在步驟770將該請(qǐng)求傳送至服務(wù)器206或器具250。因?yàn)樵趹?yīng)用程序 120和服務(wù)器206之間已經(jīng)打開了空閑連接,因此加速程序120不需要 使服務(wù)器206擔(dān)負(fù)打開另一連接的處理負(fù)荷。在步驟772,加速程序 120諸如經(jīng)過器具250從傳輸層連接截獲或者接收來自服務(wù)器206的響 應(yīng),并將響應(yīng)轉(zhuǎn)發(fā)至第二應(yīng)用程序220b。在步驟776,加速程序120 截獲來自第二應(yīng)用程序220b的關(guān)閉請(qǐng)求,在一些實(shí)施例中,加速程序 120關(guān)閉該連接,而在另一些實(shí)施例中,忽略該請(qǐng)求并保持該連接,以 為第一應(yīng)用程序220a、第二應(yīng)用程序220b或者客戶機(jī)20S的又一應(yīng)用 程序220c-220n提供進(jìn)一步的數(shù)據(jù)請(qǐng)求。在步驟776存在若干導(dǎo)致加速程序120關(guān)閉與服務(wù)器206或器具 250的連接的情形。例如,當(dāng)確定客戶機(jī)205已經(jīng)取回應(yīng)用程序220a 和220b請(qǐng)求的所有數(shù)據(jù)時(shí)或者當(dāng)終止、關(guān)閉或退出應(yīng)用程序220a和 220b時(shí),客戶機(jī)205或者加速程序120可以啟動(dòng)FIN (結(jié)束)命令。 在一些實(shí)施例中,在相同條件下,客戶機(jī)205或者加速程序120還可 以啟動(dòng)RST (復(fù)位)命令。除關(guān)閉加速程序120和服務(wù)器205或器具 250之間的連接外,RST命令還導(dǎo)致執(zhí)行若干內(nèi)務(wù)操作,以保持服務(wù)器 端連接處于良好狀態(tài)。尤其是,TCP協(xié)議保證RST命令具有正確的SEQ (順序)號(hào),以使得服務(wù)器接受該段。然而,并不保證RST命令具有 正確的ACK(應(yīng)答)號(hào)。要處理該情形,加速程序可以保持服務(wù)器206 或器具250的發(fā)送數(shù)據(jù)字節(jié)和客戶機(jī)205的應(yīng)答字節(jié)的線索。如果客 戶機(jī)205沒有應(yīng)答服務(wù)器206發(fā)送的所有數(shù)據(jù),則加速程序120計(jì)算未 應(yīng)答的字節(jié),并發(fā)送ACK至服務(wù)器205。另外,盡管在圖7B中未示出,但是服務(wù)器206或者器具2S0還可
以關(guān)閉其自身與客戶機(jī)205之間的連接。服務(wù)器206或者器具250將向 客戶機(jī)205發(fā)送FIN命令。在一些實(shí)施例中,在響應(yīng)時(shí),加速程序120 關(guān)閉連接,而在另一實(shí)施例中,重新建立與服務(wù)器206或者器具250 的另一連接。另外,盡管通常作為供多個(gè)應(yīng)用程序使用的一個(gè)或更多傳輸層連 接池來討論圖7A的方法700的實(shí)施例和圖7B的流程圖實(shí)例,但是本連接進(jìn)行請(qǐng)求的單個(gè)應(yīng)用程序220。例如,在HTTP協(xié)議的一個(gè)實(shí)施例 中,可以為每個(gè)來自應(yīng)用程序的HTTP請(qǐng)求建立傳輸層連接。使用本 發(fā)明的技術(shù),應(yīng)用程序220可以使用一個(gè)或更多傳輸連接的池,而無 需為每個(gè)請(qǐng)求打開和關(guān)閉傳輸層連接。在另外的方面中,本發(fā)明涉及用于經(jīng)過相同或者共享的傳輸層連 接對(duì)應(yīng)用程序請(qǐng)求進(jìn)行復(fù)用的技術(shù),諸如結(jié)合圖8A - 8B所述經(jīng)由池技 術(shù)建立的傳輸層連接。在一些實(shí)施例中,本發(fā)明確定已建立的傳輸層 連接的可用性,并通過檢查是否已經(jīng)完全接收到來自服務(wù)器206對(duì)應(yīng) 用程序請(qǐng)求的響應(yīng)內(nèi)容來復(fù)用經(jīng)過該連接來自多個(gè)應(yīng)用程序的請(qǐng)求。 如此處將進(jìn)一步所討論的一樣,在一個(gè)實(shí)施例中,本發(fā)明使用響應(yīng)的 內(nèi)容長(zhǎng)度參數(shù)來檢查是否已經(jīng)接收到所有響應(yīng)的數(shù)據(jù),而在另 一 實(shí)施 例中,使用分塊(chunked)的響應(yīng)傳輸編碼頭來檢查是否已經(jīng)接收到 所有響應(yīng)的數(shù)據(jù)。在一個(gè)方面中,本發(fā)明檢查是否已經(jīng)接收到來自響 應(yīng)的所有數(shù)據(jù),以確定入池的連接當(dāng)前是否空閑可供應(yīng)用程序使用, 和/或是否要向至服務(wù)器的連接池中建立另一傳輸層連接,諸如在圖7A 描述的方法700中的步驟706和708。在另一實(shí)施例中,檢查響應(yīng)內(nèi)容行復(fù)用的技術(shù)。 5 ' ;現(xiàn)在參考圖8A,描述經(jīng)過從客戶機(jī)205至服務(wù)器206的單個(gè)傳輸層連接來復(fù)用請(qǐng)求的方法800的實(shí)施例。簡(jiǎn)要來講,在步驟805,加速程序120建立客戶機(jī)205與服務(wù)器206之間的傳輸層連接。在步驟810,加速程序120截獲第一應(yīng)用程序2加a至服務(wù)器206的第一請(qǐng)求。在步驟815,加速程序120確定傳輸層連接當(dāng)前是否正由另一應(yīng)用程序使用或者處于等待狀態(tài)。在步驟817,如果傳輸層連接可以供應(yīng)用程序220a 使用,則加速程序120將請(qǐng)求傳送至服務(wù)器。另外,在步驟817,如果 傳輸層連接不能供應(yīng)用程序220a使用,則加速程序120在步驟819等 待一段時(shí)間周期然后返回步驟815,或者建立笫二傳輸層連接以供應(yīng)用 程序220使用。在步驟825,加速程序120接收來自服務(wù)器的對(duì)應(yīng)用程 序請(qǐng)求的響應(yīng)。在步驟830,加速程序120截獲笫二應(yīng)用程序220b的 第二請(qǐng)求,并在步驟815執(zhí)行確定傳輸層連接是否可以供第二應(yīng)用程 序220b使用。在一些實(shí)施例中,在步驟825接收到第一請(qǐng)求的響應(yīng)之 前或者在接收到響應(yīng)的所有數(shù)據(jù)之前,加速程序120在步驟830截獲 第二應(yīng)用程序220b的請(qǐng)求。如此處已經(jīng)討論的,在一些實(shí)施例中,加 速程序120使用內(nèi)容長(zhǎng)度檢查技術(shù)來確定傳輸層連接何時(shí)處于等待狀 態(tài)或者應(yīng)用程序何時(shí)已經(jīng)接收到對(duì)請(qǐng)求的所有響應(yīng)的數(shù)據(jù) 進(jìn)一步詳細(xì)地說明,在步驟805,加速程序120建立客戶機(jī)205與 服務(wù)器206之間的傳輸層連接。在一些實(shí)施例中,加速程序120利用 或者經(jīng)過器具250或者中介物來建立傳輸層連接。在一個(gè)實(shí)施例中, 加速程序120將傳輸層連接建立為至服務(wù)器206的傳輸層連接的池。 因而,在一些實(shí)施例中,傳輸層連接可以包括至服務(wù)器206的第二或 者第三傳輸層連接。在另外的實(shí)施例中,加速程序120可以經(jīng)由第一 程序222來建立傳輸層連接,正如此處在前面所討論的那樣。在一些 實(shí)施例中,加速程序120響應(yīng)于客戶機(jī)205的笫一應(yīng)用程序220a的請(qǐng)求建立傳輸層連接。在步驟810,加速程序120截獲第一應(yīng)用程序220a訪問服務(wù)器206的第一請(qǐng)求。在一些實(shí)施例中,在經(jīng)過傳輸層連接建立或者傳送該請(qǐng) 求之前,在傳輸協(xié)議層截獲該請(qǐng)求。在另外的實(shí)施例中,在傳輸層連 接之上或者傳輸層之上的任何協(xié)議層截獲該請(qǐng)求。在一些實(shí)施例中, 通過笫一程序222來截獲該請(qǐng)求。在一個(gè)實(shí)施例中,應(yīng)用程序220a的 請(qǐng)求是要求打開或者建立與服務(wù)器206的傳輸層連接的請(qǐng)求。在另外 的實(shí)施例中,應(yīng)用程序請(qǐng)求是要求經(jīng)過建立的傳輸層連接或者經(jīng)由器 具250來訪問服務(wù)器的請(qǐng)求。在步驟815,加速程序UO確定傳輸層連接是否處于等待狀態(tài)或可 供第一應(yīng)用程序220a使用,或者確定傳輸層連接將傳送第一應(yīng)用程序 220a的第一請(qǐng)求。在一些實(shí)施例中,加速程序120從一個(gè)或更多傳輸
層連接池中確定該池中哪個(gè)傳輸層連接處于等待狀態(tài)或者空閑狀態(tài)以供第一應(yīng)用程序220a使用。在一個(gè)實(shí)施例中,加速程序120確定傳輸 層連接處于等待狀態(tài),這是因?yàn)榧铀俪绦?20響應(yīng)于請(qǐng)求建立了傳輸 層連接或者剛剛在請(qǐng)求之前建立了傳輸層連接。在一些實(shí)施例中,加 速程序120可能還沒有從任一應(yīng)用程序220接收任何請(qǐng)求,并將該請(qǐng) 求識(shí)別為加速程序120截獲和處理的第一請(qǐng)求。在另一實(shí)施例中,加 速程序120跟蹤在傳輸層連接上傳輸?shù)娜魏握?qǐng)求的未完結(jié)響應(yīng)的數(shù) 量,如果沒有未完結(jié)的響應(yīng),則加速程序120認(rèn)為傳輸層連接可以供 第一應(yīng)用程序220a使用。在又一實(shí)施例中,加速程序120識(shí)別傳輸層 連接當(dāng)前處于等待狀態(tài)。例如,加速程序120可能正在啟動(dòng)對(duì)服務(wù)器 的保持連接請(qǐng)求,以保持該連接處于打開狀態(tài)。在一些實(shí)施例中,當(dāng) 已經(jīng)完成了最后事務(wù)處理但服務(wù)器206和/或客戶機(jī)205還未傳送RST 和/或FIN命令時(shí),傳輸層連接處于等待狀態(tài)。在一些實(shí)施例中,加速程序120可以檢查響應(yīng)內(nèi)容長(zhǎng)度,以確定 是否已經(jīng)完成了服務(wù)器206對(duì)第一應(yīng)用程序202a的第一請(qǐng)求的響應(yīng), 或者加速程序120是否已經(jīng)接收到了響應(yīng)的所有數(shù)據(jù)。如上面所提及 的那樣,在一些實(shí)施例中,還使用這些技術(shù)來確定建立本發(fā)明的池技 術(shù)的另一連接。關(guān)于本發(fā)明的該技術(shù),將使用圖9和圖IO來描述所述 檢查,在一個(gè)實(shí)施例中檢查響應(yīng)內(nèi)容長(zhǎng)度參數(shù)或者在另一實(shí)施例中檢 查響應(yīng)的分塊(chunked) 傳送編碼頭,以確定是否已經(jīng)收到響應(yīng)的 所有數(shù)據(jù)。圖9描述了 TCP包的TCP部分,稱作TCP段900。 TCP 段900包括TCP頭部902和正文(body) 904。在一個(gè)實(shí)施例中,正文 卯4包括其他數(shù)據(jù)和信息、HTTP頭部和消息,其中TCP包承載HTTP 的應(yīng)用層協(xié)議。在一些實(shí)施例中,內(nèi)容長(zhǎng)度參數(shù)卯6位于HTTP頭部, 可以在HTTP發(fā)現(xiàn)或者被HTTP頭部引用。在一個(gè)實(shí)施例中,本發(fā)明 的加速程序120使用內(nèi)容長(zhǎng)度參數(shù)906來確定是否接收到響應(yīng)的所有 數(shù)據(jù)。圖IO描述了 TCP包的TCP段的另一實(shí)施例。在傳輸層連接上使 用HTTP協(xié)議的一些實(shí)施例中,可以存在分塊傳送編碼頭并指示分塊 的傳送編碼已經(jīng)應(yīng)用至TCP段或者TCP包。因而,在該實(shí)施例中,消 息的長(zhǎng)度通過分塊編碼來定義。分塊編碼修改了消息體,以傳送作為
塊序列(series of chunks )的消息,每個(gè)塊在塊大小(chunk-size)字 段中具有其自身的長(zhǎng)度指示符。TCP段1600包括TCP頭部(現(xiàn)在已 示出)和正文。在其他信息中,正文包括HTTP頭部1602 A- 1602 C 和消息。HTTP頭部1602A-1602 C包括七個(gè)塊大小字段1606 A-1606 G,以及六個(gè)塊消息數(shù)據(jù)1604 A- 1604F。塊大小字段1606 A-1606 G鏈接在一起,或者引用或者關(guān)聯(lián)在一 起,如圖10所示。塊大小字段1606A表示塊消息數(shù)據(jù)1604A中的消息 長(zhǎng)度,塊大小字段1606C表示塊消息數(shù)據(jù)1604C中的消息長(zhǎng)度,等等。 最后那個(gè)塊大小字段1606G包括長(zhǎng)度值零,表明后面沒有跟著更多的 塊或者更多的消息。在另一實(shí)施例中,本發(fā)明的加速程序120經(jīng)過塊 大小字段確定客戶機(jī)205是否已經(jīng)接收到所有的響應(yīng)數(shù)據(jù)。盡管圖9和圖IO通常描述了檢查對(duì)請(qǐng)求響應(yīng)的所有數(shù)據(jù)是否已經(jīng) 接收到的技術(shù),但是這些技術(shù)還可以應(yīng)用于發(fā)送異步消息或者通信信 息到客戶機(jī)205的服務(wù)器206或者器具250。另外,盡管通常結(jié)合圖9 和圖10中針對(duì)HTTP協(xié)議描述了這些技術(shù),但是這些技術(shù)還可以在提 供了客戶機(jī)205將接收或?qū)魉偷臄?shù)據(jù)長(zhǎng)度指示的任何協(xié)議層應(yīng)用于 任何協(xié)議。因而,在一些實(shí)施例中,加速程序120包括在任何協(xié)議層 處對(duì)網(wǎng)絡(luò)包的任何部分進(jìn)行訪問、提取、檢查、分析或者處理,以確 定是否已經(jīng)接收到與客戶機(jī)和服務(wù)器或器具之間的請(qǐng)求、響應(yīng)或者通 信信息相關(guān)的所有數(shù)據(jù)。在又一實(shí)施例中,加速程序120跟蹤客戶機(jī) 205和服務(wù)器205之間傳送、接收和應(yīng)答的字節(jié)數(shù)目,以為應(yīng)用程序 220確定在客戶機(jī)205和服務(wù)器206之間是否存在未完結(jié)的字節(jié)。通過使用上述內(nèi)容長(zhǎng)度技術(shù),本發(fā)明的加速程序120可以重用客 戶機(jī)205的任何其他應(yīng)用程序220a-220n以前使用的至服務(wù)器206的相 同傳輸層連接,或者在所述任何其他應(yīng)用程序220a-220n使用的過程中 使用與其相同的傳輸層連接。在步驟817,加速程序120確定是否可以利用傳輸層連接來傳送第 一請(qǐng)求,如果可以,則在步驟820將請(qǐng)求傳送至服務(wù)器206。否則,在 步驟819,加速程序120可以等待,直至已經(jīng)接收了應(yīng)用程序未完結(jié)請(qǐng) 求的所有數(shù)據(jù)。例如,加速程序120可以將定時(shí)器設(shè)定為例如較短的 時(shí)間周期,然后進(jìn)行至步驟815。在一些實(shí)施例中,加速程序120響應(yīng)
于客戶機(jī)205的網(wǎng)絡(luò)棧210的包處理定時(shí)器,檢查是否已經(jīng)接收到所 有的數(shù)據(jù)。在另一實(shí)施例中,加速程序120在步驟819建立另一傳輸 層連接,以傳送第一應(yīng)用程序220a的第一請(qǐng)求。在步驟820,加速程序120可以跟蹤哪個(gè)應(yīng)用程序220在該連接上具有未完結(jié)請(qǐng)求或者響應(yīng)或者當(dāng)前正在使用該連接。例如, 一次僅一 個(gè)應(yīng)用程序220可以在該連接上傳送請(qǐng)求和接收響應(yīng)。因而,加速程 序120掌握了哪個(gè)應(yīng)用程序220正在使用該連接。在一些實(shí)施例中, 對(duì)于共享該連接的客戶機(jī)205的所有應(yīng)用程序220a-220n,加速程序 120使用一個(gè)傳輸層連接通信的端口號(hào)。在一些情況下,加速程序120基于逐個(gè)應(yīng)用程序來跟蹤請(qǐng)求和請(qǐng)求的未完結(jié)響應(yīng)。在一些實(shí)施例 中,加速程序120使得應(yīng)用程序220的處理id與請(qǐng)求相關(guān)聯(lián)。在又一 實(shí)施例中,加速程序120在相同的一個(gè)網(wǎng)絡(luò)包或者多個(gè)網(wǎng)絡(luò)包中、一 個(gè)TCP段或者多個(gè)TCP段中傳送第一應(yīng)用程序220a的請(qǐng)求和第二應(yīng) 用程序220b的請(qǐng)求。在另外的實(shí)施例中,加速程序120經(jīng)過相同傳輸 層連接作為一個(gè)或更多TCP段窗口的TCP段序列的一部分來傳送應(yīng) 用程序220a - 220n的多個(gè)請(qǐng)求。在另外的實(shí)施例中,加速程序120使用端口編號(hào)機(jī)制和/或方案來 跟蹤和識(shí)別所接收的哪個(gè)響應(yīng)或者消息用于哪個(gè)應(yīng)用程序220a -220n。在其他實(shí)施例中,加速程序120提供端口號(hào)并使其與應(yīng)用程序 220相關(guān)聯(lián),然后將待傳輸?shù)腡CP網(wǎng)絡(luò)包中的端口號(hào)修改為應(yīng)用程序 分配的端口號(hào)。在另外的實(shí)施例中,通過應(yīng)用程序220來提供端口號(hào), 加速程序120在TCP網(wǎng)絡(luò)包中改變或者提供該端口號(hào)。因而,在一些 實(shí)施例中,加速程序120可以交織來自客戶機(jī)205的多個(gè)應(yīng)用程序220a - 220n的請(qǐng)求,使得應(yīng)用程序220a-220n可以在相同時(shí)間使用傳輸層 連接。在步驟825,加速程序120諸如通過器具205從服務(wù)器206接收對(duì) 第一應(yīng)用程序220a的第一請(qǐng)求的響應(yīng),并向第一應(yīng)用程序220a提供 該響應(yīng)。在一些實(shí)施例中,加速程序120經(jīng)過網(wǎng)絡(luò)棧210向第一應(yīng)用 程序220a提供響應(yīng),諸如允許或者啟動(dòng)在連接的傳輸層之上的協(xié)議層 的響應(yīng)處理。在另一實(shí)施例中,第一程序222向第一應(yīng)用程序220a提 供響應(yīng)。在另外的實(shí)施例中,加速程序120可以經(jīng)過進(jìn)程間通信機(jī)制 或者諸如API的接口向第一應(yīng)用程序220a提供該響應(yīng)。在一些實(shí)施例 中,加速程序120僅僅接收部分響應(yīng),諸如圖IO所述的多塊消息中的 第一塊。在步驟830,加速程序120截獲第二應(yīng)用程序220b訪問服務(wù)器206 的請(qǐng)求。在一些實(shí)施例中,加速程序120在步驟825之前截獲笫二應(yīng) 用程序"0b的請(qǐng)求。在另外實(shí)施例中,加速程序120在步驟825接收 響應(yīng)期間截獲第二應(yīng)用程序220b的請(qǐng)求。在另一實(shí)施例中,加速程序 120在客戶機(jī)205或者加速程序120接收到對(duì)第一應(yīng)用程序220a的第 一請(qǐng)求響應(yīng)的所有數(shù)據(jù)之前,截獲笫二應(yīng)用程序220b的請(qǐng)求。當(dāng)接收 到第二應(yīng)用程序220b的請(qǐng)求時(shí),在本發(fā)明的實(shí)施例中,加速程序120 進(jìn)行至步驟815,以確定是否能夠經(jīng)過傳輸層連接對(duì)第二請(qǐng)求進(jìn)行復(fù) 用,或者是否建立另一傳輸層連接,諸如連接池中的另一連接。在其 他實(shí)施例中,當(dāng)?shù)谝粦?yīng)用程序220a具有未完結(jié)的響應(yīng)或者沒有接收到 來自第一請(qǐng)求的響應(yīng)中的所有數(shù)據(jù)時(shí),加速程序120經(jīng)過與笫一應(yīng)用 程序220a相同的連接傳送第二應(yīng)用程序220b的請(qǐng)求。在另一實(shí)施例 中,在第一應(yīng)用程序220a已經(jīng)接收了響應(yīng)之后且在與第一應(yīng)用程序 220a相關(guān)生成任何產(chǎn)生的RST和/或FIN命令之前,加速程序120傳 送第二應(yīng)用程序220b的請(qǐng)求。盡管已經(jīng)相對(duì)于加速技術(shù)的執(zhí)行和客戶端實(shí)施對(duì)應(yīng)用程序120進(jìn) 行了通常的討論,但是加速程序120與同樣也實(shí)施和執(zhí)行器具端加速 技術(shù)的所述器具250對(duì)接,并結(jié)合所述器具250工作。在一個(gè)實(shí)施例 中,客戶端加速程序120和器具250可以彼此結(jié)合工作,以對(duì)客戶機(jī) 205a-205n和服務(wù)器206a-206n之間通信執(zhí)行本發(fā)明的多種加速技 術(shù)。在一些實(shí)施例中,客戶端加速程序120和器具250同時(shí)提供了 TCP 池和TCP復(fù)用,諸如以便在客戶機(jī)205a-205n和服務(wù)器206a-206n之 間提供分層或者端到端的池和復(fù)用機(jī)制。例如,加速程序120可以為 器具250提供第一池傳輸層連接,接著器具250為服務(wù)器206a-2(^n提 供第二池傳輸層連接。在另外的實(shí)施例中,加速程序120可以經(jīng)過客 戶機(jī)205a-205n上的第一池傳輸層連接對(duì)應(yīng)用程序請(qǐng)求進(jìn)行復(fù)用,接著 客戶機(jī)205a-205n經(jīng)過連接至服務(wù)器206a-206n的第二池傳輸層連接通 過器具250對(duì)所述應(yīng)用程序請(qǐng)求進(jìn)行復(fù)用。在一些實(shí)施例中,加速程
序120為來自客戶機(jī)205a- 205n的請(qǐng)求傳送提供了減速機(jī)制,同時(shí)器 具205為從服務(wù)器206a-206n至客戶機(jī)205a-205n的響應(yīng)傳送提供了減 速機(jī)制。在另一實(shí)施例中,加速程序120對(duì)客戶機(jī)205執(zhí)行客戶端高 速緩存,同時(shí)器具250為客戶機(jī)205a-205n以及其他客戶機(jī)205a-205n 提供了對(duì)象(諸如動(dòng)態(tài)生成的對(duì)象)的高速緩存。在一些實(shí)施例中,除了在客戶機(jī)205和/或器具上執(zhí)行加速技術(shù)之 外,或者結(jié)合在客戶機(jī)205和/或器具上執(zhí)行加速技術(shù),加速程序120 和器具可以經(jīng)由器具250提供客戶機(jī)205和網(wǎng)絡(luò)204訪問之間的虛擬專 用網(wǎng)絡(luò)連接和通信。在另一實(shí)施例中,加速程序120可以壓縮從應(yīng)用 程序220傳送的數(shù)據(jù),器具250可以在接收到所述壓縮數(shù)據(jù)時(shí)對(duì)其進(jìn) 行解壓縮。相反,器具250可以壓縮從專用數(shù)據(jù)通信網(wǎng)絡(luò)204,的服務(wù) 器206上的應(yīng)用程序220傳送的數(shù)據(jù),并且加速程序120可以在接收到 所述壓縮數(shù)據(jù)時(shí)對(duì)其進(jìn)行解壓縮。同樣,加速程序120和器具250可 以充當(dāng)加密數(shù)據(jù)通信中或者隧道會(huì)話中的端點(diǎn),其中加速程序120對(duì) 從應(yīng)用程序220傳送的數(shù)據(jù)進(jìn)行加密,器具250當(dāng)接收到所述加密數(shù) 據(jù)時(shí)對(duì)其進(jìn)行解密。通過類似的方式,器具250在對(duì)從專用數(shù)據(jù)通信 網(wǎng)絡(luò)上的應(yīng)用程序220傳送的數(shù)據(jù)進(jìn)行加密,并且所述加速程序120當(dāng) 接收到所述數(shù)據(jù)時(shí)可以對(duì)其進(jìn)行解密。鑒于此處描述的客戶端加速部署和執(zhí)行技術(shù)的結(jié)構(gòu)、功能和操的客戶機(jī)上;"加速技術(shù)。在一些實(shí)i例中,本發(fā)明避免)在客戶機(jī) 和公共數(shù)據(jù)通信網(wǎng)絡(luò)之間安裝基于器具的或者基于服務(wù)器的加速器。 此外,由于在網(wǎng)絡(luò)上,加速程序動(dòng)態(tài)地提供給客戶機(jī)205,并可以在客 戶機(jī)205上自動(dòng)安裝和執(zhí)行,因此可以在任何客戶機(jī)機(jī)器上實(shí)現(xiàn)加速。 同樣,因?yàn)榧铀俪绦虼鎯?chǔ)在器具250或者服務(wù)器,或者從器具250或 者服務(wù)器動(dòng)態(tài)下載,因此可以一次執(zhí)行對(duì)于加速程序120的升級(jí)和/或 維護(hù),并可在客戶機(jī)訪問網(wǎng)絡(luò)時(shí)對(duì)其進(jìn)行動(dòng)態(tài)地和自動(dòng)地部署。另外, 本發(fā)明結(jié)合器具端加速程序工作,以執(zhí)行從客戶機(jī)至器具或者服務(wù)器 的端到端加速。雖然,此處已經(jīng)描述了本發(fā)明的各種實(shí)施例,但是應(yīng)當(dāng)理解的是, 僅通過示例的方式介紹了這些實(shí)施例,但并不是對(duì)本發(fā)明的限制。因
此,相關(guān)領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在并不脫離所附權(quán)利要求書定 義的本發(fā)明的精神和范圍的情況下,可以在形式和細(xì)節(jié)方面進(jìn)行各種 改變。因此,本發(fā)明的范圍以及外延不應(yīng)當(dāng)受到上述任何實(shí)例實(shí)施例 的限制,而是僅僅根據(jù)下面的權(quán)利要求及其等效表述來限定。
權(quán)利要求
1.一種用于向客戶機(jī)動(dòng)態(tài)提供加速程序以自動(dòng)安裝并執(zhí)行的方法,所述加速程序用于加速客戶機(jī)對(duì)于遠(yuǎn)程訪問應(yīng)用程序的訪問,所述方法包括步驟(a)通過器具接收客戶機(jī)要求建立與服務(wù)器的通信會(huì)話的請(qǐng)求;(b)通過所述器具將包括網(wǎng)絡(luò)驅(qū)動(dòng)器的加速程序傳送至客戶機(jī),以在客戶機(jī)上對(duì)于經(jīng)過服務(wù)器所提供的應(yīng)用程序的客戶機(jī)訪問執(zhí)行加速;(c)當(dāng)接收到加速程序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行網(wǎng)絡(luò)驅(qū)動(dòng)器至客戶機(jī)儲(chǔ)存器的靜默安裝;和(d)當(dāng)安裝了網(wǎng)絡(luò)驅(qū)動(dòng)器時(shí),通過客戶機(jī)在分配給客戶機(jī)網(wǎng)絡(luò)棧的存儲(chǔ)器中自動(dòng)執(zhí)行網(wǎng)絡(luò)驅(qū)動(dòng)器。
2. 根據(jù)權(quán)利要求l所述的方法,包括當(dāng)建立與服務(wù)器的通信會(huì)話 時(shí),通過器具將加速程序傳送給客戶機(jī)。
3. 根據(jù)權(quán)利要求1所述的方法,包括通過加速程序建立與服務(wù)器 的通信會(huì)話。
4. 根據(jù)權(quán)利要求1所述的方法,包括在無需重新引導(dǎo)客戶機(jī)或者 由客戶機(jī)用戶進(jìn)行交互中之一的情況下,在客戶機(jī)上安裝加速程序。
5. 根據(jù)權(quán)利要求1所述的方法,其中在客戶機(jī)上對(duì)于客戶機(jī)的用 戶、客戶機(jī)的應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行步驟(b)、步驟(c) 或步驟(d)中之一。
6. 根據(jù)權(quán)利要求1所述的方法,其中網(wǎng)絡(luò)驅(qū)動(dòng)器包括對(duì)接至網(wǎng)絡(luò) 棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
7. 根據(jù)權(quán)利要求1所述的方法,其中加速程序?qū)W(wǎng)絡(luò)棧的網(wǎng)絡(luò) 層、會(huì)話層或者應(yīng)用層之一透明地提供了對(duì)服務(wù)器上應(yīng)用程序的客戶 端加速訪問。
8. 根據(jù)權(quán)利要求1所述的方法,包括通過器具將第一程序傳送至 客戶機(jī),所述第一程序包括加速程序。
9. 根據(jù)權(quán)利要求8所述的方法,包括當(dāng)接收到第一程序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行第一程序,以安裝和執(zhí)行加速程序。
10. 根據(jù)權(quán)利要求8所述的方法,其中第一程序包括提供至瀏覽器并在瀏覽器上執(zhí)行的可執(zhí)行指令。
11.根據(jù)權(quán)利要求l所述的方法,進(jìn)一步包括步驟 (e )通過所述器具接收來自客戶機(jī)的要求訪問服務(wù)器上的應(yīng)用程 序的請(qǐng)求;和(f) 通過所述器具將消息傳送至與加速程序通信的客戶機(jī),以對(duì) 客戶機(jī)和服務(wù)器之間的通信執(zhí)行至少 一種加速技術(shù)。
12. 根據(jù)權(quán)利要求ll所述的方法,包括(g) 通過所述器具確定應(yīng)用程序是否能夠被加速;和(h) 如果該應(yīng)用程序能夠被加速,則通過器具傳送消息至客戶機(jī)。
13. 根據(jù)權(quán)利要求l所述的方法,包括通過所述加速程序在客戶機(jī) 上執(zhí)行下列加速技術(shù)其中之一 壓縮; 解壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
14. 根據(jù)權(quán)利要求1所述的方法,包括通過加速程序執(zhí)行客戶機(jī)和 服務(wù)器之間的通信的加密或者解密之一。
15. 根據(jù)權(quán)利要求l所述的方法,包括通過網(wǎng)絡(luò)驅(qū)動(dòng)器建立與器具 或者服務(wù)器其中之一的虛擬專用網(wǎng)絡(luò)連接。
16. 根據(jù)權(quán)利要求l所述的方法,其中所述器具包括高速緩存、網(wǎng) 關(guān)、服務(wù)器、防火墻、代理、路由器、交換機(jī)或者橋其中之一。
17. —種用于向客戶機(jī)動(dòng)態(tài)提供加速程序以加速客戶才幾對(duì)遠(yuǎn)程訪 問應(yīng)用程序的訪問的方法,所述方法包括步驟(a )通過所述器具接收客戶機(jī)要求經(jīng)過服務(wù)器訪問應(yīng)用程序的請(qǐng)求;(b) 通過所述器具確定應(yīng)用程序能夠被加速;和(c) 通過所述器具將加速程序傳送至客戶機(jī),以在客戶機(jī)上進(jìn)行 自動(dòng)安裝和執(zhí)行。
18. 根據(jù)權(quán)利要求17所述的方法,包括當(dāng)接收加速程序時(shí),通過 客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
19. 根據(jù)權(quán)利要求17所述的方法,包括通過客戶機(jī)對(duì)于客戶機(jī)上 的應(yīng)用程序、客戶機(jī)上的用戶或者服務(wù)器之一透明地接收、安裝或者 執(zhí)行加速程序。
20. 根據(jù)權(quán)利要求17所述的方法,包括通過器具確定加速程序不 能被加速,并將所述請(qǐng)求轉(zhuǎn)發(fā)至服務(wù)器。
21. 根據(jù)權(quán)利要求17所述的方法,包括通過器具確定所述應(yīng)用程 序能夠通過下列加速技術(shù)之一來加速壓縮; 解壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
22. 根據(jù)權(quán)利要求19所述的方法,包括通過所述器具傳送加速程 序,所述加速程序被配置成提供由所述器具確定的能夠?qū)?yīng)用程序進(jìn) 4亍加速的加速4支術(shù)。
23. 根據(jù)權(quán)利要求19所述的方法,包括通過所述加速程序執(zhí)行所 述加速技術(shù)其中之一。
24. 根據(jù)權(quán)利要求17所述的方法,包括通過加速程序提供到器具 或者服務(wù)器之一的虛擬專用網(wǎng)絡(luò)。
25. 根據(jù)權(quán)利要求17所述的方法,其中所述器具包括高速緩存、 網(wǎng)關(guān)、服務(wù)器、防火墻、代理、路由器、交換機(jī)或者橋其中之一。
26. —種用于向客戶機(jī)動(dòng)態(tài)提供加速程序以加速客戶機(jī)對(duì)遠(yuǎn)程訪 問應(yīng)用程序的訪問的器具,所述器具包括用于接收請(qǐng)求的裝置,用于接收來自客戶機(jī)的要求經(jīng)過服務(wù)器訪問應(yīng)用程序的請(qǐng)求;用于確定加速的裝置,用于確定應(yīng)用程序能夠被加速;以及 用于傳送加速程序的裝置,用于將加速程序傳送至客戶機(jī),所述加速程序被配置成在客戶機(jī)上自動(dòng)安裝并執(zhí)行。
27. 根據(jù)權(quán)利要求26所述的器具,包括所述用于確定加速和轉(zhuǎn)發(fā) 請(qǐng)求裝置,用于通過器具確定加速程序不能被加速,并將所述請(qǐng)求轉(zhuǎn) 發(fā)至服務(wù)器。
28. 根據(jù)權(quán)利要求26所述的器具,包括用于確定加速的裝置,用 于通過器具確定應(yīng)用程序能夠通過下列加速技術(shù)其中之一被加速壓縮; 解壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
29. 根據(jù)權(quán)利要求26所述的器具,包括用于傳送加速程序的裝 置,用于通過所述器具傳送加速程序,所述加速程序被配置成提供由 所述設(shè)備確定的能夠?qū)?yīng)用程序進(jìn)行加速的加速技術(shù)。
30. 根據(jù)權(quán)利要求26所述的器具,包括用于建立與加速程序的虛 擬專用網(wǎng)絡(luò)的裝置。
31. 根據(jù)權(quán)利要求26所述的器具,包括高速緩存、網(wǎng)關(guān)、服務(wù)器、防火墻、代理、路由器、交換機(jī)或者橋其中之一。
32. —種加速客戶機(jī)訪問的方法,所述方法通過在客戶機(jī)上使至服 務(wù)器的一個(gè)或更多傳輸層連接入池來加速客戶機(jī)對(duì)服務(wù)器的訪問,所 述方法包括(a )通過客戶機(jī)上的加速程序截獲第一應(yīng)用程序要求建立與服務(wù)器的第一傳輸層連接的第一請(qǐng)求;(b) 通過加速程序建立加速程序和服務(wù)器之間的傳輸層連接;(c) 通過加速程序截獲第二應(yīng)用程序要求建立與服務(wù)器的第二傳 輸層連接的第二請(qǐng)求;和(e)通過加速程序使用已建立的傳輸層連接為第二應(yīng)用程序提 供所請(qǐng)求的傳輸層連接。
33. 根據(jù)權(quán)利要求32所述的方法,包括當(dāng)從客戶機(jī)請(qǐng)求建立與服務(wù)器的連接或者會(huì)話其中之一時(shí),通過器具將加速程序傳送至客戶機(jī)。
34. 根據(jù)權(quán)利要求32所述的方法,包括當(dāng)接收到加速程序時(shí),通 過客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
35. 根據(jù)權(quán)利要求32所述的方法,其中加速程序包括對(duì)接至客戶 機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
36. 根據(jù)權(quán)利要求32所述的方法,包括通過加速程序經(jīng)過已建立 的傳輸層連接對(duì)來自要求客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。
37. 根據(jù)權(quán)利要求32所述的方法,包括通過所述加速程序在客戶 機(jī)上執(zhí)行下列加速技術(shù)其中之一 壓縮; 解壓縮;傳輸控制協(xié)議復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
38. 根據(jù)權(quán)利要求32所述的方法,包括通過加速程序執(zhí)行客戶機(jī) 和服務(wù)器之間的通信的加密或者解密之一。
39. 根據(jù)權(quán)利要求32所述的方法,包括當(dāng)接收到復(fù)位或結(jié)束命令 時(shí),通過加速程序關(guān)閉第一傳輸層連接。
40. 根據(jù)權(quán)利要求32所述的方法,包括在等待活動(dòng)時(shí)期期間,通 過加速程序保持服務(wù)器和第一應(yīng)用程序或第二應(yīng)用程序之一之間的傳 輸層連接打開。
41. 根據(jù)權(quán)利要求40所述的方法,包括通過加速程序在從客戶機(jī)至服務(wù)器的通信信息中插入指令以保持傳輸層連接打開。
42. 根據(jù)權(quán)利要求32所述的方法,包括通過比較每個(gè)應(yīng)用程序向服務(wù)器傳送的字節(jié)數(shù)和來自服務(wù)器的應(yīng)答字節(jié)數(shù),由加速程序確定傳 輸層連接當(dāng)前正由第一應(yīng)用程序或正由第二應(yīng)用程序在使用。
43. 根據(jù)權(quán)利要求32所述的方法,其中步驟(e)包括通過加速程序確定傳輸層連接當(dāng)前正由第一應(yīng)用程序使用,并且打開加速程序和 服務(wù)器之間的第二傳輸層連接,以供第二應(yīng)用程序使用。
44. 根據(jù)權(quán)利要求32所述的方法,其中步驟(b)包括建立加速程序和器具之間的傳輸層連接,所述器具與服務(wù)器通信。
45. 根據(jù)權(quán)利要求44所述的方法,包括通過器具建立一個(gè)或者更 多傳輸層連接池,以供加速程序使用。
46. 根據(jù)權(quán)利要求32所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò) 棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層其中之一透明地執(zhí)行加速程序。
47. 根據(jù)權(quán)利要求32所述的方法,包括通過客戶機(jī)對(duì)第一應(yīng)用程 序、第二應(yīng)用程序或者服務(wù)器其中之一透明地執(zhí)行加速程序。
48. —種加速客戶機(jī)訪問的系統(tǒng),所述系統(tǒng)通過在客戶機(jī)上使至服 務(wù)器的一個(gè)或更多傳輸層連接入池來加速客戶機(jī)對(duì)一個(gè)或更多服務(wù)器 的訪問,所述系統(tǒng)包括用于截獲第一請(qǐng)求的裝置,用于通過客戶機(jī)上的應(yīng)用程序截獲第 一應(yīng)用程序要求建立與服務(wù)器的第一傳輸層連接的第一請(qǐng)求;用于建立傳輸層連接的裝置,用于通過加速程序建立加速程序與 服務(wù)器之間的傳輸層連接;用于截獲第二請(qǐng)求的裝置,用于通過加速程序截獲第二應(yīng)用程序 要求建立與服務(wù)器的第二傳輸層連接的第二請(qǐng)求;使用已建立傳輸層連接的裝置,用于通過加速程序使用已建立的 傳輸層連接為第二應(yīng)用程序提供所請(qǐng)求的傳輸層連接。
49. 根據(jù)權(quán)利要求48所述的系統(tǒng),包括通過客戶機(jī)自動(dòng)安裝并執(zhí) 行加速程序的裝置。
50. 根據(jù)權(quán)利要求48所述的系統(tǒng),包括用于傳送加速程序的器 具,用于當(dāng)從客戶機(jī)請(qǐng)求建立與服務(wù)器的連接或者會(huì)話其中之一時(shí), 將加速程序傳送至客戶機(jī)。
51. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中所述加速程序包括對(duì)接至 客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
52. 根據(jù)權(quán)利要求48所述的系統(tǒng),包括用于復(fù)用的裝置,用于通過 加速程序經(jīng)過第二傳輸層連接對(duì)來自客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求 進(jìn)行復(fù)用。
53. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中所述加速程序在客戶機(jī)上 執(zhí)行下列加速技術(shù)之一 壓縮; 解壓縮;傳輸控制協(xié)議(TCP)復(fù)用; TCP緩沖;和 高速緩存。
54. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中所述加速程序執(zhí)行客戶機(jī) 和服務(wù)器之間的通信的加密或者解密之一。
55. 根據(jù)權(quán)利要求48所述的系統(tǒng),包括用于關(guān)閉的裝置,用于當(dāng) 接收到復(fù)位和結(jié)束命令時(shí)通過加速程序關(guān)閉傳輸層連接。
56. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中在等待活動(dòng)時(shí)期期間,加 速程序保持服務(wù)器和第一應(yīng)用程序或第二應(yīng)用程序之一之間的傳輸層 連接打開。
57. 根據(jù)權(quán)利要求56所述的系統(tǒng),其中加速程序在從客戶機(jī)至服 務(wù)器的通信信息中插入指令以保持所述連接打開。
58. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中通過比較每個(gè)應(yīng)用程序向 服務(wù)器傳送的字節(jié)數(shù)和來自服務(wù)器的應(yīng)答字節(jié)數(shù),加速程序確定傳輸 層連接當(dāng)前正由第 一應(yīng)用程序或第二應(yīng)用程序之一在使用。
59. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中加速程序確定傳輸層連接 當(dāng)前正由第 一應(yīng)用程序使用,并且打開加速程序和服務(wù)器之間的第二 傳輸層連接,以供第二應(yīng)用程序使用。
60. 根據(jù)權(quán)利要求48所述的系統(tǒng),包括用于建立第二傳輸層連接 的裝置,用于建立加速程序和器具之間的第二傳輸層連接,所述器具 與服務(wù)器通信。
61. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中所述器具包括一個(gè)或者更 多傳輸層連接的池,以供加速程序使用。
62. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中加速程序在客戶端對(duì)客戶 機(jī)網(wǎng)絡(luò)棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行。
63. 根據(jù)權(quán)利要求48所述的系統(tǒng),其中加速程序在客戶機(jī)上對(duì)第 一應(yīng)用程序、第二應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行。
64. —種加速客戶機(jī)訪問的方法,所述方法通過共享傳輸層連接對(duì) 多個(gè)應(yīng)用程序請(qǐng)求進(jìn)行復(fù)用來加速客戶機(jī)對(duì)服務(wù)器上一個(gè)或更多應(yīng)用 程序的客戶機(jī)訪問,所述方法包括步驟(a)通過客戶機(jī)上的應(yīng)用程序截獲客戶機(jī)的第一應(yīng)用程序要求訪 問服務(wù)器的第一請(qǐng)求; (b )通過加速程序經(jīng)過已在加速程序和服務(wù)器之間建立的傳輸層 連接傳送第一請(qǐng)求;(c)通過加速程序截獲客戶機(jī)的第二應(yīng)用程序要求訪問服務(wù)器的第二請(qǐng)求;和(d )通過所述加速程序經(jīng)由第一應(yīng)用程序所使用的已建立傳輸層 連接來傳送笫二請(qǐng)求。
65. 根據(jù)權(quán)利要求4所述的方法,包括當(dāng)從服務(wù)器接收到對(duì)第一應(yīng)用程序的請(qǐng)求的響應(yīng)時(shí),通過加速程序傳送第二請(qǐng)求。
66. 根據(jù)權(quán)利要求64所述的方法,包括當(dāng)確定第一應(yīng)用程序目前 沒有正在使用傳輸層連接時(shí),則通過加速程序來傳送第二請(qǐng)求。
67. 根據(jù)權(quán)利要求66所述的方法,包括由加速程序通過比較第一應(yīng)用程序傳送至服務(wù)器的字節(jié)數(shù)和服務(wù)器應(yīng)答的字節(jié)數(shù)來確定第一應(yīng) 用程序目前沒有正在使用傳輸層連接。
68. 根據(jù)權(quán)利要求66所述的方法,包括由加速程序通過檢驗(yàn)客戶 機(jī)和服務(wù)器之間的消息中的消息標(biāo)識(shí)符長(zhǎng)度來確定第 一應(yīng)用程序目前 沒有正在使用傳輸層連接。
69. 根據(jù)權(quán)利要求64所述的方法,包括通過加速程序經(jīng)過傳輸層 連接對(duì)來自要求客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。
70. 根據(jù)權(quán)利要求64所述的方法,包括通過加速程序使至服務(wù)器的多個(gè)傳輸層連接入池,以供客戶機(jī)的多個(gè)應(yīng)用程序使用。
71. 根據(jù)權(quán)利要求64所述的方法,包括當(dāng)從客戶機(jī)要求建立與服 務(wù)器的連接時(shí),通過器具將加速程序傳送至客戶機(jī)。
72. 根據(jù)權(quán)利要求64所述的方法,包括當(dāng)接收加速程序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
73. 根據(jù)權(quán)利要求64所述的方法,其中加速程序包括對(duì)接至客戶 機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
74. 根據(jù)權(quán)利要求64所述的方法,通過所述加速程序執(zhí)行下列加 速技術(shù)其中之一壓縮; 解壓縮;傳輸控制協(xié)議緩沖;和 高速緩存。
75. 根據(jù)權(quán)利要求64所述的方法,包括通過加速程序執(zhí)行客戶機(jī) 和服務(wù)器之間的通信的加密或者解密之一。
76. 根據(jù)權(quán)利要求64所述的方法,包括當(dāng)接收到第一應(yīng)用程序和 第二應(yīng)用程序的重啟或結(jié)束命令時(shí),通過加速程序來關(guān)閉傳輸層連 接。
77. 根據(jù)權(quán)利要求64所述的方法,其中步驟(b)包括建立加速程 序和器具之間的傳輸層連接,所述器具與服務(wù)器通信。
78. 根據(jù)權(quán)利要求77所述的方法,包括通過器具建立一個(gè)或者更 多傳輸層連接的池,以供加速程序使用。
79. 根據(jù)權(quán)利要求77所述的方法,包括由器具通過一個(gè)或更多傳 輸層連接的池,對(duì)加速程序和服務(wù)器之間的多個(gè)通信進(jìn)行復(fù)用。
80. 根據(jù)權(quán)利要求64所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò) 棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
81. 根據(jù)權(quán)利要求64所述的方法,包括通過客戶機(jī)對(duì)第一應(yīng)用程 序、第二應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
82. —種加速客戶機(jī)訪問的系統(tǒng),所述系統(tǒng)經(jīng)過共享傳輸層連接通 過復(fù)用多個(gè)應(yīng)用程序請(qǐng)求,以加速客戶機(jī)對(duì)服務(wù)器上一個(gè)或更多應(yīng)用 程序的客戶機(jī)訪問,所述系統(tǒng)包括用于截獲第一請(qǐng)求的裝置,用于通過客戶機(jī)上的加速程序截獲客 戶機(jī)的第 一應(yīng)用程序要求訪問服務(wù)器的第 一請(qǐng)求;用于傳送第一請(qǐng)求的裝置,用于通過加速程序經(jīng)過已在加速程序 和服務(wù)器之間建立的傳輸層連接傳送第 一請(qǐng)求;用于截獲第二請(qǐng)求的裝置,用于通過加速程序截獲客戶機(jī)的第二 應(yīng)用程序要求訪問服務(wù)器的第二請(qǐng)求;和用于傳送第二請(qǐng)求的裝置,用于通過加速程序經(jīng)過第一應(yīng)用程序 使用的已建立傳輸層連接傳送第二請(qǐng)求。
83. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于傳送第二請(qǐng)求的裝 置,用于在從服務(wù)器接收到對(duì)第一應(yīng)用程序的請(qǐng)求的響應(yīng)時(shí),通過加 速程序傳送第二請(qǐng)求。
84. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于傳送第二請(qǐng)求的裝置,用于當(dāng)確定第一應(yīng)用程序目前沒有正在使用傳輸層連接時(shí),通過 加速程序來傳送第二請(qǐng)求。
85. 根據(jù)權(quán)利要求82所述的方法,包括用于確定的裝置,用于由 加速程序通過比較第一應(yīng)用程序傳送至服務(wù)器的字節(jié)數(shù)和服務(wù)器應(yīng)答 的字節(jié)數(shù)來確定第一應(yīng)用程序目前沒有正在使用傳輸層連接。
86. 根據(jù)權(quán)利要求85所述的系統(tǒng),包括用于確定的裝置,用于由 加速程序通過檢驗(yàn)客戶機(jī)和服務(wù)器之間消息中的消息標(biāo)識(shí)符長(zhǎng)度來確 定第一應(yīng)用程序目前沒有正在使用傳輸層連接。
87. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于復(fù)用的裝置,用于通的請(qǐng)求進(jìn)行復(fù)用。
88. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于入池的裝置,用于通 過加速程序使至服務(wù)器的多個(gè)傳輸層連接入池,以供多個(gè)應(yīng)用程序使 用。
89. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于傳送加速程序的器 具,用于當(dāng)從客戶機(jī)請(qǐng)求建立至服務(wù)器的連接或者會(huì)話之一時(shí),將加 速程序傳送至客戶機(jī)。
90. 根據(jù)權(quán)利要求89所述的系統(tǒng),包括當(dāng)接收加速程序時(shí)自動(dòng)執(zhí) 行并安裝加速程序的客戶機(jī)。
91. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中所述加速程序包括對(duì)接至 客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
92. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中所述加速程序在客戶機(jī)上 執(zhí)行下列加速技術(shù)其中之一 壓縮; 解壓縮;傳輸控制協(xié)議緩沖;和 高速緩存。
93. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中所述加速程序執(zhí)行客戶機(jī) 和服務(wù)器之間的通信的加密或者解密之一。
94. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于關(guān)閉的裝置,用于當(dāng) 接收到笫一應(yīng)用程序和第二應(yīng)用程序之一的重啟或結(jié)束命令時(shí),通過加速程序來關(guān)閉傳輸層連接。
95. 根據(jù)權(quán)利要求82所述的系統(tǒng),包括用于建立傳輸層連接的裝 置,用于建立加速程序和器具之間的傳輸層連接,所述器具與服務(wù)器 通信。
96. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中所述器具包括一個(gè)或者更 多傳輸層連接的池,以供加速程序使用。
97. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中器具經(jīng)過一個(gè)或更多傳輸 層連接的池,對(duì)加速程序和服務(wù)器之間的多個(gè)通信進(jìn)行復(fù)用。
98. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò)棧的 應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
99. 根據(jù)權(quán)利要求82所述的系統(tǒng),其中客戶機(jī)對(duì)第一應(yīng)用程序、 第二應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
100. —種用于在客戶機(jī)上管理從服務(wù)器所接收響應(yīng)的消耗速率和 向服務(wù)器傳送的請(qǐng)求的生產(chǎn)速率之間差值的方法,所述方法包括步 驟(a) 通過客戶機(jī)上的加速程序截獲應(yīng)用程序要求訪問服務(wù)器的請(qǐng) 求,所述加速程序代表應(yīng)用程序經(jīng)由傳輸層連接與服務(wù)器進(jìn)行通信;(b) 通過加速程序確定所接收的服務(wù)器響應(yīng)的消耗速率與客戶機(jī) 傳送的請(qǐng)求的生產(chǎn)速率之間的差值降至預(yù)定閾值之下;和(c) 通過加速程序?qū)⒄?qǐng)求存儲(chǔ)在客戶機(jī)的存儲(chǔ)元件中。
101. 根據(jù)權(quán)利要求100所述的方法,其中消耗速率小于生產(chǎn)速率。
102. 根據(jù)權(quán)利要求100所述的方法,包括基于客戶機(jī)的生產(chǎn)速率 或者消耗速率其中之一的改變,通過加速程序確定傳送所存儲(chǔ)的請(qǐng) 求。
103. 根據(jù)權(quán)利要求100所述的方法,包括當(dāng)從客戶機(jī)要求建立與服務(wù)器的連接時(shí),通過器具將加速程序傳送至客戶機(jī)。
104. 根據(jù)權(quán)利要求103所述的方法,包括當(dāng)接收加速程序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
105. 根據(jù)權(quán)利要求100所述的方法,其中加速程序包括對(duì)接至客 戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
106. 根據(jù)權(quán)利要求100所述的方法,包括通過加速程序壓縮存儲(chǔ) 在存儲(chǔ)元件中的請(qǐng)求。
107. 根據(jù)權(quán)利要求100所述的方法,包括通過加速程序提供一個(gè) 或更多傳輸層連接的池,以供客戶機(jī)上應(yīng)用程序訪問服務(wù)器。
108. 根據(jù)權(quán)利要求100所述的方法,包括通過加速程序經(jīng)過傳輸 層連接對(duì)來自要求客戶機(jī)上的多個(gè)應(yīng)用程序的請(qǐng)求進(jìn)行復(fù)用。
109. 根據(jù)權(quán)利要求100所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)網(wǎng) 絡(luò)棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
110. 根據(jù)權(quán)利要求100所述的方法,包括通過客戶機(jī)對(duì)應(yīng)用程序 或者服務(wù)器之一透明地執(zhí)行加速程序。
111. 一種用于在客戶機(jī)上管理服務(wù)器所接收響應(yīng)的消耗速率和向 服務(wù)器傳送的請(qǐng)求的生產(chǎn)速率之間差值的系統(tǒng),所述系統(tǒng)包括用于截獲請(qǐng)求的裝置,用于通過客戶機(jī)上的加速程序截獲應(yīng)用程 序要求訪問服務(wù)器的請(qǐng)求,所述加速程序代表應(yīng)用程序經(jīng)由傳輸層連 接與服務(wù)器進(jìn)行通信;用于確定差值的裝置,用于通過加速程序確定所接收的服務(wù)器響 應(yīng)的消耗速率與客戶機(jī)傳送請(qǐng)求的生產(chǎn)速率之間的差值降至預(yù)定閾值之下;和用于存儲(chǔ)請(qǐng)求的裝置,用于通過加速程序?qū)⒄?qǐng)求存儲(chǔ)在客戶機(jī)的 存儲(chǔ)元件中。
112. 根據(jù)權(quán)利要求111所述的系統(tǒng),其中消耗速率小于生產(chǎn)速率。
113. 根據(jù)權(quán)利要求111所述的系統(tǒng),包括用于確定傳送存儲(chǔ)的請(qǐng) 求的裝置,用于基于客戶機(jī)的生產(chǎn)速率或者消耗速率其中之一的改 變,通過加速程序確定傳送所存儲(chǔ)的請(qǐng)求。
114. 根據(jù)權(quán)利要求111所述的系統(tǒng),包括用于傳送加速程序的裝 置,用于當(dāng)從客戶機(jī)要求建立與服務(wù)器的連接時(shí),通過器具將加速程 序傳送至客戶機(jī)。
115. 根據(jù)權(quán)利要求114所述的系統(tǒng),包括當(dāng)接收到加速程序時(shí)自動(dòng)執(zhí)行并安裝加速程序的客戶機(jī)。
116. 根據(jù)權(quán)利要求111所述的系統(tǒng),其中所述加速程序包括對(duì)接至客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
117. 根據(jù)權(quán)利要求111所述的系統(tǒng),包括用于壓縮的裝置,用于 通過加速程序?qū)Υ鎯?chǔ)元件中存儲(chǔ)的請(qǐng)求進(jìn)行壓縮。
118. 根據(jù)權(quán)利要求111所述的系統(tǒng),包括用于通過加速程序提供 一個(gè)或更多傳輸層連接的池,以供客戶機(jī)上應(yīng)用程序訪問服務(wù)器的裝 置。
119. 根據(jù)權(quán)利要求111所述的系統(tǒng),包括用于復(fù)用請(qǐng)求的裝置,序的請(qǐng)求進(jìn)行復(fù)用。
120. 根據(jù)權(quán)利要求111所述的系統(tǒng),其中客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò)棧 的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
121. 根據(jù)權(quán)利要求111所述的系統(tǒng),其中客戶機(jī)對(duì)應(yīng)用程序或者 服務(wù)器其中之一透明地執(zhí)行加速程序。
122. —種執(zhí)行多種加速技術(shù)的方法,所述方法通過加速程序在客 戶機(jī)上對(duì)經(jīng)過客戶機(jī)和服務(wù)器之間的傳輸層連接通信的網(wǎng)絡(luò)包執(zhí)行多 種加速技術(shù),所述方法包括步驟(a )通過客戶機(jī)上的加速程序建立加速程序和服務(wù)器之間的傳輸 層連接;(b) 在傳輸層通過加速程序截獲在客戶機(jī)和服務(wù)器之間通信的網(wǎng) 絡(luò)包;和(c) 通過加速程序?qū)υ趥鬏攲咏孬@的網(wǎng)絡(luò)包執(zhí)行多種加速技術(shù)。
123. 根據(jù)權(quán)利要求122所述的方法,包括經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)通 過加速程序訪問網(wǎng)絡(luò)包,所述內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)由至傳輸層連接的接口 提供。
124. 根據(jù)權(quán)利要求122所述的方法,包括通過加速程序?qū)⒕W(wǎng)絡(luò)包 發(fā)送至服務(wù)器。
125. 根據(jù)權(quán)利要求122所述的方法,其中(d)包括通過所述加速 程序在客戶機(jī)上執(zhí)行下列加速技術(shù)其中之一 壓縮;傳輸控制協(xié)議連接池;傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
126. 根據(jù)權(quán)利要求122所述的方法,包括通過加速程序?qū)W(wǎng)絡(luò)包 的部分進(jìn)行加密或者解密之一。
127. 根據(jù)權(quán)利要求122所述的方法,包括通過加速程序提供至服 務(wù)器的虛擬專用網(wǎng)絡(luò)。
128. 根據(jù)權(quán)利要求122所述的方法,包括在客戶機(jī)操作系統(tǒng)的內(nèi)核模式或者用戶模式之一中,通過加速程序來執(zhí)行多種加速技術(shù)。
129. 根據(jù)權(quán)利要求122所述的方法,包括在加速程序的一部分可 執(zhí)行指令中,通過加速程序在加速技術(shù)相互之后執(zhí)行多種加速技術(shù)。
130. 根據(jù)權(quán)利要求122所述的方法,包括在加速程序的可執(zhí)行指 令中的一個(gè)接口點(diǎn),通過加速程序在加速技術(shù)相互之后執(zhí)行多種加速 技術(shù)。
131. 根據(jù)權(quán)利要求122所述的方法,包括在加速程序的可執(zhí)行指 令的執(zhí)行實(shí)例期間,通過加速程序在加速技術(shù)相互之后執(zhí)行多種加速 技術(shù)。
132. 根據(jù)權(quán)利要求122所述的方法,包括經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)提 供對(duì)網(wǎng)絡(luò)包的一個(gè)或更多應(yīng)用級(jí)協(xié)議有效負(fù)荷的訪問。
133. 根據(jù)權(quán)利要求122所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)網(wǎng) 絡(luò)棧的會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
134. 根據(jù)權(quán)利要求122所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)的 用戶、客戶機(jī)的應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
135. —種執(zhí)行多種加速技術(shù)的系統(tǒng),所述系統(tǒng)通過加速程序在客 戶機(jī)上對(duì)經(jīng)過客戶機(jī)和服務(wù)器之間的傳輸層連接通信的網(wǎng)絡(luò)包執(zhí)行多 種加速技術(shù),所述系統(tǒng)包括用于建立傳輸層連接的裝置,用于通過客戶機(jī)上的加速程序建立 加速程序和服務(wù)器之間的傳輸層連接;用于截獲網(wǎng)絡(luò)包的裝置,用于在傳輸層通過加速程序截獲在客戶 機(jī)和服務(wù)器之間通信的網(wǎng)絡(luò)包;和用于執(zhí)行多種加速技術(shù)的裝置,用于通過加速程序?qū)υ趥鬏攲咏孬@的網(wǎng)絡(luò)包執(zhí)行多種加速技術(shù)。
136. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中所述加速程序通過調(diào)用 至傳輸層連接的應(yīng)用程序接口得到內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)。
137. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中所述加速程序?qū)⒕W(wǎng)絡(luò)包 發(fā)送至服務(wù)器。
138. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中所述多種加速技術(shù)包括 以下至少之一壓縮; 解壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
139. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中加速程序執(zhí)行對(duì)網(wǎng)絡(luò)包 的一部分的加密或解密之一。
140. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中所述加速程序提供了至 服務(wù)器的虛擬專用網(wǎng)絡(luò)連接。
141. 根據(jù)權(quán)利要求135的系統(tǒng),其中加速程序在客戶機(jī)的操作系統(tǒng)的用戶模式或者內(nèi)核模式其中之一執(zhí)行。
142. 根據(jù)權(quán)利要求135的系統(tǒng),其中加速程序包括用于在加速技 術(shù)相互之后執(zhí)行多種加速技術(shù)中每一種的可執(zhí)行指令。
143. 根據(jù)權(quán)利要求135的系統(tǒng),加速程序包括一個(gè)接口點(diǎn),在所 述接口點(diǎn)處,在加速4支術(shù)相互之后執(zhí)行多種加速4支術(shù)。
144. 根據(jù)權(quán)利要求135的系統(tǒng),加速程序包括具有執(zhí)行實(shí)例的可 執(zhí)行指令,在執(zhí)行實(shí)例處,在加速技術(shù)相互之后執(zhí)行多種加速技術(shù)。
145. 根據(jù)權(quán)利要求135的系統(tǒng),其中加速程序經(jīng)過內(nèi)核級(jí)數(shù)據(jù)結(jié) 構(gòu)在傳輸層獲得對(duì)一個(gè)或更過網(wǎng)絡(luò)包的應(yīng)用級(jí)協(xié)議有效負(fù)荷的訪問。
146. 根據(jù)權(quán)利要求135所述的系統(tǒng),其中客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò)棧 的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
147. 根據(jù)權(quán)利要求135所述的方法,包括客戶機(jī)對(duì)客戶機(jī)的用 戶、客戶機(jī)上的應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
148. —種用于重定向的方法,所述方法用于在確定中介物不能用 來由客戶機(jī)使用與服務(wù)器通信時(shí),在客戶機(jī)上重定向客戶機(jī)至服務(wù)器 的通信以繞過所述中介物,所述方法包括步驟U)通過客戶機(jī)上的加速程序經(jīng)過中介物建立客戶機(jī)和服務(wù)器之 間的傳輸層連接;(b) 通過加速程序確定中介物不能用來由客戶機(jī)使用經(jīng)由傳輸層 連接與服務(wù)器通信;(c) 通過加速程序截獲客戶機(jī)至服務(wù)器的通信信息;和(d) 通過加速程序建立加速程序與服務(wù)器之間的第二傳輸層連 接,以繞過所述中介物。
149. 根據(jù)權(quán)利要求148所述的系統(tǒng),其中步驟(d)包括通過加速程序建立直接與服務(wù)器的第二傳輸層連接。
150. 根據(jù)權(quán)利要求148所述的系統(tǒng),其中步驟(d)包括通過加速 程序經(jīng)由第二中介物建立與服務(wù)器的第二傳輸層連接。
151. 根據(jù)權(quán)利要求148所述的方法,包括通過加速程序經(jīng)由第二 傳輸層連接將通信信息傳送至服務(wù)器。
152. 根據(jù)權(quán)利要求148所述的方法,包括當(dāng)從中介物接收加速程 序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
153. 根據(jù)權(quán)利要求148所述的方法,其中加速程序包括對(duì)接至客 戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
154. 根據(jù)權(quán)利要求148所述的方法,包括通過所述加速程序?qū)λ?述通信信息執(zhí)行下列加速技術(shù)其中之一 壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
155. 根據(jù)權(quán)利要求148所述的方法,包括通過加速程序?qū)蛻魴C(jī) 和服務(wù)器之間的通信進(jìn)行加密。
156. 根據(jù)權(quán)利要求148所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)網(wǎng) 絡(luò)棧的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
157. 根據(jù)權(quán)利要求148所述的方法,包括通過客戶機(jī)對(duì)客戶機(jī)的 用戶、客戶機(jī)的應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
158. 根據(jù)權(quán)利要求148所述的方法,其中所述中介物包括高速緩 存、網(wǎng)關(guān)、防火墻、服務(wù)器、代理、路由器、交換機(jī)或者橋其中之一。
159. —種用于重定向的系統(tǒng),所述系統(tǒng)用于在確定中介物不能用 來由客戶機(jī)使用與服務(wù)器通信時(shí),在客戶機(jī)上重定向客戶機(jī)至服務(wù)器 的通信以繞過所述中介物,所述系統(tǒng)包括用于建立傳輸層連接的裝置,用于通過客戶機(jī)上的加速程序經(jīng)由 中介物建立客戶機(jī)和服務(wù)器之間的傳輸層連接;用于確定中介物不可用的裝置,用于通過加速程序確定中介物不 能用來由客戶機(jī)使用以經(jīng)由傳輸層連接與服務(wù)器通信;用于截獲通信信息的裝置,用于通過加速程序截獲客戶機(jī)至服務(wù) 器的通信信息;和用于建立第二傳輸層連接的裝置,用于通過加速程序建立加速程 序與服務(wù)器之間的第二傳輸層連接,以繞過所述中介物。
160. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中加速程序建立直接與服 務(wù)器的第二傳輸層連接。
161. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中加速程序經(jīng)由第二中介 物建立與服務(wù)器的第二傳輸層連接。
162. 根據(jù)權(quán)利要求159所述的方法,其中加速程序經(jīng)由第二傳輸 層連接將通信信息傳送至服務(wù)器。
163. 根據(jù)權(quán)利要求159所述的方法,包括當(dāng)從中介物接收加速程序時(shí),通過客戶機(jī)自動(dòng)執(zhí)行并安裝加速程序。
164. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中所述加速程序包括對(duì)接 至客戶機(jī)網(wǎng)絡(luò)棧的傳輸層的過濾器設(shè)備驅(qū)動(dòng)器。
165. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中所述加速程序?qū)λ鐾?信執(zhí)行下列加速技術(shù)其中之一 壓縮;傳輸控制協(xié)議連接池; 傳輸控制協(xié)議連接復(fù)用; 傳輸控制協(xié)議緩沖;和 高速緩存。
166. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中加速程序?qū)蛻魴C(jī)和服 務(wù)器之間的通信信息進(jìn)行加密。
167. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中客戶機(jī)對(duì)客戶機(jī)網(wǎng)絡(luò)棧 的應(yīng)用層、會(huì)話層或者網(wǎng)絡(luò)層之一透明地執(zhí)行加速程序。
168. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中客戶機(jī)對(duì)客戶機(jī)的用 戶、客戶機(jī)上的應(yīng)用程序或者服務(wù)器之一透明地執(zhí)行加速程序。
169. 根據(jù)權(quán)利要求159所述的系統(tǒng),其中所述中介物包括高速緩 存、網(wǎng)關(guān)、防火墻、服務(wù)器、代理、路由器、交換機(jī)或者橋其中之一。
全文摘要
本發(fā)明旨在用于在客戶機(jī)上動(dòng)態(tài)部署和執(zhí)行加速程序以改進(jìn)遠(yuǎn)程訪問應(yīng)用程序的遞送和性能的系統(tǒng)和方法。在客戶機(jī)上以對(duì)客戶機(jī)的操作透明且對(duì)客戶機(jī)的操作無縫的方式自動(dòng)安裝和執(zhí)行本發(fā)明的加速程序。在一個(gè)實(shí)施例中,在器具設(shè)備確定客戶機(jī)對(duì)服務(wù)器或者遠(yuǎn)程應(yīng)用程序的訪問可以被加速時(shí),通過該設(shè)備來動(dòng)態(tài)提供加速程序。在一些實(shí)施例中,加速程序在客戶機(jī)上執(zhí)行下列加速技術(shù)中的一種或者多種1)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3)傳輸控制協(xié)議復(fù)用,4)傳輸控制協(xié)議緩沖,和5)高速緩存。同樣,在一些實(shí)施例中,加速程序使用內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)在傳輸層以綜合有效的方式來執(zhí)行這些加速技術(shù)。在另外的實(shí)施例中,客戶端加速程序執(zhí)行代理重定向技術(shù)自動(dòng)繞過任何中介設(shè)備,從而持續(xù)地提供客戶機(jī)對(duì)服務(wù)器或者遠(yuǎn)程訪問應(yīng)用程序的訪問。
文檔編號(hào)G06F9/445GK101133623SQ200580048867
公開日2008年2月27日 申請(qǐng)日期2005年12月30日 優(yōu)先權(quán)日2004年12月30日
發(fā)明者A·謝蒂, C·文卡特拉曼, P·森達(dá)拉彥, R·辛哈, S·韋爾祖諾夫, 何軍曉 申請(qǐng)人:茨特里克斯系統(tǒng)公司