CN102685177B - 资源的透明代理缓存方法、网络设备及系统 - Google Patents
资源的透明代理缓存方法、网络设备及系统 Download PDFInfo
- Publication number
- CN102685177B CN102685177B CN201110231959.2A CN201110231959A CN102685177B CN 102685177 B CN102685177 B CN 102685177B CN 201110231959 A CN201110231959 A CN 201110231959A CN 102685177 B CN102685177 B CN 102685177B
- Authority
- CN
- China
- Prior art keywords
- resource
- request
- client device
- caching server
- buffered
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- 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
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了资源的透明代理缓存。一种设备,从客户端设备接收对于能够从源设备获得的资源的请求,并且确定资源是否在缓存服务器中被缓存。当资源被缓存时,该设备提供指示客户端设备从缓存服务器请求资源的第一命令,从客户端设备接收对于资源的第一新请求,并且基于第一新请求使客户端设备能够从缓存服务器接收资源。当资源没有被缓存时,该设备创建防火墙过滤器,提供指示客户端设备从源设备请求资源的第二命令,经由防火墙过滤器从客户端设备接收对于资源的第二新请求,并且基于第二新请求使客户端设备能够从源设备接收资源。
Description
背景技术
服务供应商是出售与服务供应商相关联的网络(例如,互联网、数据网、电信网等)所提供的带宽或访问上述网络的带宽的实体(例如,企业或组织)。服务供应商可以包括电信公司、数据载体、无线通信供应商、互联网服务供应商、提供高速互联网访问的有线电视运营商等。诸如例如视频、音频、图像、软件下载的内容使用的快速增长对服务供应商产生更高的带宽需求,在重大内容和事件附近具有尖峰。
为了处理这种更高的带宽需求,服务供应商在他们的网络中部署服务器的透明超文本传输协议(HTTP)代理缓存设备,诸如缓存服务器。代理缓存设备(这里也称作“代理缓存”)可以缓存受欢迎的内容,这使服务供应商能够将网络应用最优化,并且节省回程带宽成本。通常在层7(开放系统互连(ISO)模型的应用层)上实现代理缓存。代理缓存可以与将请求内容的客户端设备和存储所请求内容的源设备互连的网络设备(例如,路由器)相关联。因为代理缓存利用源设备的地址(例如,互联网协议(IP)地址)向客户端设备发送信息(例如,数据包)且利用客户端设备的IP地址向源设备发送信息,所以代理缓存对于客户端设备和源设备来说是“透明的”。这种配置确保代理缓存对于客户端设备或源设备来说是不可见的。
使交换通信量的客户端与源设备互相连接的网络设备可以利用过滤器或基于策略的路由(PBR),以从网络设备向代理缓存发送诸如对内容的请求的通信量子集。在这种配置中,代理缓存将终止与客户端设备的连接(例如,传输控制协议(TCP)连接)。如果请求是关于存储在代理缓存中的内容,则代理缓存利用源设备的IP地址向客户端设备提供内容。如果所请求的内容没有存储在代理缓存中,则代理缓存利用客户端设备的IP地址连接至源设备,并且从源设备请求内容。代理缓存利用源设备的IP地址向客户端设备提供源设备所返回的内容,并且可以缓存该内容用于将来使用。
然而,以这种方式部署的代理缓存承受着与非对称路由和数据包处理开销相关联的问题。当数据包在一条路径上从客户端设备横贯(traverse)至源设备而应答数据包在不同路径中从源设备横贯至客户端设备时,非对称路由在许多服务供应商网络中发生。在某些情况下,应答数据包可以绕开代理缓存而直接到达客户端设备。由于应答数据包不与任何连接状态匹配,所以客户端设备将丢弃应答数据包,并且将导致代理缓存处超时。
在代理缓存的配置中,由于客户端设备访问广泛种类的内容且这些内容的相当大的部分不可缓存(例如,动态数据),所以缓存命中率(例如,代理缓存存储客户端设备所请求的内容的可能性)通常很低(例如,小于20%)。尽管缓存命中率很低,但是所有客户端设备请求流过代理缓存,并且不必要地增加了代理缓存中的数据包处理开销。
发明内容
根据一个方面,可以通过计算设备执行一种方法。该方法包括:通过计算设备从客户端设备接收对于能够从源设备获得的资源的请求;通过计算设备确定资源是否在缓存服务器中被缓存;当资源在缓存服务器中被缓存时,通过计算设备提供指示客户端设备从缓存服务器请求资源的第一命令;响应于提供第一命令,通过计算设备从客户端设备接收对于资源的第一新请求;通过计算设备以及基于第一新请求使客户端设备能够从缓存服务器接收资源;当资源没有在缓存服务器中被缓存时,通过计算设备创建防火墙过滤器;当资源没有在缓存服务器中被缓存时,通过计算设备提供指示客户端设备从源设备请求资源的第二命令;响应于提供第二命令,经由防火墙过滤器从客户端设备接收对于资源的第二新请求;以及经由防火墙过滤器以及基于第二新请求使客户端设备能够从源设备接收资源,而无需访问缓存服务器。
根据另一方面,一种网络设备可以包括:存储器,存储关于存储在缓存服务器中的资源的信息;以及处理器。处理器可以从客户端设备接收对于能够从源设备获得的资源的请求,并且可以基于所存储的信息,确定资源是否在缓存服务器中被缓存。当资源在缓存服务器中被缓存时,处理器可以提供指示客户端设备从缓存服务器请求资源的第一命令,并且可以响应于提供第一命令,从客户端设备接收对于资源的第一新请求。处理器可以基于第一新请求,使客户端设备能够从缓存服务器接收资源,当资源没有在缓存服务器中被缓存时,可以创建防火墙过滤器,并且当资源没有在缓存服务器中被缓存时,可以提供指示客户端设备从源设备请求资源的第二命令。处理器可以响应于提供第二命令,经由防火墙过滤器从客户端设备接收对于资源的第二新请求,可以经由防火墙过滤器以及基于第二新请求使客户端设备能够从源设备接收资源,而无需访问缓存服务器,并且可以在客户端设备从源设备接收资源后去除防火墙过滤器。
根据又一方面,一个或多个非易失性计算机可读介质可以存储可通过计算设备的一个或多个处理器执行的指令。该介质可以包括:一条或多条指令,用于从客户端设备接收对于能够从源设备获得的资源的请求;一条或多条指令,用于确定资源是否在缓存服务器中被缓存;一条或多条指令,用于当资源在缓存服务器中被缓存时提供指示客户端设备从缓存服务器请求资源的第一命令;一条或多条指令,用于响应于提供第一命令,从客户端设备接收对于资源的第一新请求;一条或多条指令,用于基于第一新请求,使客户端设备能够从缓存服务器接收资源;一条或多条指令,用于当资源没有在缓存服务器中被缓存时,创建防火墙过滤器;一条或多条指令,用于当资源没有在缓存服务器中被缓存时,提供指示客户端设备从源设备请求资源的第二命令;一条或多条指令,用于响应于提供第二命令,经由防火墙过滤器从客户端设备接收对于资源的第二新请求;以及一条或多条指令,用于经由防火墙过滤器以及基于第二新请求,使客户端设备能够从源设备接收资源,而无需访问缓存服务器。
附图说明
并入且构成该说明书一部分的附图示出了这里描述的一个或多个实施方式,与这些描述一起解释这些实施方式。图中:
图1是其中可以实施这里描述的系统和/或方法的示例性网络的示图;
图2是图1中示出的客户端设备、缓存服务器、或源设备的示例性部件的示图;
图3是图1中示出的请求监控器、应答监控器、或网络设备的示例性部件的示图;
图4A和图4B是图1中示出的能够通过网络的示例性部分执行的示例性操作的示图;
图5是图1中示出的请求监控器的示例性功能部件的示图;
图6是通过图5中所示的缓存命中/缺失分离器来保持的示例性信息的示图;
图7是图1中所示的应答监控器的示例性功能部件的示图;
图8是图1中所示的缓存服务器的示例性功能部件的示图;
图9和图10是用于提供根据这里描述的实施方式的代理缓存方案的请求监控功能的示例性处理的流程图;
图11是用于提供根据这里描述的实施方式的代理缓存方案的应答监控功能的示例性处理的流程图;
图12A和图12B示出了用于提供根据这里描述的实施方式的模块化的透明代理缓存的示例性处理的流程图;
图13是能够通过图1中示出的网络的另一示例性部分来执行的示例性操作的示图;
图14是能够通过图1中示出的网络的又一示例性部分来执行的示例性操作的示图;以及
图15是用于对根据这里描述的实施方式的代理缓存方案中的内容通信量进行优化的示例性处理的流程图。
具体实施方式
下面参照附图进行详细的描述。不同附图中的相同参考标号可以指的是相同或类似的元件。
这里描述的系统和/或方法可以提供分离缓存命中(cachehit)与缓存缺失(cachemiss)的模块化的透明代理缓存方案,其中缓存命中可以指的是,当所请求的资源存储在诸如缓存服务器的代理缓存中的时候,而缓存缺失可以指的是,当所请求的资源未存储在诸如缓存服务器的代理缓存中的时候。该系统和/或方法可以使缓存命中通信量能够通过缓存服务器利用存储资源的源设备的IP地址来提供,并且可以使缓存缺失通信量在(例如,请求资源的)客户端设备与源设备之间流动而没有任何层7拦截。缓存服务器可以利用一组经配置的与源设备相关联的IP地址来异步地检索以及存储诸如内容、服务等的资源。在一个实例中,当缓存缺失发生时,该系统和/或方法可以将重定向命令提供回请求资源的客户端设备。响应于重定向命令,客户端设备可以产生可以提供给源设备的新资源请求而没有缓存服务器的干预。
在示例性实施方式中,该系统和/或方法可以从客户端设备接收对于能够从源设备获得的资源的请求,并且可以确定所请求的资源可能在缓存服务器中被缓存(例如,缓存命中)还是可能未被缓存(例如,缓存缺失)。当所请求的资源可能在缓存服务器中被缓存时,该系统和/或方法可以向缓存服务器转发请求。缓存服务器可以基于请求检索被缓存的资源,并且可以向客户端设备转发缓存资源。当所请求的资源可能没有在缓存服务器中被缓存时,该系统和/或方法可以向缓存服务器转发请求,而缓存服务器可以基于请求向客户端设备转发重定向命令。重定向命令可以使客户端设备从源设备获得资源。
在另一示例性实施方式中,该系统和/或方法可以从客户端设备接收对于资源的请求,并且可以确定所请求的资源在缓存服务器中被缓存(例如,缓存命中)还是没有被缓存(例如,缓存缺失)。如果发生缓存命中,则该系统和/或方法可以提供指示客户端设备从缓存服务器请求资源的命令,并且可以基于命令从客户端设备接收用于资源的新请求。该系统和/或方法可以基于新请求使客户端设备能够从缓存服务器接收所请求的资源。如果发生缓存缺失,则该系统和/或方法可以创建防火墙过滤器,并且可以提供指示客户端设备从源设备请求资源的命令。该系统和/或方法可以基于命令经由防火墙过滤器并且从客户端设备接收对于资源的新请求,并且可以基于新请求使客户端设备能够经由防火墙过滤器从源设备接收所请求的资源。该系统和/或方法可以在客户端设备接收所请求的资源后去除防火墙过滤器。
图1是在其中可以实施这里描述的系统和/或方法的示例性网络100的示图。如图所示,网络100可以包括客户端设备110;缓存服务器设备120(这里称作“缓存服务器120”);源设备130,请求监控器设备140(这里称作“请求监控器140”);应答监控器设备150(这里称作“应答监控器150”);网络160;以及设置在或附接至网络160中的网络设备170。网络100的设备可以经由有线和/或无线连接或链路而互相连接。为简单起见,已经在图1中示出单个客户端设备110、缓存服务器120、源设备130、请求监控器140、应答监控器150、网络160、网络设备170。实际上,可以存在更多客户端设备110、缓存服务器120、源设备130、请求监控器140、应答监控器150、网络160和/或网络设备170。并且,在某些情况下,网络100的一个或多个设备可以执行被描述为通过网络100的另一个或多个设备执行的一个或多个任务。
客户端设备110可以包括能够经由网络160和/或网络设备170访问缓存服务器120和/或源设备130的任何设备。例如,客户端设备110可以包括无线电电话、可以结合具有数据处理和数据通信功能的便携式无线电电话的个人通信系统(PCS)终端、可以包括无线电电话、寻呼机、互联网/内联网访问等的个人数字助理(PDA)、无线设备(例如,无线电话)、智能电话、工作站计算机、膝上计算机、个人计算机、或其它类型的计算或通信设备。
缓存服务器120可以包括以这里描述的方式收集、处理、搜索和/或提供信息的一个或多个服务器设备、或其它类型的计算或通信设备。在一个示例性实施方式中,缓存服务器120可以充当来自从源设备130寻找资源的客户端设备110的请求的媒介。这里使用的术语“资源”旨在宽泛地理解为包括诸如视频、音频、图像、软件下载等的内容;诸如传送高清晰度和用户产生的内容、消费者和商业新闻以及信息服务、电子邮件系统等的服务;和/或内容和服务的组合。客户端设备110可以连接至缓存服务器120,并且可以请求能够从源设备130获得的某些资源。缓存服务器120可以评价请求(例如,根据诸如通过IP地址或协议对通信量进行过滤的过滤规则)。如果请求生效,则缓存服务器120可以通过连接至源设备130并且以客户端设备110的名义请求资源而提供所请求的资源。缓存服务器120可以改变来自客户端设备110的请求和/或可以改变来自源设备130的应答。缓存服务器120可以为请求服务,而无需接触源设备130。在这种情况下,缓存服务器120可以缓存(或存储)先前从源设备130请求的特定资源,并且可以向客户端设备110提供特定资源而不涉及源设备130。
源设备130可以包括以这里描述的方式收集、处理、搜索和/或提供信息的一个或多个服务器设备、或其它类型的计算或通信设备。在一个示例性实施方式中,源设备130可以包括客户端设备110可经由网络160和/或网络设备170访问的资源。在一个实例中,源设备130可以向客户端设备110提供资源(例如,经由网络160和/或网络设备170)。可选地,源设备130可以向用于存储的缓存服务器120提供特定资源。缓存服务器120可以存储特定资源,使得缓存服务器120可以当被客户端设备110请求时向客户端设备110提供特定资源,而不涉及源设备130。
请求监控器140可以包括以这里描述的方式收集、处理、搜索和/或提供信息的一个或多个服务器设备、或其它类型的计算或通信设备。在一个示例性实施方式中,请求监控器140可以在TCP/IP的层分离诸如对于存储在缓存服务器120中的资源的请求的缓存命中通信量和诸如对于没有存储在缓存服务器120中的资源的请求的缓存缺失通信量。请求监控器140可以基于存储在存储器中的信息执行这种分离,利用所观测的通信量流(例如,经由网络160和/或网络设备170提供的通信量)和控制协议来动态更新该信息。
在一个示例性实施方式中,请求监控器140可以从客户端设备110接收对于能够从源设备130获得的资源的请求,可以确定所请求的资源在缓存服务器120中可能被缓存(例如,缓存命中)还是可能没有被缓存(例如,缓存缺失)。如果所请求的资源可能在缓存服务器120中被缓存,则请求监控器140可以向缓存服务器120转发请求。缓存服务器120可以基于请求检索缓存资源,并且可以向客户端设备110转发被缓存的资源。如果所请求的资源可能没有在缓存服务器120中被缓存,则请求监控器140可以向缓存服务器120转发请求,并且缓存服务器120可以基于请求向客户端设备110转发重定向命令。重定向命令可以使客户端设备110从源设备130获得资源。
应答监控器150可以包括以这里描述的方式收集、处理、搜索和/或提供信息的一个或多个服务器设备、或其它类型的计算或通信设备。在一个示例性实施方式中,应答监控器150可以监控从源设备(例如,源设备130)向客户端设备(例如,客户端设备110)提供的通信量(例如,应答流),并且可以基于一组可配置的参数,诸如对象大小、缓存终止时间、可缓存的总带宽等来确定通信量是否包括可能存储在缓存服务器120中的资源。应答监控器150可以向请求监控器140提供具有可缓存的资源的源设备的地址(例如,IP地址)。应答监控器150可以基于所接收的通信量产生报告。例如,应答监控器150可以生成描述通过缓存服务器120提供的潜在带宽储蓄的报告、基于诸如源设备IP地址、多用途互联网邮件扩展(MIME)类型、MIME规模等的各种参数描述通信量分布的报告、和/或其它类似的报告。
网络160可以包括服务供应商网络,诸如局域网(LAN);广域网(WAN);城域网(MAN);电话网(例如,公共交换电话网或蜂窝网);互联网;或这些网络的组合。
网络设备170可以包括通信量传送设备,诸如网关、路由器、交换机、防火墙、网络接口卡(NIC)、集线器、网桥、代理服务器、光分插复用器(OADM),或处理和/或传送通信量(例如,数据包)的其它类型的设备。在一个实例中,网络设备170可以使客户端设备110、缓存服务器120、源设备130、请求监控器140、和/或应答监控器150能够彼此通信。在另一实例中,网络设备170可以使客户端设备110请求和接收来自缓存服务器和/或源设备130的资源。
尽管图1示出网络100的示例性设备,但是在其它实施方式中,网络100可以包括比图1所示的更少的设备、不同的设备、不同配置的设备、或附加设备。
图2是可以对应于客户端设备110、缓存服务器120或源设备130(图1)的设备200的示例性部件的示图。在某些情况下,设备200可以对应于请求监控器140和/或应答监控器150(图1)。在其它情况下,客户端设备110、缓存服务器120、源设备130、请求监控器140或应答监控器150可以包括一个或多个设备200。如图2所示,设备200可以包括总线210、处理单元220、主存储器230、只读存储器(ROM)240、存储设备250、输入设备260、输出设备270和/或通信接口280。总线210可以包括允许在设备200的部件之间进行通信的路径。
处理单元220可以包括一个或多个处理器、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或其它类型的解释和执行指令的处理单元。主存储器230可以包括存储由处理单元220执行的指令和信息的随机存取存储器(RAM)或其它类型的动态存储设备。ROM240可以包括存储由处理单元220使用的静态信息和/或指令的ROM设备或其它类型的静态存储设备。存储设备250可以包括磁和/或光记录介质及其相应的设备,或诸如闪存的可移动存储器。
输入设备260可以包括允许操作者向设备200输入信息的机构,例如键盘、鼠标、开关、按钮、声音识别和/或生物计量机构、触摸屏等。输出设备270可以包括向操作者输出信息的机构,包括显示器、扬声器、发光二极管(LED)等。通信接口280可以包括任何使设备200能够与其它设备和/或系统进行通信的类似收发器的机构。例如,通信接口280可以包括经由网络与另一设备或系统进行通信的机构。在一个实施方式中,通信接口280可以包括诸如以太网接口的有线接口,或诸如射频接口的无线接口。
如这里所描述的,设备200可以响应于执行包含在诸如主存储器230的计算机可读介质中的软件指令的处理单元220来执行特定操作。计算机可读介质可以限定为非易失性(non-transitory)存储设备。存储设备可以包括在单个物理存储设备内或分布在多个物理存储设备上。可以经由通信接口280从诸如存储设备250的另一计算机可读介质,或从另一设备读取软件指令至主存储器230。包含在主存储器230中的软件指令可以使处理单元220执行这里描述的处理。可选地,可以使用硬连线电路代替软件指令或与软件指令相结合来执行这里描述的处理。因此,这里描述的实施方式不限于任何特定的硬件电路和软件的组合。
尽管图2示出设备200的示例性部件,但是在其它实施方式中,设备200可以包括比图2示出的更少的部件、不同的部件、不同配置的部件、或附加部件。可选地,或另外,设备200的一个或多个部件可以执行被描述为通过设备200的一个或多个其它部件执行的一个或多个其它任务。
图3是可以对应于请求监控器140、应答监控器150、网络设备170(图1)的设备300的示例性部件的示图。在某些情况下,请求监控器140、应答监控器150、网络设备170可以包括一个或多个设备300。如图3所示,设备300可以包括输入端口310、切换机构320、输出端口330、控制单元340。
输入端口310可以是物理链路的附接点并且可以是用于诸如数据包的输入通信量的入口点。输入端口310可以执行数据链路层封装和解封装。在示例性实施方式中,输入端口310可以发送和/或接收数据包。
切换机构320可以使输入端口310和输出端口330互相连接。可以利用许多不同的技术实现切换机构320。例如,可以经由总线、交叉开关(crossbar)、和/或利用可以用作临时缓冲区以在通信量最终被调度为传送至输出端口330之前存储来自输入端口310的通信量的共享存储器,实现切换机构320。
输出端口330可以存储数据包,并且可以调度用于输出物理链路上的服务的数据包。输出端口330可以包括支持优先级和保证(guarantee)的调度算法。输出端口330可以支持数据链路层封装和解封装,和/或各种更高层协议。在示例性实施方式中,输出端口330可以发送数据包和/或接收数据包。
控制单元340可以使用路由协议和一个或多个用于转发数据包的转发表。控制单元340可以连接有输入端口310、切换机构320、输出端口330。控制单元340可以计算转发表、实施路由协议和/或运行软件以配置和管理设备300。控制单元340可以处理任何其目标地址在转发表中没找到的数据包。
在示例性实施方式中,控制单元340可以包括总线350,总线350可以包括允许再处理器360、存储器370、通信接口380之间进行通信的路径。处理器360可以包括一个或多个处理器、微处理器、ASIC、FPGA,或其它类型的可以解释和执行指令的处理单元。存储器370可以包括RAM、ROM设备、磁和/或光记录介质及其相应的设备、和/或其它类型的可以存储通过处理器360执行的信息和指令的静态和/或动态存储设备。存储器370同样可以在期望数据包直接返回切换机构320、在切换机构320中排队、最终被调度为发送至输出端口330之前,临时存储来自输入端口310的通过处理器360处理的输入通信量(例如,数据包的报头或整个数据包)。通信接口380可以包括使控制单元340与其它设备和/或系统通信的类似收发器的装置。
如这里所描述的,设备300可以执行特定操作。设备300可以响应于执行包含在诸如存储器370的计算机可读介质中的软件指令的处理器360执行特定操作。可以从诸如数据存储设备的另一计算机可读介质,或经由通信接口380从另一设备将软件指令读取至存储器370。包含在存储器370中的软件指令可以使处理器360执行这里描述的处理。可选地,可以使用硬连线电路代替软件指令或与软件指令相结合来执行这里描述的处理。因此,这里描述的示例性实施方式不限于任何特定的硬件电路和软件的组合。
尽管图3示出设备300的示例性部件,但是在其它示例性实施方式中,设备300可以包括比图3示出的更少的部件、不同的部件、不同配置的部件、或附加部件。可选地,或另外,设备300的一个或多个部件可以执行(描述为通过设备300的一个或多个其它部件执行的)一个或多个其它任务。
图4A和图4B是能够通过网络100的示例性部分400执行的示例性操作的示图。如图4A和图4B所示,示例性网络部分400可以包括客户端设备110、缓存服务器120、源设备130、请求监控器140、应答监控器150、网络设备170。客户端设备110、缓存服务器120、源设备130、请求监控器140、应答监控器150、网络设备170可以包括上面参照图1~图3描述的一个或多个特征。
如图4A所示,客户端设备110可以向网络设备170提供对于资源的请求405,并且网络设备170可以向请求监控器140提供请求405。请求监控器140可以接收请求405,并且可以基于信息(例如,在请求监控器140中提供且在下面参照图6描述的)确定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)还是可能没有在缓存服务器120中被缓存(例如,缓存缺失)。对于图4A中所示的操作,假设所请求的资源没有在缓存服务器120中被缓存。因此,请求监控器140可以向网络设备170提供缓存缺失的指示410。
尽管在图4A中未示出,但请求监控器140可以接收来自客户端设备110或其它客户端设备(例如,经由网络设备170或其它网络设备)的额外的资源请求,并且可以过滤额外的资源请求(例如,包括请求405)以产生过滤后请求415。在一个示例性实施方式中,请求监控器140可以基于与源设备(例如,源设备130)相关联的IP地址的“监视列表(watchlist)”过滤额外的资源请求(例如,产生过滤后请求415)。可以通过请求监控器140经由控制协议(例如,TCP)预配置和/或动态更新监视列表。监视列表可以包括具有与“拦截列表”(例如,同样在请求监控器140中提供的)不匹配的HTTPGET请求(例如,所请求的资源)的IP数据包。下面参照图6描述拦截列表。如图4A进一步所示,请求监控器140可以经由控制协议向缓存服务器120报告请求405和/或过滤后请求415。
应答监控器150可以监控从源设备130向客户端设备110提供的通信量(例如,应答流量)。应答监控器150可以监控从其它源设备向其它客户端设备提供的通信量,并且可以基于一套可配置的参数(例如,对象规模、缓存终止时间、可缓存的总带宽等)确定通信量是否包括可以在缓存服务器120中缓存(或存储)的资源。如图4A进一步所示,应答监控器150可以向请求监控器140提供具有可缓存的资源的源设备(例如,源设备130)的地址420(例如,IP地址)。请求监控器140可以接收地址420,并且可以向监视列表添加地址420。应答监控器150同样可以产生基于所监控的通信量的报告425。在一个实例中,报告425可以包括描述通过缓存服务器120提供的潜在带宽储蓄的报告、基于诸如源设备IP地址、MIME类型、MIME规模等的各种参数描述通信量分布的报告。
缓存服务器120可以从请求监控器140接收过滤后请求415(例如,其可以包括请求405),并且可以从过滤后请求415中提取在数据包中提供的诸如统一资源定位符(URL)的信息。所提取的信息可以包括通过过滤后请求415识别的源设备处可得到的且与监视列表(例如,包括具有可缓存的资源的源设备的IP地址)相匹配的资源。如参考标号430所示,缓存服务器120可以将所提取的信息添加为要摄取的候选资源,并且可以摄取候选资源。摄取430可以指的是缓存服务器120从源设备检索候选资源且在与缓存服务器120相关联的存储器中存储所检索的资源。在一个实例中,缓存服务器120在处理请求405时从源设备130摄取(430)候选资源。在另一实例中,缓存服务器120可以在不同时间(例如,在处理请求405之后)摄取(430)一个或多个候选资源。缓存服务器120可以在与缓存服务器120相关联的存储设备存储检索的候选资源。
拦截通信量可以包括通过以源设备130为目的地的客户端设备110产生的通信量,但是在到达源设备130之前被请求监控器140和/或网络设备170拦截。请求监控器140可以向缓存服务器120提供这种拦截通信量。对于从请求监控器140接收的拦截通信量(例如,请求405),缓存服务器120可以接受与拦截通信量相关联的连接(例如,TCP连接),并且可以利用源设备(例如,源设备130)的IP地址为客户端设备110服务。缓存服务器120可以用与缓存缺失拦截通信量不同的方式处理缓存命中拦截通信量。由于图4A示出请求405的缓存缺失情形,所以缓存服务器120不向源设备130提供对于请求405的代理,而是产生重定向命令435。重定向命令可以包括具有HTTP应答状态代码“302”的命令。缓存服务器120可以(经由网络设备170)向客户端设备110提供重定向命令435,并且可以关闭(或终止)与客户端设备110的连接。重定向命令435可以指示客户端设备110重连接并且重试请求405。客户端设备110可以接收重定向命令435,可以重试请求405(例如,作为新请求440),并且可以向网络设备170提供新请求440。新请求440可以包括与通过请求405所请求的相同的资源。
在向客户端设备110提供重定向命令435之前,缓存服务器120可以向请求监控器140提供控制消息。控制消息可以指示请求监控器140在例外列表(例如,在请求监控器140中提供的且在下面结合图6描述的)中添加客户端设备110(例如,5元组)的条目。为了解决客户端设备110经由不同端口编号重试请求405,请求监控器140可以忽略在5元组中设置的源端口(例如,src端口)。因此,请求监控
器140可以从特定源端口切断4元组。控制消息可以确保来自客户端设备110的请求405的下一次尝试不会被请求监控器140拦截而改为提供给源设备130。可选地,或另外,缓存服务器120可以将资源(例如,通过请求405请求的或其它缓存缺失资源)添加为要摄取的候选资源(例如,经由摄取430)。缓存服务器120可以从源设备130或其它源设备检索候选资源,并且可以在与缓存服务器120相关联的存储设备中存储所检索的候选资源。
如图4A进一步示出的,网络设备170可以向源设备130提供新请求440。源设备130可以接收新请求440,可以检索通过新请求440所请求的资源445,并且可以向网络设备170提供资源445。网络设备170可以向客户端设备110转发资源445,并且客户端设备110可以接收和/或利用资源445。在一个示例性实施方式中,网络设备170可以向请求监控器140提供所有或一部分资源445,并且请求监控器140可以在监视列表中提供与资源445相关联的信息。在另一示例性实施方式中,网络设备170可以向应答监控器150提供资源445的一部分447用于分析。
图4B可以示出用于请求405的缓存命中情形。如图所示,客户端设备110可以向网络设备170提供对于资源的请求405,并且网络设备170可以向请求监控器140提供请求405。请求监控器140可以接收请求405,并且可以基于在请求监控器140中提供的如面参照图6描述的信息确定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)还是可能没有在缓存服务器120中被缓存(例如,缓存缺失)。对于图4B中示出的操作,假设所请求的资源在缓存服务器120中被缓存。因此,请求监控器140可以向网络设备170提供缓存命中的指示450。
如图4B进一步示出的,请求监控器140可以向缓存服务器120转发请求405和/或过滤后请求415,并且缓存服务器120可以接收请求405和/或过滤后请求415。缓存服务器120可以检索通过请求405请求的被缓存的资源455,并且可以向客户端设备110提供被缓存的资源455(经由网络设备170)。在一个实例中,缓存服务器120可以基于指定存储在缓存服务器120中的资源的类型以及如何从缓存服务器120提供资源的缓存规则,提供被缓存的资源455。客户端设备110可以接收和/或利用被缓存的资源455。
在一个示例性实施方式中,缓存服务器120可以基于过滤后请求415为在请求监控器140中保存的监视列表中提供的源设备的每个IP地址分析潜在的缓存命中率。例如,缓存服务器120可以选择在监视列表中提供的特定的IP地址,并且可以确定在过滤后请求415(例如,与特定IP地址相关联)中提供的资源是否存储在缓存服务器120中。如果在一个过滤后请求415中提供的资源存储在缓存服务器120中,则缓存服务器120可以将资源确定为缓存命中。对于特定的IP地址,然后缓存服务器120可以通过所有所确定的缓存命中除以在过滤后请求415(例如,与特定IP地址相关联)中提供的资源的总数,以为特定的IP地址计算潜在缓存命中率。当与特定的IP地址(例如,特定的源设备的)相关联的潜在缓存命中率超过可配置的阈值时,缓存服务器120可以经由控制协议向保存在请求监控器140中的拦截列表添加特定的IP地址,如参考标号460所示。
尽管图4A和图4B示出网络部分400的示例性部件,但是在其它实施方式中,网络部分400可以包括比图4A和图4B中示出的更少的部件、不同的部件、不同配置的部件、或附加部件。可选地,或另外,网络部分400的一个或多个部件可以执行被描述为通过网络部分400的一个或多个其它部件执行的一个或多个其它任务。
图5是请求监控器140的示例性功能部件的示图。如图所示,请求监控器140可以包括缓存命中/缺失分离器500、请求报告器510、例外列表条目去除器520。在一个示例性实施方式中,参照图5描述的一个或多个功能部件可以通过设备200(图2)或设备300(图3)的一个或多个示例性部件实现。
缓存命中/缺失分离器500可以从客户端设备110接收请求405,并且可以接收从客户端设备110或其它客户端设备请求的额外资源。缓存命中/缺失分离器500可以过滤额外的资源请求(例如,包括请求405)以产生过滤后请求415。在一个实例中,缓存命中/缺失分离器500可以基于通过缓存命中/缺失分离器500保存的关于与源设备(例如,源设备130)相关联的IP地址的监视列表,过滤额外的资源请求(例如,以产生过滤后请求415)。缓存命中/缺失分离器500可以向请求报告器510提供请求405和/或过滤后请求415。
缓存命中/缺失分离器500可以基于信息(例如,在下面参照图6描述的拦截列表、例外列表、流量信息、和/或监视列表)确定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)还是可能没有在缓存服务器120中被缓存(例如,缓存缺失)。在一个示例性实施方式中,当请求405的目的地IP地址在拦截列表中提供而没有在例外列表中提供时,缓存命中/缺失分离器500可以确定通过请求405所请求的资源可能在缓存服务器120中被缓存。当请求405的目的地IP地址没有在拦截列表中提供而在例外列表中提供时,缓存命中/缺失分离器500可以确定通过请求405所请求的资源可能没有在缓存服务器120中被缓存。
如果缓存命中/缺失分离器500确定通过请求405所请求的资源可能没有在缓存服务器120中被缓存,则缓存命中/缺失分离器500可以向网络设备170提供缓存缺失的指示410,并且缓存服务器120可以(经由网络设备170)向客户端设备110提供重定向命令435。重定向命令435可以指示客户端设备110重连接以及重试请求405。如果缓存命中/缺失分离器500确定通过请求405所请求的资源可能在缓存服务器120中被缓存,则缓存命中/缺失分离器500可以向网络设备170提供缓存命中的指示450。
如图5进一步示出的,缓存命中/缺失分离器500可以从应答监控器150接收地址420,并且可以向通过缓存命中/缺失分离器500保存的监视列表添加地址420。当与请求405和/或过滤后请求415的特定的IP地址(例如,特定的源设备的)相关联的潜在的缓存命中率超过可配置的阈值时,缓存服务器120可以经由控制协议向保存在缓存命中/缺失分离器500中的拦截列表添加特定的IP地址,如参考标号460所示。
请求报告器510可以从缓存命中/缺失分离器500接收请求405和/或过滤后请求415。请求报告器510可以经由控制协议向缓存服务器120提供请求405和/或过滤后请求415。
例外列表条目去除器520可以接收以诸如客户端设备110的特定客户端设备结束的连接的指示530。在一个实例中,基于超时值或当客户端设备110产生具有重置连接(RST)标志的数据包或具有不再有来自发送器的数据(FIN)标志的数据包时,可以接收指示530。客户端设备110一旦收到重定向命令435就可以产生这种数据包。例外列表条目去除器520可以确定与指示530相关联的数据包是否与在缓存命中/缺失分离器500中所保存的例外列表中提供的特定5元组条目相匹配。如果与指示530相关联的数据包与例外列表中的特定5元组条目匹配,则例外列表条目去除器520可以从例外列表中去除特定5元组条目,如参考标号540所示。
尽管图5示出请求监控器140的示例性功能部件,但是在其它实施方式中,请求监控器140可以包括比图5示出的更少的功能部件、不同的功能部件、不同配置的功能部件、或附加功能部件。可选地,或另外,请求监控器140的一个或多个功能部件可以执行被描述为通过请求监控器140的一个或多个其它功能部件执行的一个或多个其它任务。
图6是通过缓存命中/缺失分离器500保存的示例性信息和/或操作信息的逻辑的示图。如图所示,缓存命中/缺失分离器500可以包括拦截列表600、例外列表610、流量信息620、监视列表630。在一个示例性实施方式中,信息可以存储在与设备200(图2)或设备300(图3)的一个或多个示例性部件相关联的一个或多个存储器中。
拦截列表600可以包括用于源设备(例如,源设备130)的地址(例如,IP地址)的条目,对于该源设备,从客户端设备(例如,客户端设备110)所请求的资源应该被拦截且路由至缓存服务器120而不是发送至源设备。如图6所示,拦截列表600可以包括源设备字段、标识符字段、与这些字段相关联的多个条目。源设备字段可以包括识别资源请求应该被拦截且路由至缓存服务器120的源设备的条目。标识符字段可以包括提供诸如IP地址的在源设备字段中被识别的源设备的识别信息的条目。
在一个示例性实施方式中,拦截列表600可以接收请求405(或一个过滤后请求415),并且可以确定通过请求405所请求的资源是否与拦截列表600中提供的IP地址(例如,源设备的)相关联。例如,如果通过请求405所请求的资源与IP地址1(例如,源设备1的)相关联,则拦截列表600可以将请求405路由至缓存服务器120。然而,如果通过请求405所请求的资源与IP地址11(例如,源设备11的)相关联,则拦截列表600可以不将请求405路由至缓存服务器120。
例外列表610可以包括尽管与拦截列表600中提供的条目相匹配却应该转发给源设备的用于资源请求数据包的条目。用于资源请求数据包的条目可以通过与每个数据包相关联的5元组(例如,源IP地址(src-IP)、目的地IP地址(dst-IP)、源端口(src-port)、目的地端口(dst-port)、协议(proto))标引。如图6所示,例外列表610可以包括IP5元组字段、时间窗口字段、与这些字段相关联的多个条目。IP5元组字段可以包括提供转发给源设备(例如,尽管在拦截列表600中匹配)的资源请求数据包的5元组的条目。在一个示例性实施方式中,依靠通过客户端设备110使用的诸如网络地址转换(NAT)方案或直接寻址方案的寻址方案,5元组条目的源端口可以被忽略或被建立以用作基于范围的匹配。时间窗口字段可以包括在预期客户端设备(例如,与在IP5元组字段中提供的5元组条目相关联的)与请求监控器140重连接的期间内的时间窗口的条目。在一个实例中,时间窗口可以包括倒计时和终止的时间。在时间窗口字段中提供的特定时间窗口终止之后,可以从例外列表610去除与特定时间窗口相关联的特定5元组条目。可以限制在时间窗口字段中提供的时间窗口以确保不妨碍可以利用相同IP地址以及连接相同源设备的客户端设备长时间利用缓存服务器120。
在一个示例性实施方式中,可以用2元组字段、3元组字段、...、N元组字段(N≥2)代替例外列表610的5元组字段。例外列表610可以在这种字段中存储IP数据包的2元组、3元组、...、N元组。
如图6进一步示出的,例外列表610可以接收IP5元组数据包640(例如,与请求405和/或过滤后请求415相关联的),并且可以在例外列表610的IP5元组字段中作为整体地添加IP5元组数据包640的5元组。例外列表610可以从例外列表条目去除器520(图5)接收指示540,以从例外列表610中去除特定5元组条目,并且可以从例外列表610去除特定5元组条目,如通过参考标号650所示。
流量信息620可以包括用于基于例外列表610被重定向至缓存服务器120的客户端设备的连接(例如,TCP连接)或指向源设备的客户端设备的连接的条目。如图6所示,流量信息620可以包括连接字段、目的地字段、与这些字段相关联的多个条目。连接字段可以包括识别基于例外列表610指向缓存服务器120或源设备的客户端设备的连接的条目。目的地字段可以包括提供在连接字段中识别的连接的目的地设备的条目。例如,流量信息620可以表明TCP连接1指向源设备1,以及TCP连接2指向缓存服务器120。如图6进一步示出的,流量信息620可以从客户端设备(例如,客户端设备110)接收TCP连接660,并且可以用TCP连接660和与TCP连接660相关联的目的地来填充(populate)流量信息620。
监视列表630可以包括来自客户端设备(例如,客户端设备110)的请求可以从其中检索资源的源设备(例如,源设备130)的地址(例如,IP地址)的条目。如图6所示,监视列表630可以包括源设备字段、标识符字段、与这些字段相关联的多个条目。源设备字段可以包括识别可以从其中检索资源的源设备的条目。标识符字段可以包括提供诸如IP地址的在源设备字段中识别的源设备的识别信息的条目。如图6进一步示出的,监视列表630可以(例如,经由缓存服务器120)从应答监控器150接收具有可缓存的资源的源设备的地址420(例如,IP地址),并且可以当与特定的IP地址460相关联的潜在的缓存命中率超过可配置的阈值时从缓存服务器120接收特定IP地址460(例如,特定源设备的)。监视列表630可以用IP地址420和460并且用识别与IP地址420和460相关联的源设备的信息来填充监视列表630。
在一个示例性实施方式中,请求监控器140可以利用拦截列表600、例外列表610、流量信息620和/或监视列表630中的一个或多个来确定是否决定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)或可能没有在缓存服务器120中被缓存(例如,缓存缺失)。
尽管图6示出可以在缓存命中/缺失分离器500中保存的示例性信息,但是在其它实施方式中,缓存命中/缺失分离器500可以包括比在图6中示出的更少的信息、不同的信息、不同配置的信息或附加信息。
图7是应答监控器150的示例性功能部件的示图。如图所示,应答监控器150可以包括源IP地址指示器700和报告生成器710。在一个示例性实施方式中,可以通过设备200(图2)或设备300(图3)的一个或多个示例性部件来实现参照图7描述的一个或多个功能部件。
源IP地址指示器700可以接收从源设备(例如,源设备130)向客户端设备(例如,客户端设备110)提供的应答流量720,并且可以经由控制协议(例如,从网络管理员)接收可配置参数730。应答流量720可以包括从源设备到客户端设备的应答,并且可以包括HTTP应答报头。可配置参数730可以包括对象规模(例如,被缓存的资源的)、缓存终止时间(例如,缓存服务器120的)、可缓存的总带宽(例如,缓存服务器120的)等。源IP地址指示器700可以基于包括在应答流量720中的HTTP应答报头,检查应答流量720(例如,用于可被缓存的资源的)。源IP地址指示器700可以基于应答流量720的检查以及基于可配置参数730,确定应答流量720是否包括可以存储在缓存服务器120中的资源。如图7进一步示出的,源IP地址指示器700可以向缓存服务器120提供(例如,基于应答流量720的检查)被确定为包含有可缓存的资源的源设备(例如,源设备130)的地址420(例如,IP地址)。
报告生成器710可以接收应答流量720。报告生成器710可以基于应答流量720产生报告425。在一个实例中,报告425可以包括描述通过缓存服务器120提供的潜在带宽储蓄的报告730、基于各种参数(例如,源设备IP地址、MIME类型、MIME规模等)描述通信量分布的报告740、或其它类型的报告。
尽管图7示出应答监控器150的示例性功能部件,但是在其它实施方式中,应答监控器150可以包括比图7示出的更少的功能部件、不同的功能部件、不同配置的功能部件、或附加功能部件。可选地,或另外,应答监控器150的一个或多个功能部件可以执行被描述为通过应答监控器150的一个或多个其它功能部件执行的一个或多个其它任务。
图8是缓存服务器120的示例性功能部件的示图。如图所示,缓存服务器120可以包括请求提取器810、缓存命中率确定器820、缓存命中/缺失服务器830、资源摄取器840。在一个示例性实施方式中,可以通过设备200(图2)的一个或多个示例性部件来实现参照图8描述的一个或多个功能部件。
请求提取器810可以从请求监控器140接收请求405和/或过滤后请求415,并且可以从请求405和/或过滤后请求415中提取信息(例如,数据包中提供的URL850)。URL850可以包括在通过请求405和/或过滤后请求415识别的源设备上可得到的资源。请求提取器810可以向资源摄取器840提供URL850作为要摄取的候选资源(例如,从源设备检索且存储在缓存服务器120中)。
缓存命中率确定器820可以从请求监控器140接收拦截通信量(例如请求405和/或过滤后请求415)。缓存命中率确定器820可以基于请求405和/或过滤后请求415确定在监视列表630(例如,保存在请求监控器140中的)中提供的每个IP地址(例如,源设备的)的潜在缓存命中率。当缓存命中率确定器820确定与特定IP地址(例如,特定源设备的)相关联的潜在缓存命中率超过可配置的阈值时,缓存命中率确定器820可以向拦截列表600(例如,保持在请求监控器140中)添加特定IP地址,如参考标号460所示。
缓存命中/缺失服务器830可以处理不同于缓存缺失拦截通信量的缓存命中拦截通信量。对于缓存缺失拦截通信量,缓存命中/缺失服务器830可以产生重定向命令435,可以(经由网络设备170)向客户端设备110提供重定向命令435,并且可以关闭与客户端设备110的连接。在向客户端设备110提供重定向命令435之前,缓存命中/缺失服务器830可以向请求监控器140提供控制消息860。控制消息860可以指示请求监控器140在请求监控器140中提供的例外列表610中添加用于客户端设备110的条目(例如,5元组)。控制消息860可以确保来自客户端设备110的请求405(例如,新请求440)的下一次尝试不会被请求监控器140拦截而是改为提供给源设备130。可选地,或另外,缓存命中/缺失服务器830可以向资源摄取器840提供与缓存缺失信息870相关联的(例如,通过请求405、过滤后请求415、和/或其它缓存缺失请求所请求的)资源作为要摄取的候选资源。
对于缓存命中拦截通信量,缓存命中/缺失服务器830可以检索通过请求405和/或过滤后请求415所请求的被缓存的资源455,并且可以(经由网络设备170)向客户端设备110提供被缓存的资源455。在一个实例中,缓存命中/缺失服务器830可以基于指定存储在缓存服务器120中的资源的类型以及如何从缓存服务器120提供资源的缓存规则,提供被缓存的资源455。
资源摄取器840可以从请求提取器810接收URL850,并且可以从缓存命中/缺失服务器830接收与缓存缺失信息870相关联的资源作为要摄取的候选资源。如参考标号430所示,资源摄取器840可以摄取候选资源。在一个实例中,资源摄取器840可以在处理请求405的同时从源设备130摄取430候选资源。在另一实例中,资源摄取器840可以在不同时间(例如,在处理请求405之后)从不同源设备摄取430一个或多个候选资源。缓存服务器120可以在与缓存服务器120相关联的存储设备中存储所检索的资源。在摄取430期间,例如,资源摄取器840可以向源设备130提供对于候选资源的请求,并且源设备130可以接收该请求。源设备130可以基于请求检索候选资源,并且可以向资源摄取器840提供候选资源。资源摄取器840可以在与缓存服务器120相关联的存储设备中存储所接收的候选资源。
尽管图8示出缓存服务器120的示例性功能部件,但是在其它实施方式中,缓存服务器120可以包括比图8描述的更少的功能部件、不同的功能部件、不同配置的功能部件、或附加功能部件。可选地,或另外,缓存服务器120的一个或多个功能部件可以执行被描述为通过缓存服务器120的一个或多个其它功能部件执行的一个或多个其它任务。
在一个示例性实施方式中,缓存服务器120、请求监控器140、应答监控器150可以部署为服务供应商网络中的独立部件。在另一示例性实施方式中,缓存服务器120、请求监控器140、应答监控器150可以集成为单个设备(例如,单个服务器、单个媒体流量控制器、单个网络设备等)。在又一个示例性实施方式中,请求监控器140的功能性可以集成于缓存服务器120或网络设备170中。在进一步的示例性实施方式中,请求监控器140与应答监控器150可以作实施为对网络设备170执行的应用。在这种实施方式中,请求监控器140可以使用网络设备170的线卡中的流量信息(例如,类似于流量信息)来实施例外列表610。在另一示例性实施方式中,一个或多个缓存服务器120、请求监控器140、应答监控器150的功能性可以集成于网络设备170中。在又一个示例性实施方式中,请求监控器140可以用作对于部署缩放或添加冗余的多个缓存服务器的负载均衡器。在这种实施方式中,请求监控器140可以使用流量信息620来了解与每个拦截的TCP连接相关联的缓存服务器。
在可选实施方式中,这里描述的系统和/或方法可以使用可选的源设备IP地址,而不是例外列表610。对于具有提供相同资源的多个IP地址的许多源设备来说是共同的(例如,用于负载均衡的域名系统(DNS)循环法)。在这种情形中,这里描述的系统和/或方法可以从监视列表630中省略一个或多个冗余IP地址,并且可以使用被省略的IP地址作为重定向命令435的目标(图4)。
在另一可选实施方式中,这里描述的系统和/或方法可以用请求监控器140中提供的配置驱动监视列表(例如,类似于监视列表630)来替换应答监控器150。例如,这里描述的系统和/或方法可以构成域的列表,并且请求监控器140可以执行DNS查找以建立配置驱动监视列表。
图9和图10是提供根据这里描述的实施方式的代理缓存方案的请求监控功能的示例性处理900的流程图。在一个实施方式中,处理900可以通过请求监控器140执行。在另一个实施方式中,处理900的某些或全部可以通过除了请求监控器140之外的或与请求监控器140相结合的一个或多个设备执行来执行。可以并发或独立执行在图9和图10中示出的一个或多个处理块。
如图9所示,处理900可以包括从客户端设备接收对于资源的请求(块910),并且基于信息确定所请求的资源可能被缓存(缓存命中)还是可能没有被缓存(缓存缺失)(块920)。例如,在上面参照图4A描述的实施方式中,客户端设备110可以向网络设备170提供对于资源的请求405,并且网络设备170可以向请求监控器140提供请求405。请求监控器140可以接收请求405,并且可以基于信息(例如,在请求监控器140中提供的)来确定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)还是可能没有在缓存服务器120中被缓存(例如,缓存缺失)。
如在图9中进一步示出的,当所请求的资源可能被缓存(块920-缓存命中)时,处理900可以包括向缓存服务器转发请求,其中缓存服务器基于请求检索被缓存的资源,并且向客户端设备转发被缓存的资源(块930)。例如,在上面参照图4B描述的实施方式中,缓存服务器120可以接收请求405和/或过滤后请求415。缓存服务器120可以检索通过请求405所请求的被缓存的资源455,并且可以(经由网络设备170)向客户端设备110提供被缓存的资源455。客户端设备110可以接收和/或利用被缓存的资源455。
返回至图9,当所请求的资源可能没有被缓存(块920-缓存缺失)时,处理900可以包括向缓存服务器转发请求,其中缓存服务器基于请求向客户端设备转发重定向命令,并且客户端设备基于重定向命令从源设备获得资源(块940)。例如,在上面参照图4A描述的实施方式中,请求监控器140可以经由控制协议向缓存服务器120报告请求405和/或过滤后请求415。缓存服务器120可以产生重定向命令435(具有HTTP应答状态代码“302”的命令),可以(经由网络设备170)向客户端设备110提供重定向命令435,并且可以关闭与客户端设备110的连接。重定向命令435可以指示客户端设备110重连接以及重试请求405。客户端设备110可以接收重定向命令435,可以重试请求405(例如,作为新请求440),并且可以向网络设备170提供新请求440。新请求440可以包括用于通过请求405所请求的相同资源的请求。
处理块920可以包括图10中描述的处理块。如图10所示,处理块920可以包括创建包括与路由至缓存服务器的通信量相关联的源IP地址的条目的拦截列表(块1000);创建包括尽管在拦截列表中匹配却路由至源设备的数据包的IP5元组的条目的例外列表(块1010);创建包括指向缓存服务器或源设备的连接的条目的流量信息(块1020);和/或创建包括源设备IP地址的条目的监视列表(块1030)。处理块920还可以包括,基于拦截列表和例外列表确定所请求的资源是否可能被缓存(块1040)。
例如,在上面参照图5和图6描述的实施方式中,请求监控器140可以包括缓存命中/缺失分离器500。缓存命中/缺失分离器500可以包括拦截列表600、例外列表610、流量信息620、监视列表630。如上所述,拦截列表600可以包括源设备(例如,源设备130)的地址(例如,IP地址)的条目,对于该源设备来说来自客户端设备(例如,客户端设备110)的资源请求应该被拦截且路由至缓存服务器120而不是发送给源设备。例外列表610可以包括尽管与拦截列表600中提供的条目匹配却应该转发至源设备的资源请求数据包的条目。用于资源请求数据包的条目可以通过与每个数据包相关联的5元组来标引索引。流量信息620可以包括被重定向至缓存服务器120的客户端设备的连接(例如,TCP连接)或指向基于例外列表610的源设备的客户端设备的连接的条目。监视列表630可以包括从其可以检索资源的源设备的地址的条目。缓存命中/缺失分离器500可以基于信息(例如,拦截列表600、例外列表610、流量信息620、和/或监视列表630)确定通过请求405所请求的资源可能在缓存服务器120中被缓存(例如,缓存命中)还是可能没有在缓存服务器120中被缓存(例如,缓存缺失)。
图11是提供根据这里描述的实施方式的代理缓存方案的应答监控功能的示例性处理1100的流程图。在一个实施方式中,可以通过应答监控器150执行处理1100。在另一实施方式中,处理1100的某些或全部可以通过除了应答监控器150之外的或与应答监控器150相结合的一个或多个设备来执行。可以并发或独立执行图11中所示的一个或多个处理块。
如图11所示,处理1100可以包括从源设备向客户端设备提供的通信量(块1110),并且基于参数确定通信量是否包括要在缓存服务器中被缓存的资源(块1120)。例如,在上面参照图4A描述的实施方式中,应答监控器150可以监控从源设备130到客户端设备110提供的通信量(例如,应答流量)。应答监控器150可以监控从其它源设备向其它客户端设备提供的通信量,并且可以基于一套可配置的参数(例如,对象规模、缓存终止时间、可缓存的总带宽等)确定通信量是否包括可以存储在缓存服务器120中的资源。
从图11进一步示出的,处理1100可以包括,向请求监控器提供被确定为具有可缓存的资源的源设备的IP地址(块1130),和/或基于通信量确定来产生潜在带宽储蓄报告和通信量分布报告(块1140)。例如,在上面参照图4A描述的实施方式中,应答监控器150可以向请求监控器140提供具有可缓存的资源的源设备(例如,源设备130)的地址420(例如,IP地址)。请求监控器140可以接收地址420,并且可以向监视列表添加地址420。应答监控器150同样可以基于所监控的通信量产生报告425。在一个实例中,报告425可以包括描述通过缓存服务器120提供的潜在带宽储蓄的报告、基于各种参数(例如,源设备IP地址、MIME类型、MIME规模等)描述通信量分布的报告、或其它类型的报告。
图12A和图12B示出提供根据这里描述的实施方式的模块化的透明代理缓存的示例性处理1200的流程图。在一个实施方式中,可以通过缓存服务器120执行处理1200。在另一实施方式中,处理1200的某些或全部可以通过除了缓存服务器120之外的或与缓存服务器120相结合的一个或多个设备来执行。可以并发或独立执行图12A和图12B中所示的一个或多个处理块。
如图12A所示,处理1200可以包括,从请求监控器接收对于与包括具有可缓存资源的源设备的IP地址的监视列表中的条目相匹配的资源的请求(块1205),并且添加所请求的资源作为要存储的候选资源(块1210)。例如,在上面参照图4A描述的实施方式中,缓存服务器120可以从请求监控器140接收过滤后请求415(例如,其可以包括请求405),并且可以从过滤后请求415中提取诸如数据包中提供的URL的信息。所提取的信息可以包括在通过过滤后请求415识别的且匹配监视列表(例如,其包括具有可缓存的资源的源设备的IP地址)的源设备上可得到的资源。缓存服务器120可以添加所提取的信息作为要摄取的候选资源。在一个实例中,请求监控器140可以基于与源设备相关联的IP地址的监视列表,过滤额外的资源请求(例如,创建过滤后请求415)。
如图12A进一步示出的,处理1200可以包括,为监视列表中的每个IP地址分析缓存命中率(图1215),并且当IP地址的缓存命中率超过阈值时向拦截列表添加IP地址(块1220)。例如,在上面参照图4A和图4B描述的实施方式中,缓存服务器可以基于过滤后请求415为请求监控器140中保存的监视列表中提供的每个IP地址(例如,源设备的)分析潜在的缓存命中率。当与特定源设备的特定IP地址相关联的潜在的缓存命中率超过可配置的阈值时,缓存服务器120可以经由控制协议向保存在请求监控器140中的拦截列表添加特定的IP地址,如参考标号460所示。
如图12B所示,处理1200可以包括确定通过从请求监控器接收的拦截通信量所请求的资源被存储(缓存命中)还是没有被存储(缓存缺失)(块1225)。当所请求的资源被存储(块1225-缓存命中)时,处理1200可以包括向客户端设备提供所存储的资源(块1230)。例如,在上面参照图4A和图4B描述的实施方式中,缓存服务器120可以接收与拦截通信量相关联的连接(例如,TCP连接),并且可以利用源设备130的IP地址为客户端设备110服务(例如,屏蔽与缓存服务器120相关联的地址)。对于缓存命中,缓存服务器120可以接收请求405和/或过滤后请求415。缓存服务器120可以检索通过请求405请求的被缓存的资源455,并且可以(经由网络设备170)向客户端设备110提供被缓存的资源455。
如图12B进一步所示,当所请求的资源可能没有被存储(块1225-缓存缺失)时,处理1200可以包括向客户端设备返回重定向命令(块1235),关闭与客户端设备的连接(块1240),并且添加从拦截通信量所请求的资源作为要存储的候选资源(块1245)。例如,在上面参照图4A描述的实施方式中,在请求405的缓存缺失情形中,除了提供对于请求405的代理(例如,以源设备130的名义提供资源),缓存服务器120可以产生重定向命令435(例如,具有HTTP应答状态代码“302”的命令),可以(经由网络设备170)向客户端设备110提供重定向命令435,并且可以关闭与客户端设备110的连接。缓存服务器120可以添加资源(例如,通过请求405所请求的或其它缓存缺失资源)作为(例如,经由摄取430)要摄取的候选资源。
返回至图12B,处理1200可以包括从源设备检索候选资源(块1250),并且存储检索的候选资源(块1255)。例如,在上面参照图4A描述的示例性实施方式中,缓存服务器120可以添加所提取的信息作为要摄取的候选资源(例如,从源设备检索且存储在缓存服务器120中),并且可以摄取候选资源,如参考标号430所示。缓存服务器120可以在与缓存服务器120相关联的存储设备中存储所检索的候选资源。
图13是能够通过网络100的另一示例性部分1300执行的示例性操作的示图。如图13所示,示例性网络部分1300可以包括客户端设备110、缓存服务器120、源设备130、网络设备170。客户端设备110、缓存服务器120、源设备130、网络设备170可以包括在上面参照图1~图12B中的一个或多个描述的特征。
如图13所示,网络设备170可以包括缓存命中/缺失模块1310。在一个实例中,缓存命中/缺失模块1310可以包括在设置在网络设备170的服务平面中的硬件上执行的缓存命中/缺失软件。客户端设备110可以向网络设备170提供对于资源的请求1320,并且网络设备170可以经由缓存命中/缺失模块1310接收请求1320。缓存命中/缺失模块1310可以用作对于来自客户端设备110的请求的代理,并且可以将答复发送回至客户端设备110直到缓存命中/缺失模块1310确定请求1320是HTTPGET请求(例如,请求特定的资源)或HTTPHEAD请求(例如,请求类似于GET请求的资源)。一旦缓存命中/缺失模块1310确定请求1320是HTTPGET或HEAD请求,则缓存命中/缺失模块1310可以确定通过请求1320所请求的资源在缓存服务器120中被缓存(例如,缓存命中)还是没有在缓存服务器120中被缓存(例如,缓存缺失)。在一个示例性实施方式中,缓存命中/缺失模块1310基于网络设备170中提供的信息(例如,如上面参照图6描述的,拦截列表600、例外列表610、流量信息620、和/或监视列表630)确定通过请求1320所请求的资源是否在缓存服务器120中被缓存。
如果缓存命中/缺失模块1310确定通过请求1320所请求的资源没有在缓存服务器120中被缓存(例如,缓存缺失),则缓存命中/缺失模块1310可以在网络设备170中建立临时防火墙过滤器1330。防火墙过滤器1330可以包括在与网络设备170相关联的防火墙中设置的临时过滤器,并且可以使来自客户端设备110的资源请求能够利用转发平面发送至源设备130。在建立防火墙过滤器1330之后、之前、或同时,缓存命中/缺失模块1310可以产生重定向命令1340(例如,具有HTTP应答状态代码“302”的命令),可以向客户端设备110提供重定向命令1340,并且可以关闭与客户端设备110的连接。重定向命令1340可以指示客户端设备110重连接以及重试请求1320。缓存命中/缺失模块1310同样可以向缓存服务器120通知与请求1320相关联的缓存缺失,并且可以指示缓存服务器120获得通过请求1320所请求的资源,如通过参考标号1350所示。缓存服务器120可以接收指令1350,并且可以从源设备130检索新资源1355(例如,通过请求1320请求的)。在一个示例性实施方式中,缓存命中/缺失模块1310与缓存服务器120可以分别进行通信,直到缓存服务器120从源设备130检索到新资源1355。
客户端设备110可以接收重定向命令1340,可以重试请求1320(例如,作为发起与源设备130的TCP连接的新请求1360),并且可以向网络设备170的防火墙过滤器1330提供新请求1360。新请求1360可以包括对于通过请求1320所请求的相同资源的请求。防火墙过滤器1330可以接收新请求1360,并且可以向源设备130转发新请求1360,而不涉及缓存命中/缺失模块1310。源设备130可以接收新请求1360,可以检索通过新请求1360所请求的资源1370,并且可以向网络设备170提供资源1370。网络设备170可以向客户端设备110转发资源1370,并且客户端设备110可以接收和/或利用资源1370。
在客户端设备110接收资源1370之后,防火墙过滤器1330可以向缓存命中/缺失模块1310提供表示与资源1370的检索相关联的会话完成的通知1380。当缓存命中/缺失模块1310接收到通知1380时,缓存命中/缺失模块1310可以(例如,从与网络设备170相关联的防火墙)去除防火墙过滤器1330,如通过参考标号1390所示,使得任何来自客户端设备110的新请求可以再次通过缓存命中/缺失模块1310。
尽管图13示出网络部分1300的示例性部件,但是在其它实施方式中,网络部分1300可以包括比图13示出的更少的部件、不同的部件、不同配置的部件、或附加部件。可选地,或另外,网络部分1300的一个或多个部件可以执行被描述为通过网络部分1300的一个或多个其它部件执行的一个或多个其它任务。
图14是能够通过网络100的又一示例性部分1400执行的示例性操作的示图。如图14所示,示例性网络部分1400可以包括客户端设备110、缓存服务器120、网络设备170(具有缓存命中/缺失模块1310)。客户端设备110、缓存服务器120、缓存命中/缺失模块1310可以包括在上面参照图1~图13中的一个或多个描述的特征。
如图14进一步示出的,客户端设备110可以向网络设备170提供对于资源的请求1410,并且网络设备170可以经由缓存命中/缺失模块1310接收请求1410。缓存命中/缺失模块1310可以用作对于来自客户端设备110的请求的代理,并且可以将答复发送回客户端设备110直到缓存命中/缺失模块1310确定请求1410是HTTPGET或HEAD请求。一旦缓存命中/缺失模块1310确定请求1410是HTTPGET或HEAD请求,则缓存命中/缺失模块1310可以确定通过请求1410所请求的资源在缓存服务器120中被缓存(例如,缓存命中)还是没有在缓存服务器120中被缓存(例如,缓存缺失)。
如果缓存命中/缺失模块1310确定通过请求1410所请求的资源在缓存服务器120中被缓存(例如,缓存命中),则缓存命中/缺失模块1310可以产生重定向命令1420(例如,具有HTTP应答状态代码“302”的命令),可以向客户端设备110提供重定向命令1420,并且可以关闭与客户端设备110的连接。重定向命令1420可以指示客户端设备110重连接以及重试请求1410。客户端设备110可以接收重定向命令1420,可以重试请求1410(例如,发起与缓存服务器120的TCP连接的新请求1430),并且可以向网络设备170提供新请求1430。新请求1430可以包括对于通过请求1410所请求的相同资源的请求,但是可以包括缓存服务器120的地址(例如,虽然请求1410可能不包括缓存服务器120的地址)。
缓存命中/缺失模块1310可以接收新请求1430,并且可以确定新请求1430包括缓存服务器120的地址。基于缓存服务器120的地址,缓存命中/缺失模块1310可以向缓存服务器120转发新请求1430。缓存服务器120可以接收新请求1430,可以检索通过新请求1430所请求的资源1440,并且可以向网络设备170提供资源1440。网络设备170可以向客户端设备110转发资源1440,并且客户端设备110可以接收和/或利用资源1440。
尽管图14示出网络部分1400的示例性部件,但是在其它实施方式中,网络部分1400可以包括比图14示出的更少的部件、不同的部件、不同配置的部件、或附加部件。可选地,或另外,网络部分1400的一个或多个部件可以执行被描述为通过网络部分1400的一个或多个其它部件执行的一个或多个其它任务。
图15是用于优化根据这里描述的实施方式的代理缓存方案中的内容流量的示例性处理1500的流程图。在一个实施方式中,可以通过网络设备170执行处理1500。在另一实施方式中,处理1500的某些或全部可以通过除了网络设备170之外的或与网络设备170相结合的一个或多个设备来执行。可以并发或独立执行在图15中描述的一个或多个处理块。
如图15所示,处理1500可以包括,经由缓存命中/缺失模块从客户端设备接收对于资源的请求(块1510),并且经由缓存命中/缺失模块确定所请求的资源被缓存(缓存命中)还是没有被缓存(缓存缺失)(块1520)。例如,在上面参照图13描述的实施方式中,客户端设备可以向网络设备170提供对于资源的请求1320,并且网络设备170可以经由缓存命中/缺失模块1310接收请求1320。缓存命中/缺失模块1310可以用作对于来自客户端设备110的请求的代理,并且可以将答复发送回客户端设备110直到缓存命中/缺失模块1310确定请求1320是HTTPGET请求(例如,请求特定的资源)或HTTPHEAD请求(例如,请求类似于GET请求的资源)。一旦缓存命中/缺失模块1310确定请求1320是HTTPGET或HEAD请求,则缓存命中/缺失模块1310可以确定通过请求1320所请求的资源在缓存服务器120中被缓存(例如,缓存命中)还是没有在缓存服务器120中被缓存(例如,缓存缺失)。
如图15进一步示出的,当所请求的资源被缓存(块1520-缓存命中)时,处理1500可以包括提供指示客户端设备从缓存服务器请求资源的命令(块1530),基于命令从客户端设备接收新请求(块1540),并且基于新请求使客户端设备能够从缓存服务器接收所请求的资源(块1550)。例如,在上面参照图14描述的实施方式中,如果缓存命中/缺失模块1310确定通过请求1410所请求的资源在缓存服务器120中被缓存(例如,缓存命中),则缓存命中/缺失模块1310可以产生重定向命令1420,并且可以向客户端设备110提供生重定向命令1420。重定向命令1420可以指示客户端设备重连接以及重试请求1410。客户端设备110可以接收重定向命令1420,可以重试请求1410(例如,作为发起与缓存服务器120的TCP连接的新请求1430),并且可以向缓存命中/缺失模块1310提供新请求1430。新请求1430可以包括缓存服务器120的地址,而请求1410可能不包括缓存服务器120的地址。基于缓存服务器120的地址,缓存命中/缺失模块1310可以向缓存服务器120转发新请求1430。缓存服务器120可以接收新请求1430,可以检索通过请求1430所请求的资源1440,并且可以向网络设备170提供资源1440。网络设备170可以向客户端设备110转发资源1440。
返回至图15,当所请求的资源没有被缓存(块1520-缓存缺失)时,处理1500可以包括,经由缓存命中/缺失模块创建防火墙过滤器,并且提供指示客户端设备从源设备请求资源的命令(块1560);基于命令经由防火墙过滤器从客户端设备接收对于资源的新请求(块1570);基于新请求使客户端设备能够经由防火墙过滤器从源设备接收所请求的资源(块1580);并且在客户端设备接收到所请求的资源之后去除防火墙过滤器(块1590)。
例如,在上面参照图13描述的实施方式中,如果缓存命中/缺失模块1310确定通过请求1320所请求的资源没有在缓存服务器120中被缓存(例如,缓存缺失),则缓存命中/缺失模块1310可以在网络设备170中建立临时的防火墙过滤器1330。在建立防火墙过滤器1330之后、之前、或同时,缓存命中/缺失模块1310可以产生重定向命令1340,并且可以向客户端设备110提供重定向命令1340。重定向命令1340可以指示客户端设备110重连接且重试请求1320。客户端设备110可以接收重定向命令1340,可以重试请求1320(例如,作为发起与源设备130的TCP连接的新请求1360),并且可以向网络设备170的防火墙过滤器1330提供新请求1360。防火墙过滤器1330可以接收新请求1360,并且可以向源设备130转发新请求1360。源设备130可以接收新请求1360,可以检索通过新请求1360所请求的资源1370,并且可以向网络设备170提供资源1370。网络设备170可以向客户端设备110转发资源1370。在客户端设备110接收到资源1370之后,缓存命中/缺失模块1310可以(例如,从与网络设备170相关联的防火墙)去除防火墙过滤器1330,如参考标号1390所示,使得来自客户端设备110的任何新请求可以再次通过缓存命中/缺失模块1310。
这里描述的系统和/或方法可以提供分离缓存命中和缓存缺失的模块化的透明代理缓存方案,其中缓存命中可以指的是,当所请求的资源存储在诸如缓存服务器的代理缓存中的时候,而缓存缺失可以指的是,当所请求的资源未存储在诸如缓存服务器的代理缓存中的时候。该系统和/或方法可以使速缓存命中通信量能够通过缓存服务器利用存储资源的源设备的IP地址来提供,并且可以使缓存缺失通信量在(例如,请求资源的)客户端设备与源设备之间流动而没有任何层7拦截。缓存服务器可以利用一组经配置的与源设备相关联的IP地址异步检索以及存储诸如内容、服务等的资源。在一个实例中,当缓存缺失发生时,该系统和/或方法可以将重定向命令提供回请求资源的客户端设备。响应于重定向命令,客户端设备可以产生可以提供给源设备的新资源请求而没有缓存服务器的干预。
这里使用的术语“部件”旨在广泛地理解为包括硬件(例如,处理器、微处理器、ASIC、FPGA、芯片、存储设备(例如,ROM、RAM等)等)或硬件和软件的组合(例如,执行包含在存储设备中的软件的处理器、微处理器、ASIC等)。
这里使用的术语“数据包”旨在广泛地理解为包括帧、数据报文、数据包(packet)、或信元(cell);帧的片段、数据报文的片段、数据包的片段、或信元的片段;或另一类型、配置、或数据的封装。
前述实施方式提供了图解和描述,但是并未意在穷尽或将本发明限制为所公开的准确形式。修改和变化根据上面的教导是可能的,或可以从本发明的实践中获得。
例如,虽然已经参照图9~图12B和图15描述了一系列块,但是在其它实施方式中可以修改块的顺序。此外,可以并行执行非相关块。
显而易见,如上所述的示例性方面可以用图中示出的实施方式中的软件、固件、硬件的许多不同形式来实施。用于实施这些方面的实际软件代码或专用控制软件不应理解为限制。因此,不参照特定的软件代码描述方面的操作和行为——应当理解,可以基于这里的说明将软件和控制硬件设计为实施这些方面。
尽管在说明书的权利要求和/或公开中记载了特征的特定组合,但是这些组合并未意在限制本发明的公开。实际上,这些特征中的许多可以用没有在申请文件中的权利要求和/或公开中具体记载的方式进行组合。尽管下面列出的每个从属权利要求可以直接仅引用另一个权利要求,但是本发明的公开包括与权利要求书中的其它每个权利要求相结合的每个从属权利要求。
本申请中使用的元件、动作或指令不应被解释为对于本发明是关键的或必须的,除非明确地描述为这样。同样,如这里使用的,冠词“一(a)”旨在包括一个或多个项目。当仅仅指的是一个项目时,使用术语“一个(one)”或类似的语言。此外,除非明确表述为其他,否则词组“基于”旨在表示“至少部分地基于”。
Claims (20)
1.一种用于提供代理缓存的方法,所述方法包括:
通过计算设备从客户端设备接收对于能够从源设备获得的资源的请求;
通过所述计算设备确定所述资源是否被缓存在与所述源设备相关联的缓存服务器中;
当所述资源被缓存在所述缓存服务器中时,通过所述计算设备向所述客户端设备提供指示所述客户端设备从所述缓存服务器请求所述资源的第一命令;
当所述资源被缓存在所述缓存服务器中时,响应于提供所述第一命令,通过所述计算设备从所述客户端设备接收对于所述资源的第一新请求;
当所述资源被缓存在所述缓存服务器中时,通过所述计算设备以及基于所述第一新请求使所述客户端设备能够从所述缓存服务器接收所述资源;
当所述资源没有被缓存在所述缓存服务器中时,通过所述计算设备创建防火墙过滤器;
当所述资源没有被缓存在所述缓存服务器中时,通过所述计算设备向所述客户端设备提供指示所述客户端设备从所述源设备请求所述资源的第二命令;
当所述资源没有被缓存在所述缓存服务器中时,响应于提供所述第二命令,经由所述防火墙过滤器从所述客户端设备接收对于所述资源的第二新请求;以及
当所述资源没有被缓存在所述缓存服务器中时,经由所述防火墙过滤器以及基于所述第二新请求使所述客户端设备能够从所述源设备接收所述资源,而无需访问所述缓存服务器。
2.根据权利要求1所述的方法,还包括:
响应于所述客户端设备从所述源设备接收到所述资源,去除所述防火墙过滤器。
3.根据权利要求2所述的方法,其中,包括在所述计算设备中的缓存命中/缺失模块创建和去除所述防火墙过滤器。
4.根据权利要求3所述的方法,其中,所述缓存命中/缺失模块包括在所述计算设备的服务平面中。
5.根据权利要求3所述的方法,其中,接收对于所述资源的请求包括:
通过所述缓存命中/缺失模块向所述客户端设备发送一个或多个答复,直到所述缓存命中/缺失模块确定所述请求包括超文本传输协议(HTTP)GET请求或HTTPHEAD请求中的一个。
6.根据权利要求1所述的方法,还包括:
当所述资源没有被缓存在所述缓存服务器中时,请求所述缓存服务器从所述源设备检索所述资源。
7.根据权利要求1所述的方法,其中,使所述客户端设备能够从所述源设备接收所述资源包括:
当所述资源没有被缓存在所述缓存服务器中时,经由所述防火墙过滤器向所述源设备提供所述第二新请求;
基于所述第二新请求从所述源设备接收所述资源;以及
向所述客户端设备转发所述资源。
8.一种网络设备,包括:
存储器,存储关于存储在缓存服务器中的资源的信息;以及
处理器,被配置为:
从客户端设备接收对于能够从源设备获得的资源的请求,
基于所存储的信息,确定所述资源是否被缓存在所述缓存服务器中,
当所述资源被缓存在所述缓存服务器中时,向所述客户端设备提供指示所述客户端设备从所述缓存服务器请求所述资源的第一命令,
当所述资源被缓存在所述缓存服务器中时,响应于提供所述第一命令,从所述客户端设备接收对于所述资源的第一新请求,
当所述资源被缓存在所述缓存服务器中时,基于所述第一新请求,使所述客户端设备能够从所述缓存服务器接收所述资源,
当所述资源没有被缓存在所述缓存服务器中时,创建防火墙过滤器,
当所述资源没有被缓存在所述缓存服务器中时,提供指示所述客户端设备从所述源设备请求所述资源的第二命令,
当所述资源没有被缓存在所述缓存服务器中时,响应于提供所述第二命令,经由所述防火墙过滤器从所述客户端设备接收对于所述资源的第二新请求,
当所述资源没有被缓存在所述缓存服务器中时,经由所述防火墙过滤器以及基于所述第二新请求使所述客户端设备能够从所述源设备接收所述资源,而无需访问所述缓存服务器,以及
响应于所述客户端设备从所述源设备接收到所述资源,去除所述防火墙过滤器。
9.根据权利要求8所述的网络设备,其中,所述处理器还被配置为:
从所述客户端设备接收对于能够从所述源设备获得的另一资源的另一请求,
基于所述信息,确定所述另一资源是否被缓存在所述缓存服务器中,
当所述另一资源被缓存在所述缓存服务器中时,提供指示所述客户端设备从所述缓存服务器请求所述另一资源的第三命令,
响应于提供所述第三命令,从所述客户端设备接收对于所述另一资源的第三新请求,以及
基于所述第三新请求,使所述客户端能够从所述缓存服务器接收所述另一资源。
10.根据权利要求9所述的网络设备,其中,所述处理器还被配置为:
当所述另一资源没有被缓存在所述缓存服务器中时,重新创建所述防火墙过滤器,
当所述另一资源没有被缓存在所述缓存服务器中时,提供指示所述客户端设备从所述源设备请求所述另一资源的第四命令,
响应于提供所述第四命令,经由所述防火墙过滤器,从所述客户端设备接收对于所述资源的第四新请求,以及
经由所述防火墙过滤器以及基于所述第四新请求,使所述客户端设备能够从所述源设备接收所述另一资源,而无需访问所述缓存服务器。
11.根据权利要求8所述的网络设备,还包括:
缓存命中/缺失模块,被配置为创建和去除所述防火墙过滤器。
12.根据权利要求11所述的网络设备,其中,所述缓存命中/缺失模块包括在所述网络设备的服务平面中。
13.根据权利要求11所述的网络设备,其中,所述缓存命中/缺失模块还被配置为:
向所述客户端设备发送答复,直到所述缓存命中/缺失模块确定所述请求包括超文本传输协议(HTTP)GET请求或HTTPHEAD请求中的一个。
14.根据权利要求8所述的网络设备,其中,所述处理器还被配置为:
当所述资源没有被缓存在所述缓存服务器中时,请求所述缓存服务器从所述源设备检索所述资源。
15.一种用于提供代理缓存的系统,包括:
一个或多个网络设备,用于:
存储关于存储在缓存服务器中的资源的信息;以及
从客户端设备接收对于能够从源设备获得的资源的请求,
基于所存储的信息,确定所述资源是否被缓存在一个或多个网络设备的第一设备中,
当所述资源被缓存在所述第一设备中时,向所述客户端设备提供指示所述客户端设备从所述第一设备请求所述资源的第一命令,
当所述资源被缓存在所述第一设备中时,响应于提供所述第一命令,从所述客户端设备接收对于所述资源的第一新请求,
当所述资源被缓存在所述第一设备中时,基于所述第一新请求,使所述客户端设备从所述第一设备接收所述资源,
当所述资源没有被缓存在所述第一设备中时,创建防火墙过滤器,
当所述资源没有被缓存在所述第一设备中时,提供指示所述客户端设备从所述源设备请求所述资源的第二命令,
当所述资源没有被缓存在所述第一设备中时,响应于提供所述第二命令,经由所述防火墙过滤器,从所述客户端设备接收对于所述资源的第二新请求,
当所述资源没有被缓存在所述第一设备中时,经由所述防火墙过滤器以及基于所述第二新请求,使所述客户端设备能够从所述源设备接收所述资源,而无需访问所述第一设备,以及
响应于所述客户端设备从所述源设备接收到所述资源,去除所述防火墙过滤器。
16.根据权利要求15所述的系统,其中,所述一个或多个网络设备还用于:
响应于所述客户端设备从所述源设备接收所述资源,去除所述防火墙过滤器。
17.根据权利要求15所述的系统,其中,所述一个或多个网络设备还用于:
实现被配置为创建和去除所述防火墙过滤器的模块。
18.根据权利要求17所述的系统,其中,所述模块被包括在所述一个或多个网络设备中的一个网络设备的服务平面中。
19.根据权利要求17所述的系统,其中,所述请求包括超文本传输协议(HTTP)GET请求或HTTPHEAD请求中的一个。
20.根据权利要求15所述的系统,其中,所述一个或多个网络设备还用于:
当所述资源没有被缓存在所述第一设备中时,请求所述第一设备从所述源设备检索所述资源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/051,342 US20120239775A1 (en) | 2011-03-18 | 2011-03-18 | Transparent proxy caching of resources |
US13/051,342 | 2011-03-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102685177A CN102685177A (zh) | 2012-09-19 |
CN102685177B true CN102685177B (zh) | 2016-01-20 |
Family
ID=44860228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110231959.2A Expired - Fee Related CN102685177B (zh) | 2011-03-18 | 2011-08-12 | 资源的透明代理缓存方法、网络设备及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20120239775A1 (zh) |
EP (1) | EP2501103B8 (zh) |
CN (1) | CN102685177B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE420512T1 (de) | 1999-10-22 | 2009-01-15 | Nomadix Inc | System und verfahren zur dynamischen teilnehmer- basierten bandbreitenverwaltung in einem kommunikationsnetz |
EP2067337B1 (en) | 2006-09-29 | 2018-04-25 | Nomadix, Inc. | Systems and methods for injecting content |
US20110030037A1 (en) | 2009-07-07 | 2011-02-03 | Vadim Olshansky | Zone migration in network access |
KR101907932B1 (ko) * | 2011-12-27 | 2018-10-17 | 한국전자통신연구원 | 묶음 콘텐츠를 위한 네트워크 기반 콘텐츠 캐싱 지원하는 패킷 포워딩 구조 및 방법 |
US9137281B2 (en) | 2012-06-22 | 2015-09-15 | Guest Tek Interactive Entertainment Ltd. | Dynamically enabling guest device supporting network-based media sharing protocol to share media content over local area computer network of lodging establishment with subset of in-room media devices connected thereto |
JP6102108B2 (ja) * | 2012-07-24 | 2017-03-29 | 富士通株式会社 | 情報処理装置、データ提供方法、及びデータ提供プログラム |
US10791050B2 (en) | 2012-12-13 | 2020-09-29 | Level 3 Communications, Llc | Geographic location determination in a content delivery framework |
US20140337472A1 (en) | 2012-12-13 | 2014-11-13 | Level 3 Communications, Llc | Beacon Services in a Content Delivery Framework |
US10701148B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having storage services |
US9634918B2 (en) | 2012-12-13 | 2017-04-25 | Level 3 Communications, Llc | Invalidation sequencing in a content delivery framework |
US9847917B2 (en) | 2012-12-13 | 2017-12-19 | Level 3 Communications, Llc | Devices and methods supporting content delivery with adaptation services with feedback |
US10652087B2 (en) | 2012-12-13 | 2020-05-12 | Level 3 Communications, Llc | Content delivery framework having fill services |
US10701149B2 (en) | 2012-12-13 | 2020-06-30 | Level 3 Communications, Llc | Content delivery framework having origin services |
US9338192B1 (en) * | 2012-12-28 | 2016-05-10 | Juniper Networks, Inc. | Connection management using connection request transfer protocol |
GB2510192A (en) * | 2013-01-29 | 2014-07-30 | Openwave Mobility Inc | Intermediate proxy server caching buffer searched with key (URI hash) |
CN104348722B (zh) | 2013-07-31 | 2017-12-12 | 华为技术有限公司 | 确定内容获取路径、请求处理的方法、装置和系统 |
CN104995897A (zh) * | 2013-11-21 | 2015-10-21 | 阿尔卡特朗讯公司 | 用于在ip网络中进行内容缓存和传输的方法、系统和装置 |
EP2876863B1 (en) * | 2013-11-22 | 2016-08-10 | Alcatel Lucent | Delivery and storage of content within a network |
CN106856456B (zh) * | 2015-12-08 | 2020-02-28 | 中兴通讯股份有限公司 | 缓存集群服务的处理方法及系统 |
CN109246164A (zh) * | 2017-07-10 | 2019-01-18 | 中兴通讯股份有限公司 | 一种基于云虚拟化网络的访问方法、装置及系统 |
CN109561027A (zh) * | 2017-09-26 | 2019-04-02 | 中兴通讯股份有限公司 | 透明缓存的流量优化方法、负载均衡器及存储介质 |
US20210288864A1 (en) * | 2020-03-13 | 2021-09-16 | Comcast Cable Communications, Llc | Methods and systems for content distribution |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080158B1 (en) * | 1999-02-09 | 2006-07-18 | Nortel Networks Limited | Network caching using resource redirection |
CN101534204A (zh) * | 2008-03-10 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 流媒体信息分发系统和方法及客户端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8296396B2 (en) * | 1998-02-10 | 2012-10-23 | Level 3 Communications, Llc | Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions |
US6532493B1 (en) * | 1998-10-29 | 2003-03-11 | Cisco Technology, Inc. | Methods and apparatus for redirecting network cache traffic |
WO2003012578A2 (en) * | 2001-08-01 | 2003-02-13 | Actona Technologies Ltd. | Virtual file-sharing network |
US20060064469A1 (en) * | 2004-09-23 | 2006-03-23 | Cisco Technology, Inc. | System and method for URL filtering in a firewall |
US8769156B2 (en) * | 2009-12-23 | 2014-07-01 | Citrix Systems, Inc. | Systems and methods for maintaining transparent end to end cache redirection |
US8640216B2 (en) * | 2009-12-23 | 2014-01-28 | Citrix Systems, Inc. | Systems and methods for cross site forgery protection |
US8200752B2 (en) * | 2009-12-23 | 2012-06-12 | Citrix Systems, Inc. | Systems and methods for policy based transparent client IP insertion |
US9049247B2 (en) * | 2010-04-01 | 2015-06-02 | Cloudfare, Inc. | Internet-based proxy service for responding to server offline errors |
-
2011
- 2011-03-18 US US13/051,342 patent/US20120239775A1/en not_active Abandoned
- 2011-08-12 CN CN201110231959.2A patent/CN102685177B/zh not_active Expired - Fee Related
- 2011-09-01 EP EP11179744.5A patent/EP2501103B8/en not_active Not-in-force
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080158B1 (en) * | 1999-02-09 | 2006-07-18 | Nortel Networks Limited | Network caching using resource redirection |
CN101534204A (zh) * | 2008-03-10 | 2009-09-16 | 中国网通集团宽带业务应用国家工程实验室有限公司 | 流媒体信息分发系统和方法及客户端 |
Also Published As
Publication number | Publication date |
---|---|
EP2501103B1 (en) | 2017-04-05 |
EP2501103A1 (en) | 2012-09-19 |
CN102685177A (zh) | 2012-09-19 |
EP2501103B8 (en) | 2017-08-02 |
US20120239775A1 (en) | 2012-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102685177B (zh) | 资源的透明代理缓存方法、网络设备及系统 | |
CN102685179B (zh) | 模块化透明代理缓存 | |
USRE49126E1 (en) | Real-time adaptive processing of network data packets for analysis | |
EP3387803B1 (en) | Router with optimized statistical functionality | |
US8677011B2 (en) | Load distribution system, load distribution method, apparatuses constituting load distribution system, and program | |
CN104885431B (zh) | 软件定义信息中心网络中基于内容的流量工程的方法及装置 | |
EP2940970B1 (en) | Nat implementation system, method, and openflow switch | |
CN105554065B (zh) | 处理报文的方法、转换单元和应用单元 | |
US9774520B1 (en) | Service aware path selection with a network acceleration device | |
US8547843B2 (en) | System, method, and computer program product for controlling output port utilization | |
US9667442B2 (en) | Tag-based interface between a switching device and servers for use in frame processing and forwarding | |
US8694654B1 (en) | Host side protocols for use with distributed control plane of a switch | |
CN107070983A (zh) | 一种基于地址转发的负载均衡方法、设备和系统 | |
US20160150043A1 (en) | Source ip address transparency systems and methods | |
US9185033B2 (en) | Communication path selection | |
CN105991793B (zh) | 报文转发的方法和装置 | |
CN101110769B (zh) | 基于安全业务的包转发方法及系统 | |
EP3402165A1 (en) | Access record passing back method, device and system | |
CN101106529B (zh) | 基于安全业务的包转发方法及系统 | |
Chiang et al. | An extended SDN-based in-network caching service for video on demand | |
CN107070813A (zh) | 一种基于虚拟网络接口的内容缓存的系统及方法 | |
JP3825438B2 (ja) | ラベルスイッチングネットワークおよびラベルエッジルータ | |
CN117389680A (zh) | 数据处理方法、装置及计算设备 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160120 Termination date: 20190812 |