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

用于配置、應用和管理網(wǎng)絡裝置的面向?qū)ο蟛呗员磉_式的系統(tǒng)和方法

文檔序號:7938037閱讀:383來源:國知局
專利名稱:用于配置、應用和管理網(wǎng)絡裝置的面向?qū)ο蟛呗员磉_式的系統(tǒng)和方法
技術(shù)領(lǐng)域
0002本發(fā)明涉及計算機網(wǎng)絡4支術(shù)。更具體地,本發(fā)明涉及用于 在網(wǎng)絡裝置中配置和應用策略以及設(shè)置的系統(tǒng)和方法。
背景技術(shù)
0003網(wǎng)絡裝置和客戶機可以提供關(guān)于網(wǎng)絡業(yè)務量的大量復雜功 能。除了這些功能之外,網(wǎng)絡裝置還可以提供負載平衡、應用安全、內(nèi) 容轉(zhuǎn)換、SSL卸載、加速和高速緩存。然而,隨著網(wǎng)絡裝置所提供的功能 的數(shù)量和復雜性增加,對于網(wǎng)絡裝置所需的配置的復雜性和數(shù)量也同樣增加。進一步,網(wǎng)絡裝置的不適當?shù)暮头亲顑?yōu)的配置可以導致性能下降、 網(wǎng)絡錯誤、應用不兼容和安全削弱。
0004許多網(wǎng)絡裝置可以使用策略框架來控制網(wǎng)絡裝置功能。在 這些框架中,策略可以指定專用于指定特定條件下行為的規(guī)則和動作。
例如,使用HTTP業(yè)務量,策略框架可以允許用戶來配置基于HTTP流中 的內(nèi)容的裝置行為。根據(jù)要被分析的內(nèi)容和所尋找(sought )的行為, 這些策略可以變得復雜。因此,為了寫策略來指導裝置行為,需要策略 框架允許用戶將結(jié)構(gòu)應用到網(wǎng)絡業(yè)務量。同樣需要網(wǎng)絡裝置隨后能夠以 有效方式來實現(xiàn)這樣結(jié)構(gòu)化的策略表達式。
0005此外,隨著網(wǎng)絡裝置功能的數(shù)量和復雜性增加,它們的配 置所需的策略的數(shù)量也可以增加。隨著策略數(shù)量的增加,同樣需要指定 和實現(xiàn)策略和策略組上的處理順序。
0006進一步,網(wǎng)絡裝置中使用的一些期望的策略可能未必具有 所定義的結(jié)果。例如,策略可以響應HTTP請求的給定字^:來指定行為, 但是在字段不存在或者字段具有不期望的值的情況中可以不被定義。雖 然在一些情況中有可能寫入通常被定義的策略,但是這可能要求附加的 策略或者更復雜的策略并且可能增加管理開銷。因此需要允許用戶對于 策略未被限定的情況指定一個或者多個動作的配置系統(tǒng)。

發(fā)明內(nèi)容
0007本發(fā)明涉及用于配置和估計指導一個或者多個數(shù)據(jù)流的處 理的策略的系統(tǒng)和方法。所描述的配置接口用來允許用戶指定面向?qū)ο?的策略。這些面向?qū)ο蟮牟呗钥梢栽试S關(guān)于所接收的分組流的有效載荷 來應用的任一數(shù)據(jù)結(jié)構(gòu),包括HTTP業(yè)務量的任一部分。配置接口除了在
執(zhí)行策略和策略組的順序。用于處理策略的系統(tǒng)和方法可以通過應用可 能復雜的數(shù)據(jù)結(jié)構(gòu)以解構(gòu)數(shù)據(jù)流來允許面向?qū)ο蟮牟呗缘挠行幚?。裝 置也可以解釋和處理大量流量控制命令和策略組調(diào)用語句來確定在大量 策略和策略組上執(zhí)行的順序。這些策略配置和處理可以允許用戶來有效 配置涉及負載平4軒、VPNs、 SSL卸載、內(nèi)容轉(zhuǎn)換、應用安全、加速和高速緩存的復雜網(wǎng)絡行為。
0008在一個方面中,本發(fā)明涉及使用面向?qū)ο蟮谋磉_式來配置
網(wǎng)絡裝置的策略以指定網(wǎng)絡裝置所接收的分組流的有效載荷中的結(jié)構(gòu)的
系統(tǒng)和方法。在一個實施例中,該方法包括提供用于配置對于網(wǎng)絡裝 置的策略的配置接口;經(jīng)由配置接口接收對于策略的表達式,該表達式 識別(i )應用到分組流的有效載荷的部分的對象類;和(ii )對象類的 成員;和經(jīng)由配置接口接收識別策略的動作的信息,該動作基于該表達 式的估計而被采取。
0009在第二方面中,本發(fā)明涉及用于在策略中應用面向?qū)ο蟮?表達式來指定設(shè)備^^收的分組流的有效載荷中的結(jié)構(gòu)的系統(tǒng)和方法。在 一個實施例中,方法包括由設(shè)備識別策略來估計關(guān)于所接收的分組流 的有效負載,該策略指定(i )應用到分組流的有效載荷的部分的對象類;、
(ii )對象類的成員和(iii )動作;由設(shè)備選擇該對象類識別的有效載 荷的部分;由設(shè)備確定對于該對象類的成員的值;并且響應所確定的值 來采取動作。在另一個實施例中,該方法包括由設(shè)備識別包括面向?qū)?象表達式的策略來估計關(guān)于所接收的分組流的有效載荷;基于有效載荷 的部分,由設(shè)備分配值給面向?qū)ο蟊磉_式所指定的數(shù)據(jù)結(jié)構(gòu);由設(shè)備執(zhí) 行基于所分配的值的表達式的估計;和響應于該估計,采取策略所指定 的動作。對應的系統(tǒng)可以包括用于接收分組流的分組處理器和用于估計
一個或者多個面向?qū)ο蟮牟呗圆⑶也蒦i相關(guān)動作的策略引擎。
0010在第三個方面中,本發(fā)明涉及用于在策略中應用面向?qū)ο?br> 的表達式來指定設(shè)備接收的分組流的有效載荷中的結(jié)構(gòu)的系統(tǒng)和方法。 在一個實施例中,方法包括由設(shè)備識別包括面向?qū)ο蟮谋磉_式的策略 來估計關(guān)于所接收的分組流的有效負載;基于有效載荷的部分,由設(shè)備 分配值給面向?qū)ο蟊磉_式所指定的數(shù)據(jù)結(jié)構(gòu);由設(shè)備執(zhí)行基于所分配的 值的表達式的估計;和響應于該估計,改變所接收的分組流的部分;并 且由設(shè)備發(fā)送所改變的分組流。對應的系統(tǒng)可以包括用于接收和轉(zhuǎn)發(fā)分 組流的分組處理器和用于估計一個或者多個面向?qū)ο蟮牟呗圆⑶也扇∠?關(guān)的動作的策略引擎。
0011在第四方面中,本發(fā)明涉及用于在 略的元素(element)未被限定的情況下通過指定所采取的動作來配置和/或處理網(wǎng)絡裝置所 使用的策略的系統(tǒng)和方法。在一個實施例中,方法包括提供用于配置
網(wǎng)絡裝置的策略的配置接口;由配置接口識別包括基于表達式的估計所 采取的第 一動作的策略;經(jīng)由配置接口接收識別策略的第二動作的信息,
如果策略的元素未被限定,則采取第二動作。在另一個實施例中,在策 略的元素未被限定的情況下應用指定所采取的動作的策略的方法包括 由設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負載,該策略指定(i ) 表達式;(ii )基于該表達式的估計所采取的第一動作和(iii )如果策 略的元素未被限定所采取的第二動作;由設(shè)備確定關(guān)于有效載荷的未被 限定的策略的元素;并且由設(shè)備響應該確定來采取第二動作。對應的系 統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個策略 并且采糾目關(guān)動作的策略引擎。
0012在第五方面中,本發(fā)明涉及用于在處理分組流中使用的策 略間配置和/或處理流量控制。在一個實施例中,方法包括^是供用于配 置網(wǎng)絡裝置的多個策略的配置接口 ,多個策略的至少 一個策略包括策略 識別符;經(jīng)由配置接口接收識別多個策略的第一策略的信息,第一策略 識別(i )包括第一表達式的規(guī)則和(ii )基于該規(guī)則的估計所釆取的第 一動作;和經(jīng)由配置接口接收識別多個策略的第二策略的信息使得當規(guī) 則估計為真時隨后應用到第一策略。在另一個實施例中,方法包括由 設(shè)備識別多個策略以應用到所接收的分組流,多個策略的至少一個策略 包括策略識別符;由設(shè)備處理多個策略的第一策略,第一策略識別(i) 包括第一表達式的規(guī)則和(n)基于該規(guī)則的估計所采取的第一動作, 和(iii)多個策略的第二策略;由設(shè)備基于該表達式的估計來確定規(guī)則 估計為真;并且由設(shè)備響應該確定來處理所識別的第二策略。對應的系 統(tǒng)可以包括用于接收分組流的分組處理器和用于估計一個或者多個策略 并且采取相關(guān)動作的策略引擎。
0013在第六方面中,本發(fā)明涉及用于在處理分組流的網(wǎng)絡裝置 中使用的策略組間配置和/或處理流量控制。在一個實施例中,方法包括 提供用于配置網(wǎng)絡裝置的多個策略組的配置接口 ,由配置接口識別第一 策略組的第一策略,第一策略指定包括第一表達式的規(guī)則;并且經(jīng)由接
24口接收指定基于規(guī)則的估計而要處理的第二策略組的信息。在另 一個實
施例中,方法包括由設(shè)備識別第一策略組以應用到所接收的分組流; 由設(shè)備處理第一策略組的第一策略,第一策略識別(i)包括第一表達式 的規(guī)則,和(ii )識別第二策略組的信息;由設(shè)備估計該規(guī)則;并且由 設(shè)備響應該規(guī)則的估計來處理所識別的第二策略組。對應的系統(tǒng)可以包 括用于接收分組流的分組處理器和用于估計一個或者多個策略并且采取 相關(guān)動作的策略引擎。
0014在第七方面中,本發(fā)明涉及用于配置和/或處理對于裝置的 一個或者多個應用安全配置文件的系統(tǒng)和方法,每一個應用安全配置文 件指定執(zhí)行關(guān)于應用的安全功能的多個檢驗。在一個實施例中,方法包 括提供用于配置應用安全配置文件的配置接口;經(jīng)由配置接口接收第 一設(shè)置,該設(shè)置對應于應用安全配置文件的第一檢驗指定;經(jīng)由配置接 口接收第二設(shè)置,第二設(shè)置對應于應用安全配置文件的第二檢驗指定;
由配置接口識別策略,該策略指定包括第一表達式的規(guī)則;并且經(jīng)由接 口接收識別基于規(guī)則的估計而要處理的應用安全配置文件的信息。在另 一個實施例中,方法可以包括由設(shè)備識別第一策略以應用到所接收的 分組流;第一策略指定包括第一表達式的規(guī)則并且識別應用安全配置文 件;由設(shè)備估計該規(guī)則;由設(shè)備響應于規(guī)則的估計來處理由應用安全配 置文件指定的第一檢驗;并且由設(shè)備響應于規(guī)則的估計來處理由應用安 全配置文件指定的第二檢驗。對應的系統(tǒng)可以包括用于接收分組流的分 組處理器和用于估計一個或者多個應用安全配置文件并且采取相關(guān)動作 的策略引擎。
0015在下面附圖和具體實施方式
中提出本發(fā)明的多種實施例的
細節(jié)。


