為單個(gè)流ICA提供QoS的系統(tǒng)和方法
【專利摘要】本發(fā)明針對(duì)用于經(jīng)由單個(gè)傳輸層連接為協(xié)議數(shù)據(jù)單元流提供服務(wù)質(zhì)量(QoS)的系統(tǒng)。該系統(tǒng)包括在發(fā)送者和接收者中間的裝置。該裝置經(jīng)由單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。多個(gè)協(xié)議數(shù)據(jù)單元的每個(gè)協(xié)議數(shù)據(jù)單元標(biāo)識(shí)優(yōu)先級(jí)。多個(gè)協(xié)議數(shù)據(jù)單元中的一個(gè)或多個(gè)具有與所述多個(gè)協(xié)議數(shù)據(jù)單元的其他協(xié)議數(shù)據(jù)單元的優(yōu)先級(jí)不同的優(yōu)先級(jí)。該裝置可包括用于為多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí)的過濾器,以及用于分配該平均優(yōu)先級(jí)作為單個(gè)傳輸層連接的連接優(yōu)先級(jí)的引擎。在向單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),該裝置經(jīng)由單個(gè)傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。
【專利說明】為單個(gè)流ICA提供QoS的系統(tǒng)和方法
[0001]相關(guān)申請(qǐng)
[0002]本申請(qǐng)要求在2011年3月11日提交的、標(biāo)題為“Systems and Methods of QoSfor Single Stream ICA”的美國臨時(shí)專利申請(qǐng)N0.61/451874的權(quán)益和優(yōu)先權(quán),出于各種目的,將該美國臨時(shí)專利申請(qǐng)通過引用全部包含于此。
【技術(shù)領(lǐng)域】
[0003]本申請(qǐng)總的涉及數(shù)據(jù)通信網(wǎng)絡(luò)。本申請(qǐng)尤其涉及用于將服務(wù)質(zhì)量應(yīng)用于經(jīng)由單個(gè)傳輸層連接承載的多優(yōu)先級(jí)數(shù)據(jù)流的系統(tǒng)和方法。
【背景技術(shù)】
[0004]遠(yuǎn)程顯示客戶機(jī)和服務(wù)器之間的單個(gè)傳輸層連接可用于所有通信。ICA客戶機(jī)是一種遠(yuǎn)程顯示客戶機(jī)。在ICA協(xié)議中,可使用分配了優(yōu)先級(jí)的“虛擬流或虛通道”來表達(dá)通信延遲要求。高優(yōu)先級(jí)的虛通道可能有望具有較低的通信延遲。例如,對(duì)于⑶I交互可能期望保持低延遲,以提高人類感知的響應(yīng)能力。要實(shí)現(xiàn)這個(gè)目標(biāo),可在高優(yōu)先級(jí)虛通道中發(fā)送⑶I交互事件,而可在低優(yōu)先級(jí)通道中發(fā)送批量數(shù)據(jù)傳輸(例如文件復(fù)制)。
【發(fā)明內(nèi)容】
[0005]本解決方案致力于根據(jù)傳輸層連接中所傳輸?shù)母鱾€(gè)分組的不同優(yōu)先級(jí),向該傳輸層連接提供服務(wù)質(zhì)量(QoS)。ICA協(xié)議使得QoS裝置能夠從網(wǎng)絡(luò)分組中提取優(yōu)先級(jí)信息或標(biāo)簽,以便根據(jù)流的優(yōu)先級(jí)來發(fā)送分組。通常,單個(gè)網(wǎng)絡(luò)分組僅包含ICA的一個(gè)虛通道的有效載荷。由于多個(gè)虛擬流在時(shí)間和空間上被復(fù)用到單個(gè)傳輸層連接,對(duì)于承載ICA的單個(gè)連接來說,可能期望基于虛通道優(yōu)先級(jí)進(jìn)行無序分組傳送。此外,傳輸控制協(xié)議(TCP)的傳輸層連接不支持無序傳送。為使執(zhí)行服務(wù)質(zhì)量更有挑戰(zhàn)性,嘗試在單個(gè)TCP流內(nèi)對(duì)分組進(jìn)行重新排序可能增加延遲并且浪費(fèi)帶寬,這是TCP實(shí)現(xiàn)的重傳算法造成的。在對(duì)分組進(jìn)行重新排序的情況下,典型的TCP重傳算法采取小的、通常為常數(shù)的重新排序窗口,并且調(diào)用“快速”重傳。使用這種ICA,可在每個(gè)連接的基礎(chǔ)上執(zhí)行QoS,例如通過以其他連接為代價(jià)為某些連接給予帶寬優(yōu)先。
[0006]實(shí)現(xiàn)用于這些協(xié)議類型的每連接QoS的一個(gè)方法是將所有緩沖的分組或協(xié)議數(shù)據(jù)單元(PDU)的最大優(yōu)先級(jí)分配為連接優(yōu)先級(jí)。例如,在對(duì)本地驅(qū)動(dòng)進(jìn)行典型文件復(fù)制或者打印的情況下,由于用戶接口反饋(例如進(jìn)度報(bào)告和動(dòng)畫)引起的用戶接口更新,相應(yīng)的連接將具有混合的批量的較低優(yōu)先級(jí)流量和較高優(yōu)先級(jí)流量。由于在同一個(gè)連接上多路復(fù)用多個(gè)通道,分配最大優(yōu)先級(jí)可能不是最佳方法。頻繁的用戶接口更新實(shí)際上會(huì)導(dǎo)致所有緩沖的分組的“刷新”。該刷新可能不會(huì)對(duì)批量傳輸連接產(chǎn)生任何感知上的改進(jìn):進(jìn)度條和動(dòng)畫更新仍會(huì)排在批量流量后。在另一方面,刷新對(duì)具有交互式流量的競(jìng)爭(zhēng)連接的作用可能不太令人滿意且不明顯。采用這種方法,性能可能是緩沖的PDU數(shù)量的倒數(shù)。緩沖的(例如等待被發(fā)送的)PDU越多,該方法的有效性越低。對(duì)于由中間裝置(例如WAN優(yōu)化應(yīng)用)維護(hù)的分開的連接,緩沖問題可能更為重要。預(yù)計(jì)這樣的應(yīng)用中的緩沖量比嚴(yán)格QoS應(yīng)用中要高。
[0007]另一種方法是使用單個(gè)連接內(nèi)分組的平均優(yōu)先級(jí),例如等待被發(fā)送的緩沖的分組或者傳輸中的分組的平均優(yōu)先級(jí)。換句話說,該解決方案可以平均批量“居多”的連接為代價(jià),給予平均交互“居多”的連接更多帶寬。在一些方面,平均或“居多”方法是有用的。該解決方案可能并不試圖改善批量打印或文件復(fù)制連接的延遲(由于采用TCP有序傳送難以實(shí)現(xiàn)),而是為交互式連接保持可以接受的延遲。平均窗口還可以等于、大于或小于緩沖的PDU的數(shù)量。此外,考慮到連接的鏈接利用率,鏈接利用率可以是使“平均”非線性或自適應(yīng)的因子。
[0008]在一些方面,本解決方案的實(shí)施例可使用多個(gè)不同的技術(shù)來實(shí)現(xiàn)平均方法或策略。在一些實(shí)施例中,例如可經(jīng)由“矩形窗(b0Xcar)”FIR (有限脈沖響應(yīng))類型的過濾器實(shí)現(xiàn)直線平均??墒褂镁哂写蟠翱诘腎IR (無限脈沖響應(yīng))過濾器來節(jié)省空間。在一些實(shí)施例中,該系統(tǒng)并不存儲(chǔ)rou,而是僅存儲(chǔ)它們的優(yōu)先級(jí)。例如,對(duì)于采用8個(gè)不同優(yōu)先級(jí)的實(shí)施例,每PDU可使用3位狀態(tài)。此外,可使用任何類型的FIR和/或IIR過濾器。例如,在一些實(shí)施例中,可使用滯后、對(duì)稱或不對(duì)稱過濾。在一些實(shí)施例中,可使用“快速提高”效應(yīng),然而在一些實(shí)施例中,可使用“長(zhǎng)下降(long fall)”效應(yīng)。例如,當(dāng)遇到低優(yōu)先級(jí)的PDU時(shí),系統(tǒng)可快速地降低連接優(yōu)先級(jí),并且接著基于時(shí)間和具有特定優(yōu)先級(jí)的rou的數(shù)量來緩慢地提高連接優(yōu)先級(jí)。
[0009]在一些實(shí)施例中,可以用字節(jié)來替代rou。取代對(duì)PDU采樣/計(jì)數(shù),系統(tǒng)可以對(duì)能被計(jì)數(shù)的每個(gè)虛通道中的字節(jié)進(jìn)行采樣和/或計(jì)數(shù)。對(duì)字節(jié)而不是對(duì)PDU進(jìn)行計(jì)數(shù)會(huì)使得該算法與PDU大小的差別無關(guān)。在進(jìn)一步的實(shí)施例中,可將連接優(yōu)先級(jí)轉(zhuǎn)換為標(biāo)準(zhǔn)TOC/差分服務(wù)QoS位/分組,其標(biāo)記為采用其他外部QoS裝置或者與其一起工作。
[0010]在使用標(biāo)準(zhǔn)QoS裝置時(shí),當(dāng)在同一 TCP會(huì)話內(nèi)分配不同優(yōu)先級(jí)標(biāo)簽時(shí)可考慮單個(gè)連接內(nèi)的重新排序的影響。通常,標(biāo)準(zhǔn)QoS裝置并不維護(hù)每個(gè)TCP連接的狀態(tài)。反而,這些標(biāo)準(zhǔn)QoS裝置可假設(shè)單個(gè)連接內(nèi)的所有分組將具有相同的優(yōu)先級(jí)。為了滿足該設(shè)定,一種方法就是顯示或隱式地對(duì)連接優(yōu)先級(jí)的變化進(jìn)行“速率限制”。例如,選擇大的過濾器窗口將隱式地限制速率。另一種方法是在沒有傳輸中的分組時(shí)將優(yōu)先級(jí)從低改變?yōu)楦摺?br>
[0011]在一些方面,本解決方案針對(duì)用于經(jīng)由單個(gè)傳輸層連接為協(xié)議數(shù)據(jù)單元流提供服務(wù)質(zhì)量(QoS)的方法。該方法包括由裝置經(jīng)由單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。多個(gè)協(xié)議數(shù)據(jù)單元中的每個(gè)協(xié)議數(shù)據(jù)單元標(biāo)識(shí)優(yōu)先級(jí)。多個(gè)協(xié)議數(shù)據(jù)單元中的至少一個(gè)或多個(gè)包括與多個(gè)協(xié)議數(shù)單元中的其他協(xié)議數(shù)據(jù)單元的優(yōu)先級(jí)不同的優(yōu)先級(jí)。該方法可包括由該裝置為多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí)并且分配該平均優(yōu)先級(jí)作為該單個(gè)傳輸層連接的連接優(yōu)先級(jí)。該方法還包括在為單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),由該裝置經(jīng)由單個(gè)傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。
[0012]在一些實(shí)施例中,該方法包括由該裝置經(jīng)由單個(gè)傳輸層連接接收承載遠(yuǎn)程顯示協(xié)議的多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。每個(gè)協(xié)議數(shù)據(jù)單元可以與遠(yuǎn)程顯示協(xié)議的虛通道相對(duì)應(yīng),并且該虛通道可具有優(yōu)先級(jí)或者經(jīng)由遠(yuǎn)程顯示協(xié)議被分配優(yōu)先級(jí)。在一些實(shí)施例中,該方法包括由該裝置緩沖多個(gè)分組,直到多個(gè)分組的連接優(yōu)先級(jí)被分配給該傳輸層連接。[0013]在一些實(shí)施例中,該方法包括由該裝置的過濾器基于有限脈沖響應(yīng)(FIR)過濾來確定平均優(yōu)先級(jí)。在一個(gè)實(shí)施例中,該方法包括由該裝置的過濾器基于無限脈沖響應(yīng)(IIR)過濾來確定平均優(yōu)先級(jí)。在一些實(shí)施例中,該方法包括由裝置將預(yù)定窗口標(biāo)識(shí)為包括預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元。在一些實(shí)施例中,該方法包括由裝置在多個(gè)分組中設(shè)置差分服務(wù)代碼點(diǎn)(DSCP)字段,以與分配給單個(gè)傳輸層連接的連接優(yōu)先級(jí)相對(duì)應(yīng)。
[0014]在一些實(shí)施例中,該方法包括由裝置傳輸具有經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP層)或傳輸層中的一個(gè)標(biāo)識(shí)的連接優(yōu)先級(jí)的多個(gè)數(shù)據(jù)分組的第一分組,且第一分組承載具有經(jīng)由傳輸層之上的協(xié)議標(biāo)識(shí)的優(yōu)先級(jí)的第一協(xié)議數(shù)據(jù)單元。在一些實(shí)施例中,該方法包括由裝置確定第二多個(gè)協(xié)議數(shù)據(jù)單元的第二協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二平均優(yōu)先級(jí),并且由裝置分配該第二平均優(yōu)先級(jí)作為單個(gè)傳輸層連接的連接優(yōu)先級(jí)。該方法還可以包括在為單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配第二協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二平均優(yōu)先級(jí)的同時(shí),由裝置經(jīng)由單個(gè)傳輸層連接傳輸承載第二協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的第二多個(gè)分組。
[0015]在一些方面,本解決方案針對(duì)用于經(jīng)由單個(gè)傳輸層連接為協(xié)議數(shù)據(jù)單元流提供服務(wù)質(zhì)量(QoS)的系統(tǒng)。該系統(tǒng)包括在發(fā)送者和接收者中間的裝置。該裝置經(jīng)由單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。多個(gè)協(xié)議數(shù)據(jù)單元中的每個(gè)協(xié)議數(shù)據(jù)單元標(biāo)識(shí)優(yōu)先級(jí)。多個(gè)協(xié)議數(shù)據(jù)單元中的至少一個(gè)或多個(gè)具有與多個(gè)協(xié)議數(shù)據(jù)單元中的其他協(xié)議數(shù)據(jù)單元的優(yōu)先級(jí)不同的優(yōu)先級(jí)。該裝置可包括過濾器和引擎,所述過濾器用于為多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí),以及所述引擎用于分配該平均優(yōu)先級(jí)作為單個(gè)傳輸層連接的連接優(yōu)先級(jí)。在為單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),該裝置經(jīng)由單個(gè)傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。
[0016]在一些實(shí)施例中,該裝置經(jīng)由單個(gè)傳輸層連接接收承載遠(yuǎn)程顯示協(xié)議的多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組,每個(gè)協(xié)議數(shù)據(jù)單元與虛通道相對(duì)應(yīng),該虛通道配有優(yōu)先級(jí)。在一些實(shí)施例中,該引擎緩沖多個(gè)分組,直到多個(gè)分組的連接優(yōu)先級(jí)被分配給該傳輸層連接。
[0017]在一些實(shí)施例中,過濾器基于有限脈沖響應(yīng)(FIR)過濾來確定平均優(yōu)先級(jí)。在一些實(shí)施例中,過濾器基于無限脈沖響應(yīng)(IIR)過濾來確定平均優(yōu)先級(jí)。在一些實(shí)施例中,該引擎將預(yù)定窗口標(biāo)識(shí)為包括預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元。在一些實(shí)施例中,該引擎在多個(gè)分組中設(shè)置差分服務(wù)代碼點(diǎn)(DSCP)字段,以與分配給單個(gè)傳輸層連接的連接優(yōu)先級(jí)相對(duì)應(yīng)。
[0018]在一些實(shí)施例中,該裝置傳輸具有經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP層)或傳輸層中的一個(gè)標(biāo)識(shí)的連接優(yōu)先級(jí)的多個(gè)數(shù)據(jù)分組的第一分組,且該第一分組承載具有經(jīng)由傳輸層之上的協(xié)議標(biāo)識(shí)的優(yōu)先級(jí)的第一協(xié)議數(shù)據(jù)單元。在一些實(shí)施例中,過濾器為第二多個(gè)協(xié)議數(shù)據(jù)單元的第二協(xié)議數(shù)據(jù)單元預(yù)定窗口確定第二平均優(yōu)先級(jí),并且該引擎分配該第二平均優(yōu)先級(jí)作為單個(gè)傳輸層連接的連接優(yōu)先級(jí)。在為單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配第二協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二平均優(yōu)先級(jí)的同時(shí),該裝置經(jīng)由單個(gè)傳輸層連接傳輸承載第二協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的第二多個(gè)分組。
[0019]在附圖和下文的描述中詳細(xì)闡述本發(fā)明的各種實(shí)施例的細(xì)節(jié)。
【專利附圖】
【附圖說明】[0020]通過參考下面結(jié)合附圖的描述,本發(fā)明的前述和其它目的、方面、特征和優(yōu)點(diǎn),將會(huì)更加明顯并更易于理解,其中:
[0021]圖1A是客戶機(jī)通過一個(gè)或多個(gè)網(wǎng)絡(luò)優(yōu)化設(shè)備訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的實(shí)施例的框圖;
[0022]圖1B是客戶機(jī)通過一個(gè)或多個(gè)網(wǎng)絡(luò)優(yōu)化設(shè)備連同其他網(wǎng)絡(luò)設(shè)備訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的又一個(gè)實(shí)施例的框圖;
[0023]圖1C是客戶機(jī)通過單獨(dú)部署的或者與其他網(wǎng)絡(luò)設(shè)備一起部署的單個(gè)網(wǎng)絡(luò)優(yōu)化設(shè)備訪問服務(wù)器的網(wǎng)絡(luò)環(huán)境的又一個(gè)實(shí)施例的框圖;
[0024]圖1D和IE是計(jì)算裝置的實(shí)施例的框圖;
[0025]圖2A是用于處理客戶機(jī)與服務(wù)器之間的通信的設(shè)備的實(shí)施例的框圖;
[0026]圖2B是部署設(shè)備的網(wǎng)絡(luò)優(yōu)化特征的客戶機(jī)和/或服務(wù)器的又一個(gè)實(shí)施例的框圖;
[0027]圖3是使用網(wǎng)絡(luò)優(yōu)化特征與服務(wù)器通信的客戶機(jī)的實(shí)施例的框圖;
[0028]圖4A是用于向單個(gè)連接內(nèi)不同優(yōu)先級(jí)分組的數(shù)據(jù)流提供服務(wù)質(zhì)量(QoS)的系統(tǒng)的實(shí)施例的框圖;以及
[0029]圖4B是用于向單個(gè)連接內(nèi)不同優(yōu)先級(jí)分組的數(shù)據(jù)流提供服務(wù)質(zhì)量(QoS)的方法的實(shí)施例的流程圖。
[0030]從下面結(jié)合附圖所闡述的詳細(xì)描述,本發(fā)明的特征和優(yōu)點(diǎn)將更明顯,其中,同樣的參考標(biāo)記在全文中標(biāo)識(shí)相應(yīng)的元素。在附圖中,同樣的附圖標(biāo)記通常指示相同的、功能上相似的和/或結(jié)構(gòu)上相似的元素。
【具體實(shí)施方式】
[0031]為了閱讀下述對(duì)本發(fā)明的各種實(shí)施例的描述,下面對(duì)于說明書的部分以及它們各自內(nèi)容的描述是有用的:
[0032]- A部分描述有益于實(shí)施本發(fā)明的實(shí)施例的網(wǎng)絡(luò)環(huán)境和計(jì)算環(huán)境;
[0033]- B部分描述用于向遠(yuǎn)程用戶加速傳送計(jì)算環(huán)境的系統(tǒng)和設(shè)備架構(gòu)的實(shí)施例;
[0034]- C部分描述用于加速客戶機(jī)和服務(wù)器之間的通信的客戶機(jī)代理的實(shí)施例;
[0035]- D部分描述用于對(duì)具有多優(yōu)先級(jí)數(shù)據(jù)流的單個(gè)連接提供服務(wù)質(zhì)量的系統(tǒng)和方法的實(shí)施例。
[0036]A.網(wǎng)絡(luò)和計(jì)算環(huán)塏
[0037]在討論設(shè)備和/或客戶機(jī)的系統(tǒng)和方法的實(shí)施例的細(xì)節(jié)之前,討論可在其中部署這樣的實(shí)施例的網(wǎng)絡(luò)和計(jì)算環(huán)境是有幫助的。現(xiàn)在參見圖1A,描述了網(wǎng)絡(luò)環(huán)境的實(shí)施例。概括來講,網(wǎng)絡(luò)環(huán)境包括經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)104、104’、104”與一個(gè)或多個(gè)服務(wù)器106a —106n (同樣總的稱為服務(wù)器106,或遠(yuǎn)程機(jī)器106)通信的一個(gè)或多個(gè)客戶機(jī)102a — 102n(同樣總的稱為本地機(jī)器102,或客戶機(jī)102)。在一些實(shí)施例中,客戶機(jī)102經(jīng)由一個(gè)或多個(gè)網(wǎng)絡(luò)優(yōu)化設(shè)備200、200’(總的稱為設(shè)備200)與服務(wù)器106通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化設(shè)備200被設(shè)計(jì)為、配置為或適合于優(yōu)化廣域網(wǎng)(WAN)網(wǎng)絡(luò)流量。在一些實(shí)施例中,第一設(shè)備200與第二設(shè)備200’結(jié)合或協(xié)同工作來優(yōu)化網(wǎng)絡(luò)流量。例如,第一設(shè)備200可位于分支機(jī)構(gòu)和WAN連接之間而第二設(shè)備200’位于WAN和公司局域網(wǎng)(LAN)之間。設(shè)備200、200’可一起工作以優(yōu)化在分支機(jī)構(gòu)中的客戶機(jī)和公司LAN上的服務(wù)器之間的WAN相關(guān)的網(wǎng)
絡(luò)流量。
[0038]雖然圖1A示出了在客戶機(jī)102和服務(wù)器106之間的網(wǎng)絡(luò)104、網(wǎng)絡(luò)104’和網(wǎng)絡(luò)104”(總的稱為網(wǎng)絡(luò)104),但客戶機(jī)102和服務(wù)器106可以位于同一個(gè)的網(wǎng)絡(luò)104上。網(wǎng)絡(luò)104、104’、104”可以是相同類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)。網(wǎng)絡(luò)104可為局域網(wǎng)(LAN)(例如公司內(nèi)網(wǎng)),城域網(wǎng)(MAN),或者廣域網(wǎng)(WAN)(例如互聯(lián)網(wǎng)或萬維網(wǎng))。網(wǎng)絡(luò)104、104’、104”可為專用網(wǎng)絡(luò)或公網(wǎng)。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)104’和網(wǎng)絡(luò)104”可為專用網(wǎng)而網(wǎng)絡(luò)104可為公網(wǎng)。在一些實(shí)施例中,網(wǎng)絡(luò)104可為專用網(wǎng)而網(wǎng)絡(luò)104’和/或網(wǎng)絡(luò)104”可為公網(wǎng)。在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)104、104’、104”可都為專用網(wǎng)。在一些實(shí)施例中,客戶機(jī)102可位于公司企業(yè)的分支機(jī)構(gòu)中,經(jīng)由網(wǎng)絡(luò)104上的WAN連接與位于公司數(shù)據(jù)中心中的公司LAN上的服務(wù)器106進(jìn)行通信。
[0039]網(wǎng)絡(luò)104可以是任何類型和/或形式的網(wǎng)絡(luò),并且可包括任何下列任何一種網(wǎng)絡(luò):點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò),廣播網(wǎng)絡(luò),廣域網(wǎng),局域網(wǎng),電信網(wǎng)絡(luò),數(shù)據(jù)通信網(wǎng)絡(luò),計(jì)算機(jī)網(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ò)。在一些實(shí)施例中,網(wǎng)絡(luò)104可以包括諸如紅外信道或者衛(wèi)星頻帶的無線鏈路。網(wǎng)絡(luò)104的拓?fù)淇蔀榭偩€型、星型或環(huán)型網(wǎng)絡(luò)拓?fù)?。網(wǎng)絡(luò)104以及網(wǎng)絡(luò)拓?fù)淇梢允潜绢I(lǐng)域普通技術(shù)人員所知的能夠支持此處描述的操作的任何這樣的網(wǎng)絡(luò)或網(wǎng)絡(luò)拓?fù)洹?br>
[0040]如圖1A所示,第一網(wǎng)絡(luò)優(yōu)化設(shè)備200被顯示在網(wǎng)絡(luò)104和104’之間,并且第二網(wǎng)絡(luò)優(yōu)化設(shè)備200’也在網(wǎng)絡(luò)104’和104”之間。在一些實(shí)施例中,設(shè)備200可位于網(wǎng)絡(luò)104上。例如,公司企業(yè)可在分支機(jī)構(gòu)中部署設(shè)備200。在其它實(shí)施例中,設(shè)備200可以位于網(wǎng)絡(luò)104’上。在一些實(shí)施例中,設(shè)備200可以位于網(wǎng)絡(luò)104’或網(wǎng)絡(luò)104”上。例如,設(shè)備200可位于公司的數(shù)據(jù)中心。在一個(gè)實(shí)施例中,設(shè)備200和200’在同一網(wǎng)絡(luò)上,在又一個(gè)實(shí)施例中,設(shè)備200和200’在不同的網(wǎng)絡(luò)上。
[0041]在一個(gè)實(shí)施例中,設(shè)備200是用于加速、優(yōu)化或者以其他方式改善任何類型和形式的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量的裝置。在一些實(shí)施例中,設(shè)備200是一個(gè)性能增強(qiáng)代理。在其它實(shí)施例中,設(shè)備200是任何類型和形式的WAN優(yōu)化或加速裝置,有時(shí)也被稱為WAN優(yōu)化控制器。在一個(gè)實(shí)施例中,設(shè)備200是由位于佛羅里達(dá)州Ft.Lauderdale的CitrixSystems公司出品的被稱為WANScaler的產(chǎn)品實(shí)施例中的任何一種。在其它實(shí)施例中,設(shè)備200包括由位于華盛頓州Seattle的F5Networks公司出品的被稱為BIG-1P鏈路控制器和WANjet的產(chǎn)品實(shí)施例中的任何一種。在又一個(gè)實(shí)施例中,設(shè)備200包括由位于加利福尼亞州Sunnyvale的Juniper Netfforks公司出品的WX和WXC WAN加速裝置平臺(tái)中的任何一種。在一些實(shí)施例中,設(shè)備200包括由加利福尼亞州San Francisco的Riverbed Technology公司出品的虹鱒(steelhead)系列WAN優(yōu)化設(shè)備中的任何一種。在其它實(shí)施例中,設(shè)備200包括由位于新澤西州Roseland的Expand Networks公司出品的WAN相關(guān)裝置中的任何一種。在一個(gè)實(shí)施例中,設(shè)備200包括由位于加利福尼亞州Cupertino的Packeteer公司出品的任何一種WAN相關(guān)設(shè)備,例如由Packeteer提供的PacketShaper、iShared和SkyX產(chǎn)品實(shí)施例。在又一個(gè)實(shí)施例中,設(shè)備200包括由位于加利福尼亞州San Jose的Cisco Systems公司出品的任何WAN相關(guān)設(shè)備和/或軟件,例如Cisco廣域網(wǎng)應(yīng)用服務(wù)軟件和網(wǎng)絡(luò)模塊以及廣域網(wǎng)引擎設(shè)備。[0042]在一些實(shí)施例中,設(shè)備200為分支機(jī)構(gòu)或遠(yuǎn)程辦公室提供應(yīng)用和數(shù)據(jù)加速服務(wù)。在一個(gè)實(shí)施例中,設(shè)備200包括廣域文件服務(wù)(WAFS)的優(yōu)化。在又一個(gè)實(shí)施例中,設(shè)備200加速文件的傳送,例如經(jīng)由通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)協(xié)議。在其它實(shí)施例中,設(shè)備200在存儲(chǔ)器和/或存儲(chǔ)裝置中提供高速緩存來加速應(yīng)用和數(shù)據(jù)的傳送。在一個(gè)實(shí)施例中,設(shè)備200在任何級(jí)別的網(wǎng)絡(luò)堆?;蛟谌魏蔚膮f(xié)議或網(wǎng)絡(luò)層中提供網(wǎng)絡(luò)流量的壓縮。在又一個(gè)實(shí)施例中,設(shè)備200提供傳輸層協(xié)議優(yōu)化、流量控制、性能增強(qiáng)或修改和/或管理,以加速WAN連接上的應(yīng)用和數(shù)據(jù)的傳送。例如,在一個(gè)實(shí)施例中,設(shè)備200提供傳輸控制協(xié)議(TCP)優(yōu)化。在其它實(shí)施例中,設(shè)備200提供對(duì)于任何會(huì)話或應(yīng)用層協(xié)議的優(yōu)化、流量控制、性能增強(qiáng)或修改和/或管理。在下文的B部分中討論設(shè)備200的架構(gòu)、操作和優(yōu)化技術(shù)的進(jìn)一步的細(xì)節(jié)。
[0043]仍參考圖1A,網(wǎng)絡(luò)環(huán)境可包括多個(gè)邏輯分組的服務(wù)器106。在這些實(shí)施例中,服務(wù)器的邏輯分組可以被稱為服務(wù)器群38。在這些實(shí)施例的一些中,服務(wù)器106可為地理上分散的。在一些情況中,群38可以作為單個(gè)實(shí)體被管理。在其它實(shí)施例中,服務(wù)器群38包括多個(gè)服務(wù)器群38。在一個(gè)實(shí)施例中,服務(wù)器群代表一個(gè)或多個(gè)客戶機(jī)102執(zhí)行一個(gè)或多個(gè)應(yīng)用程序。
[0044]在每個(gè)群38中的服務(wù)器106可為不同種類。一個(gè)或多個(gè)服務(wù)器106可根據(jù)一種類型的操作系統(tǒng)平臺(tái)(例如,由華盛頓州Redmond的Microsoft公司制造的WINDOWS NT)操作,而一個(gè)或多個(gè)其它服務(wù)器106可根據(jù)另一類型的操作系統(tǒng)平臺(tái)(例如,Unix或Linux)操作。每個(gè)群38的服務(wù)器106不需要與同一群38內(nèi)的另一個(gè)服務(wù)器106物理上接近。因此,被邏輯分組為群38的服務(wù)器106組可使用廣域網(wǎng)(WAN)連接或城域網(wǎng)(MAN)連接互聯(lián)。例如,群38可包括物理上位于不同大陸或大陸的不同區(qū)域、國家、州、城市、校園或房間的服務(wù)器106。如果使用局域網(wǎng)(LAN)連接或一些直連形式來連接服務(wù)器106,則可增加群38中的服務(wù)器106間的數(shù)據(jù)傳送速度。
[0045]服務(wù)器106可指文件服務(wù)器、應(yīng)用服務(wù)器、web服務(wù)器、代理服務(wù)器或者網(wǎng)關(guān)服務(wù)器。在一些實(shí)施例中,服務(wù)器106可以有作為應(yīng)用服務(wù)器或者作為主應(yīng)用服務(wù)器工作的能力。在一個(gè)實(shí)施例中,服務(wù)器106可包括活動(dòng)目錄??蛻舳?02也可稱為客戶端節(jié)點(diǎn)或端點(diǎn)。在一些實(shí)施例中,客戶機(jī)102可以有作為客戶機(jī)節(jié)點(diǎn)尋求訪問服務(wù)器上的應(yīng)用的能力,也可以有作為應(yīng)用服務(wù)器為其它客戶機(jī)102a-102n提供對(duì)寄載的應(yīng)用的訪問的能力。
[0046]在一些實(shí)施例中,客戶端102與服務(wù)器106通信。在一個(gè)實(shí)施例中,客戶端102可與群38中的服務(wù)器106的其中一個(gè)直接通信。在又一個(gè)實(shí)施例中,客戶端102執(zhí)行程序鄰近應(yīng)用(program neighborhood application)以與群38內(nèi)的服務(wù)器106通信。在又一個(gè)實(shí)施例中,服務(wù)器106提供主節(jié)點(diǎn)的功能。在一些實(shí)施例中,客戶端102通過網(wǎng)絡(luò)104與群38中的服務(wù)器106通信。通過網(wǎng)絡(luò)104,客戶機(jī)102例如可以請(qǐng)求執(zhí)行由群38中的服務(wù)器106a-106n寄載的各種應(yīng)用,并接收應(yīng)用執(zhí)行結(jié)果的輸出進(jìn)行顯示。在一些實(shí)施例中,只有主節(jié)點(diǎn)提供識(shí)別和提供與寄載所請(qǐng)求的應(yīng)用的服務(wù)器106’相關(guān)的地址信息所需的功能。
[0047]在一個(gè)實(shí)施例中,服務(wù)器106提供web服務(wù)器的功能。在又一個(gè)實(shí)施例中,服務(wù)器106a接收來自客戶機(jī)102的請(qǐng)求,將請(qǐng)求轉(zhuǎn)發(fā)到第二服務(wù)器106b,并使用來自服務(wù)器106b對(duì)該請(qǐng)求的響應(yīng)來對(duì)客戶機(jī)102的請(qǐng)求進(jìn)行響應(yīng)。在又一個(gè)實(shí)施例中,服務(wù)器106獲得客戶機(jī)102可用的應(yīng)用的列舉以及與由該應(yīng)用的列舉所識(shí)別的應(yīng)用的服務(wù)器106相關(guān)的地址信息。在又一個(gè)實(shí)施例中,服務(wù)器106使用web接口將對(duì)請(qǐng)求的響應(yīng)提供給客戶機(jī)102。在一個(gè)實(shí)施例中,客戶端102直接與服務(wù)器106通信以訪問所識(shí)別的應(yīng)用。在又一個(gè)實(shí)施例中,客戶機(jī)102接收由執(zhí)行服務(wù)器106上所識(shí)別的應(yīng)用而產(chǎn)生的諸如顯示數(shù)據(jù)的應(yīng)用輸出數(shù)據(jù)。
[0048]與其他設(shè)備一起部署
[0049]現(xiàn)在參考圖1B,描述了網(wǎng)絡(luò)環(huán)境的又一個(gè)實(shí)施例,在其中,網(wǎng)絡(luò)優(yōu)化設(shè)備200和諸如網(wǎng)關(guān)、防火墻或加速設(shè)備的一個(gè)或多個(gè)其他設(shè)備205、205’(總的稱為設(shè)備205或第二設(shè)備205)部署在一起。例如,在一個(gè)實(shí)施例中,設(shè)備205是防火墻或安全設(shè)備,而設(shè)備205’是LAN加速設(shè)備。在一些實(shí)施例中,客戶機(jī)102可通過一個(gè)或多個(gè)第一設(shè)備200和一個(gè)或多個(gè)第二設(shè)備205與服務(wù)器106通信。
[0050]一個(gè)或多個(gè)設(shè)備200和205可以位于在客戶機(jī)102和服務(wù)器106之間的網(wǎng)絡(luò)或網(wǎng)絡(luò)通信路徑中的任一點(diǎn)處。在一些實(shí)施例中,第二設(shè)備205可與第一設(shè)備200位于同一網(wǎng)絡(luò)104上。在其他實(shí)施例中,第二設(shè)備205可位于與第一設(shè)備200不同的網(wǎng)絡(luò)104上。在又一個(gè)實(shí)施例中,第一設(shè)備200和第二設(shè)備205在同一網(wǎng)絡(luò)上,例如網(wǎng)絡(luò)104,而第一設(shè)備200’和第二設(shè)備205’在同一網(wǎng)絡(luò)上,例如網(wǎng)絡(luò)104’。
[0051]在一個(gè)實(shí)施例中,第二設(shè)備205包括任何類型和形式的傳輸控制協(xié)議或傳輸后終止裝置,例如網(wǎng)關(guān)或防火墻裝置。在一個(gè)實(shí)施例中,設(shè)備205通過與客戶機(jī)建立第一傳輸控制協(xié)議連接并且與第二設(shè)備或服務(wù)器建立第二傳輸控制協(xié)議連接來終止傳輸控制協(xié)議。在又一個(gè)實(shí)施例中,設(shè)備205通過改變、管理或控制在客戶機(jī)和服務(wù)器或第二設(shè)備之間的傳輸控制協(xié)議連接的行為來終止傳輸控制協(xié)議。例如,設(shè)備205可以改變、排隊(duì)、轉(zhuǎn)發(fā)或傳輸網(wǎng)絡(luò)分組以有效地終止傳輸控制協(xié)議連接或者起到終止該連接的作用或模擬為終止該連接。
[0052]在一些實(shí)施例中,第二設(shè)備205是性能增強(qiáng)代理。在一個(gè)實(shí)施例中,設(shè)備205提供虛擬專用網(wǎng)(VPN)連接。在一些實(shí)施例中,設(shè)備205提供安全套接字層VPN (SSL VPN)連接。在其他實(shí)施例中,設(shè)備205提供基于Ipsec (互聯(lián)網(wǎng)協(xié)議安全)的VPN連接。在一些實(shí)施例中,設(shè)備205提供任何一個(gè)或多個(gè)下列功能:壓縮、加速、負(fù)載平衡、交換/路由、緩存和傳輸控制協(xié)議(TCP)加速。
[0053]在一個(gè)實(shí)施例中,設(shè)備205是由位于佛羅里達(dá)州Ft.Lauderdale的CitrixSystems公司出品的被稱為訪問網(wǎng)關(guān)、應(yīng)用防火墻、應(yīng)用網(wǎng)關(guān)或NetScaler的產(chǎn)品實(shí)施例中的任何一種。這樣,在一些實(shí)施例中,設(shè)備200包括執(zhí)行諸如SSL VPN連通、SSL卸載、交換/負(fù)載平衡、域名服務(wù)解析、LAN加速和應(yīng)用防火墻的服務(wù)或功能的任何邏輯、功能、規(guī)則或操作。
[0054]在一些實(shí)施例中,設(shè)備205提供在客戶機(jī)102和服務(wù)器106之間的SSLVPN連接。例如,第一網(wǎng)絡(luò)104上的客戶端102請(qǐng)求建立到第二網(wǎng)絡(luò)104’上的服務(wù)器106的連接。在一些實(shí)施例中,第二網(wǎng)絡(luò)104”是不能從第一網(wǎng)絡(luò)104路由的。在其它實(shí)施例中,客戶端102位于公用網(wǎng)絡(luò)104上,而服務(wù)器106位于專用網(wǎng)絡(luò)104’上,例如公司網(wǎng)。在一個(gè)實(shí)施例中,客戶機(jī)代理攔截第一網(wǎng)絡(luò)104上的客戶機(jī)102的通信,加密該通信,并且經(jīng)第一傳輸層連接發(fā)送該通信到設(shè)備205。設(shè)備205將第一網(wǎng)絡(luò)104上的第一傳輸層連接與到第二網(wǎng)絡(luò)104上的服務(wù)器106的第二傳輸層連接相關(guān)聯(lián)。設(shè)備205接收來自客戶端代理的被攔截的通信,解密該通信,并且經(jīng)第二傳輸層連接發(fā)送該通信到第二網(wǎng)絡(luò)104上的服務(wù)器106。第二傳輸層連接可以是池化的傳輸層連接。在一個(gè)實(shí)施例中,設(shè)備205為在兩個(gè)網(wǎng)絡(luò)104和104’之間的客戶機(jī)102提供端到端安全傳輸層連接。
[0055]在一個(gè)實(shí)施例中,設(shè)備205寄載虛擬專用網(wǎng)絡(luò)104上的客戶機(jī)102的內(nèi)部網(wǎng)互聯(lián)網(wǎng)協(xié)議或者IntranetIP地址??蛻魴C(jī)102具有本地網(wǎng)絡(luò)標(biāo)識(shí)符,諸如第一網(wǎng)絡(luò)104上的互聯(lián)網(wǎng)協(xié)議(IP)地址和/或主機(jī)名稱。當(dāng)經(jīng)由設(shè)備205連接到第二網(wǎng)絡(luò)104’時(shí),設(shè)備205在第二網(wǎng)絡(luò)104’上為客戶機(jī)102建立、分配或者以其它方式提供IntranetIP (內(nèi)部網(wǎng)IP),其是諸如IP地址和/或主機(jī)名稱的網(wǎng)絡(luò)標(biāo)識(shí)符。使用客戶機(jī)的所建立的IntranetIP,設(shè)備205在第二或?qū)S镁W(wǎng)104’上監(jiān)聽并接收指向該客戶機(jī)102的任何通信。在一個(gè)實(shí)施例中,設(shè)備205在第二專用網(wǎng)絡(luò)104上用作或者代表客戶機(jī)102。
[0056]在一些實(shí)施例中,設(shè)備205具有加密引擎,所述加密引擎提供用于操控諸如SSL或TLS的任何安全相關(guān)協(xié)議或其中涉及的任何功能的處理的邏輯、商業(yè)規(guī)則、功能或操作。例如,加密引擎加密并解密通過設(shè)備205傳輸?shù)木W(wǎng)絡(luò)分組,或其任何部分。加密引擎也可代表客戶機(jī)102a-102n、服務(wù)器106a_106n或設(shè)備200、205來設(shè)置或建立SSL或TLS連接。因此,加密引擎提供SSL處理的卸載和加速。在一個(gè)實(shí)施例中,加密引擎使用隧道協(xié)議來提供在客戶機(jī)102a-102n和服務(wù)器106a_106n間的虛擬專用網(wǎng)絡(luò)。在一些實(shí)施例中,加密引擎使用加密處理器。在其它實(shí)施例中,加密引擎包括運(yùn)行在加密處理器260上的可執(zhí)行指令。
[0057]在一些實(shí)施例中,設(shè)備205為在客戶機(jī)102和服務(wù)器106之間的通信提供下列一個(gè)或多個(gè)加速技術(shù):1)壓縮、2)解壓縮、3)傳輸控制協(xié)議池、4)傳輸控制協(xié)議多路復(fù)用、5)傳輸控制協(xié)議緩沖、以及6)高速緩存。在一個(gè)實(shí)施例中,設(shè)備200通過打開與每一服務(wù)器106的一個(gè)或者多個(gè)傳輸層連接并且維持這些連接以允許由客戶機(jī)經(jīng)由互聯(lián)網(wǎng)的重復(fù)數(shù)據(jù)訪問,來為服務(wù)器106緩解由重復(fù)打開和關(guān)閉到客戶機(jī)102的傳輸層連接所造成的大量處理負(fù)載。該技術(shù)此處稱為“連接池”。
[0058]在一些實(shí)施例中,為了經(jīng)由池化的傳輸層連接無縫拼接從客戶機(jī)102到服務(wù)器106的通信,設(shè)備205通過在傳輸層協(xié)議級(jí)修改序列號(hào)和確認(rèn)號(hào)來轉(zhuǎn)換或多路復(fù)用通信。這被稱為“連接多路復(fù)用”。在一些實(shí)施例中,不需要應(yīng)用層協(xié)議相互作用。例如,在到來的分組(即,自客戶機(jī)102接收的分組)的情況中,所述分組的源網(wǎng)絡(luò)地址被改變?yōu)樵O(shè)備205的輸出端口的網(wǎng)絡(luò)地址,而目的網(wǎng)絡(luò)地址被改為目的服務(wù)器的網(wǎng)絡(luò)地址。在發(fā)出的分組(即,自服務(wù)器106接收的一個(gè)分組)的情況中,源網(wǎng)絡(luò)地址被從服務(wù)器106的網(wǎng)絡(luò)地址改變?yōu)樵O(shè)備205的輸出端口的網(wǎng)絡(luò)地址,而目的地址被從設(shè)備205的網(wǎng)絡(luò)地址改變?yōu)檎?qǐng)求的客戶機(jī)102的網(wǎng)絡(luò)地址。分組的序列號(hào)和確認(rèn)號(hào)也被轉(zhuǎn)換為到客戶機(jī)102的設(shè)備205的傳輸層連接上的由客戶機(jī)102所期待的序列號(hào)和確認(rèn)。在一些實(shí)施例中,傳輸層協(xié)議的分組校驗(yàn)和被重新計(jì)算以計(jì)及這些轉(zhuǎn)換。
[0059]在又一個(gè)實(shí)施例中,設(shè)備205為客戶機(jī)102和服務(wù)器106之間的通信提供交換或負(fù)載平衡功能。在一些實(shí)施例中,設(shè)備205根據(jù)層4有效載荷或應(yīng)用層請(qǐng)求數(shù)據(jù)來分配流量并將客戶機(jī)請(qǐng)求定向到服務(wù)器106。在一個(gè)實(shí)施例中,盡管網(wǎng)絡(luò)分組的網(wǎng)絡(luò)層或者層2標(biāo)識(shí)了目的服務(wù)器106,但設(shè)備205利用承載為傳輸層分組的有效載荷的數(shù)據(jù)和應(yīng)用信息來確定服務(wù)器106以便分發(fā)網(wǎng)絡(luò)分組。在一個(gè)實(shí)施例中,設(shè)備205的健康監(jiān)控程序監(jiān)控服務(wù)器的健康來確定分發(fā)客戶機(jī)請(qǐng)求到哪個(gè)服務(wù)器106。在一些實(shí)施例中,如果設(shè)備205檢測(cè)到某個(gè)服務(wù)器106不可用或者具有超過預(yù)定閾值的負(fù)載,設(shè)備205可以將客戶機(jī)請(qǐng)求定向或者分發(fā)到另一個(gè)服務(wù)器106。
[0060]在一些實(shí)施例中,設(shè)備205用作域名服務(wù)(DNS)解析器或以其他方式提供對(duì)來自客戶機(jī)102的DNS請(qǐng)求的解析。在一些實(shí)施例中,設(shè)備攔截由客戶機(jī)102發(fā)送的DNS請(qǐng)求。在一個(gè)實(shí)施例中,設(shè)備205以設(shè)備205的IP地址或其所寄載的IP地址來響應(yīng)客戶機(jī)的DNS請(qǐng)求。在此實(shí)施例中,客戶機(jī)102把用于該域名的網(wǎng)絡(luò)通信發(fā)送到設(shè)備200。在又一個(gè)實(shí)施例中,設(shè)備200以第二設(shè)備200’的或其所寄載的IP地址來響應(yīng)客戶機(jī)的DNS請(qǐng)求。在一些實(shí)施例中,設(shè)備205使用由設(shè)備200確定的服務(wù)器106的IP地址來響應(yīng)客戶機(jī)的DNS請(qǐng)求。
[0061]在又一個(gè)實(shí)施例中,設(shè)備205為客戶機(jī)102和服務(wù)器106之間的通信提供應(yīng)用防火墻功能。在一個(gè)實(shí)施例中,策略引擎295’提供用于檢測(cè)和阻斷非法請(qǐng)求的規(guī)則。在一些實(shí)施例中,應(yīng)用防火墻防御拒絕服務(wù)(DoS)攻擊。在其它實(shí)施例中,設(shè)備檢查所攔截的請(qǐng)求的內(nèi)容,以識(shí)別和阻斷基于應(yīng)用的攻擊。在一些實(shí)施例中,規(guī)則/策略引擎包括用于提供對(duì)多個(gè)種類和類型的基于web或互聯(lián)網(wǎng)的脆弱點(diǎn)的保護(hù)的一個(gè)或多個(gè)應(yīng)用防火墻或安全控制策略,例如下列的一個(gè)或多個(gè):1)緩沖區(qū)泄出,2) CG1-BIN參數(shù)操縱,3)表單/隱藏字段操縱,4)強(qiáng)制瀏覽,5) cookie或會(huì)話中毒,6)被破壞的訪問控制列表(ACLs)或弱密碼,7)跨站腳本處理(XSS),8)命令注入,9) SQL注入,10)錯(cuò)誤觸發(fā)敏感信息泄露,11)對(duì)加密的不安全使用,12)服務(wù)器錯(cuò)誤配置,13)后門和調(diào)試選項(xiàng),14)網(wǎng)站涂改,15)平臺(tái)或操作系統(tǒng)弱點(diǎn),和16)零天攻擊。在一個(gè)實(shí)施例中,對(duì)下列情況的一種或多種,設(shè)備的防火墻以檢查或分析網(wǎng)絡(luò)通信的形式來提供HTML格式字段的保護(hù):1)返回所需的字段,2)不允許附加字段,3)只讀和隱藏字段強(qiáng)制(enf0rcement),4)下拉列表和單選按鈕字段的一致,以及5)格式字段最大長(zhǎng)度強(qiáng)制。在一些實(shí)施例中,設(shè)備205的應(yīng)用防火墻確保cookie不被修改。在其它實(shí)施例中,設(shè)備205通過執(zhí)行合法的URL來防御強(qiáng)制瀏覽。
[0062]在其他實(shí)施例中,應(yīng)用防火墻設(shè)備205保護(hù)在網(wǎng)絡(luò)通信中包含的任何機(jī)密信息。設(shè)備205可以根據(jù)策略引擎的規(guī)則或策略來檢查或分析任一網(wǎng)絡(luò)通信以識(shí)別在網(wǎng)絡(luò)分組的任一字段中的任一機(jī)密信息。在一些實(shí)施例中,應(yīng)用防火墻在網(wǎng)絡(luò)通信中識(shí)別信用卡號(hào)、口令、社會(huì)保險(xiǎn)號(hào)、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出現(xiàn)。網(wǎng)絡(luò)通信的編碼部分可以包括這些出現(xiàn)或機(jī)密信息。基于這些出現(xiàn),在一個(gè)實(shí)施例中,應(yīng)用防火墻可以對(duì)網(wǎng)絡(luò)通信采取策略行動(dòng),諸如阻止發(fā)送網(wǎng)絡(luò)通信。在又一個(gè)實(shí)施例中,應(yīng)用防火墻可以重寫、移動(dòng)或者以其它方式掩蓋該所識(shí)別的出現(xiàn)或者機(jī)密信息。
[0063]盡管總的稱為網(wǎng)絡(luò)優(yōu)化或第一設(shè)備200和第二設(shè)備205,但第一設(shè)備200和第二設(shè)備205可以是相同類型和形式的設(shè)備。在一個(gè)實(shí)施例中,第二設(shè)備205可執(zhí)行與第一設(shè)備200相同的功能,或部分相同的功能,反之亦然。例如,第一設(shè)備200和第二設(shè)備205都可以提供加速技術(shù)。在一個(gè)實(shí)施例中,第一設(shè)備200可執(zhí)行LAN加速而第二設(shè)備205執(zhí)行WAN加速,或者反之亦然。在又一個(gè)實(shí)施例中,第一設(shè)備200也可以與第二設(shè)備205 —樣是傳輸控制協(xié)議終止裝置。而且,盡管設(shè)備200和205被顯示為在網(wǎng)絡(luò)上單獨(dú)的裝置,但設(shè)備200和/或設(shè)備205可以是客戶機(jī)102或服務(wù)器106的一部分。
[0064]現(xiàn)參考圖1C,描述了用于部署設(shè)備200的網(wǎng)絡(luò)環(huán)境的其他實(shí)施例。在如圖1C的上部所描述的又一個(gè)實(shí)施例中,設(shè)備200可以部署為網(wǎng)絡(luò)104上單個(gè)設(shè)備或單個(gè)代理。例如,設(shè)備200可以被設(shè)計(jì)、構(gòu)建或調(diào)整來執(zhí)行此處所討論的WAN優(yōu)化技術(shù),而不需要第二協(xié)同設(shè)備200’。在如圖1C的下部所描述的其他實(shí)施例中,可以將單個(gè)設(shè)備200與一個(gè)或多個(gè)第二設(shè)備205部署在一起。例如,諸如Citrix WANScaler設(shè)備的WAN加速第一設(shè)備200可以與LAN加速或應(yīng)用防火墻第二設(shè)備205 (例如Citrix NetScaler設(shè)備)部署在一起。
[0065]計(jì)算裝置
[0066]客戶機(jī)102、服務(wù)器106和設(shè)備200和205可以被部署為和/或執(zhí)行在任何類型和形式的計(jì)算裝置上,諸如能夠在任何類型和形式的網(wǎng)絡(luò)上通信并執(zhí)行此處描述的操作的計(jì)算機(jī)、網(wǎng)絡(luò)裝置或者設(shè)備。圖1C和ID描述了可用于實(shí)施客戶機(jī)102、服務(wù)器106或設(shè)備200的實(shí)施例的計(jì)算裝置100的框圖。如圖1C和ID所示,每個(gè)計(jì)算裝置100包括中央處理單元101和主存儲(chǔ)器單元122。如圖1C所示,計(jì)算裝置100可以包括可視顯示裝置124、鍵盤126和/或諸如鼠標(biāo)的指示裝置127。每個(gè)計(jì)算裝置100也可包括其它可選元件,例如一個(gè)或多個(gè)輸入/輸出裝置130a — 130b (總的使用附圖標(biāo)記130表不),以及與中央處理單元101通信的高速緩存存儲(chǔ)器140。
[0067]中央處理單元101是響應(yīng)并處理從主存儲(chǔ)器單元122取出的指令的任何邏輯電路。在許多實(shí)施例中,中央處理單元由微處理器單元提供,例如:由加利福尼亞州MountainView的Intel公司制造的微處理器單元;由伊利諾伊州Schaumburg的Motorola公司制造的微處理器單元;由加利福尼亞州Santa Clara的Transmeta公司制造的微處理器單元;由紐約州 White Plains 的 International Business Machines 公司制造的 RS/6000 處理器;或者由加利福尼亞州Sunnyvale的Advanced Micro Devices公司制造的微處理器單元。計(jì)算裝置100可以基于這些處理器中的任何一種,或者能夠按照這里所說明的那樣運(yùn)行的任何其它處理器。
[0068]主存儲(chǔ)器單元122可以是能夠存儲(chǔ)數(shù)據(jù)并允許微處理器101直接訪問任何存儲(chǔ)位置的一個(gè)或多個(gè)存儲(chǔ)器芯片,例如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、突發(fā)SRAM或同步突發(fā)SRAM(BSRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器DRAM、快速頁模式DRAM (FPM DRAM)、增強(qiáng)型DRAM (EDRAM)、擴(kuò)展數(shù)據(jù)輸出RAM (EDO RAM)、擴(kuò)展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)式擴(kuò)展數(shù)據(jù)輸出DRAM(BED0 DRAM)、增強(qiáng)型 DRAM (EDRAM)、同步 DRAM (SDRAM), JEDEC SRAM、PC100SDRAM、雙數(shù)據(jù)速率 SDRAM (DDR SDRAM)、增強(qiáng)型 SRAM (ESDRAM)、同步鏈路 DRAM (SLDRAM)、直接 RambusDRAM (DRDRAM)或鐵電RAM (FRAM)0主存儲(chǔ)器122可以基于上述存儲(chǔ)芯片的任何一種,或者能夠像這里所說明的那樣運(yùn)行的任何其它可用存儲(chǔ)芯片。在圖1C中所示的實(shí)施例中,處理器101通過系統(tǒng)總線150 (在下面進(jìn)行更詳細(xì)的描述)與主存儲(chǔ)器122進(jìn)行通信。圖1C描述了在其中處理器通過存儲(chǔ)器端口 103直接與主存儲(chǔ)器122通信的計(jì)算裝置100的實(shí)施例。例如,在圖1D中,主存儲(chǔ)器122可以是DRDRAM。
[0069]圖1D描述了在其中主處理器101通過第二總線與高速緩存存儲(chǔ)器140直接通信的實(shí)施例,第二總線有時(shí)也稱為后端總線。其他實(shí)施例中,主處理器101使用系統(tǒng)總線150和高速緩存存儲(chǔ)器140通信。高速緩存存儲(chǔ)器140通常有比主存儲(chǔ)器122更快的響應(yīng)時(shí)間,并且通常由SRAM、BSRAM或EDRAM提供。在圖1C中所示的實(shí)施例中,處理器101通過本地系統(tǒng)總線150與多個(gè)1/0裝置130進(jìn)行通信??梢允褂酶鞣N不同的總線將中央處理單元101連接到任何1/0裝置130,所述總線包括VESA VL總線、ISA總線、EISA總線、微通道架構(gòu)(MCA)總線、PCI總線、PC1-X總線、PC1-Express總線或NuBus。對(duì)于1/0裝置是視頻顯示器124的實(shí)施例,處理器101可以使用高級(jí)圖形端口(AGP)與顯示器124通信。圖1D說明了主處理器101通過超傳輸(HyperTransport)、快速I/O或者Inf iniBand直接與I/O裝置130通信的計(jì)算機(jī)100的一個(gè)實(shí)施例。圖1D還描述了在其中混合本地總線和直接通信的實(shí)施例:處理器101使用本地互連總線與I/O裝置130進(jìn)行通信,同時(shí)直接與I/O裝置130進(jìn)行通信。
[0070]計(jì)算裝置100可以支持任何適當(dāng)?shù)陌惭b裝置116,例如用于接收像3.5英寸、5.25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動(dòng)器、CD-ROM驅(qū)動(dòng)器、CD-R/RW驅(qū)動(dòng)器、DVD-ROM驅(qū)動(dòng)器、多種格式的磁帶驅(qū)動(dòng)器、USB裝置、硬盤驅(qū)動(dòng)器或適于安裝像任何客戶機(jī)代理120或其部分的軟件和程序的任何其它裝置。計(jì)算裝置100還可以包括存儲(chǔ)裝置128,諸如一個(gè)或者多個(gè)硬盤驅(qū)動(dòng)器或者獨(dú)立磁盤冗余陣列,用于存儲(chǔ)操作系統(tǒng)和其它相關(guān)軟件,以及用于存儲(chǔ)諸如涉及客戶機(jī)代理120的任何程序的應(yīng)用軟件程序?;蛘撸梢允褂冒惭b裝置116的任何一種作為存儲(chǔ)裝置128。此外,操作系統(tǒng)和軟件可從例如可引導(dǎo)CD的可引導(dǎo)介質(zhì)運(yùn)行,諸如KNOPPIX?,一種用于GNU/Linux的可引導(dǎo)⑶,該可引導(dǎo)CD可自knoppix.net作為GNU/Linux分發(fā)獲得。
[0071]此外,計(jì)算裝置100可以包括通過多種連接接口到局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或互聯(lián)網(wǎng)的網(wǎng)絡(luò)接口 118,所述多種連接包括但不限于標(biāo)準(zhǔn)電話線路、LAN或WAN鏈路(例如802.ll,Tl,T3、56kb、X.25)、寬帶連接(如ISDN、幀中繼、ATM)、無線連接、或上述任何或所有連接的一些組合。網(wǎng)絡(luò)接口 118可以包括內(nèi)置網(wǎng)絡(luò)適配器、網(wǎng)絡(luò)接口卡、PCMCIA網(wǎng)絡(luò)卡、卡總線網(wǎng)絡(luò)適配器、無線網(wǎng)絡(luò)適配器、USB網(wǎng)絡(luò)適配器、調(diào)制解調(diào)器或適用于將計(jì)算裝置100接口到能夠通信并執(zhí)行本文所述的操作的任何類型的網(wǎng)絡(luò)的任何其它設(shè)備。計(jì)算裝置100中可以包括各種I/O裝置130a-130n。輸入裝置包括鍵盤、鼠標(biāo)、觸控板、軌跡球、麥克風(fēng)和繪圖板。輸出裝置包括視頻顯示器、揚(yáng)聲器、噴墨打印機(jī)、激光打印機(jī)和熱升華打印機(jī)。如圖1C所示,I/O裝置130可以由I/O控制器123控制。I/O控制器可以控制一個(gè)或多個(gè)I/O裝置,例如鍵盤126和指示裝置127 (如鼠標(biāo)或光筆)。此外,I/O裝置還可以為計(jì)算裝置100提供存儲(chǔ)裝置128和/或安裝介質(zhì)116。在其它實(shí)施例中,計(jì)算裝置100可以提供USB連接以接納手持USB存儲(chǔ)裝置,例如由位于加利福尼亞州Los Alamitos的Twintech Industry公司制造的USB閃存驅(qū)動(dòng)系列裝置。
[0072]在一些實(shí)施例中,計(jì)算裝置100可以包括多個(gè)顯示裝置124a_124n或與其相連,這些顯示裝置各自可以是相同或不同的類型和/或形式。因而,任何一種I/O裝置130a-130n和/或I/O控制器123可以包括任一類型和/或形式的適當(dāng)?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許或提供通過計(jì)算裝置100連接和使用多個(gè)顯示裝置124a-124n。例如,計(jì)算裝置100可以包括任何類型和/或形式的視頻適配器、視頻卡、驅(qū)動(dòng)器和/或庫,以與顯示裝置124a-124n接口、通信、連接或以其他方式使用顯示裝置。在一個(gè)實(shí)施例中,視頻適配器可以包括多個(gè)連接器以與多個(gè)顯示裝置124a-124n接口。在其它實(shí)施例中,計(jì)算裝置100可以包括多個(gè)視頻適配器,每個(gè)視頻適配器與顯示裝置124a-124n中的一個(gè)或多個(gè)連接。在一些實(shí)施例中,計(jì)算裝置100的操作系統(tǒng)的任一部分都可以被配置用于使用多個(gè)顯示器124a-124n。在其它實(shí)施例中,顯示裝置124a_124n中的一個(gè)或多個(gè)可以由一個(gè)或多個(gè)其它計(jì)算裝置提供,諸如例如通過網(wǎng)絡(luò)與計(jì)算裝置100連接的計(jì)算裝置IOOa和100b。這些實(shí)施例可以包括被設(shè)計(jì)和構(gòu)造為將另一個(gè)計(jì)算機(jī)的顯示裝置用作計(jì)算裝置100的第二顯示裝置124a的任一類型的軟件。本領(lǐng)域的普通技術(shù)人員會(huì)認(rèn)識(shí)和理解可以將計(jì)算裝置100配置成具有多個(gè)顯示裝置124a-124n的各種方法和實(shí)施例。
[0073]在進(jìn)一步的實(shí)施例中,I/O裝置130可以是系統(tǒng)總線150和外部通信總線之間的橋170,所述外部通信總線例如USB總線、Apple桌面總線、RS-232串行連接、SCSI總線、FireWire總線、Fireffire800總線、以太網(wǎng)總線、AppleTalk總線、千兆位以太網(wǎng)總線、異步傳輸模式總線、HIPPI總線、超級(jí)HIPPI總線、SerialPlus總線、SCI/LAMP總線、光纖信道總線或串行SCSI總線。
[0074]圖1C和ID中描述的那類計(jì)算裝置100通常在控制任務(wù)的調(diào)度和對(duì)系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計(jì)算裝置100可以運(yùn)行任何操作系統(tǒng),如Microsoft?Windows操作系統(tǒng),不同發(fā)行版本的Unix和Linux操作系統(tǒng),用于Macintosh計(jì)算機(jī)的任何版本的MAC OS?,任何嵌入式操作系統(tǒng),任何實(shí)時(shí)操作系統(tǒng),任何開源操作系統(tǒng),任何專有
操作系統(tǒng),任何用于移動(dòng)計(jì)算裝置的操作系統(tǒng),或者任何其它能夠在計(jì)算裝置上運(yùn)行并完成這里所述操作的操作系統(tǒng)。典型的操作系統(tǒng)包括:WIND0WS3.x、WIND0WS95、WIND0WS98、WIND0WS2000,WINDOWS NT3.51、WINDOWS NT4.0、WINDOWS CE 和 WINDOWS XP,所有這些均由位于華盛頓州Redmond的微軟公司出品;由位于加利福尼亞州Cupertino的蘋果計(jì)算機(jī)出品的MacOS ;由位于紐約州Armonk的國際商業(yè)機(jī)器公司出品的OS/2 ;以及由位于猶他州鹽湖城的Caldera公司發(fā)布的可免費(fèi)使用的Linux操作系統(tǒng)或者任何類型和/或形式的Unix操作系統(tǒng),以及其它。
[0075]在其它實(shí)施例中,計(jì)算裝置100可以有符合該裝置的不同的處理器、操作系統(tǒng)和輸入設(shè)備。例如,在一個(gè)實(shí)施例中,計(jì)算機(jī)100是由Palm公司出品的Treo 180、270、1060、600或650智能電話。在該實(shí)施例中,Treo智能電話在PalmOS操作系統(tǒng)的控制下操作,并包括指示筆輸入裝置以及五向?qū)Ш窖b置。此外,計(jì)算裝置100可以是任何工作站、桌面計(jì)算機(jī)、膝上型或筆記本計(jì)算機(jī)、服務(wù)器、手持計(jì)算機(jī)、移動(dòng)電話、任何其它計(jì)算機(jī)、或能夠通信并有足夠的處理器能力和存儲(chǔ)容量以執(zhí)行此處所述的操作的其它形式的計(jì)算或者電信裝置。
[0076]B.系統(tǒng)和設(shè)各架構(gòu)
[0077]現(xiàn)參考圖2A,描述了用于傳送和/或操作客戶機(jī)上的計(jì)算環(huán)境的設(shè)備200的系統(tǒng)環(huán)境和架構(gòu)的實(shí)施例。在一些實(shí)施例中,服務(wù)器106包括用于向一個(gè)或多個(gè)客戶機(jī)102傳送計(jì)算環(huán)境或應(yīng)用和/或數(shù)據(jù)文件的應(yīng)用傳送系統(tǒng)290??偟膩碚f,客戶機(jī)102經(jīng)由網(wǎng)絡(luò)104和設(shè)備200與服務(wù)器106通信。例如,客戶機(jī)102可駐留在公司的遠(yuǎn)程辦公室里,例如分支機(jī)構(gòu),而服務(wù)器106可駐留在公司數(shù)據(jù)中心。客戶機(jī)102包括客戶機(jī)代理120以及計(jì)算環(huán)境215。計(jì)算環(huán)境215可執(zhí)行或操作用于訪問、處理或使用數(shù)據(jù)文件的應(yīng)用??山?jīng)由設(shè)備200和/或服務(wù)器106傳送計(jì)算環(huán)境215、應(yīng)用和/或數(shù)據(jù)文件。
[0078]在一些實(shí)施例中,設(shè)備200向客戶機(jī)102加速傳送計(jì)算環(huán)境215或者其任何部分。在一個(gè)實(shí)施例中,設(shè)備200通過應(yīng)用傳送系統(tǒng)290加速計(jì)算環(huán)境15的傳送。例如,可使用此處描述的實(shí)施例來加速從公司中央數(shù)據(jù)中心到遠(yuǎn)程用戶位置(例如公司的分支機(jī)構(gòu))的流應(yīng)用(streaming application)及該應(yīng)用可處理的數(shù)據(jù)文件的傳送。在又一個(gè)實(shí)施例中,設(shè)備200加速客戶機(jī)102和服務(wù)器106之間的傳輸層流量。在又一個(gè)實(shí)施例中,設(shè)備200控制、管理、或調(diào)整傳輸層協(xié)議以便加速計(jì)算環(huán)境的傳送。在一些實(shí)施例中,設(shè)備200使用緩存和/或壓縮技術(shù)來加速計(jì)算環(huán)境的傳輸。[0079]在一些實(shí)施例中,基于多個(gè)執(zhí)行方法并且基于通過策略引擎295所應(yīng)用的任一驗(yàn)證和授權(quán)策略,應(yīng)用傳送管理系統(tǒng)290提供將計(jì)算環(huán)境傳送到遠(yuǎn)程的或者其它的用戶的桌面的應(yīng)用傳送技術(shù)。使用這些技術(shù),遠(yuǎn)程用戶可以從任何網(wǎng)絡(luò)連接裝置100獲取計(jì)算環(huán)境并且訪問存儲(chǔ)應(yīng)用和數(shù)據(jù)文件的服務(wù)器。在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290可駐留在服務(wù)器106上或在其上執(zhí)行。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290可駐留在多個(gè)服務(wù)器106a-106n上或在其上執(zhí)行。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)290可在服務(wù)器群38內(nèi)執(zhí)行。在一個(gè)實(shí)施例中,執(zhí)行應(yīng)用傳送系統(tǒng)290的服務(wù)器106也可存儲(chǔ)或提供應(yīng)用和數(shù)據(jù)文件。在又一個(gè)實(shí)施例中,一個(gè)或多個(gè)服務(wù)器106的第一組可執(zhí)行應(yīng)用傳送系統(tǒng)290,而不同的服務(wù)器106n可存儲(chǔ)或提供應(yīng)用和數(shù)據(jù)文件。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)290、應(yīng)用和數(shù)據(jù)文件中的每一個(gè)可駐留或位于不同的服務(wù)器。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290的任何部分可駐留、執(zhí)行、或被存儲(chǔ)于或分發(fā)到設(shè)備200或多個(gè)設(shè)備。
[0080]客戶機(jī)102可包括用于執(zhí)行使用或處理數(shù)據(jù)文件的應(yīng)用的計(jì)算環(huán)境215??蛻魴C(jī)102可通過網(wǎng)絡(luò)104、104’和設(shè)備200請(qǐng)求來自服務(wù)器106的應(yīng)用和數(shù)據(jù)文件。在一個(gè)實(shí)施例中,設(shè)備200可以將來自客戶機(jī)102的請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)器106。例如,客戶機(jī)102可能不具有本地存儲(chǔ)或者本地可訪問的應(yīng)用和數(shù)據(jù)文件。響應(yīng)于請(qǐng)求,應(yīng)用傳送系統(tǒng)290和/或服務(wù)器106可以傳送應(yīng)用和數(shù)據(jù)文件到客戶機(jī)102。例如,在一個(gè)實(shí)施例中,服務(wù)器106可以把應(yīng)用作為應(yīng)用流來傳輸,以在客戶機(jī)102上的計(jì)算環(huán)境215中操作。
[0081]在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)290包括Citrix Systems公司的Citrix AccessSuite? 的任一部分(例如 MetaFrame 或 Citrix Presentation Server?),和 / 或微軟公司開發(fā)的Microsoft? Windows終端服務(wù)中的任何一個(gè)。在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290可以通過遠(yuǎn)程顯示協(xié)議或者以其它方式通過基于遠(yuǎn)程計(jì)算或者基于服務(wù)器計(jì)算來傳送一個(gè)或者多個(gè)應(yīng)用到客戶機(jī)102或者用戶。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290可以通過應(yīng)用流來傳送一個(gè)或者多個(gè)應(yīng)用到客戶機(jī)或者用戶。
[0082]在一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290包括策略引擎295,其用于控制和管理對(duì)應(yīng)用的訪問、應(yīng)用執(zhí)行方法的選擇以及應(yīng)用的傳送。在一些實(shí)施例中,策略引擎295確定用戶或者客戶機(jī)102可以訪問的一個(gè)或者多個(gè)應(yīng)用。在又一個(gè)實(shí)施例中,策略引擎295確定應(yīng)用應(yīng)該如何被傳送到用戶或者客戶機(jī)102,例如執(zhí)行的方法。在一些實(shí)施例中,應(yīng)用傳送系統(tǒng)290提供多個(gè)傳送技術(shù),從中選擇應(yīng)用執(zhí)行的方法,例如基于服務(wù)器的計(jì)算、本地流式傳輸或傳送應(yīng)用給客戶機(jī)120以用于本地執(zhí)行。
[0083]在一個(gè)實(shí)施例中,客戶機(jī)102請(qǐng)求應(yīng)用程序的執(zhí)行而包括服務(wù)器106的應(yīng)用傳送系統(tǒng)290選擇執(zhí)行應(yīng)用程序的方法。在一些實(shí)施例中,服務(wù)器106從客戶機(jī)102接收證書。在又一個(gè)實(shí)施例中,服務(wù)器106從客戶機(jī)102接收對(duì)于可用應(yīng)用的列舉的請(qǐng)求。在一個(gè)實(shí)施例中,響應(yīng)該請(qǐng)求或者證書的接收,應(yīng)用傳送系統(tǒng)290列舉對(duì)于客戶機(jī)102可用的多個(gè)應(yīng)用程序。應(yīng)用傳送系統(tǒng)290接收?qǐng)?zhí)行所列舉的應(yīng)用的請(qǐng)求。應(yīng)用傳送系統(tǒng)290選擇預(yù)定數(shù)量的方法之一來執(zhí)行所列舉的應(yīng)用,例如響應(yīng)策略引擎的策略。應(yīng)用傳送系統(tǒng)290可以選擇執(zhí)行應(yīng)用的方法,使得客戶機(jī)102接收通過執(zhí)行服務(wù)器106上的應(yīng)用程序所產(chǎn)生的應(yīng)用輸出數(shù)據(jù)。應(yīng)用傳送系統(tǒng)290可以選擇執(zhí)行應(yīng)用的方法,使得本地機(jī)器102在檢索包括應(yīng)用的多個(gè)應(yīng)用文件之后本地執(zhí)行應(yīng)用程序。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290可以選擇執(zhí)行應(yīng)用的方法,以通過網(wǎng)絡(luò)104流式傳輸應(yīng)用到客戶機(jī)102。[0084]客戶機(jī)102可以執(zhí)行、操作或者以其它方式提供應(yīng)用,所述應(yīng)用可為任何類型和/或形式的軟件、程序或者可執(zhí)行指令,例如任何類型和/或形式的web瀏覽器、基于web的客戶機(jī)、客戶機(jī)一服務(wù)器應(yīng)用、瘦客戶端計(jì)算客戶機(jī)、ActiveX控件、或者Java程序、或者可以在客戶機(jī)102上執(zhí)行的任何其它類型和/或形式的可執(zhí)行指令。在一些實(shí)施例中,應(yīng)用可以是代表客戶機(jī)102在服務(wù)器106上執(zhí)行的基于服務(wù)器或者基于遠(yuǎn)程的應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器106可以使用任何瘦-客戶端或遠(yuǎn)程顯示協(xié)議來顯示輸出到客戶機(jī)102,所述瘦_客戶端或遠(yuǎn)程顯示協(xié)議例如由位于佛羅里達(dá)州Ft.Lauderdale的Citrix Systems公司出品的獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議或由位于華盛頓州Redmond的微軟公司出品的遠(yuǎn)程桌面協(xié)議(RDP )。應(yīng)用可使用任何類型的協(xié)議,并且它可為,例如,HTTP客戶機(jī)、FTP客戶機(jī)、Oscar客戶機(jī)或Telnet客戶機(jī)。在其它實(shí)施例中,應(yīng)用包括和VoIP通信相關(guān)的任何類型的軟件,例如軟IP電話。在進(jìn)一步的實(shí)施例中,應(yīng)用包括涉及到實(shí)時(shí)數(shù)據(jù)通信的任一應(yīng)用,例如用于流式傳輸視頻和/或音頻的應(yīng)用。
[0085]在一些實(shí)施例中,服務(wù)器106或服務(wù)器群38可運(yùn)行一個(gè)或多個(gè)應(yīng)用,例如提供瘦客戶端計(jì)算或遠(yuǎn)程顯示表示應(yīng)用的應(yīng)用。在一個(gè)實(shí)施例中,服務(wù)器106或服務(wù)器群38作為一個(gè)應(yīng)用來執(zhí)行Citrix Systems Inc.的Citrix Access Suite?的任一部分(例如 MetaFrame 或 Citrix Presentation Server?),和 / 或微軟公司開發(fā)的Microsoft?
Windows終端服務(wù)中的任何一個(gè)。在一個(gè)實(shí)施例中,該應(yīng)用是位于佛羅里達(dá)州FortLauderdale的Citrix Systems Inc.開發(fā)的ICA客戶機(jī)。在其它實(shí)施例中,該應(yīng)用包括由位于華盛頓州Redmond的Microsoft公司開發(fā)的遠(yuǎn)程桌面(RDP)客戶機(jī)。另外,服務(wù)器106可以運(yùn)行一個(gè)應(yīng)用,例如,其可以是提供電子郵件服務(wù)的應(yīng)用服務(wù)器,例如由位于華盛頓州Redmond 的 Microsoft 公司制造的 Microsoft Exchange, web 或 Internet 服務(wù)器,或者桌面共享服務(wù)器,或者協(xié)作服務(wù)器。在一些實(shí)施例中,任一應(yīng)用可以包括任一類型的所寄載的月艮務(wù)或產(chǎn)品,例如位于加利福尼亞州Santa Barbara的Citrix Online Division提供的GoToMeeting?,位于加利福尼亞州Santa Clara的WebEx Inc.提供的WebEx?,或者位于華盛頓州 Redmond 的 Microsoft 公司提供的 Microsoft Office Live Meeting。
[0086]示例設(shè)備架構(gòu)
[0087]圖2A也示出設(shè)備200的示例實(shí)施例。僅通過示例來提供圖2A的設(shè)備200的架構(gòu)并且不意于以任一方式受限。設(shè)備200可包括任何類型和形式的計(jì)算裝置100,例如上文結(jié)合圖1D和IE所討論的任何元件或部分。概括來講,設(shè)備200具有用于經(jīng)由網(wǎng)絡(luò)104接收和/或傳輸通信的一個(gè)或多個(gè)網(wǎng)絡(luò)堆棧267A-267N和一個(gè)或多個(gè)網(wǎng)絡(luò)端口 266A-266N。設(shè)備200還具有用于優(yōu)化、加速或以其他方式改善經(jīng)過設(shè)備200的任何網(wǎng)絡(luò)流量或通信的質(zhì)量、操作或性能。
[0088]設(shè)備200包括操作系統(tǒng)或在操作系統(tǒng)的控制之下。設(shè)備200的操作系統(tǒng)可以是任何類型和/或形式的Unix操作系統(tǒng),盡管本發(fā)明并未這樣限制。這樣,設(shè)備200可以運(yùn)行任何操作系統(tǒng),如任何版本的Microsoft? Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計(jì)算機(jī)的任何版本的Mac OS?、任何的嵌入式操作系統(tǒng)、任何的網(wǎng)絡(luò)操作系統(tǒng)、任何的實(shí)時(shí)操作系統(tǒng)、任何的開放源操作系統(tǒng)、任何的專用操作系統(tǒng)、用于移動(dòng)計(jì)算裝置或網(wǎng)絡(luò)裝置的任何操作系統(tǒng)、或者能夠運(yùn)行在設(shè)備200上并執(zhí)行此處所描述的操作的任何其它操作系統(tǒng)。
[0089]設(shè)備200的操作系統(tǒng)分配、管理或以其他方式將可用的系統(tǒng)存儲(chǔ)器分離到被稱為內(nèi)核或系統(tǒng)空間和用戶或應(yīng)用空間中。通常保留內(nèi)核空間用于運(yùn)行內(nèi)核,所述內(nèi)核包括任何設(shè)備驅(qū)動(dòng)器,內(nèi)核擴(kuò)展或其他內(nèi)核相關(guān)軟件。就像本領(lǐng)域技術(shù)人員所知的,內(nèi)核是操作系統(tǒng)的核心,并提供對(duì)設(shè)備200的資源和硬件相關(guān)的元件的訪問、控制和管理。根據(jù)設(shè)備200的實(shí)施例,內(nèi)核空間也包括與網(wǎng)絡(luò)優(yōu)化引擎250或其任何部分協(xié)同工作的多個(gè)網(wǎng)絡(luò)服務(wù)或進(jìn)程。另外,內(nèi)核的實(shí)施例將依賴于通過設(shè)備200安裝、配置或以其他方式使用的操作系統(tǒng)的實(shí)施例。與內(nèi)核空間不同,用戶空間是由用戶模式應(yīng)用或以其他方式運(yùn)行于用戶模式的程序所使用的操作系統(tǒng)的存儲(chǔ)區(qū)域或部分。用戶模式應(yīng)用不能直接訪問內(nèi)核空間而使用服務(wù)調(diào)用以訪問內(nèi)核服務(wù)。操作系統(tǒng)使用用戶或應(yīng)用空間來執(zhí)行或運(yùn)行應(yīng)用以及供應(yīng)用戶級(jí)程序、服務(wù)、進(jìn)程和/或任務(wù)。
[0090]設(shè)備200具有一個(gè)或多個(gè)網(wǎng)絡(luò)端口 266,用于通過網(wǎng)絡(luò)104傳輸和接收數(shù)據(jù)。網(wǎng)絡(luò)端口 266提供在計(jì)算裝置和網(wǎng)絡(luò)104或另一個(gè)裝置100之間的物理和/或邏輯接口,用于傳輸和接收網(wǎng)絡(luò)通信。網(wǎng)絡(luò)端口 266的類型和形式取決于網(wǎng)絡(luò)的類型和形式以及用于連接到網(wǎng)絡(luò)的介質(zhì)的類型。而且,網(wǎng)絡(luò)端口 266和網(wǎng)絡(luò)堆棧267的、為其供應(yīng)的或者其使用的任何軟件可運(yùn)行在內(nèi)核空間或用戶空間。
[0091]在一個(gè)實(shí)施例中,設(shè)備200具有一個(gè)網(wǎng)絡(luò)堆棧267,例如基于TCP/IP的堆棧,用于在網(wǎng)絡(luò)105上與客戶機(jī)102和/或服務(wù)器106通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267用于與諸如網(wǎng)絡(luò)104第一網(wǎng)絡(luò)以及第二網(wǎng)絡(luò)104’通信。在又一個(gè)實(shí)施例中,設(shè)備200可具有兩個(gè)或多個(gè)網(wǎng)絡(luò)堆棧,例如第一網(wǎng)絡(luò)堆棧267A和第二網(wǎng)絡(luò)堆棧267N。第一網(wǎng)絡(luò)堆棧267A可與第一網(wǎng)絡(luò)端口 266A聯(lián)合使用以在第一網(wǎng)絡(luò)104上通信。第二網(wǎng)絡(luò)堆??膳c第二網(wǎng)絡(luò)端口 266N聯(lián)合使用以在第二網(wǎng)絡(luò)104’上通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267包括用于為由設(shè)備200產(chǎn)生的一個(gè)或多個(gè)網(wǎng)絡(luò)分組進(jìn)行排隊(duì)的一個(gè)或多個(gè)緩沖器。
[0092]網(wǎng)絡(luò)堆棧267可包括任何類型和形式的軟件、或硬件或其組合,用于提供與網(wǎng)絡(luò)的連接和通信。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267包括用于網(wǎng)絡(luò)協(xié)議組的軟件實(shí)現(xiàn)。網(wǎng)絡(luò)堆棧267可包括一個(gè)或多個(gè)網(wǎng)絡(luò)層,例如為本領(lǐng)域技術(shù)人員所公認(rèn)和了解的開放式系統(tǒng)互聯(lián)
(OSI)通信模型的任何網(wǎng)絡(luò)層。這樣,網(wǎng)絡(luò)堆棧267可包括用于下列OSI模型的任何一層的任何類型和形式的協(xié)議:1)物理鏈路層;2)數(shù)據(jù)鏈路層;3)網(wǎng)絡(luò)層;4)傳輸層;5)會(huì)話層);6)表示層,以及7)應(yīng)用層。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267可包括在互聯(lián)網(wǎng)協(xié)議(IP)的網(wǎng)絡(luò)層協(xié)議上的傳輸控制協(xié)議(TCP),通常稱為TCP/IP。在一些實(shí)施例中,可在以太網(wǎng)協(xié)議上承載TCP/IP協(xié)議,所述以太網(wǎng)協(xié)議可包括IEEE廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)協(xié)議的任何族,例如被IEEE802.3覆蓋的這些協(xié)議。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧267包括任何類型和形式的無線協(xié)議,例如IEEE802.11和/或移動(dòng)互聯(lián)網(wǎng)協(xié)議。
[0093]考慮到基于TCP/IP的網(wǎng)絡(luò),可使用任何基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI) (email)、文件傳輸協(xié)議(FTP)、超文本傳輸協(xié)議(HTTP)、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS)協(xié)議(文件傳輸)、獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議,以及IP語音(VoIP)協(xié)議。在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)堆棧267包括任何類型和形式的傳輸控制協(xié)議,諸如修改的傳輸控制協(xié)議,例如事務(wù)TCP(T/TCP),帶有選擇確認(rèn)的TCP (TCP-SACK),帶有大窗口的TCP (TCP-LW),例如TCP-Vegas協(xié)議的擁塞預(yù)測(cè)協(xié)議,以及TCP欺騙協(xié)議。在其他實(shí)施例中,網(wǎng)絡(luò)堆棧267可使用諸如IP上UDP的任何類型和形式的用戶數(shù)據(jù)報(bào)協(xié)議(UDP),例如用于語音通信或?qū)崟r(shí)數(shù)據(jù)通信。
[0094]另外,網(wǎng)絡(luò)堆棧267可包括支持一個(gè)或多個(gè)層的一個(gè)或多個(gè)網(wǎng)絡(luò)驅(qū)動(dòng)器,例如TCP驅(qū)動(dòng)器或網(wǎng)絡(luò)層驅(qū)動(dòng)器。網(wǎng)絡(luò)層驅(qū)動(dòng)器可作為計(jì)算裝置100的操作系統(tǒng)的一部分或者作為計(jì)算裝置100的任何網(wǎng)絡(luò)接口卡或其它網(wǎng)絡(luò)訪問組件的一部分被包括。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧267的任何網(wǎng)絡(luò)驅(qū)動(dòng)器可被定制、修改或調(diào)整以提供支持此處描述的任何技術(shù)網(wǎng)絡(luò)堆棧267的定制或修改部分。
[0095]在一個(gè)實(shí)施例中,設(shè)備200使用單個(gè)網(wǎng)絡(luò)堆棧267來提供或維持在客戶機(jī)102和服務(wù)器106之間的傳輸層連接。在一些實(shí)施例中,設(shè)備200通過改變、管理或控制在客戶機(jī)和服務(wù)器之間的傳輸控制協(xié)議連接的行為來有效地終止傳輸層連接。在這些實(shí)施例中,設(shè)備200可使用單個(gè)網(wǎng)絡(luò)堆棧267。在其他實(shí)施例中,設(shè)備200終止第一傳輸層連接,例如客戶機(jī)102的TCP連接,并建立客戶機(jī)102使用的或代表客戶機(jī)102的到服務(wù)器106的第二傳輸層連接,例如,終止在設(shè)備200和服務(wù)器106的第二傳輸層連接??赏ㄟ^單個(gè)網(wǎng)絡(luò)堆棧267建立第一和第二傳輸層連接。在其他實(shí)施例中,設(shè)備200可使用多個(gè)網(wǎng)絡(luò)堆棧,例如267A和267N。在這些實(shí)施例中,在第一網(wǎng)絡(luò)堆棧267A可建立或終止第一傳輸層連接,且在第二網(wǎng)絡(luò)堆棧267N可建立或者終止第二傳輸層連接。例如,一個(gè)網(wǎng)絡(luò)堆??捎糜谠诘谝痪W(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組,并且另一個(gè)網(wǎng)絡(luò)堆??捎糜谠诘诙W(wǎng)絡(luò)上接收和傳輸網(wǎng)絡(luò)分組。
[0096]如圖2A所示,網(wǎng)絡(luò)優(yōu)化引擎250包括一個(gè)或多個(gè)下列元件、組件或模塊:網(wǎng)絡(luò)分組處理引擎250、LAN/WAN檢測(cè)器210、流控制器220、Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存管理器232和策略引擎295’。網(wǎng)絡(luò)優(yōu)化引擎250或其任何部分可包括軟件、硬件或軟件和硬件的任何組合。而且網(wǎng)絡(luò)引擎250的、為其供應(yīng)的或由其使用的任何軟件可運(yùn)行在內(nèi)核空間或用戶空間。例如,在一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250可運(yùn)行在內(nèi)核空間。在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250可運(yùn)行在用戶空間。在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250的第一部分可運(yùn)行在內(nèi)核空間而網(wǎng)絡(luò)優(yōu)化引擎250的第二部分可運(yùn)行在用戶空間。
[0097]網(wǎng)絡(luò)分鉬處理引擎
[0098]網(wǎng)絡(luò)分組引擎240,通常也稱為分組處理引擎,或分組引擎,負(fù)責(zé)控制和管理對(duì)由設(shè)備200通過網(wǎng)絡(luò)端口 266和網(wǎng)絡(luò)堆棧267接收和傳輸?shù)姆纸M的處理。網(wǎng)絡(luò)分組引擎240可操作在網(wǎng)絡(luò)堆棧267的任一層。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)分組引擎240操作在網(wǎng)絡(luò)堆棧267的層2和層3.在一些實(shí)施例中,分組引擎240在網(wǎng)絡(luò)層(例如,TCP/IP實(shí)施例中的IP層)攔截或以其他方式接收分組。在又一個(gè)實(shí)施例中,分組引擎240操作在網(wǎng)絡(luò)堆棧267的層
4。例如,在一些實(shí)施例中,分組引擎240在傳輸層攔截或以其他方式接收分組,例如在TCP/IP實(shí)施例中的TCP層攔截分組。在其他實(shí)施例中,分組引擎240操作在層4之上的任何會(huì)話或應(yīng)用層。例如,在一個(gè)實(shí)施例中,分組引擎240在傳輸層協(xié)議層之上攔截或以其他方式接收的網(wǎng)絡(luò)分組,例如在TCP實(shí)施例中的TCP分組的有效載荷。
[0099]分組引擎240可包括用于在例如接收網(wǎng)絡(luò)分組或者傳輸網(wǎng)絡(luò)分組的處理期間排隊(duì)一個(gè)或多個(gè)網(wǎng)絡(luò)分組的緩沖器。另外,分組引擎240與一個(gè)或多個(gè)網(wǎng)絡(luò)堆棧267通信以通過網(wǎng)絡(luò)端口 266發(fā)送和接收網(wǎng)絡(luò)分組。分組引擎240包括分組處理定時(shí)器。在一個(gè)實(shí)施例中,分組處理定時(shí)器提供一個(gè)或多個(gè)時(shí)間間隔以觸發(fā)輸入的(即,接收的)或輸出的(即,傳輸?shù)?網(wǎng)絡(luò)分組的處理。在一些實(shí)施例中,分組引擎240響應(yīng)于定時(shí)器來處理網(wǎng)絡(luò)分組。分組處理定時(shí)器向分組引擎240提供任何類型和形式的信號(hào)以通知、觸發(fā)或傳輸時(shí)間相關(guān)的事件、間隔或發(fā)生。在許多實(shí)施例中,分組處理定時(shí)器以毫秒級(jí)操作,例如100ms、50ms、25ms、10ms、5ms 或 Ims0
[0100]在操作期間,分組引擎240可與諸如LAN/WAN檢測(cè)器210、流控制器220、Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存管理器232和/或策略引擎295’的網(wǎng)絡(luò)優(yōu)化引擎250的任一部分接口、集成或通信。因此,可響應(yīng)于分組處理定時(shí)器和/或分組引擎240來執(zhí)行LAN/WAN檢測(cè)器210、流控制器220、Qos引擎236、協(xié)議加速器234、壓縮引擎238、高速緩存管理器232和策略引擎295’的任何邏輯、功能或操作。在一些實(shí)施例中,在由分組處理定時(shí)器提供的時(shí)間間隔粒度(例如,少于或等于IOms的時(shí)間間隔),可執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236以及多協(xié)議壓縮引擎238的任何邏輯、功能或操作。例如,在一個(gè)實(shí)施例中,高速緩存管理器232可響應(yīng)于集成分組引擎240和/或分組處理定時(shí)器242來執(zhí)行任何高速緩存的對(duì)象的終止。在又一個(gè)實(shí)施例中,高速緩存的對(duì)象的終止或無效時(shí)間被設(shè)定為與分組處理定時(shí)器的時(shí)間間隔相同的粒度級(jí),例如每10ms。
[0101]高速緩存管理器
[0102]高速緩存管理器232可包括軟件、硬件或軟件和硬件的任何組合,以將數(shù)據(jù)、信息和對(duì)象存儲(chǔ)到在存儲(chǔ)器或存儲(chǔ)中的高速緩存、提供高速緩存訪問以及控制和管理高速緩存。由高速緩存管理器232處理和存儲(chǔ)的數(shù)據(jù)、對(duì)象或內(nèi)容可包括任何格式(例如標(biāo)記語言)的數(shù)據(jù),或者通過任何協(xié)議的通信的任何類型的數(shù)據(jù)。在一些實(shí)施例中,高速緩存管理器232復(fù)制存儲(chǔ)在其他地方的原始數(shù)據(jù)或先前計(jì)算、生成或傳輸?shù)臄?shù)據(jù),其中相對(duì)于讀高速緩存存儲(chǔ)器或存儲(chǔ)元件,需要更長(zhǎng)的訪問時(shí)間以取得、計(jì)算或以其他方式得到原始數(shù)據(jù)。一旦數(shù)據(jù)被存儲(chǔ)在高速緩存中,通過訪問高速緩存的副本而不是重新獲得或重新計(jì)算原始數(shù)據(jù)即可進(jìn)行后續(xù)操作,因此而減少了訪問時(shí)間。在一些實(shí)施例中,高速緩存可以包括設(shè)備200的存儲(chǔ)器中的數(shù)據(jù)對(duì)象。在又一個(gè)實(shí)施例中,高速緩存可以包括設(shè)備200的任一類型和形式的存儲(chǔ)元件,諸如硬盤的一部分。在一些實(shí)施例中,裝置的處理單元可提供由高速緩存管理器232使用的高速緩存存儲(chǔ)器。在又一個(gè)實(shí)施例中,高速緩存管理器232可使用存儲(chǔ)器、存儲(chǔ)區(qū)或處理單元的任何部分和組合來高速緩存數(shù)據(jù)、對(duì)象或其它內(nèi)容。
[0103]另外,高速緩存管理器232包括用于執(zhí)行設(shè)備200的任何高速緩存技術(shù)的任何邏輯、功能、規(guī)則或操作。在一些實(shí)施例中,高速緩存管理器232可作為應(yīng)用、庫、程序、服務(wù)、進(jìn)程、線程或任務(wù)而操作。在一些實(shí)施例中,高速緩存管理器232可包括任何類型的通用處理器(GPP),或者任何其他類型的集成電路,例如現(xiàn)場(chǎng)可編程門陣列(FPGA),可編程邏輯設(shè)備(PLD),或者專用集成電路(ASIC)。
[0104]策略引擎
[0105]策略引擎295’包括用于提供和應(yīng)用一個(gè)或多個(gè)策略或規(guī)則到設(shè)備200的任一部分的功能、操作或配置的任何邏輯、功能或操作。策略引擎295’可包括例如智能統(tǒng)計(jì)引擎或其它可編程應(yīng)用。在一個(gè)實(shí)施例中,策略引擎295’提供配置機(jī)制以允許用戶識(shí)別、指定、定義或配置用于網(wǎng)絡(luò)優(yōu)化引擎250或其任何部分的策略。例如,策略引擎295’可提供用于緩存哪些數(shù)據(jù)、何時(shí)緩存該數(shù)據(jù)、為誰緩存該數(shù)據(jù)、何時(shí)終止高速緩存中的對(duì)象或刷新高速緩存的策略。在其他實(shí)施例中,除了對(duì)安全、網(wǎng)絡(luò)流量、網(wǎng)絡(luò)訪問、壓縮或由設(shè)備200執(zhí)行的任何其它功能或操作的訪問、控制和管理之外,策略引擎236可包括任何邏輯、規(guī)則、功能或操作以確定和提供對(duì)設(shè)備200所高速緩存的對(duì)象、數(shù)據(jù)、或內(nèi)容的訪問、控制和管理。
[0106]在一些實(shí)施例中,策略引擎295’可基于下列的任何一個(gè)或多個(gè)來提供和應(yīng)用一個(gè)或多個(gè)策略:用戶、客戶機(jī)的標(biāo)識(shí)、服務(wù)器的標(biāo)識(shí)、連接的類型、連接的時(shí)間、網(wǎng)絡(luò)的類型或網(wǎng)絡(luò)流量的內(nèi)容。在一個(gè)實(shí)施例中,策略引擎295’基于網(wǎng)絡(luò)分組的任何協(xié)議層的字段或首部來提供和應(yīng)用策略。在又一個(gè)實(shí)施例中,策略引擎295’基于網(wǎng)絡(luò)分組的任一有效載荷來提供和應(yīng)用策略。例如,在一個(gè)實(shí)施例中,策略弓I擎295 ’基于對(duì)被承載為傳輸層分組的有效載荷的應(yīng)用層協(xié)議內(nèi)容的特定部分的識(shí)別來應(yīng)用策略。在又一個(gè)實(shí)施例中,策略引擎295’基于由客戶機(jī)、服務(wù)器或用戶證書識(shí)別的任何信息來應(yīng)用策略。在又一個(gè)實(shí)施例中,策略引擎295’基于例如通過任何類型和形式的端點(diǎn)檢測(cè)(參見下面所描述的客戶機(jī)代理的收集代理示例)所獲得的關(guān)于客戶機(jī)102的任何屬性或特征來應(yīng)用策略。
[0107]在一個(gè)實(shí)施例中,策略引擎295’和應(yīng)用傳送系統(tǒng)290的策略引擎295聯(lián)合或協(xié)同工作。在一些實(shí)施例中,策略引擎295’是應(yīng)用傳送系統(tǒng)290的策略引擎295的一個(gè)分布式的部分。在又一個(gè)實(shí)施例中,應(yīng)用傳送系統(tǒng)290的策略引擎295被部署于或執(zhí)行在設(shè)備200上。在一些實(shí)施例中,策略引擎295、295’都操作在設(shè)備200上。在又一個(gè)實(shí)施例中,設(shè)備200的策略引擎295’或其一部分操作在服務(wù)器106上。
[0108]多協(xié)議和多層壓縮引擎
[0109]壓縮引擎238包括用于壓縮一個(gè)或多個(gè)協(xié)議的網(wǎng)絡(luò)分組(例如由設(shè)備200的網(wǎng)絡(luò)堆棧267使用的任何協(xié)議)的任何邏輯、商業(yè)規(guī)則、功能或操作。壓縮引擎238也可被稱為多協(xié)議壓縮引擎238,這是由于其可以被設(shè)計(jì)、構(gòu)建為或能夠壓縮多個(gè)協(xié)議。在一個(gè)實(shí)施例中,壓縮引擎238使用對(duì)上下文不敏感的壓縮,其可在不了解數(shù)據(jù)類型的情況下對(duì)數(shù)據(jù)進(jìn)行壓縮。在又一個(gè)實(shí)施例中,壓縮引擎238使用對(duì)上下文敏感的壓縮。在該實(shí)施例中,壓縮引擎238利用數(shù)據(jù)類型的知識(shí)來從一系列合適的算法中選擇特定的壓縮算法。在一些實(shí)施例中,使用特定協(xié)議的知識(shí)來執(zhí)行上下文敏感的壓縮。在一個(gè)實(shí)施例中,設(shè)備200或壓縮引擎238可使用端口號(hào)(例如,公知端口),以及來自連接本身的數(shù)據(jù)來確定要使用的合適的壓縮算法。一些協(xié)議僅使用一種類型的數(shù)據(jù),僅要求當(dāng)連接建立時(shí)可被選擇的單個(gè)壓縮算法。其他協(xié)議在不同的時(shí)間包含不同類型的數(shù)據(jù)。例如,POP、MSP、SMTP和HTTP都移動(dòng)夾雜其他協(xié)議數(shù)據(jù)的任意類型的文件。
[0110]在一個(gè)實(shí)施例中,壓縮引擎238使用增量型壓縮算法。在又一個(gè)實(shí)施例中,壓縮引擎238使用首地點(diǎn)壓縮以及搜索在高速緩存、存儲(chǔ)器或盤中存儲(chǔ)的數(shù)據(jù)間的重復(fù)模式。在一些實(shí)施例中,壓縮引擎238使用無損壓縮算法。在其他實(shí)施例中,壓縮引擎238使用有損壓縮算法。在一些情況下,數(shù)據(jù)類型的知識(shí)和有時(shí)來自用戶的許可被要求使用有損壓縮算法。壓縮不限于協(xié)議的有效載荷。協(xié)議本身的控制字段也可以被壓縮。在一些實(shí)施例中,壓縮引擎238使用與用于有效載荷的算法不同的算法。
[0111]在一些實(shí)施例中,壓縮引擎238在網(wǎng)絡(luò)堆棧267的一個(gè)或多個(gè)層進(jìn)行壓縮。在一個(gè)實(shí)施例中,壓縮引擎238在傳輸層協(xié)議處進(jìn)行壓縮。在又一個(gè)實(shí)施例中,壓縮引擎238在應(yīng)用層協(xié)議處進(jìn)行壓縮。在一些實(shí)施例中,壓縮引擎238在層2-4協(xié)議處進(jìn)行壓縮。在其他實(shí)施例中,壓縮引擎238在層5-7協(xié)議處進(jìn)行壓縮。在又一個(gè)實(shí)施例中,壓縮引擎238壓縮傳輸層協(xié)議和應(yīng)用層協(xié)議。在一些實(shí)施例中,壓縮引擎238壓縮層2-4協(xié)議和層5-7協(xié)議。
[0112]在一些實(shí)施例中,壓縮引擎238使用基于存儲(chǔ)器的壓縮、基于高速緩存的壓縮或基于盤的壓縮或上述的任一組合。這樣,壓縮引擎238也可以被稱為多層壓縮引擎。在一個(gè)實(shí)施例中,壓縮引擎238使用在存儲(chǔ)器(例如RAM)中存儲(chǔ)的數(shù)據(jù)歷史。在又一個(gè)實(shí)施例中,壓縮引擎238使用在高速緩存(例如處理器的L2高速緩存)中存儲(chǔ)的數(shù)據(jù)歷史。在其他實(shí)施例中,壓縮引擎238使用存儲(chǔ)到盤或存儲(chǔ)單元的數(shù)據(jù)歷史。在一些實(shí)施例中,壓縮引擎238使用基于高速緩存的、基于存儲(chǔ)器的和基于盤的數(shù)據(jù)歷史的分層結(jié)構(gòu)。壓縮引擎238可首先使用基于高速緩存的數(shù)據(jù)來確定用于壓縮的一個(gè)或多個(gè)數(shù)據(jù)匹配,然后可檢查基于存儲(chǔ)器的數(shù)據(jù)以確定用于壓縮的一個(gè)或多個(gè)數(shù)據(jù)匹配。在另一種情況下,壓縮引擎238可在檢查基于高速緩存的和/或基于存儲(chǔ)器的數(shù)據(jù)歷史之后檢查盤存儲(chǔ)來找出用于壓縮的數(shù)據(jù)匹配。
[0113]在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238雙向壓縮在客戶機(jī)102a_102n和服務(wù)器106a-106n間任一基于TCP/IP的協(xié)議,包括消息應(yīng)用編程接口(MAPI)(電子郵件)、文件傳輸協(xié)議(FTP )、超文本傳輸協(xié)議(HTTP )、通用互聯(lián)網(wǎng)文件系統(tǒng)(CIFS )協(xié)議(文件傳輸)、獨(dú)立計(jì)算架構(gòu)(ICA)協(xié)議、遠(yuǎn)程桌面協(xié)議(RDP)、無線應(yīng)用協(xié)議(WAP)、移動(dòng)IP協(xié)議以及IP上語音(VoIP)協(xié)議。在其它實(shí)施例中,多協(xié)議壓縮引擎238提供基于超文本標(biāo)記語言(HTML)的協(xié)議的壓縮,并且在一些實(shí)施例中,提供任何標(biāo)記語言的壓縮,例如可擴(kuò)展標(biāo)記語言(XML)。在一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238提供任何高性能協(xié)議的壓縮,例如設(shè)計(jì)用于設(shè)備200到設(shè)備200通信的任何協(xié)議。在又一個(gè)實(shí)施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮任何通信的任何載荷或任何通信,例如事務(wù)TCP (T/TCP)、帶有選擇確認(rèn)的TCP(TCP-SACK)、帶有大窗口的TCP(TCP-LW)、諸如TCP-Vegas協(xié)議的擁塞預(yù)報(bào)協(xié)議以及TCP欺騙協(xié)議(TCP spoofing protocol)。
[0114]同樣的,多協(xié)議壓縮引擎238為用戶加速經(jīng)由桌面客戶機(jī)以及甚至移動(dòng)客戶機(jī)訪問應(yīng)用的性能。所述桌面客戶機(jī)例如Micosoft Outlook和非web瘦客戶機(jī),例如由像Oracle、SAP和Siebel的通用企業(yè)應(yīng)用所啟動(dòng)的任何客戶機(jī),所述移動(dòng)客戶機(jī)例如掌上電腦。在一些實(shí)施例中,通過與訪問網(wǎng)絡(luò)堆棧267的分組處理引擎240集成,多協(xié)議壓縮引擎能夠壓縮由傳輸層協(xié)議攜帶的任何協(xié)議,例如任何應(yīng)用層協(xié)議。
[0115]LAN/ffAN 檢測(cè)器
[0116]LAN/WAN檢測(cè)器238包括用于自動(dòng)檢測(cè)慢速側(cè)連接(例如,諸如內(nèi)部網(wǎng)的廣域網(wǎng)(WAN)連接)和關(guān)聯(lián)端口 267,以及快速側(cè)連接(例如,局域網(wǎng)(LAN)連接)和關(guān)聯(lián)端口 267的任何邏輯、商業(yè)規(guī)則、功能或操作。在一些實(shí)施例中,LAN/WAN檢測(cè)器238監(jiān)控設(shè)備200的網(wǎng)絡(luò)端口 267上的網(wǎng)絡(luò)流量以便檢測(cè)同步分組(有時(shí)被稱為“加標(biāo)記的”網(wǎng)絡(luò)分組)。同步分組識(shí)別網(wǎng)絡(luò)流量的類型或速度。在一個(gè)實(shí)施例中,同步分組識(shí)別WAN的速度或WAN類型的連接。LAN/WAN檢測(cè)器238也識(shí)別對(duì)加標(biāo)記的同步分組的確認(rèn)分組的接收以及其在哪個(gè)端口上被接收。接著,設(shè)備200將自身配置為操作所識(shí)別的、加標(biāo)記的同步分組到達(dá)的端口以使得該端口上的速度被設(shè)置為與連接到該端口的網(wǎng)絡(luò)相關(guān)聯(lián)的速度。那么,另一個(gè)端口被設(shè)置為與連接到該端口的網(wǎng)絡(luò)相關(guān)聯(lián)的速度。
[0117]為了本文討論的方便,“快速”側(cè)可參考關(guān)于與廣域網(wǎng)(WAN)(例如,互聯(lián)網(wǎng))的連接,并且以該WAN的網(wǎng)絡(luò)速度操作。類似地,“慢速”側(cè)可參考關(guān)于與局域網(wǎng)(LAN)的連接并且以LAN的網(wǎng)絡(luò)速度操作。然而,應(yīng)指出網(wǎng)絡(luò)的“快速”和“慢速”側(cè)可以在每連接的基礎(chǔ)上改變并且是對(duì)于網(wǎng)絡(luò)連接的速度或者網(wǎng)絡(luò)拓?fù)漕愋偷南嚓P(guān)術(shù)語。這樣的配置可以用在復(fù)雜的網(wǎng)絡(luò)拓?fù)渲校渲芯W(wǎng)絡(luò)僅在與相鄰網(wǎng)絡(luò)比較時(shí)是“快速”或“慢速”,而不是絕對(duì)的“快速”或“慢速”。
[0118]在一個(gè)實(shí)施例中,LAN/WAN檢測(cè)器238可用于使設(shè)備200自動(dòng)發(fā)現(xiàn)其所連接的網(wǎng)絡(luò)。在又一個(gè)實(shí)施例中,LAN/WAN檢測(cè)器238可用于檢測(cè)在網(wǎng)絡(luò)104中部署的第二設(shè)備200 ’的存在或在場(chǎng)。例如,根據(jù)圖1A的操作中的自動(dòng)發(fā)現(xiàn)機(jī)制起到以下作用:將設(shè)備200和200’置于與鏈接客戶機(jī)102和服務(wù)器106的連接在一條線上。設(shè)備200和200’處于連接兩個(gè)LAN的低速鏈路(例如,互聯(lián)網(wǎng))的端點(diǎn)處。在一個(gè)示例實(shí)施例中,設(shè)備200和200’各自包括兩個(gè)端口,一個(gè)端口與“較低”速度的鏈路連接而另一個(gè)端口與“較高”速度的鏈路(例如,LAN)連接。到達(dá)一個(gè)端口的任一分組被復(fù)制到另一個(gè)端口。因此,設(shè)備200和200’各自被配置為充當(dāng)兩個(gè)網(wǎng)絡(luò)104之間的橋。[0119]當(dāng)諸如客戶機(jī)102的端節(jié)點(diǎn)打開與諸如服務(wù)器106的另一個(gè)端節(jié)點(diǎn)的新的TCP連接時(shí),客戶機(jī)102向服務(wù)器106發(fā)送具有同步(SYN)首部位組的TCP分組或SYN分組。在本例中,客戶機(jī)102打開到服務(wù)器106的傳輸層連接。當(dāng)SYN分組穿過設(shè)備200時(shí),設(shè)備200給該分組插入、附加或以其他方式提供特有的TCP首部選項(xiàng),以宣告其存在。如果該分組穿過第二設(shè)備(在該示例中設(shè)備200’),第二設(shè)備記錄該SYN分組中的首部選項(xiàng)。服務(wù)器106用同步確認(rèn)(SYN-ACK)分組來響應(yīng)該SYN分組。當(dāng)SYN-ACK分組穿過設(shè)備200’時(shí),TCP首部選項(xiàng)被標(biāo)記(例如,附加、插入或添加)到該SYN-ACK分組以便向設(shè)備200宣告設(shè)備200’的存在。當(dāng)設(shè)備200收到該分組時(shí),設(shè)備200,200’此時(shí)互相察覺并且該連接可以被適當(dāng)?shù)丶铀佟?br>
[0120]關(guān)于LAN/WAN檢測(cè)器238的操作,描述了使用SYN分組來檢測(cè)網(wǎng)絡(luò)的“快速”側(cè)和“慢速”側(cè)的方法或過程。在客戶機(jī)102和服務(wù)器106之間建立傳輸層連接的期間,設(shè)備200通過LAN/WAN檢測(cè)器238確定SYN分組是否被加了確認(rèn)(ACK)標(biāo)記。如果其被加了標(biāo)記,設(shè)備200將接收加標(biāo)記的SYN分組(SYN-ACK)的端口標(biāo)識(shí)或配置為“慢速”側(cè)。在一個(gè)實(shí)施例中,設(shè)備200可選擇在將該分組復(fù)制到另一個(gè)端口之前ACK標(biāo)記從該分組刪除。如果LAN/WAN檢測(cè)器238確定該分組未加標(biāo)記,那么設(shè)備200將接收未加標(biāo)記的分組的端口標(biāo)識(shí)或配置為“快速”側(cè)。設(shè)備200接著給該SYN分組加上ACK標(biāo)記并將該分組復(fù)制到另一個(gè)端口。
[0121]在又一個(gè)實(shí)施例中,LAN/WAN檢測(cè)器238使用SYN-ACK分組來檢測(cè)網(wǎng)絡(luò)的快速側(cè)和慢速側(cè)。設(shè)備200通過LAN/WAN檢測(cè)器238確定SYN-ACK分組是否被加了確認(rèn)(ACK)標(biāo)記。如果其被加了標(biāo)記,設(shè)備200將接收加標(biāo)記的SYN分組(SYN-ACK)的端口標(biāo)識(shí)或配置為“慢速”側(cè)。在一個(gè)實(shí)施例中,設(shè)備200可選擇在將該分組復(fù)制到另一個(gè)端口之前從該分組刪除ACK標(biāo)記。如果LAN/WAN檢測(cè)器238確定該分組未加標(biāo)記,那么設(shè)備200將接收未加標(biāo)記的分組的端口標(biāo)識(shí)或配置為“快速”側(cè)。LAN/WAN檢測(cè)器238確定SYN分組是否被加了標(biāo)記。如果該SYN分組沒有被加標(biāo)記,那么設(shè)備200將該分組復(fù)制到另一個(gè)端口。如果該SYN分組被加了標(biāo)記,那么該設(shè)備在將該分組拷貝到另一個(gè)端口之前給SYN-ACK分組加標(biāo)記。
[0122]設(shè)備200、200’可以添加、插入、修改、附加或以其他方式提供TCP選項(xiàng)首部中的任何信息或數(shù)據(jù),以提供關(guān)于網(wǎng)絡(luò)連接、網(wǎng)絡(luò)流量或者設(shè)備200的配置或操作的任何信息、數(shù)據(jù)或特征。在這種方式中,設(shè)備200不僅向另一個(gè)設(shè)備200’宣告其存在或者標(biāo)記較高或較低速度的連接,該設(shè)備200還通過TCP選項(xiàng)首部提供關(guān)于該設(shè)備或該連接的其他信息和數(shù)據(jù)。TCP選項(xiàng)首部信息可能是對(duì)設(shè)備有用的或由設(shè)備用于控制、管理、優(yōu)化、加速或改善經(jīng)過設(shè)備200的網(wǎng)絡(luò)流量,或者以其他方式配置其自身或網(wǎng)絡(luò)端口的操作。
[0123]盡管通常LAN/WAN檢測(cè)器238被結(jié)合檢測(cè)網(wǎng)絡(luò)連接的速度或設(shè)備的存在來描述,但LAN/WAN檢測(cè)器238可被用于將設(shè)備200的任何類型的功能、邏輯或操作應(yīng)用到網(wǎng)絡(luò)流量的端口、連接或流。更具體地,每當(dāng)設(shè)備在不同的端口執(zhí)行不同的功能時(shí)都可以自動(dòng)分配端口,其中給任務(wù)分配端口可以在該單元操作期間,和/或每個(gè)端口的網(wǎng)絡(luò)段的性質(zhì)可被設(shè)備200發(fā)現(xiàn)。
[0124]流控制
[0125]流控制器220包括用于優(yōu)化、加速或以其他方式改善網(wǎng)絡(luò)分組的傳輸層通信的性能、操作或服務(wù)質(zhì)量或者在傳輸層的分組的發(fā)送的任何邏輯、商業(yè)規(guī)則、功能或操作。流控制器(有時(shí)也被稱為流控制模塊)調(diào)節(jié)、管理和控制數(shù)據(jù)傳輸速率。在一些實(shí)施例中,流控制器220被部署在或連接在網(wǎng)絡(luò)104中的帶寬瓶頸處。在一個(gè)實(shí)施例中,流控制器220有效地調(diào)節(jié)、管理和控制帶寬的使用或利用。在其他實(shí)施例中,流控制模塊也可以被部署在延遲轉(zhuǎn)換(從低延遲到高延遲)的網(wǎng)絡(luò)上的位置和具有介質(zhì)損失的鏈路(例如無線或衛(wèi)星鏈路)上的位置。
[0126]在一些實(shí)施例中,流控制器220可包括用于控制網(wǎng)絡(luò)傳輸?shù)慕邮账俾实慕邮掌鱾?cè)流控制模塊和用于控制網(wǎng)絡(luò)分組的傳輸速率的發(fā)送器側(cè)流控制模塊。在其他實(shí)施例中,第一流控制器220包括接收器側(cè)流控制模塊并且第二流控制器220’包括發(fā)送器側(cè)流控制模塊。在一些實(shí)施例中,第一流控制器220被部署在第一設(shè)備200上并且第二流控制器220’被部署在第二設(shè)備200’上。同樣,在一些實(shí)施例中,第一設(shè)備200控制接收器側(cè)上的數(shù)據(jù)流而第二設(shè)備200’控制來自發(fā)送器側(cè)的數(shù)據(jù)流。在又一個(gè)實(shí)施例中,單個(gè)設(shè)備200包括用于經(jīng)過設(shè)備200的網(wǎng)絡(luò)通信的接收器側(cè)和發(fā)送器側(cè)的流控制。
[0127]在一個(gè)實(shí)施例中,配置流控制模塊220以使瓶頸處的帶寬被更充分地利用,以及在一些實(shí)施例中,配置流控制模塊220以使瓶頸處的帶寬不被過度利用。在一些實(shí)施例中,流控制模塊220透明地緩沖(或者重新緩沖例如發(fā)送器已經(jīng)緩沖的數(shù)據(jù))經(jīng)過具有相關(guān)聯(lián)的流控制模塊220的節(jié)點(diǎn)間的網(wǎng)絡(luò)會(huì)話。當(dāng)會(huì)話經(jīng)過兩個(gè)或多個(gè)流控制模塊220時(shí),一個(gè)或多個(gè)流控制模塊控制會(huì)話的速率。
[0128]在一個(gè)實(shí)施例中,用有關(guān)瓶頸帶寬的預(yù)定數(shù)據(jù)來配置流控制模塊200。在又一個(gè)實(shí)施例中,流控制模塊220可被配置為檢測(cè)瓶頸帶寬或與其關(guān)聯(lián)的數(shù)據(jù)。與諸如TCP的傳統(tǒng)網(wǎng)絡(luò)協(xié)議不同,接收器側(cè)流控制模塊220控制數(shù)據(jù)傳輸速率。接收器側(cè)流控制模塊220通過將傳輸速率限制轉(zhuǎn)發(fā)到發(fā)送器側(cè)流控制模塊220來控制發(fā)送器側(cè)流控制模塊(例如,220)的數(shù)據(jù)傳輸速率。在一個(gè)實(shí)施例中,接收器側(cè)流控制模塊220在由接收器(例如服務(wù)器106)向發(fā)送器(例如客戶機(jī)102)發(fā)送的確認(rèn)(ACK)分組(或信號(hào))上捎帶這些傳輸速率限制。接收器側(cè)流控制模塊220響應(yīng)于由發(fā)送器側(cè)流控制模塊220’發(fā)送的速率控制請(qǐng)求來執(zhí)行這一工作。可以在由發(fā)送器106發(fā)送的數(shù)據(jù)分組上捎帶來自發(fā)送器側(cè)流控制模塊220’的請(qǐng)求。[0129]在一些實(shí)施例中,流控制器220操縱、調(diào)整、模擬、改變、改進(jìn)或以其他方式修改傳輸層協(xié)議的行為以便提供傳輸層的傳送、數(shù)據(jù)速率和/或帶寬利用的改善的性能或操作。流控制器220可在傳輸層實(shí)現(xiàn)多個(gè)數(shù)據(jù)流控制技術(shù),包括但不限于I)預(yù)確認(rèn),2)窗口虛擬化,3)重新?lián)砣夹g(shù),3)本地重傳技術(shù),4)波前檢測(cè)和消除二義性,5)傳輸控制協(xié)議選擇性確認(rèn),6)事務(wù)邊界檢測(cè)技術(shù)和7)重新分組。
[0130]盡管此處通常將發(fā)送器描述為客戶機(jī)102,將接收器描述為服務(wù)器106,但發(fā)送器可以是諸如網(wǎng)絡(luò)104上任一計(jì)算裝置100或者服務(wù)器106的任一端點(diǎn)。同樣地,接收器可以是客戶機(jī)102或者網(wǎng)絡(luò)104上的任何其他計(jì)算裝置。
[0131]預(yù)確認(rèn)
[0132]概括來講預(yù)確認(rèn)流控制技術(shù),在一些實(shí)施例中,流控制器220處理確認(rèn)并為發(fā)送器重傳確認(rèn),有效地終止發(fā)送器與網(wǎng)絡(luò)連接的下游部分的連接。參考圖1B,描述用來實(shí)現(xiàn)該特征的,設(shè)備200在網(wǎng)絡(luò)架構(gòu)中的一個(gè)可能的部署。在該示例實(shí)施例中,發(fā)送計(jì)算機(jī)或者客戶機(jī)102在網(wǎng)絡(luò)104上例如經(jīng)由交換機(jī)傳輸數(shù)據(jù),其確定該數(shù)據(jù)發(fā)往VPN設(shè)備205。由于所選擇的網(wǎng)絡(luò)拓?fù)洌l(fā)往VPN設(shè)備205的所有數(shù)據(jù)穿過設(shè)備200,使得設(shè)備200可以將任一必要的算法應(yīng)用到該數(shù)據(jù)。
[0133]進(jìn)一步在該示例中,客戶機(jī)102傳輸由設(shè)備200接收的分組。當(dāng)設(shè)備200接收從客戶機(jī)102向接收者傳輸?shù)慕?jīng)過VPN設(shè)備205的分組時(shí),設(shè)備200保留分組的副本并且將該分組向下游轉(zhuǎn)發(fā)到VPN設(shè)備205。設(shè)備200接著生成確認(rèn)分組(ACK)并且將ACK分組發(fā)送回客戶機(jī)102或者發(fā)送端點(diǎn)。該ACK (即預(yù)確認(rèn))使發(fā)送器102相信分組已經(jīng)被成功傳輸、釋放發(fā)送器的資源用于后續(xù)的處理。在要求重傳分組的事件中,設(shè)備200保留該分組的副本,使得發(fā)送器102不必處理數(shù)據(jù)的重傳。提前生成確認(rèn)可以被稱為“提前確認(rèn)(preack)”。
[0134]如果要求重傳分組,設(shè)備200將分組重傳到發(fā)送器。設(shè)備200可以確定當(dāng)發(fā)送器處于傳統(tǒng)系統(tǒng)中時(shí)是否需要重傳,例如,在預(yù)定時(shí)間段之后對(duì)于該分組如果沒有接收到確認(rèn)則確定分組丟失。為此,設(shè)備200監(jiān)控由例如服務(wù)器106 (或者任何其他下游網(wǎng)絡(luò)實(shí)體)的接收端點(diǎn)生成的確認(rèn),以便其可以確定是否已經(jīng)成功傳送分組或者需要重傳分組。如果設(shè)備200確定分組已經(jīng)被成功傳送,則設(shè)備200能夠自由地丟棄所保存的分組數(shù)據(jù)。設(shè)備200還可以禁止轉(zhuǎn)發(fā)對(duì)已經(jīng)由發(fā)送端點(diǎn)接收的分組的確認(rèn)。
[0135]在上述實(shí)施例中,設(shè)備200經(jīng)由流控制器220通過預(yù)確認(rèn)(也稱為“提取確認(rèn)”)的傳送來控制發(fā)送器102,如同設(shè)備200是接收端點(diǎn)本身一樣。由于設(shè)備200不是端點(diǎn)并且實(shí)際上不消耗數(shù)據(jù),所以設(shè)備200包括用于給發(fā)送端點(diǎn)提供溢出控制的機(jī)制。如果沒有溢出機(jī)制,設(shè)備200將耗盡存儲(chǔ)器,因?yàn)樵O(shè)備200存儲(chǔ)已經(jīng)向發(fā)送端點(diǎn)提取確認(rèn)的但還沒有被確認(rèn)為由接收端點(diǎn)接收的分組。因此,在發(fā)送器102傳輸分組到設(shè)備200快于設(shè)備200向下游轉(zhuǎn)發(fā)分組的情況下,設(shè)備200中可用于存儲(chǔ)未被確認(rèn)的分組數(shù)據(jù)的存儲(chǔ)器將迅速填滿。用于溢出控制的機(jī)制允許設(shè)備200控制來自發(fā)送器的分組的傳輸以避免該問題。
[0136]在一個(gè)實(shí)施例中,設(shè)備200或者流控制器220包括固有的“自同步(self-clocking)”溢出控制機(jī)制。該自同步歸因于這樣的順序,其中設(shè)備200可以被設(shè)計(jì)為向下游傳輸分組并向發(fā)送器102或者106發(fā)送ACK。在一些實(shí)施例中,設(shè)備200直到其向下游傳輸分組后為才提前確認(rèn)分組。以此方式,發(fā)送器102將以設(shè)備200能夠傳輸分組的速率而不是以設(shè)備200從發(fā)送器100接收分組的速率來接收ACK。這有助于調(diào)節(jié)來自發(fā)送器102的分組的傳輸。
[0137]窗口虛擬化
[0138]設(shè)備200可以實(shí)現(xiàn)的另一個(gè)溢出控制機(jī)制是使用TCP窗口大小參數(shù),其告知發(fā)送器接收器允許該發(fā)送器填滿多少緩沖區(qū)。預(yù)確認(rèn)中的非零窗口大小(例如至少一個(gè)最大段大小(MSS)的大小)允許發(fā)送端點(diǎn)繼續(xù)向設(shè)備傳輸數(shù)據(jù),而零窗口大小禁止進(jìn)一步的數(shù)據(jù)傳輸。相應(yīng)地,設(shè)備200可以例如當(dāng)設(shè)備200的緩沖區(qū)變滿時(shí)通過適當(dāng)?shù)卦O(shè)置每一預(yù)確認(rèn)中的TCP窗口大小來調(diào)節(jié)來自發(fā)送器的分組的流量。
[0139]另一項(xiàng)用來降低該附加開銷的技術(shù)是應(yīng)用滯后作用(hysteresis)。當(dāng)設(shè)備200將數(shù)據(jù)傳送到較慢側(cè)時(shí),設(shè)備299中的溢出控制機(jī)制可以在向發(fā)送器發(fā)送非零窗口通告之前要求可用的最小數(shù)量的空間。在一個(gè)實(shí)施例中,設(shè)備200在發(fā)送非零窗口分組(例如,四個(gè)分組的窗口大小)之前進(jìn)行等待直到存在最小的預(yù)定數(shù)量的分組(諸如四個(gè)分組)的可用空間為止。由于對(duì)于四個(gè)數(shù)據(jù)分組的每個(gè)組僅發(fā)送兩個(gè)ACK分組,而不是對(duì)于四個(gè)數(shù)據(jù)分組要發(fā)送八個(gè)ACK分組,因此這將開銷降低到大約原來的四分之一。
[0140]設(shè)備200或流控制器220可用于溢出控制的另一技術(shù)是TCP延遲ACK機(jī)制,其跳過ACK來降低網(wǎng)絡(luò)流量。TCP延遲ACK自動(dòng)延遲ACK的發(fā)送,直到接收到兩個(gè)分組或直到發(fā)生固定的超時(shí)為止。該機(jī)制單獨(dú)導(dǎo)致開銷減半,而且,通過將分組的數(shù)量增加到兩個(gè)以上,降低了附加的開銷。但是僅延遲ACK本身不足以控制溢出,并且設(shè)備200還可以使用在ACK上的通告窗口機(jī)制來控制發(fā)送器。當(dāng)這樣做時(shí),在一個(gè)實(shí)施例中,設(shè)備200通過延遲ACK很長(zhǎng)時(shí)間來避免觸發(fā)發(fā)送器的超時(shí)機(jī)制。
[0141]在一個(gè)實(shí)施例中,流控制器220不對(duì)一組分組的最后一個(gè)分組進(jìn)行提取確認(rèn)。通過不提取確認(rèn)最后一個(gè)分組或者該組中分組的至少一個(gè),設(shè)備避免對(duì)一組分組的錯(cuò)誤確認(rèn)。例如,如果設(shè)備將發(fā)送對(duì)最后一個(gè)分組的預(yù)確認(rèn)而該分組隨后丟失,那么發(fā)送器在分組沒有被傳送時(shí)已經(jīng)欺騙認(rèn)為其被傳送??紤]到分組已被傳送,發(fā)送器將丟棄該數(shù)據(jù)。如果設(shè)備也丟失該分組,那么不能將該分組重傳到接收者。通過不對(duì)一組分組的最后一個(gè)分組進(jìn)行提前確認(rèn),發(fā)送器直到該分組被傳送時(shí)才將其丟棄。
[0142]在又一個(gè)實(shí)施例中,流控制器220可以使用窗口虛擬化技術(shù)來控制網(wǎng)絡(luò)連接的帶寬利用或者流速。雖然根據(jù)檢查諸如RFC1323的傳統(tǒng)文獻(xiàn)其可能不是直接明顯的,但是用于諸如TCP的傳輸層協(xié)議的發(fā)送窗口是有效的。由于發(fā)送窗口消耗緩沖區(qū)空間(盡管在發(fā)送器上),所以發(fā)送窗口類似于接收窗口。發(fā)送器的發(fā)送窗口包括還沒有被接收器確認(rèn)的、由應(yīng)用發(fā)送的所有數(shù)據(jù)。在要求重傳的情況下,必須在存儲(chǔ)器中保留該數(shù)據(jù)。由于存儲(chǔ)器是共享資源,所以一些TCP堆棧的實(shí)現(xiàn)限制了該數(shù)據(jù)的大小。當(dāng)發(fā)送窗口滿時(shí),應(yīng)用程序嘗試發(fā)送更多的數(shù)據(jù)導(dǎo)致阻塞應(yīng)用程序直到空間可用為止。隨后接收的確認(rèn)將釋放發(fā)送窗口存儲(chǔ)器并且不再阻塞應(yīng)用程序。在一些實(shí)施例中,該窗口大小就是一些TCP實(shí)現(xiàn)中的套接字緩沖區(qū)大小。
[0143]在一個(gè)實(shí)施例中,流控制模塊220被配置為提供對(duì)增加的窗口(或緩沖區(qū))大小的訪問。該配置還可以被稱為窗口虛擬化。在作為傳輸層協(xié)議的TCP的實(shí)施例中,TCP首部可以包括對(duì)應(yīng)窗口比例(window scale)的位串。在一個(gè)實(shí)施例中,“窗口 ”可以在發(fā)送、接收或二者的上下文中提及。
[0144]窗口虛擬化的一個(gè)實(shí)施例是將預(yù)確認(rèn)設(shè)備200插入到TCP會(huì)話中。參考圖1A和IB的任何一個(gè)環(huán)境,建立例如客戶機(jī)102 (為討論方便,現(xiàn)稱為源節(jié)點(diǎn)102)的源節(jié)點(diǎn)與例如服務(wù)器106 (為討論方便,現(xiàn)稱之為目標(biāo)節(jié)點(diǎn)106)的目標(biāo)節(jié)點(diǎn)之間數(shù)據(jù)通信會(huì)話的初始化。對(duì)于TCP通信,源節(jié)點(diǎn)102最初將同步信號(hào)(“SYN”)通過其局域網(wǎng)104傳輸?shù)降谝涣骺刂颇K220。第一流控制模塊220將配置標(biāo)識(shí)符插入到TCP首部選項(xiàng)區(qū)域中。該配置標(biāo)識(shí)符將數(shù)據(jù)路徑中的該點(diǎn)識(shí)別為流控制模塊。
[0145]盡管具有例如16k字節(jié)的小緩沖區(qū)大小的端節(jié)點(diǎn),但設(shè)備200經(jīng)由流控制模塊220提供窗口(或緩沖區(qū))來允許提高會(huì)話內(nèi)的數(shù)據(jù)緩沖能力。然而,RFC1323要求對(duì)大于64k字節(jié)的任何緩沖區(qū)大小進(jìn)行窗口縮放(window scaling),其必須在會(huì)話初始化(SYN、SYN-ACK信號(hào))時(shí)設(shè)置。此外,窗口縮放對(duì)應(yīng)于數(shù)據(jù)路徑中的最小公分母,經(jīng)常是具有小的緩沖區(qū)大小的端節(jié)點(diǎn)。該窗口比例通常是0或I的比例,其對(duì)應(yīng)于高達(dá)64k或者128k字節(jié)的緩沖區(qū)大小。注意到,由于窗口大小被限定為每一分組中的、隨窗口比例改變的窗口字段,窗口比例建立緩沖區(qū)的上限,但并不保證該緩沖區(qū)實(shí)際上就那么大。每個(gè)分組在窗口字段中指示接收器處當(dāng)前可用的緩沖區(qū)空間。
[0146]在使用窗口虛擬化技術(shù)進(jìn)行縮放的一個(gè)實(shí)施例中,在連接建立(S卩,會(huì)話初始化)期間,當(dāng)?shù)谝涣骺刂颇K220從源節(jié)點(diǎn)102接收SYN信號(hào)(或者分組)時(shí),流控制模塊220源節(jié)點(diǎn)102 (其是之前的節(jié)點(diǎn))的窗口比例或者如果之前的節(jié)點(diǎn)的比例丟失則為窗口比例存儲(chǔ)O。第一流控制模塊220還在SYN-FCM信號(hào)中修改該比例,例如將該比例從0或者I增加到
4。當(dāng)?shù)诙骺刂颇K220接收SYN信號(hào)時(shí),其存儲(chǔ)來自第一流控制信號(hào)的增加的比例并且將該SYN信號(hào)中的比例重置為源節(jié)點(diǎn)103的比例值以用于到目標(biāo)節(jié)點(diǎn)106的傳輸。當(dāng)?shù)诙骺刂破?20接收到來自目標(biāo)節(jié)點(diǎn)106的SYN-ACK信號(hào)時(shí),其存儲(chǔ)來自目標(biāo)節(jié)點(diǎn)106的比例(例如,0或I)的比例并且將其修改為與SYN-ACK-FCM信號(hào)一起發(fā)送的增加的比例。第一流控制節(jié)點(diǎn)220接收并且記錄所接收的窗口比例并且將被發(fā)回源節(jié)點(diǎn)102的窗口比例修訂為降回到初始比例(例如0或者I)?;谏厦嬖谶B接建立期間的窗口變換對(duì)話,會(huì)話的每個(gè)后續(xù)分組(例如TCP分組)的中的窗口字段必須隨窗口變換對(duì)話而改變。
[0147]如上所述,窗口比例表示出大于64k的緩沖區(qū)大小,并且可以不需要窗口虛擬化。因此,窗口比例的變換可以用于表示在每個(gè)流控制模塊220中的增加的緩沖區(qū)容量。該緩沖區(qū)容量的增加可作為窗口(或緩沖區(qū))虛擬化而被提及。該緩沖區(qū)大小的增加允許更大的分組從各自的端節(jié)點(diǎn)102和106進(jìn)出。注意到,TCP中的緩沖區(qū)大小典型地以字節(jié)表示,但是為了討論的方便,由于“分組”和虛擬化相關(guān),在此處描述中可以使用“分組”。
[0148]通過舉例描述由流控制器220執(zhí)行的窗口(或緩存區(qū))虛擬化。在該示例中,源節(jié)點(diǎn)102和目標(biāo)節(jié)點(diǎn)106被配置為與具有16k字節(jié)的有限的緩存區(qū)容量的傳統(tǒng)端節(jié)點(diǎn)相似,其大約等于10個(gè)數(shù)據(jù)分組。通常,端節(jié)點(diǎn)102、106在能夠傳輸下一組分組之前必須進(jìn)行等待,直到該分組被傳輸并且收到確認(rèn)為止。在一個(gè)實(shí)施例中,使用在流控制模塊220中的增加的緩沖區(qū)容量,當(dāng)源節(jié)點(diǎn)103傳輸其數(shù)據(jù)分組時(shí),第一流控制模塊220接收該分組,將該分組存儲(chǔ)在其較大容量的緩存區(qū)(例如512個(gè)分組容量)中,并且立即將指示分組接收的確認(rèn)信號(hào)(“REC-ACK”)發(fā)送回到源節(jié)點(diǎn)102。源節(jié)點(diǎn)102接著可以“刷新”其當(dāng)前緩沖區(qū),將10個(gè)新的數(shù)據(jù)分組載入到緩存區(qū),并且將這些傳輸?shù)降谝涣骺刂颇K220上。再次,第一流控制模塊220將REC-ACK信號(hào)發(fā)送回到源節(jié)點(diǎn)102,并且源節(jié)點(diǎn)102刷新其緩沖區(qū)并且對(duì)其載入10個(gè)更新的分組用于傳輸。[0149]當(dāng)?shù)谝涣骺刂颇K220接收到來自源節(jié)點(diǎn)的數(shù)據(jù)分組時(shí),其相應(yīng)地將該數(shù)據(jù)分組載入到緩沖區(qū)中。當(dāng)其準(zhǔn)備好時(shí),第一流控制模塊220可以開始將數(shù)據(jù)分組傳輸?shù)降诙骺刂颇K230,其也具有增加的緩存區(qū)大小,例如以便接收512個(gè)分組。第二流控制模塊220’接收數(shù)據(jù)分組并且開始每次傳輸10個(gè)分組到目標(biāo)節(jié)點(diǎn)106。在第二流控制節(jié)點(diǎn)220處接收的、來自目標(biāo)節(jié)點(diǎn)106的每個(gè)REC-ACK致使又有10個(gè)分組被傳輸?shù)侥繕?biāo)節(jié)點(diǎn)106,直到所有的數(shù)據(jù)分組被傳送為止。因此,本發(fā)明能夠通過利用裝置之間的流控制模塊220、220’的較大的緩沖區(qū)來增加在源節(jié)點(diǎn)(發(fā)送器)102和目標(biāo)節(jié)點(diǎn)(接收器)106之間的數(shù)據(jù)傳輸吞吐量。
[0150]注意到通過之前描述的“預(yù)確認(rèn)”數(shù)據(jù)的傳輸,發(fā)送器(或源節(jié)點(diǎn)102)被允許傳輸比沒有預(yù)確認(rèn)時(shí)可能傳輸?shù)臄?shù)據(jù)更多的數(shù)據(jù),因此造成更大的窗口大小。例如,在一個(gè)實(shí)施例中,流控制模塊220、220’處于缺乏大窗口的節(jié)點(diǎn)(例如,源節(jié)點(diǎn)102或者目標(biāo)節(jié)點(diǎn)106)附近時(shí),該技術(shù)是有效的。
[0151]重新?lián)砗?br>
[0152]流控制器220的另一個(gè)技術(shù)或者算法被稱為重新?lián)砣?。眾所周知?biāo)準(zhǔn)的TCP擁塞避免算法在面對(duì)特定網(wǎng)絡(luò)條件(包括:大的RTT (往返時(shí)間)、高分組丟失率,以及其它)時(shí)性能低下。當(dāng)設(shè)備200檢測(cè)到諸如長(zhǎng)的往返時(shí)間或者高的分組丟失的擁塞條件時(shí),設(shè)備200插入、代入更適合該特定網(wǎng)絡(luò)調(diào)節(jié)的替代的擁塞避免算法。在一個(gè)實(shí)施例中,重新?lián)砣惴ㄊ褂妙A(yù)確認(rèn)來有效地終止發(fā)送器和接收器之間的連接。設(shè)備200接著使用不同的擁塞避免算法從自身重新發(fā)送分組到接收器。重新?lián)砣惴梢砸蕾囉赥CP連接的特征。設(shè)備200監(jiān)控每個(gè)TCP連接,在不同的維度將其特征化,選擇適合用于當(dāng)前特征的重新?lián)砣惴ā?br>
[0153]在一個(gè)實(shí)施例中,當(dāng)檢測(cè)到由往返時(shí)間(RTT)限制的TCP連接時(shí),應(yīng)用表現(xiàn)為多個(gè)TCP連接的重新?lián)砣惴āC總€(gè)TCP連接操作在其自身性能限度內(nèi),但是聚合帶寬獲得了更高的性能水平。該機(jī)制中的一個(gè)參數(shù)是所應(yīng)用的并行連接的數(shù)量(N)。N值過大則連接束獲得超過其合理份額的帶寬。N值過小則連接束獲得低于其合理份額的帶寬。建立“N”的一個(gè)方法依賴于設(shè)備200監(jiān)控實(shí)際連接的分組大小、RTT和分組丟失率。將這些數(shù)字插入TCP響應(yīng)曲線方程來提供本配置中單個(gè)TCP連接的性能的上限。如果連接束中每個(gè)連接正獲得與計(jì)算出的上限性能基本相同的性能,則應(yīng)用額外的并行連接。如果當(dāng)前束正獲得低于上限的性能,則減少并行連接的數(shù)量。依次方式,由于單獨(dú)的連接束包含的并行性不比消除協(xié)議自身所強(qiáng)加的限制所需的并行性更多,所以維持了系統(tǒng)的整體公平性。進(jìn)一步,每個(gè)單獨(dú)的連接保留TCP兼容性。
[0154]建立“N”的另一個(gè)方法是使用并行流控制算法,例如TCP “Vegas”算法或者其改進(jìn)版本“穩(wěn)定的Vegas”。在該方法中,與連接束中的連接相關(guān)聯(lián)的網(wǎng)絡(luò)信息(例如,RTT、丟失率、平均分組大小等等)被聚集并且被應(yīng)用到替代的流控制算法。該算法的結(jié)果進(jìn)而被分布到控制其數(shù)量(即,N)的束的連接之間??蛇x地,束中的每個(gè)連接仍舊使用標(biāo)準(zhǔn)TCP擁塞避免算法。
[0155]在又一個(gè)實(shí)施例中,并行束中的單獨(dú)的連接被虛擬化,即不建立實(shí)際的單獨(dú)的TCP連接。事實(shí)上擁塞避免算法被修改為表現(xiàn)得就好像存在N個(gè)并行連接一樣。該方法的優(yōu)點(diǎn)在于對(duì)于經(jīng)過多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)而言就如同單個(gè)連接一樣。因此重新?lián)砣惴ú挥绊戇@些節(jié)點(diǎn)的Q0S、安全性和其他監(jiān)控方法。在又一個(gè)實(shí)施例中,并行束中的單獨(dú)的連接是真實(shí)存在的,即獨(dú)立的。為束中的并行連接的每一個(gè)建立TCP連接。不必修改用于每個(gè)TCP連接的擁塞避免算法。
[0156]
[0157]在一些實(shí)施例中,流控制器220可以使用本地重傳技術(shù)。實(shí)施預(yù)確認(rèn)的一個(gè)原因是為經(jīng)過高損的鏈路(例如無線)作準(zhǔn)備。在這些實(shí)施例中,預(yù)確認(rèn)設(shè)備200或者流控制模塊220最好位于無線鏈路“之前”。這使得要進(jìn)行的重傳更接近于高損鏈路,免去了網(wǎng)絡(luò)的剩余部分的重傳負(fù)擔(dān)。設(shè)備200可提供本地重傳,在這種情形中,由于鏈路錯(cuò)誤而丟棄的分組由設(shè)備200直接重傳。由于這消除了在端節(jié)點(diǎn)(諸如服務(wù)器106)和任一網(wǎng)絡(luò)104的基礎(chǔ)設(shè)施上的重傳負(fù)擔(dān),所以這是有益的。利用設(shè)備200提供本地重傳,丟棄的分組可以被重傳通過高損鏈路而不必由端節(jié)點(diǎn)重傳且不會(huì)引起端節(jié)點(diǎn)的數(shù)據(jù)傳輸率的對(duì)應(yīng)下降。
[0158]實(shí)施預(yù)確認(rèn)的另一個(gè)原因是避免接收超時(shí)(RTO)懲罰。在標(biāo)準(zhǔn)TCP中,即使是成功接收傳輸中的較大百分比的分組,但仍存在多種情況導(dǎo)致RT0。使用標(biāo)準(zhǔn)TCP算法,在一個(gè)RTT窗口中丟棄不只一個(gè)分組有可能會(huì)導(dǎo)致超時(shí)。此外,如果重傳的分組被丟棄,則大部分TCP連接經(jīng)歷超時(shí)。在具有高帶寬延遲產(chǎn)品的網(wǎng)絡(luò)中,甚至相對(duì)小的分組丟失率也會(huì)導(dǎo)致頻繁的重傳超時(shí)(RT0)。在一個(gè)實(shí)施例中,設(shè)備200使用重傳和超時(shí)算法來避免過早的RT0。設(shè)備200或者流控制器220基于每一分組來維持重傳的計(jì)數(shù)。每傳輸一個(gè)分組,將計(jì)數(shù)加一,然后設(shè)備200繼續(xù)傳輸分組。在一些實(shí)施例中,僅有當(dāng)一個(gè)分組已經(jīng)被重傳預(yù)定的次數(shù)后才宣告RT0。
[0159]波前檢測(cè)和消除二義性
[0160]在一些實(shí)施例中,設(shè)備200或者流控制器220在管理和控制網(wǎng)絡(luò)流量中使用波前檢測(cè)和消除二義性技術(shù)。在該技術(shù)中,流控制器220使用傳輸標(biāo)識(shí)符或者號(hào)碼來確定是否需要重傳特定數(shù)據(jù)分組。舉例來說,發(fā)送器在網(wǎng)絡(luò)上傳輸數(shù)據(jù)分組,其中所傳輸?shù)臄?shù)據(jù)分組的每一個(gè)實(shí)例與一個(gè)傳輸號(hào)碼相關(guān)聯(lián)??梢岳斫?,分組的傳輸號(hào)碼與分組的序列號(hào)不相同,因?yàn)樾蛄刑?hào)標(biāo)記分組中的數(shù)據(jù),而傳輸號(hào)碼標(biāo)記該數(shù)據(jù)的傳輸?shù)膶?shí)例。傳輸號(hào)碼可以是對(duì)于該目的可用的任意信息,包括與分組相關(guān)聯(lián)的時(shí)間戳或者簡(jiǎn)單地增加的號(hào)碼(類似于序列號(hào)或者分組號(hào))。因?yàn)閿?shù)據(jù)段可以被重傳,所以不同的傳輸號(hào)碼可以與特定的序列號(hào)相關(guān)聯(lián)。
[0161]由于發(fā)送器傳輸數(shù)據(jù)分組,所以發(fā)送器保持被確認(rèn)的數(shù)據(jù)分組傳輸?shù)膶?shí)例的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)分組傳輸?shù)拿總€(gè)實(shí)例由其序列號(hào)和傳輸號(hào)碼標(biāo)記。通過保持對(duì)于每個(gè)分組的傳輸號(hào)碼,發(fā)送器保留數(shù)據(jù)分組的傳輸順序。當(dāng)發(fā)送器接收到ACK或者SACK時(shí),發(fā)送器確定與接收器(在所接收的確認(rèn)中)指示的已經(jīng)接收的分組相關(guān)聯(lián)的最高的傳輸號(hào)碼。具有較低傳輸號(hào)碼的任何未完成的未經(jīng)確認(rèn)的分組被假設(shè)為已丟失。
[0162]在一些實(shí)施例中,當(dāng)?shù)竭_(dá)分組已經(jīng)被重傳時(shí),發(fā)送器呈現(xiàn)出模糊的情形:標(biāo)準(zhǔn)的ACK/SACK沒有包含足夠的信息來使發(fā)送器確定該到達(dá)分組的哪個(gè)傳輸觸發(fā)了該確認(rèn)。從而,在接收到模糊確認(rèn)之后,發(fā)送器消除該確認(rèn)二義性以將其與傳輸號(hào)碼相關(guān)聯(lián)。在不同的實(shí)施例中,多個(gè)技術(shù)的其中之一或者組合可以被用來解決該模糊性。
[0163]在一個(gè)實(shí)施例中,發(fā)送器在所傳輸?shù)臄?shù)據(jù)分組中包含標(biāo)識(shí)符,然后,接收器在確認(rèn)中返回該標(biāo)識(shí)符或者該標(biāo)識(shí)符的函數(shù)。該標(biāo)識(shí)符可以是時(shí)間戳(例如在RFC1323中描述的TCP時(shí)間戳)、序列號(hào)、可以被用來在分組傳輸?shù)膬蓚€(gè)或多個(gè)實(shí)例之間進(jìn)行解析的任何其他信息。在TCP時(shí)間戳選項(xiàng)被用來消除確認(rèn)的二義性的實(shí)施例中,使用高達(dá)32位唯一的信息來標(biāo)記每個(gè)分組。接收到數(shù)據(jù)分組時(shí),接收器通過確認(rèn)將該唯一信息回送到發(fā)送器。發(fā)送器確保最初發(fā)送的分組和其重傳的一個(gè)或者多個(gè)版本包含對(duì)于時(shí)間戳選項(xiàng)的不同值,這允許其明確地消除ACK的模糊性。發(fā)送器可以將該唯一信息保持在例如用來保存所發(fā)送的數(shù)據(jù)分組的狀態(tài)的數(shù)據(jù)結(jié)構(gòu)中。由于該技術(shù)與工業(yè)標(biāo)準(zhǔn)相兼容并且因此很少或不會(huì)遇到互操作性的問題,所以該技術(shù)是有益的。然而,該技術(shù)在一些實(shí)現(xiàn)中可能要求十個(gè)字節(jié)的TCP首部空間,這降低了網(wǎng)絡(luò)上有效吞吐率并且減少了可用于其他TCP選項(xiàng)的空間。
[0164]在又一個(gè)實(shí)施例中,分組中的另一個(gè)字段,諸如IP ID字段,被用來以與上述TCP時(shí)間戳選項(xiàng)相似的方式來消除二義性。發(fā)送器安排該分組的最初和重傳版本的ID字段值,以使在IP首部中具有不同的ID字段。在接收器或其代理裝置接收到數(shù)據(jù)分組時(shí),接收器將ACK分組的ID字段設(shè)置為觸發(fā)該ACK的分組的ID字段的函數(shù)。由于該方法不需要發(fā)送額外的數(shù)據(jù),保持了網(wǎng)絡(luò)和TCP首部空間的效率,所以該方法是有益的。所選擇的函數(shù)應(yīng)有極大可能消除二義性。在優(yōu)先實(shí)施例中,發(fā)送器選擇IP ID值且將最高有效位設(shè)置為O。當(dāng)接收器響應(yīng)時(shí),IP ID值被設(shè)置為相同的IP ID值,且最高有效位被設(shè)為I。
[0165]在另一個(gè)實(shí)施例中,與非模糊性確認(rèn)相關(guān)聯(lián)的傳輸號(hào)碼被用來消除模糊確認(rèn)的二義性。該技術(shù)基于這樣的原理:由于兩個(gè)分組在時(shí)間上更接近地傳輸,則對(duì)于這兩個(gè)分組的確認(rèn)將傾向于時(shí)間上更接近地接收。由于對(duì)于未被重傳的分組所接收的確認(rèn)可容易地與傳輸號(hào)碼相關(guān)聯(lián),所以這樣的分組不會(huì)導(dǎo)致模糊性。因此,可以將這些已知的傳輸號(hào)碼與所接收的在時(shí)間上接近于已知確認(rèn)的模糊確認(rèn)的可能的傳輸號(hào)碼相比較。發(fā)送器將模糊確認(rèn)的傳輸號(hào)碼與最近已知的所接收的傳輸號(hào)碼相比較,選擇對(duì)于已知的所接收的傳輸號(hào)碼最接近的一個(gè)。例如,如果接收到對(duì)數(shù)據(jù)分組I的確認(rèn)并且最后所接收的確認(rèn)是針對(duì)數(shù)據(jù)分組5,那么發(fā)送器通過假設(shè)數(shù)據(jù)分組I的第三個(gè)實(shí)例導(dǎo)致了該確認(rèn)來解決該模糊性。
[0166]詵擇件確認(rèn)
[0167]設(shè)備200或者流控制器220的另一項(xiàng)技術(shù)是實(shí)現(xiàn)傳輸控制協(xié)議選擇性確認(rèn)或TCPSACK的實(shí)施例以確定已經(jīng)收到哪些分組或沒有收到哪些分組。該技術(shù)允許發(fā)送器明確地確定已經(jīng)由接收器收到的分組的列表以及沒有收到的分組的精確的列表??梢酝ㄟ^修改發(fā)送器和/或接收器或者通過將發(fā)送器側(cè)和接收器側(cè)流控制模塊220插入到發(fā)送器和接收器之間的網(wǎng)絡(luò)路徑中來實(shí)現(xiàn)該功能。參考圖1A或者1B,發(fā)送器(例如客戶機(jī)102)被配置為通過網(wǎng)絡(luò)104向接收器(例如服務(wù)器106)傳輸數(shù)據(jù)分組。作為響應(yīng),接收器將被稱為SACK分組的TCP選擇性確認(rèn)選項(xiàng)返回給發(fā)送器。在一個(gè)實(shí)施例中,盡管此處為了簡(jiǎn)便僅討論一個(gè)方向的通信,但是該通信是雙向的。接收器保持包含接收器實(shí)際已收到的數(shù)據(jù)分組的序列號(hào)的一組范圍的列表或者其他適合的數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,該列表根據(jù)序列號(hào)以升序或者降序排列。接收器還保持放棄的(left-off)指針,其包括對(duì)列表的引用并且指示從之前生成的SACK分組的放棄點(diǎn)。
[0168]當(dāng)接收到數(shù)據(jù)分組時(shí),接收器生成SACK分組并將其傳輸回到發(fā)送器。在一些實(shí)施例中,SACK分組包括多個(gè)字段,每個(gè)字段可以保留序列號(hào)的范圍來指示一組已接收的數(shù)據(jù)分組。接收器用包括觸發(fā)SACK分組的正在到達(dá)(landing)分組的序列號(hào)的范圍來填充該SACK分組的第一字段。剩余可用的SACK字段用已收到的分組的列表的序列號(hào)的范圍來填充。當(dāng)該列表中的范圍超過可以被載入SACK分組的范圍時(shí),接收器使用放棄指針來確定哪個(gè)范圍被載入SACK分組。接收器從有序的列表連續(xù)插入SACK范圍,從指針引用的范圍開始并且沿列表持續(xù)向下,直到消耗完SACK分組的TCP首部中的可用的SACK范圍空間。如果到達(dá)末端,則接收器環(huán)繞到列表的開始。在一些實(shí)施例中,兩個(gè)或三個(gè)附加的SACK范圍可以被添加到SACK范圍信息。
[0169]一旦接收器生成SACK分組,接收器將確認(rèn)發(fā)送會(huì)發(fā)送器。然后,接收器在列表中將放棄的指針前進(jìn)一個(gè)或者多個(gè)SACK范圍項(xiàng)。例如,如果接收器插入四個(gè)SACK范圍,則放棄指針可以在列表中被推進(jìn)兩個(gè)SACK范圍。當(dāng)所推進(jìn)的放棄的指針到達(dá)列表的末端,則指針被重置為列表的開始,從而有效地環(huán)繞已知所接收范圍的列表,環(huán)繞該列表使得系統(tǒng)甚至能在SACK分組大量丟失的情況下良好地運(yùn)行,這是由于一旦列表被環(huán)繞,則由于丟失的SACK分組導(dǎo)致的未被通信的SACK信息將最終被通信。
[0170]因此可以理解,SACK分組可以通信關(guān)于接收器的情況的多個(gè)細(xì)節(jié)。首先,SACK分組指示在SACK分組生成時(shí)接收器剛剛收到該SACK信息的第一字段中的數(shù)據(jù)分組。其次,SACK信息的第二和隨后的字段指示接收器已經(jīng)收到這些范圍中的數(shù)據(jù)分組。SACK信息還暗示接收器在SACK分組生成時(shí)沒有接收落入SACK信息的第二和隨后的字段之間的任何一個(gè)數(shù)據(jù)分組。本質(zhì)上,SACK信息中的第二和隨后的字段之間的范圍是所接收的數(shù)據(jù)中的“孔”,其中的數(shù)據(jù)是已知的未被傳送的數(shù)據(jù)。因此,使用該方法,當(dāng)SACK分組具有足夠空間來包括多余兩個(gè)的SACK范圍時(shí),接收器可以向發(fā)送器指示還沒有被接收器接收的數(shù)據(jù)分組的范圍。
[0171]在另一個(gè)實(shí)施例中,發(fā)送器使用上述的SACK分組結(jié)合上述重傳技術(shù)來假定哪些數(shù)據(jù)分組已經(jīng)被傳送到接收器。例如,當(dāng)重傳算法(使用傳輸號(hào)碼)宣告分組丟失時(shí),發(fā)送器認(rèn)為該分組僅是條件性丟失,因?yàn)橛锌赡苁亲R(shí)別該分組的接收的SACK分組丟失,而不是數(shù)據(jù)分組本身丟失。發(fā)送器因此將該分組添加到潛在丟失的分組的列表,稱之為假定丟失的列表。每當(dāng)SACK分組到達(dá),將來自SACK分組的數(shù)據(jù)的已知丟失范圍和假定丟失列表中的分組相比較。包括已知丟失的數(shù)據(jù)分組被宣告實(shí)際丟失并被隨后重傳。以此方式,組合這兩個(gè)方案來將更好的關(guān)于已丟失且需要重傳哪些分組的信息給予發(fā)送器。
[0172]事務(wù)邊界檢測(cè)
[0173]在一些實(shí)施例中,設(shè)備200或流控制器220使用被稱為事務(wù)邊界檢測(cè)的技術(shù)。在一個(gè)實(shí)施例中,該技術(shù)適合于乒乓(ping-pong)表現(xiàn)的連接。在TCP層,乒乓行為是當(dāng)一個(gè)通信器(發(fā)送器)發(fā)送數(shù)據(jù)然后等待來自另一個(gè)通信器(接收器)的響應(yīng)。乒乓行為的例子包括遠(yuǎn)程程序調(diào)用、HTTP和其他。以上描述的算法使用重傳超時(shí)來從與事務(wù)相關(guān)的最后的一個(gè)分組或多個(gè)的丟棄進(jìn)行恢復(fù)。由于在一些實(shí)施例中,TCP RTO機(jī)制極端粗略,例如在所有情況中要求最小I秒的值,在這些情況下可以看到差的應(yīng)用行為。
[0174]在一個(gè)實(shí)施例中,數(shù)據(jù)的發(fā)送器或耦合到發(fā)送器的流控制模塊220檢測(cè)所發(fā)送的數(shù)據(jù)中的事務(wù)邊界。在檢測(cè)到事務(wù)邊界時(shí),發(fā)送器或者流控制器220發(fā)送額外的分組,額外的分組的接收從接收器生成額外的ACK或者SACK響應(yīng)。額外的分組的插入優(yōu)選地限于改善的應(yīng)用響應(yīng)時(shí)間和網(wǎng)絡(luò)能力利用之間的平衡。所插入的額外的分組的數(shù)量可以根據(jù)與該連接相關(guān)聯(lián)的當(dāng)前丟失率來進(jìn)行選擇,對(duì)于較高的丟失率的連接選擇更多的分組。
[0175]檢測(cè)事務(wù)邊界的一個(gè)方法是基于時(shí)間的。如果發(fā)送器已經(jīng)發(fā)送數(shù)據(jù)并停止,則在一段時(shí)間之后發(fā)送器或流控制模塊220宣告事務(wù)邊界。這可以和其他技術(shù)相結(jié)合。例如,由發(fā)送器在TCP首部中設(shè)置PSH (TCP推送)位可以指示事務(wù)邊界。因此,將基于時(shí)間的方法和這些附加的試探方法相組合可以提供對(duì)于事務(wù)邊界的更精確的檢測(cè)。在另一個(gè)技術(shù)中,如果發(fā)送器或者流控制模塊220理解應(yīng)用協(xié)議,其可以解析協(xié)議數(shù)據(jù)流并且直接確定事務(wù)邊界。在一些實(shí)施例中,可以獨(dú)立于任一基于時(shí)間的機(jī)制使用此最后的行為。
[0176]響應(yīng)于檢測(cè)事務(wù)邊界,發(fā)送器或流控制模塊220向接收器傳輸額外的數(shù)據(jù)分組以便從接收器引發(fā)確認(rèn)。因此,額外的數(shù)據(jù)分組應(yīng)該使得接收器將響應(yīng)于接收數(shù)據(jù)分組來至少產(chǎn)生ACK或SACK。在一個(gè)實(shí)施例中,簡(jiǎn)單地重傳事務(wù)的最后一個(gè)或多個(gè)分組。相比于僅發(fā)送虛擬的數(shù)據(jù)分組,如果最后一個(gè)或多個(gè)分組已經(jīng)被丟棄,這就具有重傳所需數(shù)據(jù)的增加的益處。在又一個(gè)實(shí)施例中,發(fā)送最后一個(gè)或多個(gè)分組的片段,允許發(fā)送器來消除來自于其最初分組的這些分組到來的二義性。這使接收器避免錯(cuò)誤的混淆任意重新排序自適應(yīng)算法。在又一個(gè)實(shí)施例中,任意數(shù)量的公知的前向糾錯(cuò)技術(shù)可被用來為所插入的分組生成額外的數(shù)據(jù),這允許重新構(gòu)造接收器處丟失的或以其他方式錯(cuò)過的數(shù)據(jù)。
[0177]在一些實(shí)施例中,當(dāng)對(duì)事務(wù)中的最后的數(shù)據(jù)分組的確認(rèn)被丟棄時(shí),此處描述的邊界檢測(cè)技術(shù)有助于避免超時(shí)。當(dāng)發(fā)送器或流控制模塊220接收對(duì)于這些額外的數(shù)據(jù)分組的確認(rèn)時(shí),發(fā)送器可以從這些額外的確認(rèn)來確定最后的數(shù)據(jù)分組是否已經(jīng)被接收或這需要被重傳,從而避免超時(shí)。在一個(gè)實(shí)施例中,如果最后的分組已經(jīng)被接收但是它們的確認(rèn)被丟棄,則流控制模塊220生成對(duì)該數(shù)據(jù)分組的確認(rèn),并且將該確認(rèn)發(fā)送到發(fā)送器,從而告知發(fā)送器該數(shù)據(jù)分組已經(jīng)被傳送。在又一個(gè)實(shí)施例中,如果沒有收到最后的分組,則流控制模塊220向發(fā)送器發(fā)送一個(gè)分組來使發(fā)送器重傳丟棄的數(shù)據(jù)分組。
[0178]重新分組
[0179]在又一個(gè)實(shí)施例中,設(shè)備200或流控制器220使用重新分組技術(shù)來改善傳輸層網(wǎng)絡(luò)流量。在一些實(shí)施例中,TCP性能和分組大小成比例。因此增加分組大小能改進(jìn)性能,除非其引起大大增加的分組丟失率或其他非線性效應(yīng),例如IP分片。通常,有線介質(zhì)(諸如銅纜或光纖)具有極低的誤碼率,低到可以忽略不計(jì)。對(duì)于這些介質(zhì),在分片發(fā)生之前,最大化分組大小是有益的(通過底層傳輸介質(zhì)的協(xié)議來限制最大化的分組大小)。但是對(duì)于具有較聞丟失率的傳輸介質(zhì)(例如,諸如WiFi等的無線技術(shù),或者諸如電力線網(wǎng)絡(luò)等聞?chuàng)p環(huán)境),增加分組大小可能導(dǎo)致較低的傳輸率,因?yàn)榻橘|(zhì)引發(fā)的錯(cuò)誤導(dǎo)致整個(gè)分組被丟棄(即,介質(zhì)引發(fā)的錯(cuò)誤超過對(duì)于該介質(zhì)的標(biāo)準(zhǔn)糾錯(cuò)碼的能力),從而增加了分組丟失率。分組丟失率中的顯著大的增加實(shí)際上否定了增加的分組大小的任何性能益處。在一些情況中,對(duì)于TCP端點(diǎn)來選擇最優(yōu)的分組大小可能是困難的。例如,最優(yōu)的分組大小可以根據(jù)每個(gè)鏈路的性質(zhì)在傳輸路徑時(shí)發(fā)生變化。
[0180]通過將設(shè)備200或流控制模塊220插入到傳輸路徑中,流控制器220監(jiān)控鏈路的特征并且根據(jù)所確定的鏈路特征重新分組。在一個(gè)實(shí)施例中,設(shè)備200或流控制器220將具有連續(xù)數(shù)據(jù)的分組重新分組為少量的較大分組。在又一個(gè)實(shí)施例中,設(shè)備200或流控制器220通過將一系列大分組分為大量的較小的分組來對(duì)分組進(jìn)行重新分組。在其他實(shí)施例中,設(shè)備200或流控制器220監(jiān)控鏈路特征并且通過重新組合來調(diào)整分組大小以提高吞吐量。
[0181]QoS
[0182]仍參考圖2A,在一些實(shí)施例中,流控制器220可以包括QoS引擎236,(也被稱為QoS控制器)。在又一個(gè)實(shí)施例中,例如,設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250包括單獨(dú)的但與流控制器220通信的QoS引擎236。QoS引擎236包括用于執(zhí)行改善任何網(wǎng)絡(luò)連接的性能、操作或服務(wù)質(zhì)量的一個(gè)或多個(gè)服務(wù)質(zhì)量(QoS)技術(shù)的任何邏輯、商業(yè)規(guī)則、功能或操作。在一些實(shí)施例中,QoS引擎236包括為不同用戶、應(yīng)用、數(shù)據(jù)流或連接提供不同優(yōu)先級(jí)的網(wǎng)絡(luò)流量控制和管理機(jī)制。在其他實(shí)施例中,QoS引擎236為用戶、應(yīng)用、數(shù)據(jù)流或連接控制、維持或確保特定水平的性能。在一個(gè)實(shí)施例中,QoS引擎236為用戶、應(yīng)用、數(shù)據(jù)流或連接控制、維持或確保特定部分的帶寬或網(wǎng)絡(luò)容量。在一些實(shí)施例中,QoS引擎236監(jiān)控對(duì)應(yīng)于用戶、應(yīng)用、數(shù)據(jù)流或連接的性能或服務(wù)質(zhì)量的所達(dá)到的水平,例如數(shù)據(jù)速率和延遲。響應(yīng)于監(jiān)控,QoS引擎236動(dòng)態(tài)地控制或調(diào)整網(wǎng)絡(luò)分組的調(diào)度優(yōu)先級(jí)來獲得期望水平的性能或服務(wù)質(zhì)量。
[0183]在一些實(shí)施例中,QoS引擎236根據(jù)一個(gè)或多個(gè)類別或等級(jí)的服務(wù)來優(yōu)先排序、調(diào)度和傳輸網(wǎng)絡(luò)分組。在一些實(shí)施例中,服務(wù)類別或等級(jí)可以包括:1)盡最大努力,2)控制的負(fù)載,3)有保證的或者4)定性的。對(duì)于盡最大努力類的服務(wù),設(shè)備200作出合理的努力來傳送分組(標(biāo)準(zhǔn)服務(wù)水平)。對(duì)于控制的負(fù)載類的服務(wù),設(shè)備200或QoS引擎236近似傳輸介質(zhì)的標(biāo)準(zhǔn)的分組錯(cuò)誤丟失或者近似輕度負(fù)載網(wǎng)絡(luò)條件下的盡最大努力服務(wù)的行為。對(duì)于有保證類的服務(wù),設(shè)備200或QoS引擎236保證來在連接期間以確定的速率傳輸數(shù)據(jù)的能力。對(duì)于定性類的服務(wù),設(shè)備200或QoS引擎236將定性類服務(wù)用于要求或期望優(yōu)先排序的流量的應(yīng)用、用戶、數(shù)據(jù)流或者連接,但不能對(duì)資源需求或服務(wù)水平進(jìn)行定量。在這些情況中,設(shè)備200或QoS引擎236基于QoS引擎236的任意邏輯或配置或者基于商業(yè)規(guī)則或策略來確定服務(wù)類別或優(yōu)先級(jí)。例如,在一個(gè)實(shí)施例中,QoS引擎236根據(jù)策略引擎295、295’指定的一個(gè)或多個(gè)策略來優(yōu)先排序、調(diào)度和傳輸網(wǎng)絡(luò)分組。
[0184]協(xié)議加速
[0185]協(xié)議加速器234包括用于優(yōu)化、加速或以其他方式改善一個(gè)或多個(gè)協(xié)議的性能、操作或服務(wù)質(zhì)量的任何邏輯、商業(yè)規(guī)則、功能或操作。在一個(gè)實(shí)施例中,協(xié)議加速器234在網(wǎng)絡(luò)堆棧的層5-7的加速任何應(yīng)用層協(xié)議。在其他實(shí)施例中,協(xié)議加速器234加速傳輸層或者層4協(xié)議。在一個(gè)實(shí)施例中,協(xié)議加速器234加速層2或?qū)?的協(xié)議。在一些實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來根據(jù)數(shù)據(jù)類型、協(xié)議的特征和/或行為來優(yōu)化或加速一個(gè)或多個(gè)協(xié)議的每一個(gè)。在又一個(gè)實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來改善用戶體驗(yàn)、響應(yīng)時(shí)間、網(wǎng)絡(luò)或者計(jì)算機(jī)負(fù)載,和/或關(guān)于協(xié)議的網(wǎng)絡(luò)或帶寬利用。
[0186]在一個(gè)實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來最小化文件系統(tǒng)訪問上的WAN延遲的影響。在一些實(shí)施例中,協(xié)議加速器234優(yōu)化或加速CIFS (通用互聯(lián)網(wǎng)文件系統(tǒng))協(xié)議的使用來改善文件系統(tǒng)訪問時(shí)間或?qū)?shù)據(jù)和文件的訪問時(shí)間。在一些實(shí)施例中,協(xié)議加速器234優(yōu)化或加速NFS (網(wǎng)絡(luò)文件系統(tǒng))協(xié)議的使用。在又一個(gè)實(shí)施例中,協(xié)議加速器234優(yōu)化或加速文件傳輸協(xié)議(FTP)的使用。
[0187]在一個(gè)實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來優(yōu)化或加速承載為有效載荷的或使用任何類型和形式的標(biāo)記語言的協(xié)議。在其他實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來優(yōu)化或加速超文本傳輸協(xié)議(HTTP)。在又一個(gè)實(shí)施例中,協(xié)議加速器234被配置、構(gòu)建或設(shè)計(jì)來優(yōu)化或加速承載有效載荷或以其他方式使用XML (可擴(kuò)展標(biāo)記語言)的協(xié)議。[0188]透明并且多點(diǎn)部署配置
[0189]在一些實(shí)施例中,設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250對(duì)于通過諸如WAN鏈路的網(wǎng)絡(luò)連接或鏈路的任何數(shù)據(jù)流是透明的。在一個(gè)實(shí)施例中,設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250以這樣的方式操作:通過WAN的數(shù)據(jù)流是由任何網(wǎng)絡(luò)監(jiān)控、QoS管理或網(wǎng)絡(luò)分析工具可識(shí)別的。在一些實(shí)施例中,設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250不創(chuàng)建用于傳輸可以隱藏、遮掩或以其他方式使網(wǎng)絡(luò)流量不透明的數(shù)據(jù)的任何隧道或流。在其他實(shí)施例中,設(shè)備200透明地操作,因?yàn)樵O(shè)備不改變網(wǎng)絡(luò)分組的任何源和/或目標(biāo)地址信息或端口信息,諸如互聯(lián)網(wǎng)協(xié)議地址或端口號(hào)。在其他實(shí)施例中,設(shè)備200和/或網(wǎng)絡(luò)優(yōu)化引擎250被認(rèn)為對(duì)于網(wǎng)絡(luò)架構(gòu)中的網(wǎng)絡(luò)、應(yīng)用、客戶機(jī)、服務(wù)器或其他設(shè)備或計(jì)算裝置透明地操作或運(yùn)轉(zhuǎn)。也就是在一些實(shí)施例中,設(shè)備是透明的,因?yàn)椴槐匦薷木W(wǎng)絡(luò)上的任何裝置或設(shè)備的網(wǎng)絡(luò)相關(guān)配置來支持設(shè)備200。
[0190]可以下面的部署配置的任何一個(gè)來部署設(shè)備200:1)串行流量,2)代理模式,3)虛擬串行模式。在一些實(shí)施例中,設(shè)備200可以與以下的一個(gè)或多個(gè)串行部署:路由器、客戶機(jī)、服務(wù)器或者另一個(gè)網(wǎng)絡(luò)裝置或設(shè)備。在其他實(shí)施例中,設(shè)備200可以與以下的一個(gè)或多個(gè)并行部署:路由器、客戶機(jī)、服務(wù)器或者另一個(gè)網(wǎng)絡(luò)裝置或設(shè)備。在并行部署中,路由器、客戶機(jī)、服務(wù)器或者其他網(wǎng)絡(luò)設(shè)備可以被配置為轉(zhuǎn)發(fā)、轉(zhuǎn)換或通過網(wǎng)絡(luò)至設(shè)備200或者經(jīng)由設(shè)備200轉(zhuǎn)發(fā)、轉(zhuǎn)換或通過網(wǎng)絡(luò)。
[0191]在串行的實(shí)施例中,設(shè)備200與路由器的WAN串行部署。以此方式,來自WAN的所有流量在到達(dá)LAN的目的地之前穿過該設(shè)備。
[0192]在代理模式的實(shí)施例中,設(shè)備200被部署為客戶機(jī)和服務(wù)器之間的代理裝置。在一些實(shí)施例中,設(shè)備200使客戶機(jī)與網(wǎng)絡(luò)上的資源間接連接。例如,客戶機(jī)經(jīng)由設(shè)備200連接到資源,并且設(shè)備通過連接到該資源、不同的資源、或者通過從高速緩存供應(yīng)該資源來提供資源。在一些情況中,設(shè)備可以對(duì)于不同的目的來改變客戶機(jī)請(qǐng)求或者服務(wù)器響應(yīng),諸如對(duì)于此處所討論的任何優(yōu)化技術(shù)。在其他實(shí)施例中,設(shè)備200通過透明地?cái)r截并轉(zhuǎn)發(fā)到客戶機(jī)和/或服務(wù)器的請(qǐng)求和響應(yīng)來作為透明代理運(yùn)行。不使用客戶機(jī)側(cè)配置,設(shè)備200可以將客戶機(jī)請(qǐng)求重定向到不同的服務(wù)器或網(wǎng)絡(luò)。在一些實(shí)施例中,設(shè)備200可以在穿過該設(shè)備的任何網(wǎng)絡(luò)流量上執(zhí)行任何類型和形式的網(wǎng)絡(luò)地址轉(zhuǎn)換(被稱為NAT)。
[0193]在一些實(shí)施例中,設(shè)備200以虛擬串行模式配置來部署。在該實(shí)施例中,具有路由或轉(zhuǎn)換功能的路由器或網(wǎng)絡(luò)裝置被配置為轉(zhuǎn)發(fā)、路由或以其他方式提供發(fā)往網(wǎng)絡(luò)或設(shè)備200的網(wǎng)絡(luò)分組。設(shè)備200接著在該網(wǎng)絡(luò)分組上執(zhí)行任一期望的處理,諸如此處討論的任一 WAN優(yōu)化技術(shù)。當(dāng)完成處理時(shí),設(shè)備200將經(jīng)處理的網(wǎng)絡(luò)分組轉(zhuǎn)發(fā)到路由器以傳輸?shù)骄W(wǎng)絡(luò)上的目的地。以此方式,設(shè)備200可以并行耦合到路由器,但仍如同設(shè)備200串行一樣操作。該部署模式還提供透明性,因?yàn)楫?dāng)分組被處理并經(jīng)由設(shè)備通過網(wǎng)絡(luò)傳輸時(shí),保留了源和目標(biāo)地址以及端口信息。
[0194]端節(jié)點(diǎn)部署
[0195]盡管在上文網(wǎng)絡(luò)優(yōu)化引擎250總是結(jié)合設(shè)備200來描述,但是網(wǎng)絡(luò)優(yōu)化引擎250或其任何部分可以被部署、分布或以其他方式操作在諸如客戶機(jī)102和/或服務(wù)器106的任一端節(jié)點(diǎn)上。由此,客戶機(jī)或服務(wù)器可以提供此處所描述的結(jié)合一個(gè)或多個(gè)設(shè)備200或者不結(jié)合設(shè)備200的網(wǎng)絡(luò)優(yōu)化引擎250的任何系統(tǒng)和方法。[0196]現(xiàn)參考圖2B,描述部署在一個(gè)或多個(gè)端節(jié)點(diǎn)的網(wǎng)絡(luò)優(yōu)化引擎250的示例實(shí)施例??偟膩碚f,客戶機(jī)102可以包括第一網(wǎng)絡(luò)優(yōu)化引擎250’并且服務(wù)器106可以包括第二網(wǎng)絡(luò)優(yōu)化引擎250’ ’??蛻魴C(jī)102和服務(wù)器106可以建立傳輸層連接并且交換穿過或不穿過設(shè)備200的通信。
[0197]在一個(gè)實(shí)施例中,客戶機(jī)102的網(wǎng)絡(luò)優(yōu)化引擎250’執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或以其他方式改善與服務(wù)器106通信的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量。在又一個(gè)實(shí)施例中,服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250’’執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或以其他方式改善與客戶機(jī)102通信的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量。在一些實(shí)施例中,客戶機(jī)102的網(wǎng)絡(luò)優(yōu)化引擎250’和服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250’’執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或以其他方式改善在客戶機(jī)102與服務(wù)器106之間通信的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量。在又一個(gè)實(shí)施例中,客戶機(jī)102的網(wǎng)絡(luò)優(yōu)化引擎250’結(jié)合設(shè)備200執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或以其他方式改善與客戶機(jī)102通信的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量。在又一個(gè)實(shí)施例中,服務(wù)器106的網(wǎng)絡(luò)優(yōu)化引擎250’’結(jié)合設(shè)備200執(zhí)行此處描述的技術(shù)來優(yōu)化、加速或以其他方式改善與服務(wù)器106通信的網(wǎng)絡(luò)流量的性能、操作或服務(wù)質(zhì)量。
[0198]C.客戶機(jī)代理
[0199]現(xiàn)參考圖3,描述客戶機(jī)代理120的實(shí)施例??蛻魴C(jī)102包括客戶機(jī)代理120,用于經(jīng)由網(wǎng)絡(luò)104與設(shè)備200、設(shè)備205和/或服務(wù)器106來建立、交換、管理和控制通信。在一些實(shí)施例中,客戶機(jī)120 (其也可以被稱為WAN客戶機(jī))加速WAN網(wǎng)絡(luò)通信和/或用于通過網(wǎng)絡(luò)設(shè)備200通信??偟膩碚f,客戶機(jī)102在計(jì)算裝置100上操作,該計(jì)算裝置100擁有帶有內(nèi)核模式302以及用戶模式303的操作系統(tǒng),以及帶有一個(gè)或多個(gè)層310a-310b的網(wǎng)絡(luò)堆棧267??蛻魴C(jī)102可以已經(jīng)安裝和/或執(zhí)行一個(gè)或多個(gè)應(yīng)用。在一些實(shí)施例中,一個(gè)或多個(gè)應(yīng)用可通過網(wǎng)絡(luò)堆棧267與網(wǎng)絡(luò)104通信。所述應(yīng)用之一,諸如web瀏覽器,也可包括第一程序322。例如,可在一些實(shí)施例中使用第一程序322來安裝和/或執(zhí)行客戶機(jī)代理120,或其中任何部分??蛻魴C(jī)代理120包括攔截機(jī)制或者攔截器350,用于從網(wǎng)絡(luò)堆棧267攔截來自一個(gè)或者多個(gè)應(yīng)用的網(wǎng)絡(luò)通信。
[0200]與設(shè)備200 —樣,客戶機(jī)102具有網(wǎng)絡(luò)堆棧267,其包括任何類型和形式的軟件、或硬件或其組合,用于提供與網(wǎng)絡(luò)104的連接和通信??蛻魴C(jī)102的網(wǎng)絡(luò)堆棧267包括上文結(jié)合設(shè)備200所描述的任何一個(gè)網(wǎng)絡(luò)堆棧實(shí)施例。在一些實(shí)施例中,客戶機(jī)代理120或其任何部分被設(shè)計(jì)和構(gòu)建為與由客戶機(jī)102的操作系統(tǒng)安裝或以其他方式提供的網(wǎng)絡(luò)堆棧267
一起操作或聯(lián)合工作。
[0201]在進(jìn)一步的細(xì)節(jié)中,客戶機(jī)102或設(shè)備200 (205)的網(wǎng)絡(luò)堆棧267可包括任何類型和形式的接口,用于接收、獲得、提供或以其它方式訪問與客戶機(jī)102的網(wǎng)絡(luò)通信相關(guān)的任何信息和數(shù)據(jù)。在一個(gè)實(shí)施例中,與網(wǎng)絡(luò)堆棧267的接口包括應(yīng)用編程接口(API)。接口也可包括任何函數(shù)調(diào)用、鉤子或過濾機(jī)制,事件或回調(diào)機(jī)制、或任何類型的接口技術(shù)。網(wǎng)絡(luò)堆棧267通過接口可接收或提供與網(wǎng)絡(luò)堆棧267的功能或操作相關(guān)的任何類型和形式的數(shù)據(jù)結(jié)構(gòu),例如對(duì)象。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡(luò)分組相關(guān)的信息和數(shù)據(jù)或者一個(gè)或多個(gè)網(wǎng)絡(luò)分組。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)包括、引用或識(shí)別在網(wǎng)絡(luò)堆棧267的協(xié)議層處理的網(wǎng)絡(luò)分組的一部分,例如傳輸層的網(wǎng)絡(luò)分組。在一些實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)325包括內(nèi)核級(jí)別數(shù)據(jù)結(jié)構(gòu),而在其他實(shí)施例中,數(shù)據(jù)結(jié)構(gòu)325包括用戶模式數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)可以包括獲得的或與在內(nèi)核模式302中操作的網(wǎng)絡(luò)堆棧267的一部分、或者運(yùn)行在內(nèi)核模式302中的網(wǎng)絡(luò)驅(qū)動(dòng)程序或其它軟件相關(guān)的數(shù)據(jù)結(jié)構(gòu)、或者由運(yùn)行或操作在操作系統(tǒng)的內(nèi)核模式的服務(wù)、進(jìn)程、任務(wù)、線程或其它可執(zhí)行指令獲得或收到的任何數(shù)據(jù)結(jié)構(gòu)。
[0202]此外,網(wǎng)絡(luò)堆棧267的一些部分可在內(nèi)核模式302執(zhí)行或操作,例如,數(shù)據(jù)鏈路或網(wǎng)絡(luò)層,而其他部分在用戶模式303執(zhí)行或操作,例如網(wǎng)絡(luò)堆棧267的應(yīng)用層。例如,網(wǎng)絡(luò)堆棧的第一部分310a可以給應(yīng)用提供對(duì)網(wǎng)絡(luò)堆棧267的用戶模式訪問,而網(wǎng)絡(luò)堆棧267的第二部分310a提供對(duì)網(wǎng)絡(luò)的訪問。在一些實(shí)施例中,網(wǎng)絡(luò)堆棧的第一部分310a可包括網(wǎng)絡(luò)堆棧267的一個(gè)或多個(gè)更上層,例如層5-7的任何層。在其它實(shí)施例中,網(wǎng)絡(luò)堆棧267的第二部分310b包括一個(gè)或多個(gè)較低的層,例如層1-4的任何層。網(wǎng)絡(luò)堆棧267的第一部分310a和第二部分310b的每一個(gè)可包括網(wǎng)絡(luò)堆棧267的任何部分,位于任何一個(gè)或多個(gè)網(wǎng)絡(luò)層,處于用戶模式203、內(nèi)核模式202,或其組合,或在網(wǎng)絡(luò)層的任何部分或者到網(wǎng)絡(luò)層的接口點(diǎn),或用戶模式203和內(nèi)核模式202的任何部分或到用戶模式203和內(nèi)核模式202的接口點(diǎn)。
[0203]攔截器350可以包括軟件、硬件、或者軟件和硬件的任何組合。在一個(gè)實(shí)施例中,攔截器350在網(wǎng)絡(luò)堆棧267的任一點(diǎn)攔截或以其他方式接收網(wǎng)絡(luò)通信,并且重定向或者傳輸網(wǎng)絡(luò)通信到由攔截器350或者客戶機(jī)代理120所期望的、管理的或者控制的目的地。例如,攔截器350可以攔截第一網(wǎng)絡(luò)的網(wǎng)絡(luò)堆棧267的網(wǎng)絡(luò)通信并且傳輸該網(wǎng)絡(luò)通信到設(shè)備200,用于在第二網(wǎng)絡(luò)104上傳輸。在一些實(shí)施例中,攔截器350包括驅(qū)動(dòng)器或是驅(qū)動(dòng)器,例如被構(gòu)建和設(shè)計(jì)來與網(wǎng)絡(luò)堆棧267對(duì)接并一同工作的網(wǎng)絡(luò)驅(qū)動(dòng)器。在一些實(shí)施例中,客戶機(jī)代理120和/或攔截器350操作在網(wǎng)絡(luò)堆棧267的一個(gè)或者多個(gè)層,諸如在傳輸層。在一個(gè)實(shí)施例中,攔截器350包括過濾器驅(qū)動(dòng)器、鉤子機(jī)制、或者連接到網(wǎng)絡(luò)堆棧的傳輸層的任一形式和類型的合適網(wǎng)絡(luò)驅(qū)動(dòng)器接口,諸如通過傳輸驅(qū)動(dòng)器接口(TDI)。在一些實(shí)施例中,攔截器350連接到諸如傳輸層的第一協(xié)議層和諸如傳輸協(xié)議層之上的任何層的另一個(gè)協(xié)議層,例如,應(yīng)用協(xié)議層。在一個(gè)實(shí)施例中,攔截器350可以包括遵守網(wǎng)絡(luò)驅(qū)動(dòng)器接口規(guī)范(NDIS)的驅(qū)動(dòng)器,或者NDIS驅(qū)動(dòng)器。在又一個(gè)實(shí)施例中,攔截器350可以包括微型過濾器或者微端口驅(qū)動(dòng)器。在一個(gè)實(shí)施例中,攔截器350或其部分在內(nèi)核模式202中操作。在又一個(gè)實(shí)施例中,攔截器350或其部分在用戶模式203中操作。在一些實(shí)施例中,攔截器350的一部分在內(nèi)核模式202中操作,而攔截器350的另一部分在用戶模式203中操作。在其它實(shí)施例中,客戶機(jī)代理120在用戶模式203操作,但通過攔截器350連接到內(nèi)核模式驅(qū)動(dòng)器、進(jìn)程、服務(wù)、任務(wù)或者操作系統(tǒng)的部分,諸如以獲取內(nèi)核級(jí)數(shù)據(jù)結(jié)構(gòu)225。在其它實(shí)施例中,攔截器350為用戶模式應(yīng)用或者程序,諸如應(yīng)用。
[0204]在一個(gè)實(shí)施例中,攔截器350攔截或接收任何的傳輸層連接請(qǐng)求。在這些實(shí)施例中,攔截器350執(zhí)行傳輸層應(yīng)用編程接口(API)調(diào)用以設(shè)置目的地信息,諸如到期望位置的目的地IP地址和/或端口用于定位。以此方式,攔截器350攔截并重定向傳輸層連接到由攔截器350或客戶機(jī)代理120控制或管理的IP地址和端口。在一個(gè)實(shí)施例中,攔截器350把該連接的目的地信息設(shè)置為客戶機(jī)代理120監(jiān)聽的客戶機(jī)102的本地IP地址和端口。例如,客戶機(jī)代理120可以包括為重定向的傳輸層通信監(jiān)聽本地IP地址和端口的代理服務(wù)。在一些實(shí)施例中,客戶機(jī)代理120隨后將重定向的傳輸層通信傳送到設(shè)備200。[0205]在一些實(shí)施例中,攔截器350攔截域名服務(wù)(DNS )請(qǐng)求。在一個(gè)實(shí)施例中,客戶機(jī)代理120和/或攔截器350解析DNS請(qǐng)求。在又一個(gè)實(shí)施例中,攔截器發(fā)送所攔截的DNS請(qǐng)求到設(shè)備200以進(jìn)行DNS解析。在一個(gè)實(shí)施例中,設(shè)備200解析DNS請(qǐng)求并且將DNS響應(yīng)傳送到客戶機(jī)代理120。在一些實(shí)施例中,設(shè)備200經(jīng)另一個(gè)設(shè)備200’或者DNS服務(wù)器106來解析DNS請(qǐng)求。
[0206]在又一個(gè)實(shí)施例中,客戶機(jī)代理120可以包括兩個(gè)代理120和120’。在一個(gè)實(shí)施例中,第一代理120可以包括在網(wǎng)絡(luò)堆棧267的網(wǎng)絡(luò)層操作的攔截器350。在一些實(shí)施例中,第一代理120攔截網(wǎng)絡(luò)層請(qǐng)求,諸如互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)請(qǐng)求(例如,查驗(yàn)和跟蹤路由)。在其它實(shí)施例中,第二代理120’可以在傳輸層操作并且攔截傳輸層通信。在一些實(shí)施例中,第一代理120在網(wǎng)絡(luò)堆棧210的一層攔截通信并且與第二代理120’對(duì)接或者將所攔截的通信傳送到第二代理120’。
[0207]客戶機(jī)代理120和/或攔截器350可以以對(duì)網(wǎng)絡(luò)堆棧267的任何其它協(xié)議層透明的方式在協(xié)議層操作或與之對(duì)接。例如,在一個(gè)實(shí)施例中,攔截器350可以以對(duì)諸如網(wǎng)絡(luò)層的傳輸層之下的任何協(xié)議層和諸如會(huì)話、表示或應(yīng)用層協(xié)議的傳輸層之上的任何協(xié)議層透明的方式在網(wǎng)絡(luò)堆棧267的傳輸層操作或與之對(duì)接。這允許網(wǎng)絡(luò)堆棧267的其它協(xié)議層如所期望的進(jìn)行操作并無需修改以使用攔截器350。這樣,客戶機(jī)代理120和/或攔截器350可以與傳輸層對(duì)接以安全、優(yōu)化、加速、路由或者負(fù)載平衡經(jīng)由傳輸層承載的任一協(xié)議提供的任一通信,諸如TCP/IP上的任一應(yīng)用層協(xié)議。
[0208]此外,客戶機(jī)代理120和/或攔截器350可以以對(duì)任何應(yīng)用、客戶機(jī)102的用戶、客戶機(jī)102和/或與客戶機(jī)102通信的諸如服務(wù)器或設(shè)備200、206的任何其它計(jì)算裝置100透明的方式在網(wǎng)絡(luò)堆棧267上操作或與之對(duì)接??蛻魴C(jī)代理120和/或攔截器350可以以無需修改應(yīng)用的方式被安裝和/或執(zhí)行在客戶機(jī)102上。在一個(gè)實(shí)施例中,客戶機(jī)代理120或其任何部分被以對(duì)客戶機(jī)102、設(shè)備200、205或服務(wù)器106的任何網(wǎng)絡(luò)配置透明的方式被安裝和/或執(zhí)行。在一些實(shí)施例中,客戶機(jī)代理120或其任何部分被以無需修改客戶機(jī)102、設(shè)備200、205或服務(wù)器106的任何網(wǎng)絡(luò)配置的方式被安裝和/或執(zhí)行。在一個(gè)實(shí)施例中,客戶機(jī)102的用戶或者與客戶機(jī)102通信的計(jì)算裝置未意識(shí)到客戶機(jī)代理120或其任何部分的存在、執(zhí)行或者操作。同樣,在一些實(shí)施例中,相對(duì)于應(yīng)用、客戶機(jī)102的用戶、客戶機(jī)102、諸如服務(wù)器或設(shè)備200、205的另一個(gè)計(jì)算裝置、或者在由攔截器350連接的協(xié)議層之上和/或之下的任何協(xié)議層透明地來安裝、執(zhí)行和/或操作客戶機(jī)代理120和/或攔截器350。
[0209]客戶機(jī)代理120包括流客戶機(jī)306、收集代理304、SSL VPN代理308、網(wǎng)絡(luò)優(yōu)化引擎250和/或加速程序302。在一個(gè)實(shí)施例中,客戶機(jī)代理120包括由佛羅里達(dá)州FortLauderdale的Citrix Systems公司開發(fā)的獨(dú)立計(jì)算架構(gòu)(ICA)客戶機(jī)或其任一部分,并且也被稱為ICA客戶機(jī)。在一些實(shí)施例中,客戶機(jī)代理120包括應(yīng)用流客戶機(jī)306,用于從服務(wù)器106流式傳輸應(yīng)用到客戶機(jī)102。在又一個(gè)實(shí)施例中,客戶機(jī)代理120包括收集代理304,用于執(zhí)行端點(diǎn)檢測(cè)/掃描并且用于為設(shè)備200和/或服務(wù)器106收集端點(diǎn)信息。在一些實(shí)施例中,客戶機(jī)代理120具有一個(gè)或多個(gè)網(wǎng)絡(luò)加速或優(yōu)化程序或代理,例如網(wǎng)絡(luò)優(yōu)化引擎250和加速程序302。在一個(gè)實(shí)施例中,加速程序302加速客戶機(jī)102和服務(wù)器106之間的經(jīng)過設(shè)備205’的通信。在一些實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250提供此處所討論的WAN優(yōu)化技術(shù)。
[0210]流客戶機(jī)306是應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令集,所述應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令集用于接收和執(zhí)行從服務(wù)器106所流式傳輸?shù)膽?yīng)用。服務(wù)器106可以流式傳輸一個(gè)或者多個(gè)應(yīng)用數(shù)據(jù)文件到流客戶機(jī)306,用于播放、執(zhí)行或者以其它方式引起客戶機(jī)102上的應(yīng)用被執(zhí)行。在一些實(shí)施例中,服務(wù)器106發(fā)送一組壓縮或者打包的應(yīng)用數(shù)據(jù)文件到流客戶機(jī)306。在一些實(shí)施例中,多個(gè)應(yīng)用文件被壓縮并存儲(chǔ)在文件服務(wù)器上檔案文件中,例如CAB、ZIP、SIT、TAR、JAR或其它檔案文件。在一個(gè)實(shí)施例中,月艮務(wù)器106解壓縮、解包或者解檔應(yīng)用文件并且將該文件發(fā)送到客戶機(jī)102。在又一個(gè)實(shí)施例中,客戶機(jī)102解壓縮、解包或者解檔應(yīng)用文件。流客戶機(jī)306動(dòng)態(tài)安裝應(yīng)用或其部分,并且執(zhí)行該應(yīng)用。在一個(gè)實(shí)施例中,流客戶機(jī)306可以是可執(zhí)行程序。在一些實(shí)施例中,流客戶機(jī)306可以能夠啟動(dòng)另一個(gè)可執(zhí)行程序。
[0211]收集代理304是用于識(shí)別、獲取和/或收集關(guān)于客戶機(jī)102的信息的應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令集。在一些實(shí)施例中,設(shè)備200發(fā)送收集代理304到客戶機(jī)102或者客戶機(jī)代理120??梢愿鶕?jù)設(shè)備的策略引擎236的一個(gè)或多個(gè)策略來配置收集代理304。在其它實(shí)施例中,收集代理304發(fā)送在客戶機(jī)102上收集的信息到設(shè)備200。在一個(gè)實(shí)施例中,設(shè)備200的策略引擎236使用所收集的信息來確定和提供客戶機(jī)到網(wǎng)絡(luò)104的連接的訪問、驗(yàn)證和授權(quán)控制。
[0212]在一個(gè)實(shí)施例中,收集代理304包括端點(diǎn)檢測(cè)和掃描機(jī)制,其識(shí)別并且確定客戶機(jī)的一個(gè)或者多個(gè)屬性或者特征。例如,收集代理304可以識(shí)別和確定任何一個(gè)或多個(gè)以下的客戶機(jī)側(cè)屬性:1)操作系統(tǒng)和/或操作系統(tǒng)的版本,2)操作系統(tǒng)的服務(wù)包,3)運(yùn)行的服務(wù),4)運(yùn)行的進(jìn)程,和5)文件。收集代理304還可以識(shí)別并確定客戶機(jī)上任何一個(gè)或多個(gè)以下軟件的存在或版本:1)防病毒軟件;2)個(gè)人防火墻軟件;3)防垃圾郵件軟件,和4)互聯(lián)網(wǎng)安全軟件。策略引擎236可以具有基于客戶機(jī)或客戶機(jī)側(cè)屬性的任何一個(gè)或多個(gè)屬性或特性的一個(gè)或多個(gè)策略。
[0213]SSL VPN代理308是應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令集,所述應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或者可執(zhí)行指令集用于建立從第一網(wǎng)絡(luò)104到第二網(wǎng)絡(luò)104’、104”的安全套接字層(SSL)虛擬專用網(wǎng)(VPN)連接,或從客戶機(jī)102到服務(wù)器106的SSL VPN連接。在一個(gè)實(shí)施例中,SSLVPN代理308建立從公共網(wǎng)104到專用網(wǎng)104’或104”的SSL VPN連接。在一些實(shí)施例中,SSL VPN代理308和設(shè)備205聯(lián)合工作以提供SSL VPN連接。在一個(gè)實(shí)施例中,SSL VPN代理308建立與設(shè)備205的第一傳輸層連接。在一些實(shí)施例中,設(shè)備205建立與服務(wù)器106的第二傳輸層連接。在又一個(gè)實(shí)施例中,SSL VPN代理308建立與客戶機(jī)上應(yīng)用的第一傳輸層連接,以及與設(shè)備205的第二傳輸層連接。在其他實(shí)施例中,SSLVPN代理308和WAN優(yōu)化設(shè)備200聯(lián)合工作以提供SSL VPN連通。
[0214]在一些實(shí)施例中,加速程序302是用于執(zhí)行一個(gè)或多個(gè)加速技術(shù)的客戶機(jī)側(cè)加速程序,以加速、增強(qiáng)或者以其他方式改善客戶機(jī)與服務(wù)器106的通信和/或?qū)Ψ?wù)器106的訪問,諸如訪問由服務(wù)器106提供的應(yīng)用。加速程序302的可執(zhí)行指令的邏輯、功能和/或操作可以執(zhí)行一個(gè)或多個(gè)下列加速技術(shù):1)多協(xié)議壓縮,2)傳輸控制協(xié)議池,3)傳輸控制協(xié)議多路復(fù)用,4)傳輸控制協(xié)議緩沖,以及5)通過高速緩存管理器的高速緩存。另外,加速程序302可執(zhí)行由客戶機(jī)102接收和/或發(fā)送的任何通信的加密和/或解密。在一些實(shí)施例中,加速程序302以集成的方式或者格式執(zhí)行一個(gè)或者多個(gè)加速技術(shù)。另外,加速程序302可以對(duì)作為傳輸層協(xié)議的網(wǎng)絡(luò)分組的有效載荷所承載的任一協(xié)議或者多協(xié)議執(zhí)行壓縮。
[0215]在一個(gè)實(shí)施例中,加速程序302被設(shè)計(jì)、構(gòu)建或配置為與設(shè)備205 —起工作以提供LAN側(cè)加速或者提供通過設(shè)備205提供的加速技術(shù)。例如,在由Citrix System公司出品的NetScaler設(shè)備205的一個(gè)實(shí)施例中,加速程序302包括NetScaler客戶機(jī)。在一些實(shí)施例中,加速程序302在例如分支機(jī)構(gòu)中的遠(yuǎn)程裝置中提供獨(dú)立的NetScaler加速技術(shù)。在其他實(shí)施例中,加速程序302和一個(gè)或多個(gè)NetScaler設(shè)備205聯(lián)合工作。在一個(gè)實(shí)施例中,加速程序302提供網(wǎng)絡(luò)流量的LAN側(cè)或基于LAN的加速或優(yōu)化。
[0216]在一些實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250可以被設(shè)計(jì)、構(gòu)建或配置為與WAN優(yōu)化設(shè)備200 一起工作。在其他實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250可以被設(shè)計(jì)、構(gòu)建或配置為用或不用設(shè)備200提供設(shè)備200的WAN優(yōu)化技術(shù)。例如,在由Citrix System公司出品的WANScaler設(shè)備200的一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250包括WANScaler客戶機(jī)。在一些實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250在例如分支機(jī)構(gòu)的遠(yuǎn)程位置中提供獨(dú)立的WANScaler加速技術(shù)。在其他實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250和一個(gè)或多個(gè)WANScaler設(shè)備200聯(lián)合工作。
[0217]在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250包括加速程序302、或加速程序302的功能、操作和邏輯。在一些實(shí)施例中,加速程序302包括網(wǎng)絡(luò)優(yōu)化引擎250或網(wǎng)絡(luò)優(yōu)化引擎250的功能、操作和邏輯。在又一個(gè)實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250作為從加速程序302分開的程序或可執(zhí)行指令集而被提供或安裝。在其他實(shí)施例中,網(wǎng)絡(luò)優(yōu)化引擎250和加速程序302可被包括在同一程序或同一可執(zhí)行指令集中。
[0218]在一些實(shí)施例中,仍參見圖3,第一程序322可以用于自動(dòng)地、靜默地、透明地或者以其它方式安裝和/或執(zhí)行客戶機(jī)代理120或其任何部分。在一個(gè)實(shí)施例中,第一程序322包括插件組件,例如ActiveX控件或Java控件或腳本,其加載到應(yīng)用并由應(yīng)用執(zhí)行。例如,第一程序包括由web瀏覽器應(yīng)用加載和運(yùn)行的ActiveX控件,例如在存儲(chǔ)器空間或應(yīng)用的上下文中。在又一個(gè)實(shí)施例中,第一程序322包括被例如瀏覽器的應(yīng)用載入并執(zhí)行的可執(zhí)行指令集。在一個(gè)實(shí)施例中,第一程序322是被設(shè)計(jì)和構(gòu)造為安裝客戶機(jī)代理120的程序。在一些實(shí)施例中,第一程序322通過網(wǎng)絡(luò)從另一個(gè)計(jì)算裝置獲得、下載、或接收客戶機(jī)代理120。在又一個(gè)實(shí)施例中,第一程序322是安裝程序或即插即用管理器,用于在客戶機(jī)102的操作系統(tǒng)上安裝諸如網(wǎng)絡(luò)驅(qū)動(dòng)和客戶機(jī)代理120或其任何部分的程序。
[0219]在一些實(shí)施例中,客戶機(jī)代理120的每一或任一部分(流客戶機(jī)360、收集代理304、SSL VPN代理308和攔截代理350)可作為單獨(dú)的應(yīng)用、程序、進(jìn)程、服務(wù)、任務(wù)或可執(zhí)行指令集而被安裝、執(zhí)行、配置或操作。在其他實(shí)施例中,客戶機(jī)代理120的每一或任一部分可以一起作為單個(gè)客戶機(jī)代理120而被安裝、執(zhí)行、配置或操作。
[0220]D.用于具有不同優(yōu)先級(jí)分組的單個(gè)連接的QoS的系統(tǒng)和方法
[0221]現(xiàn)參考圖4A和4B,描述了用于為具有多優(yōu)先級(jí)數(shù)據(jù)流的連接提供服務(wù)質(zhì)量(QoS)的本解決方案的實(shí)施例。本解決方案的實(shí)施例通過對(duì)穿過連接的協(xié)議數(shù)據(jù)單元(PDU)或字節(jié)流的窗口執(zhí)行過濾或平均,來提供基于連接的優(yōu)先級(jí)?;谶^濾或平均為連接設(shè)置優(yōu)先級(jí)。盡管底層PDU可能具有與為連接設(shè)置的一個(gè)優(yōu)先級(jí)不同的優(yōu)先級(jí),可將該連接的優(yōu)先級(jí)設(shè)置為這些PDU的平均優(yōu)先級(jí)。該系統(tǒng)向穿過中間裝置的每個(gè)連接提供基于連接的優(yōu)先級(jí)。隨著經(jīng)由連接傳輸?shù)腜DU或字節(jié)的優(yōu)先級(jí)發(fā)生變化,系統(tǒng)可動(dòng)態(tài)地改變?cè)撨B接的優(yōu)先級(jí)。系統(tǒng)可緩慢或迅速或者以任何速率控制方式來改變連接的優(yōu)先級(jí)。系統(tǒng)可基于其他因素(例如,鏈接利用率)來動(dòng)態(tài)或者自適應(yīng)地改變連接的優(yōu)先級(jí)。
[0222]現(xiàn)參考圖4A,描述了用于為連接提供QoS的系統(tǒng)的實(shí)施例,該系統(tǒng)可以在連接內(nèi)承載不同優(yōu)先級(jí)的數(shù)據(jù)流。簡(jiǎn)要概括,諸如中間設(shè)備(例如設(shè)備200)或者客戶機(jī)上的代理120的中間裝置,可接收或攔截經(jīng)由多個(gè)連接410A-410N(總的稱作連接410)的數(shù)據(jù)流。連接可以是任何類型和形式的傳輸層連接,如TCP連接或UDP連接。連接可穿過一個(gè)或多個(gè)網(wǎng)絡(luò)104。連接可包括多個(gè)連接:中間裝置和一個(gè)端點(diǎn)之間的第一連接,以及中間裝置和另一個(gè)端點(diǎn)之間的第二連接。傳輸層連接可承載傳輸層之上的一個(gè)或多個(gè)協(xié)議,如任何應(yīng)用層和/或會(huì)話協(xié)議。例如,傳輸層連接可承載遠(yuǎn)程顯示協(xié)議,如ICA或RDP。每個(gè)協(xié)議層可包括數(shù)據(jù)和/或字段或者有時(shí)被稱作協(xié)議數(shù)據(jù)單元(PDU)的協(xié)議結(jié)構(gòu)。在一些實(shí)施例中,發(fā)送者、接收者和/或中間裝置可通過傳輸層連接來加密這些PDU或者對(duì)該P(yáng)DU采用隧道技術(shù)。
[0223]由傳輸連接410承載的任何協(xié)議可以為協(xié)議中的PDU或數(shù)據(jù)流標(biāo)識(shí)優(yōu)先級(jí)。在一些實(shí)施例中,協(xié)議數(shù)據(jù)的發(fā)送者可在rou的字段中標(biāo)記、設(shè)置或插入值來標(biāo)識(shí)優(yōu)先級(jí)。rou的協(xié)議可使用通道在同一連接上傳輸具有不同優(yōu)先級(jí)的數(shù)據(jù)。每個(gè)通道具有不同的預(yù)定優(yōu)先級(jí)或者可以其他方式被設(shè)置或分配不同的優(yōu)先級(jí)。協(xié)議的結(jié)構(gòu)(例如頭部或字段),可用于標(biāo)識(shí)通道和/或優(yōu)先級(jí)。在一些實(shí)施例中,在相同的連接上,同一協(xié)議的每個(gè)PDU具有與同一協(xié)議的另一個(gè)PDU相同或不同的優(yōu)先級(jí)。如此,在一些實(shí)施例中,在相同連接上傳輸?shù)腜DU流具有變化的優(yōu)先級(jí),或者具有隨時(shí)間變化的優(yōu)先級(jí)。每個(gè)連接410A-4ION可承載具有相同或不同優(yōu)先級(jí)的I3DU的分組。例如,單個(gè)連接410N可承載多通道協(xié)議,如ICA,其中每個(gè)通道承載具有不同于另一通道的優(yōu)先級(jí)的數(shù)據(jù)。
[0224]中間裝置包括具有QoS引擎236的網(wǎng)絡(luò)優(yōu)化引擎250。QoS引擎的過濾器420基于過濾器窗口 422將過濾器420A-420N應(yīng)用于經(jīng)由每個(gè)連接410A-410N接收的數(shù)據(jù)流的優(yōu)先級(jí)。QoS引擎基于過濾為每個(gè)連接設(shè)置連接優(yōu)先級(jí)430A-430N,其中過濾可產(chǎn)生窗口中優(yōu)先級(jí)的平均值。在設(shè)置連接優(yōu)先級(jí)時(shí),QoS引擎可在連接的網(wǎng)絡(luò)流量的任何層處設(shè)置任何字段或協(xié)議結(jié)構(gòu)(例如經(jīng)由分組頭部中任何ToC/Diff位),以標(biāo)識(shí)設(shè)置的優(yōu)先級(jí)。QoS引擎可基于已過濾的優(yōu)先級(jí)的變化自適應(yīng)地改變連接的優(yōu)先級(jí),并且也可以基于鏈接利用率424自適應(yīng)地改變連接的優(yōu)先級(jí)。QoS可將任何速率限制425控制應(yīng)用于任何連接的優(yōu)先級(jí)的變化速率。
[0225]在進(jìn)一步的細(xì)節(jié)中,中間裝置可包括本文描述的設(shè)備200、205’的任何實(shí)施例。在一些實(shí)施例中,中間裝置是WAN優(yōu)化裝置。在一些實(shí)施例中,中間裝置可包括本文描述的客戶機(jī)代理120的任何實(shí)施例。在一些實(shí)施例中,該代理可以在發(fā)送者上執(zhí)行。在一些實(shí)施例中,該代理可以在接收者上執(zhí)行。在一些實(shí)施例中,中間裝置可包括本文描述的網(wǎng)絡(luò)優(yōu)化250的任何實(shí)施例。在一些實(shí)施例中,中間裝置可代理傳輸層連接。在一些實(shí)施例中,中間裝置可終止來自一個(gè)端點(diǎn)(如發(fā)送者)的傳輸層連接,并且建立到接收者的第二層連接。在這些實(shí)施例中,中間裝置可將從發(fā)送者到接收者的傳輸層連接分解為多個(gè)傳輸層連接。中間裝置可對(duì)發(fā)送者和/或接收者(如客戶機(jī)和服務(wù)器)透明地分解這些連接。
[0226]中間裝置可建立、代理或者以其他方式處理多個(gè)傳輸層連接410A-410N。在任何一個(gè)連接內(nèi),數(shù)據(jù)流可包括不同優(yōu)先級(jí)的數(shù)據(jù)或rou。在一些實(shí)施例中,穿過連接的一個(gè)或多個(gè)分組,或者其中的任何數(shù)據(jù)或rou,可具有或者被設(shè)置為優(yōu)先級(jí)A,而穿過同一連接的一個(gè)或多個(gè)其他分組,或者其中的任何數(shù)據(jù)或rou,可具有或者被設(shè)置為優(yōu)先級(jí)B,依此類推。在一些實(shí)施例中,同一連接內(nèi)經(jīng)由分組承載的協(xié)議數(shù)據(jù)單元可能具有不同的優(yōu)先級(jí)。在一些實(shí)施例中,連接內(nèi)的第一字節(jié)流或字節(jié)組可具有一個(gè)優(yōu)先級(jí),而同一連接內(nèi)的另一個(gè)或者隨后的字節(jié)流或字節(jié)組具有不同的優(yōu)先級(jí)。在一些實(shí)施例中。由連接承載的協(xié)議可包括多個(gè)虛擬流或虛通道。在一些實(shí)施例中,該協(xié)議是ica。協(xié)議的每個(gè)通道可被分配或使用一個(gè)或多個(gè)優(yōu)先級(jí)。連接內(nèi)的每個(gè)通道可具有不同于另一個(gè)通道的優(yōu)先級(jí)。可經(jīng)由分組的頭部?jī)?nèi)的任何標(biāo)簽、標(biāo)記、字段或值或者分組的字段來設(shè)置或標(biāo)識(shí)任何通道、PDU或者字節(jié)流/組的優(yōu)先級(jí)。在一些實(shí)施例中,可在發(fā)送者和接收者之間協(xié)商優(yōu)先級(jí)。在一些實(shí)施例中,可在發(fā)送者和中間裝置和/或接收者和中間裝置之間協(xié)商優(yōu)先級(jí)。
[0227]用于任何通道、PDU或字節(jié)流/組的優(yōu)先級(jí)范圍可包括任何范圍。在一些實(shí)施例中,優(yōu)先級(jí)可以是基于數(shù)值的,例如范圍O-XU-N等。在一些實(shí)施例中,優(yōu)先級(jí)可以是基于字符串的,例如低、中或高??刹捎靡粚?duì)或更多優(yōu)先級(jí)別來粗略的劃分優(yōu)先級(jí),或者可采用多個(gè)優(yōu)先級(jí)別來粒度劃分優(yōu)先級(jí)。優(yōu)先級(jí)可與通道的類型或名稱相對(duì)應(yīng)。在一些實(shí)施例中,可基于通道的類型或名稱來預(yù)先確定優(yōu)先級(jí)。
[0228]經(jīng)由通道、PDU或者字節(jié),可在單個(gè)傳輸層連接內(nèi)在時(shí)間和/或空間上多路復(fù)用多個(gè)優(yōu)先級(jí)數(shù)據(jù)流。在一些實(shí)施例中,任何通道、PDU或字節(jié)的優(yōu)先級(jí)隨著時(shí)間以任何程度或者粒度而改變。在一些實(shí)施例中,任何通道、PDU或字節(jié)的優(yōu)先級(jí)可在一段時(shí)間內(nèi)保持不變。在一些實(shí)施例中,任何通道、PDU或字節(jié)的優(yōu)先級(jí)可改變但在一段時(shí)間內(nèi)保持一致。在一些實(shí)施例中,優(yōu)先級(jí)可在每個(gè)PDU或者分組的有效載荷之后改變。在一些實(shí)施例中,優(yōu)先級(jí)可在一系列rou、分組的有效載荷或分組之后改變。在一些實(shí)施例中,優(yōu)先級(jí)可能并不在每個(gè)PDU或分組的有效載荷之后改變。在一些實(shí)施例中,優(yōu)先級(jí)可能并不在一系列rou、分組的有效載荷或分組后改變。
[0229]中間裝置的優(yōu)化引擎250可對(duì)連接410A-410N的網(wǎng)絡(luò)流量執(zhí)行本文描述的任何優(yōu)化。在一些實(shí)施例中,優(yōu)化引擎包括QoS引擎236。在一些實(shí)施例中,QoS引擎包括結(jié)合圖2A描述的任何實(shí)施例。QoS引擎可包括在中間裝置上執(zhí)行本文描述的用于基于任何過濾和連接來確定優(yōu)先級(jí)的可執(zhí)行指令。QoS引擎可過濾每個(gè)連接內(nèi)數(shù)據(jù)流的不同優(yōu)先級(jí),以便為該連接確定優(yōu)先級(jí)430A-430N。中間裝置可存儲(chǔ)或緩沖數(shù)據(jù)流,并且接著根據(jù)連接的優(yōu)先級(jí)430A-430N傳輸該緩沖的數(shù)據(jù)流。QoS引擎可使用限定的空間和/或時(shí)間窗口,其中通過該窗口來過濾優(yōu)先級(jí)。由于每個(gè)連接內(nèi)的優(yōu)先級(jí)隨著時(shí)間和空間變化,QoS可調(diào)整或改變?yōu)槊總€(gè)連接建立的優(yōu)先級(jí)430A-430N。
[0230]QoS引擎可為每個(gè)分組、PDU或字節(jié)組識(shí)別、提取或確定優(yōu)先級(jí)。QoS可以在存儲(chǔ)裝置或裝置的存儲(chǔ)元件(如緩沖區(qū))中存儲(chǔ)該優(yōu)先級(jí)。QoS可存儲(chǔ)由中間裝置接收的關(guān)于任何分組、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)當(dāng)前在發(fā)送者和接收者之間傳輸?shù)娜魏畏纸M、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)等待被中間裝置傳輸?shù)娜魏畏纸M、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)在當(dāng)前窗口內(nèi)的任何分組、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)在先前窗口內(nèi)的任何分組、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)多個(gè)窗口的任何分組、PDU或字節(jié)組的優(yōu)先級(jí)。QoS可存儲(chǔ)預(yù)定時(shí)間段內(nèi)的優(yōu)先級(jí)。QoS可存儲(chǔ)預(yù)定數(shù)量的分組、PDU或字節(jié)的優(yōu)先級(jí)。Qos引擎可將優(yōu)先級(jí)存儲(chǔ)為rou、分組或字節(jié)組的狀態(tài)。在一些實(shí)施例中,該系統(tǒng)并不存儲(chǔ)rou、分組或字節(jié)組,而是僅存儲(chǔ)它們的優(yōu)先級(jí)。在一些實(shí)施例中,例如在具有8個(gè)不同優(yōu)先級(jí)的系統(tǒng)中,每個(gè)PDU可使用3位狀態(tài)。
[0231]QoS引擎可包括任何類型和形式的過濾器420。過濾器可基于通道、PDU或者字節(jié)。過濾器可包括對(duì)優(yōu)先級(jí)執(zhí)行數(shù)學(xué)或統(tǒng)計(jì)操作的邏輯、操作或者功能,該優(yōu)先級(jí)例如是由中間裝置標(biāo)識(shí)和存儲(chǔ)的優(yōu)先級(jí)。過濾器可為連接計(jì)算多個(gè)PDU的優(yōu)先級(jí)值的平均值。過濾器可為連接計(jì)算字節(jié)流的優(yōu)先級(jí)值的平均值。過濾器可跨越穿過連接的多個(gè)通道計(jì)算優(yōu)先級(jí)值的平均值。過濾器可計(jì)算窗口 422內(nèi)多個(gè)rou、通道或字節(jié)的優(yōu)先級(jí)值的平均值。過濾器可計(jì)算優(yōu)先級(jí)值的移動(dòng)均值。過濾器可計(jì)算優(yōu)先級(jí)值的加權(quán)平均值。在一些實(shí)施例中,權(quán)重可基于具有分配的優(yōu)先級(jí)的字節(jié)或PDU的數(shù)量。在一些實(shí)施例中,權(quán)重可基于窗口內(nèi)承載分配的優(yōu)先級(jí)的分組的數(shù)量。在一些實(shí)施例中,權(quán)重可基于穿過連接的特定通道(例如在窗口內(nèi))的PDU數(shù)量。
[0232]過濾器可包括任何類型和形式的數(shù)字過濾器。過濾器包括任何類型和形式的模擬過濾器。在一些實(shí)施例中,過濾器包括有限脈沖響應(yīng)(FIR)過濾器。在一些實(shí)施例中,過濾器包括矩形窗過濾器。在一些實(shí)施例中,過濾器包括無限脈沖響應(yīng)(IIR)過濾器。在一些實(shí)施例中,過濾器包括被設(shè)計(jì)和構(gòu)造為對(duì)一個(gè)或多個(gè)輸入(例如多個(gè)優(yōu)先級(jí))執(zhí)行平均功能或過濾器,且提供平均值作為輸出的可執(zhí)行指令。在一些實(shí)施例中,過濾器可包括硬件裝置或電子電路,其根據(jù)設(shè)計(jì)和/或構(gòu)造的該過濾器所執(zhí)行的過濾或平均的類型,對(duì)一個(gè)或多個(gè)輸入(例如多個(gè)優(yōu)先級(jí))執(zhí)行平均功能或過濾器,并且提供平均值作為輸出。
[0233]窗口 422,有時(shí)被稱作平均窗口或均值窗口,可包括基于任何測(cè)量單位的窗口大小,如字節(jié)大小或者時(shí)間。窗口的大小可基于時(shí)間,例如預(yù)定時(shí)間段內(nèi)的優(yōu)先級(jí)或者頻率。窗口大小可基于空間,例如接收或緩沖的PDU或字節(jié)的數(shù)量。窗口大小可基于時(shí)間和空間,例如在一段時(shí)間內(nèi)接收的PDU或字節(jié)的數(shù)量。窗口的大小可基于優(yōu)先級(jí)的變化或者基于優(yōu)先級(jí)的變化速率。窗口可以是滾動(dòng)窗口,其可以與先前或隨后的窗口重疊或者不重疊。窗口可基于采樣或采樣計(jì)劃,例如對(duì)窗口內(nèi)多個(gè)優(yōu)先級(jí)進(jìn)行采樣。采樣可基于時(shí)間和/或基于空間(例如,預(yù)定時(shí)間段內(nèi)每第η個(gè)優(yōu)先級(jí))。
[0234]每個(gè)連接可具有相同窗口或不同窗口。QoS引擎可基于每個(gè)連接的鏈接利用率為該連接分配窗口。QoS引擎可基于中間裝置的鏈接利用率為每個(gè)連接分配窗口。QoS引擎可基于每個(gè)連接的歷史操作和/或性能統(tǒng)計(jì)為該連接分配窗口。QoS引擎可基于鏈接利用率或歷史統(tǒng)計(jì)改變每個(gè)連接的窗口。QoS引擎可以預(yù)定的頻率改變每個(gè)連接的窗口。
[0235]QoS引擎可基于將過濾器應(yīng)用于連接內(nèi)優(yōu)先級(jí)的窗口的結(jié)果來確定或建立連接優(yōu)先級(jí)或者基于連接的優(yōu)先級(jí)。QoS引擎可建立關(guān)于每個(gè)新的或者隨后的窗口的連接優(yōu)先級(jí)。QoS可基于預(yù)定頻率確定或建立連接優(yōu)先級(jí),該預(yù)定頻率可以是基于時(shí)間或窗口的。QoS可為連接確定或建立單個(gè)優(yōu)先級(jí),用于在連接內(nèi)傳輸分組、PDU或字節(jié)。該單個(gè)優(yōu)先級(jí)可與該連接內(nèi)底層分組、PDU或字節(jié)的優(yōu)先級(jí)相同或者不同。QoS可為將由中間裝置經(jīng)由連接傳輸?shù)浇邮照叩姆纸M、PDU或字節(jié)確定或建立連接優(yōu)先級(jí)。QoS可為連接確定或建立優(yōu)先級(jí),用于傳輸其中已確定了優(yōu)先級(jí)的窗口的分組、PDU或字節(jié)。
[0236]QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在將由中間裝置傳輸?shù)木W(wǎng)絡(luò)分組中設(shè)置任何QoS字段或位。QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在網(wǎng)絡(luò)堆棧任何層的任何頭部中設(shè)置任何QoS字段或位。在一些實(shí)施例中,QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在網(wǎng)絡(luò)或IP層中設(shè)置任何優(yōu)先級(jí)頭部或字段。在一些實(shí)施例中,QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在傳輸層中設(shè)置任何優(yōu)先級(jí)頭部或字段。在一些實(shí)施例中,QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在從中確定了平均優(yōu)先級(jí)的rou、數(shù)據(jù)或通道的層下方的任何層中設(shè)置任何優(yōu)先級(jí)頭部或字段。在一些實(shí)施例中,Qos引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在從中確定了平均優(yōu)先級(jí)的rou、數(shù)據(jù)或通道的層上方的任何層中設(shè)置任何優(yōu)先級(jí)頭部或字段。QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在由分組承載的任何協(xié)議中設(shè)置任何QoS字段或位。QoS引擎或網(wǎng)絡(luò)優(yōu)化引擎250可在由分組承載的任何有效載荷中設(shè)置任何QoS字段或位。在一些實(shí)施例中,QoS引擎可設(shè)置分組的任何DIFFserv(差分服務(wù)模型)位。在一些實(shí)施例中,QoS引擎可設(shè)置分組的任何服務(wù)類型(ToS)位。
[0237]QoS引擎可提供自適應(yīng)或動(dòng)態(tài)的基于連接的優(yōu)先級(jí),除了每個(gè)連接內(nèi)H)U、通道或字節(jié)的優(yōu)先級(jí),該優(yōu)先級(jí)還考慮其他因素。QoS引擎可監(jiān)控和測(cè)量由中間裝置到一個(gè)或多個(gè)接收者的鏈接利用率。QoS引擎可監(jiān)控和測(cè)量每個(gè)連接的鏈接利用率。QoS引擎可監(jiān)控和測(cè)量中間裝置和/或連接的帶寬利用率。例如,QoS引擎可確定經(jīng)由中間裝置正被發(fā)送的字節(jié)數(shù)量。QoS引擎可確定經(jīng)由中間裝置正被發(fā)送的字節(jié)或PDU的傳輸速率。QoS引擎可確定經(jīng)由連接正被發(fā)送的字節(jié)數(shù)量。Qos引擎可卻確定經(jīng)由連接正被發(fā)送的rou的傳輸速率。QoS引擎可監(jiān)控和測(cè)量中間裝置和/或連接的吞吐量利用率。
[0238]基于利用率,QoS引擎可調(diào)整已分配或者將要分配給任何連接的優(yōu)先級(jí)。QoS引擎可與過濾器相接、與其集成或與其通信,或者對(duì)該過濾器進(jìn)行響應(yīng)。在一些實(shí)施例中,過濾器對(duì)該監(jiān)控和鏈接利用率的確定進(jìn)行響應(yīng)。在一些實(shí)施例中,QoS引擎可將基于利用率的權(quán)重或其他因素作為輸入提供給過濾器。在一些實(shí)施例中,QoS引擎可提高由過濾器確定的連接優(yōu)先級(jí)的權(quán)重。在一些實(shí)施例中,QoS引擎可降低由過濾器確定的連接優(yōu)先級(jí)的權(quán)重。在一些實(shí)施例中,QoS引擎獨(dú)立于過濾器基于利用率來調(diào)整連接的優(yōu)先級(jí)。例如,QoS引擎可為連接分配來自過濾器的優(yōu)先級(jí),并且隨著利用率的變化,QoS引擎相應(yīng)地改變?cè)撨B接的優(yōu)先級(jí)。盡管QoS引擎可基于利用率改變同一連接的已分配優(yōu)先級(jí),過濾器還可基于連接內(nèi)rou、通道或字節(jié)流的優(yōu)先級(jí),不斷地改變將要分配或者已被分配給同一連接的優(yōu)先級(jí)。
[0239]QoS引擎可提供對(duì)基于連接的優(yōu)先級(jí)的變化的速率控制425。QoS引擎可控制優(yōu)先級(jí)的變化速率。QoS引擎可控制連接優(yōu)先級(jí)的變化有多快或多慢。QoS引擎可允許僅在預(yù)定量?jī)?nèi)改變連接的優(yōu)先級(jí),例如,一次改變一個(gè)百分比。QoS引擎可允許在預(yù)定數(shù)量的窗口之后改變連接的優(yōu)先級(jí)。QoS引擎可允許在預(yù)定數(shù)量的字節(jié)或PDU之后改變連接的優(yōu)先級(jí)。QoS引擎可允許在預(yù)定時(shí)間段之后改變連接的優(yōu)先級(jí)。QoS引擎可允許基于利用率或其變化來改變連接的優(yōu)先級(jí)。例如,引擎QoS引擎可允許當(dāng)利用率在預(yù)定閾值內(nèi)時(shí)改變連接的優(yōu)先級(jí)。
[0240]QoS引擎可響應(yīng)于變化速率動(dòng)態(tài)地調(diào)整該預(yù)定量。QoS引擎可響應(yīng)于分配給連接的優(yōu)先級(jí)值動(dòng)態(tài)地調(diào)整該預(yù)定量。例如,QoS引擎可允許較慢或較快地改變較低的優(yōu)先級(jí)。在一些實(shí)施例中,QoS引擎可允許較慢或較快地改變較高的優(yōu)先級(jí)。例如,QoS引擎可在遇到低優(yōu)先級(jí)的PDU時(shí)快速降低連接優(yōu)先級(jí),并且接著基于時(shí)間以及具有特定優(yōu)先級(jí)的rou數(shù)量緩慢地提高連接優(yōu)先級(jí)。QoS引擎可僅允許連接優(yōu)先級(jí)以優(yōu)先級(jí)的預(yù)定級(jí)別、數(shù)量或粒度進(jìn)行變化。QoS引擎可以以優(yōu)先級(jí)的預(yù)定級(jí)別、數(shù)量或粒度來調(diào)節(jié)優(yōu)先級(jí)的變化。QoS引擎可以僅允許連接優(yōu)先級(jí)隨時(shí)間以預(yù)定速率進(jìn)行變化。QoS引擎可以以預(yù)定速率來調(diào)節(jié)優(yōu)先級(jí)的變化速率。[0241]中間裝置可以例如由QoS或網(wǎng)絡(luò)優(yōu)化引擎接收第一組分組并在收到它們時(shí)緩沖該第一組分組,對(duì)這樣的分組執(zhí)行優(yōu)先級(jí)過濾、為連接分配連接優(yōu)先級(jí),以及在為連接應(yīng)用或生效基于那些分組確定的連接優(yōu)先級(jí)的同時(shí),經(jīng)由該連接傳輸那些緩沖的分組。中間裝置,例如經(jīng)由QoS或網(wǎng)絡(luò)優(yōu)化引擎,可接收下一組或隨后一組分組并在接收時(shí)緩沖它們、對(duì)這樣的分組執(zhí)行優(yōu)先級(jí)過濾、為連接分配連接優(yōu)先級(jí),并且在為該連接應(yīng)用或生效基于那些分組確定的連接優(yōu)先級(jí)的同時(shí),經(jīng)由該連接傳輸下一組或隨后一組分組的那些緩沖的分組。如此,在一些實(shí)施例中,由于連接被分配連接優(yōu)先級(jí),中間裝置可通過該連接傳輸作為連接優(yōu)先級(jí)的基礎(chǔ)的那些分組。例如,中間裝置可為窗口分配連接優(yōu)先級(jí),并且在向連接分配關(guān)于該窗口的連接優(yōu)先級(jí)的同時(shí)傳輸該窗口中的那些分組。
[0242]QoS引擎可基于分配給每個(gè)連接的優(yōu)先級(jí)從中間裝置傳輸分組。例如,QoS引擎可首先傳輸連接優(yōu)先級(jí)高于第二連接的第一連接的一個(gè)或多個(gè)分組。QoS引擎可使用任何類型和形式的確定優(yōu)先級(jí)方法,以基于分配給每個(gè)連接的優(yōu)先級(jí)從中間裝置傳輸分組。在一些實(shí)施例中,QoS引擎在將被傳輸?shù)姆纸M或rou中設(shè)置優(yōu)先級(jí)。在一些實(shí)施例中,中間裝置將分組傳輸?shù)絈oS裝置,以使用基于連接的優(yōu)先級(jí)為該連接執(zhí)行QoS。
[0243]現(xiàn)參考圖4B,描述用于為承載多個(gè)優(yōu)先級(jí)數(shù)據(jù)流的連接確定基于連接的優(yōu)先級(jí)的方法的實(shí)施例。簡(jiǎn)要概括,在步驟450,中間裝置為每個(gè)連接識(shí)別在該連接內(nèi)的虛通道、接收的PDU或字節(jié)的優(yōu)先級(jí)。在步驟455,中間裝置將過濾器應(yīng)用于H)U/字節(jié)的計(jì)數(shù)/采樣。在步驟460,基于過濾,中間裝置向連接分配優(yōu)先級(jí)。因此,盡管連接內(nèi)的PDU或字節(jié)具有不同的優(yōu)先級(jí),但該連接基于對(duì)這些不同優(yōu)先級(jí)進(jìn)行過濾具有單個(gè)優(yōu)先級(jí)。中間裝置可連續(xù)識(shí)別和過濾rou/字節(jié)優(yōu)先級(jí),從而為連接分配優(yōu)先級(jí)。中間裝置可基于鏈接利用率和/或速率控制來調(diào)整連接的優(yōu)先級(jí)。在步驟465,中間裝置基于分配給連接的優(yōu)先級(jí)傳輸該連接的rou/字節(jié)。
[0244]在步驟450,中間裝置識(shí)別由中間裝置接收的或者穿過該中間裝置的連接內(nèi)的優(yōu)先級(jí)。中間裝置可為連接接收和緩沖將要為其標(biāo)識(shí)優(yōu)先級(jí)的分組。中間裝置可為連接接收和緩沖將要為其標(biāo)識(shí)優(yōu)先級(jí)的rou、數(shù)據(jù)或者傳輸層分組的有效載荷的字節(jié)。中間裝置可為每個(gè)單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。多個(gè)協(xié)議數(shù)據(jù)單元中的每個(gè)協(xié)議數(shù)據(jù)單元可標(biāo)識(shí)多個(gè)分組中另一個(gè)協(xié)議數(shù)據(jù)單元的相同或不同優(yōu)先級(jí)。在一些實(shí)施例中,中間裝置可為每個(gè)單個(gè)傳輸層連接接收承載遠(yuǎn)程顯示協(xié)議(如ICA或RDP)的多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組。每個(gè)協(xié)議數(shù)據(jù)單元可標(biāo)識(shí)虛通道或者與其相對(duì)應(yīng),其中該虛通道可具有優(yōu)先級(jí)。
[0245]中間裝置可從經(jīng)由連接承載的網(wǎng)絡(luò)堆棧的任何層處的任何協(xié)議的任何頭部或字段,識(shí)別虛通道、PDU或者字節(jié)組的優(yōu)先級(jí)。中間裝置可從承載虛通道、PDU或字節(jié)組的協(xié)議的任何頭部或字段,識(shí)別該虛通道、PDU或字節(jié)組的優(yōu)先級(jí)。中間裝置可從連接的傳輸層之上的協(xié)議的任何頭部或字段,識(shí)別虛通道、PDU或字節(jié)組的優(yōu)先級(jí)。中間裝置可從由連接的傳輸層分組承載的有效載荷中識(shí)別虛通道、PDU或字節(jié)組的優(yōu)先級(jí)。
[0246]中間裝置可根據(jù)從rou識(shí)別的每個(gè)優(yōu)先級(jí)實(shí)例來標(biāo)識(shí)優(yōu)先級(jí)。中間裝置可從數(shù)據(jù)或字節(jié)流內(nèi)識(shí)別的每個(gè)優(yōu)先級(jí)實(shí)例來標(biāo)識(shí)優(yōu)先級(jí)。中間裝置可為每個(gè)連接在預(yù)定窗口內(nèi)標(biāo)識(shí)優(yōu)先級(jí)。中間裝置可基于虛通道、PDU或字節(jié)組來采樣優(yōu)先級(jí)。中間裝置可向中間裝置的存儲(chǔ)器或存儲(chǔ)元件存儲(chǔ)優(yōu)先級(jí)。中間裝置可存儲(chǔ)來自窗口的優(yōu)先級(jí)組。中間裝置可使用數(shù)據(jù)結(jié)構(gòu)、數(shù)組或?qū)ο髮?biāo)識(shí)的優(yōu)先級(jí)保存在存儲(chǔ)器中。中間裝置可具有按逐個(gè)連接的形式來存儲(chǔ)或保存標(biāo)識(shí)的優(yōu)先級(jí)的數(shù)據(jù)結(jié)構(gòu)、數(shù)組或?qū)ο蟆?br>
[0247]在步驟455,中間裝置為連接將過濾器應(yīng)用于一組優(yōu)先級(jí)。中間裝置的過濾器可基于有限脈沖響應(yīng)(FIR)過濾來確定平均優(yōu)先級(jí)。中間裝置的過濾器可基于無限脈沖響應(yīng)(IIR)過濾來確定平均優(yōu)先級(jí)。中間裝置的過濾器可依據(jù)預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元來指定、配置或標(biāo)識(shí)用于過濾的預(yù)定窗口或者將用于過濾的預(yù)定窗口指定、配置或標(biāo)識(shí)為預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元。中間裝置可為由該中間裝置接收的多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí)。中間裝置的過濾器可依據(jù)預(yù)定時(shí)間和/或空間條件來指定、配置或標(biāo)識(shí)用于過濾的預(yù)定窗口,或者將用于過濾的預(yù)定窗口指定、配置或標(biāo)識(shí)為預(yù)定的時(shí)間和/或空間條件。
[0248]中間裝置將過濾器應(yīng)用于穿過該中間裝置或者由該中間裝置管理的每個(gè)連接的一組優(yōu)先級(jí)。中間裝置可應(yīng)用過濾器以便基于穿過連接或由該連接承載的數(shù)據(jù)的不同優(yōu)先級(jí)來生成、計(jì)算或提供該連接的優(yōu)先級(jí)值。中間裝置可將過濾器應(yīng)用到一個(gè)或多個(gè)優(yōu)先級(jí)窗口。中間裝置可應(yīng)用過濾器以便確定對(duì)一組優(yōu)先級(jí)(如優(yōu)先級(jí)窗口)的平均類型。中間裝置可應(yīng)用該過濾器以對(duì)一組優(yōu)先級(jí)(如優(yōu)先級(jí)窗口)作加權(quán)平均。在將過濾器應(yīng)用于一組優(yōu)先級(jí)時(shí),中間裝置可將其他因素看作對(duì)該過濾器的輸入,例如鏈接利用率和速率控制策略。中間裝置可應(yīng)用過濾器來確定對(duì)協(xié)議或者連接的傳輸層之上的協(xié)議層中承載的優(yōu)先級(jí)的平均類型。
[0249]在步驟460,中間裝置可基于過濾來向連接分配優(yōu)先級(jí)。中間裝置可將來自過濾器的平均優(yōu)先級(jí)分配給相應(yīng)的傳輸層連接作為連接優(yōu)先級(jí)。中間裝置可基于將過濾應(yīng)用于經(jīng)由連接接收的優(yōu)先級(jí)的第一窗口來向該連接分配初始優(yōu)先級(jí)。中間裝置可基于將過濾應(yīng)用于優(yōu)先級(jí)的隨后窗口來重新分配、調(diào)整或以其他方式改變連接優(yōu)先級(jí)。中間裝置可基于中間裝置的鏈接利用率為任何一個(gè)或多個(gè)連接調(diào)整優(yōu)先級(jí)。中間裝置可基于任何一個(gè)或多個(gè)連接的鏈接利用率為該連接調(diào)整優(yōu)先級(jí)。中間裝置可連續(xù)地識(shí)別連接內(nèi)的優(yōu)先級(jí)、將過濾應(yīng)用于優(yōu)先級(jí)并且調(diào)整連接的優(yōu)先級(jí)。中間裝置可以控制調(diào)整連接優(yōu)先級(jí)的速率。在一些實(shí)施例中,盡管過濾優(yōu)先級(jí)可能產(chǎn)生更高的速率變化,但中間裝置可將所產(chǎn)生的優(yōu)先級(jí)調(diào)節(jié)或調(diào)整到較低的優(yōu)先級(jí)。在一些實(shí)施例中,盡管過濾優(yōu)先級(jí)可產(chǎn)生較低的速率變化,但中間裝置可將產(chǎn)生的優(yōu)先級(jí)增加或調(diào)整到較高的優(yōu)先級(jí)。在一些實(shí)施例中,中間裝置可通過設(shè)置將被傳輸?shù)姆纸M或rou的任何QoS位或字段,例如ToS或Diffserv位,來為連接設(shè)置優(yōu)先級(jí)。如此,在一些實(shí)施例中,中間裝置在多個(gè)分組(這些分組的每一個(gè)可與過濾的窗口相對(duì)應(yīng))中設(shè)置差分服務(wù)代碼點(diǎn)(DSCP)字段,以便與分配給傳輸層連接的連接優(yōu)先級(jí)相對(duì)應(yīng)。中間裝置可傳輸具有經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP層)或傳輸層中的一個(gè)標(biāo)識(shí)的連接優(yōu)先級(jí)的一個(gè)或多個(gè)數(shù)據(jù)分組,并且該一個(gè)或多個(gè)數(shù)據(jù)分組承載具有經(jīng)由傳輸層上方協(xié)議標(biāo)識(shí)的優(yōu)先級(jí)的第一協(xié)議數(shù)據(jù)單元。
[0250]在步驟465,中間裝置可基于當(dāng)前分配給連接的優(yōu)先級(jí)來傳輸該連接的分組、PDU或字節(jié)組。在為傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),中間裝置可經(jīng)由該傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。中間裝置可在設(shè)置連接的連接優(yōu)先級(jí)時(shí),對(duì)于其中已確定連接優(yōu)先級(jí)的窗口,傳輸緩沖的那些分組。對(duì)于在其中已確定連接優(yōu)先級(jí)的窗口,中間裝置可傳輸緩沖的那些分組,同時(shí)將該連接的連接優(yōu)先級(jí)設(shè)置為這樣的連接優(yōu)先級(jí)。中間裝置可緩沖分組的下一窗口直到確定分組的下一窗口的連接優(yōu)先級(jí),并且將其分配給該連接。在為下一窗口設(shè)置連接的連接優(yōu)先級(jí)時(shí),中間裝置可傳輸緩沖的分組。
[0251]對(duì)于中間裝置可為其分配優(yōu)先級(jí)的多個(gè)連接,中間裝置可在該多個(gè)連接之間應(yīng)用任何服務(wù)質(zhì)量方法或算法。中間裝置可考慮用于經(jīng)由中間裝置傳輸分組、PDU或字節(jié)組的每個(gè)連接的當(dāng)前優(yōu)先級(jí)。較高優(yōu)先級(jí)連接可比較低優(yōu)先級(jí)連接得到更多的傳輸時(shí)間和/或更大量的數(shù)據(jù)的傳輸。在一些實(shí)施例中,中間裝置根據(jù)已經(jīng)基于連接的優(yōu)先級(jí)設(shè)置的分組、PDU或字節(jié)組的任何QoS設(shè)置,來傳輸該分組、PDU或字節(jié)組。在一些實(shí)施例中,中間裝置根據(jù)已經(jīng)基于連接的優(yōu)先級(jí)設(shè)置的ToS或Diffserv設(shè)置,來傳輸分組、PDU或字節(jié)組。在一些實(shí)施例中,中間裝置根據(jù)基于連接的優(yōu)先級(jí)的QoS設(shè)置(如ToS或Differv設(shè)置)將分組、PDU或字節(jié)組傳輸?shù)搅硪?QoS系統(tǒng)或裝置,用于QoS處理和傳輸。
[0252]可對(duì)于由中間裝置接收和處理的分組流連續(xù)執(zhí)行以上任何步驟。例如,中間裝置為第二、下一或隨后的多個(gè)協(xié)議數(shù)據(jù)單元的第二個(gè)、下一個(gè)或隨后的協(xié)議數(shù)據(jù)單元預(yù)定窗口,標(biāo)識(shí)第二個(gè)、下一個(gè)或隨后的平均優(yōu)先級(jí),并且分配確定的平均優(yōu)先級(jí)作為該傳輸層連接的連接優(yōu)先級(jí)。在為傳輸層連接的連接優(yōu)先級(jí)分配關(guān)于第二個(gè)、下一個(gè)或隨后的協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二個(gè)、下一個(gè)或隨后的平均優(yōu)先級(jí)的同時(shí),中間裝置可經(jīng)由該單個(gè)傳輸層連接傳輸承載第二個(gè)、下一個(gè)或隨后的協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的第二、下一或隨后的多個(gè)分組。
【權(quán)利要求】
1.一種用于經(jīng)由單個(gè)傳輸層連接為協(xié)議數(shù)據(jù)單元流提供服務(wù)質(zhì)量(QoS)的方法,所述方法包括: Ca)由裝置經(jīng)由單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組,所述多個(gè)協(xié)議數(shù)據(jù)單元中的每個(gè)協(xié)議數(shù)據(jù)單元標(biāo)識(shí)優(yōu)先級(jí),所述多個(gè)協(xié)議數(shù)據(jù)單元中的至少一個(gè)或多個(gè)包括與所述多個(gè)協(xié)議數(shù)據(jù)單元中的其他協(xié)議數(shù)據(jù)單元的第二優(yōu)先級(jí)不同的第一優(yōu)先級(jí); (b)由所述裝置為所述多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí); (C)由所述裝置將所述平均優(yōu)先級(jí)分配為所述單個(gè)傳輸層連接的連接優(yōu)先級(jí);以及 (d)在向所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),由所述裝置經(jīng)由所述單個(gè)傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。
2.根據(jù)權(quán)利要求1所述的方法,其中步驟(a)還包括由所述裝置經(jīng)由所述單個(gè)傳輸層連接接收承載遠(yuǎn)程顯示協(xié)議的多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組,每個(gè)協(xié)議數(shù)據(jù)單元與虛通道相對(duì)應(yīng),所述虛通道分配有優(yōu)先級(jí)。
3.根據(jù)權(quán)利要求1所述的方法,其中步驟(a)還包括由所述裝置緩沖所述多個(gè)分組,直到所述多個(gè)分組的連接優(yōu)先級(jí)被分配給所述傳輸層連接。
4.根據(jù)權(quán)利要求1所述的方法,其中步驟(b)還包括由所述裝置的過濾器基于有限脈沖響應(yīng)(FIR)過濾來確定所述平均優(yōu)先級(jí)。
5.根據(jù)權(quán)利要求1所述的方法,其中步驟(b)還包括由所述裝置的過濾器基于無限脈沖響應(yīng)(IIR)過濾來確定所述平均優(yōu)先級(jí)。
6.根據(jù)權(quán)利要求1所述的`方法,其中步驟(b)還包括由所述裝置將所述預(yù)定窗口標(biāo)識(shí)為包括預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元。
7.根據(jù)權(quán)利要求1所述的方法,其中步驟(c)還包括由所述裝置在所述多個(gè)分組中設(shè)置差分服務(wù)代碼點(diǎn)(DSCP)字段,以與分配給所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)相對(duì)應(yīng)。
8.根據(jù)權(quán)利要求1所述的方法,其中步驟(d)還包括由所述裝置傳輸具有經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP層)或傳輸層中的一個(gè)標(biāo)識(shí)的連接優(yōu)先級(jí)的多個(gè)數(shù)據(jù)分組的第一分組,且所述第一分組承載具有經(jīng)由傳輸層之上的協(xié)議標(biāo)識(shí)的優(yōu)先級(jí)的第一協(xié)議數(shù)據(jù)單元。
9.根據(jù)權(quán)利要求1所述的方法,還包括由所述裝置為第二多個(gè)協(xié)議數(shù)據(jù)單元的第二協(xié)議數(shù)據(jù)單元預(yù)定窗口確定第二平均優(yōu)先級(jí),并且由所述裝置將第二平均優(yōu)先級(jí)分配為所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)。
10.根據(jù)權(quán)利要求9所述的方法,還包括在向所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)被分配第二協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二平均優(yōu)先級(jí)的同時(shí),由所述裝置經(jīng)由所述單個(gè)傳輸層連接傳輸承載第二協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的第二多個(gè)分組。
11.一種用于經(jīng)由單個(gè)傳輸層連接為協(xié)議數(shù)據(jù)單元流提供服務(wù)質(zhì)量(QoS)的系統(tǒng),所述系統(tǒng)包括: 在發(fā)送者和接收者中間的裝置,其經(jīng)由單個(gè)傳輸層連接接收承載多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組,所述多個(gè)協(xié)議數(shù)據(jù)單元中的每個(gè)協(xié)議數(shù)據(jù)單元標(biāo)識(shí)優(yōu)先級(jí),所述多個(gè)協(xié)議數(shù)據(jù)單元中的至少一個(gè)或多個(gè)包括與所述多個(gè)協(xié)議數(shù)據(jù)單元中的其他協(xié)議數(shù)據(jù)單元的第二優(yōu)先級(jí)不同的第一優(yōu)先級(jí);所述裝置的過濾器,其為所述多個(gè)協(xié)議數(shù)據(jù)單元的協(xié)議數(shù)據(jù)單元預(yù)定窗口確定平均優(yōu)先級(jí); 所述裝置的引擎,其將所述平均優(yōu)先級(jí)分配為所述單個(gè)傳輸層連接的連接優(yōu)先級(jí);以及 其中,在向所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配協(xié)議數(shù)據(jù)單元預(yù)定窗口的平均優(yōu)先級(jí)的同時(shí),所述裝置經(jīng)由所述單個(gè)傳輸層連接傳輸承載協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的多個(gè)分組。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述裝置經(jīng)由所述單個(gè)傳輸層連接接收承載遠(yuǎn)程顯示協(xié)議的多個(gè)協(xié)議數(shù)據(jù)單元的多個(gè)分組,每個(gè)協(xié)議數(shù)據(jù)單元與虛通道相對(duì)應(yīng),所述虛通道分配有優(yōu)先級(jí)。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述引擎緩沖所述多個(gè)分組,直到所述多個(gè)分組的連接優(yōu)先級(jí)被分配給所述傳輸層連接。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述過濾器基于有限脈沖響應(yīng)(FIR)過濾來確定所述平均優(yōu)先級(jí)。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述過濾器基于無限脈沖響應(yīng)(IIR)過濾來確定所述平均優(yōu)先級(jí)。
16.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述引擎將所述預(yù)定窗口標(biāo)識(shí)為包括預(yù)定數(shù)量的協(xié)議數(shù)據(jù)單元。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述引擎在所述多個(gè)分組中設(shè)置差分服務(wù)代碼點(diǎn)(DSCP)字段,以與分配給所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)相對(duì)應(yīng)。
18.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述裝置傳輸具有經(jīng)由互聯(lián)網(wǎng)協(xié)議(IP層)或傳輸層中的一個(gè)標(biāo)識(shí)的連接優(yōu)先級(jí)的多個(gè)數(shù)據(jù)分組的第一分組,且所述第一分組承載具有經(jīng)由傳輸層之上的協(xié)議標(biāo)識(shí)的優(yōu)先級(jí)的第一協(xié)議數(shù)據(jù)單元。
19.根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述過濾器為第二多個(gè)協(xié)議數(shù)據(jù)單元的第二協(xié)議數(shù)據(jù)單元預(yù)定窗口確定第二平均優(yōu)先級(jí),并且所述引擎將第二平均優(yōu)先級(jí)分配為所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中在向所述單個(gè)傳輸層連接的連接優(yōu)先級(jí)分配第二協(xié)議數(shù)據(jù)單元預(yù)定窗口的第二平均優(yōu)先級(jí)的同時(shí),所述裝置經(jīng)由所述單個(gè)傳輸層連接傳輸承載第二協(xié)議數(shù)據(jù)單元預(yù)定窗口內(nèi)的那些協(xié)議數(shù)據(jù)單元的第二多個(gè)分組。
【文檔編號(hào)】H04L29/08GK103518358SQ201280022722
【公開日】2014年1月15日 申請(qǐng)日期:2012年3月6日 優(yōu)先權(quán)日:2011年3月11日
【發(fā)明者】M·奧夫斯安尼科夫 申請(qǐng)人:思杰系統(tǒng)有限公司