CN101729354B - 使用隧道加速数据通信的方法 - Google Patents

使用隧道加速数据通信的方法 Download PDF

Info

Publication number
CN101729354B
CN101729354B CN2009102041823A CN200910204182A CN101729354B CN 101729354 B CN101729354 B CN 101729354B CN 2009102041823 A CN2009102041823 A CN 2009102041823A CN 200910204182 A CN200910204182 A CN 200910204182A CN 101729354 B CN101729354 B CN 101729354B
Authority
CN
China
Prior art keywords
data
wan
tunnel
acceleration
acceleration equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2009102041823A
Other languages
English (en)
Other versions
CN101729354A (zh
Inventor
罗文平
李宏伟
潘义新
黄涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fortinet Inc
Original Assignee
Fortinet Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fortinet Inc filed Critical Fortinet Inc
Publication of CN101729354A publication Critical patent/CN101729354A/zh
Application granted granted Critical
Publication of CN101729354B publication Critical patent/CN101729354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Abstract

本文提供的方法和系统是用来增加在WAN环境中的应用性能,和加速数据通信。根据一个实施例,提供了一种用于安全加速网络业务的方法。在第一广域网(WAN)加速设备与第二WAN加速设备之间建立一个或多个隧道,该第一WAN加速设备被设置在公共网络与第一局域网(LAN)之间,该第二WAN加速设备被设置在第二LAN与公共网络之间。此后,通过(i)将第一LAN与第二LAN之间的多个数据通信会话多路复用到一个或多个隧道上,(ii)对该数据通信会话执行应用加速、传输加速和网络加速中的一个或多个,以及(iii)对该数据通信会话执行一种或多种安全功能,安全地加速在第一LAN与第二LAN之间交换的网络业务。

Description

使用隧道加速数据通信的方法
版权公告 
这里包含的资料内容是受到版权保护的。当它出现在专利和商标局的专利文件或记录中时,版权所有者并不反对任何人复制本专利的公开内容,然而在其他情形仍保留对版权的所有权利。 
Figure GSB00000674491200011
飞塔公司(Fortinet,Inc)。 
技术领域
本发明的实施例一般涉及数据通信的加速。特别地,本发明的实施例涉及在边缘业务加速设备之间使用面向连接隧道和/或无连接型隧道,基于数据流的分类对数据流施加应用加速、传输加速和/或网络加速,从而实现广域数据服务(WDS)。 
背景技术
关于在企业联合网的广域网(WAN)上的应用性能和活动内容,企业联合网正面临着重大问题。WAN性能问题主要是由应用协议开销和等待时间、传输控制协议(TCP)开销和等待时间以及有限的WAN带宽所造成的。另外,有些应用级协议需要进行少量的请求/响应交互,这些交互在局域网(LAN)环境中的工作正常,但是在WAN环境中的执行情况很差。 
因此,本领域存在着对改进的WAN加速解决方案的需要。 
发明内容
本文叙述的方法和系统是用于增加在WAN环境中的应用性能和加速数据通信。根据一个实施例,提供一种用于安全地加速网络业务的方法。在第一广域网(WAN)加速设备与第二WAN加速设备之间建立一个或多个隧道,该第一广域网加速设备被设置在公共网络与第一局域网(LAN)之间,该第二广域网加速设备被设置在第二LAN与公共网络之间。此后,通过(i)将在第 一LAN与第二LAN之间的多个数据通信会话多路复用到一个或多个隧道上,(ii)对该多个数据通信会话执行应用加速、传输加速和网络加速中的一个或多个,以及(iii)对该多个数据通信会话执行一种或多种安全功能,安全地加速在第一LAN和第二LAN之间交换的网络业务。 
在前述实施例中,第一WAN加速设备可以是在第一LAN的客户机系统内运行的逻辑装置。 
在前述实施例的各种实例中,第二WAN加速设备可以是在第二LAN的客户机系统内运行的逻辑装置。 
在各种前述实施例的上下文中,该一个或多个隧道可以包括面向连接隧道。 
在一些情况下,该一个或多个隧道可以包括无连接型隧道。 
在前述实施例的各种实例中,该一个或多个隧道可以包括一个或多个专用隧道。 
在各种前述实施例的上下文中,隧道的建立可以包括:响应第一WAN加速设备或者第二WAN加速设备将其它设备识别为对等WAN加速设备,自动地建立一个或多个隧道。 
在一些实例中,隧道的建立可以包括在确定该多个数据通信会话中的一个或多个数据通信会话将会受益的结果之后,建立一个或多个隧道。 
在各种前述实施例的上下文中,可以通过一个或多个应用代理来执行应用加速,该应用代理被实现在第一WAN加速设备和第二WAN加速设备内。 
在前述实施例的各种实例中,传输加速包括用于提高在高等待时间或高损耗链路上的传输控制协议(TCP)性能的技术,这包括但并不局限于TCP连接池、TCP窗口缩放、选择性确认(SACK)、往返测量和高速TCP中的一种或多种。 
在一些情况下,网络加速包括分组级的带宽压缩技术,这包括数据简化、数据压缩和分组合并中的一种或多种。 
在各种前述实施例的上下文中,该一个或多个安全功能可以包括防病毒扫描、web过滤、滥发资料检测、防火墙和防止侵入中的一种或多种。 
本发明的其它实施例提供了一种由网络设备的一个或多个处理器可读取的程序存储设备,其有形地包含由一个或多个处理器可执行的指令程序,该指 令程序用于为了安全地加速广域网(WAN)业务而执行方法步骤。该方法步骤包括:通过WAN在网络设备与对等WAN加速设备之间建立一个或多个隧道,该WAN耦合该网络设备和对等WAN加速设备,以进行通信。并且,通过(i)将在网络设备与对等WAN设备之间的多个数据通信会话多路复用到一个或多个隧道上,(ii)对该多个数据通信会话执行应用加速、传输加速和网络加速中的一个或多个,以及(iii)对该多个数据通信会话执行一种或多种安全功能,安全地加速在该网络设备与对等WAN设备之间交换的网络业务。 
在前述的实施例中,该网络装置可以是客户机系统、网络安全设备或网关。 
本发明实施例的其它特征将从附图和后面的详细叙述中更明显得到。 
附图说明
在附图中的视图中借助举例方式对本发明的实施例进行描述,这些实施例并非起局限作用,附图中类似的参考数字将表示类似的元件,其中: 
图1是从概念上描述可以应用本发明实施例的简化网络拓扑的框图。 
图2是从概念上描述根据本发明各种实施例的WAN加速功能的抽象结构的框图。 
图3描述了根据本发明实施例的对WAN加速应用的输入路径(in-path)模式配置方案。 
图4描述了根据本发明实施例的对WAN加速应用的重定向模式配置方案。 
图5描述了根据本发明实施例的对WAN加速应用的负载均衡模式配置方案。 
图6是从概念上描述根据本发明一个实施例的在WAN加速应用的各种功能单元之间交互的框图。 
图7是从概念上描述根据本发明一个实施例的如何在各种协议层上处理分组的框图。 
图8是从概念上描述根据本发明一个实施例的对于业务处理的代理构架的框图,以实现WAN优化。 
图9是可以使用本发明实施例的计算机系统的实例。 
图10是描述根据本发明实施例的加速处理的流程图。 
具体实施方式
本文叙述了用来增加在WAN环境中的应用性能和加速数据通信的方法和系统。根据一个实施例,可以对在通过WAN耦合的局域网(LAN)段之间的数据通信会话使用三种业务优化,这些业务优化包括应用加速、传输加速和网络加速。这些业务优化可以独立地工作或者彼此结合地工作,这取决于在网络上发送的业务的特性和工作负荷。与现有的WAN加速解决方法对比,本发明的实施例(i)通过在对等WAN加速设备之间建立的共享的面向连接和/或无连接型隧道上多路复用多个数据通信会话,寻求实现改善数据简化的结果,并(ii)额外地提供网络安全功能和/或应用安全集成,诸如防病毒扫描、Web过滤、滥发资料检测等,这通常需要单独的设备。 
同时,尽管为了叙述的目的,本发明的各种实施例是在WAN加速应用的上下文(context)中进行论述,然而我们应当认识到,本发明的实施例可以被实现和配置在各种其它的虚拟或实体网络装置或设备的上下文中,这些网络装置或设备可以被逻辑地配置在LAN段与公共网络之间,诸如网络网关、网络安全设备、虚拟专用网(VPN)网关等。另外,我们应当认识到,例如,本文叙述的WAN加速解决方案还可以作为软件代理,运行在与应用客户机相同的计算机系统上,从而允许远程用户例如采用加速方式与数据中心交换数据。可以在其中整合本文所叙述的WAN加速功能的现有安全代理的实例包括,可以从加利福尼亚州森尼韦尔(Sunnyvale)市的飞塔公司中获得的端点安全解决方案的FortiClientTM系列。因此,在一个实施例中,可以在应用安全集成模型中提供WAN加速。 
类似地,虽然出于简洁的目的,本发明的实施例叙述了关于服务器信息块(SMB)/通用网际文件系统(CIFS),但是本文所叙述的方法和系统同样可以适用于其它远程文件-系统访问协议,诸如Samba、网络文件系统(NFS)、不完全NFS(NQNFS)、优化远程文件-系统访问(ORFA)、Apple文件协议(AFP)、NetWare核心协议(NCP)、Kerberos、远程文件系统(RFS)、OS/400文件服务器文件系统(QFileSvr.400)。 
在后面的叙述中,为了提供对本发明实施例的全面理解,公开了许多特定的详细内容。然而,本领域的技术人员将明白,在不具有这些具体细节中的某 些细节的情况下,也可以实现本发明的实施例。在其它实例中,采用框图的形式显示了周知的结构和设备。 
本发明的实施例包括将在下文叙述的各种步骤。这些步骤可以通过硬件部件来执行,或者可以以机器可读指令的形式体现,这些步骤可以被用于产生使用指令编程的通用或专用处理器,用于执行这些步骤。可替换地,也可以通过硬件、软件、固件和/或操作人员的组合来执行这些步骤。 
本发明的实施例可以作为计算机程序产品来提供,这些产品可以包括其上存储指令的机器可读介质,这些指令可以被用于为计算机(或其它电子装置)设计执行过程的程序。该机器可读介质可以包括但并不局限于,软盘、光盘、只读光盘存储器(CD-ROM)、和磁光盘、ROM、随机访问存储器(RAM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或者适合于存储电子指令的其它类型的媒介/机器可读介质。而且,本发明的实施例还可以作为计算机程序产品来下载,其中可以借助嵌入载波或其它传播媒介的数据信号的方式,将该程序经由通信链路(例如,调制解调器或网络连接)从远程计算机传送给请求的计算机。 
术语
下文提供了在本申请的全文中使用的术语的简短定义。 
短语“CIFS预读”一般是指用于将读操作流水线化的技术。例如,当用户在对文件进行工作时,加速设备可以产生文件内的预读请求,以便将对于服务器的操作流水线化,这样就消除了与等待确认相关的往返延迟。这将与读操作相关的等待时间最小化。 
短语“CIFS迟写”一般是指用于将写操作流水线化的技术。例如,加速设备可以为客户将写操作流水线化,这样就消除了与等待确认相关的往返延迟。这将执行写操作所必需的往返数量最小化,在不冒险破坏数据完整性的情况下改善了性能。 
术语“客户机”一般是指在客户机/服务器关系中的应用、程序、过程和设备,客户机请求来自网络上的其它程序、过程或设备(服务器)的信息或服务。重要地,术语“客户机”和“服务器”都是相对的,这是由于对于一种应用来说,应用可以是客户机,但对于另一种应用来说,该应用可以是服务器。 术语“客户机”还包含有建立在请求的应用、程序、过程或设备与可能的服务器之间连接的软件,诸如电子邮件客户机。 
“通用网际文件系统”或首字母缩写词“CIFS”一般是指用于远程文件访问的协议,该协议是由Microsoft开发。CIFS是基于简单消息块(SMB)的协议,它允许打开和共享在因特网或基于网络的其它网际协议(IP)上的文件的最多应用。CIFS的一些特定性能包括文件存取、记录锁定、读/写特权、变化通知、服务器名称解析、请求批量、和服务器认证。CIFS是一种完全的“交谈(chatty)”协议,它需要上百次、或者甚至上千次的往返来成功地传输单个文件。当文件服务器被配置为在相同局域网(LAN)上的客户机时,这通常不是问题。然而,当在广域网(WAN)上使用CIFS时,正如在支局访问位于中央数据中心内的文件服务器的情况下,在WAN上的等待时间和带宽限制都可能不利地影响文件共享性能。 
术语“连接”或“耦合”以及相关的术语都是在操作意义上使用的,它们并不一定局限为直接的连接或耦合。 
短语“连接池”一般是指用于保持一组打开的连接的技术,用于减少与打开新的连接相关的开销。在本发明的实施例中,当客户建立了需要新的TCP连接的请求时,就可以使用已经打开的连接。很多TCP连接都是短期的,但是每个连接需要很多开销来启动通信。这种短期连接可以导致应用速度的显著减少。例如,载入单个普通的Web页面可能需要客户打开10个或更多的TCP连接。 
短语“数据压缩”一般是指用于减少存储或发送的数据量的技术。在一个实施例中,数据压缩被用来减少由遍历WAN的业务所消耗的带宽。“有效负荷”压缩使用了能够识别相对短的子节序列的算法,这些子节序列在时间上频繁地被重复。然后,可以将这些序列替换为较短的代码段,以便减少发送的数据大小。高级算法可以寻找到在分组上甚至流上的重复,例如基于字典的压缩。“报头”压缩通过使用专用的压缩算法来减少分组报头信息,就可以提供额外的带宽增益。 
短语“数据简化”一般是指这样一种技术,该技术可以被用来识别重复信息、并使用参考(reference)来代替该重复信息进行传送。例如,数据流中的重复信息可以实时被替换为它相对于本地数据存储器的参考(而不是在WAN 上再次发送它)。通过避免重复信息遍历WAN,实验的证据表明数据简化可以节约90%以上的WAN带宽。通过从本地数据存储器传送信息,数据简化有助于在WAN上提供与LAN相似的性能。 
短语“前向纠错”或首字母缩写词“FEC”一般是指用于改善在具有高损耗特性的WAN上应用性能的分组丢失缓解技术。FEC技术被适用于对网络层的分组进行操作,在类似命名的丢失缓解(loss mitigation)技术对较正物理层上的位差错的性能已经被人们众所周知之后,对FEC技术进行建模,该FEC技术被适用于对网络层上的分组进行操作。根据一个实施例,通过对在WAN上发送的每个“N”分组,增加附加的差错恢复分组来应用FEC。这个FEC分组包含有可以被用于重建在N个组内所有单个分组的信息。在WAN上传输分组时,如果这些N个分组中的一个分组出现丢失,就在WAN链路的远端使用FEC分组,用于重建丢失分组。这就消除了在WAN上重传丢失分组的需要,显著地减少了应用响应时间,并提高了WAN效率。在一些实施例中,在具有高分组丢失的环境中,可以响应链路状态的变化来动态调整FEC开销,以便获得最大效用。分组级FEC避免了由于多次往返重传所带来的延迟。这能够使WAN容易地恢复由于各种网络层状态所导致的分组丢失,这些状态是诸如排队溢出和受限的带宽链路。具有分组级FEC,企业通常会看到应用性能上的重大改进-在一些WAN环境中能够达到10倍的性能提升。 
短语“高速TCP”一般是指对TCP的拥塞控制机制的改进,该机拥塞控制用于具有大拥塞窗口的TCP连接。由于它的窗口-调整算法,在超过每秒100兆位时TCP性能开始恶化。在它的拥塞-避免阶段,在每个往返时间,普通的TCP将它的发送窗口增加一个分组。当TCP检测到拥塞时,它将窗口切成两半。对于高带宽、高等待时间的连接,这可以产生几百秒的等待时间。高速TCP改变了由于窗口绝对大小的作用,而在每个往返打开窗口、在出现拥塞事件时关闭窗口的方式。在窗口小的时候,高速TCP的行为完全类似普通的TCP。但是,在窗口大的时候,高速TCP增加更大数量的窗口,并将它减少较小的数量,其中,这些数量是根据操作中窗口的准确值来选择的。这些变化的效果是:TCP实现高的吞吐量,这对于丢包率具有更现实的要求。类似的,高速TCP对于在丢失事件之间往返时间的数量具有更现实的要求。 
短语“在一个实施例中”、“根据一个实施例”等等通常表示:在本发明 的至少一个实施例中包含有该短语后面的特定特征、结构或特性,这些特征、结构或特性也可能被包含在本发明一个以上的实施例中。重要的是,这种状态并不必需涉及相同的实施例。 
短语“网络网关”一般是指网际互连系统、一种将两个网络连接在一起的系统。“网络网关”可以完全采用软件、完全采用硬件、或这两种方式相结合的形式实现。根据特定的实施,网络网关可以操作在从应用协议到低级信令的OSI模型的任何级下。 
如果说明书中陈述了部件或特征“可以”、“可能”、“能够”或“也许”被包含或具有一种特性,那么该特定的部件或特征并不必需被包含或具有该特性。 
短语“分组合并”一般是指将在两个公共点之间传播的多分组,组合成单个合并(coalesced)分组。通过与报头压缩结合使用,这就分摊(amortize)多分组上的单个报头,从而减少开销,并因此减少带宽要求。分组合并被认为是特别有益于Web应用、基于语音IP(VoIP)、和交互式应用。分组合并还减少了遍历WAN的分组数量,从而减少了对这些分组总的等待时间。在假定带宽保持不变的情况下,分组越多,就需要更多的CPU功率来处理在沿着WAN路径的每个设备上的分组。 
术语“响应”包括完全和部分的响应。 
短语“往返测量”一般是指一种TCP机制,该TCP机制使用TCP往返时间测量选项来准确和有效地计算往返时间(RTT)。通过在一些重传超时(RTO)间隔重传没有被确认的段,TCP就实现可靠的数据传送。准确动态的确定合适的RTO对于TCP性能是很重要的。在使用该选项时,在所有的分组上设置时间戳(包括重传),而不是每个窗口使用单个采样。这将产生具有可忽略计算成本的更准确的RTO行为。 
短语“选择性确认”和首字母缩略词“SACK”一般是指一种使用TCP选择性确认选项的TCP机制。在一个实施例中,SACK向发送方提供在接收方排队的段和还没有到达的段的全貌(complete picture)。通过提供一种用于重传未确认的分组的机制,建立从丢失分组中恢复TCP的快速传发和快速恢复的算法。在每个窗口丢失一个以上分组的环境中,如果没有选择性确认,这些算法可能需要花费大量的带宽来重传分组,这种情况通常出现在长的WAN链 路(具有高等待时间)中。 
术语“服务器”一般是指在客户机/服务器关系中的应用、程序、过程或设备,该客户机/服务器关系对由网络上的其它程序、过程或设备(服务器)提出的信息或服务的请求作出响应。术语“服务器”还包括担当为信息服务或者尽可能地提供服务的作用的软件。术语“服务器”还包括担当为信息服务或者尽可能地提供服务的作用的软件。 
短语“TCP加速”一般是指用于提高在高等待时间(和损耗)链路上的TCP性能的技术,该技术包括但并不局限于TCP窗口缩放、选择性确认(SACK)、往返测量和高速TCP。 
短语“TCP窗口缩放”和“窗口缩放”一般是指一种使用窗口缩放TCP选项,来调整在TCP报头中发现的窗口大小值的技术。特别地,可以获得与1GB同样大的窗口尺度。TPC窗口确定在端(end)-系统停止之前有多少数据可以被传送,并等待接收分组的确认。TCP报头使用了16位字段向发送方报告接收窗口大小,发送方建立被限制在65,535字节上的静态窗口大小。如果TCP窗口小于等待时间和可用带宽的乘积,客户机就不能足够快的发送回确认。为了解决上述问题,本发明的实施例将TCP窗口调整成足够适合最大可用带宽乘以最大预期延迟。 
短语“Web高速缓存通信协议”或首字母缩略词“WCCP”一般是指一种规定在一个或多个路由器、加速设备、和/或高速缓冲存储器之间交互的协议。交互的目的是为了建立和保持流过一组设备的选择类型业务的透明重定向,优化资源利用率,并降低响应时间。 
图1是从概念上描述可以使用本发明实施例的简化网络拓扑的框图。在这个简例中,客户机120经由客户端的WAN加速设备115A和服务器端的WAN加速设备115B通过WAN 100与服务器130进行通信。WAN 100可以包括一个或多个公共网络,诸如是因特网、公共电信公司的线路、卫星、和/或专用网。 
本发明各种实施例的至少一个突出特性是一个或多个共享隧道的使用,该隧道是诸如共享的面向连接隧道105和共享的无连接型隧道110。正如下文更多的叙述,对等WAN加速设备115A和115B可以在彼此之间构成一个或多个隧道,这包括但并不局限于共享的面向连接隧道105、共享的无连接型隧道 110和一个或多个专用隧道111,用于促进WAN加速处理。 
在两个子网(LAN)可以通过WAN彼此访问的网络环境(例如,企业联合网)中,本发明的实施例包括在对等WAN加速设备115A与115B之间建立(在自动模式下或在请求式模式下)面向连接隧道和无连接型隧道中的一个或这两者,该WAN加速设备115A和115B运行在各自LAN段与WAN 100之间的边缘上。在一些实施例中,多个数据通信会话可以共享在WAN加速设备115A与115B之间的相同隧道。正如下文更多的叙述,在各种数据简化技术的上下文中,这种相同隧道的共享可以产生效用。 
在一些实施例中,在安全网关内或网络安全平台内实现和集成WAN加速设备115A和115B中的一个或这两者,该安全网关和网络安全平台还执行各种安全功能,这包括但并不局限于防病毒扫描、web过滤、滥发资料检测、防火墙、侵入检测和预防以及虚拟专用网(VPN)服务。可以在其中整合本文所叙述的WAN加速功能的现有系统的实例包括:可以从加利福尼亚州森尼韦尔的飞塔公司获得的网络安全平台的FortiGateTM系列。可替换地,WAN加速设备115A和115B中的一个或这两者也可以是不具有集成的网络安全功能的独立加速设备。 
图2是从概念上描述根据本发明各种实施例的WAN加速功能的抽象结构的框图。根据本实例,首先通过WAN加速设备(例如,WAN加速设备115A或115B)的策略引擎220接收输入210(例如,由客户机或服务器发起的分组,该分组是业务流或会话的一部分)。策略引擎220实现按照匹配的策略对特定业务流或会话进行分类的功能,并确定如何在WAN(例如,WAN 100)上加速业务。在一个实施例中,一部分策略引擎220是在内核中实现的,以便可以将不是作为WAN加速候选的业务简单地直接转发通过,而不进行加速。正如下文的更多叙述,如果业务在传输层或应用层被加速,那么内核可以将业务重定向到应用层,以便进行进一步的处理。在一些实施例中,各种应用过程可以执行策略引擎220的部分功能,以便获得期望级别的策略控制的细微程度)(granularity)。 
在叙述的实施例中,存在着可以在WAN上执行的三种业务优化,即,应用加速210、传输加速240和网络加速250。依据特定的实施,可以使用这些业务优化中的一种或多种。根据一个实施例,应用加速230实现一系列对期望 被加速的WAN协议的应用代理(未显示)。这些应用代理可以表示重要(但是在WAN上的运行不好)的协议,这些协议可以通过事务处理预测和预驻留特征被加速,诸如是通过例如Web对象预取、CIFS预读和迟写。在一个实施例中,应用代理被适用于识别相对稳定的数据块,这些数据块是诸如文件、图像、web页面等,同时也注意交互状态,以便这些应用代理可以通过对不同的协议数据使用正常的数据简化、数据压缩和服务质量(QoS),来更好的完成工作。 
传输加速240可以实现用于改善在高等待时间和高损耗链路上的传输协议(例如TCP)性能的功能。传输加速240还可以实现对短暂TCP连接的TCP连接池和通用(generic)TCP代理。 
通过使用数据简化、数据压缩、分组合并等,网络加速250就可以实现减少WAN上的带宽利用率、并提高分组级上的WAN性能的功能。在网络加速250中还可以实现QoS和业务整形。 
在一个简单的实施中,前述功能可以主要被实现在单处理器系统的应用层中。在更复杂的实施中,可以通过内核中运行上述的抽象功能的不同部分,来引入大量的并行性(parallelism),该内核具有在不同硬件功能单元上的多个中央处理单元。取决于网络上发送的数据特性和工作负荷以及特定实施,业务优化可以独立地工作或彼此组合工作。 
图3描述了根据本发明实施例的对WAN加速设备315A和315B的输入路径(in-path)模式配置方案。根据本实例中描述的示例性网络拓扑,两个LAN段,LAN 310和LAN 320经由WAN加速设备315A和315B以通信方式彼此耦合,该WAN加速设备315A和315B都是在LAN段上的客户机与服务器(未显示)之间的直达路径上。这种配置拓扑通常适合于总带宽在WAN加速设备315A和315B的限制内的位置。 
在本实例中,加速设备中央管理器311被显示为耦合到LAN 310。在本发明的各种实施例中,加速设备中央管理器311提供对可以分布在整个企业内的多个WAN加速设备的中央管理、监控和配置。 
根据一个实施例,加速设备中央管理器311对网络管理员提供可视性,例如关于如何在WAN上执行应用。例如,有关业务模式、带宽损耗和其它性能趋势的详细信息,都可以被提供给IT人员,以允许WAN资源得到更有效地 利用。在一个实施例中,加速设备中央管理器311尤其能够报告带宽损耗、高端通话(top talker)以及QoS策略正在如何影响整体应用的吞吐量。可以结合上述加速设备中央管理功能的现有系统的实例包括:可以从加利福尼亚州森尼韦尔的飞塔公司中获得的中央管理设备的FortiManagerTM系列。 
图4描述了根据本发明实施例的对WAN加速设备415A和415B的重定向模式的配置方案。根据本实例中描述的示例性网络拓扑,两个LAN段,LAN410和LAN 420经由交换机405A和405B彼此通信耦合。在这种重定向配置中,WAN加速设备415A和415B不是在LAN段上的客户机与服务器(未显示)之间的直达路径上。而是,WAN加速设备415A和415B分别经由WCCP/PBR链路406A和406B被分别耦合到交换机405A和405B。这种配置拓扑使用了分组重定向机制,将分组从交换机405A和405B分别定向到WAN加速设备415A和415B。示例性的重定向机制包括但并不局限于Web高速缓存通信协议(WCCP)和基于策略的路由(PBR)。 
例如,可以使用版本2的WWCP将任何类型的连接从多个路由器重定向到多个Web高速缓冲存储器。WCCP的中心概念是服务组,根据一个实施例,该服务组逻辑上是由路由器组成,该路由器是例如交换机405A、405B,或者该服务组逻辑上是由共同工作用于实现重定向和优化业务的路由器和相应的WAN加速设备415A、415B组成。使用根据本发明实施例的WWCP,通过(i)将相应的交换机405A、405B或路由器和WAN加速设备415A、415B增加到相同的服务组,(ii)WAN加速设备415A、415B将自身通知给相应的交换机405A、405B或路由器,(iii)交换机405A、405B接着对服务组的状态作出响应,和(iv)WAN加速设备415A、415B指示交换机405A、405B或路由器如何重定向业务,WAN加速设备415A、415B就可以优化业务, 
PBR是一种允许定义路由分组的策略、而不依赖于路由协议的路由器配置。PBR能够以接口方式启动。此后,检验到达PBR-启动接口的分组,以便查看它们是否匹配限定的策略。如果该分组匹配,那么就根据为策略限定的规则路由该分组(例如,该分组被重定向到专用网际协议(IP)地址,诸如相关的WAN加速设备415A、415B的IP地址),如果该分组没有匹配,就基于通常的路由表来路由分组。 
图5描述了根据本发明实施例的对WAN加速设备515A、515B、515C和 515X、515Y、515Z的负载均衡模式配置方案。根据本实例中描述的示例性网络拓扑,两个LAN段,LAN 510和LAN 520,经由加速设备负载均衡器505A和505B彼此通信耦合。在这种负载均衡配置中,加速设备负载均衡器505A和505B可以根据可配置的规则集合,自动地均衡分别相应的WAN加速设备组515A、515B、515C和515X、515Y、515Z之间的负载。 
根据一个实施例,加速设备负载均衡器505A和505B监视相应的WAN加速设备组中的各个WAN加速设备的处理新连接的能力。在一个实施例中,在配置负载均衡规则时,可以在每个规则中规定WAN加速设备的目标列表。匹配该规则的连接可以被重定向到该列表中的WAN加速设备。如果没有规则可以匹配,则在能够处理新连接的相应的WAN加速设备组中的那些WAN加速设备之间均衡这些连接;否则,可以简单地将所处理的连接传送通过网络,而不进行优化。 
我们应当认识到,尽管在图3、图4和图5的上下文中,在特定的视图中仅叙述了单个配置模式,但是如果需要的话也可以对配置模式进行混合和匹配。例如,一个企业站点可以使用一种重定向配置,另一个企业站点可以使用输入路径模式,而另外一个企业站点可以具有在负载均衡模式下配置的WAN加速设备。 
另外,在一些实施例中,可以额外地与上面提及的配置模式同时地使用冗余,以便即使在遇到一组冗余WAN加速设备中的一个加速设备的部件出现故障时,也能够确保优化的继续。例如,冗余WAN加速设备可以在有源-无源模式和有源-有源模式、这两种模式中的一种模式下操作。在有源-无源模式下,如果主WAN加速设备出现故障,备用的WAN加速设备就接管并开始处理所有的连接。在有源-有源模式下,一个或多个其它的备用WAN加速设备被预热,以便如果主WAN加速设备出现故障,这些WAN加速设备也能够无缝地继续进行优化。在一个实施例中,可以在一组WAN加速设备之间配置数据高速缓存同步,以便提供自动的同步和复制。 
图6是从概念上描述在根据本发明一个实施例的WAN加速设备的各种功能单元之间交互的框图。在本实例中,WAN加速设备600包括六个交互功能单元,即,配置和管理子系统610、WCCP服务模块615、业务处理子系统620、数据高速缓存同步模块625、数据高速缓存子系统630和数据压缩库。 
根据一个实施例,配置和管理子系统610实现命令行接口(CLI)、图形用户界面(GUI)和远程管理接口(RMI)中的一个或多个。加速设备中央管理器(例如,加速设备中央管理器311)可以使用RMI接口来接收用户配置,并适当地指示其它功能单元。配置和管理子系统610还可以提供服务,该服务用于将在高可用性(HA)配置中的配置与WAN加速设备600的永久性配置存储器进行同步化。 
WCCP服务模块615可以实现对路由器、交换机、网关等设备的WCCP服务,用于加速在WAN上传送的WCCP业务。 
数据高速缓存同步模块625可以实现在多个WAN加速设备之中的数据高速缓存同步服务,该服务尤其是用于促进预驻留(例如,软件补丁)、对于磁盘冗余和HA的同步、以及对于不同步的数据参考的恢复。 
根据一个实施例,业务处理子系统620截取网络业务,对分组进行分类,以便使用合适的安全策略和WAN加速技术,并执行安全保护,这种安全保护是诸如防病毒扫描、滥发资料检测和Web过滤,以便将这些分组更快和更安全的从发送方传递给接收方。业务处理子系统620还恢复数据流,并解码应用协议,然后,使用发送端的隧道协议,通过数据简化、压缩、和/或其它WAN加速技术来减少带宽利用率和传送延迟。在接收端,在将数据流转发到预期的目的地之前,通过解压缩和恢复等效的数据流,业务处理子系统620对隧道传输的业务进行翻译。 
数据压缩库635表示由WAN加速设备600和它的对等设备执行的压缩算法。在下文将进一步叙述各种压缩/解压缩技术的实例。 
在一个实施例中,数据高速缓存子系统630实现基于磁盘的数据程序块存储服务,用于存储指示在数据程序块与数据参考之间的关系的数据登记项。数据高速缓存子系统630还可以提供有效的方式,用于增加、查询、删除和更新对于其它子系统的数据登记项,该其它的子系统诸如是业务处理子系统620。在一些实施中,数据高速缓存子系统630接受服务请求,并以异步地方式通知请求方,以便获得更好的性能。数据高速缓存子系统630还可以实现一种使用新的登记项替换废弃的数据登记项的有效方式。 
在一个实施例中,上面提及的一个或多个功能单元中的功能可以采用各种组合形式进行组合。例如,可以组合数据高速缓存同步模块625和数据高速缓 存子系统630。而且,通过使用任何合适的通信方法(例如,通过一个或多个通信链路的消息传递、参数传递、和/或信号等),可以将这些功能单元通信耦合。而且,可以根据任何合适的互连结构(例如,全连接、超立方体等)物理地连接这些功能单元。 
根据本发明的实施例,这些功能单元可以是用于执行本文所述操作的任何合适类型的逻辑(例如,数字逻辑)。域本发明的实施例结合使用的任何功能单元可以包括机器可读介质,该机器可读介质包括了用于执行本文所述操作的指令。机器可读介质包括了以机器(例如,计算机)可读的形式提供(即,存储和/或传输)信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、电、光、声或其它形式的传播信号(例如,载波、红外线信号、数字信号等)、等等。 
图7是从概念上描述根据本发明一个实施例的在各种协议层上如何处理分组的框图。在本实例中,从IP层730、传输层720和应用层710中的业务流的观察角度来论述各种模块、子系统和/或功能性,以便提供不同的观点,并促进对本发明实施例的理解。 
IP层730包括输入接口734、输出接口735、流分类模块731、转发引擎732和IP隧道设备733。传输层720包括LAN套接口(socket)721、WAN套接口722和隧道套接口723。应用层730包括应用处理器711、通用TCP代理721和网络加速模块713。 
在输入接口734上接收由WAN加速设备处理的分组,在处理分组之后,经由输出接口735发送这些分组。特别地,输入接口734和输出接口可以是相同的一个接口。 
根据一个实施例,流分类模块731负责将输入的分组映射成合适的流。分组的每个流包括响应分组的兄弟流(sibling flow),该兄弟流在相反的方向上流动。这两种流被称为正向路径和反向路径。发起连接的方向被称为正向路径。这两种流的状态信息被存储在会话上下文(context)中,并且由正向和反向路径所共享。当分组不匹配现有的流时,基于一个或多个特性将分组分为新的会话上下文,该特性包括但并不局限于源地址、目的地地址和/或应用,并根据策略列表对分组进行匹配,以便获得合适的服务处理动作。 
流分类模块731可以接收(i)由本地客户机/服务器发起的分组,(ii) 由远程客户机/服务器(对应于面向连接的业务流)发起的分组,(iii)压缩和合并的分组(仍要由网络加速模块713进行处理),该分组对应由远程客户机/服务器发起的分组,(iv)由远程客户机/服务器发起的分组(对应于不是正在进行优化的无连接型业务流,或者对应于正在进行优化的业务流,但是在网络加速模块713的处理之后)。在情况(i)中,流分类模块731将分组经由LAN接口721传送给传输层720。在情况(ii)中,流分类模块731将分组经由WAN接口722传送给传输层720。在情况(iii)中,流分类模块731将分组经由隧道接口723传送给传输层720。在情况(iv)中,流分类模块731将分组传送给转发引擎732。 
转发引擎732执行QoS和业务整形、并将分组转发和重定向到IP隧道设备733。 
根据一个实施例,IP隧道设备735是虚拟设备,它适用于将已被标识为网络加速的候选的业务提供给应用层710,以便应用层710中的网络加速模块713执行正如下文进一步叙述的处理。关于意图在WAN上传输给对等WAN加速设备的无连接协议业务,IP隧道设备733对作为优化候选的分组进行排队,以便网络加速模块713进行处理。关于从对等WAN加速设备中接收的无连接协议业务,IP隧道设备733将已经由网络加速模块713处理的分组重定向到流分类模块713,以便进行合适的处理。 
现在返回到传输层720,LAN套接口721表示一种在客户机(例如,客户机120)或服务器(例如,服务器130)内执行的应用处理或线程,与由WAN加速设备(例如,WAN加速设备115A、115B)的操作系统所提供的TCP/IP协议栈之间的接口。 
WAN套接口722表示一种在面向连接的业务的对等WAN加速设备(例如,WAN加速设备115A和115B)之间的接口。在一个实施例中,WAN套接口722实现窗口缩放、往返测量、选择性ACK和高速TCP。 
隧道套接口723表示一种在无连接型业务的对等WAN加速设备(例如,WAN加速设备115A和115B)之间的接口。 
现在返回到应用层710,在一个实施例中,对于每个期望被加速的应用协议,应用处理器711包括用于执行协议专用加速的应用处理器。用于优化/加速的示例性应用协议目标包括但并不局限于,(i)web应用(例如,超文本 传送协议(HTTP)和基于安全套接字层的HTTP(HTTPS),Web2.0/Ajax),(ii)窗口文件共享(例如,通用网际文件系统(CIFS)、服务器消息模块(SMB)等),(iii)微软交换(例如,消息应用编程接口(MAPI)),(iv)文件传送协议(FTP),(v)简单邮件传送协议(SMTP)、邮局协议(POP)、因特网邮件存取协议(IMAP),(vi)数据库(例如,微软结构化查询语言(MS-SQL)、Oracle SQL等),(vii)数据复制(快速镜像、网络备份、MS备份)和(viii)企业资源计划(ERP)/客户关系管理(CRM)(例如,Lotus注释)。在一个实施例中,根据一种应用安全集成模式,可以在应用处理器711内实现各种安全功能,诸如防病毒扫描、滥发资料检测、web过滤等。 
在一个实施例中,每个应用处理器711处理特定的应用协议,并执行期望的协议优化。关于在WAN上被发送给对等WAN加速设备的应用协议业务,应用处理器711还可以应用数据简化和数据压缩,以便将由对应的应用层发出的数据转换为编码的数据块,这些数据块接着被转发给WAN接口722,以便在WAN上传输。关于来自对等WAN加速设备在WAN上接收的应用协议业务,应用处理器711应用数据解复制和数据解压缩,以便从由WAN接口722接收的编码数据块中恢复原始数据。根据一个实施例,应用处理器711还执行在WAN端上的TCP连接池。 
根据一个实施例,每个应用处理器能够处理来自套接口和WCCP的业务。这种业务处理一般是指强化数据库存取和处理器繁忙操作,诸如散列法和数据压缩。使用共享存储器和多进程,各种实施就可以利用多个处理器。可替换地,也可使用多线程来促进由每个应用处理器执行的散列和/或数据压缩。 
在各种实施例中,关于意图在WAN上传输的数据,通用TCP代理712应用数据简化和数据压缩,以便将原始数据转换为编码的数据块,这些数据块将被转发给WAN接口722。关于经由WAN接口722在WAN上接收的数据,通用TCP代理712应用数据解复制和数据解压缩,以便将从由WAN接口722接收的编码数据块中恢复原始数据。根据一个实施例,通用TCP代理712还执行在WAN端的TCP连接池。 
通用TCP代理712还可以考虑上面关于应用处理器711所提及的设计和实施目标。另外,通用TCP代理712可以主动读取数据,但是在一个实施例中,对于每个TCP连接,该通用TCP代理将不等待更多的数据,以便避免不 利地影响关于交互协议的用户体验。 
网络加速模块713可以执行数据简化、报头和数据压缩和/或分组合并。根据一个实施例,关于意图在WAN上传输给对等WAN加速设备的分组,网络加速模块713接收来自IP隧道设备733的分组,执行数据简化和数据压缩,以便将原始分组数据转换为编码的数据块,并对分组报头使用报头压缩。在一个实施例中,网络加速模块713还将多个压缩的分组合并成一个分组,并通过隧道接口723发送该经过压缩和合并的分组。根据一个实施例,关于经由隧道接口723来自对等WAN加速设备的WAN上接收的分组,网络加速模块713将从隧道接口723接收的每个分组转换成多个分组。然后,对于每个分组,网络加速模块713解压缩报头,使用数据解复制和数据解压缩,以便恢复原始分组。最后,网络加速模块713写入恢复的原始分组,并将它们写入到IP隧道接口733,以便进行重定向。 
图8是从概念上描述根据本发明一个实施例的业务处理的代理框架的框图,该业务处理是用于实现WAN优化。根据本实例,应用处理器与应用会话通用层830相连接,该应用处理器包括但并不局限于HTTP处理器805、CIFS处理器810、FTP处理器815和通用TCP处理器820。客户机/服务器880和对等设备890(例如,WAN加速设备115B)经由TCP端口855与WAN加速设备(例如,WAN加速设备115A)接口。应用会话通用层830隐藏来自应用处理器805、810、815、820和825的会话建立/拆卸处理。应用处理器805、810、815、820和825中的每一个可以实现特定的处理,诸如对相应的协议进行语法分析,以识别和标记数据对象、变换数据(例如,数据压缩)、操纵传输以对数据对象进行流线型传输,从而减少“交谈(chatty)”效应。 
根据一个实施例,TCP端口855实现通用TCP套接事件处理,这也包括读/写。应用连接和TCP隧道可以使用相同的TCP端口855。 
在一个实施例中,TCP端口855使用SSL层850来支持在对等设备之间的安全隧道。通过使用预先共享的安全密钥或数字证书,这些对等设备就可以进行彼此认证。一旦对等设备成功地进行彼此认证,就可以建立在对等设备之间的安全信道。 
SSL层850还可以用于加速SSL安全应用。根据一个实施例,SSL加速与现有方法的不同之处在于在下列的一个或多个方面:(i)使用在已经在 WAN上的两个对等设备之间建立的相同隧道内建立的安全信道,将协商的会话密钥传回到客户端设备,从而不再需要额外的连接,(ii)支持用于认证对等设备的两种认证方法(例如,预先共享安全密钥和数字证书),(iii)可以通过SSL或通过其它方式来保护隧道业务,该其它方式包括但并不局限于网际协议安全(IPSec)隧道,这取决于WAN加速设备的配置,和(iv)来自服务器端的设备的业务可以被配置成在SSL半模式(服务器SSL卸载)下的纯文本。 
应用会话通用层830经由隧道端口835、隧道层840、压缩管线845、SSL层850和TCP端口855,将应用处理器连接到对等设备890。隧道端口835实现在应用会话与TCP隧道之间的数据流。如上所述,在一个实施例中,多隧道端口835可以共享相同的TCP隧道。根据一个实施例,隧道端口IP被用于对来自隧道的数据进行多路复用或去多路复用。 
隧道层840实施用于建立/拆卸通过隧道的会话、认证隧道端点、以及对用于由数据简化模块860执行的数据简化的数据/存储器高速缓存进行同步的隧道协议。在一个实施例中,应用会话的数据和控制事件两者都通过该隧道协议进行交换。 
根据一个实施例,面向连接隧道和无连接型隧道都是通过对等WAN加速设备来建立。在一个实施例中,支持两种不同模式(例如,自动模式和请求式模式)的隧道建立。在自动模式下,对等设备将彼此识别为对等的,并且当它们之间不存在隧道时,继续建立面向连接隧道和无连接型隧道。然后该对等设备继续将该隧道保持活跃(alive)。在请求模式下,隧道建立被延迟,直到客户机向服务器发送需要隧道化以便得到加速的业务流。 
根据一个实施例,当客户机通过WAN发起与服务器的数据通信会话时,它成为由位于WAN与LAN之间的边缘处的业务加速设备截取的网络分组。通过将数据分组的分组报头字段、源地址、目的地地址、源端口、目的地端口和协议与数据流进行匹配,该业务加速设备识别与通信会话相关的特定数据分组。通常,将从客户机到服务器的数据流和从服务器到客户机的其反向数据流,组合成唯一的通信会话。当客户端处的设备截取到通信会话时,它就为该通信会话分配一个唯一的会话ID,该会话ID用于标记在该数据被注入隧道之前、属于该通信会话的数据,该隧道是在自动模式或请求式模式下建立的。因此, 多个数据通信会话可以共享在两个业务加速设备之间的相同隧道。当业务加速设备截取到数据通信开始时,它将在会话ID与分组报头字段之间的会话关联、通过隧道传送给对等设备。然后,对等设备将在其存储器中建立会话关联。对于在对等设备处的面向连接的数据通信会话,建立会话关联包括通过使用它自身的地址或客户机地址作为源地址,来形成与服务器的连接。 
一旦在两个设备处都建立了数据通信会话关联,可以由应用处理器或网络处理器来处理关联的数据流。可以通过将数据通信会话与一组预先定义的加速策略进行匹配来实现处理器的选择。在发送侧,应用处理的作用是通过套接口(socket)将数据分组转换成应用数据,并将数据流分类和标记成不同的数据变换级,以便可以使用不同的数据简化技术对穿过面向连接隧道的数据流进行加速。在接收侧,应用处理的作用是通过套接口将应用数据流转换成数据分组,以便接收方在不知道业务加速设备的情况下接收来自发送方的原始数据。应用处理器还可以控制数据流从数据发送方更快地提取数据,以便提高总的数据传输速度。网络处理器(例如,网络加速模块713)的作用是在数据分组被注入到发送侧的无连接型隧道之前,通过使用分组报头压缩和分组合并,将在相同两个站点(例如,LAN段)之间传播的多个用户分组组合成单个合并分组,从而减少在原始数据分组中的字节数量和原始数据分组的数量,并因此减少了对那些分组的等待时间。在接收侧,网络处理器的作用是从单个合并分组中恢复用户分组,并在将它们转发给接收机之前解压缩它们的报头。 
正如上面的说明,本发明的实施例可以使用一个或多个TCP隧道,以便通过使用各种技术来提高在高等待时间(和损耗)链路上的TCP性能,这些技术包括但并不局限于TCP窗口缩放、选择性确认(SACK)、往返测量和高速TCP。在一个实施例中,在一组数据通信会话之间共享一条TCP隧道,以便最小化对数据通信会话的会话建立和系统资源开销,并提高在压缩管线845中的数据压缩率。在一些实施例中,如果用户交互体验的质量可能被使用共享的TCP隧道降低,就可以使用专用的TCP隧道进行数据通信会话。为了进行这种确定,可以查询预定的或可配置的交互协议列表,这些交互协议已被知晓、或者已被观察到可能在共享的TCP隧道的上下文中引入对于TCP数据中的特定业务的增加的等待时间。 
数据简化模块860实现数据简化技术,该技术用于将标记的数据流转换成 参考,或者将参考转换回原始数据流。在一个实施例中,为了保持高的性能,数据简化模块860可以使用进程间通信(IPC)与数据存储子系统865进行连接,该子系统865在磁盘存储器中存储了数据简化数据库,例如,数据程序块DB 875。根据一个实施例,数据存储子系统865实现基于Linux RAID的万亿字节存储和磁盘冗余。可替换地,也可以使用故障解决模式来代替RAID解决方案。依赖目标市场,低端解决方案可以使用一对磁盘进行彼此备份,使用状态健康的看门狗来监视磁盘故障。在一个示例性的较高端解决方案中,在万亿存储器和热插拔磁盘的支持下,多个硬盘可以被合并成单个逻辑单元。在任何一种情况下,对于废弃的数据块可以使用智能的高速缓存算法,以便为新的数据块保留空间。 
压缩管线845使用在下文进一步叙述的压缩/解压缩技术中的一种或多种技术,来执行对TCP隧道的数据流的压缩/解压缩。 
图9是可以使用本发明实施例的计算机系统的实例。计算机系统700可以表示或构成网络安全平台、网络网关、防火墙、网络设备、交换机、网桥、路由器、服务器、客户机工作站、独立应用的WAN加速设备和/或实现在图6-8中描述的一个或多个功能单元的其它网络设备的一部分。根据图9,计算机系统900包括一个或多个处理器905、一个或多个通信端口910、主存储器915、只读存储器920、海量存储器925和总线930。 
处理器905可以是 
Figure GSB00000674491200211
或Itanium 
Figure GSB00000674491200212
处理器、 
Figure GSB00000674491200213
或Athlon 
Figure GSB00000674491200214
处理器或者本领域周知的其它处理器。 
通信端口910表示物理和/或逻辑端口。例如,通信端口可以是为基于调制解调器的拨号连接用途的RS-232端口、10/100以太网端口、或使用铜线或光纤的吉比特端口中的任何一种。可以根据网络进行选择通信端口910,该网络诸如是局域网(LAN)、广域网(WAN)或与计算机系统900连接的任何网络。 
通信端口910还可以是逻辑连接的终端(例如,传输控制协议(TCP)端口或通用数据报协议(UDP)端口)的名称。例如,通信端口可以是周知的端口中的一种,诸如TCP端口25(用于简单邮件传送协议(SMTP))和TCP端口80(用于HTTP服务),这些端口是由因特网赋号管理局(IANA)分配用于专用目的。 
主存储器915可以是随机访问存储器(RAM)、或本领域普通周知的任何其它动态存储设备。 
只读存储器920可以是任何静态存储设备,诸如用于存储静态信息的可编程只读存储器(PROM)芯片,该静态信息是诸如处理器905的指令。 
海量存储器925可以被用于存储信息和指令。例如,可以使用诸如SCSI驱动器的 
Figure GSB00000674491200221
系列的硬盘、光盘、盘阵列或者任何其它海量存储设备,该盘阵列诸如是RAID、诸如RAID驱动器的Adaptec系列。 
总线930以通信方式将处理器905与其它存储器、存储设备和通信模块相耦合。总线930可以是基于系统总线的PCI/PCI-X或SCSI,这取决于所使用的存储设备。 
可选的,在服务器的情况下以及通常在固定客户机设备的情况下,诸如桌上型计算机、操作和管理接口(未显示)还可以被耦合到总线930,用于支持与计算机系统900的直接操作交互,该操作和管理接口包括但并不局限于显示器、键盘和光标控制设备。通过通信端口910连接的网络连接,就可以提供其它的操作和管理接口。 
取决于特定的实施和计算机系统的作用,还可以提供可选的可拆装存储介质(未显示),这些存储介质可以是任何种类的外部硬盘、软盘、 
Figure GSB00000674491200222
Zip驱动器、只读光盘存储器(CD-ROM)、可重写光盘(CD-RW)、数字影碟只读存储器(DVD-ROM)、可重写DVD等。 
图10是描述根据本发明实施例的加速处理的流程图。取决于特定的实施方式,下文叙述的各种处理和判定块可以通过硬件组件来实现,以机器可执行指令的形式来实现,所述机器可执行指令可用于令以所述指令编程的通用或专用处理器执行所述步骤,或者这些步骤可以通过硬件、软件、固件和/或涉及人员参与/交互的组合来执行。 
在方块1010,对等业务加速设备(例如,WAN加速设备115A和115B)建立彼此之间的一个或多个隧道。根据一个实施例,可以建立共享的面向连接隧道,并可以建立共享的无连接型隧道。一旦对等方检测到彼此,就可以自动执行隧道建立,或者该隧道建立可以是请求式的,响应将从存在的隧道中受益的业务来请求隧道建立,该业务是在一个对等业务加速设备处接收的。 
在方块1020,对在对等加速设备之间传送的业务,使用一种或多种加速 /优化方法。根据一个实施例,对等加速设备中的策略引擎执行有关如何在WAN上加速业务的确定。在一个实施例中,可以在WAN上执行三种不同种业务优化,即应用加速、传输加速和网络加速。取决于特定的实施方式,可以使用这些业务优化中的一种或多种。 
如上所述,在一个实施例中,例如,对于运行较差的WAN协议,可以通过一系列应用代理/处理器来执行应用加速。在一个实施例中,应用代理适用于识别相对稳定的数据块,该数据块诸如是文件、图像、web页面等,同时知晓交互的状态,以便这些应用代理可以通过对不同的协议数据使用正常的数据简化、数据压缩和服务质量(QoS),来更好的工作。 
如上所述,在一个实施例中,通过执行TCP连接池、TCP窗口缩放、选择性确认、往返测量和高速TCP中的一种或多种,传输加速提高在高等待时间和高损耗链路上的传输协议(例如,TCP)的性能。 
如上所述,在一个实施例中,通过使用数据简化、数据压缩、分组合并等,网络加速可以涉及减少在WAN上的带宽利用率,并提高分组级上的WAN性能。还可以执行QoS和业务整形。 
在方块1030,将遍历业务加速设备、并意图在WAN上进行传输的多个数据通信会话多路复用到在方块1010中建立的隧道上。 
在方块1040,通过发送和/或接收业务加速设备,将一种或多种安全功能应用到多个数据通信会话。如上所述,在一些实施例中,对等业务加速设备中的一个或这两者被集成在安全网关内、网络安全平台内和/或在与应用客户机相同的计算机系统内运行的安全代理内,诸如端点安全解决方案,其可以执行各种安全功能,这些安全功能包括但并不局限于防病毒扫描、滥发资料检测、web过滤、防火墙、侵入检测和预防以及虚拟专用网(VPN)业务。 
应当注意到,考虑到潜在的无限变形和组合,上面叙述的流程图仅仅是示例性的,本领域的普通技术人员将意识到可以利用这些处理流程的各种可选择和/或附加的变换,它们属于关于本发明不同的实施例。 
现在叙述本发明的实施例可以利用的各种数据简化和数据压缩技术。数据简化利用了频繁出现的情况,即,接收设备已经具有与被传输的数据或文件相同或类似的数据或文件备份。 
根据一个实施例,发送方(例如,服务器130)和接收方(例如,客户机 120)具有已经从以前的数据传输中学习到的数据程序块(例如,数据程序块DB 875)的数据库。概念上,数据简化工作的内容如下: 
1)发送方将数据或文件的副本分割成程序块,并计算对每个程序块的散列值。各种适合的散列算法都是周知的。优秀候选的实例包括但并不局限于,消息摘要算法5(MD 5)和安全散列算法(SHA)。 
2)发送方可以基于在较低级上的散列算法组来计算超级别(superlevel)散列值,用于获取更多的数据简化。 
3)发送方向接收方发送散列值和级别与长度信息。 
4)接收方将那些散列值与它已经在其本地数据库中学习和存储过的散列值进行比较。当两个散列值相同时,接收方就假定对应的程序块是相同的。 
5)接收方向发送方告知哪些程序块是不相同的,以致那些程序块不能由接收方基于散列值进行推断。 
6)发送方将那些程序块发送给接收方。 
7)对于超级别散列值,可以循环地应用步骤4-6,直到接收方恢复了原始数据或文件。 
为了有效地减少数据传输,合理有效的数据程序分块算法是非常重要的。程序块不应太短。主要原因是效率取决于发送显著短于它们表示的程序块的散列值。散列值也不应过短,以致于偶然发生的散列冲突会导致接收方错误地断定:它已经具有了程序块,但这时它并不具有程序块。短的程序块还存在着其它缺陷。对于每个程序块,通常必须建立强壮的校验和。尽管这个步骤只需要执行一次,但是它所要求的计算开销的数量相当大。程序块越短,在数据程序块DB 875中存在的程序块就越多,计算校验和所需要的开销也越多。而且,在存储和搜索数据库中的数据散列的过程中,也涉及大量时间开销。 
另一方面,程序块不应当过长。使用过长的程序块,在数据库中寻找到相同数据程序块的机会是非常低的。优秀的程序分块算法应当在对应的位置将相似数据截成程序块,以便可以通过具有相同散列值的程序块来检测相似性。 
根据一个实施例,使用固定大小的数据程序分块。固定大小的数据程序分块将数据复本截成固定大小的数据程序块。固定大小的数据块要比基于内容的数据块更简单,它们还提供更有效的存储实施。然而,被附加到数据上的单个 字符可以使程序块完全不同。 
在其它实施例中,使用了内容依赖数据程序分块。内容依赖数据程序分块算法使用块指示方法来消耗(consume)数据的每个位或比特,然后判定它是否寻找到数据块的边界。输出程序块的长度的范围可以很大,该长度可以由数据自身的一些内部特征来确定,与固定大小的数据块相比,这明显使得在数据存储器中提取和存储数据的效率降低。 
优秀的依赖内容的数据程序分块算法可以对数据变化更具适应性。然而,劣质(bad)的内容依赖数据程序分块必然比固定大小的数据程序分块算法更差。 
正如上面提到的,应用处理器将数据流分类和标记为不同的阶段,以便可以使用不同的数据简化技术来加速通过面向连接隧道的传输。 
根据一个实施例,存在三种公认的步骤:不可能重复的数据、可重复但不稳定的数据、和稳定数据。对于稳定数据,在将原始数据转发给接收侧的设备之前,通过使用在发送方的设备中更短的数据参考来代替原始数据,可以使用分级的数据参考简化算法和可变长度的数据参考简化算法,用于简化数据,在接收端的设备可以恢复原始数据。 
对于可重复但不稳定的数据,可以使用基于存储器的数据参考简化算法。对于不可能重复的数据,系统可以按照现有的方式简单地转发数据。 
所有这些数据参考算法尝试在隧道的发送端,使用较短长度的数据参考来代替固定或可变长度的数据块。然后将该数据参考转发给隧道的接收端,接收端通过查找在基于磁盘或基于存储器的数据存储设备上的数据参考,找到对应的数据块,从而将数据参考恢复为原始数据。在一个实施例中,隧道还提供一种方法,该方法向接收端请求丢失的数据参考,并从发送端发送回对数据参考和数据块的响应。 
在一个实施例中,不管数据块对于特定会话而言是作为数据参考还是以原始形式而通过隧道转发,该数据都使用在发送端上的它的会话ID进行标记。因此,这就是在两个业务加速设备之间的通信信道被称为“隧道”的原因。在接收端,首先对数据参考和原始数据执行去多路复用,以便发现它的会话上下文,然后,在合适的会话上下文中对它进行处理。 
现在返回到分级的数据参考简化,在发送端,应用处理器可以将数据流标记为稳定数据,例如由应用处理器识别的文本或图像数据,并将数据注入到隧 道变换器中。首先,通过使用诸如上面叙述的一种数据程序分块算法,隧道变换器将数据流分成数据程序块,例如2K字节的数据块。然后,散列函数计算每个数据块的数据参考,作为散列结果。优秀的散列函数是一种在大多数情况下,对于具有不同内容的数据块,能够产生不同的数据参考的函数,具有不同内容的数据块共享相同数据参考的情况是很少的。因此,稳定数据流可以被转换成很多连续的数据参考和一个剩余数据块,该剩余数据块所具有的可变长度要小于块大小。接下来,该系统尝试在基于磁盘的数据存储器中查询每个数据参考和它的相关数据库。如果不存在登记项,数据参考和它的相关数据块就被一起存储在基于磁盘的数据存储器中。 
在一个实施例中,通过使用类似的散列函数,可以将固定数量的连续数据参考组合为数据,用于计算级别-1的超参考(super reference)。递推地,可以使用固定数量的连续级别-i的超参考作为数据,来计算级别-i+1的超参考。采用这种方式,超级别可以涉及大的数据块,这会导致高的压缩率,同时为了更好的颗粒性,数据参考可以涉及小的数据块。在本发明的各种实施例中,使用预定或可配置的最大数量、数据通信的速度和数据本身,就可以限制参考级别的数量。 
现在返回到关于可变长度的数据参考简化的论述,应当认识到稳定数据并不总对准数据程序块的边界。因此,对于对准的稳定数据流的数据块,上述分级的数据参考简化方法将工作良好,但剩余数据块并不是这种情况,剩余数据块的长度通常是可变的。而且,在单个分组内的数据受到限制,并且大小是可变的。对于这两种情况,可变长度的数据参考简化算法的工作会更好。 
根据一个实施例,用于产生对于可变长度数据块的数据参考的算法,将略微不同于上述的固定大小的数据块。可以使用相同或不同的散列函数来产生散列值。而且,与长度结合的散列值就成为可变长度数据块的参考。在发送端通过隧道转发原始数据块之前,数据参考替换该原始数据块。依次,系统尝试在基于磁盘的数据存储器中查找数据参考和它的相关数据块。如果不存在登记项,该数据参考和它的相关数据块就一起被存储在基于磁盘的数据存储器中。 
现在返回到对基于存储器的数据参考简化的论述,这种方法通常被用于减少关于可重复但不稳定数据的数据业务,该数据是例如可以被发送给相同子网中多个接收方的Webex会议的语音数据。 
用于产生数据参考的算法可以与上述的可变长度的数据参考简化方法相同。然后,使用数据参考在存储器的散列索引高速缓存表格(例如,存储器高速缓存DB 870)中查找高速缓存登记项。如果在存储器高速缓存中已经具有相同的数据内容,数据参考只将替换原始数据块。但是,如果在存储器高速缓存中不存在相同的数据内容,数据参考和它的数据块就被高速缓存在存储器的散列索引表格中。 
现在返回到对关于根据一个实施例的数据压缩的论述,WAN加速设备只使用无损数据压缩算法。大多数类型的压缩都采用类似的方式工作。本质上,发送端通过为通用序列替换一种简写的方式而使数据缩小,接收端解释该简写以便恢复原始内容。很多压缩算法包括测定在数据中重复的序列,并对下一次到来的数据进行预测。压缩字典是这样一种区域,其中算法存储它的数据序列、预测、缩短的替换、和/或它需要用来执行其工作的任何其它数据。 
对于相同的业务,发送(压缩)和接收(解压缩)单元都使用相同的压缩算法,并且保持相互之间在相关的压缩字典内容上的消息沟通。 
在一些实施例中,WAN加速设备支持各种压缩算法选项。有时,应用从一种压缩算法中获得的收益会多于从另一种压缩算法中获得的收益。在一个实施例中,所有等级的应用使用默认的算法和字典大小,并且,服务使用适合于该业务类型的预定设置。在其它实施例中,一些等级和服务都使用默认的算法和字典大小,一个或多个等级/服务可以具有它们自己的专用压缩器。 
尽管已经描述和叙述了本发明的实施例,但是很清楚本发明并不仅局限于这些实施例。在不脱离正如权利要求书中所叙述的本发明精神和范围的情况下,本领域的普通技术人员将会明白各种修改、改变、变化、替换和等效形式。 

