欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于提供基于代理的服務(wù)質(zhì)量的系統(tǒng)和方法

文檔序號:7938034閱讀:612來源:國知局
專利名稱:用于提供基于代理的服務(wù)質(zhì)量的系統(tǒng)和方法
技術(shù)領(lǐng)域
0002本發(fā)明總的涉及數(shù)據(jù)通信網(wǎng)絡(luò)。更具體地,本發(fā)明涉及用 于通過一個或者多個連接的代理來動態(tài)控制帶寬的系統(tǒng)和方法。
背景技術(shù)
0003在建網(wǎng)過程中,服務(wù)質(zhì)量(QoS)系統(tǒng)可以被用來指定竟爭 分組流的優(yōu)先級。在一些情況中,這些流可以是發(fā)送器和接收器之間的 筒單連接。在其他情況中,這些流可以是傳遞通過一個或者多個代理的 發(fā)送器和接收器之間的連接,該代理的一些或者全部對于發(fā)送器和接收 器可以是透明的。標準的QoS信令機制,如TOS("服務(wù)類型",RFC 1394 ) 和之后的DSCP ("差分服務(wù)代碼點",RFC 2474, RFC 2475 )位,存在于 IP首部中。然而,這些不能以一致的方式布置在網(wǎng)絡(luò)上,并且它們的存 在或者特性是不可依賴的,除非當同一管理員控制整個網(wǎng)絡(luò)時。當數(shù)據(jù) 經(jīng)過由第三方擁有的網(wǎng)絡(luò)時,其可以是廣域網(wǎng)(并且特別是因特網(wǎng))中 的情況,在一些情況中,僅可以呈現(xiàn)出最基本的IP功能性,并且瓶頸網(wǎng) 關(guān)將忽略分組中的任意QoS位。
0004QoS通常在帶寬瓶頸處實現(xiàn)。這些瓶頸有時發(fā)生在網(wǎng)絡(luò)速度 的由快至慢的轉(zhuǎn)變處,例如在橋接LAN和WAN的裝置處。如果在裝置處 存在來自不同流的分組的積壓,該裝置可以使用QoS做出關(guān)于哪個流應(yīng) 該具有下一個被發(fā)送的分組的決策。在傳統(tǒng)的QoS中,假如其它環(huán)境(諸 如過多丟失)不禁止連接實現(xiàn)其公平帶寬共享,則調(diào)整連接之間的帶寬
6可以使用公平排隊實現(xiàn)。在公平排隊的一些實現(xiàn)方案中,每個連接具有 其自己的隊列。當排隊的總數(shù)變得過多時,就會從具有最長隊列的連接 丟失分組。由于公平排隊(其基于循環(huán)來輸出分組)的性質(zhì),具有最長 隊列的連接是超過最大裕度的其公平帶寬共享的連接。從進行得太快的 連接丟掉分組而不是隨機的丟掉分組,這可以降低連接之間的不公平。 不能使用它們的公平帶寬共享的連接永遠不可以作為目標,而連續(xù)超過 公平帶寬共享的那些連接可預見到更高的丟失率。
0005然而,該QoS方法可以依賴于具有多個流中的分組的積壓, 這也許不適合用在出于其他考慮而試圖最小化積壓的情況中。這些QoS 機制還不能應(yīng)用到包括單個流的情況中。因此,需要一種系統(tǒng)和方法允 許在存在分組的很小積壓或者沒有積壓的情況中以及關(guān)于單個流的情況 中實現(xiàn)QoS。這些系統(tǒng)和方法甚至應(yīng)該應(yīng)用到其中流經(jīng)過網(wǎng)絡(luò)的部分在第 三方控制下的的情況。
0006許多網(wǎng)絡(luò)業(yè)務(wù)量使用傳輸控制協(xié)議(TCP)協(xié)議,其是IP 頂部上的基于連接的層。TCP使用在檢測到分組的耗損時降低發(fā)送率并且 在沒有這種耗損時提高發(fā)送率的機制。傳統(tǒng)的實現(xiàn)(諸如TCP Reno)可 以使用網(wǎng)絡(luò)上的一個來回行程的取樣時間(RTT,發(fā)送一個分組并且接收 來自接收單元的其到達的確認之間的時間)。在沒有丟失分組的來回行程 中,所傳遞的數(shù)據(jù)的數(shù)量(擁塞窗)可以增加一個完整尺寸的分組。擴 大擁塞窗可以增加連接帶寬、網(wǎng)絡(luò)排隊、分組丟失率或者這些的一些組 合,這取決于網(wǎng)絡(luò)狀態(tài)。實現(xiàn)TCP中擁塞控制的替代方法是使用來回行 程時間作為基本控制信號。這通過TCP Vegas和FAST TCP來使用。例如, 在FAST TCP中,在這些實現(xiàn)方案中,可以基于最快或者平均來回行程時 間與最近的分組來回行程時間的比較來增加或者降低擁塞窗。
0007使用隨機丟失來控制連接速度會導致連接之間帶寬分配的 不公平。假設(shè)兩個連接, 一個僅因為其不湊巧可以接收較少的帶寬,其 通過具有內(nèi)部較高丟失率的鏈路(諸如無線網(wǎng)絡(luò))來傳遞,或者其由于 具有比其伙伴更長的路徑長度(并且因此具有更長的來回行程時間)而 可以接收較少的帶寬。由于連接在每個來回行程增速一次,所以具有短 行程的連接的斜升率要比具有長行程的更陡峭。此外,TCP關(guān)于響應(yīng)于網(wǎng)絡(luò)事件的連接帶寬的下降和斜升中的連接優(yōu)先級沒有區(qū)別。因此,需要 一種系統(tǒng)和方法可以補償基于隨機丟失來分配帶寬的潛在的不公平,并 且允許QoS優(yōu)先級被考慮到對于分組丟失和其他擁塞事件的響應(yīng)中。

發(fā)明內(nèi)容
0008本發(fā)明涉及用于動態(tài)控制連接的帶寬的系統(tǒng)和方法。在一 些實施例中,用于一個或者多個連接的代理可以分配、分布、或者產(chǎn)生 經(jīng)由一個或者多個連接的網(wǎng)絡(luò)擁塞的指示,用于引導連接的發(fā)送器降低 它們的傳輸速率。代理可以以對一個或者多個連接提供服務(wù)質(zhì)量或者以 確保多個連接在所接受的帶寬限制中傳輸?shù)姆绞絹矸峙洹⒎植蓟蛘弋a(chǎn)生 這些指示。在其他實施例中,傳輸層連接的發(fā)送器可以具有用于確定計 及連接的優(yōu)先權(quán)的擁塞指示的響應(yīng)的方法。在這些實施例中,發(fā)送器可 以根據(jù)連接的優(yōu)先權(quán)來降低或者提高和不同的傳輸速率相關(guān)的參數(shù)。
0009在第一方面中,本發(fā)明涉及通過裝置在多個傳輸層連接之 間分布擁塞事件來動態(tài)改變對于一個或者多個傳輸層連接可用的有效帶 寬的方法。在一個實施例中,該方法包括通過裝置建立多個傳輸層連接, 該傳輸層連接的一個或者多個具有所分配的優(yōu)先級;并且通過該裝置經(jīng) 由多個傳輸層連接的第 一傳輸層連接接收網(wǎng)絡(luò)擁塞的第 一指示。該裝置 隨后可以根據(jù)所分配的優(yōu)先級選擇多個連接的第二傳輸層連接;并且響 應(yīng)于接收所述第一指示來經(jīng)由第二傳輸層連接傳輸擁塞事件的第二指 示。在其他實施例中,該裝置可以基于連接的所分配帶寬來分配擁塞事 件。
0010在第二方面中,本發(fā)明涉及通過中間設(shè)備在多個傳輸層連 接之間分布擁塞事件來動態(tài)改變對于一個或者多個傳輸層連接可用的有 效帶寬的系統(tǒng)。在一個實施例中,網(wǎng)絡(luò)設(shè)備用作多個傳輸層連接的中間 設(shè)備,該傳輸層連接的一個或者多個具有所分配的優(yōu)先級。網(wǎng)絡(luò)設(shè)備可 以包括經(jīng)由多個傳輸層連接的第 一傳輸層連接接收網(wǎng)絡(luò)擁塞的第 一指示 的分組處理器,和根據(jù)所分配的優(yōu)先級選擇多個連接的第二傳輸層連接 的流控制器;并且響應(yīng)于接收所述第一指示來經(jīng)由第二傳輸層連接傳輸 擁塞事件的第二指示。在其他實施例中,該裝置可以基于連接的所分配
8帶寬來分配擁塞事件。
0011在第三方面中,本發(fā)明涉及用于通過設(shè)備使用透明代理對 傳輸層數(shù)據(jù)通信提供服務(wù)質(zhì)量水平來控制連接帶寬的方法。在一個實施 例中,該方法包括通過對于發(fā)送器和接收器之間的傳輸層連接用作透明 代理的設(shè)備來確定經(jīng)由傳輸層連接的發(fā)送器的傳輸率不同于預定的傳輸
率;通過該設(shè)備響應(yīng)于該確定來產(chǎn)生包含指示的確認分組以改變傳輸速 率;并且通過設(shè)備傳輸所產(chǎn)生的確認分組到發(fā)送器。在此實施例中,即 使在沒有從接收器接收到確認的情況下也可以產(chǎn)生該確認。該確認可以 包括適當增加或者降低發(fā)送器的傳輸率的指示。
0012在第四方面中,本發(fā)明涉及用于使用透明代理對傳輸層數(shù) 據(jù)通信提供服務(wù)質(zhì)量水平來控制連接帶寬的計算機實現(xiàn)的系統(tǒng)。在一個 實施例中,網(wǎng)絡(luò)設(shè)備對于一個或者多個發(fā)送器和一個或者多個接收器之 間的傳輸層連接用作透明代理。網(wǎng)絡(luò)設(shè)備包括確定經(jīng)由傳輸層連接的發(fā) 送器的傳輸率不同于預定的傳輸率的流控制模塊;并且響應(yīng)于該確定來 產(chǎn)生包含指示的確認以改變傳輸速率。網(wǎng)絡(luò)設(shè)備還可以包括傳輸所產(chǎn)生 的確認到發(fā)送器的分組處理模塊。該確認可以包括適當增加或者降低發(fā) 送器的傳輸率的指示。
0013在第五方面中,本發(fā)明涉及用于由發(fā)送器根據(jù)分配給一個 或者多個傳輸層連接的優(yōu)先級來動態(tài)控制所述一個或者多個傳輸層連接 的連接帶寬的方法。在一個實施例中,該方法包括通過發(fā)送器經(jīng)由第 一傳輸層連接傳輸數(shù)據(jù),其中,該第一傳輸層連接在缺乏來自接收器的 確認的情況下具有識別由發(fā)送器傳輸?shù)臄?shù)據(jù)數(shù)量的第一擁塞窗大?。煌?過發(fā)送器經(jīng)由第 一傳輸層連接接收經(jīng)由第 一傳輸層連接的分組丟失的指 示;識別縮小因子,所述縮小因子對應(yīng)于發(fā)送器分配給第一傳輸層連接 的優(yōu)先級;確定第二擁塞窗大小,第二擁塞窗大小包括通過縮小因子降 低的第一擁塞窗大??;并且通過發(fā)送器根據(jù)第二擁塞窗大小經(jīng)由第一傳 輸層連接來傳輸數(shù)據(jù)。在其他實施例中,還可以應(yīng)用類似的方法,其中 連接優(yōu)先級確定擁塞窗響應(yīng)于無需接收分組丟失的指示的傳遞的時間間 隔而增加的速率。
0014在第六方面中,本發(fā)明涉及用于通過對于一個或者多個連接用作中間設(shè)備的網(wǎng)絡(luò)設(shè)備根據(jù)分配給一個或者多個傳輸層連接的優(yōu)先 級來動態(tài)控制連接帶寬的系統(tǒng)。在一個實施例中,系統(tǒng)包括對發(fā)送器和 接收器之間的第 一傳輸層連接用作中間設(shè)備的網(wǎng)絡(luò)設(shè)備。所述網(wǎng)絡(luò)設(shè)備 可以包括分組處理引擎,其經(jīng)由第一傳輸層連接傳輸數(shù)據(jù),其中,該第 一傳輸層連接具有對應(yīng)于被傳輸?shù)奈创_認數(shù)據(jù)的最大數(shù)量的第 一擁塞窗
大??;經(jīng)由第一傳輸層連接接收分組丟失的指示;網(wǎng)絡(luò)設(shè)備還可以包括 和分組處理引擎通信的流控制模塊,其計算縮小因子,所述縮小因子對 應(yīng)于該設(shè)備分配給第一傳輸層連接的優(yōu)先級;計算第二擁塞窗大小,第 二擁塞窗大小包括除以縮小因子的第一擁塞窗大??;通過第一傳輸層連 接根據(jù)第二擁塞窗大小來傳輸數(shù)據(jù)。在其他實施例中,還可以使用類似 的系統(tǒng),其中連接優(yōu)先級確定擁塞窗響應(yīng)于無需接收分組丟失的指示的 傳遞的時間間隔而增加的速率。
0015在下面附圖和具體實施方式
中提出本發(fā)明的多種實施例的
細節(jié)。