0016參考結(jié)合附圖的以下描述,本發(fā)明的前述和其他對象、方 面、特征和優(yōu)勢將會變得更加明顯更好理解,其中
圖1A是客戶機經(jīng)由設(shè)備來訪問服務器的網(wǎng)絡環(huán)境的實施例的框圖; 圖1B是經(jīng)由多個設(shè)備來將計算環(huán)境從服務器遞送到客戶機的網(wǎng)絡環(huán)
25境的另一個實施例的框圖1C是經(jīng)由一個或多個不同的設(shè)備來將計算環(huán)境從服務器遞送到客 戶機的網(wǎng)絡環(huán)境的另 一個實施例的框圖1D是經(jīng)由網(wǎng)絡來將計算環(huán)境從服務器遞送到客戶機的環(huán)境的實施 例的框圖1E和1F是計算裝置的實施例的框圖2A是處理在客戶機和服務器之間的通信的設(shè)備的實施例的框圖; 圖2B是用于優(yōu)化、加速、負載平衡和路由在客戶機和服務器之間的 通信的設(shè)備的另 一個實施例的框圖3是經(jīng)由設(shè)備來與服務器進行通信的客戶機的實施例的框圖4A是可以被用來構(gòu)建HTTP通信的示例對象模型的視圖4B是可以被用來構(gòu)建HTTP通信的對象模型的文檔編制的示例屏
泰;
圖4C示出關(guān)于HTTP表達式的多個示例面向?qū)ο蟮谋磉_式; 圖5示出策略的例子;
圖6是可用被用來配置一個或者多個表達式的示例屏幕; 圖7A是可以被用來配置網(wǎng)絡裝置的策略的配置接口的示例屏幕; 圖7B是在客戶機上執(zhí)行的配置接口的一個實施例的框圖; 圖8A是用于配置策略表達式的方法的一個實施例的流程圖; 圖8B是用于處理網(wǎng)絡設(shè)備中的面向?qū)ο蟮谋磉_式的方法的一個實施 例的流程圖8C是用于使用面向?qū)ο蟮谋磉_式來重寫所接收的分組流的部分的
方法的 一個實施例的流程圖9是用于處理未限定的策略元素的方法的一個實施例的流程圖IOA是策略庫的一個實施例的例子的視圖10B是用于控制一組策略中的處理順序的一個實施例的流程圖11A是控制多個策略組上的處理順序的一個實施例的框圖11B是用于控制多個策略組上的處理順序的方法的一個實施例的
框圖12示出可以被用來配置應用安全配置文件的多個示例配置屏幕;圖13A是用于配置應用安全配置文件的方法的一個實施例的流程和
圖13B是用于處理應用安全配置文件的方法的一個實施例的流程圖。0017根據(jù)以下結(jié)合附圖提出的詳細描述,本發(fā)明的特征和優(yōu)勢 將變得更加明顯,其中相同的參考特征在全文中是指對應的元件。在附 圖中,相似的附圖標記通常指示相同的、功能類似的和/或結(jié)構(gòu)類似的元 件。
具體實施例方式
0018為了閱讀下面的本發(fā)明的多個實施例的描述,說明下面的
說明書的各部分以及它們相應的內(nèi)容是有幫助的
部分A描述有益于實施本發(fā)明實施例的網(wǎng)絡環(huán)境和計算環(huán)境;
部分B描述用于將計算環(huán)境加速遞送到遠程用戶的系統(tǒng)和設(shè)備架構(gòu)
的實施例;
部分C描述用于加速在客戶機和服務器之間的通信的客戶機代理的 實施例;
部分D描述用于配置和使用面向?qū)ο蟛呗员磉_式的系統(tǒng)和方法的實 施例;
部分E描述用于處理未限定的策略表達式的方法和系統(tǒng)的實施例; 部分F描述用于配置和使用策略分組的系統(tǒng)和方法的實施例;和 部分G描述用于配置和使用應用安全配置文件的系統(tǒng)和方法的實施例。
A.網(wǎng)絡和計算環(huán)境
0019在討論設(shè)備和/或客戶機的系統(tǒng)和方法的實施例的細節(jié)之 前,討論可以部署這樣的實施例的網(wǎng)絡和計算環(huán)境是有幫助的?,F(xiàn)在參 考圖1A,描述了網(wǎng)絡環(huán)境的一個實施例??偟膩碚f,網(wǎng)絡環(huán)境包括經(jīng)由 一個或多個網(wǎng)絡104和104'(通常被稱為網(wǎng)絡104)與一個或多個服務 器106a-106n (通常也被稱為服務器106或遠程機器106 )通信的一個或 多個客戶機102a-102n (通常也被稱為本地機器102或客戶才幾102)。在一些實施例中,客戶機102經(jīng)由設(shè)備200與服務器106通信。
0020雖然圖1A示出客戶機102和服務器106之間的網(wǎng)絡104和 網(wǎng)絡1(M',但客戶機102和服務器106可以在同一個網(wǎng)絡104上。網(wǎng)絡 104和104'可以是相同類型的網(wǎng)絡或不同類型的網(wǎng)絡。網(wǎng)絡104和/或網(wǎng) 絡104'可以是像公司內(nèi)聯(lián)網(wǎng)的局域網(wǎng)(LAN)、城域網(wǎng)(MAN)或者諸如因 特網(wǎng)或萬維網(wǎng)的廣域網(wǎng)(WAN)。在一個實施例中,網(wǎng)絡104'可以是專用 網(wǎng)而網(wǎng)絡104可以是/>用網(wǎng)。在一些實施例中,網(wǎng)絡104可以是專用網(wǎng) 而網(wǎng)絡104/可以是/>用網(wǎng)。在另一個實施例中,網(wǎng)絡104和10t可以都 是專用網(wǎng)。在一些實施例中,客戶機102可以位于公司的分支機構(gòu),經(jīng) 由網(wǎng)絡104上的WAN連接來與位于公司的數(shù)據(jù)中心的服務器106進行通 信。
0021網(wǎng)絡104和/或10V可以是任一類型和/或形式的網(wǎng)絡,并 且可以包括下列任意一種網(wǎng)絡點到點網(wǎng)絡、廣播網(wǎng)、廣域網(wǎng)、局域網(wǎng)、 遠程通信網(wǎng)、數(shù)據(jù)通信網(wǎng)、計算機網(wǎng)絡、ATM(異步傳送才莫式)網(wǎng)絡、SONET (同步光學網(wǎng)絡)網(wǎng)絡、SDH(同步數(shù)字系列)網(wǎng)絡、無線網(wǎng)絡和有線網(wǎng) 絡。在一些實施例中,網(wǎng)絡104可以包括諸如紅外信道或衛(wèi)星頻帶的無 線鏈路。網(wǎng)絡104和/或104'的拓樸結(jié)構(gòu)可以是總線型、星型或環(huán)型網(wǎng)絡 拓樸結(jié)構(gòu)。網(wǎng)絡104和/或104'以及網(wǎng)絡拓樸結(jié)構(gòu)可以是能夠支持此處描 述的操作的本領(lǐng)域內(nèi)普通技術(shù)人員所知的任一種這樣的網(wǎng)絡或網(wǎng)絡拓樸 結(jié)構(gòu)。
0022如圖1A所示,在網(wǎng)絡104和104'之間示出也可以被稱為接 口單元200或網(wǎng)關(guān)200的設(shè)備200。在一些實施例中,設(shè)備200可以位于 網(wǎng)絡104上。例如,公司的分支機構(gòu)可以在所述分支機構(gòu)處部署設(shè)備200。 在其它實施例中,i殳備200可以位于網(wǎng)絡104'上。例如,i殳備200可以 位于公司的數(shù)據(jù)中心。在又一個實施例中,多個設(shè)備200可以部署在網(wǎng) 絡104上。在一些實施例中,多個設(shè)備200可以部署在網(wǎng)絡104'上。在 一個實施例中,第一設(shè)備200與第二設(shè)備200'相通信。在其它的實施例 中,設(shè)備200可以是在與客戶機102相同或不同的網(wǎng)絡104, 104'上的任 一客戶機102或服務器106的一部分。 一個或多個設(shè)備200可以位于在 客戶機102和服務器106之間的網(wǎng)絡或網(wǎng)絡通信路徑中的任一點處。0023在一些實施例中,設(shè)備200包括被稱為Citrix NetScaler 裝置的由4立于Ft. Lauderdale Florida的Citrix Systems 一^司制造的 任一網(wǎng)絡裝置。在其它實施例中,設(shè)備200包括由位于 Seattle, Washington的F5 Networks 乂>司制造的凈皮稱、為WebAccelerator 和BigIP的任意一個產(chǎn)品實施例。在另一個實施例中,設(shè)備205包括由 j立于Sunnyvale, California的Juniper Networks 7>司制造的DX力口速 裝置平臺和/或諸如SA700、 SA2000、 SA4000和SA600Q裝置的SSL VPN 系列裝置中的任意一個。在又一個實施例中,設(shè)備200包括由位于San Jose, California的Cisco Systems/>司制造的<壬——應用力口速和/或安全 相關(guān)的設(shè)備和/或軟件,例如Cisco ACE應用控制引擎模塊業(yè)務 (Application Control Engine Module service)軟件和網(wǎng)絡模塊以及 Cisco AVS系列應用速度系統(tǒng)(Application Velocity System)。
0024在一個實施例中,該系統(tǒng)可以包括多個邏輯分組的服務器 106。在這些實施例中,服務器的邏輯分組可以被稱為服務器群組38。在 這些實施例中的一些實施例中,服務器106可以是在地理上分散的。有 時候,群組38可以被管理為單一的實體。在其它實施例中,服務器群組 38包括多個服務器群組38。在一個實施例中,服務器群組代表一個或多 個客戶機102來扭Z亍一個或多個應用。
0025在每個群組38中的服務器106可以是不同種類的。 一個或 多個服務器106可以根據(jù)一種類型的操作系統(tǒng)平臺(例如,由位于 Redmond, Washington的微軟公司出品的WINDOWS NT)來進行操作,而一 個或多個其它的服務器106可以根據(jù)另一種類型的操作系統(tǒng)平臺(例如, Unix或Linux)來進行操作。每個群組38中的服務器106不需要與同一 群組38中的另一個服務器106物理上接近。因此,邏輯上被分組為群組 38的服務器106的分組可以使用廣域網(wǎng)(WAN )連接或中域網(wǎng)(med ium-ar ea network, MAN )連接來互連。例如,群組38可以包括在物理上位于不同 的洲或位于一個洲、國家、州、城市、校園或房間的不同區(qū)域的服務器 106。如果使用局域網(wǎng)(LAN)連接或一些形式的直接連接來連接服務器 106,則可以增加在群組38中的服務器106之間的數(shù)據(jù)傳輸速度。
0026服務器106可以被稱為文件服務器、應用服務器、web服務
29器、代理服務器或網(wǎng)關(guān)服務器。在一些實施例中,服務器106可以有能力
起到應用服務器或主應用服務器的作用。在一個實施例中,服務器106可以包括活動目錄(Active Directory )。客戶機102也可以;陂稱為客戶機節(jié)點或端點。在一些實施例中,客戶機102有能力起到尋求訪問服務器上的應用的客戶機節(jié)點以及作為對于其它的客戶機102a-l02n提供對寄載的應用的訪問的應用服務器的作用。
0027在一些實施例中,客戶機102與服務器106進行通信。在一個實施例,客戶機102直接與群組38中的服務器106的其中一個進行通信。在另一個實施例中,客戶機102執(zhí)行程序鄰近應用以與群組38中的服務器106進行通信。在又一個實施例中,服務器106提供主節(jié)點的功能。在一些實施例中,客戶機102通過網(wǎng)絡104與群組38中的服務器106進行通信。例如,通過網(wǎng)絡104,客戶機102可以請求執(zhí)行由群組38中的服務器106a-106n寄載的多個應用,并接收應用執(zhí)行的輸出結(jié)果用于顯示。在一些實施例中,只有主節(jié)點提供所要求的識別并提供與寄載被請求的應用的服務器106'相關(guān)的地址信息的功能。
0028在一個實施例中,服務器106提供web服務器的功能。在另一個實施例中,服務器106a從客戶機102接收請求,將請求轉(zhuǎn)發(fā)到第二服務器106b,并使用來自于服務器106b的對請求的響應來對客戶機102的請求進行響應。在又一個實施例中,服務器106獲得客戶機102可
106相關(guān)的地址信息。在又一個實施例中,服務器106使用web接口將對請求的響應提供給客戶機102。在一個實施例中,客戶機102直接與服務器106進行通信以訪問所標識的應用。在另一個實施例中,客戶機102接收由執(zhí)行服務器106上的標識的應用所生成的諸如顯示數(shù)據(jù)的應用輸出數(shù)據(jù)。
0029現(xiàn)在參考圖1B,描述了部署多個設(shè)備20Q的網(wǎng)絡環(huán)境的實施例。第一設(shè)備200可以部署在第一網(wǎng)絡104上,而第二設(shè)備200'部署在第二網(wǎng)絡104'上。例如,公司可以在分支機構(gòu)部署第一設(shè)備200,而在數(shù)據(jù)中心部署第二設(shè)備200'。在另一個實施例中,第一設(shè)備200和第二設(shè)備200'被部署在同一個網(wǎng)絡104或網(wǎng)絡104'上。例如,第一設(shè)備200 '可以部署用于第一服務器群組38,而第二設(shè)備200'可以部署用于第二服務器群組38'。在另一個實例中,第一設(shè)備200可以部署在第一分支機構(gòu),而第二設(shè)備200'被部署在第二分支機構(gòu)'。在一些實施例中,第一設(shè)備200和第二設(shè)備20(K彼此協(xié)同或聯(lián)合工作,以加速客戶機和服務器之間的網(wǎng)絡業(yè)務量或應用和數(shù)據(jù)的遞送。
0030現(xiàn)在參考圖1C,描述了使用一個或多個其它類型的設(shè)備,例如在一個或多個WAN優(yōu)化設(shè)備205, 205'之間,來部署設(shè)備200的網(wǎng)絡環(huán)境的另一個實施例。例如,第一 WAN優(yōu)化設(shè)備205顯示在網(wǎng)絡104和104'之間,而第二 WAN優(yōu)化設(shè)備205'可以部署在設(shè)備200和一個或多個服務器106之間。通過示例,公司可以在分支機構(gòu)部署第一 WAN優(yōu)化設(shè)備205,而在數(shù)據(jù)中心部署第二WAN優(yōu)化設(shè)備205'。在一些實施例中,設(shè)備205可以位于網(wǎng)絡104'上。在其它實施例中,設(shè)備205'可以位于網(wǎng)絡104上。在一些實施例中,設(shè)備205'可以位于網(wǎng)絡104'或網(wǎng)絡104"上。在一個實施例中,設(shè)備205和205'在同一個網(wǎng)絡上。在另一個實施例中,設(shè)備205和205'在不同的網(wǎng)絡上。在另一個實例中,第一MN優(yōu)化設(shè)備205可以部署用于第一服務器群組38,而第二 WAN優(yōu)化設(shè)備205'可以部署用于第二服務器群組38'。
0031在一個實施例中,設(shè)備205是用于加速、優(yōu)化或者以其他方式改善諸如往和/或返于WAN連接的業(yè)務量的任一類型和形式的網(wǎng)絡業(yè)務量的性能、操作或服務質(zhì)量的裝置。在一些實施例中,設(shè)備205是一個性能提高的代理。在其它實施例中,設(shè)備205是任一類型和形式的WAN優(yōu)化或加速裝置,有時也被稱為WAN優(yōu)化控制器。在一個實施例中,設(shè)備205是由位于Ft. Lauderdale Florida的Citrix Systems 乂^司出品的被稱為WANScaler的產(chǎn)品實施例中的任意一種。在其它實施例中,設(shè)備205包括由位于Seattle, Washington的F5 Networks/>司出品的被稱為BIG-IP鏈路控制器和WANjet的產(chǎn)品實施例中的任意一種。在另一個實施例中,設(shè)備205包括由位于Sunnyvale, California的JuniperNetworks公司出品的WX和WXC WAN加速裝置平臺中的任意一種。在一些實施例中,設(shè)備205包括由San Francisco, Cal ifornia的RiverbedTechnology公司出品的虹鱒(steelhead )系列WAN優(yōu)化設(shè)備中的任意一種。在其它實施例中,設(shè)備205包括由位于Roseland, NewJersey的ExpandNetworks公司出品的WAN相關(guān)裝置中的任意一種。在一個實施例中,設(shè)備205包括由位于Cupertino, California的Packeteer />司出品的葉壬意一種W緒相關(guān)i殳備,例如由Packeteer ^是供的PacketShaper、 iShared和SkyX產(chǎn)品實施例。在又一個實施例中,設(shè)備205包括由位于San Jose,California的Cisco Systems公司出品的任一 WAN相關(guān)設(shè)備和/或軟件,例如Ci sco廣域網(wǎng)應用服務軟件和網(wǎng)絡模塊以及廣域網(wǎng)引擎設(shè)備。
0032在一個實施例中,設(shè)備205提供用于分支機構(gòu)或遠程辦公室的應用和數(shù)據(jù)加速業(yè)務。在一個實施例中,設(shè)備205包括廣域文件月良務(WAFS)的優(yōu)化。在另一個實施例中,設(shè)備205加速文件的遞送,例如經(jīng)由通用Internet文件系統(tǒng)(CIFS)協(xié)議。在其它實施例中,設(shè)備205在存儲器和/或存儲設(shè)備中提供高速緩存來加速應用和數(shù)據(jù)的遞送。在一個實施例中,設(shè)備205提供在任一級別的網(wǎng)絡堆?;蛟谌我坏膮f(xié)議或網(wǎng)絡層的網(wǎng)絡業(yè)務量的壓縮。在另一個實施例中,設(shè)備205提供傳輸層協(xié)議優(yōu)化、流量控制、性能增強或修改和/或管理,以加速WAN連接上的應用和數(shù)據(jù)的遞送。例如,在一個實施例中,設(shè)備205提供傳輸控制協(xié)議(TCP)優(yōu)化。在其它實施例中,設(shè)備205提供對于任一會話或應用層協(xié)議的優(yōu)化、流量控制、性能增強或修改和/或管理。
0033在另一個實施例中,設(shè)備205將任一類型和形式的數(shù)據(jù)或
以將存在、功能或能力通告給另一個設(shè)備205'。在另一個實施例中,設(shè)備205'可以使用在TCP和/或IP報頭字段或選項中編碼的數(shù)據(jù)來與另一個設(shè)備205'進行通信。例如,設(shè)備可以使用TCP選項或IP報頭字段或選項來傳達在執(zhí)行諸如WAN加速的功能時或者為了彼此聯(lián)合工作而由設(shè)備205, 205'所使用的一個或多個參數(shù)。
0034在一些實施例中,設(shè)備200保存在設(shè)備205和205'之間傳達的TCP和/或IP報頭和/或可選字段中編碼的任一信息。例如,設(shè)備200可以終止經(jīng)過設(shè)備200的傳輸層連接,例如經(jīng)過設(shè)備205和205'的在客戶機和服務器之間的一個傳輸層連接。在一個實施例中,設(shè)備200識別并保存在由第一設(shè)備205通過第一傳輸層連接發(fā)送的傳輸層分組中的任一編碼信息,并經(jīng)由第二傳輸層連接來將具有編碼信息的傳輸層分組傳達到第二設(shè)備205'。
0035現(xiàn)在參考圖1D,描述了用于遞送和/或操作客戶機102上的計算環(huán)境的網(wǎng)絡環(huán)境。在一些實施例中,服務器106包括用于將計算環(huán)境或應用和/或凄史據(jù)文件遞送給一個或多個客戶才幾102的應用遞送系統(tǒng)190。簡單概述,客戶機10經(jīng)由網(wǎng)絡104、 104'和設(shè)備200與服務器106通信。例如,客戶機102可以駐留在例如分支機構(gòu)的公司的遠程辦公室,而服務器106可以駐留在公司的數(shù)據(jù)中心??蛻魴C102包括客戶機代理120和計算環(huán)境15。計算環(huán)境15可以執(zhí)行或才喿作訪問、處理或使用數(shù)據(jù)文件的應用??梢越?jīng)由設(shè)備200和/或服務器106來遞送計算環(huán)境15、應用和/或數(shù)據(jù)文件。
0036在一些實施例中,設(shè)備200加速將計算環(huán)境15或其任一部分遞送給客戶機102。在一個實施例中,設(shè)備200通過應用遞送系統(tǒng)190來加速計算環(huán)境15的遞送。例如,此處描述的實施例可以用來將可由應用處理的流應用和數(shù)據(jù)文件加速從中央的公司數(shù)據(jù)中心遞送到遠程用戶的位置,例如公司的分支機構(gòu)。在另一個實施例中,設(shè)備200加速在客戶機102和服務器106之間的傳輸層業(yè)務量。設(shè)備200可以提供用于加速從服務器106到客戶機102的任一傳輸層有效載荷的加速技術(shù),例如l)傳輸層連接池,2)傳輸層連接多路復用,3)傳輸控制協(xié)議緩沖,4)壓縮和5)高速緩存。在一些實施例中,設(shè)備200提供響應于客戶機102的請求的服務器106的負載平衡。在其它實施例中,設(shè)備200充當代理或訪問服務器以提供對一個或多個服務器106的訪問。在另一個實施例中,設(shè)備200提供從客戶機102的第一網(wǎng)絡104到服務器106的第二網(wǎng)絡104'的安全虛擬專用網(wǎng)連接,例如SSLVPN連接。在又一些實施例中,設(shè)備200 ^提供在客戶機102和服務器106之間的連接和通信的應用防火墻安全、控制和管理。
0037在一些實施例中,應用遞送管理系統(tǒng)190根據(jù)多個執(zhí)行方法以及根據(jù)經(jīng)由策略引擎195應用的任一驗證和授權(quán)策略來提供將計算環(huán)境遞送到遠端或另外的用戶的桌面的應用遞送技術(shù)。使用這些技術(shù),遠程用戶可以從任一網(wǎng)絡連接裝置100獲取計算環(huán)境以及訪問服務器存儲的應用和數(shù)據(jù)文件。在一個實施例中,應用遞送系統(tǒng)190可以駐留于
服務器106或在服務器106上執(zhí)行。在另一個實施例中,應用遞送系統(tǒng)190可以駐留于多個服務器106a-106n上或在多個服務器106a-106n上執(zhí)行。在一些實施例中,應用遞送系統(tǒng)190可以在服務器群組38中執(zhí)行。在一個實施例中,執(zhí)行應用遞送系統(tǒng)190的服務器106還可以存儲或提供應用和數(shù)據(jù)文件。在另一個實施例中,第一組的一個或多個服務器106可以執(zhí)行應用遞送系統(tǒng)190,而不同的服務器106n可以存4諸或提供應用和數(shù)據(jù)文件。在一些實施例中,應用遞送系統(tǒng)190、應用和數(shù)據(jù)文件中的每一個可以駐留或位于不同的服務器上。在又一個實施例中,應用遞送系統(tǒng)190的任一部分可以駐留、執(zhí)行或保存或被分配于設(shè)備200或多個設(shè)備。
0038客戶機102可以包括用于執(zhí)行使用或處理數(shù)據(jù)文件的應用的計算環(huán)境15??蛻魴C102可以經(jīng)由網(wǎng)絡104、 104'和設(shè)備200來從服務器106請求應用和數(shù)據(jù)文件。在一個實施例中,設(shè)備200可以將來自于客戶機102的請求轉(zhuǎn)發(fā)到服務器106。例如,客戶機102可以不具有本地存儲或可存取的應用和數(shù)據(jù)文件。響應于請求,應用遞送系統(tǒng)190和/或服務器106可以遞送應用和數(shù)據(jù)文件到客戶機102。例如,在一個實施例中,服務器106可以以應用流的形式發(fā)送應用,以在客戶機102上的計算環(huán)境15中進行操作。
0039在一些實施例中,應用遞送系統(tǒng)190包括Citrix Systems公司的例如MetaFrame或Citrix表示(Presentation )服務器 6々Citrix訪問套件TM的任一部分和/或由微軟公司出品的任意一種微軟⑧Windows終端服務。在一個實施例中,應用遞送系統(tǒng)190可以通過遠程顯示協(xié)議或以其它方式通過基于遠程或基于服務器的計算來遞送一個或多個應用到客戶才幾102或用戶。在另一個實施例中,應用遞送系統(tǒng)190可以通過應用的流式傳輸來遞送一個或多個應用到客戶機或用戶。
0040在一個實施例中,應用遞送系統(tǒng)190包括用于控制和管理應用執(zhí)行方法的訪問、選擇以及應用的遞送的策略引擎195。在一些實施例中,策略引擎195確定用戶或客戶機102可以訪問的一個或多個應用。在另一個實施例中,策略引擎195確定應用應該如何;故遞送給用戶或客戶機102,例如執(zhí)行方法。在一些實施例中,應用遞送系統(tǒng)190提供/人中 選擇應用執(zhí)行方法的多個遞送技術(shù),例如基于服務器的計算、本地流式
傳輸或遞送應用給客戶才幾12 0以用于本地執(zhí)行。
0041在一個實施例中,客戶機102請求執(zhí)行應用程序而包括服 務器106的應用遞送系統(tǒng)190選擇執(zhí)行應用程序的方法。在一些實施例 中,服務器106從客戶機102接收證書。在另一個實施例中,服務器106 從客戶機102接收列舉可用的應用的請求。在一個實施例中,響應于所 述請求或收到的證書,應用遞送系統(tǒng)190列舉客戶機102可用的多個應 用程序。應用遞送系統(tǒng)190接收請求以執(zhí)行所列舉的應用。應用遞送系 統(tǒng)190選擇預定數(shù)目的方法中的一個來執(zhí)行列舉的應用,例如響應于策 略引擎的策略。應用遞送系統(tǒng)190可以選擇一個執(zhí)行應用的方法,使得 客戶機102可以接收通過在服務器106上執(zhí)行應用程序而生成的應用輸 出數(shù)據(jù)。應用遞送系統(tǒng)190可以選擇執(zhí)行應用的方法,使得本地機器10 可以在檢索包括應用的多個應用文件之后本地執(zhí)行所述應用程序。在又 一個實施例中,應用遞送系統(tǒng)190可以選4奪執(zhí)行應用的方法以經(jīng)由網(wǎng)絡 104將應用流式傳輸?shù)娇蛻魴C102。
0042客戶機102可以執(zhí)行、操作或以其他方式提供應用,所述 應用可以是任一類型和/或形式的軟件、程序或可執(zhí)行指令,例如任一類 型和/或形式的web瀏覽器、基于web的客戶機、客戶機-服務器應用、 瘦-客戶才幾的計算客戶機、ActiveX控件、或Java小程序、或可以在客戶 機102上執(zhí)行的任一其它類型和/或形式的可執(zhí)行指令。在一些實施例中, 應用可以是代表客戶機102在服務器106上執(zhí)行的基于服務器或基于遠 程的應用。在一個實施例中,服務器106可以使用任一瘦-客戶機或遠程 顯示協(xié)議來顯示輸出到客戶機102,所述遠程顯示協(xié)議例如由位于Ft. Lauderdale, Florida的Citrix Systems />司出品的獨立計算架構(gòu)(ICA) 協(xié)議或由位于Redmond, Washington的微軟公司出品的遠程桌面協(xié)議 (RDP)。應用可以使用任一類型的協(xié)議,并且它可以是例如HTTP客戶機、 FTP客戶才幾、Oscar客戶才幾或Telnet客戶機。在其它實施例中,應用包 括與VoIP通信相關(guān)的任一類型的軟件,例如軟IP電話。在進一步的實 施例中,應用包括與實時數(shù)據(jù)通信相關(guān)的任一應用,例如用于流式傳輸一見頻和/或音頻的應用。
0043在一些實施例中,服務器106或服務器群組38可以運行一
個或多個應用,例如提供瘦-客戶機計算的應用或遠程顯示表示應用的應
用。在一個實施例中,服務器106或服務器群組38作為應用而執(zhí)行Ci tr ix Systems公司的例如MetaFrame或Citrix表示月良務器7"的Citrix訪問套 件7"的任一部分和/或由微軟公司出品的任意一種微軟⑧Windows終端服 務。在一個實施例中,應用是由位于Fort Lauderdale, Florida的Citrix Systems />司開發(fā)的ICA客戶機。在其它實施例中,應用包括由位于 Redmond, Washington的《鼓軟公司開發(fā)的遠程桌面(RDP)客戶機。此夕卜, 服務器106可以運行應用,例如,所述服務器106可以是提供例如由位 于Redmond, Washington的微軟公司出品的微軟Exchange的電子郵件服 務的應用服務器、web或Internet服務器、或桌面共享服務器、或協(xié)作 服務器。在一些實施例中,任意一種應用可以包括任一類型的寄載服務 或產(chǎn)品,例如由Santa Barbara, California的Ci trix 0nline部門^是供 的GoToMeeting 、由位于Santa Clara, Cal if ornia的WebEx公司提供的 WebEx 、或由位于Redmond, Washington的微軟公司提供的微軟Office Live Meeting。
0044仍然參考圖1D,網(wǎng)絡環(huán)境的一個實施例可以包括監(jiān)控服務 器106A。監(jiān)控服務器106A可以包括任一類型和形式的性能監(jiān)控業(yè)務198。 性能監(jiān)控業(yè)務198可以包括監(jiān)控、測量和/或管理軟件和/或硬件,包括 數(shù)據(jù)收集、集合、分析、管理和報告。在一個實施例中,性能監(jiān)控業(yè)務 198包括一個或多個監(jiān)控代理197。監(jiān)控代理197包括用于在諸如客戶機 102、服務器106或設(shè)備200和205的裝置上執(zhí)行監(jiān)控、測量和數(shù)據(jù)收集 活動的任一軟件、硬件或其組合。在一些實施例中,監(jiān)控代理197包括 諸如Visual Basic腳本或Java描述語言的任一類型和形式的腳本。在 一個實施例中,監(jiān)控代理197相對于裝置的任一應用和/或用戶透明地執(zhí) 行。在一些實施例中,監(jiān)控代理197相對于應用或客戶機不引人注目地 被安裝和操作。在又一個實施例中,監(jiān)控代理197被安裝和操作而不需 要用于該應用或裝置的任何設(shè)備(instrumental;ion )。
0045在一些實施例中,監(jiān)控代理197以預定頻率監(jiān)控、測量和收集數(shù)據(jù)。在其它實施例中,監(jiān)控代理197基于任一類型和形式的事件
的檢測來監(jiān)控、測量和收集數(shù)據(jù)。例如,監(jiān)控代理197可以在一企測到對 web頁面的請求或收到HTTP響應時收集數(shù)據(jù)。在另一個實例中,監(jiān)控代 理197可以在檢測到諸如鼠標點擊的任一用戶輸入事件時收集數(shù)據(jù)。監(jiān) 控代理197可以報告或提供任一所監(jiān)控、測量或收集的數(shù)據(jù)給監(jiān)控業(yè)務 198。在一個實施例中,監(jiān)控代理197根據(jù)調(diào)度或預定頻率來發(fā)送信息給 監(jiān)控業(yè)務198。在另一個實施例中,監(jiān)控代理197在檢測到事件時發(fā)送信 息給監(jiān)控業(yè)務198。
0046在一些實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197執(zhí)行諸 如客戶機、服務器、服務器群組、設(shè)備200、設(shè)備205或網(wǎng)絡連接的任一 網(wǎng)絡資源或網(wǎng)絡基礎(chǔ)結(jié)構(gòu)元件的監(jiān)控和性能測量。在一個實施例中,監(jiān) 控業(yè)務198和/或監(jiān)控代理197執(zhí)行諸如TCP或UDP連接的任一傳輸層連 接的監(jiān)控和性能測量。在另一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理 197監(jiān)控和測量網(wǎng)絡等待時間。在又一個實施例中,監(jiān)控業(yè)務198和/或 監(jiān)控代理197監(jiān)控和測量帶寬利用。
0047在其它實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和 測量終端用戶響應時間。在一些實施例中,監(jiān)控業(yè)務198執(zhí)行應用的監(jiān) 控和性能測量。在另一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197執(zhí) 行到應用的任一會話或連接的監(jiān)控和性能測量。在一個實施例中,監(jiān)控 業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量瀏覽器的性能。在另一個實施例 中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量基于HTTP的事務的性 能。在一些實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量IP 上語音(VoIP)應用或會話的性能。在其它實施例中,監(jiān)控業(yè)務198和/ 或監(jiān)控代理197監(jiān)控和測量諸如ICA客戶機或RDP客戶機的遠程顯示協(xié) 議應用的性能。在又一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān) 控和測量任一類型和形式的流媒體的性能。在進一步的實施例中,監(jiān)控 業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量寄載應用或軟件即服務 (Software-As-A-Service, SaaS )遞送模型的性能。
0048在一些實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197執(zhí)行與 應用相關(guān)的一個或多個事務、請求或響應的監(jiān)控和性能測量。在其它實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量應用層堆棧的任一 部分,例如任一.NET或J2EE調(diào)用。在一個實施例中,監(jiān)控業(yè)務198和/ 或監(jiān)控代理197監(jiān)控和測量數(shù)據(jù)庫或SQL事務。在又一個實施例中,監(jiān) 控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量任一方法、函數(shù)或應用編程接 口 (API)調(diào)用。
0049在一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197執(zhí)行經(jīng) 由諸如設(shè)備200和/或設(shè)備205的一個或多個設(shè)備從服務器到客戶機的應 用和/或數(shù)據(jù)的遞送的監(jiān)控和性能測量。在一些實施例中,監(jiān)控業(yè)務198 和/或監(jiān)控代理197監(jiān)控和測量虛擬化應用的遞送的性能。在其它實施例 中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量流式應用的遞送的性能。 在另一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量遞送桌 面應用到客戶機和/或在客戶機上執(zhí)行桌面應用的性能。在另一個實施例 中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控和測量客戶機/服務器應用的 性能。
0050在一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197被設(shè)計 和構(gòu)建為應用遞送系統(tǒng)190提供應用性能管理。例如,監(jiān)控業(yè)務198和/ 或監(jiān)控代理197可以監(jiān)控、測量和管理經(jīng)由Citrix表示服務器遞送應用 的性能。在該實例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197監(jiān)控單獨的ICA 會話。監(jiān)控業(yè)務198和/或監(jiān)控代理197可以測量總的以及每次的會話系 統(tǒng)資源使用,以及應用和連網(wǎng)性能。監(jiān)控業(yè)務198和/或監(jiān)控代理197可 以對于給定用戶和/或用戶會話來標識有效服務器。在一些實施例中,監(jiān) 控業(yè)務198和/或監(jiān)控代理197監(jiān)控在應用遞送系統(tǒng)190和應用和/或數(shù) 據(jù)庫服務器之間的后端連接。監(jiān)控業(yè)務198和/或監(jiān)控代理197可以測量 每個用戶會話或ICA會話的網(wǎng)絡等待時間、延遲和容量。
0051在一些實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和 監(jiān)控對于應用遞送系統(tǒng)190的諸如總的存儲器使用、每個用戶會話和/或 每個進程的存儲器使用。在其它實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理 197測量和監(jiān)控諸如總的CPU使用、每個用戶會話和/或每個進程的應用 遞送系統(tǒng)190的CPU使用。在另一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控 代理197測量和監(jiān)控登錄到諸如CUrix表示服務器的應用、服務器或應用遞送系統(tǒng)所需的時間。在一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理
197測量和監(jiān)控用戶登錄應用、服務器或應用遞送系統(tǒng)190的持續(xù)時間。 在一些實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和監(jiān)控應用、服 務器或應用遞送系統(tǒng)會話的有效和無效的會話計數(shù)。在又一個實施例中, 監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和監(jiān)控用戶會話等待時間。
0052在又一個進一步的實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理 197測量和監(jiān)控任一類型和形式的服務器規(guī)格(metrics )。在一個實施例 中,監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和監(jiān)控與系統(tǒng)存儲器、CPU使 用和磁盤存儲器有關(guān)的規(guī)格。在另一個實施例中,監(jiān)控業(yè)務198和/或監(jiān) 控代理197測量和監(jiān)控和頁錯誤有關(guān)的規(guī)格,諸如每秒頁錯誤。在其它 實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和監(jiān)控往返時間的規(guī)格。 在又一個實施例中,監(jiān)控業(yè)務198和/或監(jiān)控代理197測量和監(jiān)控與應用 崩潰、錯誤和/或中止相關(guān)的規(guī)格。
0053在一些實施例中,監(jiān)控業(yè)務198和監(jiān)控代理198包括由位 于Ft. Lauderdale, Florida的Citrix Systems 乂>司出品的^皮稱為 EdgeSight的任意一種產(chǎn)品實施例。在另一個實施例中,性能監(jiān)控業(yè)務 198和/或監(jiān)控代理198包括由位于Palo Alto, California的Symphoniq 公司出品的一皮稱為TrueView產(chǎn)品套件的產(chǎn)品實施例的任一部分。在一個 實施例中,性能監(jiān)控業(yè)務198和/或監(jiān)控代理198包括由位于San Francisco, California的TeaLeaf #支術(shù)/>司出品的祐:稱為TeaLeafCX產(chǎn) 品套件的產(chǎn)品實施例的任一部分。在其它實施例中,性能監(jiān)控業(yè)務198 和/或監(jiān)控代理198包括由位于Houston, Texas的BMC軟件公司出品的諸 如BMC性能管理器和巡邏產(chǎn)品(BMC Performance Manager and Patrol products)的商業(yè)業(yè)務管理產(chǎn)品的任一部分。
0054客戶機102、服務器106和設(shè)備200可以被部署和/或執(zhí)行 在任一類型和形式的計算裝置上,例如可以在任一類型和形式的網(wǎng)絡上 通信并執(zhí)行此處描述的操作的計算機、網(wǎng)絡裝置或設(shè)備。圖1E和1F描 述了可用于實施客戶機102、服務器106或設(shè)備200的實施例的計算裝置 100的框圖。如圖IE和IF所示,每個計算裝置100包括中央處理單元 101和主存^f諸器單元122。如圖IE所示,計算裝置100可以包括可視顯示裝置124、鍵盤126和/或諸如鼠標的點擊裝置127。每個計算裝置100 也可以包括另外的可選元件,例如一個或多個輸入/輸出裝置130a-130b (通常使用附圖標記130來指示)以及與中央處理單元101通信的高速 緩存140。
0055中央處理單元101是響應并處理取自主存儲器單元122的 指令的任一邏輯電路。在許多實施例中,中央處理單元由微處理器單元 才是供,例如由4立于Mountain View, California的Intel />司出品的產(chǎn) 品;由^f立于Schaumburg, Illinois的Motorola公司出品的產(chǎn)品;由^f立于 Santa Clara, California的Transmeta/>司出品的產(chǎn)品;由4立于White Plains, New York的國際商業(yè)機器公司出品的RS/6000處理器;或者由位 于Sunnyvale, California的Advanced Micro Devices公司出品的產(chǎn)品。 計算裝置100可以基于任一的這些處理器、或者可以如此處所描述地才喿 作的任一其它處理器。
0056主存儲器單元122可以是可以保存數(shù)據(jù)并允許由微處理器 101直接訪問的任一存儲位置的一個或多個存儲芯片,例如靜態(tài)隨機存取 存儲器(SRAM)、突發(fā)式SRAM或同步突發(fā)式SRAM (BSRAM)、動態(tài)隨機存 取存儲器(DRAM )、快速頁面才莫式DRAM ( FPM DRAM )、增強型DRAM ( EDRAM )、 擴展數(shù)據(jù)輸出RAM (EDO RAM)、擴展數(shù)據(jù)輸出DRAM (EDO DRAM)、突發(fā)式 擴展數(shù)據(jù)輸出DRAM( BEDO DRAM )、增強型DRAM( EDRAM )、同步DRAM( SDRAM )、 JEDEC SRAM、 PC100 SDRAM、雙數(shù)據(jù)速率SDRAM ( DDR SDRAM )、增強型SDRAM (ESDRAM)、同步鏈接DRAM ( SLDRAM )、直接Rambus DRAM ( DRDRAM )、或 鐵電RAM ( FRAM)。主存儲器122可以基于任意一種上面描述的存儲芯片、 或者可以如此處所描述地操作的任一其它可用的存儲芯片。在圖IE中所 示的實施例中,處理器101通過系統(tǒng)總線150(在下面進行更詳細的描述) 與主存儲器122進行通信。圖1E描述了在其中處理器通過存儲器端口 103 直接與主存儲器122通信的計算裝置100的實施例。例如,在圖1F中, 主存4諸器122可以是DRDRAM。
0057圖1F描述了在其中主處理器101通過有時被稱為背端總線 的次級總線來直接與高速緩存14G通信的實施例。在其它實施例中,主 處理器101使用系統(tǒng)總線150與高速緩存140進行通信。高速緩存140典型地具有比主存儲器122更快的響應時間,并且典型地通過SR趨、BSRAM 或EDRAM來提供。在圖IE中所示的實施例中,處理器101通過本地系統(tǒng) 總線150與多個1/0裝置130進行通信。多種總線可以用來將中央處理 單元101連接到任意一種1/0裝置130,所述總線包括VESA VL總線、ISA 總線、EISA總線、微通道架構(gòu)(MCA)總線、PCI總線、PCI-X總線、 PCI-Express總線或NuBus。對于1/0裝置是碎見頻顯示器124的實施例, 處理器101可以使用高級圖形端口 (AGP)來與顯示器124進行通信。圖 1F描述了在其中主處理器101通過HyperTransport、快速I/O或 InfiniBand來直4妻與I/O裝置130通信的計算4幾100的一個實施例。圖 1F還描述了混合本地總線和直接通信的一個實施例處理器101使用本 地互連總線與I/O裝置130進行通信,同時直接與I/O裝置130進行通 信。
0058計算裝置IOO可以支持任一適當?shù)陌惭b裝置116,例如用于 接收像3. 5英寸、5. 25英寸磁盤或ZIP磁盤這樣的軟盤的軟盤驅(qū)動器、 CD-ROM驅(qū)動器、CD-R/RW驅(qū)動器、DVD-ROM驅(qū)動器、多種格式的磁帶驅(qū)動 器、USB裝置、硬盤驅(qū)動器或適于安裝像任一客戶機代理120或其部分的 軟件和程序的任一其它裝置。計算裝置IOO還可以包括存儲裝置128,例 如一個或多個硬盤驅(qū)動器或獨立;茲盤的冗余陣列,用于保存操作系統(tǒng)及 其它相關(guān)軟件,以及用于保存諸如與客戶機代理120相關(guān)的任一程序的 應用軟件程序??蛇x地,任意一種安裝裝置116還可以被用作存儲裝置 128。另外,操作系統(tǒng)和軟件可以從可引導介質(zhì)中運行,所述可引導介質(zhì) 例如像KNOPPIX⑧的可引導CD,作為來自于knoppix. net可用作G冊/Linux 分發(fā)的GNU/Linux的可引導CD。
0059進一步地,計算裝置100可以包括通過多種連接聯(lián)接到局 域網(wǎng)(LAN)、廣域網(wǎng)(WAN)或因特網(wǎng)的網(wǎng)絡接口 118,所述多種連接包 括但不限于標準電話線、LAN或WAN鏈路(例如,802.11、 Tl、 T3、 56kb、 X.25)、寬帶連接(例如,ISDN、幀中繼、ATM)、無線連接或上述任一或 所有連接的一些組合。網(wǎng)絡接口 118可以包括內(nèi)置網(wǎng)絡適配器、網(wǎng)絡接 口卡、PCMCIA網(wǎng)卡、插件總線網(wǎng)絡適配器、無線網(wǎng)絡適配器、USB網(wǎng)絡 適配器、調(diào)制解調(diào)器或適于將計算裝置100連接到可以傳達并執(zhí)行此處所描述的操作的任一類型的網(wǎng)絡的任一其它裝置。各式各樣的I/O裝置
130a-130n可以存在于計算裝置100中。輸入裝置包括鍵盤、鼠標、軌道 墊、軌道球、麥克風以及繪畫板。輸出裝置包括視頻顯示器、揚聲器、 噴墨打印機、激光打印機和染料升華打印機。I/O裝置130可以由如圖 1E所示的I/O控制器123控制。I/O控制器可以控制諸如鍵盤126和例 如鼠標或光筆的點擊裝置127的一個或多個1/0裝置。進一步地,1/0裝 置還可以為計算裝置IOO提供存儲裝置128和/或安裝介質(zhì)116。還是在 其它實施例中,計算裝置100可以提供USB連接以接收諸如由位于Los Alamitos, California的Twintech Indus try/>司出品的USB閃存驅(qū)動器 系列裝置這樣的便攜USB存儲裝置。
0060在一些實施例中,計算裝置100可以包括或連接到多個顯 示裝置124a-124n,每個顯示裝置可以是相同或不同的類型和/或形式。 因而,任意一種1/0裝置130a-130n和/或1/0控制器123可以包括4壬一 類型和/或形式的適當?shù)挠布?、軟件或硬件和軟件的組合,以支持、允許 或提供通過計算裝置100連接和使用多個顯示裝置124a-124n。例如,計 算裝置100可以包括任一類型和/或形式的視頻適配器、視頻卡、驅(qū)動程 序和/或庫,以聯(lián)系、通信、連接或以其他方式^f吏用顯示裝置124a-124n。 在一個實施例中,視頻適配器可以包括多個連接器以聯(lián)接多個顯示裝置 124a-124n。在其它實施例中,計算裝置100可以包括多個視頻適配器, 每個視頻適配器連接到一個或多個顯示裝置124a-124n。在一些實施例 中,計算裝置100的操作系統(tǒng)的任一部分可以被配置用于使用多個顯示 器124a-124n。在其它實施例中, 一個或多個顯示裝置124a-124n可以由 一個或多個諸如例如通過網(wǎng)絡連接到計算裝置100的計算裝置100a和 100b的其它的計算裝置來提供。這些實施例可以包括被設(shè)計和構(gòu)建為將 另一個計算機的顯示裝置用作計算裝置100的第二顯示裝置124a的任一 類型的軟件。本領(lǐng)域普通技術(shù)人員將認識和理解計算裝置100可以被配 置為具有多個顯示裝置124a-124n的多個方法和實施例。
0061在進一步的實施例中,1/0裝置130可以是在系統(tǒng)總線150 和外部通信總線之間的網(wǎng)橋170,所述外部通信總線例如USB總線、Apple Desktop總線、RS-232串行連接、SCSI總線、FireWire總線、FireWire800總線、以太網(wǎng)總線、A卯leTalk總線、吉比特以太網(wǎng)總線、異步傳送 模式總線、HIPPI總線、超HIPPI總線、SerialPlus總線、SCI/LAMP總 線、FibreChannel總線或串行附加小型計算機系統(tǒng)接口總線。
0062圖1E和1F中描述類型的計算裝置100典型地在控制任務 的調(diào)度和對系統(tǒng)資源的訪問的操作系統(tǒng)的控制下操作。計算裝置100可 以運行任一操作系統(tǒng),例如任意一種版本的微軟⑧Windows操作系統(tǒng)、不 同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計算機的任一版本的 MacOS 、任一的嵌入式操作系統(tǒng)、任一的實時操作系統(tǒng)、任一的開放源 操作系統(tǒng)、任一的專用操作系統(tǒng)、用于移動計算裝置的任一操作系統(tǒng)、 或者可以運行在計算裝置上并執(zhí)行此處所描述的操作的任一其它操作系 統(tǒng)。典型的操作系統(tǒng)其中包括:WINDOWS 3. x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3. 51、 WINDOWS NT 4. 0、 WINDOWS CE和WINDOWS XP,所有這些均由位于Redmond, Washington的微軟7>司出品;由位于 Cupertino, California的蘋果計算機出品的MacOS;由位于Armonk, New York的國際商業(yè)才幾器乂>司出品的OS/2;以及由位于Salt Lake City, Utah 的Caldera公司發(fā)布的可免費使用的Linux操作系統(tǒng)或者任一類型和/或 形式的Unix操作系統(tǒng),以及其它。
0063在其它實施例中,計算裝置100可以具有和所述裝置一致 的不同的處理器、操作系統(tǒng)和輸入裝置。例如,在一個實施例中,計算 機100是由Palm/>司出品的Treo180、 270、 1060、 600或650智能電話。 在該實施例中,Treo智能電話在PalmOS操作系統(tǒng)的控制下操作,并包括 指示筆輸入裝置以及五向?qū)Ш窖b置。此外,計算裝置100可以是任一工 作站、臺式計算機、膝上型或筆記本計算機、服務器、便攜計算機、移 動電話、任一其它計算機、或者可以通信并具有執(zhí)行此處所描述的操作 的足夠的處理器能力和存儲容量的其它形式的計算或電信裝置。
B.設(shè)備架構(gòu)
0064圖2A舉例說明了設(shè)備200的一個示例實施例。提供圖2A 中的設(shè)備200的架構(gòu)僅僅是為了說明,并不是意于進行限制。如圖2所 示,設(shè)備200包括硬件層206和被分為用戶空間202和內(nèi)核空間204的軟件層。
0065硬件層206提供在其上執(zhí)行內(nèi)核空間204和用戶空間202 中的程序和服務的硬件元件。硬件層206還提供允許內(nèi)核空間204和用 戶空間202中的程序和服務關(guān)于設(shè)備200的向內(nèi)和向外傳遞數(shù)據(jù)的結(jié)構(gòu) 和元件。如圖2所示,硬件層206包括用于執(zhí)行軟件程序和服務的處理 單元262、用于保存軟件和數(shù)據(jù)的存儲器264、用于在網(wǎng)絡上發(fā)送和接收 數(shù)據(jù)的網(wǎng)絡端口 266以及用于執(zhí)行與在網(wǎng)絡上發(fā)送和接收的數(shù)據(jù)的安全 套接字層處理相關(guān)的功能的加密處理器260。在一些實施例中,中央處理 單元262可以在單個的處理器中執(zhí)行加密處理器260的功能。另外,硬 件層206可以包括用于每個處理單元262和加密處理器260的多個處理 器。處理器262可以包括如上所述的與圖1E和1F有關(guān)的任一處理器101。 在一些實施例中,中央處理單元262可以在單個的處理器中執(zhí)行加密處 理器260的功能。另外,硬件層206可以包括用于每個處理單元262和 加密處理器260的多個處理器。例如,在一個實施例中,設(shè)備200包括 第一處理器262和第二處理器262'。在其它實施例中,處理器262或262' 包括多核處理器。
0066雖然通常所示設(shè)備200的硬件層206具有加密處理器260, 但處理器260可以是用于執(zhí)行與諸如安全套接字層(SSL )或傳輸層安全 (TLS)協(xié)議的任一加密協(xié)議相關(guān)的功能的處理器。在一些實施例中,處 理器260可以是通用處理器(GPP),并且在進一步的實施例中,可以具 有用于執(zhí)行任一安全相關(guān)協(xié)議的處理的可執(zhí)行指令。
0067雖然在圖2中用某些元件來說明設(shè)備200的硬件層206,但 設(shè)備200的硬件部分或部件可以包括計算裝置的任一類型和形式的元件、 硬件或軟件,諸如此處結(jié)合圖1E和1F來舉例說明和討論的計算裝置100。 在一些實施例中,設(shè)備200可以包括服務器、網(wǎng)關(guān)、路由器、交換機、 網(wǎng)橋或其它類型的計算或網(wǎng)絡裝置,并具有與此相關(guān)的任一硬件和/或軟 件元件。
0068設(shè)備200的操作系統(tǒng)將可用的系統(tǒng)存儲器分配、管理或者 以其他方式分離成內(nèi)核空間204和用戶空間204。在示例的軟件架構(gòu)200 中,操作系統(tǒng)可以是任一類型和/或形式的Unix操作系統(tǒng),盡管本發(fā)明并未這樣限制。因而,設(shè)備200可以運行任一操作系統(tǒng),例如任意一種
版本的微軟⑧Windows操作系統(tǒng)、不同版本的Unix和Linux操作系統(tǒng)、用于Macintosh計算機的任一版本的Mac 0S 、任一的嵌入式操作系統(tǒng)、任一的網(wǎng)絡操作系統(tǒng)、任一的實時操作系統(tǒng)、任一的開放源操作系統(tǒng)、任一的專用操作系統(tǒng)、用于移動計算裝置或網(wǎng)絡裝置的任一操作系統(tǒng)、或者可以運行在設(shè)備200上并執(zhí)行此處所描述的操作的任一其它操作系統(tǒng)。
0069內(nèi)核空間204被保留用于運行內(nèi)核230,所述內(nèi)核230包括任一設(shè)備驅(qū)動程序、內(nèi)核擴展或其它內(nèi)核相關(guān)軟件。如本領(lǐng)域技術(shù)人員所知,內(nèi)核230是操作系統(tǒng)的核心,并提供對應用104的資源和硬件相關(guān)的元件的訪問、控制和管理。才艮據(jù)設(shè)備200的實施例,內(nèi)核空間204還包括和有時還被稱為集成高速緩存的高速緩存管理器232 —起工作的多個網(wǎng)絡服務或進程,此處進一步詳細描述其有益之處。另外,內(nèi)核230的實施例將依賴于由裝置200所安裝、配置或者以其他方式使用的操作系統(tǒng)的實施例。
0070在一個實施例中,裝置200包括諸如基于TCP/IP的堆棧的一個網(wǎng)絡堆棧267,用于與客戶機102和/或服務器106進行通信。在一個實施例中,網(wǎng)絡堆棧267用于與諸如網(wǎng)絡108的第一網(wǎng)絡以及第二網(wǎng)絡110進行通信。在一些實施例中,裝置200終止諸如客戶機102的TCP連接的第一傳輸層連接,并建立由客戶機102使用的到服務器106的第二傳輸層連接,例如,第二傳輸層連接在設(shè)備200和服務器106處終止。第一和第二傳輸層連接可以經(jīng)由單個的網(wǎng)絡堆棧267建立。在其它實施例中,裝置200可以包括例如267和267'的多個網(wǎng)絡堆棧,并且第一傳輸層連接可以在一個網(wǎng)絡堆棧267處建立或終止,而第二傳輸層連接在第二網(wǎng)絡堆棧267'上建立或終止。例如, 一個網(wǎng)絡堆棧可以用于在第一網(wǎng)絡上接收和發(fā)送網(wǎng)絡分組,而另 一個網(wǎng)絡堆棧用于在第二網(wǎng)絡上接收和發(fā)送網(wǎng)絡分組。在一個實施例中,網(wǎng)絡堆棧267包括用于對設(shè)備200發(fā)送的一個或多個網(wǎng)絡分組排隊的緩沖器243。
0071如圖2所示,內(nèi)核空間204包括高速緩存管理器232、高速層2-7集成分組引擎240、加密引擎234、策略引擎236和多協(xié)議壓縮邏輯238。在內(nèi)核空間204或內(nèi)核模式而不是用戶空間202中單獨以及組合地運行這些部件或進程232、 240、 234、 236和238改進每一個這些部件的性能。內(nèi)核操作意味著這些部件或進程232、 240、 234、 236和238運行在裝置200的操作系統(tǒng)的核心地址空間中。例如,在內(nèi)核模式中運行加密引擎234通過將加密與解密操作移到內(nèi)核來改善加密性能,從而減少在內(nèi)核模式中的存儲空間或內(nèi)核線程與用戶模式中的存儲空間或線程之間的轉(zhuǎn)換的次數(shù)。例如,可以不需要將內(nèi)核模式中獲得的數(shù)據(jù)傳遞或復制到運行在用戶模式中的進程或線程,例如從內(nèi)核級的數(shù)據(jù)結(jié)構(gòu)到用戶級的數(shù)據(jù)結(jié)構(gòu)。在另一個方面,還減少了在內(nèi)核模式與用戶模式之間的上下文轉(zhuǎn)換的次數(shù)。另外,在內(nèi)核空間204中可以更有效地執(zhí)行在任意一個部件或進程232、 240、 235、 236和238之間通信和通信的同步。
0072在一些實施例中,部件232、 240、 234、 236和238的任一部分可以運行或操作在內(nèi)核空間204中,而這些部件232、 240、 234、 236和238的其它部分可以運^f亍或梯:作在用戶空間202中。在一個實施例中,設(shè)備200使用提供對一個或多個網(wǎng)絡分組的任一部分的訪問的內(nèi)核級數(shù)據(jù)結(jié)構(gòu),例如,網(wǎng)絡分組包括來自于客戶機102的請求或來自于服務器106的響應。在一些實施例中,可以由分組引擎240經(jīng)由到網(wǎng)絡堆棧267的傳輸層驅(qū)動程序接口或過濾器來獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括可經(jīng)由與網(wǎng)絡堆棧267相關(guān)的內(nèi)核空間204存取的任一接口和/或數(shù)據(jù)、由網(wǎng)絡堆棧267接收或傳送的網(wǎng)絡業(yè)務量或分組。在其它實施例中,可以由部件或進程232、 240、 234、 236和238中的《壬意一個來使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu),以執(zhí)行部件或進程的期望的操作。在一個實施例中,部件232、 240、 234、 236和238在使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時運行于內(nèi)核才莫式204中,而在另一個實施例中,部件232、 240、 234、 236和238在使用內(nèi)核級數(shù)據(jù)結(jié)構(gòu)時運行于用戶才莫式中。在一些實施例中,可以將內(nèi)核級數(shù)據(jù)結(jié)構(gòu)復制或傳遞到第二內(nèi)核級數(shù)據(jù)結(jié)構(gòu)或任一期望的用戶級數(shù)據(jù)結(jié)構(gòu)。
0073高速緩存管理器232可以包括軟件、硬件或軟件和硬件的任一組合,以提供對諸如由發(fā)信服務器106提供的對象或動態(tài)生成的對象的任一類型和形式的內(nèi)容的高速緩存訪問、控制和管理。由高速緩存管理器232處理和保存的數(shù)據(jù)、對象或內(nèi)容可以包括諸如標記語言的或者通過任一協(xié)議傳達的任一格式的數(shù)據(jù)。在一些實施例中,高速緩存管
理器232復制存儲在別處的原始數(shù)據(jù)或者以前計算、生成或發(fā)送的數(shù)據(jù),其中原始數(shù)據(jù)也許需要相對于讀取高速緩存元件來說更長的訪問時間以取出、計算或者以其他方式獲取。 一旦數(shù)據(jù)被保存在高速緩存元件中,未來的使用可以通過訪問高速緩存的拷貝而不是重新取回或再計算原始數(shù)據(jù)來進行,從而減少訪問時間。在一些實施例中,高速緩存元件可以包括裝置200的存儲器264中的數(shù)據(jù)對象。在其它實施例中,高速緩存元件可以包括具有比存儲器264更快的訪問時間的存儲器。在另一個實施例中,高速緩存元件可以包括諸如^_盤的一部分的裝置200的任一類型和形式的存儲元件。在一些實施例中,處理單元262可以提供由高速緩存管理器232使用的高速緩存。然而在進一步的實施例中,高速緩存管理器232可以使用存儲器、存儲裝置或處理單元的任一部分和組合,以用于高速緩存數(shù)據(jù)、對象及其它內(nèi)容。
0074進一步地,高速緩存管理器232包括任一邏輯、功能、規(guī)則或操作,以執(zhí)行此處所描述的設(shè)備200的技術(shù)的任一實施例。例如,高速緩存管理器232包括根據(jù)失效時間周期的期滿或一旦從客戶機102或服務器106接收到失效命令來使對象無效的邏輯或功能。在一些實施例中,高速緩存管理器232可以作為在內(nèi)核空間204中執(zhí)行的程序、月l務、進程或任務來操作,而在其它實施例中是在用戶空間202中操作。在一個實施例中,高速緩存管理器232的第一部分在用戶空間202中寺丸行,而第二部分在內(nèi)核空間204中執(zhí)行。在一些實施例中,高速緩存管理器232可以包括任一類型的通用處理器(GPP)或者諸如現(xiàn)場可編程門陣列(FPGA)、可編程邏輯器件(PLD)或?qū)S眉呻娐?ASIC)的任一其它類型的集成電路。
0075例如,策略引擎236可以包括智能統(tǒng)計引擎或者其它的可編程應用。在一個實施例中,策略引擎236提供配置機制以允許用戶標識、指定、限定或配置高速緩存策略。在一些實施例中,策略引擎236還可以訪問存儲器以支持諸如查找表或哈希表的數(shù)據(jù)結(jié)構(gòu)來啟用用戶選擇的高速緩存策略決策。在其它實施例中,策略引擎236可以包括任一邏輯、規(guī)則、功能或操作,以便確定和提供除了由設(shè)備200執(zhí)行的安全、網(wǎng)絡業(yè)務量、網(wǎng)絡訪問、壓縮或任一其它功能或操作的訪問、控制和管
理之外的由設(shè)備200高速緩存的對象、數(shù)據(jù)或內(nèi)容的訪問、控制和管理。
此處進 一 步描述特定高速緩存策略的進 一 步的實例。
0076在一些實施例中,策略引擎236可以提供配置機制以允許用戶標識、指定、限定或配置指導包括但不限于圖2B中描述的諸如vServers 275、 VPN功能280、內(nèi)聯(lián)網(wǎng)IP功能282、交換功能284、 DNS功能286、加速功能288、應用防火墻功能290和監(jiān)控代理197的部件的設(shè)備的任一其它部件或功能的行為的策略。在其它實施例中,策略引擎236可以響應于任一配置的策略來進行檢查、評價、實現(xiàn)或者以其他方式產(chǎn)生作用,并且還可以響應于策略來指導一個或多個設(shè)備功能的操作。
0077加密引擎234包括用于操控諸如SSL或TLS的任一安全相關(guān)協(xié)議的處理的任一邏輯、商業(yè)規(guī)則、功能或操作,或者另外的任一相關(guān)功能。例如,加密引擎234加密并解密經(jīng)由設(shè)備200傳遞的網(wǎng)絡分組或者其中的任一部分。加密引擎234還可以為客戶機102a-102n、服務器106a-106n或設(shè)備200設(shè)置或建立SSL或TLS連接。因而,加密引擎234提供SSL處理的卸載和加速。在一個實施例中,加密引擎234使用隧道協(xié)議來在客戶機102a-102n和服務器106a-106n之間提供虛擬專用網(wǎng)。在一些實施例中,加密引擎234與加密處理器260進行通信。在其它實施例中,加密引擎234包括運行在加密處理器260上的可執(zhí)行指令。
0078多協(xié)議壓縮引擎238包括用于壓縮諸如由裝置200的網(wǎng)絡堆棧267使用的任意一種協(xié)議的一個或多個協(xié)議的網(wǎng)絡分組的任一邏輯、商業(yè)規(guī)則、功能或操作。在一個實施例中,多協(xié)議壓縮引擎238雙向地在客戶機102a-102n和服務器106a-106n之間壓縮任一的基于TCP/IP的協(xié)議,包括消息應用編程接口 (MAPI )(電子郵件)、文件傳送協(xié)議(FTP )、超文本傳送協(xié)議(HTTP)、通用Internet文件系統(tǒng)(CIFS)協(xié)議(文件傳送)、獨立計算架構(gòu)(ICA)協(xié)議、遠程桌面協(xié)議(RDP)、無線應用協(xié)議(WAP)、移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在其它實施例中,多協(xié)議壓縮引擎238提供基于超文本標記語言(HTML)的協(xié)議的壓縮,并且在一些實施例中提供諸如可擴展標記語言(XML)的任一標記語言的壓縮。在一個實施例中,多協(xié)議壓縮引擎238提供諸如為設(shè)備200設(shè)計用于設(shè)備200通信的的任一協(xié)議的任一高性能協(xié)議的壓縮。在另一個實施例中,多協(xié)議壓縮引擎238使用修改的傳輸控制協(xié)議來壓縮任一通信的任一有效載荷或任一通信,所述修改的傳輸控制協(xié)議諸如事務TCP(T/TCP )、具有選一奪確認的TCP( TCP-SACK )、具有大窗口的TCP( TCP-LW )、諸如TCP-Vegas協(xié)議的擁塞預測協(xié)議以及TCP欺騙協(xié)議。
0079]因而,多協(xié)議壓縮引擎238為經(jīng)由桌面客戶機以及甚至移動客戶機訪問應用的用戶加速性能,所述桌面客戶機例如微軟Outlook以及T者如由i者如Oracle、 SAP和Siebel的通用的企業(yè)應用所啟動的〗壬一客戶機的非web瘦客戶機,所述移動客戶機例如掌上電腦。在一些實施例中,通過執(zhí)行于內(nèi)核模式204中以及與訪問網(wǎng)絡堆棧267的分組處理引擎24G結(jié)合在一起,多協(xié)議壓縮引擎238可以壓縮諸如任一應用層協(xié)議的由TCP/IP協(xié)議所攜帶的任意一種協(xié)議。
0080通常也被稱為分組處理引擎或分組引擎的高速層2-7集成分組引擎240負責管理由設(shè)備200經(jīng)由網(wǎng)絡端口 266接收和發(fā)送的分組的內(nèi)核級處理。高速層2-7集成分組引擎240可以包括用于在例如接收網(wǎng)絡分組或發(fā)送網(wǎng)絡分組的處理期間排隊一個或多個網(wǎng)絡分組的緩沖器。另外,高速層2-7集成分組引擎240與一個或多個網(wǎng)絡堆棧267通信以經(jīng)由網(wǎng)絡端口 266發(fā)送和接收網(wǎng)絡分組。高速層2-7集成分組引擎240和加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238 —起工作。更具體地,加密引擎234被配置為執(zhí)行分組的SSL處理,策略引擎236被配置為執(zhí)行諸如請求級內(nèi)容交換和請求級高速緩存重定向的與業(yè)務量管理相關(guān)的功能,而多協(xié)議壓縮邏輯238被配置為執(zhí)行與數(shù)據(jù)的壓縮和解壓縮相關(guān)的功能。
0081高速層2-7集成分組引擎240包括分組處理定時器242。在一個實施例中,分組處理定時器242提供一個或多個時間間隔以觸發(fā)輸入(即,接收)或輸出(即,發(fā)送)網(wǎng)絡分組的處理。在一些實施例中,高速層2-7集成分組引擎240響應于定時器242來處理網(wǎng)絡分組。分組處理定時器242提供任一類型和形式的信號給分組引擎240,以通知、觸發(fā)或傳達時間相關(guān)的事件、間隔或發(fā)生。在許多實施例中,分組處理定時器242以例如像100毫秒、5G毫秒或25毫秒這樣的毫秒級來進行操作。例如,在一些實施例中,分組處理定時器242提供時間間隔或者以其他方式使高速層2-7集成分組引擎240以10毫秒的時間間隔來處理網(wǎng)絡分組,而在其它實施例中按5毫秒的時間間隔,以及甚至在更進一步的實施例中短到3、 2或1毫秒的時間間隔。在操作期間,高速層2-7集成分組引擎240可以與加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮引擎238交互、集成或通信。因而,可以響應于分組處理定時器242和/或分組引擎240來執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任一邏輯、功能或操作。因此,可以以例如小于或等于10毫秒的時間間隔的通過分組處理定時器242才是供的時間間隔的粒度來執(zhí)行加密引擎234、高速緩存管理器232、策略引擎236和多協(xié)議壓縮邏輯238的任一邏輯、功能或操作。例如,在一個實施例中,高速緩存管理器232可以響應于高速層2-7集成分組引擎240和/或分組處理定時器242來執(zhí)行任一高速緩存對象的失效。在另一個實施例中,可以將高速緩存對象的滿期或失效時間設(shè)置為與分組處理定時器242的時間間隔相同的粒度級,例如每10毫秒。
0082與內(nèi)核空間204不同,用戶空間202是由用戶模式應用或者以其他方式運行于用戶模式的程序所使用的存儲器區(qū)域或部分操作系統(tǒng)。用戶才莫式應用可以不直接訪問內(nèi)核空間204而使用服務調(diào)用以訪問內(nèi)核服務。如圖2所示,設(shè)備200的用戶空間202包括圖形用戶界面(GUI )210、命令行接口 (CLI) 212、命令解釋程序(shell)服務214、健康監(jiān)測程序216和守護服務218。 GUI 210和CLI 212提供一個裝置,通過所述裝置,系統(tǒng)管理員或其它用戶可以與設(shè)備200的操作相互作用并控制設(shè)備200的操作,例如通過設(shè)備200的操作系統(tǒng),并且兩者之一是用戶空間202或內(nèi)核空間204。 GUI 210可以是任一類型和形式的圖形用戶界面,并且可以通過文本、圖形或者以其他方式通過像瀏覽器的任一類型的程序或應用來呈現(xiàn)。CLI 212可以是任一類型和形式的命令行或基于文本的接口,例如由操作系統(tǒng)提供的命令行。例如,CLI212可以包括命令解釋程序,所述命令解釋程序是允許用戶與操作系統(tǒng)相互作用的工具。在一些實施例中,CLI 212可以通過bash、 csh、 tcsh或ksh型命令解釋程序來提供。命令解釋程序服務214包括程序、服務、任務、進程或可
執(zhí)行指令以支持用戶通過GUI 210和/或CLI 212與設(shè)備200或操作系統(tǒng) 相互作用。
0083健康監(jiān)測程序216被用于監(jiān)控、檢查、報告和確保網(wǎng)絡系 統(tǒng)在正常工作以及用戶通過網(wǎng)絡接收所請求的內(nèi)容。健康監(jiān)測程序216 包括一個或多個程序、服務、任務、進程或可執(zhí)行指令以提供用于監(jiān)測 設(shè)備200的任一活動的邏輯、規(guī)則、功能或操作。在一些實施例中,健 康監(jiān)測程序216攔截并檢查經(jīng)由設(shè)備200傳遞的任一網(wǎng)絡業(yè)務量。在其 它實施例中,健康監(jiān)測程序216通過任一合適的方法和/或機制與一個或 多個下列單元連接加密引擎234、高速緩存管理器232、策略引擎236、 多協(xié)議壓縮邏輯238、分組引擎240、守護服務218和命令解釋程序服務 214。因而,健康監(jiān)測程序216可以調(diào)用任一應用編程接口 (API)以確 定設(shè)備200的任一部分的狀態(tài)、狀況或健康。例如,健康監(jiān)測程序216 可以周期性地查驗或發(fā)送一個情況查詢以檢測程序、進程、服務或任務 是否有效以及當前正在運行。在另一個實例中,健康監(jiān)測程序216可以 檢查由任一程序、進程、服務或任務^R供的任一狀態(tài)、錯誤或歷史記錄, 以確定設(shè)備200的任一部分的任一情況、狀態(tài)或錯誤。
0084守護服務218是連續(xù)或在后臺運行并處理由設(shè)備200接收 到的周期性服務請求的程序。在一些實施例中,守護服務可以將請求轉(zhuǎn) 發(fā)給其它程序或進程,例如酌情轉(zhuǎn)發(fā)給另一個守護服務218。如本領(lǐng)域技 術(shù)人員所知,守護服務218可以無人監(jiān)護地運行以執(zhí)行諸如網(wǎng)路控制的 連續(xù)的或周期性的全系統(tǒng)的功能或者執(zhí)行任一期望的任務。在一些實施 例中, 一個或多個守護服務218運行在用戶空間202中,而在其它實施 例中, 一個或多個守護服務218運行在內(nèi)核空間中。
0085現(xiàn)在參考圖2B,描述了設(shè)備200的另一個實施例。總的來 說,設(shè)備200提供下列服務、功能或操作中的一個或多個用于一個或 多個客戶機102以及一個或多個服務器106之間的通信的SSL VPN連通 性280、交換/負載平衡284、域名服務解析286、加速288和應用防火墻 2M。每個服務器106可以提供一個或多個網(wǎng)絡相關(guān)的服務270a-270n(稱 為服務270 )。例如,服務器106可以提供http服務270。設(shè)備200包括一個或多個虛擬服務器或虛擬網(wǎng)際協(xié)議服務器,其被稱為vServer、 VIP 服務器或僅僅稱為VIP 275a-275n(此處也凈皮稱為vServer 275 )。 vServer 275根據(jù)設(shè)備200的配置和操作來接收、攔截或者以其他方式處理客戶機 102和服務器106之間的通信。
0086vServer 275可以包括軟件、硬件或軟件和石更件的任一組合。 vServer 275可以包括在設(shè)備200中的用戶^t式202、內(nèi)核^^莫式204中或 其任一組合中操作的任一類型和形式的程序、服務、任務、進程或可執(zhí) 行指令。vServer 275包括任一邏輯、功能、規(guī)則或操作以執(zhí)行此處所描 述的技術(shù)的任一實施例,例如SSL VPN 280、交換/負載平衡284、域名 服務解析286、加速288和應用防火墻290。在一些實施例中,vServer 275 建立到服務器106的服務270的連接。服務275可以包括可以連接和通 信到設(shè)備200、客戶機102或vServer 275的任一程序、應用、進程、任 務或可執(zhí)4亍指令組。例如,服務275可以包括web服務器、http服務器、 ftp、電子郵件或數(shù)據(jù)庫服務器。在一些實施例中,服務270是用于監(jiān)聽、 接收和/或發(fā)送用于諸如電子郵件、數(shù)據(jù)庫或企業(yè)應用的應用的通信的守 護進程或網(wǎng)絡驅(qū)動程序。在一些實施例中,服務270可以在一個特定IP 地址或IP地址和端口上進行通信。
0087在一些實施例中,vServer 275將策略引擎236的一個或多 個策略應用到客戶機102和服務器106之間的網(wǎng)絡通信。在一個實施例 中,策略與VServer 275有關(guān)。在另一個實施例中,策略基于一個用戶 或一組用戶。在又一個實施例中,策略是全局的并且應用到一個或多個 vServers 275a-275n以及經(jīng)由設(shè)備200通信的任一用戶或用戶組。在一 些實施例中,策略引擎的策略有條件,在所述條件時根據(jù)諸如網(wǎng)際協(xié)議 地址、端口、協(xié)議類型、報頭或分組中的字段的通信的任一內(nèi)容或者諸 如用戶、用戶組、vServer 275、傳輸層連接和/或客戶才幾102或服務器 106的標識或?qū)傩缘耐ㄐ派舷挛膩響貌呗浴?br> 0088在其它實施例中,設(shè)備200與策略引擎236通信或連接以 確定對遠程用戶或遠程客戶機102訪問服務器106的計算環(huán)境15、應用 和/或數(shù)據(jù)文件的驗證和/或授權(quán)。在另一個實施例中,設(shè)備200與策略 引擎236通信或連接以確定對遠程用戶或遠程客戶機102的驗證和/或授權(quán),以使應用遞送系統(tǒng)190遞送計算環(huán)境15、應用和/或數(shù)據(jù)文件的一個 或多個。在又一個實施例中,設(shè)備200根據(jù)策略引擎236對遠程用戶或 遠程客戶機103的—瞼證和/或授權(quán)來建立VPN或SSL VPN連接。在一個實 施例中,設(shè)備102根據(jù)策略引擎236的策略來控制網(wǎng)絡業(yè)務量和通信會 話的流量。例如,設(shè)備200可以根據(jù)策略引擎236來控制對計算環(huán)境15、 應用或數(shù)據(jù)文件的訪問。
0089在一些實施例中,vScrvcr 275建立諸如經(jīng)由客戶機代理 120與客戶機102的TCP或UDP連接的傳輸層連接。在一個實施例中, vServer 275監(jiān)聽并接收來自于客戶機102的通信。在其它實施例中, vServer 275與客戶服務器106建立諸如TCP或UDP連接的傳輸層連接。 在一個實施例中,vServer 275建立到運行在服務器106上的服務器270 的網(wǎng)際協(xié)議地址和端口的傳輸層連接。在另一個實施例中,vServer 275 將到客戶機102的第一傳輸層連接與到服務器106的第二傳輸層連接關(guān) 聯(lián)起來。在一些實施例中,vServer 275建立到服務器106的傳輸層連接 池并多路復用經(jīng)由所述池化的傳輸層連接的客戶機請求。
0090在一些實施例中,設(shè)備200提供在客戶機102和服務器106 之間的SSLVPN連接280。例如,第一網(wǎng)絡102上的客戶機102請求建立 到第二網(wǎng)絡104'上的服務器106的連接。在一些實施例中,第二網(wǎng)絡104' 是不可從第一網(wǎng)絡104路由的。在其它實施例中,客戶機102在公用網(wǎng) 104上,而服務器106在諸如公司網(wǎng)的專用網(wǎng)104'上。在一個實施例中, 客戶才幾代理120攔截第一網(wǎng)絡104上的客戶才幾102的通信,加密所述通 信,并經(jīng)由第一傳輸層連接發(fā)送所述通信到設(shè)備200。設(shè)備200將第一網(wǎng) 絡104上的第一傳輸層連接關(guān)聯(lián)到第二網(wǎng)絡104上的到服務器106的第 二傳輸層連接。設(shè)備200從客戶機代理102接收被攔截的通信,解密所 述通信,并經(jīng)由第二傳輸層連接發(fā)送所述通信到第二網(wǎng)絡104上的服務 器106。第二傳輸層連接可以是池化的傳輸層連接。因而,設(shè)備200提供 在兩個網(wǎng)絡104和104'之間用于客戶機102的端到端安全傳輸層連接。
0091在一個實施例中,設(shè)備200在虛擬專用網(wǎng)104上寄載客戶 機102的內(nèi)聯(lián)網(wǎng)網(wǎng)際協(xié)議或內(nèi)聯(lián)網(wǎng)IP 282地址??蛻魴C102具有諸如第 一網(wǎng)絡104上的網(wǎng)際協(xié)議(IP )地址和/或主機名的本地網(wǎng)絡標識符。當經(jīng)由設(shè)備200連接到第二網(wǎng)絡104'時,設(shè)備200在第二網(wǎng)絡104'上為客 戶機102建立、分配或者以其他方式提供內(nèi)聯(lián)網(wǎng)IP,其是諸如IP地址和 /或主機名的網(wǎng)絡標識符。使用客戶機的建立的內(nèi)聯(lián)網(wǎng)IP 282,設(shè)備200 在第二或?qū)S镁W(wǎng)104'上監(jiān)聽并接收指向客戶機102的任一通信。在一個 實施例中,設(shè)備200在第二專用網(wǎng)104上充當或代表客戶機102。例如, 在另一個實施例中,vServer 275監(jiān)聽并響應到客戶機102的內(nèi)4關(guān)網(wǎng)IP 282的通信8在一些實施例中,如果第 一—網(wǎng)絡104'上的計算裝置100發(fā) 送請求,則設(shè)備200處理所述請求就像它是客戶機102 —樣。例如,設(shè) 備200可以響應到客戶機的內(nèi)聯(lián)網(wǎng)IP 282的查—瞼。在另一個實例中,i殳 備可以與第二網(wǎng)絡104上的請求與客戶機的內(nèi)聯(lián)網(wǎng)IP 282連接的計算裝 置100建立諸如TCP或UDP連接的連接。
0092在一些實施例中,設(shè)備200提供下列一個或多個加速技術(shù) 288來在客戶機102和服務器106之間進行通信1)壓縮;2 )解壓縮; 3)傳輸控制協(xié)議池;4)傳輸控制協(xié)議多路復用;5 )傳輸控制協(xié)議緩沖; 以及6)高速緩存。在一個實施例中,設(shè)備200通過打開與每個服務器 106的一個或多個傳輸層連接并維持這些連接以允許客戶機經(jīng)由因特網(wǎng) 的重復數(shù)據(jù)訪問來減輕服務器106的通過反復打開和關(guān)閉到客戶機102 的傳輸層連接所造成的大量處理負載。這個技術(shù)在這里被稱為"連接池"。
0093在一些實施例中,為了經(jīng)由池化的傳輸層連接來無縫接合 從客戶機102到服務器106的通信,設(shè)備200通過在傳輸層協(xié)議級修改 序號和確認號來轉(zhuǎn)換或多路復用通信。這被稱為"連接多路復用"。在一 些實施例中,不需要應用層協(xié)議相互作用。例如,在入站分組(即,自 客戶機102接收的分組)的情況中,所述分組的源網(wǎng)絡地址^^改變?yōu)閕殳 備200的輸出端口的網(wǎng)絡地址,而目的網(wǎng)絡地址被改變?yōu)轭A期的服務器 的網(wǎng)絡地址。在出站分組(即,自服務器106接收的一個分組)的情況 中,源網(wǎng)絡地址被從服務器106的網(wǎng)絡地址改變?yōu)樵O(shè)備200的輸出端口 的網(wǎng)絡地址,而目的地址被從設(shè)備200的網(wǎng)絡地址改變?yōu)檎埱蟮目蛻舨艓?102的網(wǎng)絡地址。所述分組的序號和確認號也被轉(zhuǎn)換為到客戶機102的設(shè) 備200的傳輸層連接上的客戶機102所期待的序號和確認。在一些實施 例中,傳輸層協(xié)議的分組校驗和被重新計算以解釋這些轉(zhuǎn)換。0094在另一個實施例中,設(shè)備200為客戶機102和服務器106 之間的通信提供交換或負載平衡功能284。在一些實施例中,設(shè)備200根 據(jù)層4或應用層請求數(shù)據(jù)來分配業(yè)務量并將客戶機請求指向服務器106。 在一個實施例中,雖然網(wǎng)絡分組的網(wǎng)絡層或?qū)?標識了目的服務器106, 但設(shè)備200通過作為傳輸層分組的有效載荷而攜帶的應用信息和數(shù)據(jù)來 確定服務器106以分配網(wǎng)絡分組。在一個實施例中,設(shè)備200的健康監(jiān) 測程序216監(jiān)控服務器的健康以確定為其分配客戶機的請求的服務器 106。在一些實施例中,如果設(shè)備200探測到服務器106不可用或具有超 過預定閾值的負載,則設(shè)備200可以將客戶機請求指向或分配到另一個 服務器106。
0095在一些實施例中,設(shè)備200充當域名服務(DNS)解析器或 者以其他方式提供來自于客戶機102的DNS請求的解析。在一些實施例 中,設(shè)備攔截由客戶才幾102發(fā)送的DNS請求。在一個實施例中,設(shè)備200 響應具有設(shè)備200的IP地址或由設(shè)備200寄載的IP地址的客戶機的DNS 請求。在該實施例中,客戶機102發(fā)送用于域名的網(wǎng)絡通信到設(shè)備200。 在另一個實施例中,設(shè)備200響應具有第二設(shè)備200'的IP地址或由第二 設(shè)備200'寄載的IP地址的客戶機的DNS請求。在一些實施例中,設(shè)備 200響應具有由設(shè)備200確定的服務器106的IP地址的客戶機的DNS請 求。
0096在又一個實施例中,設(shè)備200為客戶機102和服務器106 之間的通信提供應用防火墻功能290。在一個實施例中,策略引擎236提 供用于檢測和阻塞非法請求的規(guī)則。在一些實施例中,應用防火墻290 防止拒絕服務(DoS)攻擊。在其它實施例中,設(shè)備檢查被攔截的請求的 內(nèi)容以識別和阻塞基于應用的攻擊。在一些實施例中,規(guī)則/策略引擎236 包括用于提供對多個種類和類型的基于web或因特網(wǎng)的脆弱點的保護的 一個或多個應用防火墻或安全控制策略,例如下列的一個或多個l)緩 沖器溢出,2 ) CGI-BIN參數(shù)操縱,3 )格式/隱藏字段操縱,4 )強制瀏覽, 5) cookie或會話中毒,6 )破譯的訪問控制表(ACLs )或弱的口令,7) 跨站點的腳本(XSS ), 8 )命令注入,9 ) SQL注入,10 )錯誤觸發(fā)感測信 息泄漏,11 )不安全的使用加密技術(shù),12)服務器誤配置,13)后門和調(diào)試選擇,14)web站點毀損,15)平臺或操作系統(tǒng)的脆弱點,以及16) 零天攻擊。在一個實施例中,對下列情況的一種或多種應用防火墻290 以檢查或分析網(wǎng)絡通信的形式來提供HTML格式字段的保護1 )返回所 需的字段,2 )不允許附加字段,3 )只讀和隱藏字段強制(enforcement ), 4)下拉列表和單選按鈕字段的一致,以及5)格式字段最大長度強制。 在一些實施例中,應用防火墻290確保cookies不被修改。在其它實施 例中,應用防火墻290通過強制實施合法URL來防止強制瀏覽。
0097還是在其它實施例中,應用防火墻290保護在網(wǎng)絡通信中 包含的任一機密信息。應用防火墻290可以根據(jù)引擎236的規(guī)則或策略 來檢查或分析任一網(wǎng)絡通信以識別在網(wǎng)絡分組的任一字,殳中的任一機密 信息。在一些實施例中,應用防火墻290在網(wǎng)絡通信中識別信用卡號、 口令、社會保險號、姓名、病人代碼、聯(lián)系信息和年齡的一次或多次出 現(xiàn)。網(wǎng)絡通信的編碼部分可以包括這些出現(xiàn)或機密信息。在一個實施例 中,根據(jù)這些出現(xiàn),應用防火墻290可以在網(wǎng)絡通信上對策略采取行動, 例如阻止網(wǎng)絡通信的發(fā)送。在另一個實施例中,應用防火墻290可以重 寫、移除或者以其他方式掩蓋這樣識別出的出現(xiàn)或機密信息。
0098仍然參考圖2B,設(shè)備200可以包括如上面結(jié)合圖1D所討i侖 的性能監(jiān)控代理197。在一個實施例中,設(shè)備200從如圖1D中所描述的 監(jiān)控業(yè)務198或監(jiān)控服務器106中接收監(jiān)控代理197。在一些實施例中, 設(shè)備200在諸如磁盤的存儲裝置中保存監(jiān)控代理197,以用于遞送給與設(shè) 備200通信的任一客戶機或服務器。例如,在一個實施例中,設(shè)備200 在接收到建立傳輸層連接的請求時發(fā)送監(jiān)控代理197給客戶機。在其它 實施例中,設(shè)備200在建立與客戶機102的傳輸層連接時發(fā)送監(jiān)控代理 197。在另一個實施例中,設(shè)備200在攔截或檢測對web頁面的請求時發(fā) 送監(jiān)控代理197給客戶機。在又一個實施例中,設(shè)備200響應于監(jiān)控服 務器198的請求來發(fā)送監(jiān)控代理197到客戶機或服務器。在一個實施例 中,設(shè)備200發(fā)送監(jiān)控代理197到第二設(shè)備20(T或設(shè)備205。
0099在其它實施例中,設(shè)備200執(zhí)行監(jiān)控代理197。在一個實施 例中,監(jiān)控代理197測量和監(jiān)控在設(shè)備200上執(zhí)行的任一應用、程序、 進程、服務、任務或線程的性能。例如,監(jiān)控代理197可以監(jiān)控和測量vServers 275A-275N的性能與操作。在另一個實施例中,監(jiān)控代理197 測量和監(jiān)控設(shè)備200的任一傳輸層連接的性能。在一些實施例中,監(jiān)控 代理197測量和監(jiān)控通過設(shè)備200的任一用戶會話的性能。在一個實施 例中,監(jiān)控代理197測量和監(jiān)控通過設(shè)備200的諸如SSL VPN會話的任 一虛擬專用網(wǎng)連接和/或會話的性能。在進一步的實施例中,監(jiān)控代理197 測量和監(jiān)控設(shè)備200的存儲器、CPU和磁盤使用以及性能。在又一個實施 例中,監(jiān)控代理197測量和監(jiān)控諸如SSL卸載、連接池和多路復用、高 速緩存以及壓縮的由設(shè)備200執(zhí)行的任一加速技術(shù)288的性能。在一些 實施例中,監(jiān)控代理197測量和監(jiān)控由設(shè)備200執(zhí)行的任一負載平衡和/ 或內(nèi)容交換284的性能。在其它實施例中,監(jiān)控代理197測量和監(jiān)控由 設(shè)備200執(zhí)行的應用防火墻290保護和處理的性能。
C.客戶才幾代理
0100現(xiàn)在參考圖3,描述了客戶機代理120的一個實施例??蛻?機102包括用于經(jīng)由網(wǎng)絡104與設(shè)備200和/或服務器106建立和交換通 信的客戶機代理120。簡單概述,客戶機102在計算裝置IOO上操作,所 述計算裝置100具有帶有內(nèi)核模式302和用戶模式303的操作系統(tǒng)以及 帶有一個或多個層310a-310b的網(wǎng)絡堆棧310。客戶機102已經(jīng)安裝和/ 或執(zhí)行一個或多個應用。在一些實施例中, 一個或多個應用可以經(jīng)由網(wǎng) 絡堆棧310傳遞到網(wǎng)絡104。諸如web瀏覽器的一個應用還可以包括一個 第一程序322。例如,第一程序322可以被用于在一些實施例中安裝和/ 或執(zhí)行客戶機代理120或者其任一部分??蛻魴C代理120包括用于從一 個或多個應用中攔截來自于網(wǎng)絡堆棧310的網(wǎng)絡通信的攔截機制或攔截 器350。
0101客戶機102的網(wǎng)絡堆棧310可以包括任一類型和形式的軟 件或硬件或其任一組合,以用于提供到網(wǎng)絡的連通性以及與網(wǎng)絡的通信。 在一個實施例中,網(wǎng)絡堆棧310包括用于網(wǎng)絡協(xié)議^f牛的軟件實現(xiàn)。網(wǎng) 絡堆棧310可以包括一個或多個網(wǎng)絡層,例如如本領(lǐng)域技術(shù)人員所認識 和理解的開放系統(tǒng)互連(OSI)通信模型的任一網(wǎng)絡層。因而,網(wǎng)絡堆棧 310可以包括用于下列OSI模型的任意一層的任一類型和形式的協(xié)議1)物理鏈路層,2)數(shù)據(jù)鏈路層,3)網(wǎng)絡層,4)傳輸層,5)會話層,6) 表示層以及7)應用層。在一個實施例中,網(wǎng)絡堆棧310可以包4舌在網(wǎng)際 協(xié)議(IP )的網(wǎng)絡層協(xié)議上的傳輸控制協(xié)議(TCP ),通常被稱為TCP/IP。 在一些實施例中,可以在以太網(wǎng)協(xié)議上攜帶TCP/IP協(xié)-漢,所述以太網(wǎng)協(xié) 議可以包括諸如由IEEE 802. 3所覆蓋的那些協(xié)議的IEEE廣域網(wǎng)(WAN) 或局域網(wǎng)(LAN)協(xié)議的任一族。在一些實施例中,網(wǎng)絡堆棧310包括諸 如IEEE 802. 11和/或移動網(wǎng)際協(xié)議的任一類型和形式的無線協(xié)議。
0102考慮到基于TCP/IP的網(wǎng)絡,可以使用任一基于TCP/IP的 協(xié)議,包括消息應用編程接口 (MAPI)(電子郵件)、文件傳送協(xié)議(FTP)、 超文本傳送協(xié)議(HTTP)、通用Internet文件系統(tǒng)(CIFS)協(xié)議(文件 傳送)、獨立計算架構(gòu)(ICA)協(xié)議、遠程桌面協(xié)議(RDP)、無線應用協(xié) 議(WAP)、移動IP協(xié)議和IP上語音(VoIP)協(xié)議。在另一個實施例中, 網(wǎng)絡堆棧310包括諸如修改的傳輸控制協(xié)議的任一類型和形式的傳輸控 制協(xié)議,例如事務TCP (T/TCP)、具有選擇確認的TCP ( TCP-SACK )、具 有大窗口的TCP( TCP-LW)、諸如TCP-Vegas協(xié)議的擁塞預測協(xié)議以及TCP 欺騙協(xié)議。在其它實施例中,網(wǎng)絡堆棧31G可以使用諸如IP上UDP的任 一類型和形式的用戶數(shù)據(jù)報協(xié)議(UDP),例如用于音頻通信或?qū)崟r數(shù)據(jù) 通信。
0103進一步,網(wǎng)絡堆棧310可以包括諸如TCP驅(qū)動程序或網(wǎng)絡 層驅(qū)動程序的支持一個或多個層的一個或多個網(wǎng)絡驅(qū)動程序。網(wǎng)絡驅(qū)動 程序可以被包括作為計算裝置100的操作系統(tǒng)的一部分或作為計算裝置 100的任一網(wǎng)紹4妄口卡或其它網(wǎng)絡訪問部件的一部分。在一些實施例中, 網(wǎng)絡堆棧310的任意一種網(wǎng)絡驅(qū)動程序可以被定制、修改或改變以提供 支持此處描述的任一技術(shù)的網(wǎng)絡堆棧310的定制或修改部分。在其它實. 施例中,加速程序120 ^皮設(shè)計和構(gòu)造以和由客戶機102的操作系統(tǒng)所安 裝或者以其他方式提供的網(wǎng)絡堆棧310 —起操作或聯(lián)合工作。
0104網(wǎng)絡堆棧310包括用于接收、獲取、提供或者以其他方式 訪問與客戶機102的網(wǎng)絡通信相關(guān)的任一信息和數(shù)據(jù)的任一類型和形式 的接口。在一個實施例中,到網(wǎng)絡堆棧310的接口包括應用編程接口 UPI)。接口還可以包括任一函數(shù)調(diào)用、掛鉤或過濾機制、事件或回叫機制、或任一類型的連接技術(shù)。網(wǎng)絡堆棧310經(jīng)由接口可以接收或提供 諸如對象的與網(wǎng)絡堆棧310的功能或操作相關(guān)的任一類型和形式的數(shù)據(jù) 結(jié)構(gòu)。例如,數(shù)據(jù)結(jié)構(gòu)可以包括與網(wǎng)絡分組相關(guān)的信息和數(shù)據(jù)或者一個 或多個網(wǎng)絡分組。在一些實施例中,數(shù)據(jù)結(jié)構(gòu)包括諸如傳輸層的網(wǎng)絡分
組的在網(wǎng)絡堆棧310的協(xié)議層處理的網(wǎng)絡分組的一部分。在一些實施例 中,數(shù)據(jù)結(jié)構(gòu)325包括內(nèi)核級數(shù)據(jù)結(jié)構(gòu),而在其它實施例中,數(shù)據(jù)結(jié)構(gòu) 325包括用戶模式數(shù)據(jù)結(jié)構(gòu)。內(nèi)核級數(shù)據(jù)結(jié)構(gòu)可以包括獲得的或與在內(nèi)核 模式302中操作的網(wǎng)絡堆棧310的一部分相關(guān)的數(shù)據(jù)結(jié)構(gòu)、或者運行在 內(nèi)核模式302中的網(wǎng)絡驅(qū)動程序或其它軟件、或者由運行或操作在操作 系統(tǒng)的內(nèi)核模式中的服務、進程、任務、線程或其它可執(zhí)行指令獲得或 收到的任一數(shù)據(jù)結(jié)構(gòu)。
0105另外,例如數(shù)據(jù)鏈路或網(wǎng)絡層的網(wǎng)絡堆棧310的一些部分 可以執(zhí)行或操作于內(nèi)核模式302,而諸如網(wǎng)絡堆棧310的應用層的其它部 分執(zhí)行或操作在用戶模式303中。例如,網(wǎng)絡堆棧的第一部分310a可以 給應用提供對網(wǎng)絡堆棧31G的用戶模式訪問,而網(wǎng)絡堆棧310的第二部 分310a提供對網(wǎng)絡的訪問。在一些實施例中,網(wǎng)絡堆棧的第一部分310a 可以包括諸如層5-7中的任意一個的網(wǎng)絡堆棧310的一個或多個較上的 層。在其它實施例中,網(wǎng)絡堆棧310的第二部分310b包括諸如層1-4中 的任意一個這樣的一個或多個較低的層。網(wǎng)絡堆棧310的第一部分310a 和第二部分310b中的每一個可以包括網(wǎng)絡堆棧310的任一部分,在任意 一個或多個網(wǎng)絡層,在用戶模式203、內(nèi)核模式202或其組合中,或者在 網(wǎng)絡層的任一部分或網(wǎng)絡層的接口點或用戶模式203和內(nèi)核模式203的 任一部分或接口點。
0106攔截器350可以包括軟件、硬件或軟件和硬件的任一組合。 在一個實施例中,攔截器350在網(wǎng)絡堆棧310中的任一點攔截網(wǎng)絡通信, 并且將所述網(wǎng)絡通信重定向或發(fā)送到^C攔截器350或客戶機代理120所 期望、管理或控制的目的地。例如,攔截器350可以攔截第一網(wǎng)絡的網(wǎng) 絡堆棧310的網(wǎng)絡通信并發(fā)送網(wǎng)絡通信給設(shè)備2 0 0以用于在第二網(wǎng)絡10 4 上的傳輸。在一些實施例中,攔截器350包括含有驅(qū)動器的任一類型攔 截器35 0,諸如被構(gòu)造和設(shè)計為與網(wǎng)絡堆棧31Q連接和工作的網(wǎng)絡驅(qū)動程序。在一些實施例中,客戶機代理120和/或攔截器350在諸如傳輸層處 的網(wǎng)絡堆棧310的一個或多個層操作。在一個實施例中,攔截器350包 括過濾器驅(qū)動程序、掛鉤機制或任一格式和類型的適當?shù)木W(wǎng)絡驅(qū)動程序 接口,所述接口例如經(jīng)由傳輸驅(qū)動程序接口 (TDI )來聯(lián):接于網(wǎng)絡堆棧的 傳輸層。在一些實施例中,攔截器350聯(lián)接于諸如傳輸層的第一協(xié)議層 以及諸如傳輸協(xié)議層之上的任一層的例如應用協(xié)議層的另 一個協(xié)議層。 在一個實施例中,攔截器350可以包括遵照網(wǎng)絡驅(qū)動程序接口規(guī)范(NDIS ) 的驅(qū)動程序或NDIS驅(qū)動程序。在另一個實施例中,攔截器350可以包括 小過濾器(min-filter)或迷你端口 (mini-port)驅(qū)動程序。在一個實 施例中,攔截器350或者其部分操作于內(nèi)核模式202中。在另一個實施 例中,攔截器350或者其部分操作于用戶模式203中。在一些實施例中, 攔截器350的一部分操作于內(nèi)核模式202中,而攔截器350的另一部分 操作于用戶模式203中。在其它實施例中,客戶機代理120操作于用戶 模式203中,但經(jīng)由攔截器350連接到內(nèi)核模式驅(qū)動程序、進程、服務、 任務或一部分操作系統(tǒng),以便獲得內(nèi)核級數(shù)據(jù)結(jié)構(gòu)225。在進一步的實施 例中,攔截器350是諸如應用的用戶模式應用或程序。
0107在一個實施例中,攔截器350攔截任一的傳輸層連接請求。 在這些實施例中,攔截器350執(zhí)行傳輸層應用編程^接口 (API)調(diào)用以對 于該位置^L置目的信息,諸如所期望的位置的目的地IP地址和/或端口。 以此方式,攔截器350攔截并重定向傳輸層連接到由攔截器350或客戶 機代理120控制或管理的IP地址和端口。在一個實施例中,攔截器350 為到客戶機102的本地IP地址和端口的連接設(shè)置目的地信息,客戶機代 理12 在客戶機102的本地IP地址和端口上進行監(jiān)聽。例如,客戶機代 理120可以包括在用于重定向的傳輸層通信的本地IP地址和端口上監(jiān)聽 的代理服務。在一些實施例中,客戶機代理120隨后傳達重定向的傳輸 層通信到設(shè)備200。
0108在一些實施例中,攔截器350攔截域名服務(DNS)請求。 在一個實施例中,客戶機代理120和/或攔截器350解析DNS請求。在另 一實施例中,攔截器發(fā)送被攔截的DNS請求到設(shè)備200以用于DNS解析。 在一個實施例中,i殳備200解析DNS請求并傳達DNS響應給客戶機代理120。在一些實施例中,設(shè)備200解析經(jīng)由另一設(shè)備200'或DNS服務器 106的DNS i會求。
0109在又一個實施例中,客戶機代理120可以包括兩個代理120 和12(K。在一個實施例中,第一代理120可以包括操作于網(wǎng)絡堆棧310 的網(wǎng)絡層的攔截器350。在一些實施例中,第一代理120攔截諸如因特網(wǎng) 控制消息協(xié)議(ICMP)請求(例如,查驗和跟蹤路由)的網(wǎng)絡層請求。 在其它實施例中,第二代理12(T可以在傳輸層操作并攔截傳輸層通信。 在一些實施例中,第一代理120攔截在網(wǎng)絡堆棧210的一層處的通信, 并與第二代理120'連接或傳達被攔截的通信到第二代理120'。
0110客戶機代理120和/或攔截器350可以相對于網(wǎng)絡堆棧310 的任一其它協(xié)議層透明的方式操作于協(xié)議層或與協(xié)議層連接。例如,在 一個實施例中,攔截器350相對于諸如網(wǎng)絡層的傳輸層之下的任一協(xié)議 層以及諸如會話、表示或應用層協(xié)議的傳輸層之上的任一協(xié)議層透明地 來操作網(wǎng)絡堆棧310的傳輸層或與其連接。這允許網(wǎng)絡堆棧310的其它 協(xié)議層按意愿地操作而不用修改來使用攔截器350。因而,客戶機代理 120和/或攔截器350可以與傳輸層交互以保護、優(yōu)化、加速、路由或負 載平衡經(jīng)由諸如TCP/IP之上的任一應用層協(xié)議的通過傳輸層攜帶的任一 協(xié)議提供的任一通信。
0111進一步地,客戶機代理120和/或攔截器可以相對于任一應 用、客戶機102的用戶以及諸如與客戶機102通信的服務器的任一其它 計算裝置透明的方式來操作于網(wǎng)絡堆棧310或與網(wǎng)絡堆棧310連接???戶機代理120和/或攔截器350可以以一定方式安裝和/或執(zhí)行于客戶機 102上而不》務改應用。在一些實施例中,客戶才幾102或與客戶機102通信 的計算裝置的用戶不知道客戶機代理120和/或攔截器350的存在、執(zhí)行 或操作。因而,在一些實施例中,相對于應用、客戶機102的用戶、諸 如服務器的另一個計算裝置、或者在由攔截器350聯(lián)接的協(xié)議層之上和/ 或之下的任一協(xié)議層透明地來安裝、執(zhí)行和/或操作客戶機代理120和/ 或攔截器350。
0112客戶機代理120包括加速程序302、流客戶機306、收集代 理304和/或監(jiān)控代理197。在一個實施例中,客戶機代理120包括由位于Fort Lauderdale, Florida的Citrix Syestems公司開發(fā)的獨立計算 架構(gòu)(ICA)客戶機或者其任一部分,并且還被稱為ICA客戶機。在一些 實施例中,客戶機120包括用于將應用從服務器106流式傳輸?shù)娇蛻魴C 102的應用流客戶機306。在一些實施例中,客戶機代理120包括用于加 速客戶機102和服務器106之間的通信的加速程序302。在另一個實施例 中,客戶機代理120包括用于執(zhí)行端點檢測/掃描以及為設(shè)備200和/或 服務器106收集端點信息的收集代理304。
0113在一些實施例中,加速程序302包括用于執(zhí)行一個或多個 加速技術(shù)的客戶機側(cè)加速程序,以加速、增強或者以其他方式改善客戶 機與服務器106的通信和/或諸如訪問由服務器106提供的應用的對服務 器106的訪問。加速程序302的可執(zhí)行指令的邏輯、功能和/或操作可以 執(zhí)行一個或多個的下列加速技術(shù)l)多協(xié)議壓縮,2)傳輸控制協(xié)議池, 3)傳輸控制協(xié)議多路復用,4 )傳輸控制協(xié)議緩沖,以及5 )經(jīng)由高速緩 存管理器的高速緩存。另外,加速程序302可以執(zhí)行對由客戶才幾102接 收和/或發(fā)送的任一通信的加密和/或解密。在一些實施例中,加速程序 302以集成的方法或方式來執(zhí)行一個或多個加速技術(shù)。另外,加速程序 302可以在被攜帶為傳輸層協(xié)議的網(wǎng)絡分組的有效載荷的任一協(xié)議或多 個協(xié)議上執(zhí)行壓縮。
0114流客戶機306包括用于接收和執(zhí)行來自于服務器106的流 式傳輸?shù)膽玫膽?、程序、進程、服務、任務或可執(zhí)行指令。服務器 106可以將一個或多個應用數(shù)據(jù)文件流式傳輸?shù)搅骺蛻魴C306,以用于在 客戶機102上播放、執(zhí)行所述應用或者以其他方式使所述應用被執(zhí)行。 在一些實施例中,服務器106發(fā)送一組壓縮的或封裝的應用數(shù)據(jù)文件到 流客戶機306。在一些實施例中,多個應用文件在文件服務器上被壓縮和 存儲在諸如CAB、 ZIP、 SIT、 TAR、 JAR或其它檔案(archive)的檔案文 件中。在一個實施例中,服務器106解壓縮、解封裝或解檔(unarchives) 應用文件,并發(fā)送所述文件到客戶機102。在另一個實施例中,客戶機 102解壓縮、解封裝或解檔應用文件。流客戶機306動態(tài)地安裝應用或其 中的部分,并執(zhí)行應用。在一個實施例中,流客戶機306可以是可執(zhí)行 程序。在一些實施例中,流客戶機306可以運行另 一個可執(zhí)行程序。0115收集代理304包括用于識別、獲得和/或收集關(guān)于客戶機102 的信息的應用、程序、進程、服務、任務或可執(zhí)行指令。在一些實施例 中,設(shè)備200發(fā)送收集代理304到客戶機102或客戶機代理120??梢愿?據(jù)設(shè)備的策略引擎236的一個或多個策略來配置收集代理304。在其它實 施例中,收集代理304發(fā)送收集的有關(guān)客戶機102的信息給設(shè)備200。在 一個實施例中,設(shè)備200的策略引擎236使用收集的信息來確定并提供 對客戶機到網(wǎng)絡104的連接的訪問、驗證和授權(quán)控制。
0116在一個實施例中,收集代理304包括端點;險測和掃描機制, 其識別和確定客戶機的一個或多個屬性或特性。例如,收集代理304可 以識別和確定任意一個或多個以下的客戶機側(cè)屬性1)操作系統(tǒng)和/或 操作系統(tǒng)的版本,2)操作系統(tǒng)的服務包,3)運行的服務,4)運行的進 程,和5 )文件。收集代理304還可以識別和確定客戶機上的任意一個或 多個下列軟件的存在或版本l)防病毒軟件,2)個人防火墻軟件,3) 反垃圾郵件軟件,和4)因特網(wǎng)安全軟件。策略引擎236可以具有根據(jù)客 戶機或客戶機側(cè)屬性的任意一個或多個屬性或特性的一個或多個策略。
0117在一些實施例中,客戶才幾代理120包括如結(jié)合圖1D和2B 所討論的監(jiān)控代理197。監(jiān)控代理197可以是諸如Visual Basic或Java 腳本的任一類型和形式的腳本。在一個實施例中,監(jiān)控代理129監(jiān)控和 測量任一部分的客戶機代理120的性能。例如,在一些實施例中,監(jiān)控 代理129監(jiān)控和測量加速程序302的性能。在另一個實施例中,監(jiān)控代 理129監(jiān)控和測量流客戶機306的性能。在其它實施例中,監(jiān)控代理129 監(jiān)控和測量收集代理304的性能。在又一個實施例中,監(jiān)控代理129監(jiān) 控和測量攔截器350的性能。在一些實施例中,監(jiān)控代理129監(jiān)控和測 量客戶機102的諸如存儲器、CPU和磁盤的任一資源。
0118監(jiān)控代理197可以監(jiān)控和測量客戶機的任一應用的性能。 在一個實施例中,監(jiān)控代理129監(jiān)控和測量客戶機102上的瀏覽器的性 能。在一些實施例中,監(jiān)控代理197監(jiān)控和測量經(jīng)由客戶機代理120遞 送的任一應用的性能。在其它實施例中,監(jiān)控代理197測量和監(jiān)控諸如 基于web或HTTP響應時間的應用的最終用戶響應時間。監(jiān)控代理197可 以監(jiān)控和測量ICA或RDP客戶機的性能。在另一個實施例中,監(jiān)控代理應用會話的規(guī)格。在一些實施例中,監(jiān)控代理
197測量和監(jiān)控ICA或RDP會話。在一個實施例中,監(jiān)控代理197測量和 監(jiān)控設(shè)備200在加速遞送應用和/或數(shù)據(jù)到客戶機102的過程中的性能。
0119在一些實施例中以及仍然參考圖3,可以使用第一程序322 來自動地、靜默地、透明地或以其他方式地安裝和/或扭^亍客戶機代理120 或者其中的諸如攔截器350的部分。在一個實施例中,第一程序322包 括諸如凈皮加載到應用并由應用才丸行的ActiveX控件或Java控件或腳本的 插件部件。例如,第一程序包括由web瀏覽器應用加載并運行在例如應 用的存儲空間或上下文中的ActiveX控件。在另一個實施例中,第一程 序322包括由諸如瀏覽器的應用加載并運行的一組可執(zhí)行指令。在一個 實施例中,第一程序322包括被設(shè)計和構(gòu)造的程序來安裝客戶機代理120。 在一些實施例中,第一程序322通過網(wǎng)絡來從另一個計算裝置獲得、下 載或接收客戶機代理120。在另一個實施例中,第一程序322是客戶機 102的操作系統(tǒng)上的諸如網(wǎng)絡驅(qū)動程序的安裝程序或用于安裝程序的即 插即用管理器。
D.用于配置和使用面向?qū)ο蟮牟呗员磉_式的系統(tǒng)和方法0120參見圖4A,示出用來促進HTTP數(shù)據(jù)的處理的對象模型的部 分的例子??偟膩碚f,對象類被限定為HTTP協(xié)議中的多個元素。所限定 的類包括請求405、響應410、主機名415、 url 420、查詢425、 cookie 430和文本435。每個類被限定為包括多個字段和/或方法,其可以包括 或者返回對應于其他類的對象,或者可以包括或者返回諸如整數(shù)的其他 數(shù)據(jù)類型。
0121現(xiàn)在仍舊參見圖4A,更詳細地,對象才莫型可以包括允許計 算裝置指定和操控數(shù)據(jù)的一組限定的對象類,和/或允許計算裝置的用戶 指導計算裝置的操作的 一組限定的對象類。對象模型可以具有和面向?qū)?象的設(shè)計或者編程關(guān)聯(lián)的任一特性,包括但不限于繼承、抽象、封裝、 和多態(tài)性??梢院痛颂幟枋龅拿嫦?qū)ο蟮谋磉_式結(jié)合使用的對象模型的 例子包括但不限于Java對象模型、組件對象模型(COM )和HTML文檔對 象模型(DOM),以及這些模型的部分的任一部分或者組合。在一些實施 例中,對象模型或者對象模型的部分可對應于協(xié)議。例如,對象模型可以被建立來表示HTTP通信,具有提供類和用于訪問和操控HTTP通信的 方法的對象模型。或者,對象模型可以被建立來表示TCP、 IP、 UDP、 ICA 或者SSL通信?;蛘撸瑢ο竽P涂梢员唤肀硎驹O(shè)備,具有提供類和 用于訪問和操控涉及網(wǎng)絡設(shè)備200的狀態(tài)信息的方法的對象模型。
0122對象類可以包括對象的抽象概要描述和與該對象關(guān)聯(lián)的任 一方法。對象(即類的具體實例)可以表示任一類型或者形式的數(shù)據(jù)、 過程或者協(xié)議。示例的對象可以包括但不限于串、文本、編號、列表、 協(xié)議、數(shù)據(jù)流、連接、裝置、數(shù)據(jù)結(jié)構(gòu)、系統(tǒng)和網(wǎng)絡分組。
0123對象類可以具有多個成員。對象類的成員可以包括任一字 段、方法、構(gòu)造程序、性質(zhì)或者對象類指定的變量。在一些實施例中, 對象類的成員可以包括第二對象類的對象。例如,在所示實施例中,對 象類"http—request" 405包括返回url對象的方法"getUrl"。在其他 實施例中,對象類的成員可以是優(yōu)先架構(gòu)的基本數(shù)據(jù)類型,諸如整數(shù)、 浮點數(shù)、字節(jié)、陣列或者布爾變量。例如,類"cookie"包括作為識別 列表中名稱-值對的編號的整數(shù)的字段"count"。仍在其它實施例中,對 象類的成員可以包括常量。仍在其他實施例中,對象類的成員可以包括 方法。
0124在一些情況中,對象類的成員可以被限定在對象類定義中。 在其他情況中,對象類的成員可以被限定在對象類的父類中。仍在其他 實施例中,對象類的成員可以被限定在對象類的父親中并且在對象的類 定義中》務改。例如,"cookie" 430和"query" 425類從它們的父類 "list-nv,,繼承方法"getName"禾口 "getValue,,, 父類"list_nv,,是 表示名稱-值對的列表的類。
0125在所示實施例中,http-request類405包含可以-波用來處 理HTTP請求的多個方法??梢蕴峁┳侄魏头椒▉碜R別和操控HTTP請求 的任一部分或者多個部分,包括但不限于URL、 cookie、體、內(nèi)容-類型、 數(shù)據(jù)、版本和主機名。在一個實施例中,可以提供一個或者多個方法來 確定給定數(shù)據(jù)流是否是合法格式的HTTP請求。對于HTTP響應,也可以 提供類似的類和/或方法。
0126所示url類420可以包括任一數(shù)量的字段和方法,用于操作和識別url。在一個實施例中,url可以包括用于解析一個或者多個主 機名、端口、服務器、域、文件后綴、路徑和查詢的方法。在一個實施 例中,url可以是通用文本對象的一個子類,其可以允許url如同無格式 文本一樣^皮對待。例如,url類420可以是文本類435的子類。在一個實 施例中,url類可以包括用于重寫url的所有或者部分的方法。在一些實 施例中,url類可以被應用到文本的任一部分。例如,url類可以包括接 受文本串并且通過解析該串來建立url對象的構(gòu)造程序。在這些和其它 實施例中,url類可以包括用于指示URL是否是正確格式的URL的方法。 在一些實施例中,URL類可以包括用于識別文本串中一個或者多個URL的 方法。例如,可以提供靜態(tài)方法"findURL"來返回給定文本序列中合法 格式的URL的列表。例如,可以使用該方法來找到包含在HTTP響應的體 中包含的多個URL。 url類隨后可以提供用于修改一個或者多個所發(fā)現(xiàn)的 URL的方法。
0127cookie類430可以包括用于識別和處理cookie的任一數(shù)量 個字段和方法。在一個實施例中,cookie可以是HTTP cookie。在所示 實施例中,cookie類將cookie表示為名稱值對的列表。"getValue"方 法響應接收數(shù)字n可以返回列表中第n個值的文本對象。getName方法響 應于接收數(shù)字n可以返回名稱中第n個值的文本對象。在其他實施例中, cookie可使用任一其它語法或者數(shù)據(jù)類型來表示,包括但不限于串、或 者鏈接的列表。在一個實施例中,cookie類可以提供用于插入和/或改變 cookie的方法。在其他實施例中,HTTP響應或者請求對象類可以提供用 于插入或者修改包含在請求或者響應中的cookie的方法。
0128所示"text"類435可以包括用于操作文本序列的任意數(shù)
序列。在一些實施例中,文本對象可以包括字節(jié)的離散序列。在其他實 施例中,文本對象可以包括一個或者多個字節(jié)的字節(jié)流。在這些實施例 中,文本對象甚至在還沒有接收到整個流時可以被用來操作字節(jié)流的部 分??梢院臀谋緦ο蠼Y(jié)合使用的方法包括但不限于比較、截斷、搜索、 分類和正則表達式匹配和搜索。例如,可以提供方法來確定給定子串是 否存在于文本對象中。或者例如,可以提供方法來確定特定字符之前的文本對象的部分?;蛘呃?,可以提供方法用于識別給定正則表達式之 后的文本的列表。
0129在一些實施例中,還可以提供方法用于格式化或者確認文 本的格式化,使得其可以由其他類和/或方法處理。例如,可以提供方法 來確保文本對象可以被處理為XML。該方法可以檢查文本對象符合正確的 XML格式并且不包含任一惡意或者不利的錯誤?;蛘呃?,可以提供類似 的方法來確定文本序列是否可以;故處理為URL。例如,該方法可以發(fā)現(xiàn)并 且替代需要由空序列替代的任一字符,使得文本對象符合正確的URL格 式協(xié)定。
0130對象模型可以使用任一物理數(shù)據(jù)結(jié)構(gòu)或者其它基礎(chǔ)物理實 現(xiàn)方式來實現(xiàn)。在一些實施例中,多個對象可以訪問物理存儲器中的同 一個對象來執(zhí)行與每個對象相關(guān)聯(lián)的方法。在一個實施例中,所示對象 模型可以被實現(xiàn)使得多個對象實例對基礎(chǔ)數(shù)據(jù)流起作用,而不需要對于 每個對象實例產(chǎn)生數(shù)據(jù)流的各自副本。為了給出詳細的例子,關(guān)于所示 對象模型,設(shè)備可以從客戶機接收HTTP通信并且將其保存在存儲器中。 設(shè)備可以隨后4丸4亍識別http—request對象,并且隨后調(diào)用http_request 對象類305中的函lt來獲取url和/或cookie對象。i殳備可以隨后調(diào)用 url和cookie對象中的附加函數(shù)或者參考字段。這些方法的一些或者全 部可以通過解析基礎(chǔ)數(shù)據(jù)流的一些或者全部并且隨后將參考返回給該流 的部分來操作。例如,url對象可以保存基礎(chǔ)數(shù)據(jù)流中的url的開始和結(jié) 束的存儲器位置。url類的每一個方法可以隨后解析和/或修改識別的存 儲器位置中的數(shù)據(jù)的部分。以此方式,設(shè)備可以使用對象模型而不需要 在數(shù)據(jù)流中保持數(shù)據(jù)的附加副本來處理數(shù)據(jù)流。
0131在其他實現(xiàn)方式中,可以關(guān)于一些對象來實現(xiàn)一些或者所 有數(shù)據(jù)流的一個或者多個附加副本。這些對象可以在數(shù)據(jù)流的部分的副 本上執(zhí)行操作,并且如果適當,使用對副本所做的任一改變來更新數(shù)據(jù)流。
0132所示對象模型和其它可以指定可以被應用到任一輸入流的 對象類和數(shù)據(jù)結(jié)構(gòu)。例如,所示對象沖莫型可以被用來將任一輸入流處理 為http—request對象,并且隨后利用http—request對象類才是供的任意一個功能性。此外,盡管所示對象模型涉及HTTP數(shù)據(jù),但是其他對象模 型可以用來提供關(guān)于TCP、 SSL或者ICA流的功能性。在一些實施例中, 可以提供對象模型和實現(xiàn)方式使得設(shè)備可以從多個對象模型來選擇以處 理給定數(shù)據(jù)流。例如,接收到給定數(shù)據(jù)流后,設(shè)備可以確定數(shù)據(jù)流是ICA 流,并且應用適當?shù)膶ο竽P陀糜谔幚鞩CA流。但是,如果HTTP數(shù)據(jù)被 發(fā)送到ICA流中,則設(shè)備也可以應用HTTP對象模型,諸如所示的,用于 處理HTTP數(shù)據(jù)。以此方式,設(shè)備可以指定任意一個或者多個結(jié)構(gòu)來應用 到接收的字節(jié)流。
0133現(xiàn)在參見圖4B,示出對于表示URL的對象類的示例性文檔 編制屏幕??偟膩碚f,文檔編制屏幕包括對于表示URL的"http—url-t" 類的多個方法和構(gòu)造程序的部分列表。文檔編制屏幕指示"http_url_t" 類中扭^亍多個方法和在父類"text-t"中^M亍的多個方法。這些類可以 對應于參考圖4A描述的"url"和"text"類。
0134現(xiàn)在參見圖4C,示出用在策略引擎中的多個示例性面向?qū)?象的表達式??偟膩碚f,面向?qū)ο蟮谋磉_式400包括多個對象類,其可 以對應于協(xié)議、協(xié)議對象、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型。面向?qū)ο蟮谋磉_式可 以指定多個識別的對象,其可以包括方法、數(shù)據(jù)類型或者其他對象類。 示出多個示例性面向?qū)ο蟮谋磉_式400a、 400b、 400c。這些面向?qū)ο蟮?表達式可以通過網(wǎng)絡裝置在執(zhí)行以下功能中使用,這些功能包括但不限 于分析業(yè)務量流量、識別系統(tǒng)特性、負載平衡、內(nèi)容轉(zhuǎn)換和應用安全。
0135現(xiàn)在仍舊參考圖4C,更詳細地,面向?qū)ο蟮谋磉_式可以包 括允許關(guān)于對象模型的數(shù)據(jù)和函數(shù)的規(guī)范的任一表達式。第 一示例面向 對象的表達式400識別對象類和對象類的成員。在所示面向?qū)ο蟮谋磉_ 式的語法中,通過對象和隨后命名對象成員的串之后的周期來指定對象 成員。例如,HTTP. REQ識別命名為用于HTTP對象的"REQ,,的成員方法。 在此例中,方法命名可以使用全部大寫來標注。在其他實施例中,也可 以使用任一其它語法來指定面向?qū)ο蟮谋磉_式。可以使用的語法的例子 包括但不卩艮于ActionScript、 Java、 JavaScript、 C#、 Visual FoxPro、 VB.Net、 C++、 Python、 Perl、 PHP、 Ruby和/或Objective-C的語法或者 語法組合。0136在示例面向?qū)ο蟮谋磉_式400a中,表達式識別協(xié)議HTTP。 在一個實施例中,HTTP可以對應于對象類、抽象對象類、靜態(tài)對象類或 者對象模型的任一其它分量。在一些實施例中,HTTP可以是用來表示和 處理HTTP通信的多個對象類的父類。在其他實施例中,"HTTP"可以是 包括一個或者多個對象的靜態(tài)類或者方法和/或涉及HTTP通信的表達和 處理的方法。例如,表達式"HTTP. REQ"可以返回對應于數(shù)據(jù)流內(nèi)的HTTP 請求的對象。在一個實施例中,該對象可以是諸如圖4A中討論的 "http-request"類的對象類的實例。在所示實施例中,表達式400a可 以返回布爾值,該布爾值指示"joe"是否包含在HTTP請求的URL的查 詢部分中命名為"id"的值中。
0137示例的面向?qū)ο蟮谋磉_式400b提供顯式的類型轉(zhuǎn)換 (typecasting)的例子,其可以用來指定關(guān)于數(shù)據(jù)流的任一部分的結(jié)構(gòu)。 在該例中,從對應于eh可接受語言的HTTP請求首部項目返回的串凈皮顯 式類型轉(zhuǎn)換為列表。TYPECAST—TO—LIST方法將列表定界符接受作為變元, 并且基于該定界符返回列表。表達式隨后識別CONTAINS方法來確定列表 元素的其中一個是否是"en,,。該例400b可以被用來配置裝置以探測HTTP 請求是否指示請求者將英語接受為語言。在一些實施例中,對象模型和 表達式語法可以允許數(shù)據(jù)流顯式類型轉(zhuǎn)換為任一的對象類。這可以允許 用戶配置裝置來指定關(guān)于數(shù)據(jù)流而應用的任一結(jié)構(gòu)。這又可以允許用戶 來操縱協(xié)議或者協(xié)定的內(nèi)容,從而以便利處理的方式來格式化輸入流。
0138作為顯式類型轉(zhuǎn)換的另 一 個例子,表達式
HTTP.RES.HEADER("Location").TYPECAST—TO—URL.QUERY可以#皮用來類型摔爭才奐
HTTP首部的元素,使得被處理為URL。通過將文本元素類型轉(zhuǎn)換為URL, URL處理方法可以變得可用于分析網(wǎng)絡業(yè)務量流的任一部分中的內(nèi)容。
0139在一些實施例中,兩個或者更多面向?qū)ο蟮谋磉_式可以和 諸如AND、 OR、 N0T、 GREATER THAN或者LESS THAN的算子結(jié)合使用來產(chǎn) 生一個值。例如,在表達式400c中,可以返回布爾值的兩個表達式4吏用 OR算子結(jié)合。組合的表達式的結(jié)果是兩個表達式返回的值取OR。在其他 實施例中,算子可以關(guān)于任一對象或者數(shù)據(jù)類型運行,包括但不限于整 數(shù)、浮點數(shù)以及串。014 0盡管所示特定例子反映了 HTTP對象模型的上下文中的面向
對象的語句,但是面向?qū)ο蟮恼Z句和模型可以被用來訪問傳遞通過裝置 的網(wǎng)絡業(yè)務量的任意一個或者多個部分。此外,面向?qū)ο蟮恼Z句和^^莫型 可以被用來訪問裝置的系統(tǒng)特性或者給定連接或連接的裝置的特性。
0141在一個實施例中,面向?qū)ο蟮谋磉_式可以被用來將網(wǎng)絡裝
置^亍為建立在裝置的4壬一凈爭性上。例如,表達式SYS.TIME.WITHIN(timel, time2) 可以被用來將行為建立在天或者一年的天之上。或者,例如,表達式 SYS.CONNECTiONS.SSL—OPEN.COUNT可以凈皮用來返回當前乂t于系統(tǒng)開》文的SSL 連接的總數(shù)的數(shù)量。在這些例子中,SYS對象表示執(zhí)行策略的系統(tǒng),并且
在SYS對象中提供多個方法和/或字段來訪問關(guān)于系統(tǒng)狀態(tài)的信息。
0142在其他實施例中,面向?qū)ο蟮谋磉_式可以被用來將連接到 裝置的客戶機的任一特性作為網(wǎng)絡裝置行為的基礎(chǔ)。在一個實施例中, "CLIENT"對象可以被提供用來表示發(fā)送或者接收當前處理的數(shù)據(jù)流的
客戶才幾的特性。例如,表達式CLIENT.IP.SRC.IN—SUBNET(10.100.202.0/24)可以謬皮 用來基于對應于數(shù)據(jù)流的客戶機是否在給定子網(wǎng)中來返回真/假值?;?者,例如,表達式CL正NT.AGENT.VERSION—NUM可以#皮用來重新獲耳又在客戶 機上執(zhí)行的客戶機代理的版本號?;蛘呃?,表達式 CLJENT.VLAN.V1RTUAL—IP可以尋皮用來訪問客戶才幾的虛擬IP i也址。
0143仍在另一個實施例中,面向?qū)ο蟮谋磉_式可以被用來將連 接到裝置的服務器的任 一 性質(zhì)作為網(wǎng)絡裝置行為的基礎(chǔ)。例如, SERVER.METRICS.HTTP.AVG—RESP—TIME可以#皮用來i方問用于產(chǎn)生HTTP i青求的 月l務器的平均響應時間?;蛘呃纾琒ERVER.ICA.MAX—CONNECTIONS.可以#皮 用來識別為給定服務器指定的最大數(shù)量ICA連接?;蛘呃?, SERVER.ETHER.HEADER可以被用來識別到服務器的給定連接的以太網(wǎng)分組 首部。
0144在一些實施例中,面向?qū)ο蟮谋磉_式被用來在處理之前或
者期間來緩存特定量的通信。例如,對于HTTP通信用作代理服務器的設(shè) 備可以期望將一些行為建立在響應的初始部分上。在這種情況中,可以 期望僅緩存響應的一部分,使得不會承受過度的端到端響應時間。在一 個實施例中,表達式可以指定多個字節(jié)來在估計表達式之前接收。例如,表達式HTTP.REQ.getBody(5000).TYPECAST—TO—NV—LIST('=', '&').getValue("id")可以#皮用
來緩存HTTP請求體的前5000個字節(jié),并且隨后將這些字節(jié)處理為名稱-值對列表。該表達式隨后指定來得到對應于名稱"id"的值。
0145現(xiàn)在參考圖5,示出可以用在配置裝置中的策略的例子???的來說,策略500包括可以在規(guī)則505的上下文中估計的表達式510。策 略5 00還可以包括指定在規(guī)則滿足時采取的動作的動作515 。
0146仍舊參考圖5,現(xiàn),在更詳細地,第略可以被用來配置紫置, 在一些實施例中,策略可以用來配置任一裝置,包括但不限于WAN優(yōu)化設(shè) 備200、 SSL/VPN設(shè)備200、加速設(shè)備200、高速緩存設(shè)備200、負載平衡 設(shè)備和/或提供那些裝置的特征的任一組合的裝置。在其他實施例中,策 略可以被用來配置客戶機代理或者服務器代理。
0147在一些實施例中,裝置上執(zhí)行的策略引擎可以解釋、估計、 和/或執(zhí)行關(guān)于裝置的功能的策略。例如,策略引擎236可以在設(shè)備200 上執(zhí)行,并且解釋和執(zhí)行指導設(shè)備的其他動作和模塊的多個策略,包括 但不限于SSL/VPN模塊280、內(nèi)聯(lián)網(wǎng)IP模塊282、轉(zhuǎn)換模塊284、 DNS模 塊286、加速模塊288、應用防火墻模塊29G和/或監(jiān)控代理197。在一些 實施例中,可以提供單組策略用于指導多個設(shè)備功能。在其他實施例中, 可以使用各組策略來配置多個設(shè)備功能的每一個。策略可以以任一方式 保存在裝置中。在一些實施例中,策略在裝置上執(zhí)行之前可以被編譯。 在其他實施例中,可以在運行時解釋策略。
0148策略500可以包括一個或者多個表達式510。策略中的表達 式由裝置在運行時關(guān)于在表達式中指定的對象來估計,以產(chǎn)生一個值。 表達式510可以是任一類型的表達式。在一個實施例中,表達式510可 以是面向?qū)ο蟮谋磉_式。表達式可以在策略中的任何地方使用。在一些 實施例中,表達式可以在策略的規(guī)則中指定。在其他實施例中,表達式 可以在策略的動作中指定。
0149策略5 00還可以包括規(guī)則5 05 。規(guī)則可以在運行時關(guān)于對象、 方法和規(guī)則中識別的算子而被估計,來產(chǎn)生一個結(jié)果。依據(jù)該結(jié)果,設(shè) 備隨后可以執(zhí)行策略中指定的一個或者多個動作。例如,如果規(guī)則估計 為"真",則設(shè)備可以執(zhí)行和規(guī)則關(guān)聯(lián)的動作?;蛘呷绻?guī)則估計為"假",則設(shè)備不能執(zhí)行和規(guī)則相關(guān)聯(lián)的動作。在一些實施例中,規(guī)則可以包括 單個表達式。在其他實施例中,規(guī)則可以包括由算子連接的多個表達式。
0150策略500還可以包括動作515。動作可以指定所采取的任一
流或者對象轉(zhuǎn)發(fā)到給定服務器或者裝置、將對象保存在存儲器中、改變 數(shù)據(jù)流的一部分、改變一個或者多個系統(tǒng)特性、執(zhí)行加速技術(shù)和執(zhí)行壓 縮技術(shù)。在所示的策略500中,當確定HTTP請求URL包含"JOE"的用 戶標識符時,策略指示將請求轉(zhuǎn)發(fā)到指定服務器的動作。在一些實施例 中,動作可以包括運行時被估計的表達式。
0151現(xiàn)在參考圖6,示出用戶用來輸入面向?qū)ο蟮谋磉_式的表達 式輸入屏幕600的例子??偟膩碚f,表達式輸入屏幕600包括允許用戶 來指定類的成員以包括在所建立的表達式中的多個下拉菜單620。屏幕 610還可以包括用戶能夠看到和/或編輯表達式的文本版本的顯示。屏幕 還可以包括為用戶顯示對應于一個或者多個對象的信息的顯示630。
0152仍舊參考圖6,現(xiàn)在更詳細地,表達式輸入屏幕允許用戶以 任何方式輸入面向?qū)ο蟮谋磉_式。在所示實施例中,下拉菜單620可以 被用來選擇對象。在其他實施例中,任一其它輸入元素可以被用來接受 面向?qū)ο蟮谋磉_式,包括但不限于文本字段、菜單、按鈕、檢驗欄和工 具欄。在一些實施例中,屏幕600的輸入元素可以為用戶提供建立和驗 證合法表達式的功能性。在一些實施例中,下拉菜單620可以和之前指 定的類的成員自動組裝在一起。例如,當用戶選擇所示菜單中的"URL" 時,下一個下拉菜單將和URL對象類的成員組裝在一起。以此方式,用 戶可以有效導航類的層級和對象模型以產(chǎn)生表達式。在其他實施例中,
建立和-險證表達式。例如,用戶可以^是供文本字4史610來組成表達式, 其中,文本字段以紅色突出顯示任一未識別的對象或者語法?;蛘呃?, 用于可以提供文本字段610,當用戶鍵入對象類時,該文本字段顯示對象 類的成員的列表。
0153在一些實施例中,表達式輸入屏幕600可以為用戶顯示關(guān) 于任一對象或者表達式的信息。在一些實施例中,屏幕600可以顯示給定類的特性和/或推薦的使用。在一個實施例中,屏幕600可以和諸如圖
4B中描寫的一個或者多個類文檔編制屏幕集成在一起或者一起使用。
0154現(xiàn)在參見圖7A,示出可以被用于配置對應于一個或者多個 網(wǎng)絡裝置的多個策略的配置接口屏幕的例子。總的來說,屏幕顯示具有 包含一個或者多個策略、策略組或者涉及功能的設(shè)置的文件夾的網(wǎng)絡裝 置功能710的列表。在所示例子中,屏幕顯示文件夾用于系統(tǒng)策略、網(wǎng) 絡策略、DNS策略、SSL策略、SSL卸載策略、壓縮策略、集成的高速緩 存策略、保護特征、負載平衡策略、內(nèi)容轉(zhuǎn)換策略、高速緩存重定向策 略、全局負載平衡策略、SSL VPN策略和應用安全策略。在一些實施例中, 多個策略、策略組和/或?qū)诠δ艿脑O(shè)置可以被稱為配置文件。
0155仍舊參考圖7A,并且更詳細地,配置接口可以允許用戶指 定涉及一個或者多個網(wǎng)絡裝置的策略或者設(shè)置。在一些實施例中,配置 接口可以被用來配置設(shè)備200,包括但不限于VPN設(shè)備、加速設(shè)備或者 WAN優(yōu)化裝置。在一些實施例中,單個配置接口可以允許用戶來配置多個 設(shè)備。例如,用戶可以指定一個或者多個設(shè)備來應用給定的策略、策略 組或者相關(guān)設(shè)置。在一個實施例中,用戶可以指定為多個設(shè)備共享配置 文件。例如,用戶可以配置設(shè)備200的集群使得每一個設(shè)備具有相同的 策略設(shè)置。在其他實施例中,配置接口 700可以-陂用于配置一個或者多 個客戶才幾代理120。
0156配置接口 700可以包括收集輸入的任一工具,包括但不限 于GUI和命令行接口。配置接口可以包括一個或者多個表達式輸入屏幕 600。在一個實施例中,配置接口可以從文件讀出配置信息。在另一個實 施例中,配置接口可以通過網(wǎng)絡來接收配置信息。例如,配置接口 700 可以包括用戶下載一個或者多個策略、設(shè)置、策略組或者配置文件的工 具。對于多個應用這些可以包括共同使用的策略或者設(shè)置。
0157配置接口可以模糊(obscure)來自用戶的策略、策略組或 者配置的任一特征。例如,配置接口可以自動或者默認填充策略或者策 略組的任一部分,使得用戶不需要主動配置那些部分。例如,配置接口 可以提供動作的默認列表,其中用戶僅需要指定應該采取的動作所基于 的規(guī)則的列表。動作的語法和實現(xiàn)對于用戶可以完全或者部分隱藏。0158現(xiàn)在參考圖7B,示出使用計算機來配置使用配置接口的設(shè) 備的例子。總的來說,在客戶機102上顯示包括表達式輸入屏幕500的 配置接口 700??蛻魴C102將經(jīng)由配置接口接收的配置數(shù)據(jù)發(fā)送給設(shè)備 200。
0159仍舊參考圖7B,現(xiàn)在更詳細地,配置4妻口 700可以以4壬一 方式顯示在客戶^/L 102上。在一些實施例中,配置^^妄口 700可以包^"客 戶機上執(zhí)行的應用。在其他實施例中,配置接口 700可以包括通過i殳備 顯示的web頁面。仍在其他實施例中,配置接口 700可以包括通過第三 方裝置顯示的web頁面。
0160配置接口 700可以包括對于用戶輸入配置數(shù)據(jù)的任一工具, 包括但不限于文本字段、菜單、按鈕、窗口、檢驗欄和拖放功能。在一 些實施例中,配置接口 700可以包括表達式輸入屏幕500。在其他實施例 中,配置接口還可以提供用于用戶輸入一個或者多個策略的屏幕。在一 些實施例中,這些屏幕可以和一個或者多個表達式輸入屏幕集成在一起。
0161配置接口可以通過任一工具將配置信息發(fā)送到設(shè)備200。配 置信息可以經(jīng)由任意一個或者多個協(xié)議發(fā)送。在一個實施例中,用戶輸 入的配置信息可以^皮保存到客戶機102上的文件,并且隨后該文件可以 被發(fā)送到設(shè)備。在其他實施例中,用戶可以將信息輸入到web頁面中或 者web設(shè)備,其可以隨后將配置信息傳送到設(shè)備。在一些實施例中,配 置信息在其被發(fā)送到設(shè)備200之前可以被編譯、格式化或者以其他方式 處理。仍在其他實施例中,配置信息可以在其已經(jīng)被設(shè)備接收之后被編 譯、格式化或者以其他方式處理。
0162現(xiàn)在參考圖8A,描述使用面向?qū)ο蟮谋磉_式來配置網(wǎng)絡裝 置的面向?qū)ο蟮牟呗砸灾付ňW(wǎng)絡裝置所接收的分組流的有效載荷中的結(jié) 構(gòu)的方法的實施例??偟膩碚f,由裝置提供配置接口 700來配置用于網(wǎng) 絡裝置200的策略600 (步驟801)。裝置經(jīng)由配置接口 700接收用于策 略600的表達式610 (步驟803 )。裝置經(jīng)由配置接口 700接收基于表達 式的估計來識別所采取的動作的用戶信息(步驟805 )。
0163仍舊參考圖8A,更詳細地,可以提供配置接口用來以任一 方式配置用于網(wǎng)絡裝置200的策略600 (步驟801)。在一些實施例中,配置接口 700可以包括命令行接口。在其他實施例中,配置接口 700可 以包括圖形用戶接口。配置接口 700可以包括一個或者多個拖放接口、 列表選擇接口或者語法突出顯示接口。在一些實施例中,配置接口 700 駐留在客戶機裝置102上。在其他實施例中,配置接口 700在網(wǎng)絡裝置 200上執(zhí)行。在一些實施例中,提供配置接口 700的裝置通過網(wǎng)絡104連 接到設(shè)備200。在一些實施例中,配置接口 700是web頁面。在一些其他 實施例中,配置"l妄口 700是駐留在網(wǎng)絡裝置200上的web頁面。在其他 實施例中,配置接口 700是駐留在各服務器106上的web頁面。
0164裝置經(jīng)由配置接口 700接收用于策略600的表達式610,該 策略600指定對象類來應用到分組流的有效載荷的部分和多個對象類(步 驟803 )。在一些實施例中,表達式可以經(jīng)由表達式輸入屏幕500接收。 在一個實施例中,表達式610識別分組流中的文本的部分。在特定實施 例中,表達式610指定協(xié)議,并且還可以指定和協(xié)議相關(guān)的一個或者多 個方法和字革殳。例如,表達式可以指定HTTP、 HTML、 FTP、 SMTP、 ICA和 /或SSL的協(xié)議。所指定的協(xié)議隨后可以被應用來解析根據(jù)協(xié)議的數(shù)據(jù)流。0165所接收的表達式可以指定任一對象類。例如,所接收的表 達式可以指定圖4A的對象模型中描述的任意一個對象類??梢砸匀我环?式指定對象類。在一個實施例中,指定對象類可以包括執(zhí)行對象類的實 例。例如,表達式"HTTP. REQ,,可以指定來自圖4A的"http—request" 對象的實例。在一些實施例中,所接收的表達式可以包括面向?qū)ο蟮谋?達式。
0166所接收的表達式還可以指定識別的對象類的任一成員。該 成員可以包括任一對象、數(shù)據(jù)類型或者方法。在一些實施例中,該成員 包括字段。在其他實施例中,該成員可以包括對應于第二對象類的字段。 在一些實施例中,對象類的成員包括方法。在一些實施例中,對象類的 成員從該對象類的父類繼承。對象類的成員可以對應于HTTP請求或者響 應。在其他情況中,類的成員可以是統(tǒng)一資源定位符("URL,,)或者cookie。
0167在其他實施例中,表達式610包括明確的類型轉(zhuǎn)換。明確 的類型轉(zhuǎn)換可以;故用來指定對象類以關(guān)于字段或者返回的對象來使用。
例如,包含數(shù)字的字段可以被顯式類型轉(zhuǎn)換為字母數(shù)字串,用來執(zhí)行串比較。或者例如,字節(jié)的流可以被類型轉(zhuǎn)換為具有給定定界符的列表。 或者例如,數(shù)據(jù)流可以被類型轉(zhuǎn)換為對應的特定協(xié)議或者協(xié)議對象。
0168裝置可以經(jīng)由配置接口 700接收識別用于策略600的動作 615的信息,該動作615基于表達式610的估計而被采取(步驟805 )。 在一些實施例中,動作615可以包括面向?qū)ο蟮谋磉_式。在特定實施例 中,該方法執(zhí)行動作615用來提供負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應 用遞送、網(wǎng)絡加速或者應用加速。例如,為了加速網(wǎng)絡行為,該方法可 以估計表達式610來確定用戶的位置并且基于用戶的位置將用戶的業(yè)務 量路由給地理上最接近的一個或者多個服務器106。在一些實施例中,通 過將URL重寫到HTTP請求或者響應中,策略可以執(zhí)行安全、加速、負載 平衡或者內(nèi)容轉(zhuǎn)換功能。例如,動作615可以指定來修改HTTP請求使得 URL指向特定的服務器或者服務器群組106。在一些實施例中,從配置接 口 700接收的動作615可以是用于"無動作"或者用于默認動作的表達 式。
0169現(xiàn)在參考圖8B,描述通過裝置來應用策略600中的面向?qū)?象的表達式610來指定設(shè)備200所接收的分組流的有效負載中的結(jié)構(gòu)的 方法的實施例??偟膩碚f,設(shè)備200識別包括面向?qū)ο蟮谋磉_式610的 策略600來估計關(guān)于所接收的分組流的有效載荷(步驟821 )。設(shè)備200 基于有效載荷的部分來分配值到面向?qū)ο蟮谋磉_式610指定的數(shù)據(jù)結(jié)構(gòu) (步驟823 )。設(shè)備200基于分配的值來執(zhí)行表達式610的估計(步驟825 ) 并且響應于該估計來采取策略600指定的動作615 (步驟827 )。
0170仍舊參考圖8B,更詳細地,設(shè)備可以識別策略來以任一方 式應用到數(shù)據(jù)流(步驟821)。在一些實施例中,設(shè)備可以從一個或者多 個配置文件讀出策略。在其他實施例中,設(shè)備中的策略引擎236可以將 多個策略保存在存儲器中。仍在其他實施例中,設(shè)備可以響應于數(shù)據(jù)流 的類型或者協(xié)議來識別策略。例如,設(shè)備可以具有應用到所有輸入TCP 流的一組策略?;蛘呃纾O(shè)備可以識別應用到SSL流的一個或者多個 策略。在一個實施例中,設(shè)備可以基于數(shù)據(jù)流的發(fā)送者或者接收者來識 別策略。例如,VPN設(shè)備可以具有被應用到來自客戶機的輸入連接請求的 一組策略?;蛘呒铀傺b置可以識別一個或者多個策略來應用到來自服務
76器106的HTTP流。在一些實施例中,策略可以包括經(jīng)由配置接口 700接 收的策略。
0171分組流可以以任一方式并且從任一資源^接收。在一些實施 例中,分組流可以由設(shè)備透明攔截。在其他實施例中,設(shè)備可以在代理 一個或者多個傳輸層連接的過程中接收分組流。分組流可以包括任一類 型的分組,包括但不限于IP分組、TCP分組、UDP分組和ICMP分組。分 組流可以包括任意其它一個或者多個協(xié)議。
0172所識別的策略可以包括面向?qū)ο蟮谋磉_式來估計關(guān)于分組 流的有效載荷。面向?qū)ο蟮谋磉_式可以包括任一類型的面向?qū)ο蟮谋磉_ 式,并且可以指定一個或者多個對象類、字段和方法。在一些實施例中, 面向?qū)ο蟮谋磉_式可以包括規(guī)則的部分。在一些實施例中,表達式可以 指定對應于客戶機、服務器、HTTP協(xié)議或者設(shè)備的一個或者多個對象。
0173面向?qū)ο蟮谋磉_式可以關(guān)于分組流的任一有效載荷被估計。 在一個實施例中,表達式可以關(guān)于TCP或者UDP流的有效載荷被估計。 在另一個實施例中,表達式可以關(guān)于SSL流-陂估計。在又一個實施例中, 表達式可以關(guān)于ICA流的有效載荷被估計。分組流可以從任一資源接收, 包括但不限于客戶機、服務器、客戶機代理、服務器代理或者第二設(shè)備。
01"設(shè)備分配值給面向?qū)ο蟮谋磉_式610所指定的數(shù)據(jù)結(jié)構(gòu)(步 驟823 )。數(shù)據(jù)結(jié)構(gòu)可以包括對象實例的物理表示。在一些實施例中,設(shè) 備可以解析所接收的有效載荷的一些或者全部來分配值。在其他實施例 中,設(shè)備可以執(zhí)行表達式指定的或者對象模型中包括的任一方法來分配 值。例如,關(guān)于表達式
0175"HTTP.REQ.HEADER("Acc印t-Language").TYPECAST—TO—LIST(",")", i殳備 可以分配值給所指定的請求、首部和逗號分界的列表中的每一個的相應 對象。在一些實施例中,值的分配可以包括確定對應于對象的數(shù)據(jù)流的
一個或者多個部分。在一些實施例中,步驟823包括通過設(shè)備200應用 面向?qū)ο蟮谋磉_式610指定的類到有效載荷的字節(jié)流。例如,如果表達 式指定URL類,設(shè)備可以通過確定所接收的有效載荷中的URL的開始和 結(jié)束點來分配值到基本的URL數(shù)據(jù)結(jié)構(gòu)。這些開始和結(jié)束點隨后可以被 保存在URL數(shù)據(jù)結(jié)構(gòu)中,并且用來執(zhí)行URL類中的任意一個方法。在一些實施例中,設(shè)備可以分配值到面向?qū)ο蟮谋磉_式指定的多個數(shù)據(jù)結(jié)構(gòu)。
在一個實施例中,策略引擎236可執(zhí)行和策略的估計相關(guān)的任一功能。
0176設(shè)備可以基于所分配的值以任一方式執(zhí)行表達式610的估 計(步驟825 )。在一些實施例中,設(shè)備可以使用表達式指定的對象類的 一個或者多個方法來執(zhí)行估計。在一些實施例中,估計可以產(chǎn)生布爾值。 在其他實施例中,估計可以產(chǎn)生整數(shù)、串或者其他對象。設(shè)備可以以任 一方式使用分配的值。在上面的URL例子中,在確定對于URL的開始和 結(jié)束點之后設(shè)備可以隨后使用那些值來執(zhí)行關(guān)于URL的任一操作。在一 些實施例中,設(shè)備可以隨后執(zhí)行圖4A中引用的getSuffix ()方法,其 識別所請求的URL的文件類型后綴。該方法還可以包括確定關(guān)于URL的 開始和結(jié)束點的后綴的開始和結(jié)束點。設(shè)備隨后可以使用后綴的開始和 結(jié)束點來執(zhí)行文件后綴的任一估計,諸如將其與串".jsp"相比較來確 定所請求的URL是否對應于Java月良務器頁面(Java Server Page )。
0177在一些實施例中,設(shè)備可以估計包括表達式的規(guī)則。在其 他實施例中,設(shè)備可以估計包括多個表達式的規(guī)則。
0178設(shè)備隨后響應于該估計可以采取策略600所指定的動作615 (步驟827 )。在一個實施例中,如果估計的結(jié)果是對應于真的值,則設(shè) 備采取動作。在另一個實施例中,如果估計的結(jié)果是非零,則設(shè)備可以 采取動作。所釆取的動作可以是任一動作,包括但不限于涉及負載平衡、 內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或者應用加速的任一動作。 在一些實施例中,動作615可以包括"無動作"。
0179在一些實施例中,設(shè)備可以立即執(zhí)行跟隨該估計的動作。 在其他實施例中,設(shè)備可以執(zhí)行估計至少一個其它策略之后的動作。在 又一些實施例中,設(shè)備可以在等待預訂數(shù)量的時間或者等待直到資源可 用之后執(zhí)行該動作。在一個實施例中,設(shè)備可以在接收到分組流的附加 部分之后執(zhí)行動作。
0180在一些實施例中,設(shè)備隨后可以將接收的分組流轉(zhuǎn)發(fā)到一 個或者多個設(shè)備服務器、客戶機或者客戶機代理。設(shè)備可以執(zhí)行關(guān)于分 組流的任一其它網(wǎng)絡設(shè)備功能,包括但不限于加速、壓縮和負載平衡。
0181現(xiàn)在參考圖8C,示出在設(shè)備200中用于應用策略600中的
78面向?qū)ο蟮谋磉_式610來指定設(shè)備200接收的分組流的有效載荷中的結(jié)構(gòu)的方法??偟膩碚f,設(shè)備識別包括面向?qū)ο蟮谋磉_式610的策略600來估計關(guān)于所接收的分組流的有效載荷(步驟841)。設(shè)備基于有效載荷的部分來分配值給面向?qū)ο蟮谋磉_式610所指定的數(shù)據(jù)結(jié)構(gòu)(步驟843 )。設(shè)備還基于所分配的值執(zhí)行表達式610的估計(步驟845 )。響應于該估計,設(shè)備改變所接收的分組流的部分(步驟847 )并且將所改變的分組流發(fā)送(步驟849 )。
0182仍舊參考圖8C,現(xiàn)在更詳細地,設(shè)備可以識別指定面向?qū)ο蟮谋磉_式610的策略600來估計關(guān)于所接收的分組流的有效載荷(步驟821 )。該步驟可以以此處描述的任一方式來執(zhí)行。
0183設(shè)備可以基于有效載荷的部分以任一方式來分配值給面向?qū)ο蟮谋磉_式610所指定的數(shù)據(jù)結(jié)構(gòu)(步驟823 )。該步驟可以以此處描述的任一方式來執(zhí)行。
0184設(shè)備基于所分配的值執(zhí)行表達式的估計(步驟845)。該步驟可以以此處描述的任一方式來執(zhí)行。
0185響應于該估計,設(shè)備可以改變所接收的分組流的部分(步驟847 )。在一些實施例中,改變所接收的分組流的部分可以包括響應于該估計來采^l動作(步驟827 )。在一些實施例中,所改變的分組流的部分由面向?qū)ο蟮谋磉_式識別的數(shù)據(jù)結(jié)構(gòu)來指定。在其他實施例中,所改變的分組流的部分由第二面向?qū)ο蟮谋磉_式指定。在一些實施例中,所改變的分組流的部分可以由策略的動作中的面向?qū)ο蟮谋磉_式指定。在一些實施例中,設(shè)備可以重寫HTTP響應或者請求的體中的URL。在其他實施例中,設(shè)備可以重寫分組流中的表格(form)字段值。所改變的表格字段(form field)可以是對象中的HTTP請求、HTTP響應或者任一其它字段,該對象是分組流的部分。在又一個實施例中,設(shè)備可以改變包含在分組流中的一個或者多個名稱-值對。在一些實施例中,設(shè)備可以重寫所接收的分組流的部分而模糊或者移除機密數(shù)據(jù),包括但不限于個人身份號碼、支票賬戶轉(zhuǎn)賬號碼、個人聯(lián)系信息、社會安全號碼、密碼或者其它機密信息。
0186為了給出詳細例子,當從去往服務器的客戶機接收HTTP流時,對服務器提供應用安全功能的設(shè)備可以確定以應用策略
如果(141113.11叫1 5{.§6 :00^6().呂6^311^("1156'1113016").化1^111 > 20)貝U
H:TTP.Request.getCookie().setValue("usemame'', "void")
在此例中,設(shè)備可以解析HTTP流的一些或者全部以識別包含請求的流的部分,并且之后識別請求中的cookie。設(shè)備可以以任一方式完成此操作,包括維持具有指向?qū)谡埱蠛蚦ookie的流的區(qū)域的參考指針的一個或者多個內(nèi)部數(shù)據(jù)結(jié)構(gòu),設(shè)備可以隨后識別cookie中的"用戶名,,名稱-值對的值并且確定該值的長度是否大于20個字符。大于20個字符的長度可以指示應用錯誤或者惡意攻擊,諸如所企圖的緩存器溢出攻擊。當確定長度大于20個字符時,設(shè)備可以隨后改變該值為"避免,,或者任一其它信號,該任一其它信號可以通知接收該流的服務器不正確的值由客戶機發(fā)送。設(shè)備可以使用和/或修改任一內(nèi)部數(shù)據(jù)結(jié)構(gòu),用來改變該流。設(shè)備隨后可以將改變的流轉(zhuǎn)發(fā)給服務器。在其他實施例中,設(shè)備可以在探測到可能的溢出時簡單地阻止該流到達服務器。在這些實施例中,設(shè)備可以返回錯誤消息給客戶機。
0187在其他實施例中,設(shè)備可以使用新的響應來替代整個HTTP響應。例如,如果設(shè)備確定響應包含表中的機密數(shù)據(jù),則設(shè)備可以使用指示錯誤的響應或者包括中性(neutral )內(nèi)容的響應來替代該響應。在又一個實施例中,設(shè)備可以替換或者重寫整個HTTP請求或者響應的首部。
0188設(shè)備可以隨后以任一方式發(fā)送所改變的分組流(步驟849 )。在一些實施例中,設(shè)備可以將所改變的分組流轉(zhuǎn)發(fā)給指定為該流的接收者的服務器或者客戶機。在其他實施例中,設(shè)備可以將該流重定向到設(shè)備、服務器或者客戶機,而不是該流的預期接收者。設(shè)備可以使用任意一個或者多個協(xié)議發(fā)送所改變的分組流,包括^旦不限于TCP、 IP、 UDP、SSL和ICA。
E、用于處理未限定的策略表達式的系統(tǒng)和方法0189現(xiàn)在參考圖9,示出在設(shè)備200中在策略600的元素未限定的情況下用于應用指定所采取的動作615的策略600的方法的實施例??偟膩碚f,設(shè)備識別策略600來估計關(guān)于所接收的分組流的有效載荷,其中策略600指定(i )表達式610, ( ii )基于表達式610所采取的第一
80動作615和(iii )如果元素未限定時所采取的第二動作610 (步驟901 )。設(shè)備確定策略600的元素關(guān)于有效載荷未限定(步驟903 )。響應于元素未限定的其決定,設(shè)備采取第二動作(步驟905 )。 一般來說,該方法允許策略當設(shè)備嘗試估計策略時如果遇到錯誤或者異常情況時來指定所采取的動作。以此方式,第二動作可以是撤退或者錯-i吳處理方法。
0190仍舊參考圖9,更詳細地,設(shè)備識別策略600來估計關(guān)于所接收的分組流的有效載荷,其中策略600指定表達式610,基于表達式610的所采取的第一動作615和如果策略的元素未限定時所采取的第二動作610 (步驟901)。設(shè)備可以以任一方式識別策略。在一個實施例中,表達式可以是面向?qū)ο蟮谋磉_式。在另一個實施例中,表達式610可以識別對象類來應用到分組流的有效載荷的部分和對象類的成員。在另一個實施例中,表達式610指定一個協(xié)議,并且還可以指定一個或者多個相關(guān)的方法和字段。表達式可以指定任一類型的對象和/或?qū)ο箢?。在一些實施例中,表達式可以包括對象類的一個或者多個方法。
0191分組流可以以任一方式并且從任一資源接收。在一些實施例中,分組流可以由設(shè)備透明攔截。在其他實施例中,設(shè)備可以在代理一個或者多個傳輸層連接過程中接收分組流。分組流可以包括任一類型分組,包括^f旦不限于IP分組、TCP分組、UDP分組和ICMP分組。分組流可以包括任意其它的一個或者多個協(xié)議。
0192由策略指定的第一動作可以包括任一動作。在一些實施例中,第一動作可以包括如果表達式或者包含表達式的規(guī)則估計為真時所執(zhí)行的動作。在一些實施例中,動作615可以涉及負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或者應用加速。在其他實施例中,動作615可以包括"無動作,,或者默認動作。
0193第二動作指定如果未限定策略的元素時所采取的動作。策略的元素可以包括策略的任一部分,包括但不限于一個或者多個表達式、規(guī)則或者算子。元素可以在任一情況中未限定,其中設(shè)備不能成功分配值給該元素。在一個實施例中,如果元素導致不兼容的類型的比較時,諸如確定整數(shù)是否大于列表或者布爾值是否等于串,元素可以未被限定。在其他實施例中,如果元素導致一個或者多個空值時元素可以未被限定。
81例如,如果表達式嘗試訪問URL對象中的"用戶名"值并且表達式被應
用到具有所指定的無用戶名值的URL的數(shù)據(jù)流,則關(guān)于用戶名的操作可以未被限定。在其他實施例中,由于一個或者多個不正確的類型轉(zhuǎn)換,元素可以未^C限定。
0194在一些實施例中,第二動作可以已經(jīng)由用戶通過配置"l妄口指定。例如,當進入或者查看配置接口中的策略時,如果在運行時策略未被限定,用戶可以被提示輸入所采取的動作。在其他實施例中,第二動作可以包括預配置的默認的第二動作。例如,在未限定的元素的情況下一組策略可以具有所采取的默認動作。例如,啟用URL重寫的一組策略可以具有不重寫任一 URL的默認的第二動作?;蛘哂糜趫?zhí)行負載平tf的 一組策略可以具有將分組流轉(zhuǎn)發(fā)到指定的備份服務器的默認第二動作。
0195設(shè)備200可以以任一方式確定策略600的元素是否關(guān)于有效載荷未限定(步驟903 )。在一些實施例中,設(shè)備可以確定在估計策略的過程中未限定策略。在其他實施例中,設(shè)備可以確定在預編譯、編i奪或者解釋策略的過程中未限定策略。在一些實施例中,設(shè)備可以通過枱,測在估計策略期間所產(chǎn)生的一個或者多個異常來確定策略未被限定。例如,設(shè)備可以檢測策略估計期間的空指針、溢出、或者算術(shù)處理異常。
0196響應于確定元素未被限定,設(shè)備可以采取第二動作(步驟905 )。第二動作可以包括此處描述的任一動作。在一些實施例中,第二動作可以包括終止分組流的接收和/或傳送。在其他實施例中,第二動作可以包括無動作。
F、用于配置和使用策略組的系統(tǒng)和方法
0197現(xiàn)在參考圖IOA,示出策略體的例子??偟膩碚f,策略體1000a包括具有指定順序用于估計的一組一個或者多個策略。在所示例子中,對于每個策略由行編號來指定順序。每個策略還可以具有指示在當前策略估計之后要估計的策略的流指令1010a、 1010b、 1010c、 1010d(總表示為1010)。
0198仍舊參考圖10A,并且更詳細地,策略體1000可以包括任意數(shù)量個策略,包括但不限于l、 2、 3、 4、 5、 6、 10、 20、 50和100個策略。策略體的策略可以包括此處描述的任一策略。在一些實施例中, 策略體可以包括執(zhí)行通用功能的一組策略。例如,策略體可以包括提供
負載平衡功能的一組策略?;蛘呃纾呗泽w可以包括用于提供高速緩 存的一組所有的策略。
0199策略體可以以任一方式配置。在一些實施例中,配置接口
700可以被提供其允許用戶來建立或者分組一個或者多個策略。在一些實 施例中,配置接口可以被提供其允許用戶來命名給定的策略體。在其他 實施例中,配置接口可以被提供其允許用戶來指定策略體的一個或者多 個屬性。例如,在異?;蛘呶聪薅ú呗缘那闆r下策略體可以具有默認動 作來執(zhí)行?;蛘呃纾呗泽w可以具有策略體所應用到的一組環(huán)境。例 如,用戶可以指定關(guān)于所有輸入的HTTP業(yè)務量而使用策略體。或者例如, 用戶可以指定當接收來自新的裝置的任一連接請求時使用策略體。在其 他實施例中,策略體可以包括一皮用來加強策略體的策略中特定特征的一 組屬性。例如,策略體可以請求策略體中無策略訪問特定對象。策略體 的屬性可以在配置時或者運行時加強。
0200策略體可以以任一方式保存。在一些實施例中,策略體可 以保存在設(shè)備中的文件上。在其他實施例中,策略體可以保存在設(shè)備的 策略引擎236中。
0201策略體可以包括任一方式的排序策略用于估計。在一個實 施例中,策略體可以包括策略的排序列表。在其他實施例中,策略體可 以包括具有指示估計順序的一個或者多個流量指令1010的一組策略。在 又一些實施例中,策略體可以包括一列編號的要執(zhí)行的策略,用于增加 編號。
0202策略體中的每一個表達式可以指定流量指令1010。在包含 流量指令的策略估計為真的情況下流量指令1010可以包括指示要執(zhí)行的 策略的任一信息或者表達式。在一個實施例中,流量指令可以包括"NEXT', 語句1010a,其指示體中的下一個策略可以-故估計。在另一個實施例中, 流量指令可以包括"GOTO"語句1010b,其識別接著被估計的策略體中的 另一策略。在一些實施例中,GOTO語句可以通過行編號來識別策略。在 其他實施例中,GOTO語句可以通過策略名稱或者其它標識符來識別策略。在又一個實施例中,流量指令可以包括"END"語句,其指示應該不再估
計策略體的策略。
0203在一些實施例中,流量指令1010d可以包括表達式或者要 估計的表達式來確定下一個執(zhí)行的策略。流量指令可以包括任一表達式, 包括但不限于任一面向?qū)ο蟮谋磉_式。例如,流量指令1010d指定跟隨 查詢的"servnum"部分的整數(shù)應該凈皮增加到17來確定下一個要執(zhí)4亍的 策略的行。在示例性策略體中,流量指令1010d可以被用來基于請求中 的參數(shù)在多個服務器上分布HTTP請求。
0204在一些實施例中,配置接口 700可以配備有用于用戶在策 略體中排序策略的工具。配置接口可以允許用戶指定行號、優(yōu)先級、列
表排序或者指定估計順序的任一其它工具。在一些實施例中,配置接口 700可以允許用戶來指定關(guān)于策略或者策略體的一個或者多個流量指令。 在其他實施例中,配置接口還可以才是供用于輸入對應于策略體中的策略 的一個或者多個流量指令的任一輸入工具。
0205現(xiàn)在參考圖10B,示出用在處理分組流的網(wǎng)絡裝置200中的 策略600上的流量控制的方法的實施例??偟膩碚f,該方法包括由設(shè)備 200識別多個策略600來應用到所接收的分組流,其中,策略600的至少 一個包括策略標識符(步驟1001)。設(shè)備處理多個策略600的第一策略 600,第一策略600識別(i)包括第一表達式610的規(guī)則605 ( i i )基于 規(guī)則605的估計所采取的第一動作615,和Uii)來自多個策略上的第 二策略600 (步驟1003 )?;诒磉_式610的估計,設(shè)備確定規(guī)則605估 計為真(步驟1005 )。響應于該確定,設(shè)備200處理所識別的第二策略 600 (步驟1007 )。
0206仍舊參考圖10B,更詳細地,由設(shè)備識別多個策略600來應 用到所接收的分組流,其中,多個策略的至少一個指定策略標識符(步 驟IOOI)。設(shè)備可以以任一方式識別多個策略。在一些實施例中,設(shè)備可 以識別多個策略對應于對于給定數(shù)據(jù)流、數(shù)據(jù)流源或者數(shù)據(jù)流接收者的 策略。在一個實施例中,多個策略可以包括策略庫。
0207分組流可以以任一方式并且從任一源來4妄收。在一些實施 例中,分組流可以由設(shè)備透明攔截。在其他實施例中,設(shè)備可以在代理一個或者多個傳輸層連接的過程中接收分組流。分組流可以包括任一類
型的分組,包括但不限于IP分組、TCP分組、UDP分組和ICMP分組。分 組流可以包括任意其它一個或者多個協(xié)i義。
0208至少一個策略標識符可以包括識別策略的任一工具,包括 但不限于行編號、策略名稱、或者優(yōu)先權(quán)編號。在一些實施例中,多個 策略600的每一策略600指定指示其中應該處理策略600的默認順序的 等級。
0209設(shè)備200處理多個策略600的第一策略600,其中第一策略 600識別指定第一表達式610的規(guī)則605、基于規(guī)則605的估計所采:f又的 第一動作615,和識別多個策略600的第二策略600的表達式610 (步驟 1003 )??梢愿鶕?jù)用于估計和處理策略的任一方法來處理第一策略。在一 些實施例中,第一策略可以包括面向?qū)ο蟮谋磉_式。在其他實施例中, 第一策略可以包括包含面向?qū)ο蟮谋磉_式的規(guī)則。
0210第一策略可以包括識別第二策略的任一表達式。在一些實 施例中,第一策略可以包括第二策略的名稱。在其他實施例中,第一策 略600包括指定如果第一動作615應用時下一個要處理的第二策略600 的級別的整^:。
0211在一些實施例中,第一策略可以包括流量指令1010。第一 策略可以包括任一流量指令,包括"next"、 "goto"或者"end"。第一 策略可以包括任一其它元素,包括但不限于如果第一策略的元素未限定 時要執(zhí)行的動作。在一個實施例中,多個策略的每一個策略可以包括流 量指令。
0212基于通過設(shè)備200的表達式610的估計,設(shè)備確定規(guī)則605 估計為真(步驟1005 )。在一些實施例中,該步驟包括估計面向?qū)ο蟮谋?達式610。
0213響應于確定該MJ!'j估計為真,設(shè)備200處理所識別的第二 策略600 (步驟1007 )。在一個實施例中,步驟1007可以包括執(zhí)行由第 一策略指定的流量指令。在一些實施例中,設(shè)備200可以估計表達式610 來確定下一個要處理的多個策略600中的第二策略600的級別。在一些 其他實施例中,設(shè)備200可以估計面向?qū)ο蟮谋磉_式610來確定下一個
85要處理的多個策略600中的第二策略600的級別。例如,設(shè)備可以估計 表達式來確定結(jié)合GOTO流量指令所使用的行編號。在確定行編號之后, 設(shè)備可以隨后處理給定行編號處的策略。
0214在一些實施例中,設(shè)備還可以在確定規(guī)則是真時采取由第 一策略指定的動作。在其他實施例中,當確定規(guī)則為真時,設(shè)備可以保 存列表中第 一策略指定的動作。該列表可以被用來保存所要采取的多個 動作。在一個實施例中,由于設(shè)備處理策略庫中的多個策略,所以設(shè)備 可以保存對于包含被估計為真的規(guī)則的每一策略的一列動作。在處理該 多個策略之后,設(shè)備可以隨后采取保存在列表中的所有動作。在另一個 實施例中,由于設(shè)備處理多個策略庫,則設(shè)備可以保存對于包含被估計 為真的規(guī)則的每一策略的一列動作。處理該多個策略庫之后,設(shè)備可以 隨后采取保存在列表中的所有動作。
0215現(xiàn)在參考圖11A,示出圖解說明多個策略組上的流量控制的 框圖??偟膩碚f,策略體1000b包括多個策略。其中一個策略包括調(diào)用 動作lllO,其調(diào)用第二策略體1000c。調(diào)用動作1110指示如果包含動作 的策略的規(guī)則估計為真時所處理的策略體1000c。處理已調(diào)用的策略體之 后,設(shè)備隨后可以恢復處理第一策略體1000b。該處理將參考圖IIB進一 步被描述。
0n6仍舊參考圖IIA,配置接口 700可以被提供允許用戶通過包 括一個或者多個調(diào)用動作110來指定策略組上執(zhí)行的順序。調(diào)用動作可 以以任一方式識別策略組,包括但不限于通過名稱、通過存儲器位置或 者通過任一其它標識符。在一些實施例中,策略組可以包括策略體。仍 在其他實施例中,調(diào)用動作1110可以指定第二策略體中特定的策略。
0217在一些實施例中,調(diào)用動作1110可以包括指示第二策略組 如何^^處理的一個或者多個指示。在一個實施例中,包括在第一策略體 中的調(diào)用動作1110可以指定在處理已調(diào)用的策略體之后是否應該恢復第 一策略體的處理。在另一個實施例中,調(diào)用動作1110可以指定如果所調(diào) 用的策略體中遇到硬?;蛘弋惓r是否應該恢復第一策略體的處理。例 如,調(diào)用動作可以指定如果在第二策略體中遇到"END"流量指令,則應 該恢復處理第一策略體?;蛘哒{(diào)用動作可以指定如果在第二策略體中遇到異?;蛘?END"流量指令,則應該不再處理第一策略體的策略。
0218以此方式,用戶可以配置多個策略體來確保處理特定策略, 甚至一個或者多個策略體的結(jié)果是不確定的。例如,提供用于拒絕對限 制的URL的訪問的策略的策略體可以調(diào)用用于在檢測到URL指示請求包 含SQL查詢時提供SQL安全的策略體。調(diào)用可以指定不考慮SQL安全策 略體處理的結(jié)果而在處理SQL策略體之后在URL ^^莫塊處應該恢復處理。 以此方式,用戶可以保證執(zhí)行所有限制的URL加強策略體,其可以確保 所有限制的URL被阻斷。
0219在給定策略體遇到異常或者硬停止的情況下用戶還可以使 用策略體調(diào)用動作lllO來確保策略不被估計。例如,提供內(nèi)容轉(zhuǎn)換策略 的策略體在確定對應于請求的應用之后可以調(diào)用包含用于應用的應用安 全策略的策略體。該調(diào)用可以指示如果應用安全策略體遇到"END"指令, 則在內(nèi)容轉(zhuǎn)換策略體中不再估計策略。這可以用在這些情況中其中應 用安全策略體中的"END"指令指示安全請求還沒有滿足,并且因此應該 不再進行請求的處理。
0220在一些實施例中,設(shè)備可以被配置具有對于策略組的一個 或者多個默認執(zhí)行順序。例如,設(shè)備可以具有一個或者多個全局策略組, 其總是首先應用,之后是跟隨全局策略組被處理的一個或者多個設(shè)備或 者v服務器特定策略組。在一些實施例中,策略體可以具有響應于策略 體執(zhí)行的功能的默認排序。例如,SSL策略的策略體可以首先應用到輸入 業(yè)務量,并且隨后一組安全策略可以應用到解密的業(yè)務量,之后是內(nèi)容 轉(zhuǎn)換策略的體。
0221現(xiàn)在參考圖11B,示出用在處理分組流的網(wǎng)絡裝置200中的 策略組上的流量控制的方法的實施例。總的來說,設(shè)備識別第一策略組 以應用到所接收的分組流(步驟1101 )。設(shè)備處理第一策略組的第一策略, 其中第一策略識別(i )指定第一表達式610的規(guī)則605和(ii )識別第 二策略組的信息(步驟1103)。設(shè)備估計規(guī)則605 (步驟1105)。響應于 規(guī)則605的估計,設(shè)備處理所識別的第二策略組(步驟1107)。處理第二 策略組之后,設(shè)備處理第一策略組的第二策略600 (步驟1109)。
0222仍舊參考圖11B,更詳細地,i殳備可以以任一方式識別第一策略組來應用到所接收的分組流(步驟1101 )。分組流可以從任一資源接 收并且可以包括任意一個或者多個協(xié)i義。
0223在一些實施例中,第一策略可以包括面向?qū)ο蟮谋磉_式。
在其他實施例中,第一策略可以包括包含至少一個表達式和/或面向?qū)ο?br> 表達式的規(guī)則。在一些實施例中,第一策略600指定基于規(guī)則605的估 計所采取的動作615。
0224識別第二策略組的信息可以包括任一形式的識別信息。在 一個實施例中,第二策略組可以包括策略體,并且識別信息可以包括策 略體的名稱。在一些實施例中,識別第二策略體的信息可以包括調(diào)用動 作1U0。
0225設(shè)備可以以任一方式處理第一策略600 (步驟1103)。設(shè)備 可以估計在處理策略中的一個或者多個面向?qū)ο蟊磉_式。
0226設(shè)備200可以以任一方式估計規(guī)則605 (步驟1105)。在一 些實施例中,設(shè)備可以估計面向?qū)ο蟊磉_式610。在一些實施例中,設(shè)備 可以確定對應于關(guān)見則的布爾值。
0227響應于規(guī)則605的估計,設(shè)備處理所識別的第二策略組(步 驟1107)。在一些實施例中,如果規(guī)則估計為真,則設(shè)備可以僅處理第二 策略組。在其他實施例中,如果規(guī)則估計為非零值,則設(shè)備可以僅處理 第二策略組。i殳備可以以任一方式處理第二組。在一些實施例中,i殳備 可以從由調(diào)用動作1110識別的特定策略起處理第二策略體。
0228在一些實施例中,處理第二策略組之后,設(shè)備可以處理第 一策略組的第二策略。例如,在圖11A中,設(shè)備可以估計策略體1000b 中的行l(wèi)l的策略。如果規(guī)則為真,則設(shè)備可以采取調(diào)用動作1110,并且 設(shè)備可以處理策略體1000c。在完成處理策略體P3之后,設(shè)備可以返回 策略體1000b并且處理下一個指令,其是行12。在一些實施例中,如果 第二策略體導致軟停止,諸如其中策略體的最后一個指令指向NEXT指令, 如在策略體1000c的行30中,則設(shè)備可以僅恢復處理第一策略體。在其 他實施例中,甚至在指示硬停時,諸如策略體1000c的行11,設(shè)備可以 恢復處理第一策略體。
0229在一些實施例中,第二策略組還可以包括一個或者多個調(diào)用動作。在這些實施例中,策略體估計可以以任一方式鏈鎖(chained )。 在一些實施例中,設(shè)備200可以處理第三策略組,其中第三策略組通過 第二策略組中的策略600識別。在其他實施例中,第一策略體可以具有 多個調(diào)用動作1110。在這些實施例中,設(shè)備可以處理第三策略組,其中 第三策略組由第一策略組的第二策略600識別。在又一些實施例中,在 處理第二策略組之后,第一策略體600指定識別要處理的第一策略組的 第二策略600。例如,包括調(diào)用動作1110的策略還可以包4舌在處理從第 二策略組返回之后指定要處理的第一策略組的策略的流量指令。 G、用于配置和使用應用安全配置文件的系統(tǒng)和方法
0230現(xiàn)在參考圖12,示出用于配置應用安全配置文件的多個配 置屏幕1200、 1210、 1260、 1240??偟膩碚f,配置文件建立屏幕1200允 許用戶輸入名稱和一般性質(zhì)用于新的應用安全配置文件。配置文件配置 屏幕1210允許用戶選擇包含在配置文件中的一個或者多個檢驗。兩個檢 驗配置屏幕1240、 1260可以隨后允許用戶修改單個檢驗的設(shè)置。
0231仍舊參考圖12,更詳細地,建立屏幕1200允許用戶輸入涉 及配置文件的配置文件名稱和附加的信息。配置文件可以以任一方式命 名。在一些實施例中,配置文件名稱可以反應配置文件的一個或者多個 功能。可以與配置文件一起來指定附加的信息。在一個實施例中,配置 文件可以指定與配置文件所應用的網(wǎng)絡業(yè)務量的類型相關(guān)的信息。例如, 配置文件可以應用到HTTP或者HTML業(yè)務量?;蛘吲渲梦募梢詰玫?web服務業(yè)務量。
0232配置文件配置屏幕1210可以允許用戶指定一個或者多個檢 驗以與配置文件使用。檢驗可以包括涉及通用安全功能的任一組的策略 或者動作。例如,cookie 4企驗可以包括一組策略、i殳置或者動作來阻止 cookie竄改?;蛘咝庞每z驗可以包括一組策略、設(shè)置或者動作來阻止 機密信用卡信息經(jīng)由裝置發(fā)送。在所示實施例中,為用戶提供選擇來阻 斷、警告或者記錄關(guān)于給定的檢驗。如果選擇"阻斷",則配置文件可以 阻斷不符合檢驗的所有業(yè)務量。如果選擇"警告,,,則管理員或者用戶在 分組流不符合檢驗時可以接收警告。如果選擇"記錄",則每當分組流通 過不符合檢驗的裝置發(fā)送時,可以建立記錄項。配置文件配置屏幕可以提供選項來修改任一這些檢驗和規(guī)則。在一些實施例中,對片企驗的任一 修改可以轉(zhuǎn)變?yōu)橛脕砼渲镁W(wǎng)絡裝置的基本的策略表達式。
02334全驗配置屏幕1240、 1260可以包括用于修改檢l全的任一輸 入方式。在一個實施例中,用戶可以指定一個或者多個策略包含在檢驗 中。在另一個實施例中,用戶可以修改檢驗的一個或者多個設(shè)置。檢驗 的設(shè)置可以包括在確定業(yè)務量流是否滿足檢驗中檢驗所使用的任一信 息。例如,關(guān)于驗證開始URL的檢驗,設(shè)置可以包括一個或者多個允許 的開始URL?;蛘呃?,對于表格字段格式檢驗,設(shè)置可以包括格式纟全驗 應該凈皮應用的一個或者多個地址。在一些實施例中,i殳置可以對應于基 本策略的一個或者多個元素。例如,允許的開始URL可以合并為具有允 許業(yè)務量傳遞的動作的策略的規(guī)則中的表達式。
0234現(xiàn)在參考圖13A,示出用于配置對于裝置的一個或者多個應 用安全配置文件的方法的流程圖,其中每一個應用安全配置文件指定多 個檢驗來執(zhí)行涉及應用的安全功能。總的來說,該方法包括提供用于配 置應用安全配置文件的配置接口 (步驟1301)。該方法包括經(jīng)由配置接口 接收第一設(shè)置,其對應于應用安全配置文件的第一一企驗(步驟1303 )。方 法還包括經(jīng)由配置接口接收第二設(shè)置,其對應于應用安全配置文件的第 二檢驗(步驟1305 )。該方法還包括識別指定包括第一表達式600的規(guī)則 605的策略600 (步驟1307 )。該方法還可以包括接收基于規(guī)則605的估 計來識別要處理的應用安全配置文件的信息(步驟1309 )。
0235仍舊參考圖13A,更詳細地,提供用于配置應用安全配置文 件的配置接口 (步驟1301)。配置接口可以包括任一配置接口 、部件和此 處描述的方法。在一些實施例中,配置接口包括一個或者多個拖放接口、 列表選擇接口或者語法突出顯示接口。在其他實施例中,配置接口可以 包括表達式配置屏幕600。在又一些實施例中,配置接口可以包括任一數(shù) 量個配置文件建立屏幕13GQ、檢驗配置屏幕1310、和/或設(shè)置配置屏幕 1340、 1360。在又一些實施例中,配置接口 700是命令行接口。配置接 口可以在任一裝置上執(zhí)行。在一些實施例中,方法包括在與網(wǎng)絡裝置200 通信的裝置上執(zhí)行配置接口 700。在其他實施例中,該方法包括在網(wǎng)絡裝 置200上執(zhí)行配置接口 700。在一個實施例中,該方法給用戶提供用于建立多個應用配置文件的配置文件接口 1300。
0236裝置可以經(jīng)由配置接口接收指定應用安全配置文件的對應 的第一檢驗的第一設(shè)置(步驟1 303 )。在一些實施例中,裝置從配置接口 700接收第一檢驗所使用的URL。在其他實施例中,裝置從配置接口 700 接收指定第一4企驗所使用的一個或者多個URL的表達式610。在又一些實 施例中,裝置從配置接口 700接收指定第一檢驗所使用的一個或者多個 URL的面向?qū)ο蟮谋磉_式600。在一些實施例中,設(shè)置可以包括枱r驗是否 應該阻斷、記錄或者產(chǎn)生關(guān)于干擾檢驗的分組流的警告的指示。在其他 實施例中,設(shè)置可以包括包含在檢驗中的一個或者多個策略的元素。
0237裝置還經(jīng)由配置接口 700接收第二設(shè)置,該第二設(shè)置指定 應用安全配置文件的對應的第二檢驗(步驟1305 )。該:沒置可以以任一方 式接收,包括第一設(shè)置被接收的任一方式。
0238裝置可以經(jīng)由配置接口 700識別指定包括第一表達式610 的規(guī)則605的策略600 (步驟1307 )。在一些實施例中,策略可以包括面 向?qū)ο蟮谋磉_式。策略可以以任一方式識別。在一些實施例中,策略可 以從列表中挑選。在其他實施例中,策略可以經(jīng)由拖放接口挑選。在又 一些實施例中,策略可以關(guān)于給定的配置文件自動挑選。在一個實施例 中,策略可以由用戶直接輸入。
0239裝置可以經(jīng)由接口 700接收基于規(guī)則605的估計來識別要 處理的應用安全配置文件的信息(步驟1309 )。在一個實施例中,應用安 全配置文件可以表示為策略體,并且調(diào)用動作可以增加到識別策略體的 策略。在一些實施例中,方法包括保存應用安全配置文件。在其他實施 例中,方法包括將應用安全配置文件發(fā)送到網(wǎng)絡裝置200。
0240在一些實施例中,應用安全配置文件可以被指定為動作用 于多個策略。例如,可以存在多個條件,在這些條件下應該應用包括表 格字段一致性的應用安全配置文件和緩沖器溢出檢驗。多個策略,其中 指定若干條件中一個的每一個策略可以調(diào)用應用安全配置文件作為動 作。
0241現(xiàn)在參考圖13B,示出用于對于裝置執(zhí)行一個或者多個應用 安全配置文件的方法的實施例,每一個應用安全配置文件指定執(zhí)行涉及
91應用的安全功能的多個策略組??偟膩碚f,該方法包括識別第一策略的
設(shè)備以應用到所接收的分組流,其中第一策略600指定包括第一表達式 610的規(guī)則605并且識別應用安全配置文件(步驟1321)。設(shè)備200估計 規(guī)則605 (步驟1323 )。響應于規(guī)則605的估計,設(shè)備處理應用安全配置 文件識別的第一檢驗(步驟1325 )。響應于規(guī)則605的確定,設(shè)備還處理 應用安全配置文件指定的第二檢驗(步驟1 327 )。
0242仍舊參考圖13B,更詳細地,該方法包括識別第一策略的設(shè) 備以應用到所接收的分組流,其中第一策略600指定包括第一表達式610 的規(guī)則605并且識別應用安全配置文件(步驟1321 )。在一些實施例中, 設(shè)備20G包括VPN代理裝置。在一些其他實施例中,設(shè)備200識別第一 策略600以應用到所接收的TCP分組流。分組流可以以任一方式從4壬一 資源接收。分組流可以包括任意一個或者多個協(xié)議。
0243設(shè)備200估計策略的規(guī)則(步驟1323 )。設(shè)備可以根據(jù)任一 技術(shù)來估計規(guī)則。在一些實施例中,規(guī)則可以包括面向?qū)ο蟮谋磉_式。 在其他實施例中,規(guī)則可以包括多個面向?qū)ο蟮谋磉_式。在一些實施例 中,設(shè)備可以確定布爾值作為估計表達式的結(jié)果。
0244響應于規(guī)則605的估計,設(shè)備200處理應用安全配置文件 識別的第一檢驗(步驟1 325 )。在一些實施例中,設(shè)備可以響應于確定規(guī) 則為真來處理第一檢驗。
0245設(shè)備可以以任一方式處理第一檢一險。在一些實施例中,設(shè) 備估計第 一檢驗的至少 一個設(shè)置來確定是否應用第 一檢驗。在 一 些其他 實施例中,設(shè)備確定包含在分組流中的URL匹配第一檢驗的至少一個設(shè) 置,并且響應于該確定來應用第一4企驗。在又一些實施例中,設(shè)備可以 確定包含在分組流中的URL匹配第一檢驗的一個設(shè)置的表達式610,并且 響應于該確定來應用第一檢驗。在其他實施例中,設(shè)備可以確定包含在 分組流中的URL匹配第一檢驗的一個設(shè)置的面向?qū)ο蟮谋磉_式610。設(shè)備 可以響應于該確定來應用第 一檢驗。
0246響應于規(guī)則605的確定,設(shè)備200還可以處理應用安全配 置文件指定的第二檢驗(步驟1327 )。在一些實施例中,設(shè)備可以響應于 確定規(guī)則為真來處理第二檢驗。在一些實施例中,該方法使用第一檢驗和第二檢驗的至少一個用來執(zhí)行以下的其中一個SQL注入^^測、無效開 始URL檢測、cookie竄改檢測、表格字段一致性檢測、緩沖器溢出檢測、 交叉站點腳本才企測、信用卡號碼纟僉測、和無效URL 一僉測。在一些其他實 施例中,該方法使用第 一檢驗和第二檢驗的至少一個來執(zhí)行以下的其中 一個SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一致性 表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、 和無效URL阻斷。
0247雖然本發(fā)明已經(jīng)參考特定優(yōu)選實施例詳細地示出和描述, 但是本領(lǐng)域內(nèi)的普通技術(shù)人員應該理解在不脫離由所附權(quán)利要求限定的 本發(fā)明的精神和保護范圍的情況下可以在形式上和細節(jié)上做出多種改 變
權(quán)利要求
1、一種使用面向?qū)ο蟮谋磉_式來配置網(wǎng)絡裝置的策略以指定網(wǎng)絡裝置所接收的分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括(a)提供用于配置網(wǎng)絡裝置的策略的配置接口;(b)經(jīng)由所述配置接口接收對于策略的表達式,所述表達式識別(i)應用到分組流的有效載荷的部分的對象類;和(ii)對象類的成員;和(c)經(jīng)由所述配置接口接收識別對于所述策略的動作的信息,基于該表達式的估計而采取所述動作。
2、 權(quán)利要求1的方法,其中,步驟(a)包括向用戶提供命令行配置接口 。
3、 權(quán)利要求1的方法,其中,步驟(a)包括向用戶提供配置接口,所 述配置接口包括拖放接口 、列表選擇接口或者語法突出顯示接口的一個或者 多個。
4、 權(quán)利要求1的方法,其中,步驟(a)包括在連接到網(wǎng)絡裝置的裝置 上執(zhí)行配置接口。
5、 權(quán)利要求1的方法,其中,步驟(a)包括在網(wǎng)絡裝置上執(zhí)行配置接o 。
6、 權(quán)利要求l的方法,還包括從用戶接收識別協(xié)議的信息。
7、 權(quán)利要求6的方法,其中,步驟(b)包括接收對象類以應用到分組 流的有效載荷的部分,所述對象類對應于所識別的協(xié)議。
8、 權(quán)利要求l的方法,還包括從用戶接收識別在解釋分組流的有效載荷 中使用的協(xié)議的信息。
9、 權(quán)利要求l的方法,其中,所述對象類的成員包括一個字段。
10、 權(quán)利要求1的方法,其中,所述對象類的成員包括對應于第二對象 類的一個字段。
11、 權(quán)利要求l的方法,其中,所述對象類的成員包括一個方法。
12、 權(quán)利要求1的方法,其中,所述對象類的成員從所述對象類的父類 繼承。
13、 權(quán)利要求l的方法,其中,所述對象類對應于HTTP請求。
14、 權(quán)利要求l的方法,其中,所述對象類對應于HTTP請求,并且所述 對象類的成員包括URL。
15、 權(quán)利要求l的方法,其中,所述對象類對應于HTTP請求,并且所述 對象類的成員包括cookie。
16、 權(quán)利要求l的方法,其中,所述對象類對應于HTTP響應。
17、 權(quán)利要求l的方法,其中,所述對象類對應于HTTP響應體,并且所 述對象類的成員對應于URL。
18、 權(quán)利要求l的方法,其中,步驟(b)包括經(jīng)由配置接口接收對于策 略的表達式,所述表達式識別(i )應用到分組流的有效載荷的部分的對象類,(ii)所述對象類的字段,所述字段對應于第二對象類和(iii)字段的顯式 類型轉(zhuǎn)換。
19、 權(quán)利要求l的方法,其中,步驟(b)包括經(jīng)由配置接口接收對于策 略的表達式,所述表達式識別(i )應用到分組流的有效載荷的部分的對象類,(ii)所述對象類的方法,所述方法返回對應于第二對象類的對象和(iii) 所返回對象的顯式類型轉(zhuǎn)換。
20、 權(quán)利要求l的方法,其中,步驟(c)包括識別策略的動作的信息, 基于包含所述表達式的規(guī)則的估計來采取所述動作。
21、 權(quán)利要求l的方法,其中,所述動作指定涉及以下至少一個的功能 負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速和應用加速。
22、 權(quán)利要求1的方法,其中,所述動作包括重寫HTTP響應的體中的URL。
23、 權(quán)利要求l的方法,其中,所述動作包括面向?qū)ο蟮谋磉_式。
24、 一種在設(shè)備中在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接收 的分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括(a) 由設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負載,該策略指 定(i )對象類以應用到分組流的有效載荷的部分;(ii )對象類的成員和(iii ) 動作;(b) 由設(shè)備選擇該對象類識別的有效載荷的部分;(c) 由設(shè)備確定對于該對象類的成員的值;并且(d) 響應所確定的值來采取動作。
25、 權(quán)利要求24的方法,其中,所述策略識別協(xié)議。
26、權(quán)利要求25的方法,還包括根據(jù)所識別的協(xié)議來解析有效載荷的部為、
27、 權(quán)利要求25的方法,其中
28、 權(quán)利要求24的方法,其中
29、 權(quán)利要求24的方法,其中, 類的一個字段。
30、 權(quán)利要求24的方法,其中,
31、 權(quán)利要求24的方法,其中, 繼承。
32、 權(quán)利要求24的方法,其中,
33、 權(quán)利要求24的方法,其中 述對象類的成員包括URL。
34、 權(quán)利要求24的方法 述只t象類的成員包4舌cookie。
35、 權(quán)利要求24的方法,其中,
36、 權(quán)利要求24的方法,其中 所述對象類的成員對應于URL。
37、 權(quán)利要求24的方法,其中,步驟(c)包括由所述設(shè)備確定對于所 述對象類的成員的值;并且執(zhí)行所確定的值的顯式類型轉(zhuǎn)換。
38、 權(quán)利要求24的方法,其中,步驟(d)包括基于確定的值估計所 述表達式;在確定的值上執(zhí)行操作來產(chǎn)生結(jié)果,并且響應于所產(chǎn)生的結(jié)果來 采取動作。
39、 4又利要求38的方法,其中,所述^喿作包括AND、 0R、 GREATER THAN、 LESS T謹、EQUALS和NOT EQUALS的其中一個。
40、 權(quán)利要求24的方法,其中,步驟(d)包括執(zhí)行涉及以下至少一個 的動作負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速和應用加速。
41、 權(quán)利要求24的方法,其中,步驟(d)包括重寫包含在所述分組流 中的HTTP響應的體中的URL。
42、 一種設(shè)備,用于在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接 收的分組流的有效載荷中的結(jié)構(gòu),所述設(shè)備包括所述協(xié)議是HTTP。 所述對象類的成員包括一個字段。 所述對象類的成員包括對應于第二對象所述對象類的成員包括一個方法。 所述對象類的成員從所述對象類的父類所述對象類對應于HTTP請求。 所述對象類對應于HTTP請求,并且所其中,所述對象類對應于HTTP請求,并且所所述對象類對應于HTTP響應。 所述對象類對應于HTTP響應體,并且接收分組流的分組處理器;和策略引擎,識別策略來估計關(guān)于所接收的分組流的有效負載,該策略指 定(i )對象類以應用到分組流的有效載荷的部分;(ii )對象類的成員和(iii ) 動作;選擇該對象類識別的有效載荷的部分;確定對于該對象類的成員的值; 并且響應所確定的值來采取動作。其中,所述策略識別協(xié)議。 其中,所述策略引擎根據(jù)所識別的協(xié)議來解析
43、 權(quán)利要求42的系統(tǒng),
44、 權(quán)利要求43的系統(tǒng), 有效載荷的部分。
45、 權(quán)利要求43的系統(tǒng),
46、 權(quán)利要求42的系統(tǒng),
47、 權(quán)利要求42的系統(tǒng), 類的一個字段。
48、 權(quán)利要求42的系統(tǒng),
49、 權(quán)利要求42的系統(tǒng), 繼承。
50、 權(quán)利要求42的系統(tǒng),
51、 權(quán)利要求42的系統(tǒng), 述對象類的成員包括URL。
52、 權(quán)利要求42的系統(tǒng), 述對象類的成員包括cookie。
53、 權(quán)利要求42的系統(tǒng),
54、 權(quán)利要求42的系統(tǒng), 所述對象類的成員對應于URL。
55、 權(quán)利要求42的系統(tǒng),其中,所述協(xié)議是HTTP。其中,所述對象類的成員包括一個字段。其中,所述對象類的成員包括對應于第二對象其中,所述對象類的成員包括一個方法。 其中,所述對象類的成員從所述對象類的父類其中,所述對象類對應于HTTP請求。其中,所述對象類對應于HTTP請求,并且所其中,所述對象類對應于HTTP請求,并且所其中, 其中其中,所述對象類對應于HTTP響應。 所述對象類對應于HTTP響應體,并且所述策略引擎確定對于所述對象類的成 員的值;并且執(zhí)行所確定的值的顯式類型轉(zhuǎn)換。
56、 權(quán)利要求42的系統(tǒng),其中,所述策略引擎基于確定的值來估計所述 表達式;在確定的值上執(zhí)行操作來產(chǎn)生結(jié)果,并且響應于所產(chǎn)生的結(jié)果來采 取動作。
57、 權(quán)利要求38的系統(tǒng),其中,所述操作包括AND、 0R、 GREATER THAN、 LESS THAN、 EQUALS和NOT EQUALS的其中一個。
58、 權(quán)利要求42的系統(tǒng),其中,所述策略引擎執(zhí)行涉及以下至少一個的 動作負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速和應用加速。
59、 權(quán)利要求42的系統(tǒng),其中,所述策略動作重寫包含在所述分組流中 的HTTP響應的體中的URL。
60、 一種在設(shè)備中在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接收 的分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括(a )由設(shè)備識別包括面向?qū)ο蟊磉_式的策略來估計關(guān)于所接收的分組流 的有效載荷;(b) 基于有效載荷的部分,由所述設(shè)備分配值給面向?qū)ο蟊磉_式所指定 的數(shù)據(jù)結(jié)構(gòu);(c) 由所述設(shè)備基于所分配的值來執(zhí)行表達式的估計;和(d) 響應于該估計,采取策略所指定的動作。
61、 權(quán)利要求60的方法,其中步驟(b)包括由所述設(shè)備應用所述面向 對象的表達式指定的數(shù)據(jù)結(jié)構(gòu)到所述有效載荷的字節(jié)流。
62、 一種設(shè)備,用于在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接 收的分組流的有效載荷中的數(shù)據(jù)結(jié)構(gòu),所述設(shè)備包括接收分組流的分組處理器;和策略引擎,識別包括面向?qū)ο蟮谋磉_式來估計關(guān)于所述分組流的有效載 荷的策略;基于有效載荷的部分,分配值給面向?qū)ο蟊磉_式所指定的數(shù)據(jù)結(jié) 構(gòu);基于所分配的值來執(zhí)行表達式的估計;和響應于該估計,采取策略所指 定的動作。
63、 權(quán)利要求62的設(shè)備,其中,所述策略引擎應用所述面向?qū)ο蟮谋磉_ 式指定的數(shù)據(jù)結(jié)構(gòu)到所述有效載荷的字節(jié)流。
64、 一種在設(shè)備中在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接收的 分組流的有效載荷中的結(jié)構(gòu)的方法,所述方法包括(a )由設(shè)備識別包括面向?qū)ο蟊磉_式的策略來估計關(guān)于所接收的分組流 的有效載荷;(b)基于有效載荷的部分,由所述設(shè)備分配值給面向?qū)ο蟊磉_式所指定 的數(shù)據(jù)結(jié)構(gòu);(c )由所述設(shè)備基于所分配的值來執(zhí)行表達式的估計;(d) 響應于該估計,改變所接收的分組流的部分;和(e) 由該設(shè)備發(fā)送所改變的分組流。
65、 權(quán)利要求64的方法,其中,所述策略識別協(xié)議。
66、 權(quán)利要求65的方法,還包括根據(jù)所識別的協(xié)議來解析有效載荷的部分。
67、 權(quán)利要求65的方法,其中,所述協(xié)議是HTTP。
68、 權(quán)利要求64的方法,其中,所述表達式指定對應于HTTP請求的對象類。
69、 權(quán)利要求64的方法,其中,所ii^iiiC指定對應于HTTP請求的對象類, 并且所述對象類對應于URL。
70、 權(quán)利要求64的方法,其中,所*達式指定對應于HTTP響應體的對象 類,并且所述對象類對應于URL。
71、 權(quán)利要求64的方法,其中,步驟(d)包括改變所述數(shù)據(jù)結(jié)構(gòu)指定的分組 流的部分。
72、 權(quán)利要求64的方法,其中,步驟(d)包括改變第二面向?qū)ο蟮谋磉_式所 指定的分組流的部分。
73、 權(quán)利要求64的方法,其中,步驟(d)包括重寫包含在所述^^且流中的HTTP 響應的體中的URL。
74、 權(quán)利要求64的方法,其中,步驟(d)包4封莫糊包含在所述分組流中的信 用卡號碼。
75、 權(quán)利要求64的方法,其中,步驟(d)包括重寫HTTP請求中的URL。
76、 權(quán)利要求64的方法,其中,步驟(d)包括重寫HTTP響應的表才特段值。
77、 一種設(shè)備,用于在策略中應用面向?qū)ο蟮谋磉_式來指定所述設(shè)備接收 的分組流的有效載荷中的結(jié)構(gòu),所述設(shè)備包括接收分組流的分組處理器;和策略引擎,識別包括面向?qū)ο蟊磉_式的策略來估計關(guān)于所接收的分組流 的有效載荷;基于有效載荷的部分,分配值給面向?qū)ο蟊磉_式所指定的lt據(jù) 結(jié)構(gòu);由所述設(shè)備基于所分配的值來執(zhí)行表達式的估計;響應于該估計,改 變所4妾收的分組流的部分;和發(fā)送所改變的分組流。
78、 權(quán)利要求77的設(shè)備,其中,所述策略識別協(xié)議。
79、 權(quán)利要求78的設(shè)備,其中,還包括根據(jù)所識別的協(xié)議來解析有效載荷 的部分。
80、 權(quán)利要求78的設(shè)備,其中,所述協(xié)議是HTTP。
81、 權(quán)利要求77的設(shè)備,其中,所述表達式指定對應于HTTP請求的對象類。
82、 權(quán)利要求"的設(shè)備,其中,所ii4ii^指定對應于HTTP請求的對象類, 并且對象類對應于URL。
83、 權(quán)利要求"的設(shè)備,其中,所ii4iiiC指定對應于HTTP響應體的對象 類,并且對象類對應于URL。
84、 權(quán)利要求77的設(shè)備,其中,所述策略引擎改變所述數(shù)據(jù)結(jié)構(gòu)指定的分組流 的部分。
85、權(quán)利要求77的設(shè)備,其中,所述策略引擎改變第二面向?qū)ο蟮谋韎i^指定 的分組流的部分。
86、 權(quán)利要求77的設(shè)備,其中,所述策略引擎重寫包含在所述^ia流中的HTTP 響應的體中的URL。
87、 權(quán)利要求77的設(shè)備,其中,所述策略引f^莫糊包含在所述^^且流中的信用 卡號碼。
88、 權(quán)利要求77的設(shè)備,其中,所述策略引擎重寫HTTP請求中的URL。
89、 權(quán)利要求77的設(shè)備,其中,所述策略引擎重寫HTTP響應的表才特段值。
90、 一種用于配置網(wǎng)絡裝置來在處理分組流中使用的策略間指定流量控制 的方法,所述方法包括(a) 提供用于配置網(wǎng)絡裝置的多個策略的配置接口,多個策略的至少一 個策略包括策略識別符;和(b) 經(jīng)由配置接口接收識別多個策略的第一策略的信息,第一策略識別 (i)包括第一表達式的規(guī)則和(ii )基于該規(guī)則的估計所采取的第一動作;和(c )經(jīng)由配置接口接收識別多個策略的第二策略的信息4吏得當規(guī)則估計 為真時隨后應用到第一策略。
91、 權(quán)利要求卯的方法,其中,步驟(a)包括提供命令行配置接口。
92、 權(quán)利要求90的方法,其中,步驟(a)包括提供配置接口,所述配置接 口包括拖放接口 、列表選擇接口或者語法突出顯示接口的 一個或者多個。
93、 權(quán)利要求90的方法,其中,步驟(a)包括在與網(wǎng)絡裝置通信的裝置上 執(zhí)行配置接口。
94、 權(quán)利要求90的方法,其中,步驟(a)包括在網(wǎng)絡裝置上執(zhí)行配置接口。
95、 權(quán)利要求90的方法,其中,所述第一表ii^面向?qū)ο蟮谋磉_式。
96、 權(quán)利要求90的方法,其中,所述第一動作包括無動作。
97、 權(quán)利要求90的方法,其中,所述第一動作指定^Vf亍以下其中一個的功能 負載平^f、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或應用加速。
98、 權(quán)利要求90的方法,其中,步驟(c)包括接收指定第二策略的行編號的整數(shù)。
99、 權(quán)利要求90的方法,其中,步驟(c)包括接收指定第二策略的策略標識符。
100、 權(quán)利要求90的方法,其中,步驟(c)包括^i^行時接收要估計的表i^ 來指定第二策略的根扁號。
101、 權(quán)利要求90的方法,其中,步驟(c)包括^:行時接收^f古計的面向?qū)?象的表itiC來指定第二策略的行編號。
102、 權(quán)利要求90的方法,其中,所述多個策略包括策略庫。
103、 權(quán)利要求90的方法,其中,所述多個策略的^—個策略包括指示網(wǎng)絡裝 置將處理所述策略的默i力偵序的lO'J。
104、 一種在處理分組流的網(wǎng)絡裝置中使用的策略間的流量控制的方法, 所述方法包括(a) 由設(shè)備識別多個策略以應用到所接收的分組流,多個策略的至少一 個策略包括策略識別符;(b) 由所述設(shè)備處理多個策略的第一策略,第一策略識別(i)包括第 一表達式的規(guī)則和(ii )基于該規(guī)則的估計所采取的第一動作,和(iii )多 個策略的第二策略;(c) 由所述設(shè)備基于該表達式的估計來確定規(guī)則估計為真;并且 (d )由所述設(shè)備響應該確定來處理所識別的第二策略。
105、 權(quán)利要求104的方法,其中,步驟(c)包括估計面向?qū)ο蟮谋磉_式。
106、 權(quán)利要求104的方法,還包括步驟響應于該確定,#^亍第一策<9^識別的動作。
107、 權(quán)利要求104的方法,還包括步驟響應于該確定,扭奸第一策略識別的 動作;該動作包括^l/f亍以下其中一個負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或應用力口速。
108、 權(quán)利要求104的方法,其中,第一策略包括指定如果第一動作應用時下一個M理的多個策略的第二策略的級別的整數(shù)。
109、 權(quán)利要求104的方法,其中,步驟(d)包括由所述設(shè)^f古計表狄來確 定下一個要處理的多個策略的第二策略的級別。
110、 權(quán)利要求104的方法,其中,步驟(d)包括由所述設(shè)^f古計面向?qū)ο蟮?表ii^來確定下一個要處理的多個策略的第二策略的級別。
111、 權(quán)利^"求104的方法,其中,所述多個策略包括策略庫。
112、 權(quán)利要求104的方法,其中,所述多個策略的每一個策略包括指示應該處 理所述策略的默i/J偵序的級別。
113、 權(quán)利要求104的方法,其中,還包^^向應于該確定,在列表中^f絲第一策 t^i口、別的動^ft。
114、 權(quán)利要求113的方法,還包括在列表中保存至少一個其他動作,所述至少 一個其他動作在具有估計為真的規(guī)則的至少一個其它策略中被識別。
115、 權(quán)利要求114的方法,還包括^^亍^^在動作的列表中的每個動作。
116、 一種設(shè)備,在處理分組流的網(wǎng)絡裝置中使用的策略間提供流量控制, 所述設(shè)備包括用于接收分組流的分組處理器;和策略引擎,識別多個策略以應用到所接收的分組流,多個策略的至少一 個策略包括策略識別符;處理多個策略的第一策略,第一策略識別(i)包括 第一表達式的規(guī)則和(ii )基于該規(guī)則的估計所采取的第一動作,和(iii ) 多個策略的第二策略;基于該表達式的估計來確定規(guī)則估計為真;并且響應 該確定由所述設(shè)備來處理所識別的第二策略。
117、 權(quán)利要求116的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_式。
118、 權(quán)利要求116的設(shè)備,其中,所述策略引擎響應于該確定來^l/f亍第一策略 識別的動作。
119、 權(quán)利要求116的設(shè)備,其中,所述策略引擎響應于該確定,執(zhí)行第一策略 識別的動作;該動作包才封似亍以下其中一個負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、 應用遞送、網(wǎng)纟各加速和應用加速。
120、 權(quán)利要求116的設(shè)備,其中,第一策略包4^口果第一動作應用時指定下一個M理的多個策略的第二策略的級別的整數(shù)。
121、 權(quán)利要求116的設(shè)備,其中,所述策略引擎估計表ii^來確定下一個^t 理的多個策略的第二策略的船'J。
122、 權(quán)利要求116的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_式來確定 下一個M理的多個策略的第二策略的級別。
123、 權(quán)利要求116的設(shè)備,其中,所述多個策略包括策略庫。
124、 權(quán)利要求116的設(shè)備,其中,所述多個策略的^-"個策略包括指示應該處 理所述策略的默i/J偵序的lO'J。
125、 權(quán)利要求116的設(shè)備,其中,所述策略引擎響應于該確定,在列表中j轉(zhuǎn) 第一策略識別的動作。
126、 權(quán)利要求125的設(shè)備,其中,所述策略引擎在列表中^4至少一個^f也動 作,所述至少一個其他動作在具有估計為真的規(guī)則的至少一個其它策略中被識別。
127、 權(quán)利要求126的設(shè)備,其中,所述策略引擎#^亍^#在動作的列表中的每 個動作。
128、 一種用于配置在處理分組流的網(wǎng)絡裝置中使用的策略組間的流量控 制的方法,所述方法包括(a) 提供用于配置網(wǎng)絡裝置的多個策略組的配置接口;(b) 由配置接口識別第一策略組的第一策略,第一策略指定包括第一表 達式的規(guī)則;并且(c )經(jīng)由所述接口基于規(guī)則的估計接收識別要處理的第二策略組的信自
129、 權(quán)利要求128的方法,其中,步驟(a)包括提供命令行配置接口。
130、 權(quán)利要求128的方法,其中,步驟(a)包括提供配置接口,所述配置 接口包括拖放接口 、列表選擇接口或者語法突出顯示接口的一個或者多個。
131、 權(quán)利要求128的方法,其中,步驟(a)包括在與網(wǎng)絡裝置通信的裝置 上執(zhí)行配置接口。
132、 權(quán)利要求128的方法,其中,步驟(a)包括在網(wǎng)絡裝置上執(zhí)行配置接口 。
133、 權(quán)利要求128的方法,其中,步驟(a)包括向用戶提供酉己置接口用于建 立多個策略組。
134、 權(quán)利要求128的方法,其中,所述第一策^t旨定具有面向?qū)ο蟮谋磉_式的規(guī)則。
135、 權(quán)利要求128的方法,其中,基于所述規(guī)則的估計所述第一策s^旨定所采 取的動作。
136、 權(quán)利要求128的方法,其中,所述第一策^旨定如果規(guī)則估計為真要釆取 的動作;所述動作包括才A^亍以下其中一個負載平《軒、內(nèi)容轉(zhuǎn)換、應用安全、應 用遞送、網(wǎng)絡加速或應用加速。
137、 權(quán)利要求128的方法,其中,所述第一策^旨定在處理第二策略組^要 處理的第一策略組的第二策略。
138、 權(quán)利要求128的方法,其中,步驟(c)包括經(jīng)由所述接口接收如果規(guī)則 估計為真時識別M理的第二策略組的信息。
139、 權(quán)利要求128的方法,其中,步驟(c)包括經(jīng)由所述接口基于^LU'j的估 計接收要處理的第二策略組的標號。
140、 一種處理分組流的網(wǎng)絡裝置中使用的策略組間的流量控制的方法, 所述方法包>^舌(a )由設(shè)備識別第一策略組以應用到所接收的分組流;(b) 由所述設(shè)備處理第一策略組的第一策略,第一策略識別(i)包括 第一表達式的規(guī)則,和(ii)識別第二策略組的信息;(c) 由所述設(shè)備估計該規(guī)則;并且(d )由所述設(shè)備響應該規(guī)則的估計來處理所識別的第二策略組。
141、 權(quán)利要求140的方法,其中,步驟(c)包括估計面向?qū)ο蟮谋磉_式。
142、 權(quán)利要求140的方法,其中,所述第一策^旨絲于規(guī)則的估計所絲的動作。
143、 4又利要求140的方法,還包括步驟響應于該確定,扭/f于第一策略識別的動作。
144、權(quán)利要求MO的方法,其中,所述動作包括擬亍以下其中一個負載平衡、 內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或應用加速。
145、 權(quán)利要求140的方法,還包括響應于該確定,在列表中4絲第一策略識別 的動作。
146、 權(quán)利要求145的方法,還包括在列表中保存至少一個其他動作,所述至少一個^^也動作在第二策略組的第二策略中被識別。
147、 權(quán)利要求145的方法,還包括4Afrf轉(zhuǎn)在動作的列表中的每個動作。
148、 權(quán)利要求140的方法,還包括由所述設(shè)備在處理第二策略組^處理第一策略組的第二策略。
149、 權(quán)利要求140的方法,還包括由所述設(shè)備處理第三策略組,所述第三策略 組由第二策略組的第二策略識別。
150、 權(quán)利要求140的方法,還包括由所述設(shè)備處理第三策略組,所述第三策略 組由第一策略組的第二策略識別。
151、 權(quán)利要求140的方法,其中,所述第一策^旨定在第二策略組處理^要 處理的第一策略組的第二策略。
152、 權(quán)利要求151的方法,還包括由所述設(shè)備在處理第二策略組^處理第二
153、 一種設(shè)備,在處理分組流中使用的策略組間提供流量控制,所述設(shè)備 包括用于接收分組流的分組處理器;和策略引擎,識別第一策略組以應用到所接收的分組流;處理第一策略組 的第一策略,第一策略識別(i)包括第一表達式的規(guī)則,和(n)識別第二 策略組的信息;估計該規(guī)則;并且響應該規(guī)則的估計來處理所識別的第二策 略組。
154、 權(quán)利要求153的"i殳備,其中,所述策略引擎估計面向?qū)ο蟮谋韎iiC
155、 權(quán)利要求153的設(shè)備,其中,所述策略引擎響應于該確定來^Vf亍第一策略 識別的動作。
156、 權(quán)利要求153的設(shè)備,其中,所述策略引擎才似亍以下其中一個負載平衡、 內(nèi)容壽爭換、應用安全、應用遞送、網(wǎng)絡加速或應用加速。
157、 權(quán)利要求153的設(shè)備,其中,所述策略引擎響應于該確定,在列表中{錄 第一策略識別的動作。
158、 權(quán)利要求153的設(shè)備,其中,所述策略引擎在列表中j絲至少一個其他動 作,所述至少一個其他動作在第二策略組的第二策略中被識別。
159、 權(quán)利要求158的設(shè)備,其中,所述策略引擎^Lfr^^在動作的列表中的每 個動作。
160、 權(quán)利要求153的設(shè)備,其中,所述策略引擎在處理第二策略組^處理第一策略組的第二策略。
161、 權(quán)利要求153的設(shè)備,其中,所述策略引擎處理第三策略組,所述第三策 略組由第二策略組的策略識別。
162、 權(quán)利要求153的設(shè)備,其中,所述策略引擎在處理第二策略組^!嫂處 理第一策略組。
163、 權(quán)利要求153的設(shè)備,其中,所述策略引擎處理第三策略組,所述第三策 略組由第一策略組的第二策略識別。
164、 權(quán)利要求153的設(shè)備,其中,所述第一策^旨定在第二策略組處理^要 處理的第一策略組的第二策略。
165、 權(quán)利要求164的設(shè)備,其中,所述策略引擎在處理第二策略組^處理第 二策略。
166、 一種在策略的元素未被限定的情況下通過指定要采取的動作來配置 網(wǎng)絡裝置所使用的策略的方法,所述方法包括(a)提供用于配置網(wǎng)絡裝置的策略的配置接口;(b )基于表達式的估計由配置接口識別包括要采取的第一動作的策略;和(c)經(jīng)由所述配置接口接收識別所述策略的第二動作的信息,即如果所 述策略的元素未被限定要采取的第二動作。
167、 權(quán)利要求166的方法,其中,步驟(a)包括提供用于配置網(wǎng)絡裝置的 策略的命令行配置接口。
168、 權(quán)利要求166的方法,其中,步驟(a)包括提供配置接口,所述配置 接口包括拖放接口 、列表選擇接口或者語法突出顯示接口的一個或者多個。
169、 權(quán)利要求166的方法,其中,步驟(a)包括在與網(wǎng)絡裝置通信的裝置 上執(zhí)行配置接口。
170、 權(quán)利要求166的方法,其中,步驟(a)包括在與網(wǎng)絡裝置通信的裝置 上執(zhí)行配置接口。
171、 權(quán)利要求166的方法,其中,步驟(b)包括由用戶經(jīng)由配置接口配置用 于策略的面向?qū)ο蟮谋磉_式。
172、 權(quán)利要求166的方法,其中,步驟(b)包括從用戶經(jīng)由配置接口接收用于策略的表ii^,所ii4iiiC具有對象類和對象類的成員。
173、 權(quán)利要求166的方法,其中,所述第二動作包括無動作。
174、 權(quán)利要求166的方法,其中,所述第二動作包括阻斷來自網(wǎng)絡裝置的分組流的部分的傳輸。
175、 權(quán)利要求166的方法,其中,第一動作或者第二動作的至少一個指定#^亍以下其中之一的功能負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或應用加速。
176、 權(quán)利要求166的方法,其中,第一動作和第二動作的至少一個指定重寫分組流的有效載荷的部分。
177、 權(quán)利要求166的方法,其中,第一動作和第二動作的至少一個指定重寫包含在HTTP響應中的URL。
178、 權(quán)利要求166的方法,其中,第一動作和第二動作的至少一個包括面向?qū)ο蟮谋韎iiC
179、 權(quán)利要求166的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的表iiiC未被P艮定時要采取的第二動作。
180、 權(quán)利要求166的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的規(guī)則未被限定時要采取的第二動作。
181、 權(quán)利要求166的方法,其中,步驟(c)包括經(jīng)由配置接口接收識別用于策略的第二動作的信息,即如果所述策略的第 一動作未被限定時要采取的第二動作。
182、 一種在設(shè)備中在策略的元素未被限定的情況下應用指定所要采取的動作的策略的方法,所述方法包括(a)由所述設(shè)備識別策略來估計關(guān)于所接收的分組流的有效負載,該策略指定(i)表達式;(ii)基于表達式的估計所采取的第一動作和Un )如果策略的元素未被限定時所采取的第二動作;(b )由所述設(shè)備確定策略的元素關(guān)于有效載荷未被限定;(c)由所述設(shè)備響應該確定來采取第二動作。
183、 權(quán)利要求182的方法,其中,步驟(b)包括估計面向?qū)ο蟮谋磉_式。
184、 權(quán)利要求182的方法,其中,步驟(b)包括估計具有對象類和對象類的成員的表iiiC
185、 權(quán)利要求182的方法,其中,步驟(b)包括由所述設(shè)備確定該表達式關(guān)于燭流未被限定。
186、 權(quán)利要求182的方法,其中,步驟(b)包括由所述設(shè)備確定策略的規(guī)則未被限定。
187、 權(quán)利要求182的方法,其中,步驟(b)包括由所述設(shè)備確定策略的第一動作未被限定。
188、 權(quán)利要求182的方法,其中,步驟(c)包括不采取動作。
189、 權(quán)利要求182的方法,其中,步驟(c)包括阻斷來自所述設(shè)備的分組流的傳輸。
190、 權(quán)利要求182的方法,其中,步驟(c)包括4W亍以下其中之一負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速或應用加速。
191、 權(quán)利要求182的方法,其中,步驟(c)包括重寫分組流的有效載荷的部分。
192、 權(quán)利要求182的方法,其中,步驟(c)包括重寫包含在HTTP響應中的URL。
193、 一種設(shè)備,使得用戶能夠在策略中包含的表達式不能由所述設(shè)備估計的情況下指定所采取的動作,所述設(shè)備包括用于接收分組流的分組處理器;和策略引擎,識別策略來估計關(guān)于所接收的分組流的有效負載,該策略指定(i )表達式;(ii )基于表達式的估計所采取的第一動作和(iii )如果所述表達式未被成功估計時所釆取的第二動作;確定表達式不能關(guān)于分組流被成功估計;并且采fi第二動作。
194、 權(quán)利要求193的設(shè)備,其中,所述策略引擎估計面向?qū)ο蟮谋磉_式。
195、 權(quán)利要求193的設(shè)備,其中,所述策略引擎估計具有對象類和對象類的成員的表M。
196、 權(quán)利要求193的設(shè)備,其中,所述第二動作包括無動作。
197、 權(quán)利要求193的設(shè)備,其中,所述第二動作包括阻斷^^且流的部分。
198、 權(quán)利要求193的設(shè)備,其中,第一動作和第二動作的至少一個指定涉及以下至少其中之一的功能負載平衡、內(nèi)容轉(zhuǎn)換、應用安全、應用遞送、網(wǎng)絡加速禾口應用力口速。
199、 權(quán)利要求193的設(shè)備,其中,第一動作或第二動作的至少一個指定重寫分組流的有效載荷的部分。
200、 權(quán)利要求193的設(shè)備,其中,第一動作或第二動作的至少一個指定重寫包含在HTTP響應中的URL。
201、 權(quán)利要求193的設(shè)備,其中,所述策略引擎確定所述表ii^關(guān)于^ia流未被限定。
202、 權(quán)利要求193的設(shè)備,其中,所述策略引擎確定策略的規(guī)則關(guān)于^ii流未被限定。
203、 權(quán)利要求193的設(shè)備,其中,所述策略引擎確定第一動作關(guān)于^ii流未被限定。
204、 一種用于配置對于裝置的一個或者多個應用安全配置文件的方法,每一個應用安全配置文件指定執(zhí)行關(guān)于應用的安全功能的多個檢驗,所述方法包括(a) 提供用于配置應用安全配置文件的配置接口;(b) 經(jīng)由配置接口接收第一設(shè)置,該設(shè)置指定對應于應用安全配置文件的第一檢驗;(c) 經(jīng)由配置接口接收第二設(shè)置,該第二設(shè)置指定對應于應用安全配置文件的第二檢驗;(d) 由配置接口識別策略,該策略指定包括第一表達式的MJ'J;并且(e) 經(jīng)由所述接口接收識別基于規(guī)則估計而要處理的應用安全配置文件的4言息。
205、 權(quán)利要求204的方法,其中,步驟(a)包括提供命令行配置接口。
206、 權(quán)利要求204的方法,其中,步驟(a)包括提供配置接口,所述配置接口包括拖放接口 、列表選擇接口或者語法突出顯示接口的一個或者多個。
207、 權(quán)利要求204的方法,其中,步驟(a)包括在與網(wǎng)絡裝置通信的裝置上執(zhí)行配置接口。
208、 權(quán)利要求204的方法,其中,步驟(a)包括在網(wǎng)絡裝置上執(zhí)行配置接cr 。
209、 權(quán)利要求204的方法,其中,步驟(a)包括為用戶^是供用于建立多個應用配置文件的配置接口。
210、 權(quán)利要求204的方法,其中,步驟(b)包括經(jīng)由配置接口接收第一檢驗所^fM的URL。
211、 權(quán)利要求204的方法,其中,步驟(b)包括經(jīng)由配置接口接收指定第一 檢驗<賴的一個或者多個URL的表iiA。
212、 權(quán)利要求204的方法,其中,步驟(b)包括經(jīng)由配置接口接收指定第一 檢驗使用的一個或者多個URL的面向?qū)ο蟮谋磉_式。
213、 權(quán)利要求204的方法,其中,步驟(d)包括經(jīng)由配置接口識別具有面向 對象的表ii^的策略。
214、 權(quán)利要求204的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入檢測、無效開始URL檢測、cookie竄改;險測、表;^各 字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、 和無歲丈URL^r測。
215、 權(quán)利要求204的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一 致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、 和無步丈URL阻斷。
216、 4又利^求204的方法,還包4封:W應用^^配置文件。
217、 權(quán)利要求204的方法,還包括發(fā)送應用安全配置文件到網(wǎng)絡裝置。
218、 一種在設(shè)備中用于執(zhí)行對于裝置的一個或者多個應用安全配置文件的 方法,每一個應用安全配置文件指定執(zhí)行關(guān)于應用的安全功能的多個策略組, 所述方法包括(a) 由設(shè)備識別第一策略以應用到所接收的分組流;第一策略指定包括 第 一表達式的并且識別應用安全配置文件;(b) 由所述設(shè)備估計該規(guī)則;(c )由所述設(shè)備響應于規(guī)則的估計來處理由應用安全配置文件指定的第 一檢-瞼;并且(d )由所述設(shè)備響應于規(guī)則的估計來處理由應用安全配置文件指定的第 二檢驗。
219、 權(quán)利要求218的方法,其中,所述設(shè)備包括VPN代》里裝置。
220、 權(quán)利要求218的方法,其中,步驟(a)包^it過設(shè)備識別第一策略以應 用到所接收的TCP分組流。
221、 權(quán)利要求218的方法,其中,步驟(b)包括由所述設(shè)^f古計翔UI'j的面向?qū)ο蟮谋磉_式。
222、 權(quán)利要求218的方法,其中,步驟(c)包括估計第一檢驗的至少一4S殳 置來確^否應用第一纟企驗。
223、 權(quán)利要求218的方法,其中,步驟(c)包括確定包含在分組流中的URL匹配第一檢驗的至少-HS殳置,并且響應于該確;t^用第一檢驗。
224、 權(quán)利要求218的方法,其中,步驟(c)包括確定包含在分組流中的URL 匹配第一檢驗的一個設(shè)置的表達式,并且響應于該確定應用第一檢驗。
225、 權(quán)利要求218的方法,其中,步驟(c)包括確定包含在分組流中的URL 匹配第一檢驗的一個設(shè)置的面向?qū)ο蟮谋磉_式,并且響應于該確定應用第一檢驗。
226、 權(quán)利要求218的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入檢測、無效開始URL檢測、cookie竄改檢測、表格 字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、 和無歲丈URL^r測。
227、 權(quán)利要求218的方法,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一 致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、 和無步文URL阻斷。
228、 一種設(shè)備,用于對于裝置執(zhí)行一個或者多個應用安全配置文件,每一 個應用安全配置文件指定執(zhí)行關(guān)于應用的安全功能的多個策略組,所述設(shè)備 包括用于接收分組流的分組處理器;和和分組處理器通信的策略引擎,識別第一策略以應用到所接收的分組流; 第一策略指定包括第一表達式的規(guī)則并且識別應用安全配置文件;估計該規(guī)j 則;響應于規(guī)則的估計來處理由應用安全配置文件指定的第一檢驗;并且響 應于規(guī)則的估計來處理由應用安全配置文件指定的第二檢驗。
229、 權(quán)利要求228的設(shè)備,其中,所述設(shè)備包括VPN^J里裝置。
230、 權(quán)利要求228的設(shè)備,其中,所述策略引擎識別第一策略以應用到所接收 的TCP ^!且流。
231、 權(quán)利要求228的設(shè)備,其中,所述策略引擎估計規(guī)則的面向?qū)ο蟮谋韎i^。
232、 權(quán)利要求228的設(shè)備,其中,所述策略引擎估計第一檢驗的至少一個設(shè)置來確U否應用第一纟全—驗。
233、 權(quán)利要求228的設(shè)備,其中,所述策略引擎確定包含在^^且流中的URL匹 配第一檢驗的至少一個設(shè)置,并且響應于該確定應用第一檢驗。
234、 權(quán)利要求228的設(shè)備,其中,所述策略引擎確定包含在^I且流中的URL匹 配第一檢驗的"HS殳置的表ii^,并且響應于該確^S用第一檢驗。
235、 權(quán)利要求228的設(shè)備,其中,所述策略引擎確定包含在^^且流中的URL匹 配第一檢驗的-HS殳置的面向?qū)ο蟮谋韎^,并且響應于該確定應用第一檢驗。
236、 權(quán)利要求228的設(shè)備,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入檢測、無效開始URL檢測、cookie竄改檢測、表格 字段一致性檢測、緩沖器溢出檢測、交叉站點腳本檢測、信用卡號碼檢測、 和無效URL4全測。
237、 權(quán)利要求228的設(shè)備,其中,第一檢驗和第二檢驗的至少一個執(zhí)行以 下的其中一個SQL注入阻斷、無效開始URL阻斷、cookie竄改阻斷、非一 致性表格字段阻斷、緩沖器溢出阻斷、交叉站點腳本阻斷、信用卡號碼阻斷、 和無凌丈URL阻斷。
全文摘要
描述了用于配置和估計指導一個或者多個數(shù)據(jù)流的處理的策略的系統(tǒng)和方法。所描述的配置接口允許用戶指定面向?qū)ο蟮牟呗?。這些面向?qū)ο蟮牟呗钥梢栽试S關(guān)于所接收的分組流的有效載荷來應用任一數(shù)據(jù)結(jié)構(gòu),包括HTTP業(yè)務量的任一部分。配置接口除了在一個或者多個策略未被定義時指定所采取的行動之外還可以允許用戶控制執(zhí)行策略和策略組的順序。用于處理策略的系統(tǒng)和方法可以允許通過應用可能復雜的數(shù)據(jù)結(jié)構(gòu)來解構(gòu)數(shù)據(jù)流而允許面向?qū)ο蟮牟呗缘挠行幚?。裝置也可以解釋和處理大量流量控制命令和策略組調(diào)用語句來確定在多個策略和策略組上執(zhí)行的順序。這些策略配置和處理可以允許配置和處理涉及負載平衡、VPNs、SSL卸載、內(nèi)容轉(zhuǎn)換、應用安全、加速和高速緩存的復雜網(wǎng)絡行為。
文檔編號H04L29/06GK101682526SQ200880015862
公開日2010年3月24日 申請日期2008年3月12日 優(yōu)先權(quán)日2007年3月12日
發(fā)明者A·喬漢, A·雷迪, N·西卡, P·凱馬尼, R·米拉尼, V·班德卡爾, V·科拉帕提 申請人:思杰系統(tǒng)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
易门县| 济源市| 汉沽区| 松桃| 民县| 南和县| 嫩江县| 舞阳县| 淮滨县| 石屏县| 辉县市| 灵石县| 瓮安县| 龙门县| 阿合奇县| 余干县| 独山县| 河曲县| 大余县| 确山县| 哈尔滨市| 达尔| 宣威市| 东兴市| 蒙山县| 海阳市| 惠东县| 沁源县| 仁布县| 夹江县| 临沂市| 昭通市| 阿克苏市| 灵宝市| 老河口市| 城口县| 获嘉县| 青浦区| 洪洞县| 泗水县| 滨海县|