Claims (17)

1.一种计算机实现的方法,包括:
在第一广域网(WAN)加速设备与第二WAN加速设备之间建立共享的面向连接隧道和共享的无连接型隧道,所述共享的面向连接隧道可操作用于在所述第一WAN加速设备和所述第二WAN加速设备之间传送面向连接的业务流,而不传送无连接型业务流,所述共享的无连接型隧道可操作用于在所述第一WAN加速设备和所述第二WAN加速设备之间传送无连接型业务流,而不传送面向连接的业务流,所述第一WAN加速设备被设置在公共网络与第一局域网(LAN)之间,所述第二WAN加速设备被设置在第二LAN与公共网络之间;以及
通过(i)将所述第一LAN与所述第二LAN之间的多个数据通信会话多路复用到所述共享的面向连接隧道和共享的无连接型隧道上,(ii)对所述多个数据通信会话的一个或多个面向连接的业务流执行应用加速,并对所述多个数据通信会话的一个或多个面向连接的业务流以及一个或多个无连接型业务流执行传输加速和网络加速中的一个或多个,以及(iii)对所述一个或多个面向连接的业务流执行一种或多种安全功能,对所述第一LAN与所述第二LAN之间交换的网络业务进行安全加速。
2.如权利要求1所述的方法,其中所述第一WAN加速设备包括在第一LAN的客户机系统内运行的逻辑设备。
3.如权利要求1所述的方法,其中所述第二WAN加速设备包括在第二LAN的客户机系统内运行的逻辑设备。
4.如权利要求1所述的方法,进一步包括在所述第一WAN加速设备和所述第二WAN加速设备之间建立一个或多个专用隧道,并且当使用共享的面向连接隧道或者共享的无连接型隧道会不利地影响用户交互体验时,使用所述一个或多个专用隧道进行所述多个数据通信会话之中的数据通信会话。
5.如权利要求1所述的方法,其中所述在第一广域网(WAN)加速设备与第二WAN加速设备之间建立共享的面向连接隧道和共享的无连接型隧道的步骤包括:响应于将另一设备识别为对等的WAN加速设备的第一WAN加速设备或第二WAN加速设备,自动地建立所述共享的面向连接隧道和共享的无连接型隧道。
6.如权利要求1所述的方法,其中所述在第一广域网(WAN)加速设备与第二WAN加速设备之间建立共享的面向连接隧道和共享的无连接型隧道的步骤包括:在确定所述多个数据通信会话中的一个或多个数据通信会话将会是受益的结果后,建立所述共享的面向连接隧道和共享的无连接型隧道。
7.如权利要求1所述的方法,其中在所述第一WAN加速设备与第二WAN加速设备内实现的协议栈的应用层上执行所述应用加速。
8.如权利要求1所述的方法,其中所述传输加速包括用于提高在高等待时间或高损耗链路上的传输控制协议(TCP)的性能的技术,所述技术包括TCP连接池、TCP窗口缩放、选择性确认(SACK)、往返测量和高速TCP中的一种或多种。
9.如权利要求1所述的方法,其中所述网络加速包括分组级带宽压缩技术,所述分组级带宽压缩技术包括数据简化、数据压缩和分组合并中的一种或多种。
10.如权利要求1所述的方法,其中所述一种或多种安全功能包括防病毒扫描、web过滤、滥发资料检测、防火墙和防止侵入中的一种或多种。
11.一种计算机实现的方法,包括:
通过在第一广域网(WAN)加速设备的协议栈的网际协议(IP)层上在所述第一WAN加速设备上执行的流分类模块,经由在所述第一WAN加速设备和第二WAN加速设备之间建立的共享的面向连接隧道,从所述第二WAN加速设备接收分组,所述共享的面向连接隧道可操作用于在所述第一WAN加速设备和所述第二WAN加速设备之间传送用于面向连接应用的应用层数据;
在通过所述流分类模块将所述分组分类为与现有的面向连接流相关联后,将所述分组传送到在所述协议栈的传输层上在所述第一WAN加速设备上执行的WAN套接口;
基于所述分组所关联的应用协议,由所述WAN套接口将所述分组传送到在所述协议栈的应用层上在所述第一WAN加速设备上执行的多个应用处理器中的一个应用处理器,所述多个应用处理器的每一个用于对运行特别差的WAN协议执行一个或多个应用加速技术;以及
通过执行所述一个或多个应用加速技术并且应用一个或多个安全功能,由所述应用处理器对现有的面向连接流进行安全加速。
12.如权利要求11所述的方法,其中所述一个或多个应用加速技术包括以下技术中的一个或多个:(i)事务处理预测,(ii)预驻留,和(iii)将数据流分类为不同级,以便于进行数据简化、数据压缩和服务质量中的一种或多种。
13.如权利要求12所述的方法,其中将数据流分类为不同级包括所述应用处理器将数据流分类和标记为正处于相关数据不可能重复、可重复但不稳定、和稳定的级。
14.如权利要求13所述的方法,进一步包括将分级的数据参考简化算法和可变长度的数据参考简化算法应用到标记为稳定的数据上。
15.如权利要求13所述的方法,进一步包括将基于存储器的数据参考简化算法应用到标记为可重复但不稳定的数据上。
16.如权利要求13所述的方法,进一步包括按照现有的方式将数据参考简化算法应用到标记为不可能重复的数据上。
17.如权利要求11所述的方法,进一步包括执行传输加速技术,所述传输加速技术用于提高在高等待时间或高损耗链路上的传输控制协议(TCP)的性能,所述传输加速技术包括TCP连接池、TCP窗口缩放、选择性确认(SACK)、往返测量和高速TCP中的一种或多种。
CN2009102041823A 2008-10-18 2009-10-19 使用隧道加速数据通信的方法 Active CN101729354B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/253,974 2008-10-18
US12/253,974 US7873060B2 (en) 2008-10-18 2008-10-18 Accelerating data communication using tunnels