0016參考結(jié)合附圖的以下描述,本發(fā)明的前述和其他對象、方 面、特征和優(yōu)勢將會更加明顯并更好理解,其中
圖1A是客戶機經(jīng)由 一個或者多個網(wǎng)絡(luò)優(yōu)化設(shè)備來訪問服務(wù)器的網(wǎng)絡(luò) 環(huán)境的實施例的框圖IB是客戶機經(jīng)由與其他網(wǎng)絡(luò)設(shè)備結(jié)合的一個或者多個網(wǎng)絡(luò)優(yōu)化設(shè) 備來訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的另 一個實施例的框圖1C是客戶機經(jīng)由獨立布置或者和其他網(wǎng)絡(luò)設(shè)備結(jié)合的單個網(wǎng)絡(luò)優(yōu) 化設(shè)備來訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的另 一個實施例的框圖1D和1E是計算裝置的實施例的框圖2A是用于處理在客戶機和服務(wù)器之間的通信的設(shè)備的實施例的框
圖2B是布置設(shè)備的網(wǎng)絡(luò)優(yōu)化特征的客戶機和/或服務(wù)器的另一個實 施例的框圖3是使用網(wǎng)絡(luò)優(yōu)化特征來與服務(wù)器進行通信的客戶機的實施例的
10框圖4是取樣TCP分組的框圖5是用于通過裝置在多個傳輸層連接中分布擁塞事件的系統(tǒng)的框
圖6是用于通過裝置在多個傳輸層連接中分布擁塞事件的方法的流 程圖7是用于使用透明代理對傳輸連接提供服務(wù)質(zhì)量水平來控制連接 帶寬的系統(tǒng)的框圖8是用于使用透明代理對傳輸連接提供服務(wù)質(zhì)量水平來控制連接 帶寬的方法的流程圖9A是用于通過多個傳輸層連接的發(fā)送器根據(jù)連接的優(yōu)先級來動態(tài) 控制帶寬的系統(tǒng)的框圖9B是用于通過一個或者多個傳輸層連接的發(fā)送器根據(jù)被分配給一 個或者多個連接的優(yōu)先級來動態(tài)降低連接帶寬的方法的流程圖;和
圖9C是用于通過一個或者多個傳輸層連接的發(fā)送器根據(jù)被分配給一 個或者多個連接的優(yōu)先級來動態(tài)增加連接帶寬的方法的流程圖。
根據(jù)以下結(jié)合附圖提出的詳細描述,本發(fā)明的特征和優(yōu)勢將變得更 加明顯,其中相同的參考特征在全文中是指對應(yīng)的元件。在附圖中,相 似的附圖標記通常指示相同的、功能類似的和/或結(jié)構(gòu)類似的元件。
具體實施例方式
0017為了閱讀下面的本發(fā)明的多個實施例的描述,說明下面的
說明書的各部分以及它們相應(yīng)的內(nèi)容是有幫助的
部分A描述用于實現(xiàn)本發(fā)明的實施例的網(wǎng)絡(luò)環(huán)境和計算環(huán)境;
部分B描述用于將計算環(huán)境加速遞送到遠程用戶的系統(tǒng)和設(shè)備架構(gòu)
的實施例;
部分C描述用于加速在客戶機和服務(wù)器之間的通信的客戶機代理的 實施例;和
部分D描述用于有效處理網(wǎng)絡(luò)擁塞的系統(tǒng)和方法的實施例。A.網(wǎng)絡(luò)和計算環(huán)境
0018在討"^i殳備和/或客戶機的系統(tǒng)和方法的實施例的細節(jié)之前, 討論可以部署這樣的實施例的網(wǎng)絡(luò)和計算環(huán)境是有幫助的?,F(xiàn)在參考圖 1A,描述了網(wǎng)絡(luò)環(huán)境的一個實施例??偟膩碚f,網(wǎng)絡(luò)環(huán)境包括經(jīng)由一個 或多個網(wǎng)絡(luò)104、 104'和104〃與一個或多個月良務(wù)器106a-106n(通常也 被稱為服務(wù)器106或遠程機器106 )通信的一個或多個客戶機102a-102n
(通常也被稱為本地機器102或客戶機102)。在一些實施例中,客戶機 102經(jīng)由一個或者多個網(wǎng)絡(luò)優(yōu)化設(shè)備200、 200'(總的稱之為設(shè)備200 ) 與服務(wù)器106通信。在一個實施例中,網(wǎng)絡(luò)優(yōu)化設(shè)備200被設(shè)計、配置 或者調(diào)整來優(yōu)化廣域網(wǎng)(WAN)網(wǎng)絡(luò)業(yè)務(wù)量。在一些實施例中,第一設(shè)備 200和第二設(shè)備200'相結(jié)合或者協(xié)同運行來優(yōu)化網(wǎng)絡(luò)業(yè)務(wù)量。例如,第 一設(shè)備200可以位于分支結(jié)構(gòu)和WAN連接之間而第二設(shè)備20(T可以位于 WAN和公司局域網(wǎng)(LAN )之間。設(shè)備200和200'可以一起工作來優(yōu)化分 支機構(gòu)中的客戶機和公司LAN上的服務(wù)器之間的WAN相關(guān)的網(wǎng)絡(luò)業(yè)務(wù)量。0019雖然圖1A示出客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)104、網(wǎng) 絡(luò)104'和網(wǎng)絡(luò)104"(總的稱為網(wǎng)絡(luò)104),但客戶機102和服務(wù)器106 可以在同一個網(wǎng)絡(luò)104上。網(wǎng)絡(luò)1(M、網(wǎng)絡(luò)104'和網(wǎng)絡(luò)104〃可以是相同 類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)104可以是像公司內(nèi)聯(lián)網(wǎng)的局域網(wǎng)
(LAN)、城域網(wǎng)(MAN)或者諸如因特網(wǎng)或萬維網(wǎng)的廣域網(wǎng)(WAN)。網(wǎng)絡(luò) 104、 104'和104〃可以是專用網(wǎng)或者公用網(wǎng)。在一個實施例中,網(wǎng)絡(luò)104' 或者網(wǎng)絡(luò)104''可以是專用網(wǎng)而網(wǎng)絡(luò)104可以是公用網(wǎng)。在一些實施例中, 網(wǎng)絡(luò)104可以是專用網(wǎng)而網(wǎng)絡(luò)104'和/或網(wǎng)絡(luò)104〃可以是公用網(wǎng)。在另 一個實施例中,網(wǎng)絡(luò)104、網(wǎng)絡(luò)104'和網(wǎng)絡(luò)104'可以都是專用網(wǎng)。在一 些實施例中,客戶機102可以位于企業(yè)法人的分支機構(gòu),經(jīng)由網(wǎng)絡(luò)104 上的WAN連接來與位于公司數(shù)據(jù)中心中的公司LAN上的月l務(wù)器106進行 通信。
0020網(wǎng)絡(luò)104可以是任意類型和/或形式的網(wǎng)絡(luò),并且可以包括下 列任意一種網(wǎng)絡(luò)點到點網(wǎng)絡(luò)、廣播網(wǎng)、廣域網(wǎng)、局域網(wǎng)、遠程通信網(wǎng)、 數(shù)據(jù)通信網(wǎng)、計算機網(wǎng)絡(luò)、ATM(異步傳送模式)網(wǎng)絡(luò)、SONET (同步光 學網(wǎng)絡(luò))網(wǎng)絡(luò)、SDH (同步數(shù)字系列)網(wǎng)絡(luò)、無線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)。在一些實施例中,網(wǎng)絡(luò)104可以包括諸如紅外信道或衛(wèi)星頻帶的無線鏈路。
網(wǎng)絡(luò)104的拓樸結(jié)構(gòu)可以是總線型、星型或環(huán)型網(wǎng)絡(luò)拓樸結(jié)構(gòu)。網(wǎng)絡(luò)104 以及網(wǎng)絡(luò)拓樸結(jié)構(gòu)可以是能夠支持此處描述的操作的本領(lǐng)域內(nèi)普通技術(shù) 人員所知的任一種這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓樸結(jié)構(gòu)。
0021如圖1A所示,在網(wǎng)絡(luò)104和104'之間示出第一 網(wǎng)絡(luò)優(yōu)化i殳備 200并且在網(wǎng)絡(luò)104'和104〃之間示出第二網(wǎng)絡(luò)優(yōu)化設(shè)備200'。在一些 實施例中,設(shè)備200可以位于網(wǎng)絡(luò)104上。例如,公司企業(yè)可以在所述 分支機構(gòu)處部署設(shè)備200。在其它實施例中,設(shè)備200可以位于網(wǎng)絡(luò)104' 上。在一些實施例中,i殳備200'可以位于網(wǎng)絡(luò)104'或者網(wǎng)絡(luò)104〃上。 例如設(shè)備2 00可以位于公司的數(shù)據(jù)中心。在一個實施例中,設(shè)備2 00和 設(shè)備20(T可以位于相同網(wǎng)絡(luò)上。在另 一個實施例中,設(shè)備200和設(shè)備200' 可以位于不同網(wǎng)絡(luò)上。
0022在一個實施例中,設(shè)備200是用于加速、優(yōu)化或者以其他方 式改善任意類型和形式的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或服務(wù)質(zhì)量的裝置。 在一些實施例中,設(shè)備200是一個性能強化的代理。在其它實施例中, 設(shè)備200是任意類型和形式的WAN優(yōu)化或加速裝置,有時也被稱為WAN 優(yōu)化控制器。在 一 個實施例中,設(shè)備2 0 0是由位于F t. L a u d e r d a 1 e F1 o r i d a 的Citrix Systems />司出品的被稱為WANScaler的產(chǎn)品實施例中的任意 一種。在其它實施例中,設(shè)備200包括由位于Seattle, Washington的F5 Networks />司出品的被稱為BIG-IP鏈路控制器和WANjet的產(chǎn)品實施例 中的任意一種。在另一個實施例中,設(shè)備200包括由位于Sunnyvale, California的Juniper Networks公司出品的WX和WXC WAN加速裝置平 臺中的任意一種。在一些實施例中,設(shè)備200包括由San Francisco, California的Riverbed Technology 7>司出品的蟲工縛(steelhead)系歹寸 WAN優(yōu)化設(shè)備中的任意一種。在其它實施例中,設(shè)備205包括由位于 Roseland, NewJersey的Expand Networks />司出品的WAN相關(guān)裝置中的 任意一種。在一個實施例中,設(shè)備200包括由位于Cupertino, California 的Packeteer公司出品的任意一種WAN相關(guān)設(shè)備,例如由Packeteer提 供的PacketShaper、 iShared和SkyX產(chǎn)品實施例。在又一個實施例中, 設(shè)備200包括由位于San Jose, California的Cisco Systems/>司出品的任意WAN相關(guān)設(shè)備和/或軟件,例如Cisco廣域網(wǎng)應(yīng)用服務(wù)軟件和網(wǎng)絡(luò)
模塊以及廣域網(wǎng)引擎設(shè)備。
0023在一些實施例中,設(shè)備200提供用于分支機構(gòu)或遠程辦公室 的應(yīng)用和數(shù)據(jù)加速業(yè)務(wù)。在一個實施例中,設(shè)備200包括廣域文件服務(wù)
(WAFS)的優(yōu)化。在另一個實施例中,設(shè)備200加速文件的遞送,例如 經(jīng)由公共因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議。在其它實施例中,設(shè)備200在 存儲器和/或存儲設(shè)備中提供高速緩存來加速應(yīng)用和數(shù)據(jù)的遞送。在一個 實施例中,設(shè)備205提供在任意級別的網(wǎng)絡(luò)堆?;蛟谌我獾膮f(xié)議或網(wǎng)絡(luò) 層的網(wǎng)絡(luò)業(yè)務(wù)量的壓縮。在另一個實施例中,設(shè)備200提供傳輸層協(xié)議 優(yōu)化、流量控制、性能增強或修改和/或管理,以加速WAN連接上的應(yīng)用 和數(shù)據(jù)的遞送。例如,在一個實施例中,設(shè)備200提供傳輸控制協(xié)議(TCP ) 優(yōu)化。在其它實施例中,設(shè)備200提供對于任意會話或應(yīng)用層協(xié)議的優(yōu) 化、流量控制、性能增強或修改和/或管理。在下面B部分中討論設(shè)備200 的優(yōu)化技術(shù)、操作和架構(gòu)的進一步細節(jié)。
0024仍舊參考圖1A,網(wǎng)絡(luò)環(huán)境可以包括多個、邏輯分組的服務(wù)器 106。在這些實施例中,服務(wù)器的邏輯組可以被稱為服務(wù)器群組38。在這 些實施例中的一些實施例中,服務(wù)器106可以是在地理上分散的。有時 候,群組38可以被管理為單一的實體。在其它實施例中,服務(wù)器群組38 包括多個服務(wù)器群組38。在一個實施例中,服務(wù)器群組代表一個或多個 客戶機102來執(zhí)行一個或多個應(yīng)用。
0025在每個群組38中的服務(wù)器106可以是不同種類的。 一個或多 個服務(wù)器106可以根據(jù)一種類型的操作系統(tǒng)平臺(例如,由位于 Redmond, Washington的微軟公司出品的WINDOWS NT)來進行操作,而一 個或多個其它的服務(wù)器106可以根據(jù)另一種類型的操作系統(tǒng)平臺(例如, Unix或Linux)來進行操作。每個群組38中的服務(wù)器106不需要與同一 群組38中的另一個服務(wù)器106物理上接近。因此,邏輯上被分組為群組 38的服務(wù)器106的組可以使用廣域網(wǎng)(WAN)連接或城域網(wǎng)(MAN)連接 來互連。例如,群組38可以包括在物理上位于不同的洲或位于一個洲、 國家、州、城市、校園或房間的不同區(qū)域的服務(wù)器106。如果使用局域網(wǎng)
(LAN)連接或一些形式的直接連接來連接服務(wù)器106,則可以增加在群組38中的服務(wù)器106之間的數(shù)據(jù)傳輸速度。
0026服務(wù)器106可以是文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代 理服務(wù)器或網(wǎng)關(guān)服務(wù)器。在一些實施例中,服務(wù)器106可以有能力起到 應(yīng)用服務(wù)器或主應(yīng)用服務(wù)器的作用。在一個實施例中,服務(wù)器106可以 包4舌活動目錄(Act ive Directory )0 客戶才幾102也可以被稱為客戶機節(jié) 點或端點。在一些實施例中,客戶機102有能力起到尋求訪問服務(wù)器上 的應(yīng)用的客戶機節(jié)點以及作為對于其它的客戶機102a-102n提供對寄載 的應(yīng)用的訪問的應(yīng)用服務(wù)器的作用。
0027在一些實施例中,客戶機102與服務(wù)器106進行通信。在一 個實施例,客戶機102直接與群組38中的服務(wù)器106的其中一個進行通 信。在另一個實施例中,客戶機102執(zhí)行程序鄰近應(yīng)用以與群組38中的 服務(wù)器106進行通信。在又一個實施例中,服務(wù)器106提供主節(jié)點的功 能。在一些實施例中,客戶機102通過網(wǎng)絡(luò)104與群組38中的服務(wù)器106 進行通信。例如,通過網(wǎng)絡(luò)104,客戶機102可以請求執(zhí)行由群組38中 的服務(wù)器106a-106n寄載的多個應(yīng)用,并接收應(yīng)用執(zhí)行的結(jié)果輸出用于 顯示。在一些實施例中,只有主節(jié)點提供所要求的識別并提供與寄載被 請求的應(yīng)用的服務(wù)器10 6'相關(guān)的地址信息的功能。
0028在一個實施例中,服務(wù)器106提供web服務(wù)器的功能。在另 一個實施例中,服務(wù)器106a接收來自客戶機102的請求,將請求轉(zhuǎn)發(fā)到 第二服務(wù)器106b,并使用來自于服務(wù)器106b的對請求的響應(yīng)來對客戶機 102的請求進行響應(yīng)。在又一個實施例中,服務(wù)器106獲得客戶機102可
106相關(guān)的地址信息。在又一個實施例中,服務(wù)器106使用web接口將對 請求的響應(yīng)提供給客戶機102。在一個實施例中,客戶機102直接與服務(wù) 器106進行通信以訪問所標識的應(yīng)用。在另一個實施例中,客戶機102 接收由執(zhí)行服務(wù)器106上的標識的應(yīng)用所生成的諸如顯示數(shù)據(jù)的應(yīng)用輸 出數(shù)據(jù)。
與其他設(shè)備一起布置
0029現(xiàn)在參考圖1B,描述網(wǎng)絡(luò)環(huán)境的另一個實施例,其中,網(wǎng)絡(luò)優(yōu)化設(shè)備200和諸如網(wǎng)關(guān)、防火墻或者加速設(shè)備的一個或者多個其他設(shè)備205、 205'(總的稱為設(shè)備205或者第二設(shè)備205 )布置在一起。例如,在一個實施例中,設(shè)備205是防火墻或者安全設(shè)備,而設(shè)備205'是LAN加速裝置。在一些實施例中,客戶機102可以經(jīng)由一個或者多個第一設(shè)備200和一個或者多個第二設(shè)備205與服務(wù)器106相通信。
0030
一個或者多個設(shè)備200和205可以布置在客戶機102和服務(wù)器106之間的網(wǎng)絡(luò)或者網(wǎng)絡(luò)通信路徑中的任一點處。在一些實施例中,第二設(shè)備205可以布置在和第一設(shè)備200相同的網(wǎng)絡(luò)104上。在其他實施例中,第二i殳備205可以布置在和第一設(shè)備200不同的網(wǎng)絡(luò)104上。在又一個實施例中,第一設(shè)備200和第二設(shè)備205在例如網(wǎng)絡(luò)104的相同網(wǎng)絡(luò)上,而第一i殳備200'和第二設(shè)備205'可以位于諸如網(wǎng)絡(luò)104〃的相同網(wǎng)絡(luò)上。
0031在一個實施例中,第二設(shè)備205包括任一類型和形式傳輸控制協(xié)議或者傳輸后終接裝置,諸如網(wǎng)關(guān)或者防火墻裝置。在一個實施例中,設(shè)備205通過建立與客戶機的第一傳輸控制協(xié)議連接以及與第二設(shè)備或者服務(wù)器的第二傳輸控制連接,來終接傳輸控制協(xié)議。在另一個實施例中,設(shè)備205通過改變、管理或者控制客戶機和服務(wù)器或者第二設(shè)備之間的傳輸控制協(xié)議連接的行為,來終接傳輸控制協(xié)議。例如,設(shè)備205可以以有效終接傳輸控制協(xié)議連接或者作用為或者模擬為終接連接的方式來改變、排列、轉(zhuǎn)發(fā)或者傳輸網(wǎng)絡(luò)分組。
0032在一些實施例中,第二設(shè)備205是性能強化代理。在一個實施例中,設(shè)備205提供虛擬專用網(wǎng)絡(luò)(VPN)連接。在一些實施例中,設(shè)備205提供安全套接字層VPN (SSL VPN)連接。在其他實施例中,設(shè)備205提供基于IPsec (互聯(lián)網(wǎng)協(xié)議安全)的VPN連接。在一些實施例中,設(shè)備205提供任意一個或者多個以下的功能性壓縮、加速、負載平衡、切換/路由、高速緩存和傳輸控制協(xié)議(TCP)加速。
0033在一個實施例中,設(shè)備205是位于Ft. Lauderdale Florida的Citrix Systems公司出品的被稱為訪問網(wǎng)關(guān)、應(yīng)用防火墻、應(yīng)用網(wǎng)關(guān)或者WANScaler的產(chǎn)品實施例。由此,在一些實施例中,設(shè)備205包括任一邏輯、功能、規(guī)則或者操作來執(zhí)行諸如SSLVPN連接、SSL卸載、切換/負載平衡、域名服務(wù)解析、LAN加速和應(yīng)用防火墻的服務(wù)或者功能性。0034在一些實施例中,設(shè)備205提供在客戶機102和服務(wù)器106之間的SSL VPN連接。例如,第一網(wǎng)絡(luò)104上的客戶機102請求建立到第二網(wǎng)絡(luò)104'上的服務(wù)器106的連接。在一些實施例中,第二網(wǎng)絡(luò)104〃是不可從第一網(wǎng)絡(luò)104路由的。在其它實施例中,客戶4幾102在公用網(wǎng)104上,而服務(wù)器106在諸如公司網(wǎng)的專用網(wǎng)104'上。在一個實施例中,客戶機代理攔截第一網(wǎng)絡(luò)104上的客戶機102的通信,加密所述通信,并經(jīng)由第一傳輸層連接發(fā)送所述通信到設(shè)備205。設(shè)備205將第一網(wǎng)絡(luò)104上的第一傳輸層連接關(guān)聯(lián)到第二網(wǎng)絡(luò)104上的到服務(wù)器106的第二傳輸層連接。設(shè)備205從客戶機代理接收被攔截的通信,解密所述通信,并經(jīng)由第二傳輸層連接發(fā)送所述通信到第二網(wǎng)絡(luò)104上的服務(wù)器106。第二傳輸層連接可以是池化的傳輸層連接。在一個實施例中,設(shè)備205提供在兩個網(wǎng)絡(luò)104和104'之間用于客戶機102的端到端安全傳輸層連接。0035在一個實施例中,設(shè)備205在虛擬專用網(wǎng)104上寄載客戶機102的內(nèi)聯(lián)網(wǎng)網(wǎng)際協(xié)議或內(nèi)聯(lián)網(wǎng)IP地址。客戶機102具有諸如第一網(wǎng)絡(luò)104上的網(wǎng)際協(xié)議(IP )地址和/或主機名的本地網(wǎng)絡(luò)標識符。當經(jīng)由設(shè)備205連接到第二網(wǎng)絡(luò)104'時,設(shè)備205在第二網(wǎng)絡(luò)104'上為客戶機102建立、分配或者以其他方式提供內(nèi)聯(lián)網(wǎng)IP,其是諸如IP地址和/或主機名的網(wǎng)絡(luò)標識符。使用客戶機的建立的內(nèi)聯(lián)網(wǎng)IP,設(shè)備205在第二或?qū)S镁W(wǎng)104'上監(jiān)聽并接收指向客戶機102的任意通信。在一個實施例中,設(shè)備205在第二專用網(wǎng)104上充當或代表客戶機102。
0036在一些實施例中,設(shè)備205具有提供用于操控諸如SSL或者TLS的任意安全相關(guān)的協(xié)議或者其中涉及的任意功能的處理的邏輯、商業(yè)規(guī)則、功能或者操作的加密引擎。例如,加密引擎加密和解密經(jīng)由設(shè)備205通信的網(wǎng)絡(luò)分組或者其中任意部分。加密引擎還可以代表客戶機102a-102n、服務(wù)器106a-106n或者設(shè)備200、 205設(shè)置或者建立SSL或者TLS連接。由此,加密引擎提供SSL處理的卸載和加速。在一個實施例中,加密引擎使用隧穿協(xié)議來在客戶機102a-l 02n和服務(wù)器106a-106n之間提供虛擬專用網(wǎng)絡(luò)。在一些實施例中,加密引擎使用加密處理器。在其他實施例中,加密引擎包括在加密處理器上運行的可執(zhí)行指令。200880015831.9 速技術(shù)來在客戶機102和服務(wù)器106之間進行通信1)壓縮;2 )解壓縮;3 )傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路復用;5)傳輸控制協(xié)議緩沖;以及6)高速緩存。在一個實施例中,設(shè)備200通過重復地打開與每個服務(wù)器106的一個或多個傳輸層連接并維持這些連接以允許客戶機經(jīng)由因特網(wǎng)的重復數(shù)據(jù)訪問來減輕服務(wù)器106的通過反復打開和關(guān)閉到客戶機102的傳輸層連接所造成的大量處理負載。這個技術(shù)在這里被稱為"連接池(connection pooling ),,。
0038在一些實施例中,為了經(jīng)由池化的傳輸層連接來無縫拼接從客戶機102到服務(wù)器106的通信,設(shè)備205通過在傳輸層協(xié)議級修改序號和確認號來轉(zhuǎn)換或多路復用通信。這被稱為"連接多路復用"。在一些實施例中,不需要應(yīng)用層協(xié)議相互作用。例如,在入站分組(即,接收來自客戶機102的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)樵O(shè)備205的輸出端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址被改變?yōu)轭A期的服務(wù)器的網(wǎng)絡(luò)地址。在出站分組(即,接收來自服務(wù)器106的一個分組)的情況中,源網(wǎng)絡(luò)地址^皮乂人月良務(wù)器106的網(wǎng)絡(luò)地址改變?yōu)樵O(shè)備205的輸出端口的網(wǎng)絡(luò)地址,而目的地址被從設(shè)備205的網(wǎng)絡(luò)地址改變?yōu)檎埱蟮目蛻魴C102的網(wǎng)絡(luò)地址。所述分組的序號和確認號也^l轉(zhuǎn)換為到客戶機102的設(shè)備205的傳輸層連接上由客戶機102所期待的序號和確認。在一些實施例中,傳輸層協(xié)議的分組校驗和被重新計算以計及這些轉(zhuǎn)換。
0039在另一個實施例中,設(shè)備205為客戶機102和服務(wù)器106之間的通信提供切換或負載平衡功能。在一些實施例中,設(shè)備205根據(jù)層4凈荷或應(yīng)用層請求數(shù)據(jù)來分配業(yè)務(wù)量并將客戶機請求引向服務(wù)器106。在一個實施例中,雖然網(wǎng)絡(luò)分組的網(wǎng)絡(luò)層或?qū)?標識了目的地服務(wù)器106,但設(shè)備205通過作為傳輸層分組的凈荷而攜帶的應(yīng)用信息和數(shù)據(jù)來確定服務(wù)器106以分配網(wǎng)絡(luò)分組。在一個實施例中,設(shè)備205的健康監(jiān)測程序監(jiān)控服務(wù)器的健康以確定為其分配客戶機請求的服務(wù)器106。在一些實施例中,如果設(shè)備205探測到服務(wù)器106不可用或具有超過預定閾值的負載,則設(shè)備2 05可以將客戶機請求^ j向或分配到另 一個服務(wù)器106。
0040在一些實施例中,設(shè)備205充當域名服務(wù)(DNS)解析器或者以其他方式提供來自于客戶機102的DNS請求的解析。在一些實施例中,設(shè)備攔截由客戶機102發(fā)送的DNS請求。在一個實施例中,設(shè)備205響應(yīng)具有設(shè)備205的IP地址或由設(shè)備205寄載的IP地址的客戶機DNS請求。在該實施例中,客戶機102發(fā)送用于域名的網(wǎng)絡(luò)通信到設(shè)備200。在另一個實施例中,設(shè)備200響應(yīng)具有第二設(shè)備200'的IP地址或由第二設(shè)備20(T寄載的IP地址的客戶機的DNS請求。在一些實施例中,設(shè)備205響應(yīng)具有由設(shè)備200確定的服務(wù)器106的IP地址的客戶機的DNS請求。
0041在又一個實施例中,設(shè)備205為客戶機102和服務(wù)器106之間的通信提供應(yīng)用防火墻功能。在一個實施例中,策略引擎295'提供用于才全測和阻塞非法請求的MJ'J 。在一些實施例中,應(yīng)用防火墻防止拒絕服務(wù)(DoS)攻擊。在其它實施例中,設(shè)備檢查被攔截的請求內(nèi)容以識別和阻塞基于應(yīng)用程序的攻擊。在一些實施例中,規(guī)則/策略引擎包括用于提供對多個種類和類型的基于web或因特網(wǎng)的脆弱點的保護的一個或多個應(yīng)用防火墻或安全控制策略,例如下列的一個或多個l)緩沖器溢出,2 ) CGI-BIN參數(shù)操縱,3 )形式/隱藏字段操縱,4 )強制瀏覽,5 ) cookie或會話中毒,6)破譯的訪問控制表(ACLs)或弱的口令,7)跨站點的腳本(XSS), 8)命令注入,9)SQL注入,10)錯誤觸發(fā)感測信息泄漏,11)加密技術(shù)的不安全使用,12)服務(wù)器誤配置,13)后門和調(diào)試選擇,14)web站點毀損,15)平臺或操作系統(tǒng)的脆弱點,以及16)零天攻擊。在一個實施例中,設(shè)備的應(yīng)用防火墻以;險查或分析網(wǎng)絡(luò)通信是否有下列的一種或多種情況的形式來提供HTML格式字段的保護1)返回所需的字段,2)不允許附加字段,3)只讀和隱藏字段強制(enforcement), 4)下拉列表和單選按鈕字段的一致,以及5)格式字段最大長度強制。在一些實施例中,設(shè)備205的應(yīng)用防火墻確保cookies不凈皮修改。在其它實施例中,設(shè)備205通過強制實施合法URL來防止強制瀏覽。
0042還是在又一些實施例中,應(yīng)用防火墻設(shè)備205保護在網(wǎng)絡(luò)通信中包含的任意機密信息。設(shè)備205可以根據(jù)策略引擎的規(guī)則或策略來檢查或分析任意網(wǎng)絡(luò)通信以識別在網(wǎng)絡(luò)分組的任意字段中的任意機密信息。在一些實施例中,應(yīng)用防火墻在網(wǎng)絡(luò)通信中識別信用卡號、口令、社會保險號、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出現(xiàn)。網(wǎng)絡(luò)通信的編碼部分可以包括這些出現(xiàn)或機密信息。在一個實施例中,根據(jù)這些出現(xiàn),應(yīng)用防火墻可以在網(wǎng)絡(luò)通信上采取策略行動,例如阻止網(wǎng)絡(luò)通信的傳輸。在另一個實施例中,應(yīng)用防火墻可以重寫、移除或者以其他方式掩蓋這樣識別出的出現(xiàn)或機密信息。
0043盡管總的稱為網(wǎng)絡(luò)優(yōu)化或者第一設(shè)備200和第二設(shè)備205,但是第一設(shè)備200和第二設(shè)備205可以是同樣類型和形式的設(shè)備。在一個實施例中,第二設(shè)備205可以執(zhí)行和第一設(shè)備100相同的功能性或者部分,反之亦然。例如,第一設(shè)備200和第二設(shè)備205可以一起提供加速技術(shù)。在一個實施例中,第一設(shè)備可以執(zhí)行LAN加速而第二設(shè)備執(zhí)行WAN加速,或者反之亦然。在另一個例子中,第一設(shè)備200還可以是傳輸控制協(xié)議終接裝置,如同第二設(shè)備205 —樣。進一步,盡管設(shè)備200和205視為網(wǎng)絡(luò)上的單獨設(shè)備,但是設(shè)備200和/或205可以是任一客戶機102或者服務(wù)器106的一部分。
0044現(xiàn)在參考圖1C,描述用于布置設(shè)備200的網(wǎng)絡(luò)環(huán)境的其他實施例。在如圖1C的上部所描述的另一個實施例中,設(shè)備200可以布置為網(wǎng)絡(luò)104上的單個設(shè)備或者單個代理。例如,設(shè)備200可以被設(shè)計、構(gòu)建或者調(diào)整來執(zhí)行此處討論的WAN優(yōu)化技術(shù),而不需要第二協(xié)作設(shè)備200\在如圖1C的下部所描述的其它實施例中,單個設(shè)備200可以和一個或者多個第二設(shè)備205 —起布置。例如,諸如Citrix WANScaler設(shè)備的WAN加速第一設(shè)備200可以和諸如Citrix NatScaler設(shè)備的LAN加速或者應(yīng)用防火墻第二設(shè)備205 —起布置。計算裝置
0045客戶機102、服務(wù)器106和設(shè)備200和205可以被部署和/或執(zhí)行在任意類型和形式的計算裝置上,例如可以在任意類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計算機、網(wǎng)絡(luò)裝置或設(shè)備。圖1C和1D描述了可用于實施客戶機102、服務(wù)器106或設(shè)備200的實施例的計算裝置100的框圖。如圖1C和1D所示,每個計算裝置100包括中央處理單元101和主存儲器單元122。如圖1C所示,計算裝置100可以包括可視顯示裝置124、鍵盤126和/或諸如鼠標的定點裝置127。每個計算裝置100也可以包括附加的可選元件,例如一個或多個輸入/輸出裝置130a-130b (通常使用附圖標記130來指示)以及與中央處理單元101通 信的高速緩存140。
0046中央處理單元101是響應(yīng)并處理取自主存儲器單元122的指 令的任意邏輯電路。在許多實施例中,中央處理單元由微處理器單元提 供,例如由位于Mountain View, California的Intel/>司出品的產(chǎn)品; 由位于Schaumburg, Illinois的Motorola公司出品的產(chǎn)品;由位于Santa Clara, California的Transmeta公司出品的產(chǎn)品;由位于White Plains, New York的國際商業(yè)機器公司出品的RS/6000處理器;或者由位 于Sunnyvale, California的Advanced Micro Devices公司出品的產(chǎn)品。 計算裝置100可以基于任意的這些處理器、或者可以如此處所描述地操 作的任意其它處理器。
0047主存儲器單元122可以是能夠保存數(shù)據(jù)并允許;徵處理器101 直接訪問任意存儲位置的一個或多個存儲芯片,例如靜態(tài)隨機存取存儲 器(SRAM)、突發(fā)式SRAM或同步突發(fā)式SRAM (BSRAM )、動態(tài)隨機存取存 儲器(DRAM)、快速頁面才莫式DRAM ( FPM DRAM)、增強型DRAM (EDRAM)、 擴展數(shù)據(jù)輸出RAM (EDO RAM)、擴展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)式 擴展數(shù)據(jù)輸出DRAM( BED0 DRAM )、增強型DRAM( EDRAM )、同步DRAM( SDRAM )、 JEDEC SRAM、 PCI00 SDRAM、雙數(shù)據(jù)速率SDRAM ( DDR SDRAM )、增強型SDRAM (ESDRAM)、同步鏈接DRAM ( SLDRAM )、直接Rambus DRAM ( DRDRAM )、或 鐵電RAM(FRAM)。主存儲器122可以基于任意一種上面描述的存儲芯片、 或者可以如此處所描述地操:作的任意其它可用的存儲芯片。在圖IC中所 示的實施例中,處理器101通過系統(tǒng)總線150與主存儲器122進行通信 (在下面進行更詳細的描述)。圖1C描述了在其中處理器通過存儲器端 口 103直接與主存儲器122通信的計算裝置100的實施例。例如,在圖 ID中,主存儲器122可以是DRDRAM。
0048圖ID描述了在其中主處理器101通過有時被稱為背端總線的 次級總線來直接與高速緩存140通信的實施例。在其它實施例中,主處 理器101使用系統(tǒng)總線150與高速緩存140進行通信。高速緩存140典 型地具有比主存儲器122更快的響應(yīng)時間,并且典型地通過SRAM、 BSRAM 或EDRAM來提供。在圖1C中所示的實施例中,處理器101通過本地系統(tǒng)總線150與多個I/O裝置130進行通信。多種總線可以用來將中央處理 單元101連接到任意一種1/0裝置130,所述總線包括VESA VL總線、ISA 總線、EISA總線、微通道架構(gòu)(MCA)總線、PCI總線、PCI-X總線、 PCI-Express總線或NuBus。對于1/0裝置是4見頻顯示器124的實施例, 處理器101可以使用高級圖形端口 (AGP)來與顯示器124進行通信。圖 1D描述了在其中主處理器101通過HyperTransport、快速I/O或 InfiniBand來直接與I/O裝置130通信的計算機100的一個實施例。圖 1D還描述了混合本地總線和直接通信的一個實施例處理器101使用本 地互連總線與I/O裝置130進行通信,同時直接與I/O裝置130進行通 信。
0049計算裝置IOO可以支持任意適當?shù)陌惭b裝置116,例如用于接 收像3.5英寸、5.25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動器、 CD-ROM驅(qū)動器、CD-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、多種格式的磁帶驅(qū)動 器、USB裝置、硬盤驅(qū)動器或適于安裝像任意客戶機代理120或其部分的 軟件和程序的任意其它裝置。計算裝置100還可以包括存儲裝置128,例 如一個或多個硬盤驅(qū)動器或獨立盤的冗余陣列,用于保存操作系統(tǒng)及其 它相關(guān)軟件,以及用于保存諸如與客戶機代理120相關(guān)的任意程序的應(yīng) 用軟件程序??蛇x地,任意一種安裝裝置116還可以被用作存儲裝置128。 另外,操作系統(tǒng)和軟件可以從可引導介質(zhì)中運行,所述可引導介質(zhì)例如 像KNOPPIX⑧的可引導CD,作為來自于knoppix. net可用作GNU/Linux分 發(fā)的GNU/Linux的可引導CD。
0050進一步地,計算裝置100可以包括通過多種連接接口到局域 網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng)的網(wǎng)絡(luò)接口 118,所述多種連接包括 但不限于標準電話線、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)卡、插件總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò) 適配器、調(diào)制解調(diào)器或適于將計算裝置1G0接口到可以傳達并執(zhí)行此處 所描述的梯:作的任意類型的網(wǎng)絡(luò)的任意其它裝置。各式各樣的I/O裝置 130a-130n可以存在于計算裝置100中。輸入裝置包括^;盤、鼠標、軌跡墊、軌跡球、麥克風以及繪畫板。輸出裝置包括視頻顯示器、揚聲器、 噴墨打印機、激光打印機和染料升華打印機。I/O裝置130可以由如圖
1E所示的I/O控制器123控制。I/O控制器可以控制諸如^;盤126和例 如鼠標或光筆的定點裝置127的一個或多個1/0裝置。進一步地,1/0裝 置還可以為計算裝置100提供存儲裝置128和/或安裝介質(zhì)116。還是在 其它實施例中,計算裝置100可以提供USB連接以接收諸如由位于Los Alamitos, California的Twintech Industry公司出品的USB閃存馬區(qū)動器 系列裝置這樣的便攜USB存儲裝置。
0051在一些實施例中,計算裝置100可以包括或連"l妾到多個顯示 裝置124a-124n,每個顯示裝置可以是相同或不同的類型和/或形式。因 而,任意一種1/0裝置130a-130n和/或1/0控制器123可以包括任意類 型和/或形式的適當?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許或 提供通過計算裝置100連接和使用多個顯示裝置124a-124n。例如,計算 裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動器和 /或庫,以*接口、通信、連"^妻或以其他方式^f吏用顯示裝置124a-124n。在 一個實施例中,視頻適配器可以包括多個連接器以接口多個顯示裝置 124a-124n。在其它實施例中,計算裝置100可以包括多個^L頻適配器, 每個視頻適配器連接到一個或多個顯示裝置124a-124n。在一些實施例 中,計算裝置100的操作系統(tǒng)的任意部分可以被配置用于使用多個顯示 器124a-124n。在其它實施例中, 一個或多個顯示裝置124a-124n可以由 一個或多個諸如例如通過網(wǎng)絡(luò)連接到計算裝置100的計算裝置100a和 100b的其它的計算裝置來提供。這些實施例可以包括被設(shè)計和構(gòu)建為將 另一個計算機的顯示裝置用作計算裝置100的第二顯示裝置124a的任意 類型的軟件。本領(lǐng)域普通技術(shù)人員將認識和理解計算裝置100可以被配 置為具有多個顯示裝置124a-124n的多個方法和實施例。
0052在進一步的實施例中,1/0裝置130可以是在系統(tǒng)總線150和 外部通信總線之間的橋170,所述外部通信總線例如USB總線、A卯le Desktop總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire 800總線、以太網(wǎng)總線、A卯leTalk總線、吉比特以太網(wǎng)總線、異步傳送 模式總線、HIPPI總線、超HIPPI總線、SerialPlus總線、SCI/LAMP總線、FibreChannel總線或串行附加小型計算機系統(tǒng)接口總線。
0053圖1C和ID中描述類型的計算裝置100典型地在控制任務(wù)的 調(diào)度和對系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計算裝置100可以 運行任意操作系統(tǒng),例如任意一種版本的微軟⑧Windows操作系統(tǒng)、不同 版本的Unix和Linux才喿作系統(tǒng)、用于Mac intosh計算機的任意版本的Mac 0S 、任意的嵌入式操作系統(tǒng)、任意的實時操作系統(tǒng)、任意的開放源操作 系統(tǒng)、任意的專用操作系統(tǒng)、用于移動計算裝置的任意搡作系統(tǒng)、或者 可以運行在計算裝置上并執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。 典型的操作系統(tǒng)其中包括WINDOWS 3. x、WIN廳S 95、WIN雨S 98、WINDOWS 2000、 WINDOWS NT 3. 51、 WINDOWS NT 4. 0、 WINDOWS CE、 WINDOWS 2003、 WINDOWS XP和WINDOWS SISTA,所有這些均由位于Redmond, Washington 的微軟公司出品;由位于Cuper t ino, Ca 1 i f ornia的蘋果計算機出品的 MacOS和OS X;由位于Armonk, New York的國際商業(yè)機器公司出品的OS/2; 以及由位于Salt Lake City,Utah的Caldera公司發(fā)布的可免費使用的 Linux操作系統(tǒng)或者任意類型和/或形式的Unix操作系統(tǒng)(諸如稱為 Solaris/Sparc,Solaris/x86,AIX IBM, HP UX,和SGI (Silicon Graphics) 的Unix的這些版本),以及其它。
0054在其它實施例中,計算裝置100可以具有符合所述裝置的不 同的處理器、操作系統(tǒng)和輸入裝置。例如,在一個實施例中,計算機IOO 是由Palm7^司出品的Treol80、 270、 1060、 600或650智能電話。在該 實施例中,Treo智能電話在PalmOS操作系統(tǒng)的控制下操作,并包括指示 筆輸入裝置以及五向?qū)Ш窖b置。在另一個實施例中,計算裝置100可以 是具有ARM (高級RISC機器)類型的處理器的WinCE或者PchetPC。在 一個例子中,計算裝置100包括Fin 1 and的Nok i a出品的Ser i es 8 0( Nok ia 9500或者Nokia 9300 )類型的智能電話,其可以運行United Kingdom, London的Symbian軟件有限公司出品的Symbian OS或者EPOC移動操作 系統(tǒng)。在另一個實施例中,計算裝置100可以包括Illimois, Schaumburg 的Motorola公司出品的FOMA M100品牌的智能電話,并且操作EPOC或 者Symbian 0S操作系統(tǒng)。在又一個實施例中,計算裝置100包括North Carolina, Research Triangle Park的索尼愛立信通信(USA)公司出品
24的Sony Ericsson P800、 P900或者P910 Alpha模型電話(model phone )。 此外,計算裝置100可以是任意工作站、臺式計算機、膝上型或筆記本 計算機、服務(wù)器、便攜計算機、移動電話、智能電話、任意其它計算機、 或者可以通信并具有執(zhí)行此處所描述的操作的足夠的處理器能力和存儲 容量的其它形式的計算或電信裝置。
B、系統(tǒng)和"i殳備架構(gòu)
0055現(xiàn)在參考圖2A,描述了用于遞送和/或操作客戶機上的計算環(huán) 境的設(shè)備200的系統(tǒng)環(huán)境和架構(gòu)的實施例。在一些實施例中,服務(wù)器106 包括用于將計算環(huán)境或應(yīng)用和/或數(shù)據(jù)文件遞送給一個或多個客戶機102 的應(yīng)用遞送系統(tǒng)290。簡單;f既述,客戶^/L 102經(jīng)由網(wǎng)絡(luò)104和設(shè)備200與 服務(wù)器106通信。例如,客戶機102可以駐留在例如分支機構(gòu)的公司的 遠程辦公室,而服務(wù)器106可以駐留在公司的數(shù)據(jù)中心??蛻魴C102包 括客戶機代理120和計算環(huán)境215。計算環(huán)境215可以執(zhí)行或操作用來訪 問、處理或使用數(shù)據(jù)文件的應(yīng)用??梢越?jīng)由設(shè)備200和/或服務(wù)器106來 遞送計算環(huán)境215、應(yīng)用和/或數(shù)據(jù)文件。
0056在一些實施例中,設(shè)備200加速將計算環(huán)境215或其任意部 分遞送給客戶機102。在一個實施例中,設(shè)備200通過應(yīng)用遞送系統(tǒng)290 來加速計算環(huán)境215的遞送。例如,此處描述的實施例可以用來將可由 應(yīng)用處理的流應(yīng)用和數(shù)據(jù)文件加速從中央的公司數(shù)據(jù)中心遞送到遠程用 戶的位置,例如公司的分支機構(gòu)。在另一個實施例中,設(shè)備200加速在 客戶機102和服務(wù)器106之間的傳輸層業(yè)務(wù)量。在另一個實施例中,設(shè) 備200控制、管理、或者調(diào)整傳輸層協(xié)議來加速遞送計算環(huán)境。在一些 實施例中,設(shè)備200使用高速緩存和/或壓縮技術(shù)來加速遞送計算環(huán)境。
0057在一些實施例中,應(yīng)用遞送管理系統(tǒng)290根據(jù)多個執(zhí)行方法 以及根據(jù)經(jīng)由策略引擎295應(yīng)用的任意驗證和授權(quán)策略來提供將計算環(huán) 境遞送到遠端或另外的用戶的桌面的應(yīng)用遞送技術(shù)。使用這些技術(shù),遠 程用戶可以從任意網(wǎng)絡(luò)連接裝置100獲取計算環(huán)境以及訪問服務(wù)器存儲 的應(yīng)用和數(shù)據(jù)文件。在一個實施例中,應(yīng)用遞送系統(tǒng)290可以駐留于服 務(wù)器106或在服務(wù)器106上執(zhí)行。在另一個實施例中,應(yīng)用遞送系統(tǒng)290可以駐留于多個服務(wù)器106a-106n上或在多個服務(wù)器106a-106n上執(zhí)行。 在一些實施例中,應(yīng)用遞送系統(tǒng)190可以在服務(wù)器群組38中執(zhí)行。在一 個實施例中,執(zhí)行應(yīng)用遞送系統(tǒng)190的服務(wù)器106還可以存儲或提供應(yīng) 用和數(shù)據(jù)文件。在另一個實施例中,第一組的一個或多個服務(wù)器106可 以執(zhí)行應(yīng)用遞送系統(tǒng)290,而不同的服務(wù)器106n可以存儲或提供應(yīng)用和 數(shù)據(jù)文件。在一些實施例中,應(yīng)用遞送系統(tǒng)290、應(yīng)用和凝:據(jù)文件中的每 一個可以駐留或位于不同的服務(wù)器上。在又一個實施例中,應(yīng)用遞送系 統(tǒng)290的任意部分可以駐留、執(zhí)行或保存或被分配于設(shè)備200或多個設(shè) 備。
0058客戶機102可以包括用于執(zhí)行使用或處理數(shù)據(jù)文件的應(yīng)用的 計算環(huán)境215。客戶機102可以經(jīng)由網(wǎng)絡(luò)104、 104'和設(shè)備200來從服務(wù) 器106請求應(yīng)用和數(shù)據(jù)文件。在一個實施例中,設(shè)備200可以將來自于 客戶機102的請求轉(zhuǎn)發(fā)到服務(wù)器106。例如,客戶機102可以不具有本地 存儲或可存耳又的應(yīng)用和ft據(jù)文件。響應(yīng)于請求,應(yīng)用遞送系統(tǒng)290和/或 服務(wù)器106可以遞送應(yīng)用和數(shù)據(jù)文件到客戶機102。例如,在一個實施例 中,服務(wù)器106可以以應(yīng)用流的形式發(fā)送該應(yīng)用,以在客戶機102上的 計算環(huán)境215中進行操作。
0059在一些實施例中,應(yīng)用遞送系統(tǒng)290包括Citrix Systems公 司的例如MetaFrame或Citrix表示(Presentat ion )服務(wù)器TM的Citrix 訪問套件TM的任意部分和/或由微軟公司出品的任意一種微軟⑧Windows 終端服務(wù)。在一個實施例中,應(yīng)用遞送系統(tǒng)290可以通過遠程顯示協(xié)議 或以其它方式通過基于遠程或基于服務(wù)器的計算來遞送一個或多個應(yīng)用 到客戶才幾102或用戶。在另一個實施例中,應(yīng)用遞送系統(tǒng)290可以通過 應(yīng)用的流式傳輸來遞送一個或多個應(yīng)用到客戶機或用戶。
0060在一個實施例中,應(yīng)用遞送系統(tǒng)290包括用于控制和管理應(yīng) 用執(zhí)行方法的訪問、選擇以及應(yīng)用的遞送的策略引擎295。在一些實施例 中,策略引擎295確定用戶或客戶機102可以訪問的一個或多個應(yīng)用。 在另一個實施例中,策略引擎295確定應(yīng)用應(yīng)該如何被遞送給用戶或客 戶機102,例如執(zhí)行方法。在一些實施例中,應(yīng)用遞送系統(tǒng)29(M是供從中 選擇應(yīng)用執(zhí)行方法的多個遞送技術(shù),例如基于服務(wù)器的計算、本地流式傳輸或遞送應(yīng)用鄉(xiāng)會客戶才幾120以用于本地執(zhí)行。
0061在一個實施例中,客戶機102請求執(zhí)行應(yīng)用程序而包括服務(wù) 器106的應(yīng)用遞送系統(tǒng)290選擇執(zhí)行應(yīng)用程序的方法。在一些實施例中, 服務(wù)器106從客戶機102接收證書。在另一個實施例中,服務(wù)器106從 客戶機102接收可用應(yīng)用的列舉的請求。在一個實施例中,響應(yīng)于所述 請求或收到的證書,應(yīng)用遞送系統(tǒng)290列舉客戶機102可用的多個應(yīng)用 程序。應(yīng)用遞送系統(tǒng)290接收請求以執(zhí)行所列舉的應(yīng)用。應(yīng)用遞送系統(tǒng) 290選擇預定數(shù)目的方法中的一個來執(zhí)行列舉的應(yīng)用,例如響應(yīng)于策略引 擎的策略。應(yīng)用遞送系統(tǒng)290可以選擇一個執(zhí)行應(yīng)用的方法,使得客戶 機102可以接收通過在服務(wù)器106上執(zhí)行應(yīng)用程序而生成的應(yīng)用輸出數(shù) 據(jù)。應(yīng)用遞送系統(tǒng)29G可以選擇執(zhí)行應(yīng)用的方法,使得本地機器102可 以在檢索包括應(yīng)用的多個應(yīng)用文件之后本地執(zhí)行所述應(yīng)用程序。在又一 個實施例中,應(yīng)用遞送系統(tǒng)290可以選擇執(zhí)行應(yīng)用的方法以經(jīng)由網(wǎng)絡(luò)104 將應(yīng)用流式傳輸?shù)娇蛻魴C102。
0062客戶機102可以執(zhí)行、操作或以其他方式提供應(yīng)用,所述應(yīng) 用可以是任意類型和/或形式的軟件、程序或可執(zhí)行指令,例如任意類型 和/或形式的web瀏覽器、基于web的客戶機、客戶機-服務(wù)器應(yīng)用、瘦-客戶機的計算客戶機、ActiveX控件、或Java小程序、或可以在客戶機 102上執(zhí)行的任意其它類型和/或形式的可執(zhí)行指令。在一些實施例中, 應(yīng)用可以是代表客戶機102在服務(wù)器106上執(zhí)行的基于服務(wù)器或基于遠 程的應(yīng)用。在一個實施例中,服務(wù)器106可以使用任意瘦-客戶機或遠程 顯示協(xié)議來顯示輸出到客戶機102,所述遠程顯示協(xié)議例如由位于Ft. Lauderdale, Florida的Citrix Systems公司出品的獨立計算架構(gòu)(ICA) 協(xié)議或由位于Redmond, Washington的微軟公司出品的遠程桌面協(xié)議 (RDP)。應(yīng)用可以使用任意類型的協(xié)議,并且它可以是例如HTTP客戶機、 FTP客戶機、Oscar客戶機或Telnet客戶機。在其它實施例中,應(yīng)用包 括與VoIP通信相關(guān)的任意類型的軟件,例如軟IP電話。在進一步的實 施例中,應(yīng)用包括與實時數(shù)據(jù)通信相關(guān)的任意應(yīng)用,例如用于流式傳輸 視頻和/或音頻的應(yīng)用。
0063在一些實施例中,服務(wù)器106或服務(wù)器群組38可以運行一個或多個應(yīng)用,例如提供瘦-客戶機計算的應(yīng)用或遠程顯示表示應(yīng)用的應(yīng)
用。在一個實施例中,服務(wù)器106或服務(wù)器群組38作為應(yīng)用而執(zhí)行Ci tr ix Systems />司的例如MetaFrame或Citrix表示月良務(wù)器TM的Citrix訪問 套件TM的任意部分和/或由微軟公司出品的任意一種樣么軟⑧Windows終端 服務(wù)。在一個實施例中,應(yīng)用是由位于Fort Lauderdale, Florida的 Citrix Systems公司開發(fā)的ICA客戶機。在其它實施例中,應(yīng)用包括由 位于Redmond, Washington的微軟公司開發(fā)的遠程桌面(RDP )客戶機。 此外,服務(wù)器106可以運行應(yīng)用,例如,所述服務(wù)器106可以是提供例 如由^立于Redmond, Washington的《殷專欠/>司出品的樣U欠Exchange的電子 郵件服務(wù)的應(yīng)用服務(wù)器、web或網(wǎng)絡(luò)服務(wù)器、或桌面共享服務(wù)器、或協(xié)作 服務(wù)器。在一些實施例中,任意一種應(yīng)用可以包括任意類型的寄載服務(wù) 或產(chǎn)品,例如由Santa Barbara, California的Citrix Online部門^是供 的GoToMeetingTM、由位于Santa Clara, Cal if ornia的WebEx/>司才是供 的WebExTM、或由位于Redmond, Washington的微軟7>司提供的孩爻軟 Office Live Meeting。 示例設(shè)備架構(gòu)
0064圖2A還示出設(shè)備200的示例實施例。僅通過示例來提供圖2A 中的設(shè)備200的架構(gòu)并且不意于以任一方式受限。設(shè)備200可以包括任 一類型和形式的計算裝置ioo,諸如結(jié)合上面圖ID和IE所描述的任一元 件或者部分??偟膩碚f,設(shè)備200具有一個或者多個網(wǎng)絡(luò)端口 266A-266N 和一個或者多個網(wǎng)絡(luò)堆棧267A-267N用于經(jīng)由網(wǎng)絡(luò)104接收和/或傳輸通 信。設(shè)備200還局域網(wǎng)絡(luò)優(yōu)化引擎250,用于優(yōu)化、加速或者以其他方式 改進通過設(shè)備200的任一網(wǎng)絡(luò)業(yè)務(wù)量或者通信的性能、操作或者質(zhì)量。
0065設(shè)備200包括操作系統(tǒng)或者受操作系統(tǒng)的控制。設(shè)備200的 操作系統(tǒng)可以是任一類型和/或形式的Unix操作系統(tǒng),但是本發(fā)明不受 這樣的限制。由此,設(shè)備200可以運行任意操作系統(tǒng),諸如任意一種版 本的微軟⑧Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用 于Macintosh計算機的任意版本的Mac 0S 、任意的嵌入式操作系統(tǒng)、 任意的網(wǎng)絡(luò)操作系統(tǒng)、任意的實時操作系統(tǒng)、任意的開放源操作系統(tǒng)、 任意的專用操作系統(tǒng)、用于移動計算裝置或者網(wǎng)絡(luò)裝置的任意操作系統(tǒng)、或者可以運行在設(shè)備200上并執(zhí)行此處所描述的操作的任意其它操作系統(tǒng)。
0066設(shè)備200的操作系統(tǒng)將可用的系統(tǒng)存儲器分配、管理或者以 其他方式分離成內(nèi)核或者系統(tǒng)空間和用戶或者應(yīng)用空間。內(nèi)核空間典型 地被保留用于運行內(nèi)核,所述內(nèi)核包括任一設(shè)備驅(qū)動程序、內(nèi)核擴展或 其它內(nèi)核相關(guān)軟件。如本領(lǐng)域技術(shù)人員所知,內(nèi)核是操作系統(tǒng)的核心, 并提供對設(shè)備200的資源和硬件相關(guān)的元件的訪問、控制和管理。根據(jù) 設(shè)備200的實施例,內(nèi)核空間還包括和網(wǎng)絡(luò)優(yōu)化引擎250或其部分一起 工作的多個網(wǎng)絡(luò)服務(wù)或進程。另外,內(nèi)核的實施例將依賴于由裝置200 所安裝、配置或者以其他方式使用的操作系統(tǒng)的實施例。與內(nèi)核空間不 同,用戶空間是由用戶模式應(yīng)用或者以其他方式運行于用戶模式的程序 所使用的存儲器區(qū)域或部分操作系統(tǒng)。用戶模式應(yīng)用不可以直接訪問內(nèi) 核空間而使用服務(wù)調(diào)用以訪問內(nèi)核服務(wù)。操作系統(tǒng)使用用戶或者應(yīng)用空 間用于執(zhí)行或者運行應(yīng)用和提供用戶級程序、服務(wù)、過程和/或任務(wù)。
0067設(shè)備200具有一個或者多個網(wǎng)絡(luò)端口 266用于通過網(wǎng)絡(luò)104 傳輸和接收數(shù)據(jù)。網(wǎng)絡(luò)端口 266提供計算裝置和網(wǎng)絡(luò)104或者另一個裝 置100之間的物理和/或邏輯接口用于傳輸和接收網(wǎng)絡(luò)通信。網(wǎng)絡(luò)端口 266 的類型和形式依賴于網(wǎng)絡(luò)的類型和形式以及用于連接到網(wǎng)絡(luò)的介質(zhì)的類 型。進一步,提供用于網(wǎng)絡(luò)端口 266和網(wǎng)絡(luò)堆棧267或者由其使用的任 一軟件可以運行在內(nèi)核空間或者用戶空間中。
0068在一個實施例中,設(shè)備200包括諸如基于TCP/IP的堆棧的一 個網(wǎng)絡(luò)堆棧267,用于在網(wǎng)絡(luò)105上與客戶機102和/或服務(wù)器106進行 通信。在一個實施例中,網(wǎng)絡(luò)堆棧267用于與諸如網(wǎng)絡(luò)104的第一網(wǎng)絡(luò) 以及第二網(wǎng)絡(luò)104'進行通信。在另一個實施例中,裝置200可以包括兩 個或多個網(wǎng)絡(luò)堆棧,例如第一網(wǎng)絡(luò)堆棧267A和第二網(wǎng)絡(luò)堆棧267N。第一 網(wǎng)絡(luò)堆棧267A可以用于和第一端口 266A相結(jié)合在第一網(wǎng)絡(luò)104上通信。 第二網(wǎng)絡(luò)堆棧267N可以用于和第二端口 266N相結(jié)合在第二網(wǎng)絡(luò)104'上 通信。在一個實施例中,網(wǎng)絡(luò)堆棧267包括一個或多個緩沖器用于對一 個或多個網(wǎng)絡(luò)分組排隊以便被設(shè)備200發(fā)送。
0069網(wǎng)絡(luò)堆棧267包括任意類型和形式的軟件或硬件或其任意組合,用于提供到網(wǎng)絡(luò)的連通性以及與網(wǎng)絡(luò)的通信。在一個實施例中,網(wǎng)
絡(luò)堆棧2 6 7包括用于網(wǎng)絡(luò)協(xié)議套件的軟件實現(xiàn)。網(wǎng)絡(luò)堆棧2 6 7可以包括 一個或多個網(wǎng)絡(luò)層,例如如本領(lǐng)域技術(shù)人員所認識和理解的開放系統(tǒng)互 連(0SI)通信模型的任意網(wǎng)絡(luò)層。因而,網(wǎng)絡(luò)堆棧267可以包括用于下 列0SI模型的任意一層的任意類型和形式的協(xié)議1)物理鏈路層,2) 數(shù)據(jù)鏈路層,3 )網(wǎng)絡(luò)層,4 )傳輸層,5 )會話層,6 )表示層以及7 )應(yīng) 用層。在一個實施例中,網(wǎng)絡(luò)堆棧267包括在網(wǎng)際協(xié)議(IP)的網(wǎng)絡(luò)層 協(xié)議上的傳輸控制協(xié)議(TCP),通常被稱為TCP/IP。在一些實施例中, 可以在以太網(wǎng)協(xié)議上攜帶TCP/1P協(xié)議,所述以太網(wǎng)協(xié)議可以包括諸如由 IEEE 802. 3所覆蓋的那些協(xié)議的IEEE廣域網(wǎng)(WAN )或局域網(wǎng)(LAN )協(xié) 議的任意族。在一些實施例中,網(wǎng)絡(luò)堆棧267包括諸如IEEE 802. 11和/ 或移動網(wǎng)際協(xié)議的任意類型和形式的無線協(xié)議。
0070考慮到基于TCP/IP的網(wǎng)絡(luò),可以使用任意基于TCP/IP的協(xié) 議,包括消息應(yīng)用編程接口 (MAPI )(電子郵件)、文件傳送協(xié)議(FTP)、 超文本傳送協(xié)議(HTTP )、公共因特網(wǎng)文件系統(tǒng)(CIFS )協(xié)議(文件傳送)、 獨立計算架構(gòu)(ICA)協(xié)議、遠程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、 移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在另一個實施例中,網(wǎng)絡(luò)堆棧 267包括諸如修改的傳輸控制協(xié)議的任意類型和形式的傳輸控制協(xié)議,例 如事務(wù)TCP (T/TCP)、具有選擇確認的TCP (TCP-SACK )、具有大窗口的 TCP ( TCP-LW )、諸如TCP-Vegas協(xié)議的擁塞預測協(xié)議以及TCP欺騙協(xié)議。 在其它實施例中,網(wǎng)絡(luò)堆棧267可以使用諸如IP上UDP的任意類型和形 式的用戶數(shù)據(jù)報協(xié)議(UDP),例如用于音頻通信或?qū)崟r數(shù)據(jù)通信。
0071進一步,網(wǎng)絡(luò)堆棧267可以包括諸如TCP驅(qū)動程序或網(wǎng)絡(luò)層 驅(qū)動程序的支持一個或多個層的一個或多個網(wǎng)絡(luò)驅(qū)動程序。網(wǎng)絡(luò)驅(qū)動程 序可以被包括作為計算裝置10 0的操作系統(tǒng)的 一部分或作為計算裝置10 0 的任意網(wǎng)絡(luò)接口卡或其它網(wǎng)絡(luò)訪問部件的一部分。在一些實施例中,網(wǎng) 絡(luò)堆棧267的任意一種網(wǎng)絡(luò)驅(qū)動程序可以被定制、修改或改變以提供支 持此處描述的任意技術(shù)的網(wǎng)絡(luò)堆棧267的定制或修改部分。
0072在一個實施例中,設(shè)備200使用單個網(wǎng)絡(luò)堆棧267提供或者 維持客戶機102和服務(wù)器106之間的傳輸層連接。在一些實施例中,設(shè)
30備200通過改變、管理或者控制客戶機和服務(wù)器之間的傳輸控制協(xié)議連 接的行為來有效終接傳輸層連接。在這些實施例中,設(shè)備200可以使用
單個網(wǎng)絡(luò)堆棧267。在其他實施例中,設(shè)備200終接諸如客戶機102的 TCP連接的第一傳輸層連接,并且建立代表客戶機102或者由客戶機102 使用的到服務(wù)器106的第二傳輸層連接,例如第二傳輸層連接在設(shè)備200 和服務(wù)器106處終接。第一和第二傳輸層連接可以經(jīng)由單個網(wǎng)絡(luò)堆棧267 建立。在其他實施例中,設(shè)備20(H吏用多個網(wǎng)絡(luò)堆棧,例如267A和267B。 在這些實施例中,第一傳輸層連接可以在一個網(wǎng)絡(luò)堆棧267A處建立或者 終接,而第二傳輸層連接可以在第二網(wǎng)絡(luò)堆棧267N處建立或者終接。例 如, 一個網(wǎng)絡(luò)堆??梢杂糜谠诘谝痪W(wǎng)絡(luò)上接收和發(fā)送網(wǎng)絡(luò)分組,并且另 一個網(wǎng)絡(luò)堆棧用于在第二網(wǎng)絡(luò)上接收和發(fā)送網(wǎng)絡(luò)分組。
0073如圖2A中所示,網(wǎng)絡(luò)優(yōu)化引擎250包括一個或者多個以下的 元件、部件或者模塊網(wǎng)絡(luò)分組處理引擎240、 LAN/WAN探測器210、流 控制器220、 Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存管 理器232和策略引擎295'。網(wǎng)絡(luò)優(yōu)化引擎250或其一部分可以包括軟件、 硬件或者軟件和硬件的任意組合。此外,網(wǎng)絡(luò)優(yōu)化引擎250所提供的或 者使用的任一軟件可以運行在內(nèi)核空間或者用戶空間。例如,在一個實 施例中,網(wǎng)絡(luò)優(yōu)化引擎25Q可以運行在內(nèi)核空間中。在另一個實施例中, 網(wǎng)絡(luò)優(yōu)化引擎250可以運行在用戶空間中。在又一個實施例中,網(wǎng)絡(luò)優(yōu) 化引擎"0的第一部分運行在內(nèi)核空間中,而網(wǎng)絡(luò)優(yōu)化引擎250的第二 部分運行在用戶空間中。
網(wǎng)絡(luò)分組處理引擎
0074通常也被稱為分組處理引擎或分組引擎的網(wǎng)絡(luò)分組引擎240, 負責管理由設(shè)備200經(jīng)由網(wǎng)絡(luò)端口 266和網(wǎng)絡(luò)堆棧267 4妄收和發(fā)送的分 組的處理。網(wǎng)絡(luò)分組引擎240可以操作在網(wǎng)絡(luò)堆棧267的任一層。在一 個實施例中,網(wǎng)絡(luò)分組引擎240操作在網(wǎng)絡(luò)堆棧267的層2或者層3。在 一些實施例中,分組引擎240在在諸如TCP/IP實施例中的IP層的網(wǎng)絡(luò) 層處攔截或者以其他方式接收分組。在另一個實施例中,分組引擎240 在網(wǎng)絡(luò)堆棧267的層4處操作。例如,在一些實施例中,分組引擎240在傳輸層處攔截或者以其他方式接收分組,諸如在TCP/IP實施例中的TCP 層處攔截分組。在其他實施例中,分組引擎240在層4之上的任一會話 或者應(yīng)用層處操作。例如,在一個實施例中,分組引擎240在傳輸層之 上的協(xié)議層攔截或者以其他方式接收網(wǎng)絡(luò)分組,諸如TCP實施例中的TCP 分組的凈荷。
0075分組引擎240可以包括用于在例如接收網(wǎng)絡(luò)分組或發(fā)送網(wǎng)絡(luò) 分組的處理期間排隊一個或多個網(wǎng)絡(luò)分組的緩沖器。另外,分組引擎240 與一個或多個網(wǎng)絡(luò)堆棧267通信以經(jīng)由網(wǎng)絡(luò)端口 266發(fā)送和接收網(wǎng)絡(luò)分 組。分組引擎240可以包括分組處理定時器。在一個實施例中,分組處 理定時器提供一個或多個時間間隔以觸發(fā)輸入(即,接收)或輸出(即, 發(fā)送)的網(wǎng)絡(luò)分組的處理。在一些實施例中,分組引擎240響應(yīng)于定時 器來處理網(wǎng)絡(luò)分組。分組處理定時器提供任意類型和形式的信號給分組 引擎240,以通知、觸發(fā)或通信時間相關(guān)的事件、間隔或發(fā)生。在許多實 施例中,分組處理定時器以例如^象100毫秒、50毫秒、25毫秒、10毫秒、 5毫秒或者1毫秒的這樣的毫秒級來進行操作。
0076在操作期間,分組引擎240可以與諸如LAN/WAN探測器210、 流控制器220、 Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存 管理器232和/或策略引擎295'的網(wǎng)絡(luò)優(yōu)化引擎25Q的任一部分接口 、集 成或通信。因而,可以響應(yīng)于分組處理定時器和/或分組引擎240來執(zhí)行 LAN/WAN探測器210、流控制器220、 Qos引擎236、協(xié)議加速器234、壓 縮引擎238、高速緩存管理器232和策略引擎295'的任意邏輯、功能或 操作。在一些實施例中,可以以例如小于或等于10毫秒的時間間隔的、 通過分組處理定時器提供的時間間隔的粒度來執(zhí)行加密引擎234、高速緩 存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任意邏輯、功能或 操作。例如,在一個實施例中,高速緩存管理器232可以響應(yīng)于集成的 分組引擎240和/或分組處理定時器242來執(zhí)行任意高速緩存的對象的終 止。在另一個實施例中,可以將高速緩存的對象的滿期或終止時間設(shè)置 為與分組處理定時器的時間間隔相同的粒度級,例如每10毫秒。
高速緩存管理器0077高速緩存管理器232可以包括軟件、硬件或軟件和硬件的任 意組合,以將數(shù)據(jù)、信息和對象保存到存儲器或者存儲裝置的高速緩存 中,提供高速緩存訪問,并且控制和管理高速緩存。由高速緩存管理器 232處理和保存的lt據(jù)、對象或內(nèi)容可以包括諸如標記語言的或者通過任 意協(xié)議通信的任意類型的數(shù)據(jù)。在一些實施例中,高速緩存管理器232 復制存儲在別處的原始數(shù)據(jù)或者以前計算、生成或發(fā)送的數(shù)據(jù),其中原 始數(shù)據(jù)也許需要相對于讀取高速緩存存儲器或者存儲元件來說更長的訪 問時間以取出、計算或者以其他方式獲取。 一旦數(shù)據(jù)被保存在高速緩存 中,未來的使用可以通過訪問高速緩存的拷貝而不是重新取回或再計算 原始數(shù)據(jù)來進行,從而減少訪問時間。在一些實施例中,高速緩存可以 包括設(shè)備200的存儲器中的數(shù)據(jù)對象。在另一個實施例中,高速緩存可 以包括諸如硬盤的一部分的設(shè)備200的任意類型和形式的存儲元件。在 一些實施例中,裝置的處理單元可以提供由高速緩存管理器232使用的 高速緩存存儲器。在又一個進一步的實施例中,高速緩存管理器232可 以使用存儲器、存儲裝置或處理單元的任意部分和組合,以用于高速緩 存數(shù)據(jù)、對象及其它內(nèi)容。
0078進一步地,高速緩存管理器232包括任意邏輯、功能、規(guī)則 或操作,以執(zhí)行設(shè)備200的任意高速緩存技術(shù)。在一些實施例中,高速 緩存管理器232可以作為應(yīng)用、庫、程序、服務(wù)、進程、線程或任務(wù)來 操作。在一些實施例中,高速緩存管理器232可以包括任意類型的通用 處理器(GPP )或者諸如現(xiàn)場可編程門陣列(FPGA )、可編程邏輯器件(PLD ) 或?qū)S眉呻娐?ASIC)的任意其它類型的集成電路。
策略引擎
0079策略引擎295'包括任意邏輯、功能或者操作,用于提供和應(yīng) 用一個或者多個策略或者規(guī)則到設(shè)備200的任一部分的功能、操作或者 配置。策略引擎295'可以包括例如智能統(tǒng)計引擎或者其他可編程應(yīng)用。 在一個實施例中,策略引擎295提供配置機制來允許用戶識別、指定、 限定或者配置用于網(wǎng)絡(luò)優(yōu)化引擎250或者其任一部分的策略。例如,策 略引擎295可以提供策略,用于高速緩存哪些凄t據(jù)、何時高速緩存數(shù)據(jù)、高速緩存數(shù)據(jù)用于誰、何時終止高速緩存中的對象或者刷新高速緩存。 在其它實施例中,策略引擎236可以包括任意邏輯、規(guī)則、功能或操作,
以便確定和提供由設(shè)備200高速緩存的對象、數(shù)據(jù)或內(nèi)容的訪問、控制 和管理以及由設(shè)備200執(zhí)行的安全、網(wǎng)絡(luò)業(yè)務(wù)量、網(wǎng)絡(luò)訪問、壓縮或任 意其它功能或操作的訪問、控制和管理之外。
0080在一些實施例中,策略引擎295'基于以下的任意一個或者多 個來提供和應(yīng)用一個或者多個策略用戶、客戶機的標識、服務(wù)器的標 識、連接的類型、連接的時間、網(wǎng)絡(luò)的類型或者網(wǎng)絡(luò)業(yè)務(wù)量的內(nèi)容。在 一個實施例中,策略引擎295'基于網(wǎng)絡(luò)分組的任意協(xié)議層處的任一字段 或者首部來提供和應(yīng)用策略。在另一個實施例中,策略引擎295'基于網(wǎng)
絡(luò)分組的任一凈荷來提供和應(yīng)用策略。例如在一個實施例中,策略引擎 295'基于將所運載的應(yīng)用層協(xié)議的內(nèi)容的特定部分識別為傳輸層分組的 凈荷來應(yīng)用策略。在另一個實施例中,策略引擎295'基于客戶機、服務(wù) 器或者用戶證書所識別的任一信息來應(yīng)用策略。在又一個實施例中,策 略引擎295'基于關(guān)于客戶機所獲取的任意屬性或者特征來應(yīng)用策略,諸 如經(jīng)由任一類型和形式的端點檢測(參見示例以下討論的客戶機代理的 收集代理)。
0081在一個實施例中,策略引擎295'和應(yīng)用遞送系統(tǒng)290的策略 引擎295結(jié)合或者協(xié)同運行。在一些實施例中,策略引擎295'是應(yīng)用遞 送系統(tǒng)29G的策略引擎295的分布的部分。在另一個實施例中,應(yīng)用遞 送系統(tǒng)290的策略引擎295被部署在或者執(zhí)行在設(shè)備200上。在一些實 施例中,策略引擎295和295'都在設(shè)備200上操作。在又一個實施例中, 設(shè)備200的策略引擎295'或其一部分在服務(wù)器106上操作。
多協(xié)議和多層壓縮引擎
0082壓縮引擎238包括用于壓縮諸如由裝置200的網(wǎng)絡(luò)堆棧267 使用的任意一種協(xié)議的網(wǎng)絡(luò)堆棧的一個或多個協(xié)議的網(wǎng)絡(luò)分組的任意邏 輯、商業(yè)規(guī)則、功能或操作。壓縮引擎238也可以被稱為多協(xié)議壓縮引 擎238,這是由于其可以被設(shè)計、構(gòu)建或者能夠壓縮多個協(xié)議。在一個實 施例中,壓縮引擎238應(yīng)用上下文不敏感的壓縮,其是應(yīng)用到數(shù)據(jù)而不需要知道數(shù)據(jù)類型的壓縮。在另一個實施例中,壓縮引擎238應(yīng)用上下 文敏感的壓縮。在此實施例中,壓縮引擎238利用知道數(shù)據(jù)類型來從一 組合適算法中選擇特定壓縮算法。在一些實施例中,特定協(xié)議的知識被 用來執(zhí)行上下文敏感的壓縮。在一個實施例中,設(shè)備200或者壓縮引擎 238可以使用端口號(例如,公知端口 )以及來自自身連接的數(shù)據(jù)來確定 要使用的適當?shù)膲嚎s算法。 一些協(xié)議僅使用單個類型的數(shù)據(jù),僅要求在 連接建立時可以凈皮選擇的單個壓縮算法。其他協(xié)議在不同時間包括不同 類型的數(shù)據(jù)。例如,引入有其他協(xié)議數(shù)據(jù)的隨意類型的POP 、 IMAP 、 SMTP 和HTTP所有移動文件。
0083在一個實施例中,壓縮引擎238使用德爾塔類型的壓縮算法。 在另一個實施例中,壓縮引擎238使用第一位置壓縮以及在高速緩存、 存儲器或者盤中保存的數(shù)據(jù)上搜索重復的模式。在一些實施例中,壓縮 引擎238使用無損壓縮算法。在其他實施例中,壓縮引擎使用有損壓縮 算法。在一些情況中,知道數(shù)據(jù)類型和有時來自用戶的許可被要求使用 有損壓縮算法。在一些實施例中,壓縮不限于協(xié)議的凈荷。協(xié)議自身的 控制字段可以被壓縮。在一些實施例中,與對于凈荷的使用不同,壓縮 引擎2 38對于控制字段使用不同的算法。
0084在一些實施例中,壓縮引擎238在網(wǎng)絡(luò)堆棧267的一個或者 多個層處壓縮。在一個實施例中,壓縮引擎238在傳輸層協(xié)議處壓縮。 在另一個實施例中,壓縮引擎238在應(yīng)用層協(xié)議處壓縮。在一些實施例 中,壓縮引擎238在層2-4協(xié)議處壓縮。在其他實施例中,壓縮引擎238 在層5-7處壓縮。在又一個實施例中,壓縮引擎238壓縮傳輸層協(xié)議和 應(yīng)用層協(xié)議。在一些實施例中,壓縮引擎238壓縮層2-4協(xié)議和層5-7 協(xié)議。
0085在一些實施例中,壓縮引擎238使用基于存儲器壓縮、基于 高速緩存壓縮或者基于盤壓縮,或者其任一組合。由此,壓縮引擎238 可以被稱為多層壓縮引擎。在一個實施例中,壓縮引擎238使用保存在 諸如RAM的存儲器中的數(shù)據(jù)的歷史。在另一個實施例中,壓縮引擎238 使用保存在諸如處理器的L2高速緩存的高速緩存中的數(shù)據(jù)的歷史。在其 他實施例中,壓縮引擎238使用保存到盤或者存儲位置的數(shù)據(jù)的歷史。在一些實施例中,壓縮引擎238使用分層的基于高速緩存、基于存儲器 和基于盤的數(shù)據(jù)歷史。壓縮引擎238可以首先使用基于高速緩存的數(shù)據(jù) 來確定一個或者多個數(shù)據(jù)匹配用于壓縮,并且隨后可以檢查基于存儲器 的數(shù)據(jù)來確定一個或者多個數(shù)據(jù)匹配用于壓縮。在另一個情況中,壓縮 引擎238在檢查基于高速緩存和/或基于存儲器的數(shù)據(jù)歷史之后可以檢查 盤存儲用于數(shù)據(jù)匹配來壓縮。
0086在一個實施例中,多協(xié)議壓縮引擎238雙向地在客戶機 102a-102n和服務(wù)器106a-106n之間壓縮任意的基于TCP/IP的協(xié)議,包 括消息應(yīng)用編程接口 (MAPI )(電子郵件)、文件傳送協(xié)議(FTP)、超文 本傳送協(xié)議(HTTP)、公共因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳送)、 獨立計算架構(gòu)(ICA )協(xié)議、遠程桌面協(xié)議(RDP )、無線應(yīng)用協(xié)議(WAP )、 移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在其它實施例中,多協(xié)議壓縮 引擎238提供基于超文本標記語言(HTML)的協(xié)議的壓縮,并且在一些 實施例中提供諸如可擴展標記語言(XML)的任意標記語言的壓縮。在一 個實施例中,多協(xié)議壓縮引擎238提供諸如為設(shè)備200設(shè)計用于設(shè)備200 通信的的任意協(xié)議的任意高性能協(xié)議的壓縮。在另一個實施例中,多協(xié) 議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮任意通信的任意凈荷或 任意通信,所述修改的傳輸控制協(xié)議諸如事務(wù)TCP (T/TCP)、具有選擇確 認的TCP ( TCP-SACK )、具有大窗口的TCP ( TCP-LW )、諸如TCP-Vegas協(xié) 議的擁塞預測協(xié)議以及TCP欺騙協(xié)議。
0087因而,多協(xié)議壓縮引擎238為經(jīng)由桌面客戶機以及甚至移動 客戶機訪問應(yīng)用的用戶加速性能,所述桌面客戶機例如微軟Outlook以 及諸如由諸如Oracle、 SAP和Siebel的通用的企業(yè)應(yīng)用所啟動的任意客 戶機的非web瘦客戶機,所述移動客戶機例如掌上電腦。在一些實施例 中,通過與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎24G結(jié)合在一起,多協(xié)議 壓縮引擎238可以壓縮由傳輸層協(xié)議所攜帶的任意一種協(xié)議,諸如任意 應(yīng)用層協(xié)議。
LAN/WAN纟企測器
0088LAN/WAN檢測器238包括用于自動檢測慢側(cè)連接(例如諸如內(nèi)
36聯(lián)網(wǎng)的廣域網(wǎng)(WAN)連接)和相關(guān)端口 267以及快側(cè)連接(例如局域網(wǎng) (LAN)連接)和相關(guān)端口 267的任一邏輯、商業(yè)規(guī)則、功能或者操作。 在一些實施例中,L緒/WAN檢測器238監(jiān)控設(shè)備200的網(wǎng)絡(luò)端口 267上的 網(wǎng)絡(luò)業(yè)務(wù)量來4企測同步分組,有時稱之為"標記,,網(wǎng)絡(luò)分組。該同步分 組識別網(wǎng)絡(luò)分組的類型或者速度。在一個實施例中,同步分組識別WAN 速度或者WAN類型的連接。LAN/WAN檢測器238還識別對標記的同步分組 的確認分組的接收以及其在哪個端口上被接收。設(shè)備200隨后配置其自 身來操作標記的同步分組到達的所識別的端口 ,使得該端口上的速度被 設(shè)置為與該端口連接的網(wǎng)絡(luò)相關(guān)聯(lián)的速度。其它端口隨后被設(shè)置為和該 端口連接的網(wǎng)絡(luò)相關(guān)聯(lián)的速度。
0089此處為了討論方便,"慢"側(cè)可以參考關(guān)于與諸如因特網(wǎng)的廣 域網(wǎng)(WAN)的連接,并且操作在WAN的網(wǎng)絡(luò)速度。同樣,"快"側(cè)可以 參考關(guān)于與局域網(wǎng)(LAN)的連接并且操作在LAN的網(wǎng)絡(luò)速度。然而,注 意到網(wǎng)絡(luò)中"快,,和"慢"側(cè)可以根據(jù)每個連接而改變并且是針對網(wǎng)絡(luò) 連接的速度或網(wǎng)絡(luò)拓樸的類型的相對術(shù)語。這樣的配置可以用在復雜網(wǎng) 絡(luò)拓樸中,其中網(wǎng)絡(luò)僅在和相鄰網(wǎng)絡(luò)比較時是"快"或"慢"的并且在 某種意義上不是絕對的。
0090在一個實施例中,LAN/WAN 4企測器238可以被用來允許設(shè)備自 動發(fā)現(xiàn)其連接的網(wǎng)絡(luò)。在另一個實施例中,LAN/WAN檢測器238可以被用 來檢測部署在網(wǎng)絡(luò)104中的第二設(shè)備200'的存在或者缺失。例如,根據(jù) 圖1A的操作中的自動發(fā)現(xiàn)機制起到以下作用設(shè)備200和200'被置于 和聯(lián)接客戶機102和服務(wù)器106的連接相一致。設(shè)備200和200,處于連 接兩個LAN的諸如內(nèi)聯(lián)網(wǎng)的低速鏈路的端點。在一個示例實施例中,設(shè) 備200和200,的每一個包括兩個端口, 一個連接到"較低"速鏈路并且 另一個連接到諸如LAN的"較高"速鏈路。到達一個端口的任一分組被 復制到其它端口。因此,設(shè)備200和200,每一個被配置為起到兩個網(wǎng)絡(luò) 104之間的橋接器的作用。
0091當諸如客戶機102的端點節(jié)點開啟與諸如服務(wù)器106的另一 個端點節(jié)點的新的TCP連接,則客戶機102將具有同步(SYN)首部位集 或者SYN分組的TCP分組發(fā)送到服務(wù)器106。在本例中,客戶機102打開到服務(wù)器106的傳輸層連接。當SYN分組傳遞通過設(shè)備200時,設(shè)備200 將特征TCP首部選項插入、附加或者以其他方式提供給分組,以告知其 存在。如果分組傳遞通過第二設(shè)備,則在此示例設(shè)備200'中,第二設(shè)備 記錄SYN分組上的首部選項。服務(wù)器106響應(yīng)于具有同步確認(SYN-ACK) 分組的SYN分組。當SYN-ACK分組傳遞通過設(shè)備200'時,TCP首部選項 -故標記(例如附加、插入或者增加)到SYN-ACK分組來將i殳備200'的存 在告知設(shè)備200。當設(shè)備200接收到此分組,則兩個設(shè)備200和200,此 時互相察覺并且該連接可以被適當加速。
0092進一步到LAN/WAN 4企測器238的操作,描述用于使用SYN分 組來檢測網(wǎng)絡(luò)的"快"和"慢"側(cè)的方法或者過程。在客戶機102和服 務(wù)器106之間的傳輸層連接建立期間,設(shè)備200經(jīng)由LAN/WAN檢測器238 確定SYN分組是否用確認(ACK)來被標記。如果其被標記,則設(shè)備200 將接收標記的SYN分組(SYN-ACK)的端口識別或者配置為"慢"側(cè)。在 一個實施例中,設(shè)備200可選地在將分組復制到其它端口之前將ACK標 記從分組移除。如果LAN/WAN ;險測器238確定分組未被標記,則設(shè)備200 將接收未標記的SYN分組的端口識別或者配置為"快,,側(cè)。設(shè)備200隨 后用ACK來標記SYN分組并且將分組復制到其它端口 。
0093在其他實施例中,LAN/WAN檢測器238使用SYN-ACK分組來檢 測網(wǎng)絡(luò)的快和慢側(cè)。設(shè)備200經(jīng)由LAN/WAN檢測器238確定是否用確認 (ACK)標記了 SYN-ACK分組。如果其被標記,則設(shè)備200將接收標記的 SYN分組(SYN-ACK)的端口識別或者配置為"慢,,側(cè)。在一個實施例中, 設(shè)備200可選地在將分組復制到其它端口之前將ACK標記從分組移除。 如果LAN/WAN檢測器238確定分組未被標記,則設(shè)備200將接收未標記 的分組的端口識別或者配置為"快"側(cè)。LAN/WAN 4企測器238確定SYN分 組是否被標記。如果SYN分組未被標記,則設(shè)備200將分組復制到其它 端口。如果SYN分組被標記,則設(shè)備在將SYN-ACK分組復制到其它端口 之前標記該SYN-ACK端口 。
0094設(shè)備200、 200,可以增加、插入、修改、附加或者以其他方 式提供TCP選項中的任意信息或者數(shù)據(jù)來提供關(guān)于網(wǎng)絡(luò)連接、網(wǎng)絡(luò)業(yè)務(wù) 流或者設(shè)備200的配置或者操作的任意信息、數(shù)據(jù)或者特征。以此方式,設(shè)備200不僅將其存在通知給另 一個設(shè)備200,或者標記較高或者較低的 速度連接,設(shè)備200還經(jīng)由TCP選項首部來提供關(guān)于設(shè)備或者連接的附 加信息和數(shù)據(jù)。TCP選項首部信息可以用于或者被設(shè)備用于控制、管理、 優(yōu)化、加速或者改進通過設(shè)備200的網(wǎng)絡(luò)業(yè)務(wù)流,或者以其他方式配置 其自身或者網(wǎng)絡(luò)端口的操作。
0095盡管總的結(jié)合檢測網(wǎng)絡(luò)連接的速度或者設(shè)備的存在來描述, 但是LAN/WAN 4企測器238還可以被用于將設(shè)備200的任意類型的功能、 邏輯或者操作應(yīng)用到網(wǎng)絡(luò)業(yè)務(wù)量的端口、連接或者流。更具體地,無論 裝置在何時在不同端口上執(zhí)行不同的功能,都可以發(fā)生端口的自動分配, 其中,在單元操作期間可以做出對任務(wù)的端口分配,和/或由設(shè)備200可 以發(fā)現(xiàn)每一端口上的網(wǎng)紹4爻的性質(zhì)。
流控制
0096流控制器220包括用于優(yōu)化、加速或者以其他方式改進網(wǎng)絡(luò) 分組的傳輸層通信的性能、操作或者服務(wù)質(zhì)量或者傳輸層處的分組的遞 送的任意邏輯、商業(yè)規(guī)則、功能或者操作。流控制器有時也稱之為流控 制模塊,其調(diào)節(jié)、管理和控制數(shù)據(jù)傳輸率。在一些實施例中,該流控制 器220被部署在網(wǎng)絡(luò)104中的帶寬瓶頸處或與其連接。在一個實施例中, 該流控制器220有效地調(diào)節(jié)、管理和控制帶寬使用或者利用。在其他實 施例中,流控制模塊還可以部署在等待時間轉(zhuǎn)變(低等待時間到高等待 時間)的網(wǎng)絡(luò)上和具有介質(zhì)損失的鏈路(諸如無線或者衛(wèi)星鏈路)上的 點處。
0097在一些實施例中,流控制器220可以包括用于控制網(wǎng)絡(luò)傳輸 量的接收率的接收器側(cè)流控制模塊和用于控制網(wǎng)絡(luò)分組的傳輸率的發(fā)送 器側(cè)流控制模塊。在其他實施例中,第一流控制器220包括接收器側(cè)流 控制模塊并且第二流控制器220,包括發(fā)送器側(cè)流控制模塊。在一些實施 例中,第一流控制器220部署在第一設(shè)備200上并且第二流控制器220, 部署在第二設(shè)備200,上。同樣,在一些實施例中,第一設(shè)備200控制接 收器側(cè)上的數(shù)據(jù)流,并且第二設(shè)備200'控制來自發(fā)送器側(cè)的數(shù)據(jù)流。在 又一個實施例中,單個設(shè)備200包括用于傳播通過設(shè)備200的網(wǎng)絡(luò)通信的接收器側(cè)和發(fā)送器側(cè)的流控制。
0098在一個實施例中,流控制模塊220被配置為允許瓶頸處的帶
寬更充分利用,并且在一些實施例中,不能過度利用。在一些實施例中,
流控制模塊220透明地緩沖(或者重新緩沖由例如發(fā)送器已經(jīng)緩沖的數(shù) 據(jù))在具有相關(guān)聯(lián)的流控制模塊220的節(jié)點之間傳遞的網(wǎng)絡(luò)會話。當會 話傳遞通過兩個或者多個流控制模塊220,則一個或者多個流控制模塊控 制會話的速率。
0099在一個實施例中,流控制模塊200被配置具有涉及瓶頸帶寬 的預定數(shù)據(jù)。在另一個實施例中,流控制模塊220可以被配置為檢測瓶 頸帶寬或者其關(guān)聯(lián)數(shù)據(jù)。接收器側(cè)流控制模塊220可以控制數(shù)據(jù)傳輸率。 接收器側(cè)流控制模塊220通過將傳輸率限制轉(zhuǎn)發(fā)到發(fā)送器側(cè)流控制模塊 220來控制發(fā)送器側(cè)流控制模塊220,例如數(shù)據(jù)傳輸率。在一個實施例中, 接收器側(cè)流控制模塊220到在由例如服務(wù)器106的接收器發(fā)送到諸如客 戶機102的發(fā)送器的確認(ACK)分組(或者信號)上捎帶(piggyback) 這些傳輸率限制。接收器側(cè)流控制模塊220響應(yīng)于發(fā)送器側(cè)流控制模塊 220,發(fā)送的速率控制請求來做這一工作。來自發(fā)送器側(cè)流控制模塊220, 的請求可以在發(fā)送器106發(fā)送的數(shù)據(jù)分組上被"捎帶"。
0100在一些實施例中,流控制器220掌控、調(diào)整、模擬、改變、 改進或者以其他方式調(diào)節(jié)傳輸層協(xié)議的行為來提供傳輸層的遞送、數(shù)據(jù) 率和/或帶寬利用的改進的性能或者,喿作。流控制器220可以在傳輸層實 現(xiàn)多個數(shù)據(jù)流控制技術(shù),包括但不限于l)預確認,2)窗口虛擬化,3) 重新?lián)砣夹g(shù),3)本地重傳輸技術(shù),4)波前檢測和消除二義性。5)傳 輸控制協(xié)議選擇性確認,6)事務(wù)邊界檢測技術(shù)和7)重新分包。
0101盡管發(fā)送器總的在此處描述為客戶機102以及接收器為服務(wù) 器106,但是發(fā)送器也可以是諸如網(wǎng)絡(luò)104上服務(wù)器106或者任一計算裝 置100的任一端點。同樣,接收器也可以是網(wǎng)絡(luò)104上客戶機102或者 任意其它計算裝置。
預確認
0102對于預確認流控制技術(shù)總的來說,在一些實施例中,流控制器220處理發(fā)送器的確認和重新傳輸,有效終接發(fā)送器與網(wǎng)絡(luò)連接的下
游部分的連接。參考圖1B,描述用來實現(xiàn)該特征的將設(shè)備200布置到網(wǎng) 絡(luò)架構(gòu)中的一個可能的部署。在此示例實施例中,發(fā)送計算機或者客戶 機102在網(wǎng)絡(luò)104上例如經(jīng)由轉(zhuǎn)換器發(fā)送數(shù)據(jù),其確定該凄t據(jù)發(fā)往VPN 設(shè)備205。由于所選擇的網(wǎng)絡(luò)拓樸,發(fā)往VPN設(shè)備205的所有數(shù)據(jù)傳播通 過設(shè)備200,使得設(shè)備2 00可以將任一必要的算法應(yīng)用到該數(shù)據(jù)。
0103進一步在該例中,客戶機102發(fā)送由設(shè)備200接收的分組。 當設(shè)備200接收從客戶機102經(jīng)由VPN設(shè)備205發(fā)送到接收者的分組時, 設(shè)備200保留分組的備份并且將分組向下游轉(zhuǎn)發(fā)到VPN設(shè)備205。設(shè)備 200隨后產(chǎn)生確認分組UCK)并且將ACK分組發(fā)送回客戶機102或者發(fā) 送端點。該ACK即預確認使得發(fā)送器102相信分組已經(jīng)被成功遞送,釋 放發(fā)送器的資源用于隨后的處理。在請求分組重新傳輸?shù)氖录?,設(shè)備 200保留分組數(shù)據(jù)的備份,使得發(fā)送器102不必處理數(shù)據(jù)的重新傳輸。這 個確認的早期產(chǎn)生可以稱為"預確認"。
0104如果需要分組的重新傳輸,設(shè)備200將分組重新傳輸?shù)桨l(fā)送 器。設(shè)備200可以確定當發(fā)送器處于傳統(tǒng)系統(tǒng)中時是否需要重新發(fā)送, 例如,在預定時間之后對于該分組如果沒有接收到確認信息則確定分組 丟失。對此,設(shè)備200監(jiān)控例如服務(wù)器106(或者任意其它下游網(wǎng)絡(luò)實體) 的接收端點產(chǎn)生的確認,使得其可以確認是否分組已經(jīng)成功遞送或者需 要重新傳輸。如果設(shè)備200確定分組已經(jīng)成功發(fā)送,則設(shè)備200能夠自 由丟棄所保存的分組數(shù)據(jù)。設(shè)備200還可以禁止將已經(jīng)由發(fā)送端點接收 的分組的確認進行轉(zhuǎn)發(fā)。
0105在上述實施例中,設(shè)備200經(jīng)由流控制器220通過預確認(也 稱之為"預告知")的遞送來控制發(fā)送器102,如同設(shè)備200是接收端點 本身一樣。由于設(shè)備200不是端點并且實際上不消耗數(shù)據(jù),所以設(shè)備200 包括用于對發(fā)送端點提供過流控制的機制。無需過流控制,因為設(shè)備200 保存已經(jīng)預確認到發(fā)送端點但還沒有確認為由接收端點接收的分組,所 以設(shè)備200能夠用完存儲器。在發(fā)送器102發(fā)送分組到設(shè)備200快于設(shè) 備向下游轉(zhuǎn)發(fā)分組的情況中,設(shè)備200中可用于保存未確認分組數(shù)據(jù)的 存儲器可以快速填充。用于過流控制的機制允許設(shè)備200控制來自發(fā)送
41器102的分組的傳輸以避免該問題。
0106在一個實施例中,設(shè)備200或者流控制器包括固有的"自同 步"(self-clocking)過流控制機制。該自同步歸因于這樣的順序設(shè) 備200可以^皮設(shè)計為將分組發(fā)送到下游并且將ACK發(fā)送到發(fā)送器102或 者106。在一些實施例中,設(shè)備200并不預確認分組,直到其向下游發(fā)送 分組為止。以此方式,發(fā)送器102以設(shè)備200能夠發(fā)送分組而不是設(shè)備 200能夠從發(fā)送器100接收分組的速率接收ACK。這有助于調(diào)節(jié)來自發(fā)送 器102的分組的傳輸。
窗口虛擬化
0107設(shè)備200可以實現(xiàn)的另一個過流控制機制是使用TCP窗大小 參數(shù),其告知發(fā)送器接收器允許發(fā)送器填滿多少緩沖器。預確認中的非 零窗大小(例如至少一個最大段大小(MSS)的大小)允許發(fā)送端點繼續(xù) 將數(shù)據(jù)遞送到設(shè)備,而零窗大小禁止進一步的數(shù)據(jù)傳輸。相應(yīng)地,設(shè)備 2 0 0可以例如當設(shè)備2 0 0的緩沖器變滿時通過適當?shù)卦O(shè)置每一預確認中的 TCP窗大小來調(diào)節(jié)來自發(fā)送器的分組的流量。
0108另 一項用來降低該附加開銷的技術(shù)是應(yīng)用滯后作用 (hysteresis )。當設(shè)備200將數(shù)據(jù)遞送到較慢側(cè)時,設(shè)備200中的過流 控制機制可以在發(fā)送非零窗公布到發(fā)送器之前要求可用的最小數(shù)量的空 間。在一個實施例中,設(shè)備200在發(fā)送非零窗分組之前等待直到存在最 小的預定數(shù)量的分組(諸如四個分組)的可用空間,,非零窗分組諸如是指 示四個分組的窗大小的分組。對于四個數(shù)據(jù)分組的每個組由于〗又兩個ACK 分組被發(fā)送,而不是對于四個數(shù)據(jù)分組要發(fā)送八個ACK分組,這可以將 開銷大概降低到原來的四分之一。
0109設(shè)備200或者流控制器220可以用于過流控制的另一個技術(shù) 是TCP延遲ACK機制,其跳過ACK來降低網(wǎng)絡(luò)業(yè)務(wù)量。TCP延遲ACK自動 延遲ACK的發(fā)送,直到接收到兩個分組或者直到發(fā)生固定的超時為止。 該機制單獨導致開銷減半,此外,通過增加分組的數(shù)量高于兩個,實現(xiàn) 附加的開銷降低。但是僅延遲ACK本身不足以控制過流,并且設(shè)備200 還可以使用ACK上公布的窗機制來控制發(fā)送器。當這樣操作時,在一個實施例中,設(shè)備200通過延遲ACK很長時間來避免觸發(fā)發(fā)送器的超時機制。
0110在一個實施例中,流控制220不對一組分組的最后一個分組 進行預確認。通過不對最后一個分組或者該組的分組的至少一個預確認, 設(shè)備避免對一組分組的錯誤確認。例如,如果設(shè)備將發(fā)送最后一個分組 的預確認并且該分組隨后丟失,則發(fā)送器在分組沒有被遞送時已經(jīng)被欺 騙認為其被遞送??紤]到分組已經(jīng)遞送,則發(fā)送器丟棄該數(shù)據(jù)。如果設(shè) 備還損失該分組,則不能重新傳輸該分組到接收者。通過不對一組分組 的最后一個分組預確認,則發(fā)送器直到該分組被遞送時才將其丟棄。
0111在另一個實施例中,流控制器22Q可以使用窗虛擬化技術(shù)來 控制流速或者網(wǎng)絡(luò)連接的帶寬利用。雖然根據(jù)檢查諸如RFC 1323的傳統(tǒng) 文獻其可能不是直接明顯的,但是存在用于諸如TCP的傳輸層協(xié)議的發(fā) 送窗。發(fā)送窗由于消耗緩沖器空間(盡管在發(fā)送器上),所以和接收窗相 同。發(fā)送器的發(fā)送窗包括接收器還沒有確認的應(yīng)用發(fā)送的所有數(shù)據(jù)。在 要求重傳輸?shù)那闆r中該數(shù)據(jù)必須保留在存儲器中。由于存儲器是共享資 源,所以一些TCP堆棧實現(xiàn)限制了該數(shù)據(jù)的大小。當發(fā)送窗滿時,應(yīng)用 程序嘗試發(fā)送更多的數(shù)據(jù)導致阻斷應(yīng)用程序,直到空間可用為止。隨后 的確認接收將釋放發(fā)送窗存儲器并且不阻斷應(yīng)用程序。該窗大小公知為 一些TCP實現(xiàn)中的套接字緩沖器大小。
0112在一個實施例中,流控制模塊220被配置為提供對增加的窗 (或者緩沖器)大小的訪問。該配置還可以稱為窗虛擬化。在包含作為 傳輸層協(xié)議的TCP的實施例中,TCP首部可以包括對應(yīng)窗范圍的位字符串。 在一個實施例中,"窗"可以在發(fā)送、接收或者二者的上下文中提及。
0113窗虛擬化的一個實施例是將預確認設(shè)備200插入到TCP會話 中。參考圖1A或1B的任意一個環(huán)境,建立例如客戶機102(為討論方便, 現(xiàn)在稱為源節(jié)點102)的源節(jié)點和例如服務(wù)器106 (為討論方便,現(xiàn)在稱 之為目標節(jié)點106 )的目標節(jié)點之間數(shù)據(jù)通信會話的初始化。對于TCP通 信,源節(jié)點102最初將同步信號("SYN")通過其局域網(wǎng)104傳輸?shù)降谝?流控制模塊220。第一流控制模塊220將配置標識符插入到TCP首部選項 區(qū)域中。該配置標識符將數(shù)據(jù)路徑中的該點識別為流控制模塊。0114設(shè)備200經(jīng)由流控制模塊220提供窗(或者緩沖器)來允許 會話內(nèi)的增加的數(shù)據(jù)緩沖能力,盡管具有例如16k字節(jié)的小緩沖器大小 的端節(jié)點。然而,RFC 1323要求窗縮放大于64k字節(jié)的任何緩沖器大小, 其必須在會話初始化(SYN、 SYN-ACK信號)時設(shè)置。此外,窗的縮;故對 應(yīng)于數(shù)據(jù)路徑中的最小公分母(common denominator ),經(jīng)常是具有小的 緩沖器大小的端節(jié)點。該窗比例(window scale)通常是0或者1的比 例,其對應(yīng)于直到64k或者128k字節(jié)的緩沖器大小。注意到,由于窗大 小被限定為隨窗比例改變的每一分組中的窗字段,則窗比例建立用于該 緩沖期的上限,但并不保證該緩沖器實際上就那么大。每個分組指示窗 字段中接收器處當前可用的緩沖器空間。
0115在使用窗的虛擬技術(shù)縮放的實施例中,在當?shù)谝涣骺刂颇K 220從源節(jié)點102接收SYN信號(或者分組)的連接建立(即,會話初始 化)期間,流控制模塊220將源節(jié)點102 (其是之前的節(jié)點)的窗比例或 者如果之前的節(jié)點的比例丟失則為窗比例保存0值。第一流控制模塊220 還在SYN-FCM信號中修改比例,例如將比例從0或者1增加到4。當?shù)诙?流控制模塊220接收SYN信號時,其將來自第一流控制信號的增加的比 例保存并且將SYN信號中的比例重置為源節(jié)點103的比例值以用于傳輸 到目標節(jié)點106。當?shù)诙骺刂破?20接收到來自目標節(jié)點106的SYN-ACK 信號時,其將來自目標節(jié)點106比例(例如,0或者1)的比例保存并且 將其修改為與SYN-ACK-FCM信號一起發(fā)送的增加的比例。第一流控制節(jié) 點220接收并且記錄所接收的窗比例并且將發(fā)送返回源節(jié)點102的窗比 例修訂為下降到例如0或者1的初始比例?;谏厦孢B接建立期間的窗 變化會話,會話的例如TCP分組的每一個隨后的分組中的窗字段必須根 據(jù)窗變化轉(zhuǎn)換而改變。
0116如上所述,窗比例表示出大于64k的緩沖器大小,并且可以 不需要窗虛擬化。因此,窗比例的變化可以用于表示每一個流控制模塊 220中的增加的緩沖器容量。該緩沖器容量的增加可以被稱為窗(或者緩 沖器)虛擬化。該緩沖器大小的增加允許更大的分組從各自的端節(jié)點102 和106進出。注意到,TCP中的緩沖器大小典型地以字節(jié)表示,但是為了 討論方便由于"分組"和虛擬化相關(guān),在此處描述中可以使用"分組"。0117通過示例,描述流控制器220執(zhí)行的窗(或者緩沖器)虛擬 化。在此例中,源節(jié)點102和目標節(jié)點106配置為與具有受限的16k字 節(jié)的緩沖器容量的傳統(tǒng)端節(jié)點相同,其大約等于10個數(shù)據(jù)分組。典型地, 端節(jié)點102、 106在下一組分組能夠傳輸之前必須等到該分組被傳輸并且 收到確認。在一個實施例中,使用流控制模塊220中的增加的緩沖器容 量,當源節(jié)點103發(fā)送其數(shù)據(jù)分組時,第一流控制模塊220接收該分組, 將該分組保存在其例如512個分組容量的較大容量的緩沖器中,并且立 即發(fā)送指示分組接收("REC-ACK")的確認信號回到源節(jié)點102。源節(jié)點 102可以隨后"清除"其當前緩沖器,將10個新的數(shù)據(jù)分組載入緩沖器, 并且將這些傳輸?shù)降谝涣骺刂颇K220上。在此,第一流控制模塊 發(fā)送REC-ACK信號回到源節(jié)點,并且源節(jié)點102清除其緩沖器并且對其 載入10個更新的分組用于傳輸。
0118當?shù)谝涣骺刂颇K220接收到來自源節(jié)點的數(shù)據(jù)分組時,其 相應(yīng)地將該數(shù)據(jù)分組載入到緩沖器中。當其準備好時,第一流控制模塊 220可以開始將數(shù)據(jù)分組傳送到第二流控制模塊230,其還具有增加的緩 沖器大小例如來接收512個分組。第二流控制模塊220'接收數(shù)據(jù)分組并 且開始每次傳輸10個分組到目標節(jié)點106。在第二流控制節(jié)點220處接 收的來自目標節(jié)點106的每一個REC-ACK導致10個更多分組傳輸?shù)侥繕?節(jié)點106,直到所有的數(shù)據(jù)分組被傳送。因此,本發(fā)明能夠通過利用裝置 之間的流控制模塊220、 220,的較大的緩沖器來增加源節(jié)點(發(fā)送器) 102和目標節(jié)點(接收器)106之間的傳輸量。
0119注意到通過之前描述的數(shù)據(jù)的"預確認"傳輸,發(fā)送器(或 者源節(jié)點102 )被允許傳輸超過不需要預確認的可能的更多的數(shù)據(jù),因此 造成更大的窗大小。例如,在一個實施例中,該技術(shù)有效地用在流控制 模塊220、 220,處于缺乏大窗的節(jié)點(例如,源節(jié)點102或者目標節(jié)點 106)附近的時候。
重新?lián)砣?br> 0120流控制器220的另一個技術(shù)或者算法稱之為重新?lián)砣?。標?的TCP擁塞避免算法在面對特定網(wǎng)絡(luò)條件時公知地表現(xiàn)差,包括大的RTT(往返時間)、高分組損失率以及其它。當設(shè)備200檢測到諸如長的往返時間或者高的分組損失的擁塞條件時,設(shè)備200插入、代入更好地適合特定網(wǎng)絡(luò)條件的替代的擁塞避免算法。在一個實施例中,該重新?lián)砣惴ㄊ褂梅纸M來有效終接發(fā)送器和接收器之間的連接。設(shè)備200隨后使用不同的擁塞避免算法從自身重新發(fā)送分組到接收器。重新?lián)砣惴梢砸蕾囉赥CP連接的特性。設(shè)備200監(jiān)控每一個TCP連接,在特征在于關(guān)于不同的維度,選擇適合用于當前特征的重新?lián)砣惴ā?br> 0121在一個實施例中,當;f全測到通過往返時間(RTT)限制的TCP連接時,作為多個TCP連接運行的重新?lián)砣惴ū粦?yīng)用。每個TCP連接操作在其自身性能限度內(nèi),但是集合的帶寬實現(xiàn)了更高的性能水平。該機制中的一個參數(shù)是所應(yīng)用的并行連接的數(shù)量(N )。 N和連接束的值過大實現(xiàn)超過其合理共享的帶寬。N和連接束的值過小實現(xiàn)低于其合理共享的帶寬。建立"N"的一個方法依賴于監(jiān)控分組損失率、RTT和實際連接的分組大小的設(shè)備200。這些數(shù)字插入TCP響應(yīng)曲線方程來4是供本配置中單個TCP連接的性能的上限。如果連接束中每個連接正獲得與計算到上限的基本相同的性能,則應(yīng)用附加的并行連接。如果當前束正獲得低于上限的性能,則降低并行連接的數(shù)量。以此方式,由于單獨的連接束包含不超過其所需的并行,則維持系統(tǒng)的總的共享,來消除協(xié)議自身強加的限制。進一步,每個單獨的連接保留TCP兼容性。
0122建立"N"的另一個方法是使用諸如TCP "Vegas"算法或者TCP "穩(wěn)定Vegas"算法的并行流控制算法。在此方法中,和連接束中的連接相關(guān)的網(wǎng)絡(luò)信息(例如,RTT、損失率、平均分組大小等等)被集合并且應(yīng)用到替代流控制算法。該算法的結(jié)果相應(yīng)被分布到控制他們數(shù)量(即,N)的束的連接之間??蛇x地,束中的每個連接仍舊使用標準TCP擁塞避免算法。
0123在另一個實施例中,并行束中的單獨連接-故虛擬化,即實際上不建立單獨的TCP連接。事實上擁塞避免算法仍被修改為好像存在N個并行連接來運行。該方法的優(yōu)點呈現(xiàn)為如同單個連接一樣傳輸網(wǎng)絡(luò)節(jié)點。因此,通過重新?lián)砣惴ǘ粫绊戇@些節(jié)點的QOS、安全性和其他監(jiān)控方法。在又一個實施例中,并行束中的單獨連接是真實存在的,即獨立的。TCP連接被建立用于束中的并行連接的每一個。不必修改用于每
一個TCP連接的擁塞避免算法。重新傳輸
0124在一些實施例中,流控制器220可以應(yīng)用本地重傳輸技術(shù)。用于實現(xiàn)預確認的一個原因是準備發(fā)送到高損鏈路(例如無線)。在這些實施例中,預確認設(shè)備200或者流控制模塊220最有益地位于無線鏈路"之前"。這允許要進行的重傳輸更接近于高損鏈路,將重傳輸負荷從網(wǎng)絡(luò)的剩余部分移除。設(shè)備200可以提供本地重傳輸,在此情況中,由于鏈路失敗而丟失的分組由設(shè)備200直接重傳輸。由于這消除了諸如服務(wù)器106的端節(jié)點上的重傳輸負擔和任一網(wǎng)絡(luò)104的基礎(chǔ)結(jié)構(gòu),所以這是有益的。利用設(shè)備200提供本地重傳輸,丟失的分組可以被重傳輸通過高損鏈路而不需要必須由端節(jié)點重傳輸并且來自端節(jié)點的數(shù)據(jù)傳輸率對應(yīng)下降。
0125用于實現(xiàn)預確認的另一個原因是避免接收超時(RT0)懲罰。在標準TCP中,存在多種情況導致RTO,即使是成功接收傳輸中的較大百分比的分組。使用標準TCP算法,RTT窗中丟失多于一個分組有可能會導致超時。此外,如果重傳輸分組丟失,則大部分TCP連接經(jīng)歷超時。在具有高帶寬延遲產(chǎn)品的網(wǎng)絡(luò)中,甚至相對小的分組損失率也會導致頻繁的重傳輸超時(RTO)。在一個實施例中,設(shè)備200使用重傳輸和超時算法來避免早期的RTO。設(shè)備200或者流控制器220基于每一分組來維持重傳輸?shù)挠嫈?shù)。每當重傳輸分組時,計數(shù)加一并且設(shè)備200繼續(xù)傳輸分組。在一些實施例中,僅有當 一個分組已經(jīng)被重傳輸預定次數(shù)后后才被宣告為RTO。
波前檢測和消除二義性
0126在一些實施例中,設(shè)備200或者流控制器220在管理和控制網(wǎng)絡(luò)業(yè)務(wù)量的流時使用波前檢測和消除二義性技術(shù)。在此技術(shù)中,流控制器220使用傳輸標識符或者號碼來確定是否需要重傳輸特定數(shù)據(jù)分組。通過示例,發(fā)送器在網(wǎng)絡(luò)上傳輸數(shù)據(jù)分組,其中所傳輸?shù)臄?shù)據(jù)分組的每
47一個實例和傳輸號碼相關(guān)聯(lián)。可以理解,由于序列號索引分組中的數(shù)據(jù)而傳輸號碼索引該數(shù)據(jù)的傳輸?shù)膶嵗?,分組的傳輸號碼與分組的序列號不相同。傳輸號碼可以是對于該目的可用的任意信息,包括和分組相關(guān)聯(lián)的時間戳或者筒單地增加的號碼(類似于序列號或者分組號)。由于數(shù)據(jù)段可以被重傳輸,則不同的傳輸號碼可以和特定序列號相關(guān)聯(lián)。
0127由于發(fā)送器傳輸數(shù)據(jù)分組,所以發(fā)送器保持數(shù)據(jù)分組傳輸?shù)?br> 所確認的實例的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)分組傳輸?shù)拿總€實例由其序列號和傳輸號碼索引。通過保持對于每個分組的傳輸號碼,發(fā)送器保留數(shù)據(jù)分組的
傳輸?shù)捻樞?。當發(fā)送器接收到ACK或者SACk時,發(fā)送器確定和所指示的接收器(在所接收的確認中)已經(jīng)接收的分組相關(guān)聯(lián)的最高傳輸號碼。具有最低傳輸號碼的任一 未完成的未確認分組^皮假設(shè)丟失。
0128在一些實施例中,當?shù)竭_分組已經(jīng)被重傳輸時,發(fā)送器呈現(xiàn)出不明確的狀態(tài)標準的ACK/SACK沒有包含足夠的信息來允許發(fā)送器確定到達分組的傳輸已經(jīng)觸發(fā)該確認。從而4妄收到不明確確i人之后,發(fā)送器將確認消除二義性來將其和傳輸號碼相關(guān)聯(lián)。在不同的實施例中,多個技術(shù)的其中之一或者組合可以被用來解決該不確定性。
0129在一個實施例中,發(fā)送器包括具有所傳輸?shù)臄?shù)據(jù)分組的標識符,并且接收器返回該標識符或者其中具有確認的函數(shù)。標識符可以是時間戳(例如在RFC 1323中描述的TCP時間戳)、序列號、可以;故用來在分組傳輸?shù)膬蓚€或者多個實例之間解析的任一其他信息。在TCP時間戳選項被用來消除確認的二義性的實施例中,每一分組使用高達32位唯一的信息來標記。接收到數(shù)據(jù)分組時,接收器將此唯一信息回送到具有該確認的發(fā)送器。發(fā)送器確保最初發(fā)送的分組和其重傳輸?shù)囊粋€或者多個版本包含對于時間戳選項的不同值,允許明確地消除ACK不確定性。發(fā)送器可以將該唯一信息保存在例如用來保存所發(fā)送數(shù)據(jù)分組的狀態(tài)的數(shù)據(jù)結(jié)構(gòu)中。由于該技術(shù)與工業(yè)標準相兼容并且因此不會遇到或者遇到很少互操作性的問題,所以該技術(shù)是有益的。然而,該技術(shù)在一些實現(xiàn)中可以要求十個字節(jié)的TCP首部空間,降低了網(wǎng)絡(luò)上的有效吞吐率并且減少了可用于其它TCP選項的空間。
0130在另一個實施例中,分組中的另一個字段,諸如IP ID字段,被用來以與上述TCP時間戳選項類似的方式來消除二義性。發(fā)送器安排該分組的最初的和重傳輸形式的的ID字段值,以使在IP首部中具有不同的ID字段。在接收器或者其中代理裝置接收到數(shù)據(jù)分組時,接收器將ACK分組的ID字段設(shè)置為觸發(fā)ACK的分組的ID字段的函數(shù)。由于該方法不需要附加的數(shù)據(jù)發(fā)送,保持網(wǎng)絡(luò)和TCP首部空間的有效性,所以該方法是有益的。所選擇的功能應(yīng)該提供消除二義性的高度可能性。在優(yōu)選實施例中,發(fā)送器選擇具有最高有效位設(shè)置為0的IP ID值。當接收器響應(yīng)時,IP ID值被設(shè)置為具有最高有效位設(shè)為1的同樣的IP ID值。
0131在另一個實施例中,和非模糊性確認相關(guān)聯(lián)的傳輸號碼被用來消除不確定確認的二義性。該技術(shù)基于的原理是由于該兩個分組在時間上更接近地傳輸,則對于兩個分組的確認將傾向于時間上更4妄近地接收。由于對于這樣的分組所接收的確認不能輕易地與傳輸號碼相關(guān)聯(lián),所以沒有重傳輸?shù)姆纸M不會導致不確定性。因此,對于在時間上接近于已知確認的多接收的不確定確認,比較這些已知的傳輸號碼和可能的傳輸號碼。發(fā)送器將不確定確認的傳輸號碼和最近已知的所接收的傳輸號碼相比較,選擇對于已知的所接收的傳輸號碼最接近的一個。例如,如果接收到數(shù)據(jù)分組1的確認并且最后所接收的確認是用于數(shù)據(jù)分組5,發(fā)送器通過假設(shè)數(shù)據(jù)分組1的第三實例所導致的確認來解析該不確定性。
選擇性確i人
0132設(shè)備200或者流控制器220的另 一個技術(shù)是實現(xiàn)傳輸控制協(xié)議選擇勝確認或者TCP SACK的實施例來確定哪些分組已經(jīng)接收到或者沒有接收到。該技術(shù)允許發(fā)送器明確確定已經(jīng)由接收器接收的一分組列表以及沒有接收到的一精確分組列表??梢酝ㄟ^#^文發(fā)送器和/或接收器或者通過將發(fā)送器和接收器側(cè)流控制模塊220插入到發(fā)送器和接收器之間的網(wǎng)絡(luò)路徑中來實現(xiàn)該功能。參考圖1A或者圖1B,例如客戶機102的發(fā)送器被配置為通過網(wǎng)絡(luò)104將數(shù)據(jù)分組傳輸?shù)嚼绶?wù)器106的接收器。作為響應(yīng),接收器將稱之為SACK分組的TCP選擇勝確認選項返回給發(fā)送器。在一個實施例中,盡管此處為了簡便僅討論一個方向的通信,但是該通信是雙向的。接收器保持一個列表或者其它適合的數(shù)據(jù)結(jié)構(gòu),包含用于接收器已經(jīng)實際接收到的數(shù)據(jù)分組的序列號的一組范圍。在一些實 施例中,該列表根據(jù)序列號以升序或者降序排列。接收器還保持放棄
(left-off)的指針,其包括對列表的引用并且指示從之前產(chǎn)生的SACK 分組的;^文棄點。
0133當接收到數(shù)據(jù)分組時,接收器產(chǎn)生SACK分組并將其傳輸回到 發(fā)送器。在一些實施例中,SACK分組包括多個字段,每個字段可以保持 序列號的范圍來指示一組已接收的數(shù)據(jù)分組。接收器使用包括觸發(fā)SACK 分組的登陸(landing)分組的序列號的范圍來填充SACK分組的該第一 字段。剩余可用的SACK字段使用來自所接收分組的列表的序列號的范圍 填充。由于列表中的范圍多于可以被載入SACK分組的,則接收器使用放 棄指針來確定哪個范圍被載入SACK分組。接收器從分類的列表連續(xù)插入 SACK范圍,從指針索引的范圍開始并且在列表持續(xù)向下,直到消耗完SACK 分組的TCP首部中的可用SACK范圍空間。如果到達末端,則接收器環(huán)繞 到列表的開始。在一些實施例中,兩個或者三個附加的SACK范圍可以被 增加到SACK范圍信息。
0134
一旦接收器產(chǎn)生SACK分組,則接收器將確認發(fā)送回發(fā)送器。 接收器隨后在列表中將放棄指針前進一個或者多個SACK范圍項。例如, 如果接收器插入四個SACK范圍,則放棄指針可以在列表中被推進兩個 SACK范圍。當所推進的放棄指針達到列表的末端,則指針被重置為列表 的開始,有效地圍繞已知所接收范圍的列表。將該列表圍繞使得系統(tǒng)可 以執(zhí)行得好,甚至在SACK分組大的損失的情況下,這是由于一旦列表被
0135因此可以理解,SACK分組可以通信關(guān)于接收器的情況的多個 細節(jié)。第一,SACK分組指示在SACK分組產(chǎn)生時接收器已經(jīng)接收該SACK 信息的第一字段中的數(shù)據(jù)分組。其次,SACK信息的第二和隨后的字段指 示接收器已經(jīng)接收這些范圍中的數(shù)據(jù)分組。SACK信息還暗示接收器在 SACK分組的產(chǎn)生時沒有接收落入SACK信息的第二和隨后的字段之間的任 意一個數(shù)據(jù)分組。本質(zhì)上,SACk信息中的第二和隨后的范圍之間的范圍 是所接收數(shù)據(jù)中的"孔,,,其中已知的未被遞送的數(shù)據(jù)。從而,使用該方 法,當SACK分組具有足夠空間來包括多于兩個的SACK范圍,接收器可以向發(fā)送器指示還沒有由接收器接收的數(shù)據(jù)分組的范圍。
0136在另一個實施例中,發(fā)送器使用之上描述的SACK分組結(jié)合上 述重傳輸技術(shù)來假設(shè)數(shù)據(jù)分組已經(jīng)被遞送到接收器。例如,當重傳輸算 法(使用傳輸號碼)宣告分組丟失,則發(fā)送器認為該分組僅是條件性丟 失,有可能識別該分組接收的SACK分組丟失,而不是數(shù)據(jù)分組本身丟失。 發(fā)送器因此將該分組增加到潛在丟失的分組的列表,稱之為假定丟失的 列表。每當SACK分組到達,來SACK分組的數(shù)據(jù)的已知丟失范圍和假定 丟失列表中的分組相比較。包括已知丟失的數(shù)據(jù)的分組被宣告實際丟失 并且被隨后重傳輸。以此方式,組合這兩個方案來給予發(fā)送器關(guān)于分組 已經(jīng)丟失并且需要重傳輸?shù)母玫男畔ⅰ?br> 事務(wù)邊界一企測
0137在一些實施例中,設(shè)備200或者流控制器220應(yīng)用稱之為事 務(wù)邊界檢測的技術(shù)。在一個實施例中,該技術(shù)適合于乒乓(ping-pong) 表現(xiàn)的連接。在TCP層,乒乓行為是當一個通信器例如發(fā)送器發(fā)送數(shù)據(jù) 并且隨后等待來自另 一個通信器例如接收器的響應(yīng)。乒乓行為的例子包 括遠程程序調(diào)用、HTTP和其他。以上描述的算法使用重傳輸超時來恢復 和事務(wù)相關(guān)的最后的分組的丟失。由于在一些實施例中TCP RTO機制極 端粗略,例如在所有情況中要求最d、一秒的值,差的應(yīng)用行為在這些情 況中可以看到。
0138在一個實施例中,數(shù)據(jù)的發(fā)送器或者耦合到發(fā)送器的流控制 模塊220檢測所發(fā)送數(shù)據(jù)中的事務(wù)邊界。在檢測到事務(wù)邊界時,發(fā)送器 或者流控制模塊220發(fā)送附加的分組,其接收產(chǎn)生來自于接收器的附加 的ACK或者SACK響應(yīng)。附加分組的插入優(yōu)選地限制到改進的應(yīng)用響應(yīng)時 間和網(wǎng)絡(luò)能力利用之間的平衡。所插入的附加分組的數(shù)量可以根據(jù)和該 連接相關(guān)的當前損失率來選擇,對于越高損失率的連接選擇更多的分組。
0139檢測事務(wù)邊界的一個方法是基于時間的。如果發(fā)送器已經(jīng)發(fā) 送數(shù)據(jù)并且停止,則在一段時間之后發(fā)送器或者流控制模塊200宣告事 務(wù)邊界。這可以和其他技術(shù)相組合。例如,通過發(fā)送器在TCP首部中設(shè) 置PSH (TCP進棧)位可以指示事務(wù)邊界。隨之,將基于時間的方法和這些附加的試探方法相組合可以提供對于事務(wù)邊界的更精確的檢測。在另
一個技術(shù)中,如果發(fā)送器或者流控制模塊220理解應(yīng)用協(xié)議,其可以解 析協(xié)議數(shù)據(jù)流并且直接確定事務(wù)邊界。在一些實施例中,可以獨立于任 一基于時間的機制使用此最后的行為。
0140響應(yīng)于檢測事務(wù)邊界,發(fā)送器或者流控制模塊220將附加的 數(shù)據(jù)分組傳輸?shù)浇邮掌鱽韽钠湟l(fā)確認。從而附加數(shù)據(jù)分組應(yīng)該使得接 收器將響應(yīng)于接收數(shù)據(jù)分組來至少產(chǎn)生ACK或者SACK。在一個實施例中, 簡單地重傳輸事務(wù)的最后一個或者多個分組。相比于僅發(fā)送啞元數(shù)據(jù)分 組,如果最后一個或者多個分組已經(jīng)丟失,這就具有重傳輸所需數(shù)據(jù)的 增加的益處。在另一個實施例中,發(fā)送最后一個或者多個分組的片段, 允許發(fā)送器來消除來自于他們最初分組的這些分組到來的二義性。允許 接收器來避免錯誤的搞亂任一重新排序自適應(yīng)算法。在另 一個實施例中, 任意數(shù)量的公知的前向糾錯技術(shù)可被用來產(chǎn)生附加的數(shù)據(jù)用于插入的分 組,允許重新構(gòu)造接收器處丟失的或者以其他方式失敗的數(shù)據(jù)。
0141在一些實施例中,當事務(wù)中的最后一個分組的確認丟失時, 此處描述的邊界檢測技術(shù)有助于避免超時。當發(fā)送器或者流控制模塊220 接收用于這些附加數(shù)據(jù)分組的確認時,發(fā)送器可以從這些附加確認來確 定是否最后一個分組已經(jīng)接收或者需要重發(fā)送,從而避免超時。在一個 實施例中,如果最后的分組已經(jīng)接收到但是它們的確認丟失,則流控制 模塊220產(chǎn)生用于該數(shù)據(jù)分組的確認,并且將確認發(fā)送給發(fā)送器,從而 告知發(fā)送器數(shù)據(jù)分組已經(jīng)遞送。在另一個實施例中,如果最后的lt據(jù)分 組還沒有接收到,則流控制模塊220發(fā)送一個分組給發(fā)送器來引發(fā)發(fā)送 來重發(fā)送丟失的數(shù)據(jù)分組。
重新分包
0142在又一個實施例中,設(shè)備200或者流控制器220應(yīng)用重新分 組技術(shù)來改進傳輸層網(wǎng)絡(luò)業(yè)務(wù)量的流。在一些實施例中,TCP的性能和分 組大小成比例。因此增加分組大小能改進性能,除非其引發(fā)實質(zhì)的增加 的分組損失率或者其他的非線性效應(yīng),例如IP分片(fragmentation )。 通常,有線介質(zhì)(諸如銅纜或者光纖)具有極低的誤碼率,低到可以忽略不計。對于這些介質(zhì),在分片發(fā)生之前,最大化分組大小可以是有益 的(通過基本傳輸介質(zhì)的協(xié)議來限制最大化分組大小)。但是對于具有較
高損失率的傳輸介質(zhì)(例如,諸如WiFi等的無線技術(shù)或者諸如配電線網(wǎng)
絡(luò)等的高損環(huán)境),由于介質(zhì)引發(fā)的錯誤導致整個分組丟失(即,介質(zhì)引 發(fā)的錯誤超過對于該介質(zhì)的標準糾錯碼的能力),增加了分組丟失率,從 而增加分組大小可以導致較低傳輸率。分組損失率中的顯著大的增加實
際上否定了增加的分組大小的任一性能益處。在一些情況中,對于TCP 端點來選擇最優(yōu)的分組大小可能是困難的。例如,最優(yōu)的分組大小根據(jù) 每個鏈路的性質(zhì)在通過傳輸路徑時改變。
0143通過將設(shè)備200或者流控制模塊220插入到傳輸路徑中,流 控制器220監(jiān)控鏈路的特征并且根據(jù)所確定的鏈路特征重新分組。在一 個實施例中,設(shè)備200或者流控制器220將具有連續(xù)數(shù)據(jù)的分組重新分 組為較小數(shù)量的較大的分組。在另一個實施例中,設(shè)備200或者流控制 器220通過一列大的分組的部分分為大量的較小的分組而將分組重新分 組。在其他實施例中,設(shè)備200或者流控制器220監(jiān)控鏈路特征并且通 過重新組合來調(diào)整分組大小以改進吞吐量。
QoS
0144仍舊參考圖2A,在一些實施例中,流控制器220可以包括QoS 引擎236,也稱為QoS控制器。在另一個實施例中,例如設(shè)備200和/或 網(wǎng)絡(luò)優(yōu)化引擎250包括單獨的但與流控制器220通信的QoS引擎236。QoS 引擎236包括用于執(zhí)行一個或者多個服務(wù)質(zhì)量(QoS)技術(shù)改進任一網(wǎng)絡(luò) 連接的性能、操作或者服務(wù)質(zhì)量的任意邏輯、商業(yè)規(guī)則、功能或者操作。 在一些實施例中,QoS引擎236包括為不同用戶、應(yīng)用、凄t據(jù)流或者連接 提供不同特性的網(wǎng)絡(luò)業(yè)務(wù)量控制和管理機制。在其他實施例中,QoS引擎 236為用戶、應(yīng)用、數(shù)據(jù)流或者連接控制、維持或者確保特定水平的性能。 在一個實施例中,QoS引擎236為用戶、應(yīng)用、數(shù)據(jù)流或者連接控制、維 持或者確保特定部分的帶寬或者網(wǎng)絡(luò)容量。在一些實施例中,QoS引擎 236監(jiān)控性能的實現(xiàn)水平或者對應(yīng)于用戶、應(yīng)用、數(shù)據(jù)流或者連接的服務(wù) 質(zhì)量,例如數(shù)據(jù)率和延遲。響應(yīng)于監(jiān)控,QoS引擎236動態(tài)地控制或者調(diào)整網(wǎng)絡(luò)分組的調(diào)度特性來實現(xiàn)期望水平的性能或者服務(wù)質(zhì)量。
0145在一些實施例中,QoS引擎236根據(jù)一個或者多個服務(wù)的等級 或者水平來優(yōu)先排序、調(diào)度和傳輸網(wǎng)絡(luò)分組。在一些實施例中,服務(wù)的 等級或者水平可以包括l)最好的努力,2)控制的負載,3)擔?;蛘?4)性質(zhì)。對于服務(wù)的最好結(jié)果等級,設(shè)備200作出合理的努力來遞送分 組(標準服務(wù)水平)。對于服務(wù)的控制的負載等級,設(shè)備200或者QoS引 擎236逼近傳輸介質(zhì)的標準的分組錯誤損失或者逼近小負載網(wǎng)絡(luò)條件中 的最好努力的服務(wù)的行為。對于服務(wù)的擔保等級,設(shè)備200或者QoS引 擎236保證該能力來在連接期間以確定速率傳輸數(shù)據(jù)。對于服務(wù)的性質(zhì) 等級,設(shè)備200或者QoS引擎236使用性質(zhì)服務(wù)等級用于請求或者期望 優(yōu)先排序的業(yè)務(wù)量但不能保證資源需求或者服務(wù)水平的應(yīng)用、用戶、數(shù) 據(jù)流或者連接。在這些情況中,設(shè)備200或者QoS引擎236基于QoS引 擎236的任意邏輯或者配置或者基于商業(yè)規(guī)則或者策略來確定服務(wù)等級 或者優(yōu)先級。例如,在一個實施例中,QoS引擎236根據(jù)策略引擎295、 295,執(zhí)行的一個或者多個策略來優(yōu)先排序、調(diào)度和傳輸網(wǎng)絡(luò)分組。
協(xié)議力口速
0146協(xié)議加速器234包括用于優(yōu)化、加速或者以其他方式改進一 個或者多個協(xié)議的性能、操作或者服務(wù)質(zhì)量的任意邏輯、商業(yè)規(guī)則、功 能或者操作。在一個實施例中,協(xié)議加速器234在網(wǎng)絡(luò)堆棧的層5-7處 加速任意應(yīng)用層協(xié)議。在其他實施例中,協(xié)議加速器234加速傳輸層或 者層4協(xié)議。在一個實施例中,協(xié)議加速器234加速層2或者層3的協(xié) 議。協(xié)議加速器234被配置、構(gòu)建或者設(shè)計來根據(jù)數(shù)據(jù)類型、協(xié)議的特 征和/或行為來優(yōu)化或者加速一個或者多個協(xié)議的每一個。在另一個實施 例中,協(xié)議加速器234被配置、構(gòu)建或者設(shè)計來改進用戶體驗、響應(yīng)時 間、網(wǎng)絡(luò)或者計算機負載和/或關(guān)于協(xié)議的網(wǎng)絡(luò)或者帶寬利用。
0M7在一個實施例中,協(xié)議加速器234被配置、構(gòu)建或者設(shè)計來 最小化文件系統(tǒng)訪問上的WAN等待時間的效應(yīng)。在一些實施例中,協(xié)議 加速器234優(yōu)化或者加速CIFS (公共因特網(wǎng)文件系統(tǒng))協(xié)議的使用來改 進文件系統(tǒng)訪問時間或者對凄t據(jù)和文件的訪問時間。在一些實施例中,協(xié)議加速器234優(yōu)化或者加速NFS (網(wǎng)絡(luò)文件系統(tǒng))協(xié)議的使用。在另一 個實施例中,協(xié)議加速器234優(yōu)化或者加速文件傳輸協(xié)議(FTP )的使用。0148在一個實施例中,協(xié)議加速器234被配置、構(gòu)建或者設(shè)計來 優(yōu)化或者加速承載凈荷或者使用任一類型和形式標記語言的協(xié)議。在其 他實施例中,協(xié)議加速器234被配置、構(gòu)建或者設(shè)計為優(yōu)化或者加速超 文本傳輸協(xié)議(HTTP )。在另一個實施例中,協(xié)議加速器234被配置、構(gòu) 建或者設(shè)計為來優(yōu)化或者加速承載凈荷或者以其他方式使用XML(可擴展 標記語言)的協(xié)i義。
透明并且多點布置配置
0149在一些實施例中,i殳備200和/或網(wǎng)絡(luò)優(yōu)化引擎250對于通過 諸如WAN鏈路的網(wǎng)絡(luò)連接或鏈路的任意數(shù)據(jù)流是透明的。在一個實施例 中,設(shè)備200和/或網(wǎng)絡(luò)設(shè)備250以此方式操作通過WAN的數(shù)據(jù)流是由 任意網(wǎng)絡(luò)監(jiān)控、QoS管理或者網(wǎng)絡(luò)分析工具可識別的。在一些實施例中, 設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250不產(chǎn)生任意隧道或者流用于傳輸可以隱 藏、混淆或者以其他方式是網(wǎng)絡(luò)業(yè)務(wù)量不透明的數(shù)據(jù)。在其他實施例中, 設(shè)備200透明操作,其中設(shè)備不改變網(wǎng)絡(luò)分組的任一源和/或目標地址信 息或者端口信息,諸如互聯(lián)網(wǎng)協(xié)議地址或者端口號。在其他實施例中, 設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250被認為對于網(wǎng)絡(luò)架構(gòu)中的網(wǎng)絡(luò)、應(yīng)用、 客戶機、服務(wù)器或者其他設(shè)備或者計算裝置透明地操作或者運轉(zhuǎn)。也就 是在一些實施例中,設(shè)備是透明的,其中網(wǎng)絡(luò)上的任意裝置或者設(shè)備的 網(wǎng)絡(luò)相關(guān)配置不必修改來支持設(shè)備200。
0150設(shè)備200可以以下面的布置配置方式來布置1)串行業(yè)務(wù)量, 2)代理模式,3)虛擬串行模式。在一些實施例中,設(shè)備200可以與以 下的一個或者多個串行布置路由器、客戶機、服務(wù)器或者另一個網(wǎng)絡(luò) 裝置或者設(shè)備。在其他實施例中,設(shè)備200可以與以下的一個或者多個 并行布置路由器、客戶機、服務(wù)器或者另一個網(wǎng)絡(luò)裝置或者設(shè)備。在 并行布置中,客戶機、服務(wù)器、路由器或者其它網(wǎng)絡(luò)設(shè)備可以被配置為 轉(zhuǎn)發(fā)、傳送或者傳輸?shù)皆O(shè)備200或者經(jīng)由設(shè)備200。
0151在串行的實施例中,設(shè)備2 0 0與路由器的WAN鏈路串行布置。以此方式,來自WAN的所有業(yè)務(wù)量在到達LAN的目標之前傳遞通過設(shè)備。
0152在代理模式的實施例中,設(shè)備200被布置為客戶機和服務(wù)器
之間的代理裝置。在一些實施例中,設(shè)備200允許客戶機做出到網(wǎng)絡(luò)上
的資源的間接連接。例如,客戶機經(jīng)由設(shè)備200連接到資源,并且設(shè)備
通過連接到資源、不同的資源、或者通過從高速緩存服務(wù)該資源來提供
資源。在一些情況中,設(shè)備可以對于不同的目的來改變客戶機請求或者
服務(wù)器響應(yīng),諸如對于此處討論的任一優(yōu)化技術(shù)。在一個實施例中,客
戶機102發(fā)送尋址到代理的請求。在一個情況中,代理響應(yīng)于客戶機來
代替或者充當服務(wù)器106。在其他實施例中,設(shè)備200通過將請求和響應(yīng)
攔截并透明地轉(zhuǎn)發(fā)到客戶機和/或服務(wù)器,用作為透明代理。不使用客戶
機側(cè)配置,設(shè)備200可以將客戶機請求重定向到不同的服務(wù)器或者網(wǎng)絡(luò)。
在一些實施例中,設(shè)備200可以在穿越設(shè)備的任一網(wǎng)絡(luò)業(yè)務(wù)量上執(zhí)行任
一類型和形式的網(wǎng)絡(luò)地址轉(zhuǎn)換,稱之為NAT。
0153在一些實施例中,設(shè)備200以虛擬串行模式配置來布置。在
此實施例中,具有路由或者轉(zhuǎn)換功能的路由器或者網(wǎng)絡(luò)裝置被配置為轉(zhuǎn)
發(fā)、路由或者去以其他方式提供發(fā)往網(wǎng)絡(luò)或者設(shè)備200的網(wǎng)絡(luò)分組。設(shè)
備200隨后在網(wǎng)絡(luò)分組上執(zhí)行任一期望的處理,諸如此處討論的任一 WAN
優(yōu)化技術(shù)。當完成處理時,設(shè)備200將處理的網(wǎng)絡(luò)分組阻轉(zhuǎn)發(fā)到路由器
以發(fā)送到網(wǎng)絡(luò)上的目的地。以此方式,設(shè)備200可以并行耦合到路由器,
但是仍舊如同設(shè)備200串行一樣操作。因為分組經(jīng)由設(shè)備通過網(wǎng)絡(luò)處理
和傳輸,則該布置模式還透明地提供所保持的源和目標地址以及端口信 臺
端點節(jié)點布置
0154盡管網(wǎng)絡(luò)優(yōu)化引擎250以上總的結(jié)合設(shè)備200描述,但是網(wǎng) 絡(luò)優(yōu)化引擎250或者其任意部分可以被布置、分布或者以其他方式操作 在諸如客戶機102和/或服務(wù)器106的任一端節(jié)點上。由此,客戶機或者 服務(wù)器可以提供此處描述的結(jié)合一個或更多設(shè)備200或者不結(jié)合設(shè)備200 的網(wǎng)絡(luò)優(yōu)化引擎250的任一 系統(tǒng)和方法。
0155現(xiàn)在參考圖2B,描述布置在一個或者多個端節(jié)點的網(wǎng)絡(luò)優(yōu)化引擎250的示例實施例。總的來說,客戶機102可以包括第一網(wǎng)絡(luò)優(yōu)化引擎250,并且服務(wù)器106可以包括第二網(wǎng)絡(luò)優(yōu)化引擎250,,。客戶機102和服務(wù)器106可以建立傳輸層連接并且交換穿越或者不穿越設(shè)備200的通信。
0156在一個實施例中,客戶機102的網(wǎng)絡(luò)優(yōu)化引擎250'執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或者以其他方式改進與服務(wù)器106通信的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或者服務(wù)質(zhì)量。在另一個實施例中,服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250,'執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或者以其他方式改進與客戶機102通信的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或者服務(wù)質(zhì)量。在一些實施例中,客戶機102的網(wǎng)絡(luò)優(yōu)化引擎250, 和服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250',執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或者以其他方式改進在客戶機102與服務(wù)器106之間通信的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或者服務(wù)質(zhì)量。在又一個實施例中,客戶機102的網(wǎng)絡(luò)優(yōu)化引擎250,結(jié)合設(shè)備200執(zhí)行此處描述的^支術(shù)來優(yōu)化、加速或者以其他方式改進與客戶機102通信的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或者服務(wù)質(zhì)量。仍在另一個實施例中,服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250,,結(jié)合設(shè)備200執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或者以其他方式改進與服務(wù)器106通信的網(wǎng)絡(luò)業(yè)務(wù)量的性能、操作或者服務(wù)質(zhì)量。
C.客戶機代理
0157如圖2A和2B所示,部署在系統(tǒng)中或者具有設(shè)備200或者205的客戶機可以包括客戶機代理120。在一個實施例中,客戶機代理120被用來促進與一個或者多個設(shè)備200或者205的通信。在一些實施例中,此處描述的設(shè)備200或者205的任意系統(tǒng)和方法可以經(jīng)由客戶機代理120部署、實施或者包含在客戶機中。在其他實施例中,客戶機代理120可以包括提供諸如端點檢測和驗證、虛擬專用網(wǎng)絡(luò)連接和應(yīng)用流式傳輸?shù)母郊庸δ苄缘膽?yīng)用、程序或者代理。在討論設(shè)備200的系統(tǒng)和方法的其它實施例之前,將描述客戶機代理120的實施例。
0158現(xiàn)在參考圖3,描述了客戶機代理12Q的一個實施例??蛻魴C102包括用于經(jīng)由網(wǎng)絡(luò)104與設(shè)備200、設(shè)備205和/或服務(wù)器106建立、交換、管理或者控制通信的客戶機代理120。在一些實施例中,也被稱為
WAN代理的客戶機代理120加速WAN網(wǎng)絡(luò)通信和/或被用來經(jīng)由網(wǎng)絡(luò)上的設(shè)備200進行通信。簡單概述,客戶機102在計算裝置100上操作,所述計算裝置100具有帶有內(nèi)核模式302和用戶模式303的操作系統(tǒng)以及帶有一個或多個層310a-310b的網(wǎng)絡(luò)堆棧267??蛻魴C102已經(jīng)安裝和/或拍^亍一個或多個應(yīng)用。在一些實施例中, 一個或多個應(yīng)用可以經(jīng)由網(wǎng)絡(luò)堆棧267通信到網(wǎng)絡(luò)104。諸如web瀏覽器的一個應(yīng)用還可以包括第一程序322。例如,第一程序322可以被用于在一些實施例中安裝和/或執(zhí)行客戶機代理120或者其任意部分??蛻魴C代理120包括用于從一個或多個應(yīng)用中攔截來自于網(wǎng)絡(luò)堆棧267的網(wǎng)絡(luò)通信的攔截機制或攔截器350。
0159如同設(shè)備200 —樣,客戶機具有包括任意類型和形式的軟件、硬件或者其任一組合的網(wǎng)絡(luò)堆棧267來提供與網(wǎng)絡(luò)104的連接性以及與網(wǎng)絡(luò)104的通信。客戶機102的網(wǎng)絡(luò)堆棧267包括以上結(jié)合設(shè)備200描述的任一網(wǎng)絡(luò)堆棧實施例。在一些實施例中,客戶機代理120或者其任一部分被設(shè)計和構(gòu)建為和網(wǎng)絡(luò)堆棧267 —起操作或者結(jié)合工作,網(wǎng)絡(luò)堆棧267是由客戶機102的操作系統(tǒng)安裝或者以其他方式提供的。
0160在進一步的細節(jié)中,客戶機102或者設(shè)備200 (或者205 )的網(wǎng)絡(luò)堆棧267可以包括用于接收、獲取、提供或者以其他方式訪問與客戶機102的網(wǎng)絡(luò)通信相關(guān)聯(lián)的任意信息和數(shù)據(jù)的任意類型和形式的接口 。在一個實施例中,到網(wǎng)絡(luò)堆棧267的接口包括應(yīng)用編程接口 (API)。該接口還可以包括任意函數(shù)調(diào)用、掛鉤或過濾機制、事件或回叫機制、或任意類型的連接技術(shù)。網(wǎng)絡(luò)堆棧267經(jīng)由接口可以接收或提供諸如對象的與網(wǎng)絡(luò)堆棧267的功能或操作相關(guān)的任意類型和形式的數(shù)據(jù)結(jié)構(gòu)。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡(luò)分組相關(guān)的信息和數(shù)據(jù)或者一個或多個網(wǎng)絡(luò)分組。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)包括、參考或者識別諸如傳輸層的網(wǎng)絡(luò)分組的在網(wǎng)絡(luò)堆棧267的協(xié)議層處理的網(wǎng)絡(luò)分組的一部分。在一些實施例中',數(shù)據(jù)結(jié)構(gòu)325是內(nèi)核級數(shù)據(jù)結(jié)構(gòu),而在其它實施例中,數(shù)據(jù)結(jié)構(gòu)325是用戶模式數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括獲得的或與在內(nèi)核模式302中操作的網(wǎng)絡(luò)堆棧267的一部分相關(guān)的數(shù)據(jù)結(jié)構(gòu)、或者運行在內(nèi)核模式302中的網(wǎng)絡(luò)驅(qū)動程序或其它軟件、或者由運行或操作在 操作系統(tǒng)的內(nèi)核模式中的服務(wù)、進程、任務(wù)、線程或其它可執(zhí)行指令獲 得或收到的任意數(shù)據(jù)結(jié)構(gòu)。
0161另外,例如數(shù)據(jù)鏈路或網(wǎng)絡(luò)層的網(wǎng)絡(luò)堆棧267的一些部分可 以在內(nèi)核模式302中執(zhí)行或操作,而諸如網(wǎng)絡(luò)堆棧267的應(yīng)用層的其它 部分執(zhí)行或操作在用戶模式303中。例如,網(wǎng)絡(luò)堆棧的第一部分310a可 以給應(yīng)用提供對網(wǎng)絡(luò)堆棧267的用戶模式訪問,而網(wǎng)絡(luò)堆棧267的第二 部分31 Oa提供對網(wǎng)絡(luò)的訪問。在一些實施例中,網(wǎng)絡(luò)堆棧的第 一部分31 Oa 可以包括諸如層5-7中的任意一個的網(wǎng)絡(luò)堆棧267的一個或多個較上的 層。在其它實施例中,網(wǎng)絡(luò)堆棧267的第二部分310b包括諸如層1-4中 的任意一個這樣的一個或多個較低的層。網(wǎng)絡(luò)堆棧267的第一部分310a 和第二部分310b中的每一個可以在任意一個或多個網(wǎng)絡(luò)層處、在用戶模 式203、內(nèi)核模式202或其組合中、或者在網(wǎng)絡(luò)層的任意部分或網(wǎng)絡(luò)層的 接口點或用戶模式302和內(nèi)核模式203的任意部分或接口點處,包括網(wǎng) 絡(luò)堆棧267的任意部分。
0162攔截器350可以包括軟件、硬件或軟件和硬件的任意組合。 在一個實施例中,攔截器350在網(wǎng)絡(luò)堆棧267中的任一點攔截或者以其 他方式接收網(wǎng)絡(luò)通信,并且將所述網(wǎng)絡(luò)通信重定向或發(fā)送到^L攔截器350 或客戶機代理120所期望、管理或控制的目的地。例如,攔截器350可 以攔截第 一 網(wǎng)絡(luò)的網(wǎng)絡(luò)堆棧2 6 7的網(wǎng)絡(luò)通信并發(fā)送該網(wǎng)絡(luò)通信給設(shè)備2 0 0 以用于在第二網(wǎng)絡(luò)104上的傳輸。在一些實施例中,攔截器350包括或 者是驅(qū)動器,諸如被構(gòu)造和設(shè)計為與網(wǎng)絡(luò)堆棧267接口和工作的網(wǎng)絡(luò)驅(qū) 動器。在一些實施例中,客戶機代理120和/或攔截器350在諸如傳輸層 處的網(wǎng)絡(luò)堆棧267的一個或多個層處操作。在一個實施例中,攔截器350 包括過濾器驅(qū)動程序、掛鉤機制或任意格式和類型的適當?shù)木W(wǎng)絡(luò)驅(qū)動程 序接口,所述接口例如經(jīng)由傳輸驅(qū)動程序接口 (TDI )來接口于網(wǎng)絡(luò)堆棧 的傳輸層。在一些實施例中,攔截器350接口到諸如傳輸層的第一協(xié)議 層以及諸如傳輸協(xié)議層之上的任意層的例如應(yīng)用協(xié)議層的另 一個協(xié)議 層。在一個實施例中,攔截器350可以包括遵照網(wǎng)絡(luò)驅(qū)動程序接口規(guī)范 (NDIS)的驅(qū)動程序或NDIS驅(qū)動程序。在另一個實施例中,攔截器350可以是小過濾器(min-nUer)或迷你端口 (mini-port)驅(qū)動程序。在 一個實施例中,攔截器350或者其一部分操作于內(nèi)核模式202中。在另 一個實施例中,攔截器350或者其一部分操作于用戶模式203中。在一 些實施例中,攔截器35G的一部分操作于內(nèi)核模式202中,而攔截器350 的另一部分操作于用戶才莫式203中。在其它實施例中,客戶機代理120 操作于用戶模式203中,但經(jīng)由攔截器350連接到內(nèi)核模式驅(qū)動程序、 進程、服務(wù)、任務(wù)或一部分操作系統(tǒng),以便獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)225。在 進一步的實施例中,攔截器350是諸如應(yīng)用的用戶^^式應(yīng)用或程序。
0163在一個實施例中,攔截器350攔截或者接收任意的傳輸層連 接請求。在這些實施例中,攔截器350執(zhí)行傳輸層應(yīng)用編程接口 (API) 調(diào)用以對于該位置設(shè)置目的地信息,諸如所期望的位置的目的地IP地址 和/或端口。以此方式,攔截器350攔截并重定向傳輸層連接到由攔截器 350或客戶機代理120控制或管理的IP地址和端口。在一個實施例中, 攔截器3 5 0為到客戶機10 2的本地IP地址和端口的連接設(shè)置目的地信息, 客戶機代理120在客戶機102的本地IP地址和端口上進行監(jiān)聽。例如, 客戶機代理120可以包括在用于重定向的傳輸層通信的本地IP地址和端 口上監(jiān)聽的代理服務(wù)。在一些實施例中,客戶機代理120隨后傳達重定 向的傳輸層通信到設(shè)備200。
0164在一些實施例中,攔截器350攔截域名服務(wù)(DNS)請求。在 一個實施例中,客戶機代理120和/或攔截器350解析DNS請求。在另一 實施例中,攔截器發(fā)送被攔截的DNS請求到設(shè)備200以用于DNS解析。 在一個實施例中,i殳備200解析DNS請求并通信DNS響應(yīng)給客戶機代理 120。在一些實施例中,設(shè)備200解析經(jīng)由另一設(shè)備200'或DNS服務(wù)器 106的DNS請求。
0165在又一個實施例中,客戶機代理120可以包括兩個代理120 和12(K。在一個實施例中,第一代理120可以包括操作于網(wǎng)絡(luò)堆棧267 的網(wǎng)絡(luò)層的攔截器350。在一些實施例中,第一代理120攔截諸如因特網(wǎng) 控制消息協(xié)議(ICMP)請求(例如,查驗和跟蹤路由)的網(wǎng)絡(luò)層請求。 在其它實施例中,第二代理120'可以在傳輸層操作并攔截傳輸層通信。 在一些實施例中,第一代理120攔截在網(wǎng)絡(luò)堆棧210的一層處的通信,并與第二代理120'連接或通信被攔截的通信到第二代理12(T 。
0166客戶機代理120和/或攔截器350可以以相對于網(wǎng)絡(luò)堆棧267 的任意其它協(xié)議層透明的方式操作于協(xié)議層處或與協(xié)議層連接。例如, 在一個實施例中,攔截器350以相對于諸如網(wǎng)絡(luò)層的傳輸層之下的任意 協(xié)議層以及諸如會話、表示或應(yīng)用層協(xié)議的傳輸層之上的任意協(xié)議層透 明地來操作網(wǎng)絡(luò)堆棧267的傳輸層或與其連接。這允許網(wǎng)絡(luò)堆棧267的 其它協(xié)議層按意愿地操作而不用修改來使用攔截器350。因而,客戶機代 理120和/或攔截器350可以與傳輸層交互或者在其上操作以保護、優(yōu)化、 加速、路由或負載平衡經(jīng)由諸如TCP/IP之上的任意應(yīng)用層協(xié)議的通過傳 輸層攜帶的任意協(xié)議提供的任意通信。
0167進一步地,客戶片幾代理120和/或攔截器350可以以相對于任 意應(yīng)用、客戶機102的用戶以及諸如與客戶機102通信的服務(wù)器的任意 其它計算裝置100透明的方式來梯:作于網(wǎng)絡(luò)堆棧267處或與網(wǎng)絡(luò)堆棧267 連接??蛻魴C代理120或者其任一部分可以以一定方式安裝和/或執(zhí)行于 客戶機102上而不修改應(yīng)用??蛻魴C代理120或者其任一部分可以以對 于客戶機102、設(shè)備200、 205或者服務(wù)器106的任意網(wǎng)絡(luò)配置透明的方 式安裝和/或執(zhí)行。客戶機代理120或者其任一部分可以以一定方式安裝 和/或執(zhí)行而不修改客戶機102、設(shè)備200、 205或者服務(wù)器106的任意網(wǎng) 絡(luò)配置。在一個實施例中,客戶機102或與客戶^L 102通信的計算裝置 的用戶不知道客戶機代理120或其任一部分的存在、執(zhí)行或操作。因而, 在一些實施例中,相對于應(yīng)用、客戶機102的用戶、客戶機102、諸如服 務(wù)器或者設(shè)備200、 205的另一個計算裝置、或者在由攔截器350聯(lián)接的 協(xié)議層之上和/或之下的任意協(xié)議層透明地來安裝、執(zhí)行和/或操作客戶 機代理120和/或攔截器350。
0168客戶機代理120包括流客戶機306、收集代理304、 SSL VPN 代理308、網(wǎng)絡(luò)優(yōu)化引擎250和/加速程序302。在一個實施例中,客戶 機代理120是由位于Fort Lauderdale, Florida的Citrix Syestems公 司開發(fā)的獨立計算架構(gòu)(ICA)客戶機或者其任意部分,并且還被稱為ICA 客戶機。在一些實施例中,客戶機120包括用于將應(yīng)用從服務(wù)器106流 式傳輸?shù)娇蛻魴C102的應(yīng)用流客戶機306。在另一個實施例中,客戶機代
61理120包括用于執(zhí)行端點檢測/掃描以及為設(shè)備200和/或服務(wù)器106收 集端點信息的收集代理304。在一些實施例中,客戶機代理120包括諸如 網(wǎng)絡(luò)優(yōu)化引擎250和加速程序302的一個或者多個網(wǎng)絡(luò)加速或者優(yōu)化程 序或者代理。在一個實施例中,加速程序302加速經(jīng)由設(shè)備205,的客戶 機102和服務(wù)器106之間的通信。在一些實施例中,網(wǎng)絡(luò)優(yōu)化引擎250 提供此處討-淪的WAN優(yōu)化技術(shù)。
0169流客戶機306是用于接收和執(zhí)行來自于服務(wù)器106的流式傳 輸?shù)膽?yīng)用的應(yīng)用、程序、進程、服務(wù)、任務(wù)或可執(zhí)行指令集。服務(wù)器106 可以將一個或多個應(yīng)用數(shù)據(jù)文件流式傳輸?shù)搅骺蛻魴C306,以用于在客戶 機102上播放、執(zhí)行所述應(yīng)用或者以其他方式Y(jié)吏所述應(yīng)用被執(zhí)行。在一 些實施例中,服務(wù)器106發(fā)送一組壓縮的或封裝的應(yīng)用數(shù)據(jù)文件到流客 戶機306。在一些實施例中,多個應(yīng)用文件在文件服務(wù)器上被壓縮和存儲 在諸如CAB、 ZIP、 SIT、 TAR、 JAR或其它檔案(archive)的檔案文件中。 在一個實施例中,服務(wù)器106解壓縮、解封裝或解檔(unarchives)應(yīng) 用文件,并發(fā)送所述文件到客戶機102。在另一個實施例中,客戶機102 解壓縮、解封裝或解檔應(yīng)用文件。流客戶機306動態(tài)地安裝應(yīng)用或其中 的一部分,并執(zhí)行應(yīng)用。在一個實施例中,流客戶一凡306可以是可執(zhí)行 程序。在一些實施例中,流客戶機306可以啟用另一個可執(zhí)行程序。
0170收集代理304是用于識別、獲得和/或收集關(guān)于客戶機102的 信息的應(yīng)用、程序、進程、服務(wù)、任務(wù)或可執(zhí)行指令集。在一些實施例 中,設(shè)備200發(fā)送收集代理304到客戶機102或客戶機代理120??梢愿?據(jù)設(shè)備的策略引擎236的一個或多個策略來配置收集代理304。在其它實 施例中,收集代理304發(fā)送收集的有關(guān)客戶機102的信息給設(shè)備200。在 一個實施例中,設(shè)備200的策略引擎236使用收集的信息來確定并提供 對客戶機到網(wǎng)絡(luò)104的連接的訪問、驗證和授權(quán)控制。
0171在一個實施例中,收集代理304是端點檢測和掃描程序,其 識別和確定客戶機的一個或多個屬性或特性。例如,收集代理304可以 識別和確定任意一個或多個以下的客戶機側(cè)屬性1)操作系統(tǒng)和/或操 作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運行的服務(wù),4)運行的進程, 和5 )文件。收集代理304還可以識別和確定客戶機上的任意一個或多個下列軟件的存在或版本1)防病毒軟件,2)個人防火墻軟件,3)反垃 圾郵件軟件,和4)因特網(wǎng)安全軟件。策略引擎236可以具有根據(jù)客戶機 或客戶機側(cè)屬性的任意一個或多個屬性或特性的一個或多個策略。
0172SSL VPN代理308是用于建立從第一網(wǎng)絡(luò)104到第二網(wǎng)絡(luò)104,、 104,,的安全套接字層(SSL)虛擬專用網(wǎng)絡(luò)(VPN)連接或者從客戶機 102到服務(wù)器106的SSL VPN連接的應(yīng)用、程序、進程、服務(wù)、任務(wù)或者 可執(zhí)行指令集。在一個實施例中,SSL VPN代理308建立'從公共網(wǎng)絡(luò)104 到專用網(wǎng)絡(luò)104,或者104',的SSLVPN連接。在一些實施例中,SSLVPN 代理308結(jié)合設(shè)備205 —起工作來提供SSL VPN連接。在一個實施例中, SSL VPN代理308建立與設(shè)備205的第一傳輸層連接。在一些實施例中, 設(shè)備205建立與服務(wù)器106的第二傳輸層連接。在另一個實施例中,SSL VPN代理308建立與客戶機上的應(yīng)用的第一傳輸層連接,和與設(shè)備205的 第二傳輸層連接。在其他實施例中,SSL VPN代理308和WAN優(yōu)化i殳備 200結(jié)合工作來提供SSL VPN連接。
0173在一些實施例中,加速程序302是用于執(zhí)行一個或多個加速 技術(shù)的客戶機側(cè)加速程序,以加速、增強或者以其他方式改善客戶機與 服務(wù)器106的通信和/或?qū)Ψ?wù)器106的訪問,諸如訪問由服務(wù)器106提 供的應(yīng)用。加速程序302的可執(zhí)行指令的邏輯、功能和/或操作可以執(zhí)行 一個或多個的下列加速技術(shù)1)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3) 傳輸控制協(xié)議多路復用,4)傳輸控制協(xié)議緩沖,以及5)經(jīng)由高速緩存 管理器的高速緩存。另外,加速程序302可以執(zhí)行對由客戶機102接收 和/或發(fā)送的任意通信的加密和/或解密。在一些實施例中,加速程序302 以集成的方法或方式來執(zhí)行一個或多個加速技術(shù)。另外,加速程序302 可以在被攜帶為傳輸層協(xié)議的網(wǎng)絡(luò)分組的凈荷的任意協(xié)議或多個協(xié)議上 執(zhí)行壓縮。
0174在一個實施例中,加速程序302被設(shè)計、構(gòu)建或者配置為和 設(shè)備205 —起工作來提供LAN側(cè)加速或者提供經(jīng)由設(shè)備205提供的加速 才支術(shù)。例如,在Citrix System 乂>司出品的NetScaler i殳備205的一個 實施例中,加速程序302包括NetScaler客戶4幾。在一些實施例中,加 速程序302提供在諸如分支結(jié)構(gòu)中的遠程裝置中獨立的NetScaler加速
63技術(shù)。在其他實施例中,加速程序和一個或者多個NetScaler設(shè)備205 一起工作。在一個實施例中,加速程序302提供網(wǎng)絡(luò)業(yè)務(wù)量的LAN側(cè)或 者基于LAN的加速或者優(yōu)化。
0175在一些實施例中,網(wǎng)絡(luò)優(yōu)化引擎250可以^皮"沒計、構(gòu)建或者 配置為和WAN優(yōu)化設(shè)備200 —起工作。在其他實施例中,網(wǎng)絡(luò)優(yōu)化設(shè)備 250可以被設(shè)計、構(gòu)建或者配置為提供設(shè)備200的WAN優(yōu)化技術(shù),需要或 者不需要設(shè)備200。例如,在Citrix System公司出品的NeNScaler設(shè)備 205的一個實施例中,網(wǎng)絡(luò)優(yōu)化設(shè)備250包括NeNScaler客戶機。在一些 實施例中,網(wǎng)絡(luò)優(yōu)化引擎250提供在諸如分支結(jié)構(gòu)中的遠程位置中獨立 的NeNScaler加速技術(shù)。在其他實施例中,網(wǎng)絡(luò)優(yōu)化引擎250和一個或 者多個NeNScaler設(shè)備200 —起工作。
0176在另一個實施例中,網(wǎng)絡(luò)優(yōu)化引擎250包括加速程序302,或 者加速程序302的功能、操作和邏輯。在一些實施例中,加速程序302 包括網(wǎng)絡(luò)優(yōu)化引擎250,或者網(wǎng)絡(luò)優(yōu)化引擎250的功能、操作和邏輯。在 又一個實施例中,網(wǎng)絡(luò)優(yōu)化引擎250被提供或者安裝為來自加速程序302 的單獨的程序或者可執(zhí)行指令集。在其他實施例中,網(wǎng)絡(luò)優(yōu)化引擎250 和加速程序302包括在相同的程序中或者同一個可執(zhí)行指令集中。
01"在一些實施例中以及仍然參考圖3,可以使用第一程序322來 自動地、靜默地、透明地或以其他方式地安裝和/或4丸行客戶機代理120 或者其一部分。在一個實施例中,第一程序322是諸如被加載應(yīng)用并由 應(yīng)用執(zhí)行的ActiveX控件或Java控件或腳本的插件部件。例如,第一程 序包括由web瀏覽器應(yīng)用加載并運行在例如應(yīng)用的存儲空間或上下文中 的ActiveX控件。在另一個實施例中,第一程序322包括由諸如瀏覽器 的應(yīng)用加載并運行的一組可執(zhí)行指令。在一個實施例中,第一程序322 被設(shè)計和構(gòu)造來安裝客戶機代理120。在一些實施例中,第一程序322通 過網(wǎng)絡(luò)來從另一個計算裝置獲得、下載或接收客戶機代理120。在另一個 實施例中,第一程序322是客戶機102的操作系統(tǒng)上的諸如網(wǎng)絡(luò)驅(qū)動程 序和客戶機代理120或其任意部分的安裝程序或用于安裝程序的即插即 用管理器。
0178在一些實施例中,客戶機代理120、流客戶機306、收集代理304、 SSL VPN代理308、網(wǎng)絡(luò)優(yōu)化引擎250、加速程序302、攔截器350 的每一個或者其中任意部分可以被安裝、執(zhí)行、配置或者操作為單獨的 應(yīng)用、程序、進程、服務(wù)、任務(wù)或者可執(zhí)行指令集。在其他實施例中, 客戶機120的每一個或者任意部分可以被一起安裝、執(zhí)行、配置或者操 作為單獨的客戶機代理120。
D、用于處理網(wǎng)絡(luò)擁塞的系統(tǒng)和方法
0179現(xiàn)在參考圖4,示出取樣TCP分組??偟膩碚f,TCP分組包 括首部410和有效載荷490。首部410包括可以被用來指示和數(shù)據(jù)通信和 網(wǎng)絡(luò)擁塞相關(guān)的傳輸事件的多個標識,包括ACK號460、顯式擁塞通知回 應(yīng)(ECE標志)、ACK標志440和進棧(PSH )標志420。
0180仍舊參考圖4,所示取樣TCP分組圖形示出可包括在TCP 分組中的一些信息。盡管所示取樣反映了 TCP分組的特定實施例,但是 本領(lǐng)域內(nèi)普通4支術(shù)人員可以認識到TCP和其他網(wǎng)絡(luò)協(xié)議的許多實現(xiàn)方案 和變化可以應(yīng)用到此處描述的系統(tǒng)和方法中,包括RFC 793、 RFC 1122 中指定的TCP實現(xiàn)方案,并且特別是涉及擁塞控制和避免的RFC 2581和 RFC 3168。在其中一些實現(xiàn)方案和其他實現(xiàn)方案中,ECE標記可以被用來 通知分組接收器發(fā)生了網(wǎng)絡(luò)擁塞。分組接收器隨后可以選擇降低它們的 傳輸率或者調(diào)整任一其它擁塞控制或者避免策略。該ECE標記還被用來 和其他信令位相結(jié)合,其和接收器協(xié)商是否支持顯式擁塞通知(ECN)。 顯式擁塞的協(xié)商或者信令中使用的任一協(xié)議中的任一位可以稱之為ECN 位。
0181現(xiàn)在參考圖5,示出通過裝置在多個傳輸層連接之間分布擁 塞事件的系統(tǒng)??偟膩碚f,多個客戶機102a、 102b、 102n經(jīng)由設(shè)備200 和多個服務(wù)器106a、 106b、 106n相通信。當設(shè)備接收到網(wǎng)絡(luò)擁塞500a 的指示時,設(shè)備中操作的流控制器可以攔截指示500a,并且經(jīng)由不同的 連接傳輸?shù)诙砣甘?00b。以此方式,設(shè)備可以在多個連接之間分配 擁塞指示來控制每一連接所使用的帶寬。在一些實施例中,擁塞指示的 分配可以被用來協(xié)助提供關(guān)于一個或者多個連接的服務(wù)質(zhì)量(QoS )保證。
0182仍舊參考圖5,更詳細地說多個客戶機102經(jīng)由設(shè)備200和多個服務(wù)器106相通信??蛻魴C102可以通過包括UN、 WAN、 MAN或 者任意其它網(wǎng)絡(luò)或者網(wǎng)絡(luò)的組合的任意方式來連接到設(shè)備200。在一些情 況中,客戶機102每一個可以經(jīng)由 一個或者多個其他設(shè)備連接到設(shè)備200。 例如,客戶機102每一個可以駐留在分支機構(gòu),而設(shè)備200和服務(wù)器106 位于中央辦公室??蛻魴C106可以經(jīng)由位于分支機構(gòu)的第二設(shè)備200,連 接到設(shè)備200。盡管圖中描述多個客戶機,但是所描述的系統(tǒng)和方法還可 以應(yīng)用到單個客戶機102通過多個連接和一個或者多個服務(wù)器通信的情 況。
0183服務(wù)器106可以通過包括LAN、 WAN、 MAN或者任意其它網(wǎng) 絡(luò)或者網(wǎng)絡(luò)的組合的任意方式來連接到設(shè)備200。所描述的系統(tǒng)和方法還 可以應(yīng)用到單個服務(wù)器106通過多個連接和一個或者多個客戶機通信的 情況。
0184在一些實施例中,設(shè)備200可以用作對于連接510、 515、 520的代理。在其他實施例中,設(shè)備200可以用作該連接的透明代理。設(shè) 備200可以提供關(guān)于該連接的高速緩存、加速或者任意其它網(wǎng)絡(luò)服務(wù)。
0185設(shè)備200經(jīng)由連接515a接收擁塞指示500a。擁塞指示可以 包括顯式傳達網(wǎng)絡(luò)擁塞或者允許做出潛在的網(wǎng)絡(luò)擁塞論斷的任一通知。 擁塞指示500可以包括但不限于丟失的分組的指示、延遲的分組的指示、 受損的分組的指示和顯式擁塞指示。擁塞指示500的特定例子可以包括 但不限于包括復制確認(ACK )的TCP分組和包括一個或者多個標記的ENC 位的TCP分組。擁塞指示500還可以被稱為擁塞事件的指示。擁塞事件 可以是可能由網(wǎng)絡(luò)擁塞引發(fā)的任一網(wǎng)絡(luò)或者裝置事件。
0186設(shè)備200可以隨后產(chǎn)生經(jīng)由一個連接傳輸?shù)膿砣甘?00b, 該連接不同于對應(yīng)于在其上接收擁塞指示500a的連接的連接。設(shè)備可以 經(jīng)由任一裝置產(chǎn)生擁塞指示,并且可以產(chǎn)生和傳輸任一類型的擁塞指示。 在一些實施例中,設(shè)備200可以以透明的方式產(chǎn)生擁塞指示500b,使得 其向服務(wù)器106a呈現(xiàn)出該擁塞指示源自客戶機102a。
0187現(xiàn)在參考圖6,示出通過裝置在多個傳輸層連接中分布擁塞 事件的方法的一個實施例??偟膩碚f,該方法包括通過裝置建立多個傳 輸層連接,該傳輸層連接的一個或者多個具有所分配的優(yōu)先級(步驟601 )。該裝置經(jīng)由第一傳輸層連接接收網(wǎng)絡(luò)擁塞的第一指示(步驟603 )。 該裝置隨后根據(jù)所分配的優(yōu)先級選擇第二傳輸層連接(步驟605 ),并且 經(jīng)由所選擇的第二傳輸層連接傳輸擁塞事件的第二指示(步驟609 )。在 一些實施例中,該方法還可以包括根據(jù)所分配的優(yōu)先級來選擇第三傳輸 層連接(步驟611)并且經(jīng)由第三傳輸層連接傳輸?shù)谌龘砣甘?步驟 613)。
0188仍舊參考圖6,更詳細地說可以期望在一些網(wǎng)絡(luò)環(huán)境中具有 用于指派擁塞事件的裝置。如果網(wǎng)絡(luò)104變得擁塞,則其不能期望所有 經(jīng)由網(wǎng)絡(luò)104通信的連接受到該擁塞相同的影響。當視頻質(zhì)量和響應(yīng)時 間遭受損害時,傳輸實時視頻會議數(shù)據(jù)的連接的降速對于連接的接收器 可以導致嚴重的后果。相反,大的文件傳送可以承擔顯著的擁塞延遲, 而不會對于用戶產(chǎn)生嚴重的負面結(jié)果。然而,如果多個連接在同一網(wǎng)絡(luò) 104上操作,則不能保證遭受諸如丟失分組的擁塞事件的第一連接將是最 低優(yōu)先級的連接。在這些情形中,也許重新分布擁塞事件對設(shè)備來說是 有利的,使得較低優(yōu)先級連接接收擁塞事件并相應(yīng)降低其帶寬,而允許 較高優(yōu)先級連接繼續(xù)以較高速率傳輸。在其它情形中,重新分布擁塞事 件可以被用來確保即便其中擁塞事件沒有在所有連接中均勻地出現(xiàn),多 個連接繼續(xù)以相同的速率傳輸。依然在其它實施例中,裝置可以根據(jù)事 務(wù)大小來分布擁塞事件。
0189在所示實施例中,裝置可以建立多個傳輸層連接,該傳輸 層連接的一個或者多個具有所分配的優(yōu)先級(步驟601)。裝置可與一個 或者多個計算裝置建立多個連接,計算裝置可以包括客戶機102、服務(wù)器 106和其他設(shè)備200。在一些實施例中,裝置可以在對于傳輸層連接用作 中間設(shè)備過程中建立傳輸層連接。在這些實施例中,多個傳輸層連接的 兩個或者多個可以包括類似于圖5中的連接510a和510b的對應(yīng)的傳輸 層連接。該裝置可以包括設(shè)備200、客戶機代理或者服務(wù)器代理。在一個 實施例中,傳輸層連接可以包括TCP連接。在其他實施例中,傳輸層連 接可以包括任一其它協(xié)議。在一個實施例中,裝置可以將具有相同的源 和目標的分組序列處理為單個連接,甚至在該分組未使用明確使用連接 的協(xié)議發(fā)送時。
60190該裝置可以以任一方式分配優(yōu)先級給一個或者多個所建立
的連接。在一些實施例中,裝置可以為多個連接的每一個分配唯一的優(yōu) 先級。在其他實施例中,裝置可以為多個連接的一些或者全部連接分配 單個優(yōu)先級。在一些實施例中,該裝置可以在連接建立時為連接分配優(yōu) 先級。在其他實施例中,該裝置可以只有在擁塞事件或者其他事件已經(jīng) 發(fā)生之后為連接分配優(yōu)先級。在一些實施例中,分配給給定連接的優(yōu)先 級可以保持不變。在其他實施例中,分配給給定連接的優(yōu)先級可以響應(yīng) 于連接的特性和裝置或者網(wǎng)絡(luò)中的條件而隨時間改變。例如,裝置可以 分配更高的優(yōu)先級給當前相對低的帶寬使用的連接,分配較低的優(yōu)先級 給使用更多當前帶寬的連接。
0191在一個實施例中,該裝置可以基于連接的一個或多個協(xié)議 來分配優(yōu)先級。例如,裝置可以相對于TCP業(yè)務(wù)量分配較高的優(yōu)先級給 UDP業(yè)務(wù)量?;蛘呃?,裝置可以相對于FTP業(yè)務(wù)量分配更高的優(yōu)先級給 HTTP業(yè)務(wù)量。在另一個實施例中,裝置可以基于經(jīng)由連接承載的業(yè)務(wù)量 的一個或者多個特性來分配優(yōu)先級。例如,設(shè)備可以給突發(fā)連接分配相 比于具有相對穩(wěn)定帶寬的連接更高的優(yōu)先權(quán)。在一些實施例中,通過裝 置的管理員或者通過連接自身中包含的消息可以明確配置優(yōu)先級。
0192在一些實施例中,所分配的優(yōu)先級可以直接關(guān)聯(lián)到連接所 分配的帶寬。例如,設(shè)備可以分配10Mb/sec的最大帶寬給多個連接的每 一個。或者i殳備可以分配5Mb/sec的目標帶寬給多個連^^的其中 一個, 而分配10Mb/sec的目標帶寬給多個連接的第二個。
0193在其他實施例中,所分配的優(yōu)先級可以對應(yīng)于連接的服務(wù)
質(zhì)量水平。服務(wù)質(zhì)量水平可以以任意方式指定。在一些實施例中,設(shè)備
可以識別和/或利用在連接中的TCP相關(guān)或者IP相關(guān)的協(xié)議中使用的任
一服務(wù)質(zhì)量指示。例如,RFC1394、 RFC2474和RFC2475詳細描述了這些
方法,通過這些方法,TCP和IP連接可以通知涉及服務(wù)質(zhì)量和類型的信 自
0194仍在其他實施例中,所分配的優(yōu)先級可以對應(yīng)于連接的當 前或者平均事務(wù)大小。在這些實施例中,裝置可以分配更高的優(yōu)先級給 承載更短事務(wù)的連接。這些連接更可能載有諸如VoIP或者遠程程序調(diào)用
68的時間敏感的業(yè)務(wù)量,其更容易受到擁塞事件的負面影響。
0195該裝置可以以任一方式經(jīng)由第 一傳輸層連接接收網(wǎng)絡(luò)擁塞 的第一指示(步驟603 )。該網(wǎng)絡(luò)擁塞的指示可以包括此處描述的任一擁 塞指示500。在一些實施例中,該裝置可以接收多個擁塞指示。在這些實 施例中,可以經(jīng)由多個連接的一個或者多個來接收多個擁塞指示。
0196該裝置隨后可以根據(jù)所分配的優(yōu)先級選擇多個連接的第二 傳輸層連接(步驟605 )。在一些實施例中,該裝置可以選擇具有最低分 配的優(yōu)先級的傳輸層連接。在其他實施例中,裝置可以選擇具有最低分 配的優(yōu)先級的連接,該連接還通過接收到擁塞事件的同一網(wǎng)絡(luò)來傳輸數(shù) 據(jù)。在此實施例中,該設(shè)備可以選擇通過接收到擁塞事件的同一網(wǎng)絡(luò)間 接傳輸數(shù)據(jù)的連接。例如,在圖5中,即使連接510b不能在連接515b 使用的網(wǎng)絡(luò)上直接通信時,設(shè)備還選擇連接510b。然而,通過連接510b 發(fā)送的數(shù)據(jù)隨后通過連接510a發(fā)送,其可以使用與連接515a相同的網(wǎng) 絡(luò),并且因此選擇連接510b可以產(chǎn)生降低網(wǎng)絡(luò)104a上業(yè)務(wù)量的期望結(jié) 果。
0197在一個實施例中,裝置可以選擇相對于當前帶寬利用具有 最低分配的優(yōu)先級的連接(步驟605 )。在此實施例中,目標可以是識別 消耗大量帶寬的低優(yōu)先級連接,并且可能是所接收的擁塞事件的部分原 因。例如,裝置可以選擇具有低于給定閾值的優(yōu)先級但傳輸超過第二給 定閾值的連接。在此例中,裝置可以選擇具有低于臨界閾值的優(yōu)先級的 連接,其傳輸超過2Mb/sec的閾值?;蛘咴撗b置選擇傳輸超過給定帶寬 閾值的最低優(yōu)先級連接。仍在其他實施例中,裝置可以選擇使用最大量 帶寬的連接。
0198在一些實施例中,該裝置可以選擇傳輸超過分配帶寬最多 的連接。例如,如果三個連接每個分配給頓b/sec并且經(jīng)由第一連接接 收到擁塞事件,則裝置可以選擇傳輸超過頓b/sec閾值最多的連接來傳 輸擁塞指示。該裝置可以選擇傳輸超過每秒絕對位或者按百分比最多的 連接。例如,如果三個連接分配給1Mb/sec、 2Mb/sec和lGMb/sec的帶 寬,則裝置可以選擇超過其分配帶寬最高百分比的連接。
0199在一些實施例中,裝置還可以考慮在選擇連接來接收隨后的擁塞指示過程中連接是否接收了另一個最近的擁塞指示。在其中一個 實施例中,設(shè)備可以從考慮事項中移除已經(jīng)接收到最后的來回行程時間 (RTT)中的擁塞指示的任一連接,該擁塞指示通過裝置產(chǎn)生或者來自另 一個源。在此實施例中,裝置可以選擇傳輸超過其分配帶寬最多、在最
后的RRT中沒有接收到擁塞指示的連接。在一些實施例中,裝置可以維 持列表、隊列或者其它數(shù)據(jù)結(jié)構(gòu)來記錄在連接之間接收的或者指派的擁 塞指示。在其中一些實施例中,裝置可以使用循環(huán)或者其它算法來在連 接中分布擁塞指示。
0200在選4奪連接(步驟605 )之后,裝置可以以任一方式經(jīng)由所 選擇的連接傳輸網(wǎng)絡(luò)擁塞的指示。在一些實施例中,裝置可以傳輸分組 已經(jīng)丟失的指示。在其他實施例中,裝置可以傳輸具有標記的ECN位的 一個或多個分組。
0201裝置可以抑制、丟棄、忽視、重寫或者以其他方式處理所 接收的擁塞指示用來隱藏來自目的接收器的指示。例如,如果所接收的 擁塞指示是具有標記的ECN位的分組,則裝置可以在將分組轉(zhuǎn)發(fā)給接收 器之前取消ECN位標記?;蛘呃?,如果所接收的擁塞指示是丟失分組 的指示,則裝置可以重傳丟失的分組,而無需通知分組的最初的發(fā)送器。
0202在一些實施例中,裝置可以響應(yīng)于單個所接收的擁塞指示 傳輸多個擁塞指示。在這些實施例中,裝置可以使用用來選擇第二連接 的任一標準來選擇三個連接來接收擁塞事件。例如,如果擁塞指示經(jīng)由 高優(yōu)先級連接接收,裝置可以經(jīng)由兩個較低優(yōu)先級連接來傳輸擁塞指示, 以產(chǎn)生足以減輕網(wǎng)絡(luò)擁塞的較低優(yōu)先級連接的之后帶寬利用的下降。該 例子適合用在兩個較低的優(yōu)先級連接在相對于較高的優(yōu)先級連接的較低 的速率傳輸?shù)那闆r中。
0203現(xiàn)在參見圖7,示出用于使用透明代理對傳輸連接提供服務(wù) 質(zhì)量水平來控制連接帶寬的系統(tǒng)。在一些實施例中,該系統(tǒng)類似于圖5 的系統(tǒng),因為設(shè)備使用擁塞指示來控制多個連接中的帶寬利用。然而, 在圖7中,設(shè)備沒必要在發(fā)送擁塞事件之前等待輸入的擁塞指示的到來。 而是, 一旦設(shè)備檢測到連接超過所分配的帶寬時,設(shè)備就可以傳輸擁塞 指示。0204仍舊參考圖7,更詳細地說多個客戶機102經(jīng)由設(shè)備200 和多個服務(wù)器106相通信??蛻魴C102可以通過包括UN、 WAN、 MAN或 者任意其它網(wǎng)絡(luò)或者網(wǎng)絡(luò)的組合的任意方式來連接到設(shè)備200。在一些情 況中,客戶機102每一個可以經(jīng)由 一個或者多個其他設(shè)備連接到設(shè)備200。 例如,客戶機102每一個可以駐留在分支機構(gòu),而設(shè)備200和服務(wù)器106 位于中央辦公室。在另一實施例中,設(shè)備200可以位于具有客戶機的分 支機構(gòu)。客戶機106可以經(jīng)由位于分支機構(gòu)的第二設(shè)備200,連接到設(shè)備 200。盡管圖中描述多個客戶機,但是所描述的系統(tǒng)和方法還可以應(yīng)用到 單個客戶機102通過多個連接和一個或者多個服務(wù)器通信的情況。
0205服務(wù)器106可以通過包括LAN、 WAN、 MAN或者任意其它網(wǎng) 絡(luò)或者網(wǎng)絡(luò)的組合的任意方式來連接到設(shè)備200。所描述的系統(tǒng)和方法還 可以應(yīng)用到單個服務(wù)器106通過多個連接和一個或者多個客戶機通信的 情況。
0206在一些實施例中,設(shè)備200可以用作對于連接510、 520的 代理。在其他實施例中,設(shè)備200可以用作該連4妻的透明代理。設(shè)備200 可以提供關(guān)于該連接的高速緩存、加速或者任意其它網(wǎng)絡(luò)服務(wù)。在一個 實施例中,該連接可以包括TCP連接。在其他實施例中,該連接可以包 括任一其它傳輸層協(xié)議。
0207在所示系統(tǒng)中,設(shè)備包括確定連接何時超過所分配的帶寬 的流控制器。流控制器隨后在期望導致連接的發(fā)送器降低它們的帶寬時 引發(fā)連接中的擁塞事件。該過程將結(jié)合圖8更詳細地進行描述。
0208現(xiàn)在參考圖8,示出用于使用透明代理對傳輸連接提供服務(wù) 質(zhì)量水平來控制連接帶寬的方法。總的來說,該方法包括通過用作對于 發(fā)送器和接收器之間的傳輸層連接的透明代理的設(shè)備確定經(jīng)由傳輸層連 接的發(fā)送器的傳輸率不同于預定的傳輸率(步驟801)。該設(shè)備可以隨后 響應(yīng)于該確定來產(chǎn)生包含以改變傳輸速率的指示的確認分組(步驟803 ); 并且傳輸所產(chǎn)生的確認(步驟805 )。
0209仍舊參考圖8,更詳細地說用作對于發(fā)送器和接收器之間的 傳輸層連接的透明代理的設(shè)備可以以任一方式確定經(jīng)由傳輸層連接的發(fā) 送器的傳輸率不同于預定的傳輸率(步驟801)。傳輸率可以使用任意規(guī)格并且通過任意時間間隔來測量。在一個實施例中,設(shè)備可以確定連接 已經(jīng)超過在給定時間間隔上傳輸?shù)乃试S的最大數(shù)量的字節(jié)。時間間隔
可以包括任一持續(xù)時間,包括但不限于.1秒、.5秒、1秒、2秒、3秒、 5秒、和10秒。在一個實施例中,設(shè)備可以確定連接^氐于在給定時間間 隔上傳輸?shù)乃试S的最大數(shù)量的字節(jié)。
0210在一些實施例中,多個連接每一個可以^皮分配給相同的預 定傳輸率。在其他實施例中,不同的連接可以被分配給不同的預定傳輸 率??梢砸匀我环绞綖檫B接分配傳輸率,包括但不限于基于優(yōu)先級、之 前帶寬消耗、協(xié)議、源地址、目標地址、和連接突發(fā)性(connection burstiness)。在一些實施例中,多個連接可以分配給總的公知可用帶寬 的相對的一部分。例如,如果設(shè)備用作對于具有公知或者近似公知容量 的WAN上的多個連接的透明代理,則通過WAN上的每個連接可以指派給 總?cè)萘康囊徊糠帧T诖死?,如果四個連接通過具有公知10Mb/sec帶寬 的WAN,則每個連4妄可以;故分配給2. 5Mb/sec的預定傳輸率。可替代地, 一個優(yōu)先級連4妄可以;故分配給6Mb/sec的速率,而其他三個連接可以被 分配給2Mb/sec的速率。在此例和其它例子中,隨著新的連接建立或者 停止已有的連接,可以改變預定的傳輸率。
0211在一些實施例中,預定的傳輸率可以對應(yīng)于對于連接的服 務(wù)質(zhì)量水平??梢砸匀我环绞街付ǚ?wù)質(zhì)量水平。在一個實施例中,設(shè) 備可以識別和/或利用在TCP相關(guān)或者IP相關(guān)的協(xié)議中使用的任一服務(wù) 質(zhì)量指示。在其他實施例中,預定的傳輸率可以對應(yīng)于給定連接在WAN 或者LAN上傳輸?shù)拇_定。
0212仍在其他實施例中,設(shè)備可以給多個連接的每一個分配優(yōu) 先級,并且隨后基于分配的優(yōu)先級來分配預定的傳輸率。優(yōu)先級可以使 用任意方式來分配,包括上面結(jié)合圖5和6描述的那些內(nèi)容。
0213設(shè)備可以響應(yīng)于步驟801的確定來產(chǎn)生包括改變傳輸率的 指示的確認分組。該i殳備可以以^f壬一方式產(chǎn)生確認分組。在一些實施例 中,設(shè)備可以在確定之后立刻產(chǎn)生確認分組。在其他實施例中,設(shè)備可 以在產(chǎn)生確認之前等待預定的時間間隔。即使沒有來自該連接的接收器 的確認,設(shè)備可以產(chǎn)生確認。設(shè)備可以使用任一技術(shù)來產(chǎn)生對于連接的發(fā)送器和接收器透明的確認,包括匹配源地址、目標地址、序列號和/或 確認號。
0214在一些實施例中,確認分組可以包含降低發(fā)送器傳輸率的 任一指示。在一個實施例中,降低傳輸率的指示可以包括包含分組丟失 的指示的確認。在另一個實施例中,降低傳輸率的指示可以包括包含標 記的ECN位的確認。仍在另一個實施例中,降低傳輸率的指示可以包括 具有用于發(fā)送器減小連接的窗大小的指示的確認。在此例中,所減小的 窗大小可以不同于連接的接收器所通告的窗大小。
0215在其他實施例中,確認分組可以包含增加發(fā)送器的傳輸率 的任一指示。在一個實施例中,該增加傳輸率的指示可以包括具有用于 發(fā)送器增加連接的窗大小的指示的確認。在此例中,所增加的窗大小可 以不同于連接的接收器通告的窗大小。
0216在一些實施例中,設(shè)備可以響應(yīng)于單個確定來傳輸多個指 示。例如,如果連接顯著超過所分配的帶寬,則設(shè)備可以產(chǎn)生并傳輸包 括分組丟失的指示和對于發(fā)送器減小窗的指示的確認。在一些實施例中, 設(shè)備可以傳輸指示到連接的兩個端點。這可以適合用在連接雙方正相對 等量傳輸?shù)那闆r中。
0217在上述所有實施例中,設(shè)備可以繼續(xù)傳輸包含改變傳輸率 的指示的確認,直到連接開始在預定的傳輸率范圍內(nèi)傳輸。例如,設(shè)備 可以繼續(xù)向發(fā)送器傳輸降低窗大小的指示,直到指示具有發(fā)送器足以降 低它們的傳輸率的期望的效果。
0218現(xiàn)在參考圖9A,示出用于通過多個傳輸層連接的發(fā)送器根 據(jù)連接的優(yōu)先級來動態(tài)控制帶寬的系統(tǒng)??偟膩碚f,客戶機102經(jīng)由客 戶機代理120發(fā)送數(shù)據(jù)給多個服務(wù)器106。當客戶機代理120經(jīng)由其中一 個連接接收到擁塞事件的指示時,流控制器220根據(jù)分配給連接的優(yōu)先 級來減低連接的擁塞窗。以此方式,較高優(yōu)先級的連接可以對擁塞事件 更不容易敏感,而較低優(yōu)先級的連接可以對擁塞事件響應(yīng)更快速。盡管 所示系統(tǒng)描寫了客戶機代理120上的流控制器220,但在其他實施例中, 流控制器220可以駐留在設(shè)備200、服務(wù)器106或者服務(wù)器代理上。
0219仍舊參考圖9A,更詳細地說諸如TCP的多個協(xié)議提供用于在檢測到潛在網(wǎng)絡(luò)擁塞時降低數(shù)據(jù)傳輸?shù)臋C制。關(guān)于TCP,這些機制可以 包括修改擁塞窗,其規(guī)定所允許的最大數(shù)量的傳輸?shù)奈创_認數(shù)據(jù)。例如,
每當接收到分組已經(jīng)被丟失的指示時,TCP Reno和FAST-TCP可以將擁塞 窗分成兩半。這可以導致在接收到分組丟失指示時顯著降低傳輸?shù)臄?shù)據(jù)。 其他協(xié)議可以提供其他方案以用來確定給定的分組丟失事件的未確認數(shù) 據(jù)的最大數(shù)量。然而,在許多情況中,期望調(diào)整用于基于連接的優(yōu)先級 來響應(yīng)擁塞事件的方案。例如,如果多個連接在具有固定容量的鏈路上 傳輸,則可以響應(yīng)于擁塞事件期望更高優(yōu)先級的連接來將它們的擁塞窗 下降的相比于較低優(yōu)先級的連接更慢。這可以允許較高優(yōu)先級的連接以 相對較高的速率持續(xù)傳輸,而通過較低優(yōu)先級的連接來吸收大批的帶寬 下降。這還可以允許諸如實時應(yīng)用的得益于相對穩(wěn)定帶寬的連接來避免 擁塞窗快速下降所引起的性能中的不期望的峰值。
0220現(xiàn)在參考圖9B,示出用于通過一個或者多個傳輸層連接的 發(fā)送器根據(jù)分配給一個或者多個連接的優(yōu)先級來動態(tài)控制連接帶寬的方 法??偟膩碚f,該方法包括發(fā)送器經(jīng)由第一傳輸層連接傳輸數(shù)據(jù),該 連接具有識別在缺乏來自接收器的確認的情況下傳輸?shù)臄?shù)據(jù)數(shù)量的第一 擁塞窗大小(步驟901)。發(fā)送器可以經(jīng)由連接接收分組丟失的指示(步 驟903 ),并且識別對應(yīng)于連接的縮小因子(步驟905 )。發(fā)送器隨后可以 確定第二擁塞窗大小,第二擁塞窗大小包括根據(jù)縮小因子降低的第一擁 塞窗大小(步驟907 )。發(fā)送器可以隨后根據(jù)第二擁塞窗大小來傳輸數(shù)據(jù) (步驟909 )。發(fā)送器可以包括任意計算裝置和/或軟件,包括但不限于客 戶機、服務(wù)器、客戶機代理、服務(wù)器代理和設(shè)備。
0221仍舊參考圖9B,更詳細地說裝置經(jīng)由具有第一擁塞窗大小 的傳輸層連接傳輸數(shù)據(jù)(步驟901)。擁塞窗大小可以包括"傳送(in flight)"的未確認數(shù)據(jù)的數(shù)量上的任一上限、約束、或者其他限制。例 如, 一旦未確認數(shù)據(jù)數(shù)量等于或者超過擁塞窗大小時,發(fā)送器可以停止 傳輸新的數(shù)據(jù)。在一個實施例中,第一擁塞窗大小可以是TCP擁塞窗大 小。在一些實施例中,裝置可以經(jīng)由多個連接傳輸數(shù)據(jù),每個連接具有 擁塞窗大小。
0222發(fā)送器可以隨后經(jīng)由第一連接接收分組丟失的指示(步驟
74903 )。發(fā)送器可以經(jīng)由任意一個或者多個協(xié)議接收該指示。在一些實施 例中,分組丟失指示可以包括一個或者多個TCP連接中的復制的確認。 在其他實施例中,分組丟失指示可以包括超時或者指示由發(fā)送器傳輸?shù)?分組沒有接收到的一些可能性的任意其它指示。仍在其他實施例中,發(fā) 送器可以如上所述^妻收擁塞的指示。
0223發(fā)送器可以以任一方式識別對應(yīng)于傳輸層連接的優(yōu)先級的 縮小因子(步驟905 )。發(fā)送器可以使用任一方法分配優(yōu)先級給傳輸層連 接,包括此處描述的任一方法。在一些實施例中,相對于較低優(yōu)先級的 連接,較高優(yōu)先級的連接可以被標識以更低的縮小因子。縮小因子可以 包括用來降低擁塞窗大小的任一數(shù)量。例如,在許多TCP實現(xiàn)中,標準 的縮小因子縮小因子可以是2,指定每次發(fā)生丟失事件時擁塞窗被分為兩 半。關(guān)于所示方法,縮小因子可以是任一數(shù)量。在一個實施例中,縮小 因子可以是l。在此實施例中,如果發(fā)生擁塞事件,擁塞窗大小可以完全 不下降。在其他例子中,下降因素可以包括l.l、 1.2、 1.3、 1.4、 1.5、 1.6、 1.7、 1.8、 1.9或者2,或者此范圍內(nèi)的任一數(shù)量。在一些實施例 中,低于2的縮小因子可以關(guān)于較高優(yōu)先級的連接來使用。仍在其他實 施例中,縮小因子可以包括2.1、 2.5、 3、 3.5、 4、 4.5、 5、 5.5、或者 6或者此范圍內(nèi)的任一數(shù)量。在一些實施例中,大于2的縮小因子可以關(guān) 于較低優(yōu)先級的連接來使用。
0224發(fā)送器隨后確定第二擁塞窗大小,第二擁塞窗大小包括通 過縮小因子降低的第一擁塞窗大小(步驟907 )。發(fā)送器可以以任一方式 通過縮小因子來降低擁塞窗大小。在一些實施例中,發(fā)送器可以將第一 擁塞窗大小除以縮小因子。在其他實施例中,發(fā)送器可以從第一擁塞窗 大小減去縮小因子。仍在其他實施例中,發(fā)送器可以從擁塞窗大小減去 被乘以縮小因子的常數(shù)。例如,發(fā)送器可以從擁塞窗大小中減去縮小因 子與最大片段大小的乘積。此時應(yīng)該認識到縮小因子可以包括到響應(yīng)丟 失事件來改變擁塞窗大小的任意方法中,包括TCP的任一變量。
0225為了給出詳細的例子,在一個實施例中,發(fā)送器可以將第 一擁塞窗大小除以縮小因子來確定新的擁塞窗大小。在此例中,發(fā)送器 可以分配4的縮小因子給低優(yōu)先級的連接,分配2的縮小因子給正常優(yōu)先級的連接,并且分配1. 33的縮小因子給高優(yōu)先級的連接。
0226發(fā)送器可以隨后經(jīng)由該連接并根據(jù)第二擁塞窗大小來傳輸 數(shù)據(jù)。在一些實施例中,發(fā)送器可以繼續(xù)使用所示方法,使得擁塞窗在 新的分組丟失指示到來時繼續(xù)改變。
0227現(xiàn)在參考圖9C,示出用于通過一個或者多個傳輸層連接的 發(fā)送器根據(jù)分配給一個或者多個該連接的優(yōu)先級來動態(tài)控制連接帶寬的 第二方法。廣義而言,該方法將圖9A和9B的系統(tǒng)和方法的扭X念應(yīng)用到 擁塞窗應(yīng)該增加而不是減小的狀況中??偟膩碚f,所述方法包括發(fā)送 器經(jīng)由第一傳輸層連接傳輸數(shù)據(jù),在缺乏來自接收器的確認的情況下該 連接具有識別傳輸?shù)臄?shù)據(jù)數(shù)量的第一擁塞窗大小(步驟901)。發(fā)送器可 以隨后在給定時間間隔期間不接收分組丟失的指示(步驟903 ),并且識 別對應(yīng)于連接的擴大因子(步驟905 )。發(fā)送器隨后可以計算第二擁塞窗 大小,基于第一擁塞窗大小和擴大因子來計算第二擁塞窗大小(步驟 907 )。發(fā)送器可以隨后根據(jù)第二擁塞窗大小來傳輸數(shù)據(jù)(步驟909 )。發(fā) 送器可以包括任意計算裝置和/或軟件,包括但不限于客戶機、服務(wù)器、 客戶機代理、服務(wù)器代理和設(shè)備。
0228仍舊參考圖9C,更詳細地說裝置經(jīng)由具有第一擁塞窗大小 的傳輸層連接傳輸數(shù)據(jù)(步驟931)。在一些實施例中,裝置可以經(jīng)由多 個連接傳輸數(shù)據(jù),每個連接具有擁塞窗大小。在一個實施例中,傳輸層 連接可以包括TCP連接。
0229發(fā)送器可以隨后在時間間隔期間不接收經(jīng)由第 一連接的分 組丟失的指示(步驟933 )。時間間隔可以包括任一時間間隔。在一個實 施例中,時間間隔可以包括固定數(shù)量的時間,包括^f旦不限于.05秒、.1 秒、.2秒、.4秒、.5秒、1秒或者2秒。在其他實施例中,時間間隔可 以對應(yīng)于連接的特性。在一個實施例中,時間間隔可以對應(yīng)于連接的來 回行程時間。在另 一個實施例中,時間間隔可以對應(yīng)于連接的平均來回 行程時間。仍在其他實施例中,時間間隔可以對應(yīng)于多個來回行程時間 或者平均來回行程時間。
0230發(fā)送器可以以任一方式識別對應(yīng)于傳輸層連接的優(yōu)先級的 擴大因子(步驟935 )。發(fā)送器可以使用任一方法分配優(yōu)先級給傳輸層連
76接,包括此處描述的任一方法。在一些實施例中,相對于較^f氐優(yōu)先級的 連接,較高優(yōu)先級的連接可以被識別為具有更高的擴大因子。擴大因子 可以包括用來增加擁塞窗大小的任一數(shù)量。例如,在一些TCP實現(xiàn)中, 擴大因子可以是對于連接的最大分組大小,指定每次沒有丟失事件通過
的時間間隔(來回行程時間)時將擁塞窗增加最大分組大小。在其他TCP 實現(xiàn)中,擴大因子可以包括將最小來回行程時間除以最近來回行程時間。 關(guān)于所示方法,擴大因子可以是任意數(shù)量。在一個實施例中,擴大因子 可以是0。在此實施例中,如果發(fā)生擁塞事件,擁塞窗大小可以完全不增 加。在其他例子中,擴大因子可以包括O. 1、 .5、 .75、 .9、 1、 1.1、 1,2、 1.3、 1.4、 1.5、 1.6、 1.7、 1.8、 1.9或者2,或者此范圍內(nèi)的任一數(shù)量。 仍在其他實施例中,縮小因子可以包括2. 1、 2.5、 3、 3.5、 4、 4.5、 5、 5.5、或者6或者此范圍內(nèi)的任一數(shù)量。在一些實施例中,小于l的擴大 因子可以關(guān)于較低優(yōu)先級的連接來使用。在一些實施例中,大于1的擴 大因子可以關(guān)于較高優(yōu)先級的連接來使用。
0231發(fā)送器隨后確定第二擁塞窗大小,第二擁塞窗大小基于第 一擁塞窗大小和擴大因子來計算(步驟937 )。發(fā)送器可以以任一方式使 用擴大因子來計算第二擁塞窗大小。在一些實施例中,發(fā)送器可以將第 一擁塞窗大小乘以擴大因子。在其他實施例中,發(fā)送器可以將擴大因子 加到第一擁塞窗大小。仍在其他實施例中,發(fā)送器可以將被乘以擴大因 子的常數(shù)加到擁塞窗大小。例如,發(fā)送器可以將擴大因子與最大片段大 小的乘積加到擁塞窗大小。在其他實施例中,發(fā)送器還可以將一個或者 多個來回行程時間計算合并到計算結(jié)果中。例如,發(fā)送器可以設(shè)置第二 擁塞窗大小等于EF (MPS) +CWND—0LD*MIN—RTT/LAST_RTT,其中,EF是 擴大因子,MSS是最大分組大小,CWND_0LD是之前的擁塞窗大小,并且 MIN—RTT和LAST_RTT分別是連接的最小和最后的來回行程時間。
0232此時應(yīng)該認識到擴大因子可以被合并到響應(yīng)丟失事件來改 變擁塞窗大小的任意方法中,包括TCP的任一變量。在一些實施例中, 上述方法可以被應(yīng)用來改變TCP慢啟動方法的行為。例如,在慢啟動階 段分配給連接的初始擁塞窗可以關(guān)于連接的優(yōu)先級來確定。在此例中, 低優(yōu)先級的連接可以用1的初始擁塞窗啟動,而高優(yōu)先級的連接可以用4的擁塞窗啟動。
0233為了給出詳細的例子,在一個實施例中,發(fā)送器可以將最 大分組大小乘以擴大因子的乘積加到之前的擁塞窗大小。在此例中,發(fā) 送器可以分配.5的擴大因子給低優(yōu)先級的連接,分配1的擴大因子給正 常優(yōu)先級的連接,并且分配2的擴大因子給高優(yōu)先級的連接。
0234發(fā)送器可以隨后通過連接并根據(jù)第二擁塞窗大小來傳輸數(shù) 據(jù)。在一些實施例中,發(fā)送器可以繼續(xù)使用所示方法,使得擁塞窗在新 的分組丟失指示到來時繼續(xù)改變。
0235在有些實施例中,圖8B和8C中描述的方法可以結(jié)合一個 或者多個連接來使用。為了給出一個例子,用作對于多個連接的透明代 理的WAN優(yōu)化設(shè)備可以為每一個連接和對應(yīng)的擴大與縮小因子分配優(yōu)先 級。在此例中,優(yōu)先級和擴大與縮小因子可以關(guān)于每一連接的等待時間 來選擇。由于典型的TCP連接在等待時間增加時需要較長的時間來增速, 所以設(shè)備可以通過分配較高的擴大因子給較高的等待時間連接來對此計 數(shù)。按照這些方法,設(shè)備可以一全測多個連接的哪一個在WAN上傳播并且 相應(yīng)地增加那些連接的擴大因子。設(shè)備還可以分配較小的縮小因子給高 的等待時間連接,因為它們將比較緩慢地從擁塞窗大小的任一 突然下降 中恢復。這些較小的縮小因子還可以反映出這樣一個事實對于高的等 待時間連接越有可能瞬時擁塞已經(jīng)過去了丟失的分組的任一指示到達的 時間。該裝置因此可以使用擴大和縮小因子來平衡具有不同等待時間的 連接的各自帶寬。
0236雖然本發(fā)明參考特定的優(yōu)選實施例具體描述和示出,但是 本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該理解在不脫離由下面的權(quán)利要求書限定的 本發(fā)明的精神和保護范圍的情況下,可以在形式和細節(jié)上作出多種變化。
權(quán)利要求
1、一種用于由設(shè)備對使用透明代理對傳輸層數(shù)據(jù)通信提供服務(wù)質(zhì)量水平來控制連接帶寬的方法,所述方法包括(a)、通過對于發(fā)送器和接收器之間的傳輸層連接用作透明代理的設(shè)備來確定經(jīng)由傳輸層連接的發(fā)送器的傳輸率不同于預定的傳輸率;(b)、通過所述設(shè)備響應(yīng)于該確定來產(chǎn)生包含指示的確認分組以改變傳輸速率;并且(c)、通過所述設(shè)備傳輸將所產(chǎn)生的確認分組到發(fā)送器。
2、 權(quán)利要求1的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定產(chǎn) 生包含指示的確認分組以改變傳輸率,其中所述確認分組不響應(yīng)于從接收器 接收的確認而產(chǎn)生。
3、 權(quán)利要求1的方法,其中,步驟(a)包括通過對于發(fā)送器和接收器 之間的TCP連接用作透明代理的設(shè)備確定經(jīng)由該連接的發(fā)送器的傳輸率不同 于預定的傳輸率。
4、 權(quán)利要求1的方法,其中,步驟(a)包括通過對于多個發(fā)送器和接 收器之間的多個傳輸層連接用作透明代理的設(shè)備確定經(jīng)由該連接中 一個連接 的發(fā)送器的傳輸率不同于預定的傳輸率。
5、 權(quán)利要求l的方法,其中,步驟(a)包括(a-a )通過對于發(fā)送器和接收器之間的傳輸層連接用作透明代理的設(shè)備 確定發(fā)送器和接收器中的至少一個經(jīng)由廣域網(wǎng)連接到該設(shè)備;和(a-b )通過該設(shè)備確定所述傳輸層連接的發(fā)送器的傳輸率不同于預定的 傳輸率。
6、 權(quán)利要求1的方法,其中,步驟(a)包括通過對于發(fā)送器和接收器 之間的傳輸層連接用作透明代理的設(shè)備確定經(jīng)由該連接的發(fā)送器的傳輸率不 同于預定的傳輸率,所述預定的傳輸率對應(yīng)于分配給傳輸層連接的服務(wù)質(zhì)量 水平。
7、 權(quán)利要求1的方法,其中,步驟(a)包括通過對于發(fā)送器和接收器 之間的傳輸層連接用作透明代理的設(shè)備確定經(jīng)由該連接的發(fā)送器的傳輸率超 過預定的傳輸率。
8、 權(quán)利要求7的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定產(chǎn) 生包含指示的確認以降低傳輸層連接的窗大小。
9、 權(quán)利要求7的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定產(chǎn) 生包含指示的確認以降低傳輸層連接的窗大小,其中所述降低的窗大小不同 于接收器經(jīng)由傳輸層連接通告的窗大小。
10、 權(quán)利要求7的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定產(chǎn) 生包含標記的顯式擁塞通知位的確認。
11、 權(quán)利要求7的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定產(chǎn) 生包含分組已經(jīng)丟失的指示的確認。
12、 權(quán)利要求l的方法,其中,步驟(a)包括通過對于發(fā)送器和接收器 之間的傳輸層連接用作透明代理的設(shè)備確定經(jīng)由該連接的發(fā)送器的傳輸率低 于預定的傳輸率。
13、 權(quán)利要求12的方法,其中,步驟(b)包括通過設(shè)備響應(yīng)于該確定 產(chǎn)生包含指示的確認以增加傳輸層連接的窗大小。
14、 一種用于使用透明代理對傳輸層數(shù)據(jù)通信提供服務(wù)質(zhì)量水平來控制 連接帶寬的計算機實現(xiàn)的系統(tǒng),所述系統(tǒng)包括-.網(wǎng)絡(luò)設(shè)備,對于一個或者多個發(fā)送器和一個或者多個接收器之間的傳輸 層連接用作透明代理,所述網(wǎng)絡(luò)設(shè)備包括流控制模塊,確定經(jīng)由傳輸層連接的發(fā)送器的傳輸率不同于預定的傳輸 率,并且響應(yīng)于該確定來產(chǎn)生包含的指示的確認以改變傳輸速率;和分組處理模塊,傳輸所產(chǎn)生的確認到發(fā)送器。
15、 權(quán)利要求14的系統(tǒng),其中,所述流控制器響應(yīng)于該確定來產(chǎn)生包含 指示的確認分組以改變傳輸率,其中所述確認不響應(yīng)于從接收器接收的確認 而產(chǎn)生。
16、 權(quán)利要求14的系統(tǒng),其中,所述傳輸層連接包括TCP連接。
17、 權(quán)利要求14的系統(tǒng),其中,所述網(wǎng)絡(luò)設(shè)備對于多個發(fā)送器和接收器 之間的多個傳輸層連接用作透明代理。
18、 權(quán)利要求14的系統(tǒng),其中,所述網(wǎng)絡(luò)設(shè)備還包括確定發(fā)送器和接收 器的其中至少一個經(jīng)由WAN連接到該設(shè)備的廣域網(wǎng)(WAN)探測器。
19、 權(quán)利要求14的系統(tǒng),其中,所述流控制模塊確定經(jīng)由該連接的發(fā)送器的傳輸率不同于預定的傳輸率,所述預定的傳輸率對應(yīng)于分配給傳輸層連 接的服務(wù)質(zhì)量水平。
20、 權(quán)利要求14的系統(tǒng),其中,所述流控制模塊確定經(jīng)由該連接的發(fā)送 器的傳輸率超過預定的傳輸率。
21、 權(quán)利要求20的系統(tǒng),其中,所述分組處理模塊響應(yīng)于該確定產(chǎn)生包 含指示的確認以降低傳輸層連接的窗大小。
22、 權(quán)利要求20的系統(tǒng),其中,所述分組處理模塊響應(yīng)于該確定產(chǎn)生包 含指示的確認以降低傳輸層連接的窗大小,其中所述降低的窗大小不同于接 收器經(jīng)由傳輸層連接通告的窗大小。
23、 權(quán)利要求20的系統(tǒng),其中,所述分組處理模塊響應(yīng)于該確定產(chǎn)生包 含標記的ECN位的確認。
24、 權(quán)利要求20的系統(tǒng),其中,所述分組處理模塊響應(yīng)于該確定產(chǎn)生包 含分組已經(jīng)丟失的指示的確認。
25、 權(quán)利要求14的系統(tǒng),其中,所述流控制模塊確定經(jīng)由該連接的發(fā)送 器的傳輸率低于預定的傳輸率。
26、 權(quán)利要求25的系統(tǒng),其中,所述分組處理模塊響應(yīng)于該確定產(chǎn)生包 含指示的確認以增加傳輸層連接的窗大小。
27、 一種用于使用透明代理對傳輸層數(shù)據(jù)通信提供服務(wù)質(zhì)量水平來控制 連接帶寬的方法,所述方法包括(a )通過用作透明代理的設(shè)備在發(fā)送器和接收器之間建立傳輸層連接, 該連接具有給定的優(yōu)先級;(b)通過該"i殳備為傳輸層連接分配傳輸率,所述傳輸率對應(yīng)于給定優(yōu)先級;輸率; ' 、、'、"、' "、s .、(d) 通過設(shè)備響應(yīng)于該確定產(chǎn)生包含指示的確認以改變傳輸率,其中所 述確認不響應(yīng)于從接收器接收的確認而產(chǎn)生;和(e) 通過所述設(shè)備向發(fā)送器傳輸所產(chǎn)生的確認。
28、 權(quán)利要求27的方法,其中,步驟(c)包括通過所述設(shè)備確定經(jīng)由 該連接的發(fā)送器的傳輸率超過所分配的傳輸率。
29、 權(quán)利要求28的方法,其中,步驟(d)包括通過設(shè)備響應(yīng)于該確定 產(chǎn)生包含指示的確認以降低傳輸層連接的窗大小,其中所述確認不響應(yīng)于從 接收器接收的確認而產(chǎn)生。
30、 權(quán)利要求28的方法,其中,步驟(d)包括通過設(shè)備響應(yīng)于該確定 產(chǎn)生包含標記的ECN位的確認,其中所述確認不響應(yīng)于從接收器接收的確認 而產(chǎn)生。
31、 權(quán)利要求28的方法,其中,步驟(d)包括通過設(shè)備響應(yīng)于該確定 產(chǎn)生包含分組已經(jīng)丟失的指示的確認,其中所述確認不響應(yīng)于從接收器接收 的確認而產(chǎn)生。
32、 權(quán)利要求27的方法,其中,步驟(c)包括通過所述設(shè)備確定經(jīng)由 該連接的發(fā)送器的傳輸率低于所分配的傳輸率。
33、 權(quán)利要求32的方法,其中,步驟(d)包括通過設(shè)備響應(yīng)于該確定 產(chǎn)生包含指示的確認以增加傳輸層連接的窗大小,其中所述確認不是來源于 傳輸層連接的端點。
全文摘要
本發(fā)明描述用于動態(tài)控制連接的帶寬的系統(tǒng)和方法。在有些實施例中,用于一個或者多個連接的代理可以分配、分布、或者產(chǎn)生經(jīng)由一個或者多個連接的網(wǎng)絡(luò)擁塞的指示,用于引導連接的發(fā)送器來降低它們的傳輸速率。代理可以以為一個或者多個連接提供服務(wù)質(zhì)量或者確保多個連接在可接受的帶寬限制中傳輸?shù)姆绞絹矸峙?、分布或者產(chǎn)生這些指示。在其他實施例中,傳輸層連接的發(fā)送器可以具有用于確定計及連接的優(yōu)先權(quán)的擁塞指示的響應(yīng)的方法。在這些實施例中,發(fā)送器可以根據(jù)連接的優(yōu)先權(quán)來在不同的速率處降低或者提高和傳輸速率相關(guān)的參數(shù)。
文檔編號H04L12/56GK101682566SQ200880015831
公開日2010年3月24日 申請日期2008年3月11日 優(yōu)先權(quán)日2007年3月12日
發(fā)明者R·普拉蒙東 申請人:思杰系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
盘山县| 贡山| 永吉县| 康定县| 兴安盟| 九龙城区| 含山县| 嵊州市| 东乌珠穆沁旗| 六盘水市| 肥乡县| 津南区| 古田县| 湘潭市| 安阳县| 抚松县| 漳平市| 罗源县| 右玉县| 于田县| 安岳县| 白山市| 武陟县| 大厂| 建阳市| 平阳县| 轮台县| 石城县| 清丰县| 德江县| 五家渠市| 元朗区| 连南| 太谷县| 繁峙县| 峨山| 财经| 福建省| 三门县| 福建省| 青冈县|