CN101834777B - 基于会话高速缓存的http加速 - Google Patents
基于会话高速缓存的http加速 Download PDFInfo
- Publication number
- CN101834777B CN101834777B CN200910127106.7A CN200910127106A CN101834777B CN 101834777 B CN101834777 B CN 101834777B CN 200910127106 A CN200910127106 A CN 200910127106A CN 101834777 B CN101834777 B CN 101834777B
- Authority
- CN
- China
- Prior art keywords
- session
- http
- http packet
- packet
- cache
- 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.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种由设备执行的方法包括:接收第一超文本传输协议(HTTP)数据包;基于HTTP数据包创建第一会话;以及为第一会话创建会话高速缓存条目。该方法还包括:接收第二HTTP数据包;执行会话高速缓存查找以识别第二HTTP数据包与会话高速缓存条目的匹配;以及基于第二HTTP数据包与会话高速缓存条目的匹配来创建第二HTTP会话。
Description
技术领域
本发明涉及通信领域,具体涉及一种由设备执行的方法以及网络设备,其可以在网络设备内为HTTP连接(诸如对同一网页/网站的连接)提供快速会话创建路线。
背景技术
网络安全设备典型地基于各种授权步骤(这些授权步骤被设计为将访问限制到仅执行被批准应用程序的被授权用户)来限制对网络资源的访问。以这种方式来准许对客户机设备进行访问的一个问题在于,其典型地需要相当大的处理资源来确定该客户机设备是否为执行被批准应用程序的被授权用户。此外,传统的授权步骤不能很好地针对高速网络而按比例增加。
经由互联网来访问网页是可以受到由网络安全设备所进行的筛选的一种类型的网络活动的实例。当用户通过本地浏览器应用程序(例如,互联网浏览器、Netscape、FireFox等)来访问网页(或网站)时,该应用程序下载对应于该网页的内容并呈现(显示)该网页。一个网页一般包括一个或更多的组成文件(例如,排队对象),组成文件代表了组成由浏览器应用程序所显示的完整网页的各个成分(例如,图像、帧、文本等)。由唯一标识该网页在该互联网上的位置的统一资源定位器(URL)来标识每个排队对象(包括该网页本身)。一般用超文本链接标示语言(HTML)来对网页进行编码。为了显示网页,浏览器应用程序首先请求该网页的内容,然后解析与该网页相关联的HTML以收集对其余的URL和指令的参考用于显示该网页。该浏览器应用程序执行要求获得显示该网页所必须的其余排队对象的请求。
对显示一个网页需要多长时间的度量可以称作网页的响应时间或网页下载响应时间。网页下载响应时间可以是与组成该网页的排队对象相关联的累积的响应时间(例如,排队对象响应时间)的函数。可以经由互联网协议(诸如,超文本传输协议,HTTP)来访问网页。当今使用的最常见的HTTP版本是HTTP版本1.1(或HTTP1.1)。HTTP 1.1运行在传输控制协议(TCP)提供的传输层上。HTTP1.1本身和HTTP 1.0(HTTP的早期版本)有所不同,主要在于HTTP1.1可以使用同一TCP连接来查询一个或更多排队对象。对于HTTP1.0,为各个单独的排队对象查询建立单独的TCP连接。然而,HTTP1.1可能依赖于特定网络浏览器的实现方式和网络浏览器所使用的策略以对这些连接进行分组。
发明内容
在一种实现方式中,由设备执行的方法可以包括:接收第一超文本传输协议(HTTP)数据包;基于该HTTP数据包创建第一会话;以及创建第一会话的会话高速缓存条目。该方法还可以包括:接收第二HTTP数据包;执行会话高速缓存查找以识别第二HTTP数据包与会话高速缓冲条目的匹配;以及基于第二HTTP数据包与会话高速缓存条目的匹配创建第二HTTP会话。
在另一种实现方式中,一种设备可以包括用于存储会话高速缓存和多条指令的存储器、及处理器。处理器可以执行存储器中的指令用于:接收第一超文本传输协议(HTTP)数据包,基于HTTP数据包创建第一会话,将来自第一会话的信息存储在会话高速缓存中,接收第二HTTP数据包,对来自第二HTTP数据包的信息与来自存储在会话高速缓存中的第一会话的信息进行匹配,并基于匹配的信息创建第二HTTP会话。
在又一种实现方式中,一种设备可以包括:用于基于第一HTTP数据包创建第一会话的装置,用于将来自第一会话的信息存储在会话高速缓存中的装置,用于接收第二HTTP数据包的装置,用于基于存储的来自第一会话的信息创建第二HTTP会话的装置,以及用于建立(install)第二会话的装置。
在又一种实现方式中,一种计算机可读存储设备可以存储计算机可执行的指令。该计算机可读存储器可以包括:一个或更多用于接收超文本传输协议(HTTP)数据包的指令;一个或更多用于执行会话高速缓存查找以识别HTTP数据包与会话高速缓存条目的匹配的指令,该会话高速缓存条目包括源IP地址字段、目的IP地址字段、目的端口字段、及协议字段;一个或更多用于复制该会话高速缓存条目以创建用于该HTTP数据包的会话的指令;以及一个或更多用于建立该HTTP数据包的会话的指令。
附图说明
结合于此并构成说明书一部分的附图示出了本文描述的一个或多个实施例,并结合说明书一起对这些实施例加以阐述。在附图中:
图1是示出了可以实现本文描述的系统和方法的示例性网络的示图;
图2是示出了图1的客户机、网络设备、及服务器的示例性配置的框图;
图3是图2的网络设备中实现的部件的示例性功能框图;
图4是可以用于会话高速缓存查找的示例性会话高速缓存数据结构;
图5A和5B示出了当启动一组HTTP连接时由图2的网络设备进行的示例性HTTP数据包处理;
图6示出了用于为HTTP连接提供快速会话创建路线的示例性过程;以及
图7示出了用于执行图6的第一路线处理的示例性过程。
具体实现方式
以下详细描述参照了附图。不同附图中的相同参考标号可以标识相同或类似的元件。此外,以下详细描述不对本发明构成限制。
本文描述的系统和方法可以在网络设备内提供快速会话创建路线用于HTTP连接,诸如用于同一网页/网站的连接。可以基于在一个(或多个)HTTP数据包中识别的源互联网协议(IP)地址、目的IP地址、目的端口、和/或协议来从第一连接创建会话高速缓存。稍后可以使用会话高速缓存条目来复制新的会话用于随后对同一网页/网站的连接,从而可以改善该网页/网站的响应时间。
本文中所使用的术语“数据包”可以指所有类型的数据包或其他单位的信息或数据,包括但不限于固定长度单元和可变长度数据包,它们每种都可以或不可以划分为较小的数据包或单元。本文所使用的术语“数据包”还可以指数据包本身或数据包标识符两者,诸如但不限于数据包的全部或一部分、或数据包报头、数据结构值、指针或索引、或数据包的直接或间接标识或任意其他部分或与其关联的信息。
示例性网络
图1是可以实现本文描述的系统和方法的示例性网络100的示图。网络100可以包括:客户机110-1、110-2、及110-3(下文中总地称作“多个客户机110”及总地称作“客户机100”);网络设备120;服务器130;以及网络140。为了简明提供了图1所示的示例性配置。应当理解,典型的网络可以包括比图1所示的设备或多或少的设备。另外,可以在网络100中包括有助于在图1所示的各个实体之间进行通信的其他设备。
每个客户机110均可以包括诸如个人计算机、膝上型计算机、个人数字助理(PDA)、基于网络的设备、无线电话、视频游戏控制台、或其他类型的计算或通信设备、或者这些设备之一上运行的程序的设备。客户机100可以经由有线、无线或光学连接通过网络140与服务器130进行通信。
网络设备120可以包括防火墙设备、侵入窃密检测系统、路由器、服务器、或执行与访问网络100中的资源(诸如服务器130和/或与服务器130相关联的资源)相关联的安全相关功能的其他设备。网络设备120可以应用访问策略来确定是否准许、拒绝、或限制对所期望资源的访问。网络设备120还可以执行负载均衡以更高效地分配网络通信量。网络设备120可以使用基于流的路由来使安全和通信量进行决定加速。在一个示例性实现方式中,如本文进一步描述的,网络设备120可以存储HTTP会话信息并检索HTTP会话信息以使随后的HTTP会话创建加速。
服务器130可以包括一个服务器/计算设备、或一组服务器/计算设备,其向客户机110提供对网络100中各种资源的访问。在一些实现方式中,网络资源位于服务器130上。在其他实现方式中,网络资源可以位于服务器130的外部(图1中未示出)。在一个实现方式中,服务器130可以包括用于接收超文本传输协议(HTTP)请求和/或用于向客户机提供HTTP响应的应用程序(例如,浏览器)。在一个实现方式中,网络服务器130可以提供静态和/或动态的网页、节目等。
网络140可以包括一个或更多网络,诸如局域网(LAN)或私有网络(诸如公司网络或企业内部互联网)。网络140还可以包括广域网(WAN)、城域网(MAN)、电话网络(诸如公共交换电话网络(PSTN))、互联网、蜂窝网络、卫星网络、其他类型网络、或网络组合。
示例性网络设备配置
图2示出了网络设备120的示例性配置。可以以类似方式配置客户机110和服务器130。网络设备120可以包括总线210、处理器220、主存储器230、只读存储器(ROM)240、存储设备250、输入设备260、输出设备270、及通信接口280。总线210可以包括允许在网络设备120的这些元件之间进行通信的路径。
处理器220可以包括处理器、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或可以解释并执行指令的处理逻辑。存储器230可以包括随机存取存储器(RAM)或者可以存储由处理器220执行的指令和信息的其他类型动态存储设备。在示例性实现方式中,如本文中进一步描述的,存储器230可以包括用于HTTP会话信息的会话高速缓存。ROM 240可以包括ROM设备或可以存储由处理器220使用的静态信息和指令的其他类型静态存储设备。存储设备250可以包括磁和/或光学记录介质及其相应驱动器。
输入设备260可以包括允许操作者向网络设备120输入信息的机构,诸如键盘、鼠标、笔、语音识别和/或生物测定机构等。输出设备270可以包括向操作者输出信息的机构,包括显示器、打印机、扬声器等。通信接口280可以包括类似于收发机的机构,该机构允许网络设备120与其他设备和/或系统进行通信。例如,通信接口280可以包括调制解调器或通向LAN的以太网接口。可替换地,通信接口280可以包括用于经由网络(诸如网络140)进行通信的其他机构。
网络设备120可以执行与识别由客户机110执行的应用程序以及提供访问管理相关联的处理,以下将对其进行详细描述。根据一种示例性实现方式,响应于处理器220执行包含在计算机可读介质(诸如存储器230)中的指令序列,网络设备120可以执行这些操作。计算机可读介质可以限定为物理存储设备或逻辑存储设备。
可以将软件指令从其他计算机可读介质(诸如数据存储设备250)或经由通信接口280从其他设备中读入到存储器230中。包含在存储器230中的软件指令可以使处理器220执行稍后将描述的过程。可替换地,可以使用硬线电路代替软件指令,或者组合使用硬线电路与软件指令,来实现本文所描述的过程。因此,本文所描述的实现方式不局限于硬件电路和软件的任何特定组合。
尽管图2示出了网络设备120的示例性部件,但在其他实现方式中,与图2所示的相比,网络设备120可以包含少一些的部件、不同的部件、不同布置的部件、或额外的部件。在又一种实现方式中,网络设备120的一个部件可以执行所描述的由网络设备120的另一部件执行的一个或更多其他任务。
示例性功能示图
图3示出了由网络设备120执行的示例性处理功能。参照图3,网络设备120的处理器220可以通过基于流的处理使安全和通信量进行决定加速。一般而言,基于流的处理可以使用会话状态信息来使单独的逐个数据包进行的决定最小化并改善数据包吞吐量。如所示,对于所有进来的数据包,处理器220可以实施用于接收数据包的处理,对第2层的报头进行去封装(encapsulate),并实施会话查找300。在会话查找300处,处理器200可以在第2层级处检查通信量以确定数据包是否为新的会话或现有会话的一部分。依据在会话查找300处识别的流(例如,新的或现有的会话),处理器220可以沿着两条逻辑路线(第一(慢)路线或快速路线)之一对数据包进行处理。第一(慢)路线可以要求处理器220创建新的会话并建立新的会话(会话创建/建立310),其可以包括会话设置步骤、实施策略查找、路由查找、及其他活动。会话创建/建立310还可以包括创建会话高速缓存条目,这将在下面进行描述。快速路线处理320可以允许处理器220绕过与会话创建相关联的大多数步骤以更快速地转发进来的数据包。一般而言,可以利用逻辑级别/寄存器级别的硬件来实现快速路线处理。在会话创建/建立310或快速路线处理320之后,处理器220可以应用可选服务、利用第2层报头对数据包进行去封装,并将数据包朝向其目的地发送。
当客户机(例如客户机110)访问(例如)网站时,可以与一个服务器(例如服务器130)建立多个HTTP连接。传统上,通过第一(慢)路线对每个新连接的第一个数据包(例如,HTTP同步(SYN)数据包)进行处理,然后可以通过快速路线发送与该HTTP会话有关的其余数据包。如本文稍后进一步描述的,增添会话高速缓存查找330可以允许通过快速会话创建340来发送新的HTTP连接的第一个数据包。
典型的HTTP数据包报头可以包括源IP地址、目的IP地址、源端口、目的端口、及协议指示符(例如,HTTP)。已经观察到,针对一个特定网站或一个网页的多个HTTP连接的参数可能具有某些共同特性。例如,用于这些连接中的每个连接的进入的接口、源IP地址、目的端口、策略、及路由常常相同。此外,目的IP地址在一小组地址之内可以只具有局部差异。对于一个特定网页(或网站)的多个HTTP连接,只有源端口可能倾向于始终如一地变化。因此,之前的HTTP连接的共同特性可以用于使随后的HTTP连接的会话创建简化。会话高速缓存数据结构存储来自一个特定网站的之前多个HTTP连接的可重复使用信息。会话高速缓存查找330可以使用该会话高速缓存确定可以通过快速会话创建340还是可以通过较慢会话创建/建立310来引导数据包。
快速会话创建340可以复制来自匹配的会话高速缓存条目的软件和硬件会话信息。具体地,可以利用来自匹配的会话高速缓存条目的源IP地址、目的IP地址、目的端口、协议、及会话权标来绕过会话创建/建立310典型所需的大多数处理。可以在数据包被转发给快速路线处理320之前在快速会话创建340处完成硬件会话的建立(例如,基于数据包的源端口)。
示例性会话高速缓存数据结构
图4提供了可以用于会话高速缓存查找的示例性会话高速缓存数据结构400。处理器220可以利用会话高速缓存400执行会话高速缓存查找330。可以创建会话高速缓存400来存储由之前第一路线处理为特定网站连接创建的可重复使用的软件会话信息和硬件会话信息。例如,当在处理器220中通过慢路线对HTTP数据包进行处理时在会话创建/建立310期间可以创建会话高速缓存400的条目。
参照图4,会话高速缓存数据结构400可以包括具有源IP地址字段410、目的IP地址字段420、目的端口字段430、协议字段440、会话权标字段450、及老化计数器字段(age counter field)460的表。源IP地址字段410可以代表源设备,诸如客户机110。在这种情况下,源IP地址字段410可以包括IP地址,诸如与客户机110相关联的IP地址。目的IP地址字段420可以代表目的服务器,诸如服务器130。在这种情况下,目的IP地址420可以包括IP地址,诸如与服务器130相关联的IP地址或与网络100中的其他服务器(未示出)相关联的IP地址。目的端口字段430可以包括这样的信息,该信息标识了与(例如)从客户机110传送来的数据包相关联的目的端口号。协议字段440可以代表与(例如)从客户机110传送来的数据包相关联的协议。会话权标字段450可以标识这样的会话信息,该会话信息表明(例如)用于特定会话的策略和/或路由信息。
在其他实现方式中,源IP地址字段410、目的IP地址字段420、目的端口字段430、协议字段440、及会话权标字段450可以被结合为一个哈希值。在又一种实现方式中,会话高速缓存数据结构400可以包括少一些的字段、额外的字段、不同的字段、或不同布置的字段。例如,在一种实现方式中,可以不使用会话权标字段450。
利用唯一会话和/或哈希值的标识,处理器220可以生成存储在会话高速缓存数据结构400中的新的条目。会话高速缓存数据结构400中的每个条目还可以包括老化计数器,当对该特定条目有活动时该老化技术器(例如,在老化计数器字段460中)复位。如果老化计数器在特定时段(例如,60秒)内没有经历活动,则可以认为相关联的条目是“老化掉的”或不活动的。可以删除不活动的条目以在会话高速缓存数据结构400中为新的条目创建空间。
示例性的处理
图5A和5B示出了当启动一组HTTP连接(例如,用于访问一个网站的一组HTTP连接)时由网络设备120的处理器220进行的示例性HTTP数据包处理。假设在试图从客户机(例如客户机110)访问新的网站(例如,在服务器130处)的第一连接处发送HTTPSYN数据包510。此外假设在访问同一网站时从同一客户机随后发送HTTP SYN数据包520。
参照图5A,会话查找300可以识别HTTP SYN数据包510并实施会话高速缓存查找330。如果HTTP SYN数据包510不包括具有会话高速缓存数据结构400中的匹配的报头信息,则HTTP SYN数据包510将在慢路线上发送到会话创建/建立310。在其他处理中,会话创建/建立310可以创建对应于HTTP SYN数据包510的报头信息和/或会话权标信息的会话高速缓存条目。可以基于(例如)识别活动的会话ID的会话查找300通过快速路线处理对随后在同一HTTP会话中发送/接收的数据包(例如,HTTP SYN/确认、HTTP确认、HTTP Get/Post、及HTTP响应数据包)进行引导。
参照图5B,会话查找300可以识别HTTP SYN数据包520并实施会话高速缓存查找330。HTTP SYN数据包520可以类似地包括具有会话高速缓存数据结构400中的匹配的报头信息。具体地,HTTP SYN数据包520可以匹配来自HTTP SYN数据包510的之前存储的高速缓存的信息。如果HTTP SYN数据包520包括具有会话高速缓存数据结构400中的匹配的报头信息,则HTTP SYN数据包520可以被引导到快速会话创建340,然后被引导到快速路线处理320。可以基于(例如)会话查找300通过快速路线处理来引导对随后在同一HTTP会话中发送/接收的数据包(例如,HTTP SYN/确认、HTTP确认、HTTP Get/Post、及HTTP响应数据包)的处理。
图6示出了用于为HTTP连接提供快速会话创建路线的示例性过程600。在一种实现方式中,可以通过一个或更多网络设备120来执行示例性过程600。可以在网络(诸如网络140)上建立的TCP/IP连接中实现过程600。以下将在客户机(诸如客户机110)访问来自服务器(诸如服务器130)的基于HTML的网页的上下文中描述过程600的实例。
例如,处理可以由接收数据包(框610)并确定是否识别了该数据包的会话(框620)开始。例如,网络设备120可以接收TCP/IP数据包并执行会话查找以确定该数据包是否包括会话标识符。该会话标识符可以表明该数据包是之前识别的流的一部分。如果对该数据包识别了会话(框620-是),则可以执行快速路线处理(框690)。例如,网络设备120可以通过处理器220的快速处理路线320引导该数据包。
如果未对该数据包识别会话(框620-否),则可以确定该数据包是否用于一个新的HTTP连接(框630)。例如,网络设备120可以确定该数据包是否为HTTP SYN数据包。如果该数据包不是用于新的HTTP连接(框630-否),则可以对非HTTP数据包执行基于流的处理(框640)。例如,如果网络设备120确定该数据包不与正在进行的会话相关联并且该数据包未启动HTTP会话,则该数据包将经历传统的处理,诸如传统TCP/IP数据包的慢路线处理。
如果该数据包是用于新的HTTP连接(框630-是),则可以确定是否存在会话高速缓存匹配(框650)。例如,在一种实现方式中,网络设备120可以基于数据包的源IP地址、目的IP地址、目的端口、协议、及会话权标来实施会话高速缓存查找。如果不存在会话高速缓存匹配(框650-否),则可以执行第一路线处理(框660)。例如,网络设备120可以在处理器220内将数据包引导至会话创建/建立310。以下将参照图7更详细地对执行第一路线处理加以描述。
如果存在会话高速缓存匹配(框650-是),则可以从会话高速缓存中复制软件和硬件会话信息(框670)。例如,网络设备120可以将数据包引导至快速会话创建340以从匹配的会话高速缓存条目中拷贝源IP地址、目的IP地址、目的端口、协议、及会话权标。
可以建立硬件会话(框680)。例如,网络设备120(例如,快速会话创建340)可以基于该数据包的源端口来建立硬件会话。在建立硬件会话之后,可以完成快速会话创建并可以执行快速路线处理(框690)。
图7是用于执行上述的关于框660的第一路线处理的示例性过程。可以创建HTTP会话(框710)。例如,网络设备120可以基于(例如)HTTP SYN数据包的源IP地址、目的IP地址、源端口、目的端口、及协议以传统的方式来创建新的HTTP会话。
可以创建会话高速缓存条目(框720)。例如,网络设备120可以创建包括了HTTP SYN数据包的源IP地址、目的IP地址、协议、及会话权标的会话高速缓存条目。会话高速缓存条目可以存储在存储器(例如,存储器230)中,供随后的HTTP数据包的会话高速缓存查找330所用。
可以建立会话(框730)。例如,网络设备120可以按照传统方式建立用于新的HTTP连接的会话。
可以将硬件会话拷贝到高速缓存表(框740)。例如,在一种实现方式,网络设备120可以将硬件会话信息(例如,目的端口)拷贝到与用于该HTTP SYN数据包的之前高速缓存的新会话相对应的会话高速缓存条目。在另一种实现方式中,硬件会话信息可以存储在单独的高速缓存表(诸如全球高速缓存端口表)中。将硬件会话拷贝到高速缓存表可以是可选的。进来的数据包的目的端口信息可以可选地用于搜索会话高速缓存条目。例如,如果HTTP SYN数据包的目的端口与端口高速缓存表中的一个条目相匹配,则可以实施对相应会话高速缓存的搜索。
结论
本文描述的实现方式可以使得能够进行HTTP连接的高速会话创建。系统和/或方法可以包括接收第一超文件传输协议(HTTP)数据包、基于该HTTP数据包来创建第一会话、以及创建用于第一会话的会话高速缓存条目。当接收到第二HTTP数据包时,可以执行会话高速缓存查找来识别第二HTTP数据包与该会话高速缓存条目的匹配。可以基于第二HTTP数据包与会话高速缓存条目的匹配来创建第二HTTP会话。
前面的实现方式描述提供了示例和描述,但不旨在排他或将本发明限制到所公开的精确形式。根据上述教导可以进行或者可以获得改变和变化。
此外,尽管已参照图5-7描述了多个系列框,但是在其他实现方式中可以改变这些框的顺序。此外,可以平行执行多个非依赖性的框。
显而易见的是,可以按照附图所示的那些实现方式中的软件、固件、及硬件的许多不同形式实现本文所描述的多个方面。用于实现这些方面的实际的软件代码或特定控制硬件不对本发明构成限制。因此,没有参照特定软件代码来描述这些方面的操作和行为,可以理解,可以将软件和控制硬件设计为基于本文中的描述来实现这些方面。
此外,本文所描述的特定实现方式可以被实现为执行一个或更多功能的“逻辑”。该逻辑可以包括硬件(诸如处理器、微处理器、专用集成电路或现场可编程门阵列)或硬件和软件的组合。
要强调的是,术语“包括(comprise/comprising)”被用在本文中时,用来指明出现了所陈述的特征、整体、步骤、或部件,而不是排除出现或增添一个或更多其他特征、整体、步骤、部件、或其组合。
此外,本文所使用的术语“表”和“数据库”可以指代物理存储设备或逻辑存储设备中的任意可搜索的数据形式或布置。
尽管在权利要求中书面陈述了和/或在本说明书中公开了多个特征的特定组合,但是这些组合不旨在限制本发明的公开。实际上,可以按照多种未在权利要求书中具体书面陈述和/或在说明书中公开的方式对这些特征中的许多特征进行组合。
本申请中使用的元件、动作、或指令均不可解释为对于本发明来说是关键的或实质的,除非明确地这样描述。同样,作为在本文中使用的,冠词“一个“a””旨在包括多于一个的条目。在旨在描述一个项目的情况下,使用术语“一个(one)”或类似语言。此外,术语“基于”旨在表达“至少部分地基于”,除非以其他方式明确陈述。
Claims (13)
1.一种由设备执行的用于基于会话高速缓存的超文本传输协议HTTP加速的方法,包括:
接收第一HTTP数据包,所述第一HTTP数据包与客户端和服务器之间的第一连接相关联;
基于所述第一HTTP数据包来创建第一会话;
为所述第一会话创建会话高速缓存条目,其中所述会话高速缓存条目是基于与所述第一会话相关联的第一信息和与所述第一会话相关联的第二信息所结合得到的第一哈希值,
所述第一信息包括:与所述第一会话相关联的源IP地址、与所述第一会话相关联的目的IP地址、与所述第一会话相关联的目的端口、或者与所述第一会话相关联的协议,并且
所述第二信息包括:与所述第一会话相关联的策略信息;
接收第二HTTP数据包,所述第二HTTP数据包与不同于所述第一连接的第二连接相关联;
基于接收到所述第二HTTP数据包来发起第二会话;
所述第二会话的发起包括:
执行会话高速缓存查找以识别所述第二HTTP数据包与所述会话高速缓存条目的匹配;
当识别出所述第二HTTP数据包与所述会话高速缓存条目的匹配时,基于与所述第一会话相关联的策略信息发起所述第二会话,并且
当未识别出所述第二HTTP数据包与所述会话高速缓存条目的匹配时,基于所述第二HTTP数据包发起所述第二会话;
以及
基于所述第二会话更新所述会话高速缓存条目。
2.根据权利要求1所述的方法,其中,发起所述第二会话包括:
从所述会话高速缓存条目复制软件和硬件会话信息;以及
为所述第二会话建立硬件会话。
3.根据权利要求1所述的方法,进一步包括:
建立所述第一会话;以及
将所述第一会话的硬件会话拷贝到目的端口高速缓存。
4.根据权利要求1所述的方法,进一步包括:将所述会话高速缓存条目存储在会话高速缓存表中,其中,所述表包括用于各条目的老化计数器,所述老化计数器在不活动的特定时段后触发对所述会话高速缓存条目的删除。
5.根据权利要求1所述的方法,其中,所述设备包括:
交换机;
路由器;
网关;
服务器设备;或
防火墙设备。
6.根据权利要求1所述的方法,其中,所述第一HTTP数据包和所述第二HTTP数据包是HTTP同步(SYN)数据包。
7.一种用于基于会话高速缓存的超文本传输协议HTTP加速的设备,包括:
用于接收第一HTTP数据包的装置,所述第一HTTP数据包与客户端和服务器之间的第一连接相关联;
用于基于所述第一HTTP数据包来创建第一会话的装置;
用于为所述第一会话的信息创建会话高速缓存条目的装置,其中所述会话高速缓存条目是基于与所述第一会话相关联的第一信息和与所述第一会话相关联的第二信息所结合得到的第一哈希值;
所述第一信息包括:与所述第一会话相关联的源IP地址、与所述第一会话相关联的目的IP地址、与所述第一会话相关联的目的端口、或者与所述第一会话相关联的协议,并且
所述第二信息包括:与所述第一会话相关联的策略信息;
用于接收第二HTTP数据包的装置,所述第二HTTP数据包与不同于所述第一连接的第二连接相关联;
用于基于接收到所述第二HTTP数据包来发起第二会话的装置;
用于发起所述第二会话的装置包括:
用于执行会话高速缓存查找以识别所述第二HTTP数据包与所述会话高速缓存条目的匹配的装置;
用于当识别出所述第二HTTP数据包与所述会话高速缓存条目的匹配时基于与所述第一会话相关联的策略信息发起所述第二会话的装置,以及
用于当未识别出所述第二HTTP数据包与所述会话高速缓存条目的匹配时基于所述第二HTTP数据包发起所述第二会话的装置;
以及
用于基于所述第二会话更新所述会话高速缓存条目的装置。
8.根据权利要求7所述的设备,其中所述设备进一步包括:
用于从所述会话高速缓存条目复制软件和硬件会话信息的装置;以及
用于为所述第二会话建立硬件会话的装置。
9.根据权利要求7所述的设备,其中所述设备进一步包括:
用于建立所述第一会话的装置;以及
用于将所述第一会话的硬件会话拷贝到目的端口高速缓存的装置。
10.根据权利要求7所述的设备,其中,所述设备包括:
交换机;
路由器;
网关;
服务器设备;或
防火墙设备。
11.根据权利要求7所述的设备,其中,所述设备进一步包括用于每个会话高速缓存条目的老化计数器,所述老化计数器在不活动的特定时段后触发对所述会话高速缓存条目的删除。
12.根据权利要求7所述的设备,其中,所述第一HTTP数据包和所述第二HTTP数据包是HTTP SYN数据包。
13.根据权利要求7所述的设备,进一步包括:
用于基于所述第二HTTP数据包中的报头信息实施所述会话高速缓存中的查找的装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910127106.7A CN101834777B (zh) | 2009-03-11 | 2009-03-11 | 基于会话高速缓存的http加速 |
US12/422,439 US8806029B2 (en) | 2009-03-11 | 2009-04-13 | Session-cache-based HTTP acceleration |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910127106.7A CN101834777B (zh) | 2009-03-11 | 2009-03-11 | 基于会话高速缓存的http加速 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101834777A CN101834777A (zh) | 2010-09-15 |
CN101834777B true CN101834777B (zh) | 2015-07-29 |
Family
ID=42718711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910127106.7A Expired - Fee Related CN101834777B (zh) | 2009-03-11 | 2009-03-11 | 基于会话高速缓存的http加速 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8806029B2 (zh) |
CN (1) | CN101834777B (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7675854B2 (en) | 2006-02-21 | 2010-03-09 | A10 Networks, Inc. | System and method for an adaptive TCP SYN cookie with time validation |
US8584199B1 (en) | 2006-10-17 | 2013-11-12 | A10 Networks, Inc. | System and method to apply a packet routing policy to an application session |
US8312507B2 (en) | 2006-10-17 | 2012-11-13 | A10 Networks, Inc. | System and method to apply network traffic policy to an application session |
US9960967B2 (en) | 2009-10-21 | 2018-05-01 | A10 Networks, Inc. | Determining an application delivery server based on geo-location information |
US9215275B2 (en) | 2010-09-30 | 2015-12-15 | A10 Networks, Inc. | System and method to balance servers based on server load status |
US9609052B2 (en) | 2010-12-02 | 2017-03-28 | A10 Networks, Inc. | Distributing application traffic to servers based on dynamic service response time |
US8984616B2 (en) * | 2010-12-08 | 2015-03-17 | International Business Machines Corporation | Efficient routing for reverse proxies and content-based routers |
US20120215926A1 (en) * | 2011-02-22 | 2012-08-23 | Cisco Technology, Inc. | Mechanism for Quick Data Path Setup by Cloning Session Content |
US8539036B2 (en) * | 2011-03-18 | 2013-09-17 | Juniper Networks, Inc. | Modular transparent proxy cache |
US8897154B2 (en) | 2011-10-24 | 2014-11-25 | A10 Networks, Inc. | Combining stateless and stateful server load balancing |
US9386088B2 (en) * | 2011-11-29 | 2016-07-05 | A10 Networks, Inc. | Accelerating service processing using fast path TCP |
US9094364B2 (en) | 2011-12-23 | 2015-07-28 | A10 Networks, Inc. | Methods to manage services over a service gateway |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
US9565120B2 (en) | 2012-01-30 | 2017-02-07 | Broadcom Corporation | Method and system for performing distributed deep-packet inspection |
US9160803B2 (en) * | 2012-06-21 | 2015-10-13 | International Business Machines Corporation | Web storage optimization |
US8782221B2 (en) | 2012-07-05 | 2014-07-15 | A10 Networks, Inc. | Method to allocate buffer for TCP proxy session based on dynamic network conditions |
US9843484B2 (en) | 2012-09-25 | 2017-12-12 | A10 Networks, Inc. | Graceful scaling in software driven networks |
US10021174B2 (en) | 2012-09-25 | 2018-07-10 | A10 Networks, Inc. | Distributing service sessions |
CN108027805B (zh) | 2012-09-25 | 2021-12-21 | A10网络股份有限公司 | 数据网络中的负载分发 |
US10002141B2 (en) | 2012-09-25 | 2018-06-19 | A10 Networks, Inc. | Distributed database in software driven networks |
CN103795770B (zh) * | 2012-10-26 | 2017-07-04 | 伊姆西公司 | 在网络基础设施中提供高速缓存服务的方法和装置 |
US9338225B2 (en) | 2012-12-06 | 2016-05-10 | A10 Networks, Inc. | Forwarding policies on a virtual service network |
US9413651B2 (en) * | 2012-12-14 | 2016-08-09 | Broadcom Corporation | Selective deep packet inspection |
US9531846B2 (en) | 2013-01-23 | 2016-12-27 | A10 Networks, Inc. | Reducing buffer usage for TCP proxy session based on delayed acknowledgement |
US9300578B2 (en) * | 2013-02-21 | 2016-03-29 | Applied Micro Circuits Corporation | Large receive offload functionality for a system on chip |
US9900252B2 (en) | 2013-03-08 | 2018-02-20 | A10 Networks, Inc. | Application delivery controller and global server load balancer |
US9992107B2 (en) | 2013-03-15 | 2018-06-05 | A10 Networks, Inc. | Processing data packets using a policy based network path |
US10027761B2 (en) | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
WO2014179753A2 (en) | 2013-05-03 | 2014-11-06 | A10 Networks, Inc. | Facilitating secure network traffic by an application delivery controller |
CN104243228A (zh) * | 2013-06-07 | 2014-12-24 | 金琥 | 基于会话及http协议标准检测http隧道数据的方法 |
US9424429B1 (en) * | 2013-11-18 | 2016-08-23 | Amazon Technologies, Inc. | Account management services for load balancers |
US10230770B2 (en) | 2013-12-02 | 2019-03-12 | A10 Networks, Inc. | Network proxy layer for policy-based application proxies |
US9942152B2 (en) | 2014-03-25 | 2018-04-10 | A10 Networks, Inc. | Forwarding data packets using a service-based forwarding policy |
US10020979B1 (en) | 2014-03-25 | 2018-07-10 | A10 Networks, Inc. | Allocating resources in multi-core computing environments |
US9942162B2 (en) | 2014-03-31 | 2018-04-10 | A10 Networks, Inc. | Active application response delay time |
US9806943B2 (en) | 2014-04-24 | 2017-10-31 | A10 Networks, Inc. | Enabling planned upgrade/downgrade of network devices without impacting network sessions |
CN103944992B (zh) * | 2014-04-25 | 2017-04-26 | 厦门享游网络科技有限公司 | 一种在ios上加速http的方法 |
US20150310218A1 (en) * | 2014-04-28 | 2015-10-29 | Verify Brand, Inc. | Systems and methods for secure distribution of codes |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9992229B2 (en) | 2014-06-03 | 2018-06-05 | A10 Networks, Inc. | Programming a data network device using user defined scripts with licenses |
US10129122B2 (en) | 2014-06-03 | 2018-11-13 | A10 Networks, Inc. | User defined objects for network devices |
US9986061B2 (en) | 2014-06-03 | 2018-05-29 | A10 Networks, Inc. | Programming a data network device using user defined scripts |
US10581976B2 (en) | 2015-08-12 | 2020-03-03 | A10 Networks, Inc. | Transmission control of protocol state exchange for dynamic stateful service insertion |
US10243791B2 (en) | 2015-08-13 | 2019-03-26 | A10 Networks, Inc. | Automated adjustment of subscriber policies |
GB2543252B (en) * | 2015-08-27 | 2021-03-17 | Metaswitch Networks Ltd | Control of cache data |
US10318288B2 (en) | 2016-01-13 | 2019-06-11 | A10 Networks, Inc. | System and method to process a chain of network applications |
US11044203B2 (en) * | 2016-01-19 | 2021-06-22 | Cisco Technology, Inc. | System and method for hosting mobile packet core and value-added services using a software defined network and service chains |
US10389835B2 (en) | 2017-01-10 | 2019-08-20 | A10 Networks, Inc. | Application aware systems and methods to process user loadable network applications |
US10778668B2 (en) * | 2017-06-02 | 2020-09-15 | Dell Products L.P. | HTTP session validation module |
CN110166506B (zh) * | 2018-02-12 | 2021-11-19 | 中国移动通信有限公司研究院 | 超文本传输协议Http的连接方法及节点设备 |
US11516138B2 (en) * | 2020-04-27 | 2022-11-29 | International Business Machines Corporation | Determining network flow direction |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846409A (zh) * | 2003-09-11 | 2006-10-11 | 国际商业机器公司 | 用于基于传输控制协议话务流特征进行超高速缓存查找的设备和方法 |
CN101233730A (zh) * | 2004-12-31 | 2008-07-30 | Ut斯达康公司 | 能缓存会话中的路由信息的通用端口用户代理及相关方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3963690B2 (ja) * | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
US20070078986A1 (en) * | 2005-09-13 | 2007-04-05 | Cisco Technology, Inc. | Techniques for reducing session set-up for real-time communications over a network |
US20070153721A1 (en) * | 2005-12-30 | 2007-07-05 | Telefonaktiebolaget Lm | Method of transferring session information between access nodes in a mobile communication network |
US20100082747A1 (en) * | 2008-09-29 | 2010-04-01 | College Of William & Mary | Real-time collaborative browsing |
-
2009
- 2009-03-11 CN CN200910127106.7A patent/CN101834777B/zh not_active Expired - Fee Related
- 2009-04-13 US US12/422,439 patent/US8806029B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846409A (zh) * | 2003-09-11 | 2006-10-11 | 国际商业机器公司 | 用于基于传输控制协议话务流特征进行超高速缓存查找的设备和方法 |
CN101233730A (zh) * | 2004-12-31 | 2008-07-30 | Ut斯达康公司 | 能缓存会话中的路由信息的通用端口用户代理及相关方法 |
Also Published As
Publication number | Publication date |
---|---|
US8806029B2 (en) | 2014-08-12 |
US20100235522A1 (en) | 2010-09-16 |
CN101834777A (zh) | 2010-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101834777B (zh) | 基于会话高速缓存的http加速 | |
US10785280B2 (en) | Mechanism for distinguishing between content to be served through first or second delivery channels | |
US10567346B2 (en) | Remote browsing session management | |
US10334016B2 (en) | System and method for context specific website optimization | |
US8365271B2 (en) | Controlling access of a client system to access protected remote resources supporting relative URLs | |
US7127720B2 (en) | Storing state in a dynamic content routing network | |
US7930365B2 (en) | Method and apparatus to modify network identifiers at data servers | |
US9009334B1 (en) | Remote browsing session management | |
US8505024B2 (en) | Storing state in a dynamic content routing network | |
US20150100631A1 (en) | Proactive transmission of network content | |
EP2089817B1 (en) | Method and system for intelligent processing of electronic information | |
EP2724251B1 (en) | Methods for making ajax web applications bookmarkable and crawlable and devices thereof | |
US9208316B1 (en) | Selective disabling of content portions | |
US9491113B2 (en) | Managing network connections for processing network resources | |
US20120246338A1 (en) | Selective use of anonymous proxies | |
WO2020062582A1 (zh) | 信息引流、请求发送、通信加速方法、引流及节点服务器 | |
CN106302630A (zh) | 传送私有数据和数据对象 | |
CN103716319B (zh) | 一种Web访问优化的装置和方法 | |
EP2727024B1 (en) | Remote browsing session management | |
US8281021B1 (en) | Multiple cookie handling | |
CN107070885B (zh) | 信息处理方法、装置及系统 | |
US11875376B2 (en) | Minimizing impact of experimental content delivery on computing devices | |
US11593452B1 (en) | Experiment system integration service | |
US9112912B1 (en) | Security device for preemptively determining policies | |
US9178955B1 (en) | Managing network based content |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Juniper Networks, Inc. Address before: California, USA Applicant before: Jungle network |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: NETSCREEN TECHNOLOGIES INC. TO: JUNIPER NETWORKS INC. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150729 |
|
CF01 | Termination of patent right due to non-payment of annual fee |