用于提供多模式传输层压缩的系统和方法_4

文档序号:8322270阅读:来源:国知局
客户端102或者vServer275并与 之通信的任意程序、应用、进程、任务或者可执行指令集。例如,服务275可以包括web服务 器、http服务器、ftp、电子邮件或者数据库服务器。在一些实施例中,服务270是守护进程 或者网络驱动器,用于监听、接收和/或发送用于应用的通信,诸如电子邮件、数据库或者 企业应用。在一些实施例中,服务270可以在特定的IP地址、或者IP地址和端口上通信。
[0074] 在一些实施例中,vServer275应用策略引擎236的一个或者多个策略到客户端 102和服务器106之间的网络通信。在一个实施例中,该策略与vServer275相关。在另 一个实施例中,该策略基于用户或者用户组。在又一个实施例中,策略为通用的并且应用到 一个或者多个vServer275a-275n和通过设备100通信的任意用户或者用户组。在一些实 施例中,策略引擎的策略具有基于通信的任意内容应用该策略的条件,通信的内容诸如互 联网协议地址、端口、协议类型、包中的首部或者域、或者通信的上下文,诸如用户、用户组、 vServer275、传输层连接、和/或客户端102或者服务器106的标识或者属性。
[0075] 在其它实施例中,设备200和策略引擎236通信或者对接,以确定远程用户或者远 程客户端102访问计算环境15、应用、和/或来自服务器106的数据文件的验证和/或授 权。在另一个实施例中,设备200和策略引擎236通信或者对接,以确定远程用户或者远程 客户端102的验证和/或授权来使得应用传送系统190传送一个或者多个计算环境15、应 用、和/或数据文件。在又一个实施例中,设备200基于远程用户或者远程客户端103的策 略引擎236的验证和/或授权来建立VPN或者SSLVPN连接。在一个实施例中,设备102 基于策略引擎236的策略来控制网络业务和通信会话的流。例如,设备200可以基于策略 引擎236来控制对计算环境15、应用或者数据文件的访问。
[0076] 在一些实施例中,vServer275与客户端102经客户端代理120建立传输层连接, 诸如TCP或者UDP连接。在一个实施例中,vServer275监听和接收来自客户端102的通 信。在其它实施例中,vServer275与客户端服务器106建立传输层连接,诸如TCP或者UDP 连接。在一个实施例中,vServer275建立到运行在服务器106上的服务器270的互联网 协议地址和端口的传输层连接。在另一个实施例中,vServer275将到客户端102的第一 传输层连接与到服务器106的第二传输层连接相关联。在一些实施例中,vServer275建 立到服务器106的传输层连接池并且经由池化的传输层连接多路复用客户端请求。
[0077] 在一些实施例中,设备200提供客户端102和服务器106之间的SSLVPN连接280。 例如,第一网络102上的客户端102请求建立到第二网络104'上的服务器106的连接。在 一些实施例中,第二网络104'是不能从第一网络104路由的。在其它实施例中,客户端102 位于公用网络104上,并且服务器106位于专用网络104'上,例如企业网。在一个实施例 中,客户端代理120拦截第一网络104上的客户端102的通信,加密该通信,并且经第一传 输层连接发送该通信到设备200。设备200将第一网络104上的第一传输层连接与到第二 网络104上的服务器106的第二传输层连接相关联。设备200接收来自客户端代理102的 所拦截的通信,加密该通信,并且经第二传输层连接发送该通信到第二网络104上的服务 器106。第二传输层连接可以是池化的传输层连接。同样的,设备200提供用于两个网络 104、104'之间的客户端102的端到端安全传输层连接。
[0078] 在一个实施例中,设备200寄载虚拟专用网络104上的客户端102的内联网互联 网协议或者intranetIP282地址。客户端102具有本地网络识别符,诸如互联网协议(IP) 地址和/或第一网络104上的主机名称。当经设备200连接到第二网络104',对于第二网 络104'上的客户端102,设备200建立、分配或者以其它方式提供intranetIP,其是网络识 别符,诸如IP地址和/或主机名称。设备200在第二或者专用网络104'上监听和接收使用 客户端建立的intranetIP282的指向客户端102的任意通信。在一个实施例中,设备200 用作或者代表第二专用网络104上的客户端102。例如,在另一个实施例中,vServer275 监听和响应到客户端102的intranetIP282的通信。在一些实施例中,如果第二网络104' 上的计算装置100发送请求,设备200如同客户端102 -样来处理该请求。例如,设备200 可以响应对客户端intranetIP282的查验。在另一个实施例中,设备可以与请求和客户端 intranetIP282连接的第二网络104上的计算装置100建立连接,诸如TCP或者UDP连接。
[0079] 在一些实施例中,设备200提供一个或者多个以下加速技术288以在客户端102 和服务器106之间通信:1)压缩;2)解压缩;3)传输控制协议池;4)传输控制协议多路复 用;5)传输控制协议缓冲;和6)高速缓存。在一个实施例中,设备200通过开启与每一服 务器106的一个或者多个传输层连接并且维持这些连接以允许由客户端经因特网的重复 数据访问,来为服务器106缓解由重复开启和关闭到客户端102的传输层连接所带来的许 多处理负载。该技术在此处被称为"连接池"。
[0080] 在一些实施例中,为了无缝拼接从客户端102经池化的传输层连接到服务器106 的通信,设备200通过在传输层协议级修改序列号和确认号来翻译或多路复用通信。这被 称为"连接多路复用"。在一些实施例中,不需要应用层协议交互作用。例如,在入站包(即, 从客户端102接收的包)的例子中,包的源网络地址被改变到设备200的输出端口的地址, 并且目的网络地址被改变到指定的服务器的地址。在出站包(即,从服务器106接收的包) 的例子中,源网络地址从服务器106的地址被改变为设备200的输出端口的地址,并且目的 地址从设备200的地址被改变到请求客户端102的地址。包的序列号和确认号也被翻译为 到客户端102的设备200的传输层连接上的客户端102所期待的序列号和确认。在一些实 施例中,传输层协议的包校验和被重新计算以计及这些翻译。
[0081] 在另一个实施例中,设备200提供转换或者负载平衡功能性284用于客户端102 和服务器106之间的通信。在一些实施例中,基于层4或者应用层请求数据,设备200分发 业务并且将客户端请求指向服务器106。在一个实施例中,尽管网络层或者网络包的层2识 别目的服务器106,但设备200确定服务器106利用传输层包的有效载荷所承载的应用信息 和数据来分发网络包。在一个实施例中,设备200的健康监控程序216监控服务器的健康 来确定分发客户端请求用于哪个服务器106。在一些实施例中,如果设备200探测到服务 器106不可用或者具有超过预定阈值的负载,设备200可以将客户端请求指向或者分发到 另一个服务器106。
[0082] 在一些实施例中,设备200用作域名服务(DNS)解析器或者以其它方式提供来自 客户端102的DNS请求的解析。在一些实施例中,设备拦截由客户端102发送的DNS请求。 在一个实施例中,设备200以设备200所寄载的或其IP地址来响应客户端的DNS请求。在 此实施例中,客户端102发送用于域名的网络通信到设备200。在另一个实施例中,设备200 以第二设备200'所寄载的或其IP地址来响应客户端的DNS请求。在一些实施例中,设备 200使用由设备200确定的服务器106的IP地址来响应客户端的DNS请求。
[0083] 在又一个实施例中,设备200提供用于客户端102和服务器106之间通信的应用 防火墙功能性290。在一个实施例中,策略引擎236提供用于探测和阻断非法请求的规则。 在一些实施例中,应用防火墙290防御拒绝服务(DoS)攻击。在其它实施例中,设备检查所 拦截的请求的内容,以识别和阻断基于应用的攻击。在一些实施例中,规则/策略引擎236 包括一个或者多个应用防火墙或者安全控制策略,用于提供保护各种类别和类型的基于 web或者因特网的漏洞,诸如以下一个或者多个:1)缓冲溢出,2)CGI-BIN参数操纵,3)表格 /隐藏域操纵,4)强迫浏览,5)c〇〇kie或者会话中毒,6)中断的访问控制列表(ACL)或者弱 的口令,7)跨站脚本攻击(XSS),8)命令注入,9)SQL注入,10)错误触发敏感信息漏,11)密 码学的不安全使用,12)服务器误配置,13)后门和调试选项,14)web站点毁损,15)平台或 者操作系统漏洞,和16)零天攻击。在实施例中,应用防火墙290为以下一个或者多个以检 查或者分析网络通信的形式来提供HTML格式域保护:1)返回所需要的域,2)不允许增加的 域,3)只读和隐藏域施行,4)下拉列表和单选按钮域一致,5)表域最大长度施行。在一些实 施例中,应用防火墙290确保没有修改cookie。在其它实施例中,应用防火墙290通过执行 合法的URL来防御强迫浏览。
[0084] 在又另一些实施例中,应用防火墙290保护包括在网络通信中的任意机密信息。 应用防火墙290可以根据引擎236的规则或者策略来检查或者分析任意网络通信,以识别 网络包的任一域中的任一机密信息。在一些实施例中,应用防火墙290识别网络通信中的 信用卡号、口令、社会安全号码、名称、患者号码、接触信息和年龄的一个或者多个的出现。 网络通信的编码部分可以包括这些出现或者机密信息。基于这些出现,在一个实施例中,应 用防火墙290可以采取作用于网络通信上的策略,诸如阻止网络通信的发送。在另一个实 施例中,应用防火墙290可以重写、移动或者以其它方式掩蔽该所识别的出现或者机密信 息。
[0085] C.客户端代理
[0086] 现在看图3,描述客户端代理120的实施例。客户端102包括客户端代理120,用 于经网络104与设备200和/或服务器106来建立和交换通信。总的来说,客户端102在 计算装置100上操作,该计算装置100拥有带有内核模式302以及用户模式303的操作系 统,以及带有一个或多个层310a-310b的网络堆栈310。客户端102可以已经安装和/或执 行一个或多个应用。在一些实施例中,一个或多个应用可通过网络堆栈310与网络104通 信。诸如web浏览器的应用之一也可包括第一程序322。例如,可在一些实施例中使用第一 程序322来安装和/或执行客户端代理120,或其中任意部分。客户端代理120包括拦截机 制或者拦截器350,用于拦截经由网络堆栈310来自一个或者多个应用的网络通信。
[0087] 客户端102的网络堆栈310可包括任何类型和形式的软件、或硬件或其组合,用于 提供与网络的连接和通信。在一个实施例中,网络堆栈310包括用于网络协议组的软件实 现。网络堆栈310可包括一个或多个网络层,例如为本领域技术人员所公认和了解的开放 式系统互联(OSI)通信模型的任何网络层。同样的,网络堆栈310可包括任意类型和形式 的协议,这些协议用于OSI模型的任何以下层:1)物理链路层,2)数据链路层,3)网络层, 4)传输层,5)会话层,6)表示层,以及7)应用层。在一个实施例中,网络堆栈310可包括在 互联网协议(IP)的网络层协议上的传输控制协议(TCP),通常称为TCP/IP。在一些实施例 中,可在Ethernet协议上承载TCP/IP协议,Ethernet协议可包括IEEE广域网(WAN)或局 域网(LAN)协议的任何族,例如被IEEE802. 3覆盖的那些协议。在一些实施例中,网络堆 栈310包括任何类型和形式的无线协议,例如IEEE802. 11和/或移动互联网协议。
[0088] 考虑基于TCP/IP的网络,可使用任何基于TCP/IP的协议,包括消息应用编程接口 (MAPI)(电子邮件)、文件传输协议(FTP)、超文本传输协议(HTTP)、通用因特网文件系统 (CIFS)协议(文件传输)、独立计算框架(ICA)协议、远程桌面协议(RDP)、无线应用协议 (WAP)、移动IP协议,以及IP语音(VoIP)协议。在另一个实施例中,网络堆栈310包括任 何类型和形式的传输控制协议,诸如修改的传输控制协议,例如事务TCP(T/TCP),带有选择 确认的TCP(TCP-SACK),带有大窗口的TCP(TCP-LW),拥塞预测协议,例如TCP-Vegas协议, 以及TCP电子欺骗协议。在其它实施例中,任何类型和形式的用户数据报协议(UDP),例如 IP上UDP,可被网络堆栈310使用,诸如用于语音通信或实时数据通信。
[0089] 另外,网络堆栈310可包括支持一个或多个层的一个或多个网络驱动器,例如TCP 驱动器或网络层驱动器。网络驱动器可被包括作为计算装置100的操作系统的一部分或者 作为计算装置1〇〇的任何网络接口卡或其它网络访问组件的一部分。在一些实施例中,网 络堆栈310的任何网络驱动器可被定制、修改或调整以提供网络堆栈310的定制或修改部 分,用来支持此处描述的任何技术。在其它实施例中,设计并构建加速程序120以与网络堆 栈310协同操作或工作,上述网络堆栈310由客户端102的操作系统安装或以其它方式提 供。
[0090] 网络堆栈310包括任何类型和形式的接口,用于接收、获得、提供或以其它方式访 问涉及客户端102的网络通信的任何信息和数据。在一个实施例中,网络堆栈310的接口 包括应用编程接口(API)。接口也可包括任何函数调用、钩子或过滤机制、事件或回调机制、 或任何类型的接口技术。网络堆栈310通过接口可接收或提供与网络堆栈310的功能或操 作相关的任何类型和形式的数据结构,例如对象。例如,数据结构可包括涉及到网络包的信 息和数据,或一个或多个网络包。在一些实施例中,数据结构包括在网络堆栈310的协议层 处理的网络包的一部分,例如传输层的网络包。在一些实施例中,数据结构325包括内核级 数据结构,而在其它实施例中,数据结构325包括用户模式数据结构。内核级数据结构可包 括在内核模式302中操作的网络堆栈310的部分获得的或涉及的数据结构,或者运行在内 核模式302中的网络驱动器或其它软件,或者通过在操作系统的内核模式中运行或操作的 服务、进程、任务、线程或其它可执行指令获得或接收的任何数据结构。
[0091] 此外,网络堆栈310的一些部分可在内核模式302中执行或操作,例如,数据链路 或网络层,而其它部分在用户模式303中执行或操作,例如网络堆栈310的应用层。例如,网 络堆栈的第一部分310a可为应用提供对网络堆栈310的用户模式的访问,而网络堆栈310 的第二部分310a提供对网络的访问。在一些实施例中,网络堆栈的第一部分310a可包括 网络堆栈310的一个或多个更上层,例如层5-7的任意层。在其它实施例中,网络堆栈310 的第二部分310b包括一个或多个较低的层,例如层1-4的任意层。网络堆栈310的每个第 一部分310a和第二部分310b可包括网络堆栈310的任何部分,在任意一个或多个网络层, 在用户模式203、内核模式202,或其组合,或在网络层的任何部分或者指向网络层的接口 点,或用户模式303和内核模式302的任何部分或指向用户模式303和内核模式302的接 口点。
[0092] 拦截器350可以包括软件、硬件、或者软件和硬件的任意组合。在一个实施例中, 拦截器350在网络堆栈310的任意点拦截网络通信,并且重定向或者发送网络通信到由拦 截器350或者客户端代理120所期望的、管理的或者控制的目的地。例如,拦截器350可以 拦截第一网络的网络堆栈310的网络通信并且发送该网络通信到设备200,用于在第二网 络104上发送。在一些实施例中,拦截器350包括含有诸如被构建和设计来与网络堆栈310 对接并一同工作的网络驱动器的驱动器的任意类型的拦截器350。在一些实施例中,客户 端代理120和/或拦截器350操作在网络堆栈310的一个或者多个层,诸如在传输层。在 一个实施例中,拦截器350包括过滤器驱动器、钩子机制、或者对接到网络堆栈的传输层的 任意形式和类型的合适网络驱动器接口,诸如通过传输驱动器接口(TDI)。在一些实施例 中,拦截器350对接到诸如传输层的第一协议层和诸如传输协议层之上任意层的另一个协 议层,例如,应用协议层。在一个实施例中,拦截器350可以包括遵守网络驱动器接口规范 (NDIS)的驱动器,或者NDIS驱动器。在另一个实施例中,拦截器350可以包括微型过滤器 或者迷你端口驱动器。在一个实施例中,拦截器350或其部分在内核模式202中操作。在另 一个实施例中,拦截器350或其部分在用户模式203中操作。在一些实施例中,拦截器350 的一部分在内核模式202中操作,而拦截器350的另一部分在用户模式20
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1