中欧体育·(中国)官方网站

中欧体育用于使用动态响应时间来确定网络服务的响应度的方法和设备的制作方法

日期:2023-03-31 04:56 / 作者:小编

  中欧体育本发明主要涉及数据通信网络。更M地,本发明涉朋于使用动态响 应时间来确定一个或者多个网络服务的响应度的方法^i殳备。

  0002传统的系统提供确^良务器对网络请求的响应度的功能。典型地,由管 理员定义静态响应时间。如點良务器不肯^指定的响应时间内响应请求,服务器可以 被识别为不可用服务器。由于增加的负载或请求类型,这样的系统典型地不能满足响 应时间的变^S。

  0003当响应不同服务器或者不同服务器上的网络服务的请求时,这样的系统 典型地不能具有支持所需的不同响应时间的灵活性。例如,在提供多个服务器上的多 个网络服务的系统中,当网络服务要求改变对于不同类型的请求的响应时间的总量 时,该系统仅可以支持一个、静态的响应时间。 一些服务器或者服务器上的网络服务 是可用的,但是除了由预定分酉己的静态响应时间卜还要求附加的时间。尽管这些服 务器或者网络服务可用,^f旦可以净皮识别为不可用的。

  0004于是期望一种支持可变响应时间并且提供具有变化的平均响应时间的多 个网络服务或者服务器其中之一的可用性的精确识别的系统。

  0005在本发明的一个方面中, 一种用于使用动态响应时间来确;m务器上一

  个或者多个网络服务的响应度的方法包括由监控器确定一个或者多个网络服务的每 一个响应请求的响应时间的步骤。该监控器基于一个或者多个网络服务的每一个的所 确定的响应时间来建立平均响应时间。该监控器将一个或者多个网络服务的响应 时间可以偏离平均响应时间的预定阈值与所建立的平均响应时间相关联,该 一个或者多个网络服务的响应时间可以维持响应度的指示。该监控器监控一 个或者多个网络服务对一个或者多个请求的响应时间。该监控器确定一个或 者多个网络服务的响应时间偏离平均响应时间预定阈值。该监控器指示一个或者多个网络服务不可用。

  0006在一个实施例中,该监控H^U刊果测器来确定该一个或者多个网络服务 的响应时间。在另一个实施例中,该监控器基于网络服务的类型^^#^笨测器用于执 行。在又另一个实施例中,该监控器确定包括一个或者多个网络服务和监控器之间的 4ii4时间的响应时间。在又另一个实施例中,该监控器在预定时间间隔更新一个或者 多个网络服务的响应时间。

  0007在一个实施例中,用户指定一个或者多个探测器所关联的网络服务的类 型。在另一个实施例中,用户定制探测器。在又另一个实施例中,该监控器确定由一 个或者多个网络服务响应以下类型的其中之一的请求所需的时间查验(ping)、传 输控制协议(tcp)、 tcp扩展内^^i正(TCP ECV)、 ^^]加密套接字协^^ (SSL) 的^^模式中的TCP ECV、超文本传irf办议(hUp)、 http扩展内凌二^i正、使用SSL 的安全模式中的超文本传l針办议(https)、 https扩展内^^i正、用户数据报协议、

  中,监控器确定一个或者多个网络服务的响应时间与所建立的平均响应时间的偏离落 入预定阈值中。在进一步的实施例中,该监控器指示一个或者多个网络月l务可用。

  0008在本发明的另一个方面中,设^f吏用动态响应时间来确;Ol务器上一个 或者多个网络服务的响应度。该设备包括监控器和与一个或者多个网络服务相关联的 一个或者多个探测器。对于一个或者多个网络服务的^-~个,该一个或者多个探测器 确定该一个或者多个网络服务对于请求的响应时间。驻留在设备上的该监控器和一个 或者多个探测器相关联。该监控器包括基于由一个或者多个探测器所确定的一个或者 多个网络服务的每一个的响应时间来建立平均响应时间的装置。该监控器包括将一 个或者多个网络服务的响应时间可以偏离平均响应时间的预定阈值与所建立 的平均响应时间相关联的装置,该一个或者多个网络服务的响应时间可以维 持响应度的指示。该监控器附加地包括监控一个或者多个网络服务对一个或 者多个请求的响应时间的装置。该监控器还包括确定一个或者多个网络服务 的响应时间偏离平均响应时间预定阈值的装置。该监控器包括用于指示一个 或者多个网络服务不可用的装置。

  0009在一个实施例中,用户指定一个或者多个探测器所关联的网络服务的类 型。在另一个实施例中,用户定制探测器。在又另一个实施例中,该一个或者多个探 测器确定由一个或者多个网络服务响应以下类型的其中之一的请求的响应时间查 验、传输控制协议(tcp )、 tcp扩展内^^i正(TCP ECV )、使用加密套4转协议层(SSL)的^模式中的TCP ECV、超文本传丰針办议(http)、 http扩展内虐L险证、使用SSL 的^4^莫式中的超文本传1針办议(hUps)、 https扩展内^^i正、用户数据净艮协i义、 iii^服务和文件传丰tt办议,以及其它自定义和通用的用户可编禾#卩本。

  0010在一个实施例中,该监控器包括内核模式进程。在另一个实施例中,该 监控器与驻留在设备上的虚拟服务器通信。在又另一个实施例中,该监控器给虚拟服 务器发送一个或者多个网络服务不可用的指示。

  图1A是对于客户端通过设备访问服务器的网络环境的实施例的框图1B是用于通过设备从服务器传送计算环境到客户端的环境的实施例的

  框图1C和1D是计算装置的实施例的框图2A是用于处理客户端和服务器之间的通信的设备的实施例的框图2B是用于优化、加速、负载平衡和路由客户端和服务器之间的通信的

  设备的另 一个实施例的框图3是用于通过设备与服务器通信的客户端的实施例的框图4是描述使用动态响应时间来确定服务器上一个或者多个网络服务的响

  0014在包括服务器群組的一些实施例中,该服务器群组包括服务器, 一个或者多个服务器共享公共资源。在这些实施例的一个中,公共资源为物 理装置,中欧体育诸如由多个服务器访问来为一个或者多个客户端提供功能性的后端数据库。在这些实施例的另一个中,诸如管理员的共享资源的用户确定一个 或者多个服务器和共享资源的一个或者多个服务器的静态响应超时。在这些 实施例的另一个中,共享资源响应请求,但是要求响应时间大于用户设定的 静态确定的响应时间以响应服务器的请求。在这些实施例的又另一个中,要 求来自共享资源的响应以响应客户端请求的服务器也要求响应时间大于静态 确定的响应时间。在这些实施例的一些实施例中,由于所要求的增加的响应 时间,共享资源的监控器将识别共享资源和服务器为不可用。

  0015在替代实施例中,诸如以下结合图4和图5所描写和描述的, 动态响应时间通过监控响应时间和确定平均响应时间来配置。在这些实施例

  偏离值的函数。在这些实施例的另一个中,识别出平均响应时间和预定阈值。 在这些实施例的又另一个中,当服务超过平均响应时间预定阈值时,该服务 被识别为不可用。在这些实施例的又另一个中,预定阈值和平均响应时间的 使用提高了服务不可用的识别的精确度并且提升了监控器识别不可用服务的 功能。

  0016在讨始r设备和/或客户端的系统和方法的实施例的细节之前,讨 论这些实施例所布署的网络和计算环境是有帮助的。现在参见图1A,描述了 网络环境的实施例。概括来讲,网络环境包括通过一个或多个网络104、 104, (一般称为网络104)与一个或多个服务器106a-106n (同样一般称为服务 器106,或远程机器106)通信的一个或多个客户端102a- 102n (同样一般称 为本地机器102,或客户端102)。在一些实施例中,客户端102通过设备200 与服务器106通信。

  0017虽然图1A示出了在客户端102和服务器106之间的网络104和 网络104,,客户端102和服务器106可以位于相同的网络104上。网络104 和104,可以是相同类型的网络或不同类型的网络。网络104和/或网络104,可 为诸如企业内部网的局域网(LAN),城域网(MAN)或者诸如因特网或万 维网的广域网(WAN)。在一个实施例中,网络104,可为专用网络并且网络 104可为公用网络。在一些实施例中,网络104可为专用网络并且网络104, 可为7用网络。在另外的实施例中,网络104和104,可都为专用网络。在一 些实施例中,客户端102可位于公司企业的分支机构中,通过网络104上的 WAN连接与位于公司数据中心的服务器106通信。0018网络104和/或104,是任何类型和/或形式的网络,并且可包括任 意下述网络点对点网络,广播网络,广域网,局域网,电信网络,数据通 信网络,计算机网络,ATM(异步传输模式)网络,SONET (同步光纤网络) 网络,SDH(同步数字体系)网络,无线网络和有线网^。在一些实施例中, 网络104可以包括无线链路,诸如红外信道或者卫星频带。网络104和/或104, 的拓朴可为总线型、星型或环型网络拓朴。网络104和/或104,以及网络拓朴 可以是本领域普通技术人员所熟知的、可以支持此处描述的操作的任意这样 的网络或网络拓朴。

  0019如图1A所示,设备200被示在网络104和104,之间,设备200 也可被称为接口单元200或者网关200。在一些实施例中,设备200可位于网 络104上。例如,公司的分支机构可在该分支机构中布署设备200。在其它实 施例中,设备200可位于网络104,上。例如,设备200可位于公司的数据中 心。在又一个实施例中,多个设备200可布署在网络104上。在一些实施例 中,多个设备200可布署在网络104,上。在一个实施例中,第一设备200与 第二设备200通信。在其它实施例中,设备200作为客户端102可为位于同 一或不同网络104、 104,的任一客户端102或服务器106的一部分。 一个或 多个设备200可位于客户端102和服务器106之间的网络或网络通信路径中 的任一点。

  0020在一个实施例中,系统可包括多个逻辑分组服务器106。在这些 实施例中,服务器的逻辑分组可以被称为服务器群组38。在其中一些实施例 中,服务器106可为地理上分散的。在一些情况中,群组38可以作为单个实 体被管理。在其它实施例中,服务器群组38包括多个服务器群组38。在一个 实施例中,服务器群组执行代表一个或者多个客户端102的一个或者多个应 用。

  .0021在每个群组38中的服务器106可为不同种类。 一个或多个服务 器106可根据一种类型的操作系统平台(例如,由Washington, Redmond的 Microsoft公司制造的WINDOWS NT)操作,而一个或多个其它服务器106 可根据另一类型的操作系统平台(例如,Unix或Linux)操作。每个群组38 的服务器106不需要与相同群组38内的另一个服务器106物理上接近。因此, 逻辑分组作为群组38的服务器106的组可使用广域网(WAN)连接或中等区 域网(MAN)连接来互相连接。例如,群组38可包括物理上位于不同大陆或大陆、国家、州、城市、校园或房间的不同区域的服务器106。如果服务

  器106使用局域网(LAN)连接或一些直接连接的形式进行连接,则在群組 38中的服务器106间的数据发送速度可增加。

  0022服务器106可指文件服务器、应用服务器、web服务器、代理 服务器或者网关服务器。在一些实施例中,服务器106可以有作为应用服务 器或者作为主应用服务器工作的能力。在一个实施例中,服务器106可包括 活动目录。客户端102也可称为客户端节点或端点。在一些实施例中,客户 端102有能力作为在服务器上搜索对应用的访问的客户端节点工作,也有能 力作为提供对用于其它客户端102a-102n所寄载的应用的访问的应用服务 器工作。

  0023在一些实施例中,客户端102与服务器106通信。在一个实施 例中,客户端102可与群组38中的服务器106之一直接通信。在另一个实施 例中,客户端102执行程序邻近应用以与群组38内的服务器106通信。在又 另一个实施例中,服务器106提供主节点的功能。在一些实施例中,客户端 102通过网络104与群组38中的服务器106通信。通过网络104,客户端102 例如可以请求执行在群组38中的服务器106a-106n寄载的各种应用,并接收 应用执行结果的输出用于显示。在一些实施例中,只有主节点提供要求识别 和提供地址信息的功能,其中的地址信息与寄载所请求的应用的服务器106, 相关。

  0024在一个实施例中,服务器106提供网络(Web)服务器的功能。在 另一个实施例中,服务器106a接收来自客户端102的请求,将该请求转发到 第二服务器106b并以来自服务器106b对该请求的响应通过客户端102响应 该请求。在又另一个实施例中,服务器106获得客户端102可用的应用的列 举以及地址信息,该地址信息与服务器106相关,该服务器106寄载由该应 用的列举所识别的应用。在又一个实施例中,服务器106使用web接口呈现 对客户端102的请求的响应。在一个实施例中,客户端102直接与服务器106 通信以访问所识别的应用。在另一个实施例中,客户端102接收诸如显示数 据的应用输出数据,该应用输出数据通过对在服务器106上所识别的应用的 执行而产生。

  0025现在看图1B,示出了在客户端102上用于传送和/或才喿作计算环 境的网络环境。在一些实施例中,服务器106包括用于向一个或多个客户端102传送计算环境或应用和/或数据文件的应用传送系统190。总的来说,客户

  端10通过网络104、 104,和设备200与服务器106通信。例如,客户端102 可驻留在公司的远程办公室里,例如分支才M勾,并JU良务器106可驻留在公司数据中 心。客户端102包括客户端^J里120以及计算环凌15。计算环凌15可#^亍或#^访 问、处理或^^]数据文件的应用。计算环嫂15、应用和/或数据文件可通过设备200 和/或服务器lQ6传送。

  0026在一些实施例中,设备200加速计算环境15或者其任意部分到 客户端102的传送。在一个实施例中,设备200通过应用传送系统190加速 计算环境15的传送。例如,可使用此处描述的实施例勤口速可由从中央公司数据 中心到远程用户位置(例如公司的分支机构)的应用处理的流应用和数据文件的传送。 在另一个实施例中,设备200加速客户端102和服务器106之间的传输层通信量。设 备200可以提供加速技术用于加速/A^务器106到客户端102的任一传输层有效载 荷,诸如l)传输层连接池,2)传输层连接多路賴,3)传输控制协议缓冲,4) 压缩,以及5)高速緩存。在一些实施例中,设备200响应来自客户端102的请求提 供服务器106的负载平4軒。在其它实施例中,设备200充当^J里或;^i方问月l务器来提 供对一个或者多个服务器106的访问。在另一个实施例中,设备200 4^^U^1户端 102的第一网络104到服务器106的第二网络104,的^^虚拟专用网络连接,诸如 SSLVPN连接。在又一些实施例中,设备200提供客户端102和服务器106之间的连 接和通信的应用防火墙#、控制和管理。

  0027在一些实施例中,基于多个执行方法并且基于通过策略引擎195 所应用的任一验证和授权策略,应用传送管理系统190提供应用传送技术来 传送计算环境到用户的桌面(远程的或者其它的)。使用这些技术,远程用户 可以从任意网络连接装置100获取计算环境并且访问服务器所存储的应用和 数据文件。在一个实施例中,应用传送系统190可驻留在服务器106上或在其上执 行。在另一个实施例中,应用传送系统190可驻留在多个服务器106a-106n上或在其 上#^亍。在一些实施例中,应用传送系统190可在服务器群组38内^lf亍。在一个实 施例中,^^亍应用传送系统190的服务器106也可^^诸或提供应用和数据文件。在另 一个实施例中, 一个或多个服务器106的第一组可l^亍应用传送系统190,并且不同 的服务器106n可^f渚或提供应用和数据文件。在一些实施例中,应用传送系统190、 应用和数据文件中的每个可驻留或位于不同的服务器上。在又一个实施例中,应用传 送系统190的^^可部分可驻留、^f亍、或被^f诸于或分发到设备200或多^iS殳备。0028客户端102可以包^ri十算环嫂15,用于扭J刊吏用或者处理凄t据ij件的 应用。客户端102通过网络104、 104,和设备200可以请求来自服务器106的应用 和数据文件。在一个实施例中,设备200可以转发来自客户端102的请求到服务器 106。例如,客户端102可以不具有本i4^f诸或者本地可访问的应用和数据文件。响 应请求,应用传送系统190和/或服务器106可以传送应用和数据文件到客户端102。 例如,在一个实施例中,月l务器106可以按照应用流来发送应用以^1户端102上的 计算环境15中4^(乍。

  0030在一个实施例中,应用传送系统190包括策略引擎195,用于控制和管 a^f应用扭軒方法和应用的传送的访问、选择。在一些实施例中,策略引擎195确定 用户或者客户端102可以访问的一个或者多个应用。在另一个实施例中,策略引擎 195确定应用应该如^T一皮传送到用户或者客户端102,例如^lf亍方法。在一些实施例 中,应用传送系统190提供多个传送技术,从中^i4择应用^Vf亍的方法,诸如基于服 务器的计算、本地流式传输或者传送应用到客户端12 0用于本^i^亍。

  0031在一个实施例中,客户端102请求应用程序的执行并且包括服务器 106的应用传送系统190选择执行应用程序的方法。在一些实施例中,服务器 106从客户端102接收证书。在另一个实施例中,服务器106从客户端102接 收对于可用应用的列举的请求。在一个实施例中,响应该请求或者证书的接 收,应用传逸系统190列举对于客户端102可用的多个应用程序。应用传送 系统190 4妄收请求来#1行所列举的应用。应用传送系统190例如响应策略引 擎的策略,选择预定数量的方法之一来执行所列举的应用。应用传送系统190 可以选择执行应用的方法,使得客户端102接收通过执行服务器106上的应 用程序所产生的应用输出数据。应用传送系统190可以选择执行应用的方法, 使得本地机器10在4企索包括应用的多个应用文件之后本地执行应用程序。在 又一个实施例中,应用传送系统190可以选择执行应用的方法,以通过网络104流式传输应用到客户端102。

  0032客户端102可以执行、操作或者以其它方式提供应用,应用可为 任何类型和/或形式的软件、程序或者可才W亍指令,例如4封可类型和/或形式的web 浏览器、基于web的客户端、客户端-服务器应用、痩客户端计算客户端、ActiveX 控件、或者Java程序、或者可以M户端102上#^亍的任意其它类型和/或形式的可 4;U亍指令。在一些实施例中,应用可以是fC4^户端102在服务器106上#1^亍的基于 服务器或者基于远程的应用。在一个实施例中,服务器106可以^]任意瘦客户端或 者远程显示协i棘显示输出到客户端102,诸如由Florida, Ft. Lauderdale的Citrix Systemslnc.制造的独立计算架构(ICA )协议,或者由Washington, Redmond的 Microsoft公司制造的远程桌面协议(RDP)。应用可^^H封可类型的协议,并且它可 为,例如,HTTP客户端、FTP客户端、Oscar客户端或Telnet客户端。在其它实施 例中,应用包括涉及到VoIP通信的^^可类型的软件,例如彰IP电话。在进一步的实 施例中,应用包括涉Mj实时数据通信的^^可应用,例如用于流式传ll^见频和/或音 频的应用。

  0034客户端102、月良务器106禾oi殳备200可以布署为和/或才W亍在任意类型和形式的计算装置上,诸如能够在任意类型和形式的网络Jlit信并^^亍此处描述的操

  作的计算机、网络装置或者设备。图1C和1D描述用于实JJ J1户端102、月良务器106 或者设备200的实施例的计算装置100的框图。如图1C和1D所示,每个计算装 置100包括中央处理单元121,以及主存储单元122。如图1C所示,计算装 置100可以包括虚拟显示装置124、键盘126和/或诸如鼠标的定点设备127。 每个计算装置IOO也可包括其它可选择的部件,例如一个或多个输入/输出装 置130a - 130b (总的使用标号130表示),以及与中央处理单元121通信的高 速緩存存储器140。

  0036主存储单元122可以是一个或多个存储芯片,这些存储芯片可 以存储数据并允许微处理器121直接访问任何存储位置,例如静态随机存耳又

  0037图1D描述的实施例中,主处理器121通过次级总线,有时称为背端总线,直接与高速缓存存储器140通信。在其它实施例中,主处理

  器121使用系统总线更快的响应时间,并通常通过SRAM、中欧体育 BSRAM、或EDRM 来提供。在图1C所示的实施例中,中欧体育处理器121通过本地系统总线通信。各种总线可以被用于连接中央处理单元121到任意I/O装 置130,包括VESAVL总线、ISA总线、EISA总线、孩i通道结构(MCA)总线、 PCI总线、PCI-X总线、PCI-Express总线、或者NuBus。对于这样的实施 例,其中1/0装置是视频显示器124,处理器121可使用高级图形端口 (AGP) 与显示器124通信。图1D描述了计算机100的实施例,其中主处理器121通 过HyperTransport, R邻id I/O或者InfiniBand与I/O装置130b直接通信。 图ID也描述了一个实施例,其中本地总线和直接通信是混合的处理器121 使用本地互联总线a通信,而与I/O设备130b直接通信。

  0038计算装置100可以支持任何适合的安装装置116,例如用于接 收诸如3. 5英寸、5. 25英寸软盘或ZIP盘的软盘驱动器、CD-ROM驱动器、 CD-R/RW驱动器、DVD-ROM驱动器、各种格式的磁带驱动器、USB装置、硬 盘驱动器、或者适用于安装软件、程序(例如任一客户端代理12Q或其中 一部分)的任意其它装置。计算装置IOO还可以包括存储装置128,诸如一 个或者多个硬盘驱动器或者独立磁盘的随机阵列,用于存储操作系统和其 它相关软件,以及用于存储诸如涉及客户端代理120的任意程序的应用软 件程序。可选地,任意安装装置116也可以被用作存储装置128。此外,操 作系统和软件可从例如可引导CD的可引导介质运行,诸如KNOPPIX⑧, 一种 用于GNU/Linux的可引导CD,该可引导CD可自为GNU/Linux 分发获得。

  0039此外,计算装置100可以包括通过多个连接来对接到局域网 (LAN)、广域网(WAN)或者因特网的网络接口 118,该多个连接包括但不 限于标准电话线、LAN或WAN链路(如802. 11 、 Tl、 T3、 56kb、 X.25)、宽 带连接(例如,ISDN、帧中继、ATM)、无线连接或它们的任意或者全部的 一些组合。网络接口 118可以包含内置网络适配器、网络接口卡、PCMCIA 网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器 或适合将计算装置100对接到能够通信并执行此处所描述的操作的任一类 型网络的任一其它装置。在计算装置100中可提供多个种类的I/O装置1106a-1106n。输入装置包括4建盘、鼠标、轨迹板、轨迹球、麦克风、以及绘 画板。输出装置包括视频显示器、扬声器、喷墨打印机、激光打印机、及染 料升华(dye-sublimation)打印机。如图1C所示,1/0装置可以由I/O控 制器123控制。I/O控制器可以控制诸如键盘126和定点设备127 (例如鼠标 或者光学笔)的一个或者多个I/0装置。此外,1/0装置也可为计算装置100 提供存储器128和/或安装介质116。在另其它实施例中,计算装置100可以 提供USB连接用来接收手持USB存储装置,例如由California, Los Alamitos 的Twintech Industry Inc.制造的USB闪烁驱动器系列装置。

  0040在一些实施例中,计算装置100可以包括多个显示装置 124a-124n或与其相连,这些显示装置可以是相同或不同的类型和/或形式。 同样的,1/0装置130a-130n中的任意一个和/或1/0控制器123可以包括 任意类型和/或形式的适当硬件、软件或软硬件组合以支持、启用或提供计 算装置100对多个显示装置124a-124n的连接和4吏用。例如,计算装置100 可以包括任意类型和/或形式的视频适配器、视频卡、驱动器和/或库,以与 显示装置124a-124n对接、通信、连接或使用显示装置。在一个实施例中, 视频适配器可以包括多个连接器以与多个显示装置124a-124n对接。在其 它实施例中,计算装置100可以包括多个视频适配器,每个视频适配器与 显示装置124a-124n中的一个或多个连接。在一些实施例中,计算装置IOO 的操作系统的任一部分都可以被配置用于使用多个显示器124a-124n。在其 它实施例中,显示装置124a-124n中的一个或多个可以由一个或多个其它 计算装置提供,诸如(例如通过网络)与计算装置100连接的计算装置100a 和100b。这些实施例可以包括被设计和构造的任一类型的软件,以使用另 一个计算机的显示装置作为计算装置100的第二显示装置124a。本领域的 普通技术人员会认识和意识到可以将计算装置100配置成拥有多个显示装 置124a-124n的各种方式和实施例。

  0041在进一步的实施例中,1/0装置130可为在系统总线和外部 通信总线,外部通信总线例如USB总线、Apple Desktop总线 串行连接、SCSI总线、FireWire总线总线、Ethernet总线、 AppleTalk总线、Gigabit Ethernet总线、异步传输模式总线、HIPPI总线、 Super HIPPI总线、SerialPlus总线、SCI/LAMP总线、FibreCha皿el总线、 或者串行连接(Serial Attached)小型计算机系统接口总线C和图ID中描述的种类的计算装置100通常在^^喿作系统的 控制下操作,该操作系统控制任务的调度和对系统资源的访问。计算装置100 可运行^可#^乍系统,例如任何版本的Microsoft Windows #^乍系统,不同版本 的Unix和Linux操作系统,用于Macintosh计算机的任何版本的Mac OS ,任—可^v式操作系统,^f可实时操怍系统,j封可开放源操怍系统,^i可专有操怍系统,用 于移动计算装置的^f可操作系统,或者可以在计算装置上运行并^^亍此处所述操怍的^f可其它才封乍系统。典型的操作系统包括由Washington, Redmond的Microsoft 公司制造的WINDOWS 3. x、 WINDOWS 95、 WINDOWS 98、 WINDOWS 2000、 WINDOWS NT 3.51、 WINDOWS NT 4.0、 WINDOWS CE和WINDOWS XP;由California, Cupertino的Apple计算才几7司制造的MacOS; 由New York, Armonk的的Caldera公司发布的可自由获得的操作系统Linux,以及除此之外的任意类 型和/或形式的Unix 4喿作系统。0043在其它实施例中,计算装置100可以具有与该装置相容的不同 的处理器、操作系统和输入装置。例如,在一个实施例中,计算机100是 palm Inc.制造的Treo180、 270、 1060、 600或者650的智能电话。在此实施 例中,Treo智能电话在PalmOS操作系统的控制下运行并且包括触针输入装置 以及五向导向装置。此外,计算装置100可以是任意工作站、桌面计算机、 膝上型或笔记本计算机、服务器、手持计算机、移动电话、任意其它计算 机、或能够通信并有足够的处理器能力和存储容量以执行此处所述的操作的 其它形式的计算或者电信装置。0044图2A是示出设备200的一个实施例的框图。图2A中的设备200的架构 只是通过示意的方iU是供,并不意于要限制本发明。如图2所示的,设备200包括硬 件层206和分为用户空间202和内核空间204的软件层。0045硬件层206提供硬件元件,在内核空间204和用户空间202内的程序和 服务在该硬件元件上被#1#。硬件层206 ^!li是供结构和元件,使得内核空间204和用 户空间202内的禾踏和服务对于设备200驴4内又向外进行数据通信。如图2所示, 硬件层206包括用于^^亍软件程序和服务的处理单元262、用于^f诸软件和数据的存 储器264、用于在网络Ji^送和接收数据的网络端口 266以A^于才W亍涉錄网络 上被发送和接收的数据的加密套^^协i^处理的功能的加密处理器260。在一些 实施例中,中^J:理单元262可在单一的处理器中扭j亍加密处理器260的功能。另外,硬件层206可包括用于每个处理单元262和加密处理器260的多个处理器。处理器 262可以包括以上结合图1C和ID所述的任意处理器121。在一些实施例中,中M 理单元262可在单一的处理器中^f亍加密处理器260的功能。另夕卜,硬件层206可包 括用于每个处理单元262和加密处理器260的多处理器。例如,在一个实施例中,设 备200包括第一处理器262和第二处理器262,。在其它实施例中,处理器262或者 262,包括多核处理器。0046虽然设备200的硬件层206通常示出带有加密处理器260,但是处理器 260可为4A^亍涉及^f可加密协议的功能的处理器,例如加密套接字协i^ (SSL)或 者传输层安全(TLS )协议。在一些实施例中,处理器260可为通用处理器(GPP), 并且在进一步的实施例中,可为具有用于扭行封可安全相关协议的处理的可#似亍指 令。0047虽然在图2中设备200的石更件层206示出具有一些元件,但是设备 200的硬^^分或部件可包^i十算装置的^^f可类型和形式的元件、硬件或软件,例如 此处结合图1C和1D示出和讨论的计算装置100。在一些实施例中,设备200可包括 月良务器、网关、路由器、交换机、桥接器或其它类型的计算或网络装置,并且具有与 jty目关的4封可硬件和/或软件元件。0048设备200的寸剁乍系统分配、管理或另外分离可用的系乡^f诸器到内核空 间204和用户空间204。在示例的软件架构200中,搡怍系统可为任何类型和/或形 式的Unix^剩乍系统,虽然本发明并未如此限制。同样的,设备200可运4tfW可^^乍 系统,例如4壬4可片反本的Microsoft Windows才^f乍系统,不同片反本的Unix和Limix 才剁乍系统,用于Macintosh计算机的任何版本的Mac OS , 1^可^7v式才刻乍系统, 4^f可网^^f乍系统,^1可实时#^卡系统,^f可开源才斜乍系统,4if可专有冲^f乍系统,用 于移动计算装置或网络装置的^f可才剩乍系统,或者可以在设备200上运行并#(/亍此处 所述操作的任何其它操怍系统。0049内核空间204被保留用于运行内核230,包括任i殳备驱动器、内核扩 y^或其它内核相关软件。就^M贞域技术人员所知的,内核230是才^f乍系统的核心, 并提供对设备200的资源和硬件相关元件的访问、控制和管理。根^i殳备200的实施 例,内核空间204也包括与高速緩存管理器232协同工作的多个网络服务或进程,有 时^#为 的高速緩存,其益处此处将进一步详细描述。另夕卜,内核230的实施例 #^赖于通过设备200安装、配置或其它j吏用的才斜乍系统的实施例。0050在一个实施例中,设备200包括一个网络:t斜戋267,例如基于TCP/IP的堆找,用于与客户端102和/或服务器106通信。在一个实施例中,使用网络i斜戋267与诸如网络104的第一网络以及第二网络104,通信。在一些实施例中,设备200 终止第一传输层连接,例如客户端102的TCP连接,并建立到服务器106的第二传输 层连接,用于由客户端102使用,例如,在设备200和服务器106处终止第二传输层 连接。可通过单一的网络i斜戋267建立第一和第二传输层连接。在其它实施例中,设 备200可包括多个网络i斜戋,例如267或267,,并且可在一个网络堆栈267建立或 终止第一传输层连接,在第二网络i斜戋267可建立或者终止第二传输层连接。例如, 一个网络i斜戋可用于在第一网络上接收和发送网络包,并且另一个网络i斜戈用于在第 二网络上接收和发送网络包。在一个实施例中,网络i斜戋267包括用于排P人一个或多 个网络包的緩冲器243,其中网络包由设备200发送。0051如图2所示,内核空间204包括高速緩存管理器232、高速层2 - 7集 成包引擎240、加密引擎234、策略引擎236以及多协议压缩逻辑238。在内核空间 204或内核模式而不^]户空间202中运行这些组件或进程232、 240、 234、 236和 238提高这些组件中的每个的单独的和结合的性能。内核才斜卡意味着这些组件或进程 232、 240、 234、 236和238在设备200的操怍系统的核地址空间中运行。例如,在 内核模式中运行加密引擎234通过移动加密和解密冲剁乍到内核来提高加密性能,从而 减少在在内核模式中的^^诸空间或内核线程与在用户模式中的存储空间或线程之 间的转换的数量。例如,在内核模式中获得的数据可以不需^^专输或拷贝到运行在 用户模式的进禾iiU財呈,例如从内核级数据结构到用户级数据结构。在另一个方面, 也可减少内核模式和用户模式之间的上下文切换的数量。另夕卜,^i可组件或进程232、 240、 234、 236和238的同步和其之间的通信在内核空间204中可净嫂有效地才W亍。0052在一些实施例中,组件232、 240、 234、 236和238的^i可部分可在内 核空间204中运行或才喿怍,而这些组件232、 240、 234、 236和238的其它部分可在 用户空间202中运行或#1乍。在一个实施例中,设备20(H^]内核级数据结构来提供 对一个或多个网终包的^f可部分的访问,例如,包括来自客户端102的请求或者来自 服务器106的响应的网络包。在一些实施例中,可以由包引擎240通iiJiJ网络i斜戈 267的传输层驱动##口或选虑器获得内核级数据结构。内核级数据结构可包4錄过 与网络舉民267相关的内核空间204可访问的任何接口和/或数据、由网络舉民267 接4H发送的网络业务或包。在其它实施例中,1封可组件或进程232、 240、 234、 236 和238可細内核级数据结构来4A^亍组件或进程的期望的才斜乍。在一个实施例中,当 ^^]内核级数据结构时,组件232、 240、 234、 236和238在内核才莫式204中运行,而在另一个实施例中,当使用内核级数据结构时,组件232、 240、 234、 236和238 在用户模式中运行。在一些实施例中,内核级数据结构可被拷贝或传输给第二内核级 数据结构,或4W可期望的用户级lt据结构。0053高速緩存管理器232可包括软件、硬件或软件和硬件的任意组合,以提 供对^^可类型和形式的内容的高速緩存访问、控制和管理,例如对^i5L由源服务器 106服务的动态产生的对象。由高速緩存管理器232处理和^^诸的数据、对象或内容 可包括封可格式的数据,例如标记语言,或通过^^可协议通信。在一些实施例中,高 速緩存管理器232复制##在其它地方的原始数据或先前被计算、产生或发送的数 据,其中相对于读高速緩存^f诸元件,原始数据可能需要更长的访问时间以便取得、 计算或获得。 一旦数据被^(诸在高速緩存^^诸元件中,将来的使用可通过访问高速緩 存的副本而非再取回或再计算原始数据而实现,因而减少了访问时间。在一些实施例 中,高速缓存^f渚元件nat包^i史备200的务賭器264中的数据对象。在其它实施例 中,高速緩存^^诸元件可包括具有卩^##器264更决的存取时间的^[*器。在另一个硬盘的部分。在一些实施例中,处理单元262可提供被高速緩存管理器232使用的高 速缓存^f渚器。在又一个实施例中,高速緩存管理器232可^^l^f诸器、^j浙殳备或 处理单元的^^可部^^口组合来高速缓存数据、对M其它内容。0054另外,高速緩存管理器232包括用于扭行此处描述的设备200的技术的 任一实施例的4a可逻辑、功能、规则或l剁乍。例如,高速緩存管理器232包括基于无 效时间周期的终止,或者从客户端102或服务器106接^^效命令,无效对象的逻辑 或功能。在一些实施例中,高速缓存管理器232可作为在内核空间204中4似亍的程序、 月l务、进禾l^/f壬务来操作,并且在其它实施例中在用户空间202中才;M亍。在一个实施 例中,高速緩存管理器232的第一p分在用户空间202内才;W亍,而第二部分在内核空 间204内扭軒。在一些实施例中,高速緩存管理器232可包括^^可类型的通用处理器 (GPP),或者^i可其它类型的tt电路,例如现场.可编程门阵列(FPGA)、可编禾链 辑器件(PLD)或者专用集成电路(ASIC)。0055策略引擎236可包括,例如,智能统计引擎或其它可编程应用。在一个 实施例中,策略引擎236提供酉己置机制以允许用户识别、指定、定义或配置高速緩存 策略。在一些实施例中,策略引擎236也访问^j诸器以支持数据结构,例如查^J^ 哈希(hash)表,以启用用户选择的高速緩存策略决定。在其它实施例中,策略引 擎236可包括4封可逻辑、规则、功能或#1乍以决定和提供除了对#、网络业务、网络访问、压缩或其它任何由设备200执行的功能或操作的访问、控制和管理卜的对 设备200所高速緩存的对象、数据、或内容的访问、控制和管理。特定高速IC存策略 的其它实施例在此处进一步进行了描述。0056

  加密引擎234包括用于控制1^可^^^相关协i^理,例如SSL或TLS, 或其相关的任何功能的^i可逻辑、商业规则、功能或操作。例如,加密引擎234加密 并解密通过设备200通信的网络包,或其4W可部分。加密引擎234也可^^j:户端 102a-102n、服务器106a-106n或设备200来安絲建立SSL或TLS连接。同样的, 加密引擎234提供SSL处理的卸载和加速。在一个实施例中,加密引擎23t^]Pi^il 协R^提供^1户端102a-102n和服务器106a-106n间的虚拟专用网络。在一些实施 例中,加密引擎234与加密处理器260通信。在其它实施例中,加密引擎234包^链 行在力。密处理器260上的可才W亍指令。0057

  多协议压缩引擎238包括用于压缩一个或多个网络包协议(例:H皮设备 200的网络堆栈267使用的^K协议)的任何逻辑、商业规则、功能或操作。在一个 实施例中,多协议压缩引擎238双向压缩在客户端102a-102n和服务器106a-106n 间4封可基于TCP/IP的协议,包括消息应用编程接口 (MAPI)(电子邮件email )、文 件传專針办议(FTP)、超文本传專針办议(HTTP)、通用Internet文件系统(CIFS)协议 (文件传输)、独立计算架构(ICA)协议、远程桌面协议(RDP )、无线应用协议(WAP )、 移动IP协议以及IPi錄(VoIP)协议。在其它实施例中,多协^S缩引擎238提供 基于超文4^示记语言(HTML)的协议的压缩,并錄一些实施例中,提^^f可标记语 言的压缩,例如可扩展标记语言(XML)。在一个实施例中,多协ia缩引擎238才是供 任何高性能协议的压缩,例如为设备200设计的用于设备200通信的i^可协议。在另 一个实施例中,多协议压缩引擎2 38 ^jl]修改的传输控制协议(例如事务TCP( T/TCP )、 带有选择确认的TCP (TCP-SACK )、带有大窗口的TCP (TCP-LW )、例如TCP-Vegas协 议的拥塞预报协议以及TCP电子欺骗协议)来压缩^i可通信或其^f可有效载荷。0058

  同样的,多协议压缩引擎238通过桌面客户端,例如Micosoft Outlook 和非web瘦客户端,诸如由通用企业应用《象Oracle、 SAP和Siebel启动的任^可客户 端,甚至移动客户端,例如便携式个人计算机,勤。賴户访问应用的#1^于。在一些 实施例中,多协iU^缩引擎238通it^内核模式204内4財W亍并与访问网络i斜戋267 的包处理引擎240集成,可以压缩TCP/IP协议承载的封可协议,例XM可应用层协 议。0059

  M高ii^2-7的包引擎240,通常^f尔为包处理引擎,或包引擎,通过网络端口 266负责设备200接收和发送的包的内核m理的管理。M高ii^2-7 的包引擎240可包括在处理期间用于排队一个或多个网络包的緩冲器,例如用于网络 包的接4tt者网络包的发送。另夕卜,集成高絲2-7的包引擎M0通过网络端口 266 与一个或多个网络3斜戋267通信以发出和接收网络包。城高絲2-7的包引擎240 与加密引擎234、高速缓存管理器232、策略引擎236和多协i猛缩逻辑238协同工 作。更M地,配置力。密引擎234以才W亍包的SSL处理,配置策略引擎236以^M亍涉 及业^f理的功能,例:^青求级内容切换以及请求级高速緩存重定向,并配置多协议 压缩iC辑238以才Aff涉;^凄丈据压缩和解压缩的功能。0060

  集成高速层2-7的包引擎240包括包处理定时器242。在一个实施例中, 包处理定时器242提f个或多个时间间隔以触发输入的(即接收的,或者输出的(即 发送的))网络包的处理。在一些实施例中,M高i4^2-7的包引擎240响应于定 时器242处理网络包。包处理定时器242向包引擎240才是^H壬一类型和形式的信号以 通知、触发或发送时间相关的事件、间隔或发生。在许多实施例中,包处理定时器 242以毫秒Mi^f亍,例如100ms、 50ms、或25ms。例如,在一些实施例中,包处理定 时器242提供时间间隔或者使由集成高速层2-7的包引擎240以10ms时间间隔处理 网络包,而在其它实施例中,以5ms时间间隔,并iL^又进一步的实施例中,短到3、 2或lms时间间隔。M高i4y昏2-7的包引擎240在操作期间可与加密引擎234、高 速緩存管理器232、策略引擎236以及多协^Ui缩引擎238对接、tt或通信。同样 的,响应于包处理定时器242和/或包引擎240,可#^劲口密引擎234、高速緩存管理 器232、策略引擎236以及多协i謹缩逻辑238的《^可逻辑、功能或冲剁乍。因此,可 在由包处理定时器242 ^是供时间间隔的粒度(例如小于或等于10ms的时间间隔) 可#1^亍加密引擎234、高速緩存管理器232、策略引擎236以及多协^Ji缩逻辑238 的JW可逻辑、功能或操作。例如,在一个实施例中,响应于集成高速层2-7的包引擎 240和/或包处理定时器242,高速緩存管理器232可^U亍任何高速緩存对象的无效。 在另一个实施例中,高速緩存对象的终止或无效时间被设定为与包处理定时器242 的时间间隔相同的粒度级,例如每1 Oras 。0061

  与内核空间204形成》j比,用户空间202是操怍系统的务賭区域或部分, 被用户模式应用或在用户模式中以其它方^行的程序所使用。用户模式应用不能直 4妄访问内核空间204并且为了访问内核服务而^j ]服务调用。如图2所示,设备200 的用户空间202包括图形用户界面(GUI )210、命令行接口 (CLI )212、壳月良务(shell service) 214、 #^监控禾踏216以及守护(daemon)月l务218。 GUI 210和CLI 212提供一种方法,通it该方法系统管理员或其它用户可与i殳备200的操怍相互作用并控 制该i殳备200的操作,例如通过设备200的操作系统,并且或者是用户空间202或者 内核空间204。 GUI 210可为^封可类型和形式的图形用户界面,并且可通iti:本、图 形或其它任一类型的程序或应用来呈现,例如浏览器。CLI 212可为〗^f可类型和形式 的命令行或基于文本的接口 ,例如通过才剁乍系乡^是供的命令行。例如,CLI212可包 括壳(shell),该壳是j吏得用户能够与操作系统交互的工具。在一些实施例中,可 通过bash、 csh、 tcsh或者ksh类型的壳提供CLI 212。壳服务214包4封呈序、服务、 任务、进考誠可^f亍指令以支持由用户通过GUI 210和/或CLI 212的与设备200或 者操作系统的交互作用。0062

  賴#^监控程序216来监控、检查、报告并确保网络系乡緣常i4^行 以朋户通过网^1妄^/斤请求的内容。#^监控程序216包括一个或多个程序、服务、 任务、进禾liL可4^亍指令,为监控设备200的^f可行为而提供逻辑、规则、功能或操 作。在一些实施例中,^tt监控禾1^216 4誠并检查通过设备200传递的^f可网络业 务。在其它实施例中,键康监控程序216通过^f可合适的方法和/或机制与一个或多 个下述设备对接加密引擎234、高速緩存管理器232、策略引擎236、多协说医缩 逻辑238、包引擎240、守护服务218以及壳服务214。同样的,#^监控程序216 可调用^i可应用编程接口 (API)以确定设备200的^f可部分的状态、情况或健泉。 例如,健康监控程序216可基于周勘&也查验或发送状态查询以检查程序、进程、服 务或任务是否彬敫活并当前i^行。在另一个示例中,《4t监控禾辨216可检查 由^f可程序、进程、服务或任务提供的1^可状态、4fi吴或历史日志以确定设备200 樹可部分的贿綠情减銜吴。

  守护服务218是连续地威在后台中运行的程净,并M理由设备200 接收的周期性服务请求。在一些实施例中,守护服务向其它程序或进程转发请求,例 如向合适的另一个守护服务218。如本领域技术人员所v^口,守护服务218可无人监 护的运行,.以扭軒连续的或周期性的系统范围功能,例如网络控制,或者扭奸^i可期 望的任务。在一些实施例中, 一个或多个守护服务218运行在用户空间202中,而在 其它实施例中, 一个或多个守护服务218运行在内核空间。0064

  i脉参见图2B,该框图描述设备200的另一个实施例。总的来说,设 备200提供以下服务、功能性或者操作的一个或者多个用于一个或者多个客户端 102和一个或者多个服务器106之间的通信的SSL-VPN连接性280、转换/负载平衡 284、 Ji^g服务解析286、力口速288和应用防火墙290。在一个实施例中,设备200包括由Florida, Ft. Lauderdale的Citrix Systems Inc.制造的任意网络装置,称为 Citrix NetScaler装置。月良务器106的^个可以提供一个或者多个网络相^^务 270a-270n (称为月良务270 )。例如,服务器106可以提供http服务270。设备200 包括一个或者多个虛拟服务器或者虛拟互联网协i划良务器,称为vServer、 VIP服务 器或者i议VIP 275a-275n (此处^f尔为vServer 275 )。 vServer275根4射殳备200的 配置和纟刺乍来接收、拦截或者以其它方式处m^户端102和服务器106之间的通信。0065

  vServer 275可以包括软件、硬件或者软件和硬件的任意组合。vServer 275可包括在设备200中的用户模式202、内核模式204或者其任意组合中运行的任 意类型和形式的程序、服务、任务、进禾I^者可才A^亍指令。vServer 275包括任意逻 辑、功能、规则或者4剁乍,以^^亍此处所述技术的任意实施例,诸如SSL VPN 280、 转换/负载平衡284、 fe^g服务解析286、加速288和应用防火墙290。在一些实施例 中,vServer 275建立到服务器106的服务270的连接。服务275可以包括能够连接 到设备200、客户端102或者vServer 275并与^if信的任意程序、应用、进程、任 务或者可^Vf亍指令集。例如,月良务270可以包括web服务器、http服务器、ftp、电 子邮件或者数据库服务器。在一些实施例中,服务270是守护进禾誠者网络驱动器, 用于监听、接收和/或发送用于应用的通信,诸如电子邮件、数据库或者企业应用。 在一些实施例中,服务270可以在特定的IP地址、中欧体育或者IP地址和端口上通信。0066

  在一些实施例中,vServer 275应用策略引擎236的一个或者多个策略 到客户端102和服务器106之间的网络通信。在一个实施例中,该策^ vServer 275相关。在另一个实施例中,该策略基于用户或者用户组。在又一个实施例中,策 略为通用的并且应用到一个或者多个vServer 275a-275n和通过设备100通信的任意 用户或者用户組。在一些实施例中,策略引擎的策5^r有基于通信的任意内容应用该 策略的条件,通信的内容诸如互联网协i^i也址、端口、协议类型、包中的首部或者域、 或者通信的上下文,诸如用户、用户组、vServer 275、传输层连接、和/或客户端102 或者服务器106的标识或者属性。0067

  在其它实施例中,设备200和策略引擎236通信或者对接,以确定远程 用户或者远禾1^户端102访问计算环境15、应用、和/或来自服务器106的数据文件 的马b財口/或授权。在另一个实施例中,设备200和策略引擎236通信或者对接,以 确定远程用户或者远禾錄户端102的^i財口/或授^^使得应用传送系统l卯传送一 个或者多个计算环境15、应用、和/或数据文件。在又一个实施例中,i殳备200基于 对远程用户或者远禾1^户端102的策略弓)擎236的—^ii^口/或授^^建立VPN或者SSLVPN连接。在一个实施例中,设备200基于策略引擎236的策略来控制网络业务和通 信会线、应用或 者数据文件的访问。0068

  在一些实施例中,vServer 275与客户端102纟錄户端代理120建立传 输层连接,诸如TCP或者UDP连接。在一个实施例中,vServer 275监听和接收来自 客户端102的通信。在其它实施例中,vServer 275与服务器106建立传输层连接, 诸如TCP或者UDP连接。在一个实施例中,vServer 275建立到运行在服务器106上 的服务器270的互联网协^i&止和端口的传输层连接。在另一个实施例中,vServer 275将到客户端102的第一传输层连接与至ij服务器106的第二传输层连接相关联。在 一些实施例中,vServer 275建立到服务器106的传输层连接池并ili至由^4匕的传输 层连接多路复用客户端请求。0069腺一些实施例中,设备200提供客户端102和服务器106之间的SSL VPN 连接2S0。例如,第一网络104上的客户端102请求建立到第二网络104,上的服务器 106的连接。在一些实施例中,第二网络104,是不能从第一网络104路由的。在其它 实施例中,客户端102位于公用网络104上,并JU艮务器106位于专用网络104,上, 例如企业网。在一个实施例中,客户端^5里120 4誠第一网络104上的客户端102 的通信,加密该通信,并且经第一传输层连接发送该通信到设备200。设备200将第 一网络104上的第一传输层连接与到第二网络104上的服务器106的第二传输层连接 相关联。设备200接收来自客户端代理102的所拄截的通信,加密该通信,并且经第 二传输层连接发送该通信到第二网络104上的服务器106。第二传输层连接可以是池 化的传输层连接。同样的,设备200 ^^用于两个网络104、 104,之间的客户端102 的端到端安4M专输层连接。

  在一个实施例中,设备200寄M拟专用网络104上的客户端102的内 部网内部网协i試者intranetlP 282地址。客户端102具有;^i也网络识别符,诸如互 联网协议(IP)地iit^口/或第一网络104上的主才;i^称。当经设备200连接到第二网 络104,,对于第二网络104,上的客户端102,设备200建立、分酉己或者以其它方式提 供IntranetIP,其是网络识别符,诸如IP地址和/或主机名称。设备200在第二或者 专用网络104,上监听和接收^i )客户端建立的IntranetIP 282的指向客户端102的任 意通信。在一个实施例中,设备200用作或者代表第二专用网络104上的客户端102。 例如,在另一个实施例中,vServer 275监听和响应到客户端102的IntranetIP 282 的通信。在一些实施例中,如果第二网络104上的计算装置100发送请求,设备200如同客户端102 —才羊来处理该^求。例如,设备200可以响应对客户端IntranetIP 282 的查验。在另一个实施例中,设备可以与请求和客户端IntranetIP 282连接的第二网 络104上的计算装置100建立连接,诸如TCP或者UDP连接。0071

  在一些实施例中,设备200提供一个或者多个以下力口速技术288以# 户端102和服务器106之间通信l)压缩;2 )解压縮;3)传输控制协议池;4)传 输控制协议多路复用;5)传输控制协议缓冲;和6)高速缓存。在一个实施例中,中欧体育 设备2 0 0通过开启与Hl务器10 6的 一个或者多个传输层连接并且维持这些连接以 允许由客户端经因特网的重复数据访问,来为服务器106 1^f由重复开启和关闭到客 户端102的传输层连接所带来的许多处理负载。该技^此处被称为连接池。0072

  在一些实施例中,为了无缝拼接/錄户端102经W匕的传输层连接到月良 务器106的通信,设备200通#传输层协议级修改序列号和确认号来翻译或多路复 用通信。这被称为连接多路复用。在一些实施例中,不需要应用层协议交互作用。 例如,在入站包(即,乂A^户端102接收的包)的例子中,包的源网络地址^皮改变到 设备200的输出端口的Mii,并且目的网络地址被改变到指定的月l务器的地址。在出 站包(即,,AI良务器106接收的包)的例子中,源网络^iiUAIl务器106的地址被改 变为设备200的输出端口的MAt,并且目的地iiL^人设备200的:kkiil:被改变到请^^l户 端102的地址。包的序列号和确认号^皮翻译为到客户端102的设备200的传输层连 接上的客户端102所期待的序列号和确认。在一些实施例中,传输层协议的包校马封口 被重新计算以计及这些翻译。0073

  在另一个实施例中,设备200提供转换或者负载平衡功能性284用于客 户端102和服务器106之间的通信。在一些实施例中,基于层4或者应用层请求数提, 设备200分发业M且将客户端请求指向服务器106。在一个实施例中,尽管网络层 或者网络包的层2识别目的服务器106,但设备200确^良务器106利用传输层包 的有效载荷所承载的应用信息和数据来分发网络包。在一个实施例中,设备200的 1tt监控禾踏216.监4创l务器的^it来确定分发客户端请求用于哪个服务器106。在 一些实施例中,如果设备200探测到服务器106不可用或者具有超过预定阈值的负载, 设备200可以将客户端请求指向或者分发到另一个服务器106。0074

  在一些实施例中,设备200用作域名月良务(DNS)解析器或者以其它方 式提供来自客户端102的DNS请求的角年析。在一些实施例中,设备冲誠由客户端102 发送的DNS请求。在一个实施例中,设备200以设备200所寄载的或其IP地址来响 应客户端的DNS请求。在此实施例中,客户端102发送用于域名的网络通信到设备200。在另一个实施例中,设备200以第二设备200,所寄载的或其IP地址来响应客 户端的DNS请求。在一些实施例中,设备200使用由设备200确定的服务器106的 IP地ii来响应客户端的DNS请求。0(H6

  在又一个实施例中,设备200提供用于客户端102和服务器106之间通 信的应用防火墙功能性290。在一个实施例中,策略引擎236提供用于探测和阻断非 法请求的规则。在一些实施例中,应用防火墙290防雄卩拒^Jl务(DoS)攻击。在其 它实施例中,设备检查所拦截的请求的内容,以识别和阻断基于应用的攻击。在一些 实施例中,规则/策略引擎236包括一个或者多个应用防火墙或者安全控制策略,用 于提^f呆护各种类别和类型的基于web或者因特网的漏洞,诸如以下一个或者多个 l)缓沖溢出,2)CGI-BIN参数才彰从,3)表格/隐藏域才彰从,4)强迫浏览,5) cookie 或者会线)中断的访问控制列表(ACL)或者弱的口令,7)跨站脚^J丈击(XSS), 8)命令注入,9)SQL注入,10)错4繊发敏感信息漏,11)密码学的不^4H吏用, 12)服务器误配置,13)后门和调试选项,14)web站点毁损,15)平台或者操作系 统漏洞,和16)零天攻击。在实施例中,应用防火墙290为以下一个或者多个以检 查或者分析网络通信的形式来提供HIML格式域保护l)返回所需要的域,2)不允 许增加的域,3 )只读和隐藏i械行,4 )下拉列表和单选^lai或一致,5 )表域最大 长度施行。在一些实施例中,应用防火墙290确保没有小爹改cookie。在其它实施例 中,应用防火墙290通过执行合法的URL来防御强迫浏览。0076

  在又另一些实施例中,应用防火墙290保护包括在网络通信中的任意机 密信息。应用防火墙290可以才艮据引擎236的规则或者策略^^查或者分析任意网络 通信,以识别网络包的^域中的^机密信息。在一些实施例中,应用防火墙290 识别网络通信中的信用卡号、口令、社会安全号码、名称、患者号码、接触信息和年 龄的一个或者多个的出现。网络通信的编码都分可以包括这些出现或者机密信息。基 于这些出现,在一个实施例中,应用防火墙290可以采取怍用于网络通信上的策略, 诸如阻止网络通信的发送。在另一个实施例中,应用防火墙290可以重写、移动或者 以其它方式掩蔽该所识别的出现或者机密信息。0077

  J脉看图3,描錄户端代理120的实施例。客户端102包括客户端代 理120,用于经网络104与设备200和/或服务器106来建立和交换通信。总的来i兌, 客户端102在计算装置100上操作,该计算装置100拥有带有内核模式302以及用户 模式303的才剁乍系统,以及带有一个或多个层310a-310b的网络^斜戋310。客户端102 可以已经安装和/或冲;W亍一个或多个应用。在一些实施例中, 一个或多个应用可通过网络i械310与网络104通信。诸如web浏览器的应用之一也可包括第一禾辨322。 例如,可在一些实施例中使用第一程序322来安装和/或扭行客户端代理120,或其 中任意部分。客户端f^里120包括^4l机制或者4^l器350,用于^誠经由网络i斜戋 310来自 一个或者多个应用的网络通信。0078

  客户端102的网络堆栈310可包括4壬何类型和形式的專欠件、或硬件或其 组合,用于提供与网络的连接和通信。在一个实施例中,网络i斜戋310包括用于网络 协i^且的软件实现。网络i斜戋310可包括一个或多个网络层,例如为本领域技术人员 所公认和了解的开放式系统互联(OSI)通信模型的^f可网络层。同样的,网络:l斜戋 310可包括任意类型和形式的协议,这些协议用于OS工才莫型的4^f可以下层1)物理 《il^各层,2)凄史寸^ll^各层,3)网纟各层,4)4专專t层,5)^i舌层,6)表示层,以及7) 应用层。在一个实施例中,网绍J斜戋310可包括在互联网协议(IP )的网络层协i^Ji 的传输控制协议(TCP),通常称为TCP/IP。在一些实施例中,可在Ethernet协i^Ji 承载TCP/IP协议,Ethernet协议可包括IEEE广域网(WAN)或局域网(LAN)协议 的^f可族,例3—皮IEEE 802. 3泉氛的那些协议。在一些实施例中,网络i斜戋310包 括^^可类型和形式的无线和/或移动互联网协议。0079

  考虑基于TCP/IP的网络,可錢封可基于TCP/IP的协议,包括消息应 用编程接口 (MAP(电子邮件)、文件传车針办议(FTP)、超文本传丰針办议(HTTP)、 通用因特网文件系统(CIFS)协议(文件传输)、独立计對匡架(ICA)协议、远程桌 面协议(RDP)、无线应用协议(WAP)、移动IP协议,以及IP语音(VoIP)协议。在 另一个实施例中,网络舉战310包括^f可类型和形式的传输控制协议,诸^^务改的传 输控制协议,例如事务TCP (T/TCP),带有选择确认的TCP (TCP-SACK),带有大窗口 的TCP (TCP-LW),拥塞预测协议,例如TCP-Vegas协议,以及TCP电子欺骗协议。 在其它实施例中,任何类型和形式的用户数据报协议(UDP),例如IP上UDP,可被 网络^^31(H^M,诸如用于iH通信或实时数据通信。0080

  另夕卜,网络i斜戋310可包括支持一个或多个层的一个或多个网络驱动器, 例如TCP驱动器或网络层马区动器。网络驱动器可被包括作为计算装置100的4斜乍系统 的一卩分或者作为计算装置100的任何网络接口卡或其它网络沐问组件的一部分。在 一些实施例中,网络i斜戈310的^^可网络驱动器可^fct制、修改或调整以提供网络堆 栈310的定制或修改部分,用来支持此处描述的任何技术。在其它实施例中,设计并 构建加速程序120以与网络i對戋310协同操作或工作,上述网络i斜戋310由客户端 102的才剩乍系统安^以其它方式4是供。0081网络ili4戋310包括^f可类型和形式的接口,用于接收、获得、提供或以 其它方式访问涉^:户端102的网络通信的YW可信息和数据。在一个实施例中,网络 堆栈310的接口包括应用编程接口 (API )。接口也可包括任何函数调用、钩子或过滤 机制、事件或回调机制、或^i可类型的接口技术。网络i斜戋310通过接口可接4线斜卡相关的份(可类型和形式的数据结构,例如对象。例如, 数据结构可包括涉;Oi]网络包的信息和数提,或一个或多个网络包。在一些实施例中, 数据结构包括在网络i斜戋310的妨4仏处理的网络包的一部分,例如传输层的网络 包。在一些实施例中,数据结构325包括内核级数据结构,而在其它实施例中,数据 结构325包括用户模式数据结构。内核级数悟结构可包括在内核模式302中寺喿怍的网 络舉战310的部分获得的或涉及的数悟结构,或者运行在内核模式302中的网络驱动 器或其它软件,或者通it^^f乍系统的内核模式中运行或^1乍的服务、进程、任务、 线程或其它可^Vf亍指令获得或接收的^f可数据结构。0082

  此外,网络;i斜戋310的一些部分可在内核模式302中^/f亍或才剩乍,例如, 数才射鈔各或网络层,而其它部分在用户模式303中扭軒或操作,例如网全各ili4戋310 的应用层。例如,网络堆栈的第一部分310a可为应用提供对网络i斜戈310的用户模 式的访问,而网络i斜戋310的第二部分310a提供对网络的访问。在一些实施例中, 网络堆栈的第一部分310a可包括网络i斜戋310的一个或多个更上层,例如层5-7的 任意层。在其它实施例中,网络i斜戋310的第二部分310b包括一个或多个较低的层, 例如层1-4的任意层。网络;t斜戋310的每个第p分310a和第二部分310b可包括 网络i斜戈310的4封可部分,在任意一个或多个网络层,在用户模式203、内核模式202, 或其组合,或在网络层的4封可部分或者指向网络层的接口点,或用户模式303和内核 模式302的^^可部分或指向用户模式303和内核模式302的^妄口点。0083

  350可以包括软件、硬件、或者软件和硬件的任意组合。在一个 实施例中,^誠器350在网络i斜戋310的任意点^誠网络通信,并且重定向或者发送 网络通信到由350或者客户端代理120所期望的、管理的或者控制的目的地。 例如j議器350可以冲誠第一网络的网络i斜戋310的网络通信并嫂送该网络通信 到设备200,用于在第二网络104 Ji^送。在一些实施例中,350包括含有诸 》4皮构建禾^殳计来与网络舉戌310对接并一同工作的网络驱动器的驱动器的任意类 型的4M器350。在一些实施例中,客户端代理120和/或^誠器350才剁乍在网络堆 栈310的一个或者多个层,诸如在传输层。在一个实施例中,350包括过滤器 驱动器、钩子机制、或者对接到网络堆栈的传输层的任意形式和类型的合适网络驱动器接口,诸如通过传输驱动器接口 (TDI)。在一些实施例中,350对接到诸如传输层的第 一协议层和诸如传输协议层之上的任意层的另 一个协议层,例如,应用协议层。在一个实施例中,4誠器350可以包^d蔓守网络驱动器接口规范 (NDIS)的驱动器,或者NDIS驱动器。在另一个实施例中,拔截器35Q可以包括樣吏 型过滤器或者迷你端口驱动器。在一个实施例中,4^1器350或其部分在内核模式 202中操作。在另一个实施例中,350或其部分在用户模式203中操作。在一 些实施例中,4^器350的一p分在内核模式202中操作,而##1器350的另-#分 在用户模式203中操怍。在其它实施例中,客户端代理120在用户模式203中操怍, ^it过4誠器350对接到内核模式驱动器、进程、服务、任务或者才刻乍系统的部分, 诸如以获取内核级数椐结构225。在其它实施例中,350为用户才莫式应用或者 餅,诸如应用。

  在一个实施例中,350拦截任意的传输层连接请求。在这些实施 例中,^誠器350 ^^亍传输层应用编程^妻口 (API)调用以设置目的信息,诸如到期 望位置的目的IP地址和/或端口用于定位。在此方式中,35(H^并且重定向 传输层连接到由350或者客户端代理120控制或者管理的IP地址和端口。在 一个实施例中,350设置用于到客户端102的本地IP地址和端口的连接 的目的信息,其中客户端代理120正在监听该客户端102的本地IP地iih和端口 。例 如,客户端4里12 0可以包括为重定向的传输层通信监听^i也IP地址和端口的代理 月1务。在一些实施例中,客户端^5里120 P紹将重定向的传输层通信传送到设备200。0085

  在一些实施例中,4誠器35M誠&i^服务(DNS)请求。在一个实施 例中,客户端f^里120和/或4誠器350解析DNS请求。在另一个实施例中,才議器 发i^斤拉截的DNS请求到设备200用于DNS解析。在一个实施例中,设备200解析 DNS请求并且将DNS响应通信到客户端^J里120。在一些实施例中,设备200经另一 ^i殳备200,或者DNS月良务器106来解析DNS请求。0086

  .在又一个实施例中,客户端代理120可以包括两个代理120和120,。 在一个实施例中,第一代理120可以包括在网络堆栈310的网络层操作的350。 在一些实施例中,第一代理120拦截诸如因特网控制消息协议(工CMP)请求(例如, 查马纣口^^宗路由)的网络层请求。在其它实施例中,第二代理120,可以在传输层操 作并JU誠传输层通信。在一些实施例中,第一^j里120在网络i斜戋21Q的一层4誠 通信并且与第二代理120,对接或者将所4誠的通信传彩條二代理120,。0087

  客户端代理120和/或350可以以对网络i^戋310的任意其它协i^透明的方式在协i^操作或与力巾接。例如,在一个实施例中,350可以 以对诸如网络层的传输层之下的任意协i50^^i者如^i舌、表示或应用层协议的传输层 之上的任意协i^J:透明的方式在网络i斜戋310的传输层操怍或与^^接。il^许网络 堆栈310的其它协议层如所期望的进行操作并无需修改以使用350。同样的, 客户端^J里120和/或^誠器350可以与传输层对接以^N优化、力口速、路由或者 负载平衡通过由传输层承载的^协R/斤提供的^—通信,诸如TCP/IP上的^-~应 用层协议。0088

  此外,客户端代理120和/或可以以对任意应用、客户端102的 用户和与客户端102通信的诸如服务器的任意其它计算装置透明的方式在网绍J斜戋 310上操作或与^5十接。客户端代理120和/或350可以以无需纟l^t^用的方 式被安^f。/或扭軒^:户端102上。在一些实施例中,客户端102的用户或者与客 户端102通信的计算装置未意识到客户端代理120和/或350的存在、扭軒或 者操作。同样的,在一些实施例中,客户端代理120和/或350以对应用、客 户端102的用户、诸如服务器的另一个计算装置、或者由350对接到的协i^ 之上和/或之下的任意协ii^透明的方式被安装、i^亍、和/或操作。0089

  客户端代理120包括加速程序302、流客户端306和/或收集代理304。 在一个实施例中,客户端代理120包括由Florida, Fort Lauderdale的Citrix Systems Inc.开发的独立计算架构(ICA)客户端或其任一部分,并且也指ICA客户端。 在一些实施例中,客户端120包括应用流客户端306,用于/人月良务器106流式 传输应用到客户端102。在一些实施例中,客户端代理120包括加速程序302, 用于加速客户端102和服务器106之间的通信。在另一个实施例中,客户端 代理120包括收集代理304,用于执行端点检测/扫描并且收集用于设备200 和/或力良务器106的端点信息。0090

  在一些实施例中,力口速禾辨302包括客户端侧加速禾辨,用于^uf亍一 个或多个加速技术以加速、增强或以其它方法改#户端与月良务器106的通信和/或 对服务器106的访问,例iai方问由月良务器106才是供的应用。力口速程序302的可^f亍指 令的逻辑、功能和/或才剁乍可以^^亍一个或多个以下的加速技术l)多协iJOi缩,2) 传输控制协议池,3)传输控制协议多路U^, 4)传输控制协议緩冲,以及5)通过 高速緩存管理器的高速緩冲。另夕卜,力口速程序302可才W亍由客户端102接收和/或发 送的^i可通信的加密和/或解密。在一些实施例中,力口速程序302以集成的方式或者 格式#^亍一个或者多个加速技术。另夕卜,力口速牙踏302可以在作为传输层协议的网络包的有效载荷所7lC载的任意协议或者多协iJUl^f亍压缩。0091

  流客户端306包括用于接收和执行从服务器106所流式传输的 应用的应用、程序、进程、服务、任务或者可执行指令。服务器106可以流 式传输一个或者多个应用数据文件到流客户端306,用于播放、执行或者以其 它方式引起客户端102上的应用被执行。在一些实施例。