專利名稱:用于通過代理進行動態(tài)帶寬控制的系統(tǒng)和方法
技術(shù)領(lǐng)域:
0002本發(fā)明總的涉及數(shù)據(jù)通信網(wǎng)絡(luò)。更具體地,本發(fā)明涉及用 于通過一個或者多個連接的代理來動態(tài)控制帶寬的系統(tǒng)和方法。
背景技術(shù):
0003不同類型的網(wǎng)絡(luò)業(yè)務(wù)量對于網(wǎng)絡(luò)性能具有不同的敏感性。 關(guān)于等待時間,大的文件傳輸通過在連接的等待時間中的適度增加而可 以相對不受影響。相反,通過在導致較慢的應(yīng)用響應(yīng)時間的等待時間中 改變,諸如VoIP、遠程進程調(diào)用、媒體流、應(yīng)用流和遠程應(yīng)用執(zhí)行的交 互式業(yè)務(wù)量受到顯著影響。
0004現(xiàn)有的服務(wù)質(zhì)量(QoS)系統(tǒng)嘗試將交互式業(yè)務(wù)量列入優(yōu)先 地位來降低等待時間,但是面臨許多困難。第一、QoS的帶寬分配方法可 以確保一定數(shù)量的交互式業(yè)務(wù)量具有該帶寬來通過網(wǎng)絡(luò),但是帶寬分配 不能保證等待時間。第二,交互式業(yè)務(wù)量難以識別。許多端口和應(yīng)用運 載混合交互式、流式和整體(bulk)的業(yè)務(wù)量。因此,基于端口或者基 礎(chǔ)應(yīng)用的簡單的優(yōu)先排序分組不能正確地識別等待時間敏感的業(yè)務(wù)量。 這就需要一種方法來基于業(yè)務(wù)量的等待時間敏感度來識別和優(yōu)先排序網(wǎng)絡(luò)業(yè)務(wù)量。
0005關(guān)于交互式或者流式業(yè)務(wù)量的等待時間的附加的潛在原因 是丟失的分組。丟失的分組對于包含諸如交互式或者流式業(yè)務(wù)量的業(yè)務(wù) 量產(chǎn)生附加的成本,其在傳輸?shù)姆纸M之間可以包括顯著大的間隙。當這 些間隙發(fā)生時,由于不存在隨后的分組來通知接收器最后一個分組的存
在,則接收器不能識別間隙之前緊鄰的分組是否丟失。諸如TCP的許多 協(xié)議可以使用重傳輸超時(RT0)來發(fā)現(xiàn)和改正諸如一個群的最后一個分 組已經(jīng)丟失的情況。然而,RTO僅可以提供對分組丟失導致的延遲的粗略 控制。在一些協(xié)議中,RTO將是開銷非常大,諸如TCP,其中RT0默認為 整一秒。因此需要一種方法來避免這些重傳輸超時以改進連接性能。
0006進一步,在包括例如TCP的一些協(xié)議中,使用重傳輸作為 提供可靠數(shù)據(jù)流的方法。除了標準的重傳輸延遲之外,當重傳輸?shù)姆纸M 也丟失時,可以引發(fā)額外的延遲。在一些情況中,重傳輸分組的丟失可 以導致延遲等于整個往返時間。這種延遲可以對于對時間每文感的網(wǎng)絡(luò)業(yè) 務(wù)量產(chǎn)生嚴重的影響。因此,需要一種系統(tǒng)和方法來減輕或者避免由丟 失的重傳輸導致的延遲。
發(fā)明內(nèi)容
0007本發(fā)明涉及用于在對和網(wǎng)絡(luò)業(yè)務(wù)量相關(guān)的決策進行排隊并 重傳輸中利用事務(wù)邊界檢測方法的系統(tǒng)和方法。通過檢測事務(wù)的邊界和 大小,客戶機、服務(wù)器或者中間裝置可以在對決策排隊中基于事務(wù)大小 優(yōu)先排序,將優(yōu)先級賦予可以表示交互式和/或等待時間敏感的業(yè)務(wù)量的 較小事務(wù)。進一步,在檢測事務(wù)邊界之后,裝置可以重傳輸提示確認的 一個或者多個附加的分組,用來確保如果事務(wù)的最后一個分組已經(jīng)丟失 時的及時通知。本發(fā)明還涉及用于潛在地改進網(wǎng)絡(luò)等待時間的其他重傳 輸系統(tǒng)和方法,包括兩次或者多次重傳輸丟失的分組,用來避免由于重 傳輸分組的丟失而導致的附加的延遲。
0008在一個方面中,本發(fā)明涉及用于基于事務(wù)大小將等待從中 間設(shè)備傳輸?shù)姆纸M優(yōu)先排序的方法。在一個實施例中,該方法包括通 過中間設(shè)備接收第 一分組和第二分組。中間設(shè)備可以隨后確定對應(yīng)于第一分組的第一事務(wù)大小或者對應(yīng)于從中接收第一分組的連接的平均事務(wù) 大小。中間設(shè)備可以分配第一傳輸優(yōu)先級給第一分組,響應(yīng)于所確定的 第一事務(wù)大小來確定所述傳輸優(yōu)先級。所述中間設(shè)備隨后可以傳輸?shù)谝?分組和第二分組,其中根據(jù)第 一分配的傳輸優(yōu)先級來確定傳輸順序。
0009在第二方面中,本發(fā)明涉及用于基于事務(wù)大小將等待從中 間裝置傳輸?shù)姆纸M優(yōu)先排序的系統(tǒng)。在一個實施例中,該系統(tǒng)包括接 收第一分組和第二分組的分組處理器;和確定與第一分組相關(guān)聯(lián)的第一 事務(wù)大小的流控制器;響應(yīng)于所確定的第一事務(wù)大小,為第一分組分配 傳輸優(yōu)先級;并且根據(jù)所分配的傳輸優(yōu)先級來傳輸?shù)谝环纸M和第二分組。
0010在第三方面中,本發(fā)明涉及用于通過基于識別事務(wù)邊界來 選擇性傳輸來自中間裝置的附加的分組而降低傳輸超時的方法。在一個 實施例中,該方法包括通過裝置經(jīng)由發(fā)送器和接收器之間的傳輸層連 接來接收來自發(fā)送器經(jīng)由第一傳輸層連接的第 一分組;通過所述裝置將 所述第一分組發(fā)送到所述接收器;通過所述裝置確定第一分組小于傳輸 層連接的最大分組大?。煌ㄟ^裝置響應(yīng)于該確定而產(chǎn)生至少一個附加的 分組;并且通過裝置在所述第一分組已經(jīng)傳輸?shù)浇邮掌髦蠼?jīng)由傳輸層 連接來傳輸所述至少 一個附加的分組到接收器。
0011在第四方面中,本發(fā)明涉及用于通過基于識別事務(wù)邊界來 選擇性傳輸來自中間裝置的附加分組而降低傳輸超時的系統(tǒng)。在一個實 施例中,該系統(tǒng)包括用作對于發(fā)送器和接收器之間的傳輸層連接的中 間設(shè)備的裝置,該裝置包括分組處理器,其經(jīng)由第一傳輸層連接接收 來自發(fā)送器的第一分組;并且將所述第一分組發(fā)送到所述接收器;和流 控制器,其用于確定第一分組小于傳輸層連接的最大分組大??;響應(yīng)于 該確定,產(chǎn)生至少一個附加的分組;并且在所述第一分組已經(jīng)傳輸?shù)浇?收器之后,經(jīng)由傳輸層連接來傳輸所述至少一個附加的分組到接收器。
0012在第五方面中,本發(fā)明涉及用于在發(fā)送器和接收器之間重 傳輸網(wǎng)絡(luò)分組來降低與傳輸層連接相關(guān)聯(lián)的傳輸錯誤的方法。在一個實 施例中,該方法包括通過裝置接收經(jīng)由傳輸層連接傳輸?shù)木W(wǎng)絡(luò)分組沒 有被接收器接收的指示;通過該裝置響應(yīng)于該指示來重傳輸所述網(wǎng)絡(luò)分 組到所述接收器;通過該裝置確定和傳輸層連接相關(guān)聯(lián)的分組丟失率;通過該裝置響應(yīng)于所確定的分組丟失率來確定多個附加的重傳輸;并且
通過該裝置根據(jù)附加的重傳輸?shù)拇_定數(shù)量來重傳輸所述網(wǎng)絡(luò)分組。
0013在第六方面中,本發(fā)明涉及用于在發(fā)送器和接收器之間重 傳輸網(wǎng)絡(luò)分組來降低與傳輸層連接相關(guān)聯(lián)的傳輸錯誤的系統(tǒng)。在一個實 施例中,該系統(tǒng)包括分組處理器,其接收經(jīng)由傳輸層連接傳輸?shù)木W(wǎng)絡(luò) 分組沒有被接收器接收的指示;并且響應(yīng)于該指示來重傳輸所述網(wǎng)絡(luò)分 組到所述接收器;和與分組處理器通信的流控制器,其確定和傳輸層連 接相關(guān)聯(lián)的分組丟失率;響應(yīng)于所確定的分組丟失率來確定多個附加的 重傳輸;并且根據(jù)附加的重傳輸?shù)拇_定數(shù)量來重傳輸所述網(wǎng)絡(luò)分組。
0014在下面附圖和具體實施方式
中提出本發(fā)明的多種實施例的
細節(jié)。
0015參考結(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)化設(shè)備來與服務(wù)器進行通信的客戶機的實施例的 框圖4是取樣TCP分組的框圖; 圖4示出取樣的TCP分組;
圖5是傳輸可以分類為事務(wù)的分組群的多個客戶機的示意圖;圖6是用于基于事務(wù)大小將等待從中間裝置傳輸?shù)姆纸M優(yōu)先排序的
方法的流程圖7A和7B描述用于使用事務(wù)邊界來降低超時處罰的系統(tǒng)和方法;
和
圖8A和8B描述用于在發(fā)送器和接收器之間重傳輸網(wǎng)絡(luò)分組來降低 與傳輸層連接相關(guān)聯(lián)的傳輸開銷的系統(tǒng)和方法。
0016根據(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ù)邊界來確定傳輸優(yōu)先級的系統(tǒng)和方法的實 施例5 和
部分E描述用于降低和網(wǎng)絡(luò)連接相關(guān)聯(lián)的超時處罰和開銷的系統(tǒng)和 方法的實施例。
A.網(wǎng)絡(luò)和計算環(huán)境
0018在討論設(shè)備和/或客戶機的系統(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è)備200'可以位 于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ò)104、網(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上的服務(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)化設(shè)備200并且在網(wǎng)絡(luò)1 Of和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'上。在一些實施例中,設(shè)備200'可以位于網(wǎng)絡(luò)104'或者網(wǎng)絡(luò)104〃 上。例如設(shè)備200可以位于公司的數(shù)據(jù)中心。在一個實施例中,設(shè)備200 和i殳備200'可以位于相同網(wǎng)絡(luò)上。在另一個實施例中,設(shè)備200和設(shè)備 20(T可以位于不同網(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. Lauder da 1 e F1 or i da 的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/>司出品的蟲工縛(steelhead)系歹寸 WAN優(yōu)化設(shè)備中的任意一種。在其它實施例中,設(shè)備205包括由位于 Roseland, NewJersey的Expand Networks 乂>司出品的WAN相關(guān)裝置中的 任意一種。在一個實施例中,i殳備200包括由位于Cupertino, California 的Packeteer公司出品的4壬意一種WAN相關(guān)i殳備,例如由Packeteer提 供的PacketShaper、 iShared和SkyX產(chǎn)品實施例。在又一個實施例中, i殳備200包4舌由4立于San Jose, California的Cisco Systems/>司出品 的任意WAN相關(guān)設(shè)備和/或軟件,例如C i sco廣域網(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加速文件的遞送,例
19如經(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的孩1軟/>司出品的WINDOWS NT)來進行操作,而一個或多個其它的服務(wù)器106可以根據(jù)另 一種類型的操作系統(tǒng)平臺(例如,Unix或Linux)來進行4喿作。每個群組38中的服務(wù)器106不需要與同一群組38中的另一個服務(wù)器106物理上接近。因此,邏輯上被分組為群組38的服務(wù)器106的組可以-使用廣域網(wǎng)(WAN)連接或城域網(wǎng)(MAN)連接來互連。例如,群組38可以包括在物理上位于不同的洲或位于一個洲、國家、州、城市、沖史園或房間的不同區(qū)域的服務(wù)器106。如果4吏用局域網(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可以包括活動目錄(Active Directory )。客戶機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上。在其他實施例中,第二設(shè)備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)品實施例。由此,在一些實施例中,i殳備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路由的。在其它實施例中,客戶機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地址??蛻魴C102具有諸如第一網(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-102n和服務(wù)器106a-106n之間提供虛擬專用網(wǎng)絡(luò)。在一些實施例中,加密引擎使用加密處理器。在其他實施例中,加密引擎包括在加密處理器上運行的可執(zhí)行指令。
0037在一些實施例中,設(shè)備205提供下列一個或多個加速技術(shù)來在客戶機102和服務(wù)器106之間進行通信l)壓縮;2)解壓縮;3)傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路復(fù)用;5)傳輸控制協(xié)議緩沖;以及6)高速緩存。在一個實施例中,設(shè)備200通過重復(fù)地打開與每個服
23務(wù)器106的一個或多個傳輸層連接并維持這些連接以允許客戶機經(jīng)由因
特網(wǎng)的重復(fù)數(shù)據(jù)訪問來減輕服務(wù)器106的通過反復(fù)打開和關(guān)閉到客戶機 102的傳輸層連接所造成的大量處理負載。這個技術(shù)在這里被稱為"連接 池(connection pooling)',。
0038在一些實施例中,為了經(jīng)由池化的傳輸層連接來無縫拼接 從客戶機102到服務(wù)器106的通信,設(shè)備205通過在傳輸層協(xié)議級修改 序號和確認號來轉(zhuǎn)換或多路復(fù)用通信。這被稱為"連接多路復(fù)用"。在一 些實施例中,不需要應(yīng)用層協(xié)議相互作用。例如,在入站分組(即,接 收來自客戶機102的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)?設(shè)備205的輸出端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址^L改變?yōu)轭A(yù)期的服務(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)檎埱蟮目?戶機102的網(wǎng)絡(luò)地址。所述分組的序號和確認號也被轉(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不可用或具有超過預(yù)定 閾值的負載,則設(shè)備205可以將客戶機請求引向或分配到另一個服務(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è)備200'寄載的IP地址的客戶機的DNS請求。在一些實施例中,設(shè)備 205響應(yīng)具有由設(shè)備200確定的服務(wù)器106的IP地址的客戶機的DNS請 求。
0041在又一個實施例中,設(shè)備205為客戶機102和服務(wù)器106 之間的通信提供應(yīng)用防火墻功能。在一個實施例中,策略引擎295'提供 用于檢測和阻塞非法請求的規(guī)則。在一些實施例中,應(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 Nat Scaler設(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通
26信的高速緩存140。
0046中央處理單元101是響應(yīng)并處理取自主存儲器單元122的 指令的任意邏輯電路。在許多實施例中,中央處理單元由微處理器單元 提供,例如由位于Mountain View, Cal ifornia的Intel公司出品的產(chǎn) 品;由位于Schaumburg, Illinois的Motorola公司出品的產(chǎn)品;由位于 Santa Clara, Cal if ornia的Transmeta公司出品的產(chǎn)品;由位于White Plains, New York的國際商業(yè)機器公司出品的RS/6000處理器;或者由位 于Sunnyvale, Cal ifornia的Advanced Micro Devices公司出品的產(chǎn)品。 計算裝置100可以基于任意的這些處理器、或者可以如此處所描述地操 作的任意其它處理器。
0047主存儲器單元122可以是能夠保存數(shù)據(jù)并允許微處理器101 直接訪問任意存儲位置的 一個或多個存儲芯片,例如靜態(tài)隨機存取存儲 器(SRAM)、突發(fā)式SRAM或同步突發(fā)式SRAM (BSRAM)、動態(tài)隨機存取存 儲器(DR認)、快速頁面才莫式DRAM (FPM DRAM)、增強型DRAM (EDRAM)、 擴展數(shù)據(jù)輸出RAM (EDO RAM)、擴展數(shù)據(jù)輸出DRAM (EDO DR細)、突發(fā)式 擴展數(shù)據(jù)輸出DRAM( BED0 DRAM )、增強型DRAM( EDR趨)、同步DRAM( SDRAM )、 JEDEC SRAM、 PCI00 SDRAM、雙數(shù)據(jù)速率SDRAM ( DDR SDRAM )、增強型SDRAM (ESDR細)、同步鏈接DR雄(SLDR組)、直接Rambus DRAM ( DRDR雄)、或 鐵電RAM ( FRAM )。主存儲器122可以基于任意一種上面描述的存儲芯片、 或者可以如此處所描述地操作的任意其它可用的存儲芯片。在圖1C中所 示的實施例中,處理器101通過系統(tǒng)總線150與主存儲器122進行通信 (在下面進行更詳細的描述)。圖1C描述了在其中處理器通過存儲器端 口 103直接與主存儲器122通信的計算裝置100的實施例。例如,在圖 ID中,主存儲器122可以是DRDRAM。
0048圖1D描述了在其中主處理器IOI通過有時被稱為背端總線 的次級總線來直接與高速緩存140通信的實施例。在其它實施例中,主 處理器101使用系統(tǒng)總線150與高速緩存140進行通信。高速緩存140 典型地具有比主存儲器122更快的響應(yīng)時間,并且典型地通過SRAM、BSRAM 或EDRAM來提供。在圖1C中所示的實施例中,處理器101通過本地系統(tǒng) 總線150與多個I/O裝置130進行通信。多種總線可以用來將中央處理單元101連接到任意一種I/O裝置130,所述總線包括VESA VL總線、ISA 總線、EISA總線、微通道架構(gòu)(MCA)總線、PCI總線、PCI-X總線、 PCI-Express總線或NuBus。對于1/0裝置是視頻顯示器124的實施例, 處理器101可以使用高級圖形端口 (AGP)來與顯示器124進行通信。圖 ID描述了在其中主處理器101通過HyperTransport、快速I/O或 Inf iniBand來直4妄與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或其部分的 軟件和程序的任意其它裝置。計算裝置IOO還可以包括存儲裝置128,例 如一個或多個硬盤驅(qū)動器或獨立盤的冗余陣列,用于保存操作系統(tǒng)及其 它相關(guān)軟件,以及用于保存諸如與客戶機代理120相關(guān)的任意程序的應(yīng) 用軟件程序??蛇x地,任意一種安裝裝置116還可以被用作存儲裝置128。 另外,操作系統(tǒng)和軟件可以從可引導介質(zhì)中運行,所述可引導介質(zhì)例如 像KNOPPIX⑧的可引導CD,作為來自于kn叩pix. net可用作GNU/Linux分 發(fā)的G冊/Linux的可引導CD。
0050進一步地,計算裝置100可以包括通過多種連接接口到局 域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng)的網(wǎng)絡(luò)接口 118,所述多種連接包 括但不限于標準電話線、LAN或WAN鏈3各(例如,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)器或適于將計算裝置100接口到可以傳達并執(zhí)行此處 所描述的操作的任意類型的網(wǎng)絡(luò)的任意其它裝置。各式各樣的I/O裝置 130a-130n可以存在于計算裝置100中。輸入裝置包括^建盤、鼠標、軌跡 墊、軌跡球、麥克風以及繪畫板。輸出裝置包括視頻顯示器、揚聲器、噴墨打印機、激光打印機和染料升華打印機。I/O裝置130可以由如圖
IE所示的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可以包括或連接到多個顯 示裝置124a-124n,每個顯示裝置可以是相同或不同的類型和/或形式。 因而,任意一種1/0裝置130a-130n和/或1/0控制器123可以包括任意 類型和/或形式的適當?shù)挠布④浖蛴布蛙浖慕M合,以支持、允許 或提供通過計算裝置IOO連接和使用多個顯示裝置124a-124n。例如,計 算裝置100可以包括任意類型和/或形式的視頻適配器、視頻卡、驅(qū)動器 和/或庫,以接口、通信、連接或以其他方式使用顯示裝置124a-124n。 在一個實施例中,視頻適配器可以包括多個連接器以接口多個顯示裝置 124a-124n。在其它實施例中,計算裝置100可以包括多個視頻適配器, 每個視頻適配器連接到一個或多個顯示裝置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總線、Apple Desktop總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire 800總線、以太網(wǎng)總線、A卯leTalk總線、吉比特以太網(wǎng)總線、異步傳送 模式總線、HIPPI總線、超HIPPI總線、SerialPlus總線、SCI/LAMP總 線、FibreChannel總線或串行附加小型計算機系統(tǒng)接口總線。
290053圖1C和ID中描述類型的計算裝置100典型地在控制任務(wù) 的調(diào)度和對系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計算裝置100可 以運行任意操作系統(tǒng),例如任意一種版本的微軟⑧Windows操作系統(tǒng)、不 同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計算才幾的任意版本的 MacOS⑧、任意的嵌入式搡作系統(tǒng)、任意的實時操作系統(tǒng)、任意的開放源 操作系統(tǒng)、任意的專用操作系統(tǒng)、用于移動計算裝置的任意操作系統(tǒng)、 或者可以運行在計算裝置上并執(zhí)行此處所描述的操作的任意其它操作系 統(tǒng)。典型的操作系統(tǒng)其中包括WINDOWS 3. x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3. 51、 WINDOWS NT 4. 0、 WINDOWS CE、 WINDOWS 2003 、 WINDOWS XP和 WINDOWS SISTA , 所有這些均由位于 Redmond, Washington的《效壽欠/>司出品;由^f立于Cupert ino, California的 蘋果計算機出品的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是由Palm/^司出品的Treol80、 270、 1060、 600或650智能電話。 在該實施例中,Treo智能電話在PalmOS操作系統(tǒng)的控制下操作,并包括 指示筆輸入裝置以及五向?qū)Ш窖b置。在另一個實施例中,計算裝置100 可以是具有ARM (高級RISC機器)類型的處理器的WinCE或者PchetPC。 在一個例子中,計算裝置100包括Finland的Nokia出品的Series 80 (Nokia 9500或者Nokia 9300 )類型的智能電話,其可以運4亍United Kingdom, London的Symbian軟件有限公司出品的Symbian OS或者EPOC 移動^^喿作系統(tǒng)。在另一個實施例中,計算裝置100可以包括Illimois, Schamnburg的Motorola公司出品的FOMAM100品牌的智能電話,并且操 作EPOC或者Symbian OS操作系統(tǒng)。在又一個實施例中,計算裝置100 包括North Carolina, Research Triangle Park的索尼愛立信通信(USA ) 公司出品的Sony Ericsson P800、 P900或者P910 Alpha模型電話(modelphone )。此外,計算裝置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。簡單概述,客戶機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)19G的服務(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)用和數(shù)據(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)用和數(shù)據(jù)文件。響應(yīng)于請求,應(yīng)用遞送系統(tǒng)290和/或服務(wù)器106可以遞送應(yīng)用和數(shù)據(jù)文件到客戶機102。例如,在一個實施例中,月l務(wù)器106可以以應(yīng)用流的形式發(fā)送該應(yīng)用,以在客戶才幾102上的計算環(huán)境215中進行操作。
0059在一些實施例中,應(yīng)用遞送系統(tǒng)290包括Citrix Systems公司的例如MetaFrame或Citrix表示(Presentation )服務(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。在一些實施例中,策略引擎2 9 5確定用戶或客戶機10 2可以訪問的 一 個或多個應(yīng)用。在另一個實施例中,策略引擎295確定應(yīng)用應(yīng)該如何被遞送給用戶或客戶機102,例如執(zhí)行方法。在一些實施例中,應(yīng)用遞送系統(tǒng)290提供從中選擇應(yīng)用執(zhí)行方法的多個遞送技術(shù),例如基于服務(wù)器的計算、本地流式傳輸或遞送應(yīng)用給客戶機12 0以用于本地抽J亍。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選褲,預(yù)定數(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)290可以選擇執(zhí)行應(yīng)用的方法,1吏得本地機器102 可以在^f全索包括應(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, Wash i ng ton的微軟公司出品的遠程桌面協(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)
33用。在一個實施例中,服務(wù)器106或服務(wù)器群組38作為應(yīng)用而執(zhí)行Ci tr ix Systems公司的例如MetaFrame或Citrix表示服務(wù)器TM的Citrix訪問 套件TM的任意部分和/或由微軟公司出品的任意一種微軟⑧Windows終端 服務(wù)。在一個實施例中,應(yīng)用是由位于Fort Lauderdale, Florida的 CUrix Systems公司開發(fā)的ICA客戶機。在其它實施例中,應(yīng)用包括由 位于Redmond, Washington的微軟公司開發(fā)的遠程桌面(RDP )客戶機。 此外,服務(wù)器106可以運行應(yīng)用,例如,所述服務(wù)器106可以是提供例 如由位于Redmond, Washington的凝:專欠/>司出品的孩i專欠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的孩支專欠/>司才是供的樣i軟 Office Live Meeting。 示例設(shè)備架構(gòu)
0064圖2A還示出設(shè)備200的示例實施例。僅通過示例來提供圖 2A中的設(shè)備200的架構(gòu)并且不意于以任一方式受限。設(shè)備200可以包括 任一類型和形式的計算裝置100,諸如結(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 4喿作系統(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ò)堆棧267包括用于網(wǎng)絡(luò)協(xié)議套件的軟件實現(xiàn)。網(wǎng)絡(luò)堆棧267可以包 括一個或多個網(wǎng)絡(luò)層,例如如本領(lǐng)域技術(shù)人員所認識和理解的開放系統(tǒng) 互連(0SI)通信模型的任意網(wǎng)絡(luò)層。因而,網(wǎng)絡(luò)堆棧267可以包括用于 下列OSI模型的任意一層的任意類型和形式的協(xié)議l)物理鏈路層,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/IP協(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é)議的擁塞預(yù)測協(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ū)動 程序可以被包括作為計算裝置100的搡作系統(tǒng)的一部分或作為計算裝置 100的任意網(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è)備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è)備200使用多個網(wǎng)絡(luò)堆棧,例如267A和267B。 在這些實施例中,第一傳輸層連接可以在一個網(wǎng)絡(luò)堆棧267A處建立或者 終接,而第二傳輸層連接可以在第二網(wǎng)絡(luò)堆棧267N處建立或者終接。例 如, 一個網(wǎng)絡(luò)堆棧可以用于在第一網(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)化引擎250可以運行在內(nèi)核空間中。在另一個實施 例中,網(wǎng)絡(luò)優(yōu)化引擎250可以運行在用戶空間中。在又一個實施例中, 網(wǎng)絡(luò)優(yōu)化引擎250的第一部分運行在內(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接收和發(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ò) 分組。分組引擎24G可以包括分組處理定時器。在一個實施例中,分組 處理定時器提供一個或多個時間間隔以觸發(fā)輸入(即,接收)或輸出(即, 發(fā)送)的網(wǎng)絡(luò)分組的處理。在一些實施例中,分組引擎240響應(yīng)于定時 器來處理網(wǎng)絡(luò)分組。分組處理定時器提供任意類型和形式的信號給分組 引擎240,以通知、觸發(fā)或通信時間相關(guān)的事件、間隔或發(fā)生。在許多實 施例中,分組處理定時器以例如Y象IOO毫秒、50毫秒、25毫秒、IO毫秒、 5毫秒或者1毫秒的這樣的毫秒級來進行操作。
0076在操作期間,分組引擎24 0可以與諸如LAN/WAN探測器210 、 流控制器220、 Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存 管理器232和/或策略引擎295'的網(wǎng)絡(luò)優(yōu)化引擎250的任一部分接口 、集 成或通信。因而,可以響應(yīng)于分組處理定時器和/或分組引擎24Q來^L行 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處理和保存的數(shù)據(jù)、對象或內(nèi)容可以包括諸如標記語言的或者通 過任意協(xié)議通信的任意類型的數(shù)據(jù)。在一些實施例中,高速緩存管理器
232復(fù)制存儲在別處的原始數(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可以提供策略,用于高速緩存哪些數(shù)據(jù)、何時高速緩存數(shù)據(jù)、 高速緩存數(shù)據(jù)用于誰、何時終止高速緩存中的對象或者刷新高速緩存。
39在其它實施例中,策略引擎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)290的策略引擎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也可以^t稱為多協(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ù)的隨意類型的P0P、 IMAP、 SMTP 和HTTP所有移動文件。
0083在一個實施例中,壓縮引擎238使用德爾塔類型的壓縮算 法。在另一個實施例中,壓縮引擎238使用第一位置壓縮以及在高速緩 存、存儲器或者盤中保存的數(shù)據(jù)上搜索重復(fù)的模式。在一些實施例中, 壓縮引擎238使用無損壓縮算法。在其他實施例中,壓縮引擎使用有損 壓縮算法。在一些情況中,知道數(shù)據(jù)類型和有時來自用戶的許可被要求 使用有損壓縮算法。在一些實施例中,壓縮不限于協(xié)議的凈荷。協(xié)議自 身的控制字段可以被壓縮。在一些實施例中,與對于凈荷的使用不同, 壓縮引擎238對于控制字賴:使用不同的算法。
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é) 議的擁塞預(yù)測協(xié)議以及TCP欺騙協(xié)議。
0087因而,多協(xié)議壓縮引擎238為經(jīng)由桌面客戶機以及甚至移 動客戶機訪問應(yīng)用的用戶加速性能,所述桌面客戶機例如微軟Outlook 以及諸如由諸如Oracle、 SAP和Siebel的通用的企業(yè)應(yīng)用所啟動的任意 客戶機的非web瘦客戶機,所述移動客戶機例如掌上電腦。在一些實施 例中,通過與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎240結(jié)合在一起,多協(xié) 議壓縮引擎238可以壓縮由傳輸層協(xié)議所攜帶的任意一種協(xié)議,諸如任 意應(yīng)用層協(xié)議。
LAN/WAN纟企測器
0088LAN/WAN檢測器238包括用于自動檢測慢側(cè)連接(例如諸如 內(nèi)聯(lián)網(wǎng)的廣域網(wǎng)(WAN)連接)和相關(guān)端口 267以及快側(cè)連接(例如局域網(wǎng)(LAN)連接)和相關(guān)端口 267的任一邏輯、商業(yè)規(guī)則、功能或者操作。 在一些實施例中,LAN/WAN檢測器2 38監(jiān)控設(shè)備2 00的網(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ù)語。這樣的配置可以用在復(fù)雜 網(wǎng)絡(luò)拓樸中,其中網(wǎng)絡(luò)僅在和相鄰網(wǎng)絡(luò)比較時是"快"或"慢"的并且 在某種意義上不是絕對的。
0090在一個實施例中,LAN/WAN檢測器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的"較高"速鏈路。到達一個端口的任一分組 被復(fù)制到其它端口。因此,設(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分組來將設(shè) 備200'的存在告知設(shè)備200。當設(shè)備200接收到此分組,則兩個設(shè)備200 和200,此時互相察覺并且該連接可以被適當加速。
0092進一步到LAN/WAN 4企測器238的操作,描述用于4吏用SYN 分組來4企測網(wǎng)絡(luò)的"快"和"慢"側(cè)的方法或者過程。在客戶機102和 服務(wù)器106之間的傳輸層連接建立期間,設(shè)備200經(jīng)由LAN/WAN檢測器 238確定SYN分組是否用確認(ACK)來被標記。如果其被標記,則設(shè)備 200將接收標記的SYN分組(SYN-ACK)的端口識別或者配置為"慢"側(cè)。 在一個實施例中,設(shè)備200可選地在將分組復(fù)制到其它端口之前將ACK 標記從分組移除。如果LAN/WAN檢測器238確定分組未被標記,則設(shè)備 200將接收未標記的SYN分組的端口識別或者配置為"快"側(cè)。設(shè)備200 隨后用ACK來標記SYN分組并且將分組復(fù)制到其它端口 。
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可選地在將分組復(fù)制到其它端口之前將ACK標記從分組移 除。如果LAN/WAN檢測器238確定分組未被標記,則設(shè)備2QQ將接收未 標記的分組的端口識別或者配置為"快"側(cè)。LAN/WAN檢測器238確定 SYN分組是否被標記。如果SYN分組未被標記,則設(shè)備200將分組復(fù)制到 其它端口。如果SYN分組被標記,則設(shè)備在將SYN-ACK分組復(fù)制到其它 端口之前標i己該SYN-ACK端口 。
0094設(shè)備200、 200,可以增加、插入、修改、附加或者以其他 方式提供TCP選項中的任意信息或者數(shù)據(jù)來提供關(guān)于網(wǎng)絡(luò)連接、網(wǎng)絡(luò)業(yè) 務(wù)流或者設(shè)備200的配置或者操作的任意信息、數(shù)據(jù)或者特征。以此方 式,設(shè)備2Q0不僅將其存在通知給另一個設(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ò)端口的操作。
但是LAN/WAN檢測器238還可以被用于將設(shè)備200的任意類型的功能、 邏輯或者操作應(yīng)用到網(wǎng)絡(luò)業(yè)務(wù)量的端口、連接或者流。更具體地,無論 裝置在何時在不同端口上執(zhí)行不同的功能,都可以發(fā)生端口的自動分配, 其中,在單元操作期間可以做出對任務(wù)的端口分配,和/或由設(shè)備200可 以發(fā)現(xiàn)每一端口上的網(wǎng)絡(luò)段的性質(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被配置具有涉及瓶頸帶 寬的預(yù)定數(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)預(yù)確認,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或 者任意其它計算裝置。
預(yù)確認
0102對于預(yù)確認流控制技術(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ù),其確定該數(shù)據(jù)發(fā)往VPN 設(shè)備205。由于所選擇的網(wǎng)絡(luò)拓樸,發(fā)往VPN設(shè)備205的所有數(shù)據(jù)傳播通 過設(shè)備200,使得設(shè)備200可以將任一必要的算法應(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)生確認分組(ACK)并且將ACK分組發(fā)送回客戶機102或者發(fā) 送端點。該ACK即預(yù)確認使得發(fā)送器102相信分組已經(jīng)被成功遞送,釋 放發(fā)送器的資源用于隨后的處理。在請求分組重新傳輸?shù)氖录校O(shè)備 200保留分組數(shù)據(jù)的備份,使得發(fā)送器102不必處理數(shù)據(jù)的重新傳輸。這 個確認的早期產(chǎn)生可以稱為"預(yù)確認"。
0104如果需要分組的重新傳輸,設(shè)備200將分組重新傳輸?shù)桨l(fā) 送器。設(shè)備200可以確定當發(fā)送器處于傳統(tǒng)系統(tǒng)中時是否需要重新發(fā)送, 例如,在預(yù)定時間之后對于該分組如果沒有接收到確認信息則確定分組 丟失。對此,設(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通過預(yù)確認 (也稱之為"預(yù)告知")的遞送來控制發(fā)送器102,如同設(shè)備200是接收 端點本身一樣。由于設(shè)備200不是端點并且實際上不消耗數(shù)據(jù),所以設(shè) 備200包括用于對發(fā)送端點提供過流控制的機制。無需過流控制,因為 設(shè)備200保存已經(jīng)預(yù)確認到發(fā)送端點但還沒有確認為由接收端點接收的 分組,所以設(shè)備200能夠用完存儲器。在發(fā)送器102發(fā)送分組到設(shè)備200 快于設(shè)備向下游轉(zhuǎn)發(fā)分組的情況中,設(shè)備200中可用于保存未確認分組 數(shù)據(jù)的存儲器可以快速填充。用于過流控制的機制允許設(shè)備200控制來 自發(fā)送器102的分組的傳輸以避免該問題。0106在一個實施例中,設(shè)備200或者流控制器包括固有的"自 同步"(self-clocking)過流控制機制。該自同步歸因于這樣的順序 設(shè)備200可以被設(shè)計為將分組發(fā)送到下游并且將ACK發(fā)送到發(fā)送器102 或者106。在一些實施例中,設(shè)備200并不預(yù)確認分組,直到其向下游發(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ā)送器填滿多少緩沖器。預(yù)確認中的 非零窗大小(例如至少一個最大段大小(MSS)的大小)允許發(fā)送端點繼 續(xù)將數(shù)據(jù)遞送到設(shè)備,而零窗大小禁止進一步的數(shù)據(jù)傳輸。相應(yīng)地,設(shè) 備200可以例如當設(shè)備200的緩沖器變滿時通過適當?shù)卦O(shè)置每一預(yù)確認 中的TCP窗大小來調(diào)節(jié)來自發(fā)送器的分組的流量。
0108另 一 項用來降低該附加開銷的技術(shù)是應(yīng)用滯后作用 (hysteresis )。當設(shè)備200將數(shù)據(jù)遞送到較慢側(cè)時,設(shè)備200中的過流 控制機制可以在發(fā)送非零窗公布到發(fā)送器之前要求可用的最小數(shù)量的空 間。在一個實施例中,設(shè)備200在發(fā)送非零窗分組之前等待直到存在最 小的預(yù)定數(shù)量的分組(諸如四個分組)的可用空間,,非零窗分組諸如是指 示四個分組的窗大小的分組。對于四個數(shù)據(jù)分組的每個組由于僅兩個ACK 分組被發(fā)送,而不是對于四個數(shù)據(jù)分組要發(fā)送八個ACK分組,這可以將 開銷大概降^f氐到原來的四分之一。
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不對一組分組的最后一個分 組進行預(yù)確認。通過不對最后一個分組或者該組的分組的至少一個預(yù)確 認,設(shè)備避免對一組分組的錯誤確認。例如,如果設(shè)備將發(fā)送最后一個 分組的預(yù)確認并且該分組隨后丟失,則發(fā)送器在分組沒有被遞送時已經(jīng) 被欺騙認為其被遞送。考慮到分組已經(jīng)遞送,則發(fā)送器丟棄該數(shù)據(jù)。如 果設(shè)備還損失該分組,則不能重新傳輸該分組到接收者。通過不對一組 分組的最后一個分組預(yù)確認,則發(fā)送器直到該分組被遞送時才將其丟棄。
0111在另一個實施例中,流控制器220可以使用窗虛擬化技術(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窗虛擬化的一個實施例是將預(yù)確認設(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傳輸 到第一流控制模塊220。第一流控制模塊220將配置標識符插入到TCP首 部選項區(qū)域中。該配置標識符將數(shù)據(jù)路徑中的該點識別為流控制模塊。
Oll4設(shè)備200經(jīng)由流控制模塊220提供窗(或者緩沖器)來允許會話內(nèi)的增加的數(shù)據(jù)緩沖能力,盡管具有例如16k字節(jié)的小緩沖器大
小的端節(jié)點。然而,RFC 1 323要求窗縮放大于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ù)谝涣骺刂颇?塊220從源節(jié)點102接收SYN信號(或者分組)的連接建立(即,會話 初始化)期間,流控制模塊220將源節(jié)點102 (其是之前的節(jié)點)的窗比 例或者如果之前的節(jié)點的比例丟失則為窗比例保存0值。第一流控制模 塊220還在SYN-FCM信號中^f奮改比例,例如將比例/人0或者1增加到4。 當?shù)诙骺刂撇拍獕K220接收SYN信號時,其將來自第一流控制信號的增 加的比例保存并且將SYN信號中的比例重置為源節(jié)點103的比例值以用 于傳輸?shù)侥繕斯?jié)點106。當?shù)诙骺刂破?20接收到來自目標節(jié)點106的 SYN-ACK信號時,其將來自目標節(jié)點106比例(例如,0或者1)的比例 保存并且將其^f參改為與SYN-ACK-FCM信號一起發(fā)送的增加的比例。第一 流控制節(jié)點220接收并且記錄所接收的窗比例并且將發(fā)送返回源節(jié)點102 的窗比例修訂為下降到例如0或者1的初始比例。基于上面連接建立期 間的窗變化會話,會話的例如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é)點相同,其大約等于IO個數(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上。在此,第一流控制 模塊220發(fā)送REC-ACK信號回到源節(jié)點,并且源節(jié)點102清除其緩沖器 并且對其載入10個更新的分組用于傳輸。
0118當?shù)谝涣骺刂颇K220接收到來自源節(jié)點的數(shù)據(jù)分組時, 其相應(yīng)地將該數(shù)據(jù)分組載入到緩沖器中。當其準備好時,第一流控制模 塊220可以開始將數(shù)據(jù)分組傳送到第二流控制^i塊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ù)的"預(yù)確認"傳輸,發(fā)送器(或 者源節(jié)點102 )被允許傳輸超過不需要預(yù)確認的可能的更多的數(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ò)條件的替代的擁塞避免算法。在一個實施例中,該重新 擁塞算法使用分組來有效終接發(fā)送器和接收器之間的連接。設(shè)備200隨 后使用不同的擁塞避免算法從自身重新發(fā)送分組到接收器。重新?lián)砣?法可以依賴于TCP連接的特性。設(shè)備200監(jiān)控每一個TCP連接,在特征 在于關(guān)于不同的維度,選擇適合用于當前特征的重新?lián)砣惴ā?br>
0121在一個實施例中,當4企測到通過往返時間(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)曲線方程來提供本配置中單 個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)的束的連接之間。可選地,束中的每個連接仍舊使用標準TCP 擁塞避免算法。
0123在另一個實施例中,并行束中的單獨連接被虛擬化,即實 際上不建立單獨的TCP連接。事實上擁塞避免算法仍被修改為好像存在N 個并行連接來運行。該方法的優(yōu)點呈現(xiàn)為如同單個連接一樣傳輸網(wǎng)絡(luò)節(jié) 點。因此,通過重新?lián)砣惴ǘ粫绊戇@些節(jié)點的QOS、安全性和其他 監(jiān)控方法。在又一個實施例中,并行束中的單獨連接是真實存在的,即
52獨立的。TCP連接被建立用于束中的并行連接的每一個。不必修改用于每
一個TCP連接的擁塞避免算法。
重新傳輸
0124在一些實施例中,流控制器220可以應(yīng)用本地重傳輸技術(shù)。 用于實現(xiàn)預(yù)確認的一個原因是準備發(fā)送到高損鏈路(例如無線)。在這些 實施例中,預(yù)確認設(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)預(yù)確認的另 一個原因是避免接收超時(RTO )懲罰。 在標準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)被重傳輸預(yù)定次數(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ù)分組的每一個實例和傳輸號碼相關(guān)聯(lián)??梢岳斫?,由于序列號索引分組中的 數(shù)據(jù)而傳輸號碼索引該lt據(jù)的傳輸?shù)膶嵗?,分組的傳輸號碼與分組的序 列號不相同。傳輸號碼可以是對于該目的可用的任意信息,包括和分組 相關(guān)聯(lián)的時間戳或者簡單地增加的號碼(類似于序列號或者分組號)。由 于數(shù)據(jù)段可以被重傳輸,則不同的傳輸號碼可以和特定序列號相關(guān)聯(lián)。
0127由于發(fā)送器傳輸數(shù)據(jù)分組,所以發(fā)送器保持數(shù)據(jù)分組傳輸
的所確認的實例的數(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ā)該確認。從而接收到不明確確認之后,發(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è)置為Q的IP ID值。當 接收器響應(yīng)時,IP ID值被設(shè)置為具有最高有效位設(shè)為1的同樣的IP ID 值。
0131在另一個實施例中,和非模糊性確認相關(guān)聯(lián)的傳輸號碼被 用來消除不確定確認的二義性。該技術(shù)基于的原理是由于該兩個分組在 時間上更接近地傳輸,則對于兩個分組的確認將傾向于時間上更接近地 接收。由于對于這樣的分組所接收的確認不能輕易地與傳輸號碼相關(guān)聯(lián), 所以沒有重傳輸?shù)姆纸M不會導致不確定性。因此,對于在時間上接近于 已知確認的多接收的不確定確認,比較這些已知的傳輸號碼和可能的傳 輸號碼。發(fā)送器將不確定確認的傳輸號碼和最近已知的所接收的傳輸號 碼相比較,選擇對于已知的所接收的傳輸號碼最接近的一個。例如,如 果接收到數(shù)據(jù)分組1的確認并且最后所接收的確認是用于數(shù)據(jù)分組5,發(fā) 送器通過假設(shè)數(shù)據(jù)分組1的第三實例所導致的確認來解析該不確定性。
選擇性確認
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ù)序列號以升序或者降序排列。接收器還保持放
棄(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分組大的損失的情況下,這是由于一旦列表被 圍繞,則由于丟失的SACK分組導致的未被通信的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和其他。以上描述的算法使用重傳輸超時來恢復(fù) 和事務(wù)相關(guān)的最后的分組的丟失。由于在一些實施例中TCP RT0機制極 端粗略,例如在所有情況中要求最小一秒的值,差的應(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宣告
57事務(wù)邊界。這可以和其他技術(shù)相組合。例如,通過發(fā)送器在TCP首部中
設(shè)置PSH (TCP進棧)位可以指示事務(wù)邊界。隨之,將基于時間的方法和 這些附加的試探方法相組合可以提供對于事務(wù)邊界的更精確的檢測。在 另一個技術(shù)中,如果發(fā)送器或者流控制模塊22G理解應(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)遞送。在另一個實施例中,如果最后的數(shù)據(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)用、數(shù)據(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ò)或者帶寬利用。
0147在一個實施例中,協(xié)議加速器234被配置、構(gòu)建或者設(shè)計 來最小化文件系統(tǒng)訪問上的WAN等待時間的效應(yīng)。在一些實施例中,協(xié)200880015762.1 用來 改進文件系統(tǒng)訪問時間或者對數(shù)據(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(可擴 展標記語言)的十辦i義。
透明并且多點布置配置
0149在一些實施例中,設(shè)備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è)備2 0 0和/或網(wǎng)絡(luò)優(yōu)化引擎2 5 0被認為對于網(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è)備可以被配置
61為轉(zhuǎn)發(fā)、傳送或者傳輸?shù)皆O(shè)備200或者經(jīng)由設(shè)備200。
0151在串行的實施例中,設(shè)備200與路由器的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è)備20G的網(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è)備2 0 0的網(wǎng)絡(luò)優(yōu)化引擎2 5 0的任 一 系統(tǒng)和方法。
0155現(xiàn)在參考圖2B,描述布置在一個或者多個端節(jié)點的網(wǎng)絡(luò)優(yōu)化引擎250的示例實施例??偟膩碚f,客戶機102可以包括第一網(wǎng)絡(luò)優(yōu)化引擎250,并且服務(wù)器106可以包括第二網(wǎng)絡(luò)優(yōu)化引擎250,,??蛻魴C102和服務(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è)備2 00或者2 05的任意系統(tǒng)和方法可以經(jīng)由客戶機代理12 0部署、實施或者包含在客戶機中。在其他實施例中,客戶機代理120可以包括提供諸如端點檢測和驗證、虛擬專用網(wǎng)絡(luò)連接和應(yīng)用流式傳輸?shù)母郊庸δ苄缘膽?yīng)用、程序或者代理。在討論設(shè)備200的系統(tǒng)和方法的其
63它實施例之前,將描述客戶機代理120的實施例。
0158現(xiàn)在參考圖3,描述了客戶;fc/L代理120的一個實施例??蛻魴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??蛻舨艓?02已經(jīng)安裝和/或執(zhí)行一個或多個應(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ò)分組的一部分。在一
64些實施例中,數(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的第二部分310a提供對網(wǎng)絡(luò)的訪問。在一些實施例中,網(wǎng)絡(luò)堆棧的第一部分310a可以包括諸如層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ā)送到被攔截器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-filter)或迷你端口 (mini-port)驅(qū)動程序。在一個實施例中,攔截器350或者其一部分操作于內(nèi)核模式202中。在另一個實施例中,攔截器350或者其一部分^^喿作于用戶;f莫式203中。在一些實施例中,攔截器350的一部分操作于內(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地址和端口。在一個實施例中,攔截器35 0為到客戶機102的本地IP地址和端口的連接設(shè)置目的地信息,客戶機代理120在客戶4幾102的本地IP地址和端口上進行監(jiān)聽。例如,客戶機代理120可以包括在用于重定向的傳輸層通信的本地IP地址和端口上監(jiān)聽的代理服務(wù)。在一些實施例中,客戶機代理120隨后傳達重定向的傳輸層通信到設(shè)備200。
0164在一些實施例中,攔截器350攔截域名服務(wù)(DNS)請求。在一個實施例中,客戶機代理120和/或攔截器350解析DNS請求。在另一實施例中,攔截器發(fā)送被攔截的DNS請求到設(shè)備200以用于DNS解析。在一個實施例中,設(shè)備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'連接或通信被攔截的通信到第二代理120'。
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)用。客戶機代理120或者其任一部分可以以對于客戶機102、設(shè)備200、 205或者服務(wù)器106的任意網(wǎng)絡(luò)配置透明的方式安裝和/或執(zhí)行??蛻魴C代理120或者其任一部分可以以一定方式安裝和/或執(zhí)行而不修改客戶機102、設(shè)備200、 205或者服務(wù)器106的任意網(wǎng)絡(luò)配置。在一個實施例中,客戶機102或與客戶機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公200880015762. 1
司開發(fā)的獨立計算架構(gòu)(ICA)客戶機或者其任意部分,并且還被稱為ICA
客戶機。在一些實施例中,客戶機120包括用于將應(yīng)用/人服務(wù)器106流 式傳輸?shù)娇蛻魴C102的應(yīng)用流客戶機306。在另一個實施例中,客戶機代 理120包括用于執(zhí)行端點檢測/掃描以及為設(shè)備200和/或服務(wù)器106收 集端點信息的收集代理304。在一些實施例中,客戶機代理120包括諸如 網(wǎng)絡(luò)優(yōu)化引擎250和加速程序302的一個或者多個網(wǎng)絡(luò)加速或者優(yōu)化程 序或者代理。在一個實施例中,加速程序302加速經(jīng)由i殳備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ī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可以識別和確定4壬意一個或多個以下的客戶^/L側(cè)屬性1)才喿作系統(tǒng)和/或 操作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運行的服務(wù),4)運行的進 程,和5 )文件。收集代理304還可以識別和確定客戶機上的任意一個或 多個下列軟件的存在或版本l)防病毒軟件,2)個人防火墻軟件,3) 反垃圾郵件軟件,和4)因特網(wǎng)安全軟件。策略引擎236可以具有根據(jù)客 戶機或客戶機側(cè)屬性的任意一個或多個屬性或特性的一個或多個策略。
0172SSL VPN代理308是用于建立從第一網(wǎng)絡(luò)104到第二網(wǎng)絡(luò) l(M'、 104,,的安全套接字層(SSL)虛擬專用網(wǎng)絡(luò)(VPN)連接或者從 客戶機102到服務(wù)器106的SSL VPN連接的應(yīng)用、程序、進程、服務(wù)、 任務(wù)或者可執(zhí)行指令集。在一個實施例中,SSLVPN代理308建立從公共 網(wǎng)絡(luò)104到專用網(wǎng)絡(luò)104,或者104,,的SSL VPN連接。在一些實施例 中,SSL VPN代理308結(jié)合設(shè)備205 —起工作來提供SSL VPN連接。在一 個實施例中,SSL VPN代理308建立與設(shè)備205的第一傳輸層連接。在一 些實施例中,設(shè)備205建立與服務(wù)器106的第二傳輸層連接。在另一個 實施例中,SSL VPN代理308建立與客戶機上的應(yīng)用的第一傳輸層連接, 和與設(shè)備205的第二傳輸層連接。在其他實施例中,SSLVPN代理308和 WAN優(yōu)化設(shè)備200結(jié)合工作來提供SSL VPN連接。
0173在一些實施例中,加速程序302是用于執(zhí)行一個或多個加 速技術(shù)的客戶機側(cè)加速程序,以加速、增強或者以其他方式改善客戶機 與服務(wù)器106的通信和/或?qū)Ψ?wù)器106的訪問,諸如訪問由服務(wù)器106 提供的應(yīng)用。加速程序302的可執(zhí)行指令的邏輯、功能和/或操作可以執(zhí) 行一個或多個的下列加速技術(shù)l)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3) 傳輸控制協(xié)議多路復(fù)用,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客戶機。在一些實施例中, 加速程序302提供在諸如分支結(jié)構(gòu)中的遠程裝置中獨立的NetScaler加 速技術(shù)。在其他實施例中,加速程序和一個或者多個NetScaler設(shè)備205 一起工作。在一個實施例中,加速程序302提供網(wǎng)絡(luò)業(yè)務(wù)量的LAN側(cè)或 者基于LAN的加速或者優(yōu)化。
0175在一些實施例中,網(wǎng)絡(luò)優(yōu)化引擎250可以凈皮設(shè)計、構(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包括NeNSca 1 er客戶機。 在一些實施例中,網(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í)行指令集中。
0177在一些實施例中以及仍然參考圖3,可以^:用第一程序322 來自動地、靜默地、透明地或以其他方式地安裝和/或執(zhí)行客戶機代理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ù)邊界來優(yōu)先排序業(yè)務(wù)量的系統(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)普通技術(shù)人員可以認識到TCP和其他網(wǎng)絡(luò)協(xié)議的許多實現(xiàn)方案和變 化可以應(yīng)用到此處描述的系統(tǒng)和方法中,包括RFC 793中指定的TCP實 現(xiàn)方案,并且特別是涉及擁塞控制和避免的RFC 2581和RFC 3168。在這 些實現(xiàn)方案和其他的一些中,ECE標記可以被用來通知分組接收者發(fā)生了 網(wǎng)絡(luò)擁塞。分組接收者隨后可以選擇降低它們的傳輸率或者采取任一其 它擁塞控制或者避免策略。該ECE標記還被用來和其他信令位相結(jié)合, 其和接收者協(xié)商是否支持顯性擁塞通知(ECN)。顯性擁塞的協(xié)商或者信 令中使用的任一協(xié)議中的任一位可以稱之為ECN位,
0181現(xiàn)在參考圖5,示出傳輸可以被分類為事務(wù)的分組群的多個 客戶機的示意圖。總的來說,每個客戶機102正經(jīng)由連接520傳輸多個 分組。分組可以包括任意類型的分組并且可以包括任意一個或者多個協(xié) 議。在一個例子中,分組可以包括網(wǎng)絡(luò)層分組,例如IP分組。在另一個 例子中,分組可以包括傳輸層分組,例如TCP或UDP分組。連接可以包 括任一類型 連接并且可以經(jīng)由任一 網(wǎng)絡(luò)傳輸。分組可以使用任意方法200880015762. 被分為對應(yīng)于事務(wù)的群,如之前討論的。
0182仍舊參考圖5,現(xiàn)在更詳細地,在許多情況中,其可以被用
來識別包括事務(wù)的分組群。廣義而言,事務(wù)包括一組分組,在隨后的傳 輸開始之前需要接收到整組的分組。在一些情況中,事務(wù)可以包括一組 分組,其必須在接收者開始發(fā)送響應(yīng)之前成功接收。該情況的例子可以
是HTTP請求,其中服務(wù)器必須在該服務(wù)器可以開始傳輸HTTP響應(yīng)之前 接收整個HTTP請求。在其他情況中,事務(wù)可以包括一組分組,該一組分 組必須在該分組的發(fā)送器可以發(fā)送隨后的傳輸之前成功接收。在一些情 況中,繁忙事務(wù)(transaction-heavy )通信流可以顯示出"兵乓,,行為, 其中每一側(cè)必須在下一個傳輸開始之前等待來自其它側(cè)的響應(yīng)。
0183裝置可以使用任意技術(shù)來檢測事務(wù)或者事務(wù)邊界。在一些 實施例中,裝置可以具有允許裝置檢測事務(wù)邊界的 一個或者多個應(yīng)用協(xié) 議的特定知識。在其他實施例中,裝置可以檢測事務(wù)邊界,而不需要產(chǎn) 生事務(wù)的應(yīng)用的特定知識。
0184在一個實施例中,裝置可以使用基于時間的方法用于檢測 事務(wù)邊界。如果發(fā)送器已經(jīng)發(fā)送數(shù)據(jù)并且隨后停止,在一段不活動時間 之后,裝置可以決定事務(wù)邊界已經(jīng)被指示。裝置可以在宣告事務(wù)邊界之 前請求任意時間間隔來傳遞。在一些實施例中,時間間隔可以是絕對時 間間隔,包4^f旦不限于lms、 2ms、 5ms、 10ms、 20ms、 30ms、 50ms、 100ms、 200ms、 500tns和l秒。在其^(也實施例中,時間間隔可以是相對于之前分 組延遲的時間間隔。例如,如果連接具有5ms的平均分組間距,則大于 10ms的間距可以指示事務(wù)邊界。例如,在連接520a中,分組群500b和 500a之間的長的延遲可以指示事務(wù)邊界。該基于時間的方法可以被用來 在使用未知或者加密協(xié)議的連接中來識別事務(wù)邊界。
0185在其他實施例中,裝置可以使用包含在分組中的顯性信號 來確定事務(wù)邊界。例如,通過發(fā)送器在分組的TCP首部中設(shè)定PSH (TCP 進棧)位可以指示事務(wù)邊界。或者例如,打開和關(guān)閉TCP連接還可以標 記事務(wù)邊界。在一些情況中,裝置可以將基于時間的方法和這些附加的 試探法相結(jié)合用于檢測事務(wù)邊界。在另一個技術(shù)中,如果裝置220理解 應(yīng)用協(xié)議,其可以解析協(xié)議數(shù)據(jù)流并且直接決定事務(wù)邊界。在一些實施
72例中,該最后的行為可以獨立于任意基于時間的機制而使用。例如,裝 置可以識別給定的分組是遠程程序調(diào)用的最后一個分組(或者僅該分 組)。或者裝置可以識別分組是HTTP請求的最后一個分組。
0186仍在其他實施例中,裝置通過比較分組和該連接的最大分 組大小可以檢測事務(wù)邊界。如果分組大小低于該連接的最大分組大小, 因為在較小的分組被接收和/或響應(yīng)之前發(fā)送器不能發(fā)送任何數(shù)據(jù),其可 以指示發(fā)送器不傳輸全尺寸的分組。裝置可以經(jīng)由任意方法確定連接的 最大分組大小,包括之前的配置和經(jīng)由該連接發(fā)送的一個或者多個之前 分組的分析。例如,在連接520b中,裝置在接收多個全尺寸的分組及隨 后的較短分組之后可以檢測事務(wù)500c。仍在其他實施例中,裝置可以檢 測分組小于之前的分組的情況,并且將那些情況標記為指示事務(wù)邊界。 在一些實施例中,這些方法在裝置能夠確定較短分組在傳輸中是否跟隨 有延遲之前可以允許檢測檢測事務(wù)邊界。這些方法還可以被用來在使用 未知的或者加密的協(xié)議的連接中來識別事務(wù)邊界。在其他實施例中,這 些技術(shù)可以和一個或者多個其它技術(shù)相結(jié)合,用于確定事務(wù)邊界。
0187在另一個實施例中,裝置可以通過檢測對應(yīng)于連接的一個 或者多個緩沖器是否已經(jīng)從滿轉(zhuǎn)變?yōu)榭諄頇z測事務(wù)邊界。例如,裝置可 以具有對應(yīng)于經(jīng)由多個連接接收的數(shù)據(jù)的多個輸入緩沖器。如果輸入緩 沖器的其中一個變?yōu)榭?,則裝置可以確定經(jīng)由連接接收的最后一個分組 是事務(wù)的最后一個分組。在一些情況中,監(jiān)控緩沖器狀態(tài)可以用作檢測 分組到達時間中的間隙的方法,并且因此提供對事務(wù)邊界檢測的基于時 間的方法的類似功能性。緩沖器從空轉(zhuǎn)變?yōu)闈M時還可以被用來劃界事務(wù) 的開始。
0188現(xiàn)在參考圖5B,示出用于基于事務(wù)大小來優(yōu)先排序等待從 中間裝置傳輸?shù)姆纸M的系統(tǒng)的框圖??偟膩碚f,設(shè)備200從多個客戶機 102經(jīng)由多個連接515接收分組流。流控制器220和QoS引擎236將所接 收的分組分類為高或低優(yōu)先級的多個傳輸隊列,其中它們等待經(jīng)由網(wǎng)絡(luò) 104傳輸出去。設(shè)備可以將對應(yīng)于較小事務(wù)大小的分組優(yōu)先排序高于對應(yīng) 于較大事務(wù)大小的分組。參考圖6更詳細地描述該系統(tǒng),其描寫可以由 所示系統(tǒng)使用的方法。0189現(xiàn)在參考圖6,示出用于基于事務(wù)大小優(yōu)先排序等待從中間 裝置傳輸?shù)姆纸M的方法??偟膩碚f,該方法包括由中間設(shè)備接收第一分
組(步驟601 );并且由中間設(shè)備接收第二分組(步驟603 )。中間設(shè)備可 以隨后確定事務(wù)的第一事務(wù)大小(步驟605 );并且分配第一傳輸優(yōu)先級 給第一分組,響應(yīng)于確定的第一事務(wù)大小確定傳輸優(yōu)先級(步驟607 )。 中間設(shè)備可以隨后傳輸?shù)?一分組和第二分組,其中傳輸順序根據(jù)第 一分 配的傳輸優(yōu)先級來確定(步驟609 )。
0190仍舊參考圖6,更詳細地,中間設(shè)備可以以任一方式接收第 一分組(步驟601)。在一些實施例中,中間設(shè)備可以包括客戶機102、 客戶機代理120、服務(wù)器106、服務(wù)器代理或者網(wǎng)絡(luò)設(shè)備的其中一個。在 一個實施例中,用于多個傳輸層連接的中間設(shè)備可以經(jīng)由多個傳輸層連 接的第一傳輸層連接來接收第一分組。在一些情況中,多個傳輸層連接 可以全部包括相同的傳輸層協(xié)議。在一些情況中,多個傳輸層連接可以 包括多個傳輸層協(xié)議。例如,中間設(shè)備可以是用作對于從客戶機到服務(wù) 器的多個TCP連接的中間設(shè)備的客戶機代理?;蛘呃?,中間設(shè)備可以 是用作對于從多個客戶機到多個服務(wù)器的多個TCP連接的透明代理的網(wǎng) 絡(luò)設(shè)備。所接收的第一分組可以包括任一傳輸層協(xié)議,包括但不限于TCP 和UDP。
0191中間設(shè)備可以以任一方式接收第二分組(步驟603 )。在一 些實施例中,中間設(shè)備可以經(jīng)由多個傳輸層連接中的第二傳輸層連接來 接收第二分組。第二分組可以是在第一分組之前、之后或者與其同時被 接收。在一些實施例中,第二分組和第一分組可以共享源和/或目標。在 其他實施例中,第二分組可以包括不同的源和目標。
0192中間設(shè)備可以以任一方式確定事務(wù)的第一事務(wù)大小(步驟 60";。在一些實施例中,第一事務(wù)大小可以是包括第一分組的事務(wù)的事 務(wù)大小。在其他實施例中,第一事務(wù)大小可以是涉及第一分組的另一個 事務(wù)的事務(wù)大小,諸如經(jīng)由與第 一分組同樣的連接的緊接第 一分組之前 的事務(wù)。在一些實施例中,中間設(shè)備可以使用此處描述的一個或者多個 任一事務(wù)和事務(wù)邊界檢測技術(shù),包括但不限于基于時間的方法、PSH位檢 測、分組大小分析和緩沖器監(jiān)控。事務(wù)大小可以通過任一規(guī)格測量,包括但不限于包括事務(wù)的字節(jié)的總數(shù)、包括事務(wù)的分組的總數(shù)或者事務(wù)從 開始到結(jié)束的經(jīng)過的時間。在一個實施例中,關(guān)于給定連接,中間設(shè)備 可以通過保存在每一事務(wù)開始時設(shè)為零的值來確定事務(wù)大小。隨著更多 分組經(jīng)由該連接接收,則該值可以隨經(jīng)由該連接發(fā)送的字節(jié)的數(shù)量而遞 增,直到檢測到事務(wù)邊界結(jié)束為止。在另一個實施例中,關(guān)于給定連接, 中間設(shè)備可以通過保存事務(wù)開始的時間戳來確定事務(wù)大小。檢測到事務(wù) 結(jié)束邊界之后,中間設(shè)備可以計算在結(jié)束邊界和時間戳之間的經(jīng)過時間。
在一些實施例中,中間設(shè)備可以將事務(wù)大小限制(cap)到給定數(shù)量。例 如,中間設(shè)備可以將所有大于10KB的事務(wù)當作它們是10KB事務(wù)。或者 例如,中間設(shè)備可以將所有大于1秒的事務(wù)當作1秒的事務(wù)。
0193在一些實施例中,中間設(shè)備可以確定對于第一傳輸層連接 的平均事務(wù)大小。該平均值可以包括任意類型的平均值,包括但不限于 平均數(shù)、中值或者眾數(shù)(mode)。可以以任一方式計算平均事務(wù)大小。在 一些實施例中,中間設(shè)備可以保持對于給定連接的事務(wù)大小的移動平均。 在其他實施例中,中間設(shè)備可以通過計算對于經(jīng)由該連接發(fā)送的一個取 樣組的數(shù)據(jù)的平均事務(wù)大小來計算對于該連接的平均事務(wù)大小。例如, 中間設(shè)備可以計算在連接的第 一分鐘期間發(fā)送的事務(wù)的平均事務(wù)大小。 還可以使用之后的取樣值來周期性更新該平均值。在另一個實施例中, 中間設(shè)備可以記錄經(jīng)由連接發(fā)送的字節(jié)的總數(shù)并且將該總數(shù)除以所探測 的事務(wù)的總數(shù)來確定平均事務(wù)大小。
0194在一個實施例中,中間設(shè)備還可以以任一方式確定包括第 二分組的事務(wù)的第二事務(wù)大小。可以使用任意上述技術(shù)來確定該事務(wù)大 小。在一個實施例中,中間設(shè)備確定關(guān)于第二連接的平均事務(wù)大小。在 一些實施例中,可以使用同樣的方法來確定第一和第二事務(wù)大小。
0195中間設(shè)備可以以任一方式基于確定的第一事務(wù)大小分配第 一傳輸優(yōu)先級給第一分組(步驟607 )。在一個實施例中,較高的傳輸優(yōu) 先級可以被分配給對應(yīng)于較小事務(wù)大小的分組。該實施例可以被用來提 供QoS給一個或者多個突發(fā)連接,諸如VoIP或者視頻會議業(yè)務(wù)量。在一 個例子中,中間設(shè)備可以將高的優(yōu)先級分配給小于256字節(jié)長度的事務(wù), 正常的優(yōu)先級分配給257到1280字節(jié)長度的事務(wù),并且將高的優(yōu)先級分配給大于1280字節(jié)的事務(wù)。在一些實施例中,傳輸優(yōu)先級可以響應(yīng)于事 務(wù)大小和之前存在的優(yōu)先級。例如,中間設(shè)備可以通過響應(yīng)于確定的事 務(wù)大小來提高連接的優(yōu)先級而計算分組的優(yōu)先級。在其他實施例中,傳 輸優(yōu)先級可以響應(yīng)于確定的事務(wù)大小和預(yù)定的帶寬閾值。例如,中間設(shè) 備可以給較小的事務(wù)優(yōu)先排序高的優(yōu)先級,除非或者直到發(fā)送小的事務(wù) 的連接已經(jīng)超過給定的帶寬限制。中間設(shè)備可以隨后降低經(jīng)由該連接發(fā) 送的隨后的小的事務(wù)的優(yōu)先級,直到該連接所使用的帶寬降到可接受閾 值之下。
0196在一些實施例中,中間設(shè)備可以使用與給第一分組分配優(yōu) 先級相同的方式將優(yōu)先級分配給第二分組。在其他實施例中,不給第二 分組分配優(yōu)先級。
0197中間設(shè)備可以隨后以任一方式傳輸?shù)?一分組和第二分組, 其中傳輸順序根據(jù)分配的傳輸優(yōu)先級來確定(步驟609 )。在一個實施例 中,中間設(shè)備可以將第一和第二分組放到如圖5B描述的優(yōu)先排序的傳輸 隊列中。例如,經(jīng)由連接515a和515b發(fā)送的分組在其對應(yīng)于較小事務(wù) 大小時被置于高優(yōu)先級隊列中。對應(yīng)于515n的分組在其對應(yīng)于單個長的 事務(wù)時被置于低優(yōu)先級隊列中。為了給出另一個例子,在三個連接的情 況中,A、 B和C已經(jīng)進行事務(wù)排隊用于發(fā)送并且事務(wù)分別是3、 2、 l分 組長度。分組可以隨后以C B B A A A的順序發(fā)送。這和循環(huán)法不同, 循環(huán)法發(fā)送順序是A B C A B A。在此例中,可以清楚的看到基于事務(wù)的 優(yōu)先排序的潛在益處。事務(wù)C和B每一個比它們在循環(huán)法的情況下更快 地完成兩個分組,而不影響事務(wù)A。
0198在另一個實施例中,第一和第二分組可以被置于單個隊列
施例中,傳輸隊列可以響應(yīng)于接收隨后的事務(wù)而被重新排序。在這些實 施例中,中間設(shè)備可以將新接收的事務(wù)插入到等待傳輸?shù)妮^大的事務(wù)之 前。例如,如果傳輸隊列當前包括D EEEFFFF,其中D、 E和F分 別是來自1、 3和4字節(jié)的事務(wù)的分組,并且接收事務(wù)G G,隊列可以被 修改為DG GEEFFFF。在一些實施例中,單個隊列可以和一個或 者多個定時器相組合,使得對應(yīng)于較長傳輸?shù)姆纸M不由較短的事務(wù)無限期地來保持。仍在其他實施例中,中間設(shè)備可以根據(jù)給定優(yōu)先級維持多 個隊列并且根據(jù)隊列中的相對優(yōu)先級來給每一隊列中的分組排序。例如, 中間設(shè)備對于低于200字節(jié)的事務(wù)可以維持高的優(yōu)先級隊列,對于所有 其它事務(wù)維持正常的優(yōu)先級隊列。在每一隊列中,事務(wù)根據(jù)他們各自大 小隨后排序。
0199在一些實施例中,可以使用任一上述方法來提供QoS。例如, 上述方法可以被用來優(yōu)先排序?qū)崟r業(yè)務(wù)量,實時業(yè)務(wù)量的特征可以在于 在文件下載上的短的突發(fā)事務(wù),其特征可以在于長的持續(xù)事務(wù)。在另一 個實施例中,上述方法可以被用來優(yōu)先排序遠程程序調(diào)用和非交互業(yè)務(wù) 量上的其它交互應(yīng)用。
E、用于減少超時懲罰的系統(tǒng)和方法
0200現(xiàn)在參考圖7A和圖7B,示出用于使用事務(wù)邊界來減少超時 懲罰的系統(tǒng)和方法。總的來說,檢測到事務(wù)邊界之后,裝置可以在事務(wù) 傳輸之后產(chǎn)生并且傳輸附加的分組。附加的分組可以被配置為從指示事 務(wù)的最后一個分組是否成功被接收的接收器產(chǎn)生ACK。諸如TCP的許多協(xié) 議可以使用重傳輸超時(RTO)來發(fā)現(xiàn)和糾正事務(wù)的最后一個分組已經(jīng)丟 失的情況。然而,RTO可以僅提供通過分組丟失引發(fā)的延遲的粗略控制。 在一些協(xié)議中,RTO非常昂貴,諸如TCP,其中RTO默認為整秒。圖7A 和7B的系統(tǒng)和方法可以被用來嘗試通過較早發(fā)現(xiàn)丟失的最后的分組來避 免諸如RTO延遲。
0201現(xiàn)在參考圖7B,示出用于通過基于識別事務(wù)邊界來從中間 裝置選擇性傳輸附加分組來減少傳輸超時的方法??偟膩碚f,該方法包 括通過第一裝置接收來自發(fā)送器的第一分組(步驟701)。第一裝置將第 一分組發(fā)送到接收器(步驟703 ),并且確定第一分組4艮可能就是事務(wù)的 最后一個分組(步驟705 )。第一裝置隨后響應(yīng)于該確定產(chǎn)生至少一個附 加的分組(步驟707 );并且在第一分組已經(jīng)傳輸之后將附加的分組傳輸 到接收器(步驟709 )。第一裝置可以隨后接收對應(yīng)于附加分組的確認(步 驟711),確定之前傳輸?shù)臄?shù)據(jù)分組還沒有接收到(步驟709 ),和重傳輸 沒有接收到的數(shù)據(jù)分組(步驟711 )。0202仍舊參考圖7B,更詳細地,裝置可以經(jīng)由任一方式接收來 自發(fā)送器的第一分組(步驟701)。裝置可以包括任一計算裝置,包括客 戶機、服務(wù)器、客戶機代理、服務(wù)器代理或者設(shè)備。發(fā)送器還可以包括 任意計算裝置。在一些情況中,發(fā)送器可以是客戶機并且裝置可以是客 戶機上執(zhí)行的客戶機代理。第一分組可通過任一連接接收,包括但不限 于諸如TCP或者UDP連接的傳輸層連接。在一些實施例中,裝置可以用 作對于該連接的透明代理。在其他實施例中,裝置可以對于該連接執(zhí)行 一個或者多個加速功能。
0203第一裝置隨后可以經(jīng)由任一方式將第一分組傳輸?shù)浇邮掌?(步驟703 )。在一些實施例中,第一裝置可以經(jīng)由諸如TCP或者UDP連 接的傳輸層連接來傳輸?shù)谝环纸M。接收器還可以包括任一計算裝置。在 一些實施例中,發(fā)送器或者接收器都可以通過WAN連接到該裝置。在一 些實施例中,設(shè)備可以基于發(fā)送器或者接收器的其中一個經(jīng)由WAN連接 到裝置的判定來確定使用所示方法。
0204第一裝置可以經(jīng)由任一方式來確定第一分組很可能就是事 務(wù)的最后一個分組(步驟705 )。第一裝置可以使用此處描述的任意一個 或者多個事務(wù)邊界技術(shù)。在一些實施例中,第一裝置可以確定第一分組 小于之前傳輸?shù)姆纸M或者最大分組大小。在其他實施例中,第一裝置可 以檢測對應(yīng)于連接的緩沖器已經(jīng)從非空轉(zhuǎn)變?yōu)榭铡?br>
0205第一裝置隨后可以響應(yīng)于該確定來發(fā)送至少一個附加的分 組(步驟707 )。附加的分組可以包括任意類型的分組并且可以包括任意 有效載荷。在一些實施例中,附加分組可以包括第一分組的復(fù)制品。在 其他實施例中,附加分組可以包括第一分組的一部分的復(fù)制品。仍在其 他實施例中,附加分組可以根據(jù)任一前向糾錯技術(shù)來產(chǎn)生。在一些情況 中,裝置可以發(fā)送多個附加分組。例如,如果連接具有高損失率,則裝 置可以發(fā)送多個復(fù)制分組。
0206在一些實施例中,裝置可以包括決策中的任一附加因素來 傳輸一個或者多個附加因素。這些因素可以包括但不限于連接損失率、 等待時間、可用帶寬、裝置上的當前負載和分配給連接的優(yōu)先級或者QoS 水平。0207第一裝置在第一分組已經(jīng)傳輸?shù)浇邮掌髦笠匀我环绞綄?br>
至少一個附加的分組經(jīng)由該連接傳輸?shù)浇邮掌?步驟709 )。裝置可以在
第一分組傳輸之后在發(fā)送附加分組之前等待任意的時間間隔。在一個實 施例中,裝置可以緊隨第一分組將附加分組傳輸。在另一個實施例中, 裝置可以等待一個時間周期使得第一分組和附加分組不會在單個損失事 件中全丟失。
0208可以以任一方式配置附加的分組來產(chǎn)生來自接收器的確認。 在一些實施例中,附加分組可以包括意于激發(fā)TCP確認的TCP分組。
0209第一裝置可以隨后接收對應(yīng)于附加分組的確認(步驟ni)
并且確定一個或者多個之前傳輸?shù)臄?shù)據(jù)分組還沒有接收到(步驟713)。 所接收的確認可以包括任意類型的確認并且可以包括數(shù)據(jù)分組沒有接收 到的任一指示。在一些實施例中,所接收的確認可以包括復(fù)制的TCP確 認的。在一些情況中,所接收的確認可以指示第一數(shù)據(jù)分組還沒有接收 到。在其他情況中,所接收的確認可以指示一個或者多個其它數(shù)據(jù)分組 沒有接收到。
0210第一裝置然后重傳輸沒有接收到的數(shù)據(jù)分組(步驟715)。 在一些實施例中,第一裝置還可以在重傳輸之后傳輸一個或者多個附加 分組。在其他實施例中,第一裝置可以將指示丟失的分組的指示傳輸給 發(fā)送器,使得發(fā)送器可以重傳輸丟失的分組。
0211現(xiàn)在參考圖8A和8B,描述用于在發(fā)送器和接收器之間重傳 輸網(wǎng)絡(luò)分組來降低和連接關(guān)聯(lián)的重傳輸開銷的系統(tǒng)和方法。在包括例如 TCP的許多協(xié)議中,使用重傳輸作為用來提供可靠數(shù)據(jù)流的一種方法。除 了標準重傳輸延遲之外,當重傳輸?shù)姆纸M也被丟失時,則導致額外的延 遲。在一些情況中,重傳輸分組的丟失可以導致等于整個RTT的延遲。 所示系統(tǒng)和方法可以被用來減少這些附加性能懲罰的可能性??偟膩碚f, 可以是設(shè)備200的裝置接收并轉(zhuǎn)發(fā)分組。接收到分組沒有接收到的指示 時,設(shè)備重傳輸該分組并且還確定連接的損失率是否超過給定闊值。如 果損失率已經(jīng)超過闊值,則設(shè)備可以可以隨后再次重傳輸該丟失的分組。 可以在接收到重傳輸分組丟失的任一指示之前執(zhí)行該再次重傳輸。
0212現(xiàn)在參考圖8B,描述用于在發(fā)送器和接收器之間重傳輸網(wǎng)絡(luò)分組來降低和連接關(guān)聯(lián)的重傳輸開銷的方法。總的來說,該方法包括通過裝置接收經(jīng)由連接傳輸?shù)木W(wǎng)絡(luò)分組沒有被接收器接收到的指示(步
驟801);并且通過裝置響應(yīng)于該指示來重傳輸網(wǎng)絡(luò)分組到接收器(步驟803 )。裝置可以確定和連接相關(guān)聯(lián)的分組損失率(步驟805 )。裝置可以隨后響應(yīng)于確定的分組損失率來確定多個附加的重傳輸(步驟807 );并且根據(jù)附加重傳輸?shù)拇_定數(shù)量來重傳輸網(wǎng)絡(luò)分組(步驟809 )。
0213仍然參考圖8B,裝置可以接收經(jīng)由傳輸層連接傳輸?shù)姆纸M沒有被接收器接收到的指示(步驟801)。裝置可以包括任一計算裝置,包括客戶機、服務(wù)器、客戶機代理、服務(wù)器代理或者設(shè)備。接收器還可以包括任意計算裝置。在一個實施例中,該連接可以包括傳輸層連接。在一些實施例中,該連接可以包括TCP連接并且該分組可以包括TCP分組。在這些實施例中,指示可以包括指示該分組沒有接收到的一個或者多個復(fù)制確認。在其他實施例中,該裝置可以接收任意其它類型的指示。
0214裝置可以隨后以任一方式來重傳輸網(wǎng)絡(luò)分組到接收器(步驟803 )。裝置可以經(jīng)由任意協(xié)議來重傳輸網(wǎng)絡(luò)分組。在一些實施例中,裝置還可以將指示分組丟失事件的指示發(fā)送給分組的發(fā)送器。
0215裝置可以以任一方式確定和連接相關(guān)聯(lián)的分組損失率(步驟805 )。分組損失率可以反映任一分組損失事件,包括分組丟掉、丟失、損失、破壞或者其他未成功的接收。在一些實施例中,可以基于涉及單個連接的統(tǒng)計來計算分組損失率。在這些實施例中,裝置可以基于經(jīng)由連接發(fā)送的分組的總數(shù)除以分組損失的總數(shù)來計算損失率。替代地,裝置可以通過計算對于經(jīng)由連接傳輸?shù)姆纸M的一個子集或者多個子集的分組損失率來計算分組損失率。在其他實施例中,分組損失率可以關(guān)于穿越類似網(wǎng)絡(luò)的多個連接來計算。例如,連接到WAN的設(shè)備可以計算對于W緒上的所有業(yè)務(wù)量的平均分組損失率?;蛘哌B接到無線網(wǎng)絡(luò)的設(shè)備可以計算穿越無線網(wǎng)絡(luò)的所有業(yè)務(wù)量的平均損失率。仍在其他實施例中,可
以人工配置分組損失率。
0216裝置可以響應(yīng)于確定的損失率來確定多個附加的重傳輸。附加的重傳輸指示在接收到還沒有接收到第一重傳輸分組的指示之前該分組將被重傳輸?shù)念~外次數(shù)。在一些情況中,如果損失率高于給定閾值,則裝置可以確定必須進行附加的重傳輸。例如,如果分組損失率高于5%,則裝置可以確定使用一次附加的重傳輸。或者例如,如果分組損失率高于10%,則裝置可以確定使用兩次附加的重傳輸。該裝置可以確定并且使
用任意數(shù)量的附加重傳輸,包括0、 1、 2、 3、 4和5。損失率閾值可以包括任意數(shù)量或者百分比的分組損失,包括但不限于1%、 2%、 3°/。、 5%、 8%、10%和20%。
0217在一些實施例中,裝置可以響應(yīng)于除了損失率之外的一個或者多個因素來確定附加重傳輸?shù)拇螖?shù)。這些附加因素可以包括但不限于連接帶寬、連接等待時間、和連接相關(guān)聯(lián)的事務(wù)大小、和連接關(guān)聯(lián)的協(xié)議和/或與連接相關(guān)聯(lián)的優(yōu)先級或者QoS。例如,裝置可以確定對于低優(yōu)先級連接,不考慮損失率,不進行附加的重傳輸?;蛘呃?,裝置可以確定對于正常的優(yōu)先級連接,使用附加的重傳輸必須該連接損失率超過8%,而對于高優(yōu)先級連接,使用附加重傳輸之前必須要求損失率僅超過2%。在另一個例子中,具有低等待時間容忍度的協(xié)議可以給予較高數(shù)量的附加重傳輸。在此例子中,和VoIP或者其他實時應(yīng)用相關(guān)聯(lián)的協(xié)議可以被優(yōu)先,使得可以避免與重傳輸?shù)膫鹘y(tǒng)方法相關(guān)聯(lián)的額外延遲。仍在另一個實施例中,裝置可以確定和丟失的分組相關(guān)聯(lián)的事務(wù)大小,并且相應(yīng)計算重傳輸?shù)拇螖?shù)。在此例中,較小的事務(wù)大小由于更可能包含時間敏感數(shù)據(jù)而可以給予更多的附加重傳輸。
0218裝置根據(jù)附加重傳輸?shù)拇_定數(shù)量來重傳輸該分組。裝置可以以任一方式再次重傳輸分組。在一些實施例中,裝置可以間隔附加重傳輸?shù)膫鬏敚沟盟鼈儾豢赡茉趩蝹€網(wǎng)絡(luò)損失事件中全丟失。在一些情況中,裝置可以在接收到分組已經(jīng)成功地被接收的指示時停止一個或者多個附加重傳輸?shù)膫鬏敗?br>
0219雖然本發(fā)明參考特定優(yōu)選實施例具體描述和示出,但是本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該理解在不脫離由下面的權(quán)利要求書限定的本發(fā)明的精神和范圍的情況下,可以在形式和細節(jié)上作出多種變化。
權(quán)利要求
1、一種用于優(yōu)先排序分組的傳輸?shù)姆椒ǎ?a)通過中間設(shè)備接收第一分組;(b)通過中間設(shè)備接收第二分組;(c)通過中間設(shè)備確定事務(wù)的第一事務(wù)大?。?d)通過中間設(shè)備分配第一傳輸優(yōu)先級給第一分組,響應(yīng)于所確定的第一事務(wù)大小來確定所述傳輸優(yōu)先級;和(e)通過中間設(shè)備傳輸?shù)谝环纸M和第二分組,其中根據(jù)第一分配的傳輸優(yōu)先級來確定傳輸順序。
2、 權(quán)利要求l的方法,其中,所述中間設(shè)備包括以下其中之一客戶機、服務(wù)器、客戶機代理和網(wǎng)絡(luò)設(shè)備。
3、 權(quán)利要求1的方法,其中,步驟(a)包括通過中間設(shè)備經(jīng)由第一傳輸層連接來接收第 一分組。
4、 權(quán)利要求1的方法,其中,步驟(a)包括通過中間設(shè)備接收包括加密的數(shù)據(jù)的第一分組。
5、 權(quán)利要求1的方法,其中,步驟(a)包括通過中間設(shè)備接收包括互聯(lián)網(wǎng)計算架構(gòu)(ICA)協(xié)議或者遠程桌面協(xié)議(RDP)協(xié)議的其中一個的第一分組。
6、 權(quán)利要求1的方法,其中,步驟(a )包括對于多個傳輸控制協(xié)議(TCP )連接,通過中間設(shè)備經(jīng)由多個TCP連接中的第一 TCP連接來接收第一分組。
7、 權(quán)利要求1的方法,其中,步驟(b)包括通過中間設(shè)備經(jīng)由傳輸層連接來接收第二分組。
8、 權(quán)利要求1的方法,其中,步驟(c)包括由中間設(shè)備通過識別所述第一分組包括事務(wù)的最后分組來確定事務(wù)的第一事務(wù)大小。
9、 權(quán)利要求1的方法,其中,步驟(c)包括由中間設(shè)備通過識別經(jīng)由第一傳輸層連接傳輸?shù)氖聞?wù)的至少一個開始和結(jié)束點和識別在所述開始和結(jié)束點之間傳輸?shù)臄?shù)據(jù)的量來確定事務(wù)的第一事務(wù)大小。
10、 權(quán)利要求l的方法,其中,步驟(c)包括由中間設(shè)備通過識別至少一個所接收的分組小于最大分組大小來確定事務(wù)的第一事務(wù)大小。
11、 權(quán)利要求l的方法,其中,步驟(C)包括由中間設(shè)備通過識別至少一個所接收的分組小于最大分組大小并且緊接在所述最大分組大小的至少一個分組之后來確定事務(wù)的第 一分組大小。
12、 權(quán)利要求l的方法,其中,步驟(C)包括由中間設(shè)備通過識別對應(yīng)于連接的緩沖器已經(jīng)從非空轉(zhuǎn)變?yōu)榭諄泶_定事務(wù)的第一事務(wù)大小。
13、 權(quán)利要求l的方法,其中,步驟(c)包括由中間設(shè)備通過識別分組到達時間之間的間隙來確定事務(wù)的第一事務(wù)大小。
14、 權(quán)利要求l的方法,其中,步驟(c)包括由中間設(shè)備通過識別標記的PSH位來確定事務(wù)的第一事務(wù)大小。
15、 權(quán)利要求l的方法,其中,步驟(c)包括由中間設(shè)備通過識別對應(yīng)于傳輸層連接的緩沖器已經(jīng)從空轉(zhuǎn)變?yōu)榉强諄泶_定事務(wù)的第一事務(wù)大小。
16、 權(quán)利要求l的方法,其中,步驟(c)包括由中間設(shè)備確定和第一傳輸層連接相關(guān)聯(lián)的第一平均事務(wù)大小。
17、 權(quán)利要求16的方法,其中,步驟(c)包括由中間設(shè)備通過識別經(jīng)由第一傳輸層連接傳輸?shù)氖聞?wù)的多個開始和結(jié)束點并且確定在所述多個開始和結(jié)束點之間傳輸?shù)臄?shù)據(jù)的平均量來確定和第 一傳輸層連接相關(guān)聯(lián)的第 一平均事務(wù)大小。
18、 權(quán)利要求16的方法,其中,步驟(c)包括由中間設(shè)備通過識別在預(yù)定時間間隔經(jīng)由第一傳輸層連接傳輸?shù)氖聞?wù)的多個開始和結(jié)束點并且確定在所述多個開始和結(jié)束點之間傳輸?shù)臄?shù)據(jù)的平均量來確定和第一傳輸層連接相關(guān)聯(lián)的第一平均事務(wù)大小。
19、 權(quán)利要求16的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一平均事務(wù)大小小于第二平均事務(wù)大小的確定,第一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更高的優(yōu)先級。
20、 權(quán)利要求16的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一平均事務(wù)大小小于第二平均事務(wù)大小的確定和第一傳輸層連接沒有超過給定傳輸帶寬閾值的確定,第一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更高的優(yōu)先級。
21、 權(quán)利要求16的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一平均事務(wù)大小大于第二平均事務(wù)大小的確定,第一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更低的優(yōu)先級。
22、 權(quán)利要求l的方法,其中,步驟(c)包括步驟(c-a)由中間設(shè)備確定和第一分組相關(guān)聯(lián)的第一事務(wù)大小;和(c-b )由中間設(shè)備確定和第二分組相關(guān)聯(lián)的第二事務(wù)大小。
23、 權(quán)利要求22的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,響應(yīng)于所確定的第一事務(wù)大小和所確定的第二事務(wù)大小來確定所述傳輸優(yōu)先級。
24、 權(quán)利要求22的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一事務(wù)大小小于第二事務(wù)大小的確定,第一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更高的優(yōu)先級。
25、 權(quán)利要求22的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一事務(wù)大小小于第二事務(wù)大小的確定和第一傳輸層連接沒有超過給定傳輸帶寬閾值的確定,第 一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更高的優(yōu)先級。
26、 權(quán)利要求22的方法,其中,步驟(d)包括由中間設(shè)備為第一分組和第二分組分配傳輸優(yōu)先級,其中響應(yīng)于第一事務(wù)大小大于第二事務(wù)大小的確定,第一數(shù)據(jù)分組具有比第二數(shù)據(jù)分組更低的優(yōu)先級。
27、 權(quán)利要求l的方法,其中,步驟(e)包括將第一分組置于具有對應(yīng)于第一分配的傳輸優(yōu)先級的優(yōu)先級的第一傳輸隊列中。
28、 權(quán)利要求l的方法,其中,步驟(e)包括將第一分組置于具有對應(yīng)于第一分配的傳輸優(yōu)先級的優(yōu)先級的第一傳輸隊列中并且將第二分組置于具有對應(yīng)于分配給第二分組的傳輸優(yōu)先級的優(yōu)先級的第二傳輸隊列中。
29、 一種用于優(yōu)先排序用于傳輸?shù)姆纸M的設(shè)備,包括接收第一分組和第二分組的分組處理器;和流控制器,其確定與第一分組相關(guān)聯(lián)的第一事務(wù)大??;響應(yīng)于所確定的第一事務(wù)大小,為第一分組分配傳輸優(yōu)先級;并且根據(jù)所分配的傳輸優(yōu)先級來傳輸?shù)?一分組和第二分組。
30、 權(quán)利要求29的設(shè)備,其中,所述分組處理器經(jīng)由第一傳輸層連接來接收第一分組。
31、 權(quán)利要求29的設(shè)備,其中,所述分組處理器經(jīng)由第二傳輸層連接來接收第二分組。
32、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過確定所述第一分組包 括事務(wù)的最后分組來確定和第 一分組相關(guān)聯(lián)的第 一事務(wù)大小。
33、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過確定經(jīng)由第一傳輸層 連接傳輸?shù)氖聞?wù)的至少一個開始和結(jié)束點并且計算在所述開始和結(jié)束點之間 傳輸?shù)臄?shù)據(jù)的量來確定和第一分組相關(guān)聯(lián)的第一事務(wù)大小。
34、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別由裝置經(jīng)由傳輸 層連接所接收的至少一個分組小于最大分組大小來確定事務(wù)的結(jié)束點,從而 確定和第一分組相關(guān)聯(lián)的第一事務(wù)大小。
35、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別由裝置經(jīng)由傳輸 層連接接收的至少一個分組小于最大分組大小并且在緊接所述最大分組大小 的至少一個分組之后來確定事務(wù)的結(jié)束點,從而確定和第一分組相關(guān)聯(lián)的第 一分組大小。
36、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別對應(yīng)于傳輸層連 接的緩沖器已經(jīng)從非空轉(zhuǎn)變?yōu)榭諄泶_定事務(wù)的結(jié)束點,從而確定和第一分組 相關(guān)聯(lián)的第一事務(wù)大小。
37、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別分組到達時間之 間的間隙來確定事務(wù)的結(jié)束點,從而確定和第一分組相關(guān)^:的第一事務(wù)大小。
38、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別標記的PSH位來 確定事務(wù)的結(jié)束點,從而確定和第一分組相關(guān)聯(lián)的第一事務(wù)大小。
39、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過識別對應(yīng)于傳輸層連 接的緩沖器已經(jīng)從空轉(zhuǎn)變?yōu)榉强諄泶_定事務(wù)的開始點,從而確定和第一分組 相關(guān)聯(lián)的第一事務(wù)大小。
40、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過以下步驟確定和第一 分組相關(guān)聯(lián)的第一事務(wù)大小確定和第一分組相關(guān)聯(lián)的第一事務(wù)大?。缓?確定和第二分組相關(guān)聯(lián)的第二事務(wù)大小。
41、 權(quán)利要求40的設(shè)備,其中,所述流控制器分配第一傳輸優(yōu)先級給第 一分組和分配第二傳輸優(yōu)先級給第二分組,所述第一傳輸優(yōu)先級是響應(yīng)于所 確定的第一事務(wù)大小來確定的而所述第二傳輸優(yōu)先級是響應(yīng)于所確定第二事務(wù)大小來確定的。
42、 權(quán)利要求40的設(shè)備,其中,響應(yīng)于第一事務(wù)大小小于第二事務(wù)大小, 所述流控制器分配第 一傳輸優(yōu)先級,其具有高于第二傳輸優(yōu)先級的優(yōu)先級。
43、 權(quán)利要求40的設(shè)備,其中,響應(yīng)于第一事務(wù)大小小于第二事務(wù)大小 的確定和第一傳輸層連接沒有超過給定傳輸帶寬閾值的確定,所述流控制器 分配第一傳輸優(yōu)先級,其具有高于第二傳輸優(yōu)先級的優(yōu)先級。
44、 權(quán)利要求40的設(shè)備,其中,響應(yīng)于第一事務(wù)大小大于第二事務(wù)大小, 所述流控制器分配第一傳輸優(yōu)先級,其具有低于第二傳輸優(yōu)先級的優(yōu)先級。
45、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過確定經(jīng)由第一傳輸層 連接傳輸?shù)氖聞?wù)的多個開始和結(jié)束點并且確定在所述多個開始和結(jié)束點之間 傳輸?shù)臄?shù)據(jù)的平均量來確定和第一分組相關(guān)聯(lián)的第一事務(wù)大小。
46、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過確定經(jīng)由第一傳輸層 連接在預(yù)定時間間隔內(nèi)傳輸?shù)氖聞?wù)的多個開始和結(jié)束點并且計算在所述多個 開始和結(jié)束點之間傳輸?shù)臄?shù)據(jù)的平均量來確定和第一分組相關(guān)聯(lián)的第一事務(wù) 大小。
47、 權(quán)利要求29的設(shè)備,其中,所述流控制器通過以下步驟確定和第一 分組相關(guān)聯(lián)的第一事務(wù)大小確定和第一傳輸層連接相關(guān)聯(lián)的第一平均事務(wù)大?。缓?確定和第二傳輸層連接相關(guān)聯(lián)的第二平均事務(wù)大小。
48、 權(quán)利要求47的設(shè)備,其中,所述流控制器響應(yīng)于所確定的第一平均 事務(wù)大小將第一傳輸優(yōu)先級分配給第一分組并且響應(yīng)于確定的第二平均事務(wù) 大小將第二傳輸優(yōu)先級分配給第二分組。
49、 權(quán)利要求47的設(shè)備,其中,所述流控制器響應(yīng)于第一平均事務(wù)大小 小于第二平均事務(wù)大小的確定將第一傳輸優(yōu)先級分配給第一數(shù)據(jù)分組,該第一數(shù)據(jù)分組具有高于分配給第二數(shù)據(jù)分組的第二傳輸優(yōu)先級的優(yōu)先級。
50、 權(quán)利要求47的設(shè)備,其中,所述流控制器響應(yīng)于第一平均事務(wù)大小 小于第二平均事務(wù)大小的確定和第一傳輸層連接沒有超過給定傳輸帶寬閾值的確定,將第一傳輸優(yōu)先級分配給第一數(shù)據(jù)分組,該第一數(shù)據(jù)分組具有高于 分配給第二數(shù)據(jù)分組的第二傳輸優(yōu)先級的優(yōu)先級。
51、 權(quán)利要求47的設(shè)備,其中,所述流控制器響應(yīng)于第一平均事務(wù)大小大于第二平均事務(wù)大小的確定將第一傳輸優(yōu)先級分配給第一數(shù)據(jù)分組,該第 一數(shù)據(jù)分組具有低于分配給第二數(shù)據(jù)分組的第二傳輸優(yōu)先級的優(yōu)先級。
52、 權(quán)利要求29的設(shè)備,其中,所述設(shè)備是以下其中之一客戶機、服 務(wù)器、客戶機代理和網(wǎng)絡(luò)設(shè)備。
53、 一種用于優(yōu)先排序分組的傳輸?shù)脑O(shè)備,包括(a) 接收第一分組的裝置;(b) 接收第二分組的裝置;(c) 確定事務(wù)的第一事務(wù)大小的裝置;(d) 分配第一傳輸優(yōu)先級給第一分組的裝置,響應(yīng)于所確定的第一事務(wù) 大小來確定該第一傳輸優(yōu)先級;和(e) 用于傳輸?shù)谝环纸M和第二分組的裝置,其中根據(jù)分配的第一傳輸優(yōu) 先級來確定傳輸順序。
54、 一種用于通過基于識別事務(wù)邊界來選擇性傳輸來自中間裝置的附加 的分組以降低傳輸超時的方法,該方法包括(a )通過裝置經(jīng)由發(fā)送器和接收器之間的連接來接收來自發(fā)送器經(jīng)由該 連接的第一分組;(b) 通過所述裝置將所述第一分組發(fā)送到所述接收器;(c) 通過所述裝置確定第一分組是事務(wù)的最后一個分組;(d) 通過裝置響應(yīng)于該確定而產(chǎn)生至少一個附加的分組;并且(e )通過裝置在所述第一分組已經(jīng)傳輸?shù)浇邮掌髦蠼?jīng)由該連接來傳輸 所述至少 一個附加的分組到接收器。
55、 權(quán)利要求54的方法,其中,所述連接包括傳輸層連接。
56、 權(quán)利要求54的方法,其中,所述裝置是以下的其中一個客戶機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備。
57、 權(quán)利要求54的方法,其中,步驟(c)包括通過所述裝置來確定第 一分組小于所述連接的最大分組大小。
58、 權(quán)利要求54的方法,其中,步驟(c)包括通過所述裝置確定第一 分組小于連接的最大分組大小并且在緊接所述最大分組大小的至少一個分組 之后。
59、 權(quán)利要求54的方法,其中,步驟(c)包括通過所述裝置確定對應(yīng)步驟(d)包括通過裝置響應(yīng)于所述確 所述至少 一個附加的數(shù)據(jù)分組包括第步驟(d)包括通過裝置響應(yīng)于所述確所述至少 一個附加的數(shù)據(jù)分組包括所步驟(d)包括通過裝置響應(yīng)于所述確 對于之前傳輸?shù)臄?shù)據(jù)根據(jù)前向糾錯技步驟(d)包括通過裝置響應(yīng)于所述確 基于傳輸層連接的當前丟失率來選擇于所述連接的緩沖器已經(jīng)從非空轉(zhuǎn)變?yōu)榭铡?br>
60、 權(quán)利要求54的方法,其中,步驟(d)包括通過裝置響應(yīng)于所述確 定來產(chǎn)生至少一個附加的分組,其中,所述至少一個附加的數(shù)據(jù)分組包括接 收機發(fā)送至少 一個確認的指示。
61、 權(quán)利要求54的方法,其中, 定來產(chǎn)生至少一個附加的分組,其中, 一數(shù)據(jù)分組。
62、 權(quán)利要求54的方法,其中, 定來產(chǎn)生至少一個附加的分組,其中, 接收的數(shù)據(jù)分組的一部分。
63、 權(quán)利要求54的方法,其中, 定來產(chǎn)生至少一個附加的分組,其中, 術(shù)來產(chǎn)生所述至少一個附加數(shù)據(jù)分組。
64、 權(quán)利要求54的方法,其中, 定來產(chǎn)生至少一個附加的分組,其中, 所傳輸?shù)母郊訑?shù)據(jù)分組的數(shù)量。
65、 權(quán)利要求54的方法,其中,還包括步驟(f )通過所述裝置接收對應(yīng)于至少一個附加數(shù)據(jù)分組的至少一個確認; (g )通過所述裝置基于接收的至少一個確認來確定一個或者多個之前傳 輸?shù)臄?shù)據(jù)分組還沒接收到;和(h )通過所述裝置重傳輸還沒有接收到的一個或者多個之前傳輸?shù)臄?shù)據(jù)分組。
66、 一種用于通過基于識別事務(wù)邊界來選擇性傳輸來自中間裝置的附加 分組以降低傳輸超時的系統(tǒng),該系統(tǒng)包括經(jīng)由連接接收來自發(fā)送器的第一分組的分組處理器;并且將所述第一分 組傳輸?shù)浇邮掌鳎缓痛_定所述第 一分組是事務(wù)的最后一個分組的流控制器;響應(yīng)于該確定, 產(chǎn)生至少一個附加的分組;并且在所述第一分組已經(jīng)傳輸?shù)浇邮掌髦?,?輸所述至少一個附加的分組到接收器。
67、 權(quán)利要求66的系統(tǒng),其中,所述裝置用作用于發(fā)送器和接收器之間的傳輸層連接的中間設(shè)備。
68、 權(quán)利要求66的系統(tǒng),其中,所述裝置是以下的其中一個客戶機、 服務(wù)器或者網(wǎng)絡(luò)設(shè)備。
69、 權(quán)利要求66的系統(tǒng),其中,所述裝置包括透明代理。
70、 權(quán)利要求66的系統(tǒng),其中,所述流控制器確定對應(yīng)于所述連接的緩 沖器已經(jīng)從非空轉(zhuǎn)變?yōu)榭铡?br>
71、 權(quán)利要求66的系統(tǒng),其中,所述流控制器來確定第一分組小于所述 傳輸層連接的最大分組大小。
72、 權(quán)利要求66的系統(tǒng),其中,所述流控制器確定第一分組小于傳輸層 連接的最大分組大小并且在緊接所述最大分組大小的至少一個分組之后。
73、 權(quán)利要求66的系統(tǒng),其中,所述流控制器響應(yīng)于所述確定來產(chǎn)生至 少一個附加的分組,其中,所述至少一個附加的數(shù)據(jù)分組包括接收機傳輸至 少一個確認的指示。
74、 權(quán)利要求66的系統(tǒng),其中,所述流控制器響應(yīng)于所述確定來產(chǎn)生至 少一個附加的分組,其中,所述至少一個附加的數(shù)據(jù)分組包括所述第一數(shù)據(jù) 分組。
75、 權(quán)利要求66的系統(tǒng),其中,所述流控制器響應(yīng)于所述確定來產(chǎn)生至 少一個附加的分組,其中,所述至少一個附加的數(shù)據(jù)分組包括所接收的數(shù)據(jù) 分組的一部分。
76、 權(quán)利要求66的系統(tǒng),其中,所述流控制器響應(yīng)于所述確定來產(chǎn)生至 少一個附加的分組,其中,對于之前傳輸?shù)臄?shù)據(jù)根據(jù)前向糾錯技術(shù)來產(chǎn)生所 述至少一個附加數(shù)據(jù)分組。
77、 權(quán)利要求66的系統(tǒng),其中,所述流控制器響應(yīng)于所述確定來產(chǎn)生至 少一個附加的分組,其中,基于對于傳輸層連接的當前丟失率來選擇所傳輸 的附加數(shù)據(jù)分組的數(shù)量。
78、 權(quán)利要求66的系統(tǒng),其中,所述分組處理器接收對應(yīng)于至少一個附 加數(shù)據(jù)分組的至少一個確認;基于所接收的至少一個確認來確定一個或者多 個之前傳輸?shù)臄?shù)據(jù)分組還沒接收到;并且重傳輸還沒有接收到的一個或者多 個之前傳輸?shù)臄?shù)據(jù)分組。
79、 一種用于通過基于識別事務(wù)邊界來選擇性傳輸來自中間裝置的附加分組以降低傳輸超時的系統(tǒng),該系統(tǒng)包括通過裝置經(jīng)由發(fā)送器和接收器之間的連接來接收來自發(fā)送器經(jīng)由該連接的第一分組的設(shè)備;通過所述裝置將所述第一分組傳輸?shù)剿鼋邮掌鞯脑O(shè)備; 通過所述裝置確定所述第 一分組是事務(wù)的最后一個分組的i殳備; 通過裝置響應(yīng)于該確定而產(chǎn)生至少一個附加的分組的"i殳備;和 通過裝置在所述第一分組已經(jīng)傳輸?shù)浇邮掌髦蠼?jīng)由該連接來傳輸所述至少 一個附加的分組到接收器的設(shè)備。
80、 一種用于在發(fā)送器和接收器之間重傳輸網(wǎng)絡(luò)分組來降低與連接相關(guān) 聯(lián)的傳輸差錯的方法,該方法包括(a )通過裝置接收經(jīng)由連接傳輸?shù)木W(wǎng)絡(luò)分組沒有被接收器接收的指示; (b )通過該裝置響應(yīng)于該指示來重傳輸所述網(wǎng)絡(luò)分組到所述接收器;(c) 通過該裝置確定和該連接相關(guān)聯(lián)的分組丟失率;(d) 通過該裝置響應(yīng)于所確定的分組丟失率來確定多個附加的重傳輸;并且(e )通過該裝置根據(jù)附加的重傳輸?shù)拇_定數(shù)量來重傳輸所述網(wǎng)絡(luò)分組。
81、 權(quán)利要求80的方法,其中,所述連接包括傳輸層連接。
82、 權(quán)利要求80的方法,其中,步驟(e)包括通過所述裝置在網(wǎng)絡(luò)分 組的之前重傳輸?shù)念A(yù)定時間閾值內(nèi)重傳輸網(wǎng)絡(luò)分組。
83、 權(quán)利要求80的方法,其中,步驟(c)包括確定在預(yù)定時間周期內(nèi) 的分組丟失率。
84、 權(quán)利要求80的方法,其中,步驟(c)包括將分組丟失率確定為在 預(yù)定時間周期內(nèi)的平均值。
85、 權(quán)利要求80的方法,其中,所述裝置包括以下其中一個客戶機、 服務(wù)器或者設(shè)備。
86、 權(quán)利要求80的方法,其中,步驟(c)包括通過所述裝置響應(yīng)于所 接收到的指示和確定的事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中所述重傳輸?shù)臄?shù) 量大于l。
87、 權(quán)利要求80的方法,其中,步驟(c)包括通過所述裝置響應(yīng)于所 接收到的指示和確定的事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中相對于較低的確定的事務(wù)大小所述重傳輸?shù)臄?shù)量較高。
88、 權(quán)利要求80的方法,其中,步驟(c)包括通過所述裝置響應(yīng)于所接收到的指示和確定的平均事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中相對于較低 的確定的平均事務(wù)大小所述重傳輸?shù)臄?shù)量較高。
89、 權(quán)利要求80的方法,其中,步驟(d)包括通過所述裝置將所述數(shù) 據(jù)分組重傳輸多次,所述多次等于確定的重傳輸?shù)臄?shù)量,其中,所述多次重 傳輸?shù)拿恳淮卧跁r間上被間隔為使得兩個重傳輸不可能受單個丟失事件影響。
90、 一種用于在發(fā)送器和接收器之間重傳輸網(wǎng)絡(luò)分組來降低與連接相關(guān) 聯(lián)的傳輸差錯的系統(tǒng),該系統(tǒng)包括分組處理器,其接收經(jīng)由該連接傳輸?shù)木W(wǎng)絡(luò)分組沒有被接收器接收的指 示;并且響應(yīng)于該指示來重傳輸所述網(wǎng)絡(luò)分組到所述^^收器;和與分組處理器通信的流控制器,其確定和傳輸層連接相關(guān)聯(lián)的分組丟失 率;響應(yīng)于所確定的分組丟失率來確定多個附加的重傳輸;并且根據(jù)附加的 重傳輸?shù)拇_定數(shù)量來重傳輸所述網(wǎng)絡(luò)分組。
91、 權(quán)利要求90的系統(tǒng),其中,所述連接包括傳輸層連接。
92、 權(quán)利要求90的系統(tǒng),其中,所述分組處理器和流控制器的其中一個 或者兩個組合駐留在以下其中之一上面客戶機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備。
93、 權(quán)利要求90的系統(tǒng),其中,所述分組處理器和流控制器駐留在用作 用于傳輸層連接的透明代理的網(wǎng)絡(luò)設(shè)備中。
94、 權(quán)利要求90的系統(tǒng),其中,所述流控制器在網(wǎng)絡(luò)分組的之前的重傳 輸?shù)念A(yù)定時間閾值內(nèi)重傳輸網(wǎng)絡(luò)分組。
95、 權(quán)利要求90的系統(tǒng),其中,所述流控制器確定在預(yù)定時間周期內(nèi)的 分組丟失率。
96、 權(quán)利要求90的系統(tǒng),其中,所述流控制器將分組丟失率確定為預(yù)定 時間周期內(nèi)的平均值。
97、 權(quán)利要求90的系統(tǒng),其中,所述流控制器響應(yīng)于所接收到的指示和 確定的事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中所述重傳輸?shù)臄?shù)量大于1。
98、 權(quán)利要求90的系統(tǒng),其中,所述流控制器響應(yīng)于所接收到的指示和 確定的事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中相對于較低的確定的事務(wù)大小所述重傳輸?shù)臄?shù)量較高。
99、 權(quán)利要求90的系統(tǒng),其中,所述流控制器響應(yīng)于所接收到的指示和 確定的平均事務(wù)大小來確定重傳輸?shù)臄?shù)量,其中相對于較低的確定的平均事 務(wù)大小所述重傳輸?shù)臄?shù)量較高。
100、 權(quán)利要求90的系統(tǒng),其中,所述流控制器確定所述數(shù)據(jù)分組重傳 輸多次,所述多次等于確定的重傳輸?shù)臄?shù)量,其中所述多次重傳輸?shù)拿恳淮?在時間上被間隔為使得兩個重傳輸不可能受單個丟失事件影響。
101、 一種用于在發(fā)送器和接收器之間重傳輸網(wǎng)絡(luò)分組來降低與連接相關(guān) 聯(lián)的傳輸差錯的系統(tǒng),該系統(tǒng)包括用于通過裝置接收經(jīng)由連接傳輸?shù)木W(wǎng)絡(luò)分組沒有被接收器接收到的指示 的設(shè)備;用于通過該裝置響應(yīng)于該指示來重傳輸所述網(wǎng)絡(luò)分組到所述接收器的設(shè)備;用于通過該裝置確定和該傳輸層連接相關(guān)聯(lián)的分組丟失率的設(shè)備; 用于通過該裝置響應(yīng)于所確定的分組丟失率來確定多個附加的重傳輸?shù)?設(shè)備;并且用于通過該裝置根據(jù)附加的重傳輸?shù)拇_定數(shù)量來重傳輸所述網(wǎng)絡(luò)分組的 設(shè)備。
全文摘要
本發(fā)明描述用于在對和網(wǎng)絡(luò)業(yè)務(wù)量相關(guān)的決策進行排隊并重傳輸中利用事務(wù)邊界檢測方法的系統(tǒng)和方法。通過檢測事務(wù)的邊界和大小,客戶機、服務(wù)器或者中間裝置可以在對決策排隊中基于事務(wù)大小優(yōu)先排序,將優(yōu)先級賦予可以表示交互式和/或等待時間敏感的業(yè)務(wù)量的較小事務(wù)。進一步,在檢測事務(wù)邊界之后,裝置可以重傳輸提示確認的一個或者多個附加分組,用來確保如果事務(wù)的最后一個分組已經(jīng)丟失時的及時通知。本發(fā)明還描述用于潛在地改進網(wǎng)絡(luò)等待時間的系統(tǒng)和方法,包括兩次或者多次重傳輸丟失的分組,用來避免由于重傳輸分組的丟失而導致的附加的延遲。
文檔編號H04L12/54GK101682565SQ200880015762
公開日2010年3月24日 申請日期2008年3月12日 優(yōu)先權(quán)日2007年3月12日
發(fā)明者A·塞繆爾斯, M·奧夫斯相尼科夫, R·普拉蒙東 申請人:思杰系統(tǒng)有限公司