Publications (2)

Publication Number Publication Date
CN101729354A CN101729354A (zh) 2010-06-09
CN101729354B true CN101729354B (zh) 2013-12-25

Family

ID=42108628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009102041823A Active CN101729354B (zh) 2008-10-18 2009-10-19 使用隧道加速数据通信的方法

Country Status (2)

Country Link
US (5) US7873060B2 (zh)
CN (1) CN101729354B (zh)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873060B2 (en) 2008-10-18 2011-01-18 Fortinet, Inc. Accelerating data communication using tunnels
US8605605B1 (en) * 2008-11-05 2013-12-10 Juniper Networks, Inc. Setting initial data transmission size based on prior transmission
US8892745B2 (en) * 2009-03-30 2014-11-18 Cisco Technology, Inc. Redirection of a request for information
US8050251B2 (en) * 2009-04-10 2011-11-01 Barracuda Networks, Inc. VPN optimization by defragmentation and deduplication apparatus and method
US8289981B1 (en) * 2009-04-29 2012-10-16 Trend Micro Incorporated Apparatus and method for high-performance network content processing
US8176141B1 (en) * 2009-07-07 2012-05-08 Viasat, Inc. SMB request prefetching
US20110038304A1 (en) * 2009-08-11 2011-02-17 Yi-Neng Lin Telecommunication network broadband off-loading system and method
US8584217B2 (en) * 2009-10-16 2013-11-12 International Business Machines Corporation Service segregation according to subscriber service association
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data
US8417812B1 (en) * 2010-07-12 2013-04-09 Vmware, Inc. Methods and systems for detecting anomalies during IO accesses
US8719401B1 (en) 2010-07-12 2014-05-06 Vmware, Inc. Decentralized input/output resource management
CN101924771B (zh) * 2010-08-26 2013-11-06 北京天融信科技有限公司 一种用于加速应用代理的核心级tcp连接粘合方法
US20120078995A1 (en) * 2010-09-29 2012-03-29 Riverbed Technology, Inc. System and method for warming an optimization device
US8433783B2 (en) 2010-09-29 2013-04-30 Citrix Systems, Inc. Systems and methods for providing quality of service via a flow controlled tunnel
CN102457537B (zh) * 2010-10-19 2015-11-25 阿里巴巴集团控股有限公司 一种传输控制协议的通信方法及服务器
CN101977234A (zh) * 2010-11-02 2011-02-16 中南大学 基于并行tcp技术的广域网通信加速方法
US9124515B2 (en) * 2010-11-22 2015-09-01 Hewlett-Packard Development Company, L.P. Elephant flow detection in a computing device
WO2012078082A1 (en) 2010-12-07 2012-06-14 Telefonaktiebolaget L M Ericsson (Publ) Method for enabling traffic acceleration in a mobile telecommunication network
EP2659651B1 (en) * 2010-12-29 2019-10-23 Citrix Systems Inc. Systems and methods for policy based integration to horizontally deployed wan optimization appliances
US20120198079A1 (en) * 2011-02-01 2012-08-02 Benjamin Spink Parallel transmissions over http connections
US8959162B2 (en) * 2011-02-23 2015-02-17 International Business Machines Corporation Publisher-based message data cashing in a publish-subscription environment
US9185181B2 (en) 2011-03-25 2015-11-10 International Business Machines Corporation Shared cache for potentially repetitive message data in a publish-subscription environment
US8825900B1 (en) 2011-04-05 2014-09-02 Nicira, Inc. Method and apparatus for stateless transport layer tunneling
US9009322B1 (en) * 2011-06-30 2015-04-14 Riverbed Technology, Inc. Method and apparatus for load balancing between WAN optimization devices
CN102263687A (zh) * 2011-08-11 2011-11-30 武汉思为同飞网络技术有限公司 广域网vpn加速网关及其加速通信系统和方法
US8913611B2 (en) * 2011-11-15 2014-12-16 Nicira, Inc. Connection identifier assignment and source network address translation
CN102404204B (zh) * 2011-11-01 2014-05-07 深信服网络科技(深圳)有限公司 网络拓扑中的加速方法、装置及系统
US8856304B2 (en) * 2012-03-09 2014-10-07 Cisco Technology, Inc. Accelerating UDP traffic
US20130253480A1 (en) 2012-03-22 2013-09-26 Cory G. Kimball Surgical instrument usage data management
CN102629944B (zh) * 2012-04-09 2015-03-18 华为技术有限公司 网络加速方法、装置及系统
EP2845361B1 (en) 2012-05-04 2019-09-04 Parallel Limited Optimizing mobile network bandwidth
US9575978B2 (en) 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment
US9351196B2 (en) * 2012-08-31 2016-05-24 International Business Machines Corporation Byte caching in wireless communication networks
CN106850817A (zh) * 2012-12-10 2017-06-13 北京奇虎科技有限公司 一种下载管理设备、方法及数据下载系统
US9043264B2 (en) * 2012-12-14 2015-05-26 International Business Machines Corporation Scanning data streams in real-time against large pattern collections
US9497079B2 (en) * 2013-06-13 2016-11-15 Sap Se Method and system for establishing, by an upgrading acceleration node, a bypass link to another acceleration node
GB2519864B (en) * 2013-07-05 2021-08-25 Pismo Labs Technology Ltd Methods and systems for transmitting packets through aggregated end-to-end connection
US9350657B2 (en) 2013-07-08 2016-05-24 Nicira, Inc. Encapsulating data packets using an adaptive tunnelling protocol
US8937562B1 (en) 2013-07-29 2015-01-20 Sap Se Shared data de-duplication method and system
US9667556B2 (en) 2013-09-24 2017-05-30 Nicira, Inc. Adjusting connection validating control signals in response to changes in network traffic
EP2887605A1 (en) * 2013-12-20 2015-06-24 ABB Technology AB Security framework for transmitting communication messages between a substation LAN and packet-switched WAN
CN104753808B (zh) * 2013-12-31 2018-12-07 腾讯科技(深圳)有限公司 一种在网络系统中传输数据的方法、装置及数据传输系统
CN104768079B (zh) * 2014-01-03 2018-10-02 腾讯科技(深圳)有限公司 多媒体资源分发方法、装置及系统
CN104767679B (zh) * 2014-01-08 2018-12-18 腾讯科技(深圳)有限公司 一种在网络系统中传输数据的方法及装置
CN105723784B (zh) * 2014-03-03 2021-01-12 柏思科技有限公司 用于通过隧道组传输和接收数据的方法和系统
CN111262772B (zh) 2014-06-25 2022-05-13 柏思科技有限公司 用于安置在网络环境中的节点的方法及节点
US9736732B2 (en) * 2014-07-01 2017-08-15 Samsung Electronics Co., Ltd. System and method to dynamically manage application traffic by bandwidth apportioning on a communication device
CN104168210B (zh) * 2014-08-08 2019-06-04 网宿科技股份有限公司 基于智能路由的网络软件加速系统
GB2535264B (en) * 2014-08-29 2021-10-06 Pismo Labs Technology Ltd Methods and systems for transmitting packets through an aggregated connection
US9917882B2 (en) 2014-11-30 2018-03-13 Sonicwall Inc. Transparent deferred spooling store and forward based on standard network system and client interface
EP3029961A1 (en) * 2014-12-01 2016-06-08 Alcatel Lucent Method and device for a connectionless bearer service
CN104506670B (zh) * 2014-12-31 2018-10-02 北京奇虎科技有限公司 建立网游连接的方法、设备及系统
US10313486B2 (en) 2015-01-07 2019-06-04 Sonicwall Inc. Optimizing transfer of fragmented packetized data
JP2018507639A (ja) * 2015-01-28 2018-03-15 アンブラ テクノロジーズ リミテッドUmbra Technologies Ltd. グローバル仮想ネットワークについてのシステム及び方法
US9667538B2 (en) * 2015-01-30 2017-05-30 Telefonaktiebolget L M Ericsson (Publ) Method and apparatus for connecting a gateway router to a set of scalable virtual IP network appliances in overlay networks
CN104683211A (zh) * 2015-03-23 2015-06-03 肖骏 一种对虚拟网络隧道加速的方法及系统
US10097345B2 (en) * 2015-04-14 2018-10-09 PeerNova, Inc. Secure hash algorithm in digital hardware for cryptographic applications
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US9813526B2 (en) 2015-05-26 2017-11-07 Sonicwall Inc. Reducing transmission pathway lengths within a distributed network
CN104852988A (zh) * 2015-05-29 2015-08-19 杭州华三通信技术有限公司 一种报文转发方法和装置
GB2539003B (en) * 2015-06-03 2018-05-09 Openwave Mobility Inc A method and apparatus for managing connections in a communication network
US20160014165A1 (en) * 2015-06-24 2016-01-14 Bandwidth.Com, Inc. Mediation Of A Combined Asynchronous And Synchronous Communication Session
US10237236B2 (en) 2015-06-25 2019-03-19 Microsoft Technology Licensing, Llc Media Session
US20160380789A1 (en) * 2015-06-25 2016-12-29 Microsoft Technology Licensing, Llc Media Relay Server
US9887936B2 (en) * 2015-08-03 2018-02-06 Cisco Technology, Inc. Application identification and overlay provisioning as a service
US10158735B2 (en) * 2015-08-07 2018-12-18 Sonicwall Inc. Read-ahead on signed connections with unsigning, inline, transparent proxies
US10541930B2 (en) 2015-08-28 2020-01-21 Softnas Operating Inc. Automated data flows using flow-based data processor blocks
KR102148757B1 (ko) * 2015-09-17 2020-08-27 삼성전자주식회사 통신 시스템에서 데이터를 송수신하는 방법 및 장치
US20170126845A1 (en) * 2015-10-29 2017-05-04 VTX Holdings (Singapore) Pte. Ltd. Network communication system
US10021222B2 (en) * 2015-11-04 2018-07-10 Cisco Technology, Inc. Bit-aligned header compression for CCN messages using dictionary
WO2017093783A1 (en) * 2015-12-01 2017-06-08 Ilradiflow Ltd. Network security agent
CN105516122B (zh) * 2015-12-03 2019-03-15 网宿科技股份有限公司 具有分等级配置的加速策略的网络传输加速方法和系统
US10969748B1 (en) 2015-12-28 2021-04-06 Disney Enterprises, Inc. Systems and methods for using a vehicle as a motion base for a simulated experience
US11524242B2 (en) 2016-01-20 2022-12-13 Disney Enterprises, Inc. Systems and methods for providing customized instances of a game within a virtual space
US10447658B2 (en) * 2016-01-22 2019-10-15 Citrix Systems, Inc. System and method for providing improved optimization for secure session connections
US10021547B2 (en) * 2016-01-25 2018-07-10 Htc Corporation Management for data transmission of applications
CN106850281B (zh) * 2017-01-18 2020-08-04 深圳市万网博通科技有限公司 网络设备管理方法
US10606807B1 (en) * 2017-04-28 2020-03-31 EMC IP Holding Company LLC Distributed client side deduplication index cache
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US10887131B1 (en) * 2017-11-29 2021-01-05 Riverbed Technology, Inc. High availability (HA) network device
US10805420B2 (en) * 2017-11-29 2020-10-13 Forcepoint Llc Proxy-less wide area network acceleration
US10970560B2 (en) 2018-01-12 2021-04-06 Disney Enterprises, Inc. Systems and methods to trigger presentation of in-vehicle content
CN110381007B (zh) * 2018-04-12 2021-01-08 华为技术有限公司 Tcp加速方法及装置
US10841632B2 (en) 2018-08-08 2020-11-17 Disney Enterprises, Inc. Sequential multiplayer storytelling in connected vehicles
CN111262721B (zh) 2018-11-30 2021-06-15 贵州白山云科技股份有限公司 虚拟内网加速方法、系统、配置方法、装置、设备、介质
CN109729101B (zh) * 2019-03-12 2021-08-06 苏州狗尾草智能科技有限公司 多层次低耦合的通信系统
US10938728B2 (en) * 2019-07-24 2021-03-02 Cisco Technology, Inc. High performance for efficient auto-scaling of stateful service
US10785621B1 (en) 2019-07-30 2020-09-22 Disney Enterprises, Inc. Systems and methods to provide an interactive space based on vehicle-to-vehicle communications
US11153119B2 (en) 2019-10-15 2021-10-19 Cisco Technology, Inc. Dynamic discovery of peer network devices across a wide area network
US11095545B2 (en) 2019-10-22 2021-08-17 Vmware, Inc. Control packet management
CN110933135B (zh) * 2019-10-31 2022-11-29 苏州浪潮智能科技有限公司 在计算机设备中建立网络连接的方法和装置
US11076276B1 (en) 2020-03-13 2021-07-27 Disney Enterprises, Inc. Systems and methods to provide wireless communication between computing platforms and articles
EP4120647A4 (en) * 2020-04-14 2023-05-03 Huawei Cloud Computing Technologies Co., Ltd. PACKET TRANSMISSION METHOD, DEVICE AND SYSTEM
US11296953B1 (en) * 2020-12-18 2022-04-05 Cloudbrink Inc. Modifying data packet transmission characteristics by an intermediate node on a communication path
CN112671662B (zh) * 2020-12-29 2023-04-18 网络通信与安全紫金山实验室 数据流加速方法、电子设备和存储介质
CN112910790B (zh) * 2021-02-08 2023-06-30 网宿科技股份有限公司 导流系统及其方法
WO2022173389A1 (en) * 2021-02-11 2022-08-18 Tayf Ileri Teknoloji Hizmetleri Anonim Sirketi Network management system for accelerating tcp traffic at transport layer level
US11477112B2 (en) * 2021-03-09 2022-10-18 Cisco Technology, Inc. On-the-fly SD-WAN tunnel creation for application-driven routing
US11671375B2 (en) * 2021-07-15 2023-06-06 Verizon Patent And Licensing Inc. Systems and methods for software defined hybrid private and public networking
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11936564B2 (en) 2022-05-18 2024-03-19 Cisco Technology, Inc. Dynamically enabling a transport control protocol proxy for satellite networks
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1627858A (zh) * 2003-12-10 2005-06-15 三星电子株式会社 切换方法和切换设备
US7027400B2 (en) * 2001-06-26 2006-04-11 Flarion Technologies, Inc. Messages and control methods for controlling resource allocation and flow admission control in a mobile communications system

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4485460A (en) 1982-05-10 1984-11-27 Texas Instruments Incorporated ROM coupling reduction circuitry
JP2945757B2 (ja) 1989-09-08 1999-09-06 オースペックス システムズ インコーポレイテッド 多重装置オペレーティングシステムのアーキテクチャ
US5990810A (en) 1995-02-17 1999-11-23 Williams; Ross Neil Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US7099949B1 (en) * 1995-10-23 2006-08-29 Imec Vzw Interprocess communication protocol system
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US6424934B2 (en) * 1998-05-18 2002-07-23 Solidum Systems Corp. Packet classification state machine having reduced memory storage requirements
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
DE19857822A1 (de) * 1998-12-15 2000-06-29 Siemens Ag Verfahren zur Bereitstellung einer stabilen Qualitätsgüte für Datendienste innerhalb eines paketvermittelnden Netzes
US6412009B1 (en) * 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US7013338B1 (en) 2000-07-28 2006-03-14 Prominence Networks, Inc. Multiplexing several individual application sessions over a pre-allocated reservation protocol session
US7266683B1 (en) 2001-07-27 2007-09-04 Siddhartha Nag Selective encryption of application session packets
AU2001293269A1 (en) * 2000-09-11 2002-03-26 David Edgar System, method, and computer program product for optimization and acceleration of data transport and processing
US6937560B2 (en) * 2001-05-22 2005-08-30 Comtech Ef Data, Inc. Method and apparatus for selectively accelerating network communications
US7533410B1 (en) * 2001-09-06 2009-05-12 At & T Corp. Architecture to support public voice VPN services over an IP network
US7644171B2 (en) * 2001-09-12 2010-01-05 Netmotion Wireless, Inc. Mobile networking system and method using IPv4 and IPv6
US6999998B2 (en) * 2001-10-04 2006-02-14 Hewlett-Packard Development Company, L.P. Shared memory coupling of network infrastructure devices
US7310356B2 (en) * 2002-06-24 2007-12-18 Paradyne Corporation Automatic discovery of network core type
US20050198331A1 (en) * 2002-07-01 2005-09-08 Masaaki Okajima Seamless system and recording medium, and computer system process continuing method
US7339929B2 (en) * 2002-08-23 2008-03-04 Corrigent Systems Ltd. Virtual private LAN service using a multicast protocol
WO2004025887A2 (en) * 2002-09-13 2004-03-25 Strix Systems, Inc. Network access points using multiple devices
US7324447B1 (en) * 2002-09-30 2008-01-29 Packeteer, Inc. Methods, apparatuses and systems facilitating concurrent classification and control of tunneled and non-tunneled network traffic
US7120666B2 (en) 2002-10-30 2006-10-10 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US8270423B2 (en) * 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
US6667700B1 (en) 2002-10-30 2003-12-23 Nbt Technology, Inc. Content-based segmentation scheme for data compression in storage and transmission including hierarchical segment representation
US7126955B2 (en) 2003-01-29 2006-10-24 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US8098649B2 (en) * 2003-04-28 2012-01-17 Alcatel Lucent Using network transport tunnels to provide service-based data transport
US8432800B2 (en) * 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US7542476B2 (en) * 2003-08-29 2009-06-02 Flash Networks Ltd Method and system for manipulating IP packets in virtual private networks
US8248939B1 (en) * 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US7817665B2 (en) * 2005-04-01 2010-10-19 Verizon Services Corp. Systems and methods for interworking QSIG and H.323 signaling in a SIP-based network
GB2426151B (en) * 2005-05-12 2007-09-05 Motorola Inc Optimizing network performance for communication servcies
US7653075B2 (en) * 2005-05-23 2010-01-26 Juniper Networks, Inc. Processing communication flows in asymmetrically routed networks
US7505402B2 (en) * 2005-06-23 2009-03-17 Cisco Technology, Inc. Method and apparatus for providing faster convergence for redundant sites
US20070110072A1 (en) * 2005-11-16 2007-05-17 Mark Elias Digital subscriber link interconnection to a virtual private network
US8286002B2 (en) * 2005-12-02 2012-10-09 Alcatel Lucent Method and apparatus for providing secure remote access to enterprise networks
US7609701B2 (en) * 2006-02-22 2009-10-27 Zheng Yang Communication using private IP addresses of local networks
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
EP1858217A1 (en) * 2006-05-16 2007-11-21 Koninklijke KPN N.V. Shared Internet access
US7613848B2 (en) * 2006-06-13 2009-11-03 International Business Machines Corporation Dynamic stabilization for a stream processing system
US7843912B2 (en) * 2006-08-03 2010-11-30 Citrix Systems, Inc. Systems and methods of fine grained interception of network communications on a virtual private network
US8493858B2 (en) * 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US7995500B2 (en) * 2006-11-30 2011-08-09 Cisco Technology, Inc. Managing an amount of tunnels in a computer network
US7593331B2 (en) 2007-01-17 2009-09-22 Cisco Technology, Inc. Enhancing transmission reliability of monitored data
US7584294B2 (en) * 2007-03-12 2009-09-01 Citrix Systems, Inc. Systems and methods for prefetching objects for caching using QOS
US7796510B2 (en) * 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US7870277B2 (en) * 2007-03-12 2011-01-11 Citrix Systems, Inc. Systems and methods for using object oriented expressions to configure application security policies
US7760642B2 (en) * 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US8037126B2 (en) * 2007-03-12 2011-10-11 Citrix Systems, Inc. Systems and methods of dynamically checking freshness of cached objects based on link status
US7706266B2 (en) * 2007-03-12 2010-04-27 Citrix Systems, Inc. Systems and methods of providing proxy-based quality of service
US8103783B2 (en) * 2007-03-12 2012-01-24 Citrix Systems, Inc. Systems and methods of providing security and reliability to proxy caches
US8295306B2 (en) * 2007-08-28 2012-10-23 Cisco Technologies, Inc. Layer-4 transparent secure transport protocol for end-to-end application protection
US8908700B2 (en) * 2007-09-07 2014-12-09 Citrix Systems, Inc. Systems and methods for bridging a WAN accelerator with a security gateway
JP5427181B2 (ja) * 2007-10-03 2014-02-26 ヴァーテラ テクノロジー サーヴィシズ インコーポレイテッド 仮想化アプリケーション加速化インフラストラクチャ
US7925694B2 (en) * 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US8103785B2 (en) * 2007-12-03 2012-01-24 Seafire Micros, Inc. Network acceleration techniques
US20090210427A1 (en) * 2008-02-15 2009-08-20 Chris Eidler Secure Business Continuity and Disaster Recovery Platform for Multiple Protected Systems
US8935336B2 (en) * 2008-06-18 2015-01-13 Cisco Technology, Inc. Optimizing program requests over a wide area network
US8018866B1 (en) * 2008-08-26 2011-09-13 Juniper Networks, Inc. Adaptively applying network acceleration services with an intermediate network device
US7979565B2 (en) * 2008-08-27 2011-07-12 International Business Machines Corporation System and method to provide a network service
US8504716B2 (en) * 2008-10-08 2013-08-06 Citrix Systems, Inc Systems and methods for allocating bandwidth by an intermediary for flow control
US7873060B2 (en) 2008-10-18 2011-01-18 Fortinet, Inc. Accelerating data communication using tunnels
US8549616B2 (en) * 2008-10-31 2013-10-01 At&T Intellectual Property I, L.P. Methods and apparatus to dynamically control access from virtual private networks to network-based shared resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7027400B2 (en) * 2001-06-26 2006-04-11 Flarion Technologies, Inc. Messages and control methods for controlling resource allocation and flow admission control in a mobile communications system
CN1627858A (zh) * 2003-12-10 2005-06-15 三星电子株式会社 切换方法和切换设备

Also Published As

Publication number Publication date
US20130311671A1 (en) 2013-11-21
US20110069715A1 (en) 2011-03-24
US20150334088A1 (en) 2015-11-19
US20180069831A1 (en) 2018-03-08
CN101729354A (zh) 2010-06-09
US8503332B2 (en) 2013-08-06
US9882878B2 (en) 2018-01-30
US7873060B2 (en) 2011-01-18
US20100098092A1 (en) 2010-04-22
US9774570B2 (en) 2017-09-26
US11329961B2 (en) 2022-05-10

Similar Documents

Publication Publication Date Title
CN101729354B (zh) 使用隧道加速数据通信的方法
US10305904B2 (en) Facilitating secure network traffic by an application delivery controller
US10630784B2 (en) Facilitating a secure 3 party network session by a network device
US7184445B2 (en) Architecture and API for of transport and upper layer protocol processing acceleration
US6963996B2 (en) Session error recovery
US7672223B2 (en) Method and apparatus for replicating a transport layer protocol stream
US7826487B1 (en) Coalescing acknowledgement responses to improve network communications
Sosinsky Networking bible
US20030061355A1 (en) Systems and methods for establishing quasi-persistent HTTP connections
EP1494424B1 (en) System and method for message-based scalable data transport
US20100185586A1 (en) Message-based scalable data transport protocol
JP2001086163A (ja) サーバ・クライアント間双方向通信システム
US20040133631A1 (en) Communication system
US11012524B2 (en) Remote socket splicing system
US20090172395A1 (en) System and Method for Service Virtualization Using a MQ Proxy Network
Todorov et al. Storage Networks on IP infrastructure
EP2275947B1 (en) Apparatus and method for optimized and secured reflection of network services to remote locations
Fang et al. EDTS: An Extensible Data Transmission Service for the Internet
Han et al. InfoXP: An E-government Information eXchange Platform Based on Overlay Network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant