CN102833361B - 为资源请求终止连接和选择目标源装置 - Google Patents
为资源请求终止连接和选择目标源装置 Download PDFInfo
- Publication number
- CN102833361B CN102833361B CN201110451782.7A CN201110451782A CN102833361B CN 102833361 B CN102833361 B CN 102833361B CN 201110451782 A CN201110451782 A CN 201110451782A CN 102833361 B CN102833361 B CN 102833361B
- Authority
- CN
- China
- Prior art keywords
- request
- information
- resource
- network
- address
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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 Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及为资源请求终止连接和选择目标源装置,该装置从客户端装置接收资源的请求并访问包括一项或多项信息的表。该装置将请求中提供的信息与表中提供的一项或多项信息进行比较,并在请求中提供的信息与表中提供的一项或多项信息的至少一项匹配时在该装置终止请求的连接。当在该装置没有终止连接时,该装置将请求转发到网络,并且当在该装置终止连接时,为资源选择目标装置。
Description
技术领域
本发明涉及通信领域,具体地涉及为资源请求终止连接和选择目标源装置。
背景技术
服务提供商是出售由与服务提供商相关的网络(例如,互连网、数据网络、电信网络等)提供的带宽或接入该网络的带宽的实体(例如,企业或组织)。服务提供商可以包括电信公司、数据载体、无线通信提供商、互联网服务提供商、提供高速互联网接入的有线电视运营商等。诸如例如视频、音频、图像和软件下载的内容使用的快速增长正为服务提供商创造更高的带宽要求,伴有病毒内容和事件的急剧攀升。
内容可以从诸如通过服务提供商的网络安装的源服务器、镜像服务器、缓存服务器等的服务器提供到客户端装置。客户端装置可以请求使用诸如超文本传输协议(HTTP)、实时消息协议(RTMP)等的互联网协议访问该内容。当客户端装置请求访问内容时,必须将该请求路由到网络中的适当的服务器。路由请求考虑多个因素,诸如改善客户端装置的体验(例如,延迟、内容传输速度等)、网络的成本和可扩展性以及内容分发架构等。然而,由于服务提供商网络的复杂性和负载变化性增加,因此,对于服务提供商来说,将请求路由到适当的服务器变得越来越成问题。此外,客户端装置的数量和类型以及内容量正在快速增长。另外,服务提供商需要联合他们的服务以提供全球化解决方案。
为了解决这些问题,服务提供商当前部署了不同类型的解决方案,诸如基于域名系统(DNS)的解决方案、基于边界网关协议(BGP)的解决方案以及基于应用程序级的解决方案。每个解决方案均通过手动配置在现有网络路由基础架构上提供覆盖。手动配置包括服务提供商广播服务器的互联网(IP)地址。对于较大类型的内容(例如,视频、下载等),解决方案不提供在单个请求上下文中进一步优化路由的任何机会。解决方案在服务提供商需要联合他们的服务的环境下也不能很好地运行。
在基于DNS的解决方案中,客户端装置通常执行DNS查找以将域名解析为IP地址。DNS服务专用于基于例如地理位置、服务器负载、内容位置等的因素动态地选择服务器IP地址。然而,基于DNS的解决方案仅在域级提供粗粒度路由。
在基于BGP的解决方案中,在多个位置支持给定的服务器IP地址。例如,每个不同区域可以包括具有相同IP地址的服务器,并且服务器可以广播IP地址。然而,基于BGP的解决方案仅在服务器级提供粗粒度路由,并且也不可特别好地解决网络问题(例如,拥塞、服务器故障等)。
借助于基于应用程序级的解决方案,服务器能够经由HTTP协议将客户端装置重定向到不同服务器。例如,一些服务提供商在应用程序级在其网络中部署内容服务器。可以通过将内容请求明确地路由(例如,经由DNS或BGP)到在应用程序级实施的内容路由器来执行基于应用程序级的解决方案。应用程序级路由的另一实例包括:门户服务器基于内容请求的来源在门户服务器返回的超文本标记语言(HTML)页面中嵌入不同的统一资源定位符(URL)。
然而,由于与内容服务器相关的额外路由和连接建立,基于应用程序级的解决方案增加了客户端装置的延迟。此外,基于应用程序级的解决方案难以扩展,并且如果必须将所有请求路由到内容服务器,则内容服务器可能变成网络瓶颈。
发明内容
根据一个方面,计算装置执行的方法可以包括:计算装置从客户端装置接收资源的请求;计算装置访问包括一项或多项信息的表;计算装置将请求中提供的信息与表中提供的一项或多项信息进行比较;在请求中提供的信息与表中提供的一项或多项信息的至少一项进行匹配时,计算装置终止请求的连接;当在计算装置没有终止连接时,计算装置将请求转发到网络;以及当在计算装置终止连接时,计算装置为资源选择目标装置。
根据另一方面,计算装置执行的方法可以包括:计算装置从网络装置接收本地缓存信息,其中,本地缓存信息标识网络装置的本地缓存中存储的资源;计算装置从多个服务器装置接收资源信息,其中,资源信息标识多个服务器装置中的每个中存储的资源;计算装置从与网络装置相关的网络接收网络信息,其中,网络信息标识与网络相关的拓扑结构、负载和成本;计算装置存储本地缓存信息、资源信息和网络信息;计算装置从网络装置接收所请求的资源的查询;计算装置基于本地缓存信息、资源信息或网络信息中的一个或多个为所请求的资源选择目标装置,其中,目标装置包括包括所请求的资源的本地缓存或多个服务器装置中的一个;以及计算装置向网络装置提供所选择的目标装置的标识。
根据又一方面,边缘装置可以包括:用于存储包括一项或多项信息的表的装置以及处理器。处理器可以从客户端装置接收资源的请求,可以将请求中提供的信息与表中提供的一项或多项信息进行比较,可以在请求中提供的信息与表中提供的一项或多项信息中至少一项匹配时在边缘装置终止请求的连接。处理器可以在边缘装置没有终止连接时将请求转发到网络,可以在边缘装置终止连接时为资源选择目标装置,并可以从所选择的目标装置检索资源。
根据又一方面,计算装置可以包括:存储器,用于存储以下一个或多个:标识网络装置的本地缓存中存储的资源的本地缓存信息,标识多个服务器装置的每个中存储的资源的资源信息,以及标识与网络装置相关的网络的拓扑结构、负载和成本的网络信息。计算装置还可以包括处理器:用于从网络装置接收所请求的资源的查询,基于本地缓存信息、资源信息或网络信息中的一个或多个来选择包括所请求的资源的目标装置,其中,目标装置包括本地缓存或多个服务器装置中的一个,并且向网络装置提供所选择的目标装置的标识。
附图说明
附图包括在说明书中,并构成说明书的一部分,示出了本文描述的一个或多个实施方式,并与说明书一起说明这些实施方式。在附图中:
图1是可以实施本文所述的系统和/或方法的实例网络的示图;
图2是图1所示的客户端装置、缓存服务器、源装置、路由中介服务器或其他装置的实例组件的示图;
图3是图1所示的网络装置的实例组件的示图;
图4是能够由图1所示的网络的实例部分执行的实例操作的示图;
图5A和图5B是能够由图1中所示的网络的实例部分执行的另一实例操作的示图;
图6是能够由图1所示的网络的实例部分执行的又一实例操作的示图;
图7是能够由图1所示的网络的实例部分执行的实例操作的示图;
图8是能够由图1所示的网络的实例部分执行的另一实例操作的示图;
图9是图1所示的网络装置的应用代理的功能组件的实例的示图;以及
图10至13是根据本文所述的实施方式提供网络集成动态资源路由的实例过程的流程图。
具体实施方式
以下的详细描述参照附图。不同图中的相同参考标号可以标识相同或相似的元件。
通过在诸如服务提供商网络的核心网的边缘网络装置中添加应用程序级智能,本文所述的系统和/或方法可以将资源路由集成至核心网的基础架构中。应用程序级的智能可以包括应用程序代理,其终止与客户端装置资源请求的全部或子集相关的给定应用程序的连接。对于每个资源请求,应用程序代理可以确定存储资源的目标服务器,可以连接至所确定的服务器,并可以在客户端装置和确定的服务器之间代理资源请求和返回的资源。
在实例实施方式中,系统和/或方法可以从客户端装置接收资源请求,并基于请求的IP信息确定是否终止该请求的连接。如果没有终止请求的连接,则可以将请求转发到诸如服务提供商网络的核心网用于额外路由。如果终止请求的连接,则可以确定该资源的目标源装置,并且可以将请求提供到所确定的目标源装置。可以从目标源装置接收资源,并将其提供到客户端装置。
图1是可以实施本文所述的系统和/或方法的实例网络100的示图。如图所示,网络100可以包括客户端装置110、缓存(cache,高速缓存)服务器装置120(本文称为“缓存服务器(cache server)120”)、起始装置130、路由中介服务器装置140(本文称为“路由中介(routing broker)服务器140”)、其他装置150、网络160和设置在网络160中或与网络160连接的网络装置170。如图1所示,网络装置170可以包括应用程序代理(application proxy)172和本地缓存174。
网络100中的装置可以经由有线和/或无线互连或连接。为了简单,在图1中示出了单个客户端装置110、缓存服务器120、起始装置130、路由中介服务器140、其他装置150、网络160和网络装置170。实际上,可存在另外的客户端装置110、缓存服务器120、起始装置130、路由中介服务器140、其他装置150、网络160和/或网络装置170。此外,在一些情况下,网络100的一个或多个装置可以执行被描述为由网络100的另一个或多个装置执行的一个或多个任务。
客户端装置110可以包括能够经由网络160和/或网络装置170接入缓存服务器120、起始装置130和/或其他装置150的任何装置。例如,客户端装置110可以包括无线电话、可以将数据处理和数据通信功能与蜂窝无线电话组合的个人通信系统(PCS)终端、可以包括无线电话、寻呼机、互联网/以太网接入等的个人数字助理(PDA)、无线装置(例如,无线电话)、智能电话、工作站计算机、膝上型计算机、个人计算机或其他类型的计算或通信装置。
缓存服务器120可以包括一个或多个服务器装置,或者以本文所述的方式收集、处理、搜索和/或提供信息的其他类型的计算或通信装置。在一个实例实施方式中,缓存服务器120可以用作来自从起始装置130寻求资源的客户端装置110的请求的媒介。如本文所使用的术语“资源”旨在广义地解释为包括:内容,诸如视频、音频、图像、软件下载等;服务,诸如提供高清晰度和用户生成的内容、消费者和企业新闻和信息服务、电子邮件系统等;和/或内容和服务的组合。客户端装置110可以经由网络160和/或网络装置170连接至缓存服务器120,并可以从起始服务器130请求一些可用资源。缓存服务器120可以评估请求(例如,根据过滤规则,诸如按IP地址或协议过滤流量)。如果验证请求,则缓存服务器120可以通过连接至起始装置130并代表客户端装置110请求资源来提供所请求的资源。缓存服务器120可以在没有连接起始装置130的情况下服务请求。在该情况下,缓存服务器120可以缓存(或存储)先前从起始装置130请求的特定资源,并在没有涉及起始装置130的情况下经由网络装置170将该特定资源提供到客户端装置。
起始装置130可以包括一个或多个服务器装置,或者以本文所述的方式收集、处理、搜索和/或提供资源的其他类型的计算或通信装置。在一个实例实施方式中,起始装置130可以包括客户端装置170可以经由网络160和/或网络装置170访问的资源。在一个实例中,起始装置130可以向客户端装置110提供资源(例如,经由网络160和/或网络装置170)。可选地,起始装置130可以为缓存服务器120提供特定资源用于存储。缓存服务器120可以存储特定资源,使得当客户端装置110请求时,缓存服务器120可以将特定资源提供到客户端装置110,而不涉及起始装置130。
路由中介服务器140可以包括一个或多个服务器装置,或者以本文所述的方式收集、处理、搜索和/或提供信息的其他类型的计算或通信装置。在一个实例实施方式中,路由中介服务器140可以从各种源接收信息,并可存储信息。例如,路由中介服务器140可以接收:来自本地缓存174的信息(例如,关于本地缓存174的可用性的信息、标识本地缓存174中存储的资源的信息等);来自网络160的信息(例如,关于网络160和/或网络装置170的可用性的信息,网络拓扑结构和成本等);来自缓存服务器120的信息(例如,关于缓存服务器120的信息、标识缓存服务器120中存储的资源的信息等);来自其他装置150的信息(例如,关于其他装置150的可用性的信息,标识由其他装置150存储的资源的信息、标识有除由与网络100相关的服务提供商之外的服务提供商提供的资源的服务器的应用层流量优化(ALTO)服务(例如,请求注解(RFC)5693中阐述的)信息;和/或来自起始装置130的信息(例如,关于起始装置130可用性的信息,标识起始装置130中存储的资源的信息)。
在一个实例中,网络装置170可以向路由中介服务器140查询目标装置的位置以服务资源请求(例如,由客户端装置110提供)。路由中介服务器140可以接收该查询,可以确定目标装置以服务资源请求,并且可以向网络装置170提供目标装置的诸如IP地址的位置信息。例如,路由中介服务器140可从网络装置170接收查询,并且因为起始装置130是所请求的资源的最近装置,因此可以确定起始装置130是目标装置。因此,路由中介服务器140可以向网络装置170提供起始装置130的诸如IP地址的位置信息。
其他装置150可以包括一个或多个服务器装置或者以本文所述的方式收集、处理、搜索、和/或提供信息的其他类型的计算或通信装置。在一个实例实施方式中,其他装置150可以与在网络100或网络100的组件故障的情况下为网络100提供资源的联合服务提供商网络相关。其他装置150可以存储标识有这种联合服务提供商网络提供的资源的服务器的ALTO服务信息。在实例实施方式中,在网络100或网络100的组件故障的情况下,其他装置150可以包括客户端装置110可以经由网络160和/或网络装置170接入的资源。
网络160可以包括诸如局域网(LAN)、广域网(WAN)的服务提供商网络;城域网(WAN);电话网络(例如,公共交换电话网络(PSTN)或蜂窝网络);互联网;或网络的组合。
网络装置170可以包括诸如网关、路由器、交换机、防火墙、网络接口卡(NIC)、集线器、网桥、代理服务器,光分插复用器(OADM)的流量传输装置,或者处理和/或转移流量(例如,包)的一些其他类型的装置。在一个实施方式中,网络装置170可以是提供来自网络160的入口点或出口点的边缘网络装置。在一个实例中,网络装置170可以使得客户端装置110、缓存服务器120、起始装置130、路由中介服务器140和/或其他装置150能够彼此通信。在另一实例中,网络装置170可以使得客户端装置110能够请求并从缓存服务器120、起始服务器130和/或其他装置150接收资源。
如图1进一步所示,网络装置170可以包括应用程序代理172和本地缓存174。应用程序代理172可以终止与客户端装置110的资源请求的全部或子集相关的给定应用程序的连接。应用程序代理172基本上可以同时、在不同时间等接收资源请求。对于每个资源请求,应用程序代理172可以确定存储资源的目标服务器(例如,缓存服务器120、起始服务器130、其他装置150或本地缓存174)。应用程序代理服务器172可以连接至所确定的服务器,并可以代理资源请求以及客户端装置110和确定的服务器之间返回的资源。
在实例实施方式中,应用程序代理172可以从客户端装置110接收资源请求,并基于请求的IP信息确定是否终止请求的连接。如果应用程序代理172确定不应当终止请求的连接,则代理服务器172可以将请求转发到网络160用于额外路由。如果应用程序代理172确定应当终止请求的连接,则应用代理服务器172可以终止请求的连接,并且可以确定该资源的目标源装置(例如,缓存服务器120、起始服务器130、其他装置150或本地缓存174)。应用程序代理172可以将请求提供到确定的目标源装置,并接收来自目标源装置的资源,并可以将资源提供到客户端装置110。
本地缓存174可以包括一个或多个存储装置,诸如磁和/或光记录介质和它们的相应驱动、可移除存储器、随机存取存储器(RAM)和只读存储器(ROM)等。在一个实例实施方式中,本地缓存174可以存储客户端装置110可以接入的资源。本地缓存174可以存储资源,使得在客户端装置110请求时,本地缓存174可以在不涉及缓存服务器120、起始装置130、和/或其他装置150的情况下,将资源提供到客户端装置110。例如,以下结合图3-9提供了网络装置170、应用程序代理172和本地缓存174的进一步细节。
虽然图1示出了网络100的实例装置,但是在其他实施方式中,与图1描述的相比,网络100可以包括更少的装置、不同装置、不同排列的装置或另外的装置。
图2是装置200的实例组件的示图,其可以对应于客户端装置110、缓存服务器120、起始服务器130、路由中介服务器140、或其他装置150(图1)。在一些情况下,装置200还可以对应于网络装置170(图1)。客户端装置110、缓存服务器120、起始服务器130、路由中介服务器140、其他装置150或网络装置170中的每个可以包括一个或多个装置200。如图2所示,装置200可以包括总线210、处理单元220、主存储器230、ROM 240、存储装置250、输入装置260、输出装置270和/或通信接口280。总线210可以包括允许在装置200的组件之间通信的路径。
处理单元220可以包括一个或多个处理器、微处理器、特定用途集成电路(ASIC)、场可编程门阵列(FPGA)或解释并执行指令的其他类型的处理单元。主存储器230可以包括RAM或存储用于处理单元220执行的信息和指令的其他类型的动态存储装置。ROM 240可以包括ROM装置或存储用于处理单元220的静态信息和/或指令的其他类型的静态存储装置。存储装置250可以包括磁和/或光记录介质及其相应驱动,或者诸如闪存的可移除存储器。
输入装置260可以包括允许操作者向诸如键盘、鼠标、交换机、按钮、语音识别和/或生物机制、触摸屏等的装置200输入信息的机制。输出装置270可以包括向包括显示器、扬声器、发光二极管(LED)等的操作器输出信息的机制。通信接口280可以包括使得装置200能够与其他装置和/或系统通信的任何收发机机制。例如,通信接口280可以包括用于经由网络与另一装置或系统进行通信的机制。在一个实施方式中,通信接口280可以包括诸如以太网接口的有线接口或者诸如射频接口的无线接口。
如本文所述,装置200可以响应于执行诸如主存储器230的计算机可读介质中包含的软件指令的处理单元220执行特定操作。计算机可读介质可以限定为非暂时性的存储器装置。存储器装置可以包括在单个物理存储器装置中或遍布多个物理存储器装置的空间。软件指令可以从诸如存储装置250的另一计算机可读介质或者经由通信接口280从另一装置读入主存储器230。主存储器230中包含的软件指令可以使处理单元220执行本文所述的处理。可选地,硬连线的电路可以取代软件指令或与其结合使用以执行本文所述的处理。因此,本文所述的实施方式不限于硬件电路和软件的任何特定组合。
虽然图2示出了装置200的实例组件,但是在其他实施方式中,与图2中描述的相比,装置200可以包括更少的组件、不同组件、不同地排列的组件或另外的组件。可选地或者另外地,装置200的一个或多个组件可以执行描述为由装置200的一个或多个其他组件执行的一个或多个其他任务
图3是可以对应于网络装置170(图1)的装置300的实例组件的示图。在一些情况下,网络装置170可以包括一个或多个装置300。如图3所示,装置300可以包括输入组件310、交换/路由机制320、输出组件330和控制单元340。
输入组件310可以是物理链路的附着点,并可以是诸如包的进入流量的入口点。输入组件310可以处理进入流量,诸如通过执行数据链路层封装或封装。在一个实例实施方式中,输入组件310可以发送和/或接收包。
交换/路由机制320可以将输入组件310与输出组件330互连。交换/路由机制320可以使用多种不同技术来实施。例如,交换/路由机制320可以经由总线、经由交换机、和/或用共享存储器来实施。共享存储器可以用作在流量被最终调度以传送到输出组件330之前存储来自输入组件310的流量的缓冲器。
输出组件330可以存储包并可以调度包用于输出物理链路上的服务。输出组件330可以包括支持优先级或保证的调度算法。输出组件330可以支持数据链路层封装和解封装,和/或各种更高层协议。在实例实施方式中,输出组件330可以发送包和/或接收包。
控制单元340可以使用路由协议以及一个或多个转发表用于转发包。控制单元340可以与输入组件310、交换/路由机制320和输出组件330连接。控制单元340可以计算转发表、实施路由协议、和/或运行软件以配置和管理装置300。控制电路340可以确定其目的地地址没有在转发表中找到的任何包的路由。
在实例实施例中,控制单元340可以包括总线350,其包括允许处理器360、存储器370和通信接口380之间进行通信的路径。处理器360可以包括一个或多个处理器、微处理器、ASIC、FPGA、或可以解释和执行指令的其他类型的处理单元。存储器370可以包括RAM、ROM装置、磁和/或光记录介质及其相应驱动、和/或可以存储信息和指令用于处理器360执行的其他类型的静态和/或动态存储装置。在包被导向回至交换/路由机制320,被交换/路由机制320传输并最后调度以发送到输出组件330之前,存储器370还可以临时地存储来自输入组件310的进入流量(例如,包的头或整个包)用于处理器360处理。通信接口380可以包括任何像收发器的机制,其使得控制单元340与其他装置和/或系统进行通信。
如本文所述,响应于执行在诸如存储器370的计算机可读介质中包含的软件指令的处理器360,装置300可以执行特定操作。软件指令可以从诸如数据存储装置的另一计算机可读介质或者经由通信接口380从另一装置读入存储器370。存储器370中包含的软件指令可以使处理器360执行本文所述的处理。可选地,硬连线电路可以代替软件指令或者与软件指令结合使用来实施本文所述的处理。因此,本文所述的实施方式不限于硬件电路和软件的任何特定组合。例如,可以使用路由协议(例如,BGP)经由外部代理控制装置300的交换/路由操作。
虽然图3示出了装置300的实例组件,但是在其他实施方式中,与图3描述的相比,装置300可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或另外地,装置300的一个或多个组件可以执行描述为由装置300的一个或多个其他组件执行的一个或多个其他任务。
图4是能够由网络100的实例部分400执行的实例操作的示图。如图所示,实例网络部分400可以包括客户端装置110、网络装置170和应用程序代理172。客户端装置110、网络装置170和应用程序代理172可以包括以上结合例如图1-3中的一个或多个描述的特征。
如图4所示,客户端装置110可以向网络装置170提供资源请求410,并且网络装置170可以经由应用程序代理172接收请求410。应用程序代理172可以接收请求410,并可以基于请求410中提供的信息确定是否在网络装置170终止请求410的连接(例如,传输控制协议(TCP))。在一个实例中,请求410中提供的信息可以包括IP信息,诸如请求410的目的地IP地址、客户端装置110的IP地址(即,请求410的源IP地址)、请求410的目的地端口(例如,网络地址转换(NAT))等。在一个实施方式中,应用程序代理172可以从请求410提取目的地IP地址,可以从请求410提取客户端装置110的IP地址,和/或可以从请求410提取目的地端口。应用程序代理172可以基于提取的目的地IP地址确定客户端装置110的IP地址、和/或目的地端口、是否在网络装置170终止请求410的连接。
如图4中进一步所示,如果应用程序代理172基于请求410中提供的信息决定终止请求410的连接,则应用程序代理172可以向客户端装置110提供终止连接的指示420。如果应用程序代理172基于请求410中提供的信息决定没有终止请求410的连接,则应用程序代理172可以向客户端装置110提供连接没有终止的指示430,并可以将请求410转发到网络160用于额外路由,如参考标号440所示。在一个实例实施方式中,应用程序代理172可以终止给定应用程序或从客户端装置110接收的资源请求的全部或子集的连接(例如,TCP连接)。在另一实例实施方式中,由于请求410可以被另一下游装置终止,因此可以省略指示430。
在一个实施方式中,应用程序代理172可以保持或接入提供应用程序、客户端装置IP地址、源装置IP地址等的列表的表(或其他数据结构)。表中提供的信息可以由网络管理员输入到网络装置170,或者可以由应用程序代理172基于提供到网络装置170或由其接收的先前流量来生成。例如,如果网络装置170从特定客户端装置110接收特定数量(例如,大于阈值)的请求,则应用程序代理172可以将客户端装置110的IP地址添加到表。在另一实例中,如果网络装置170从特定服务器检索特定数量(例如,大于阈值)的资源,则应用程序代理172可以将特定服务器的IP地址添加到表。
应用程序代理172可以将请求410中提供的信息和表中提供的信息进行比较,并且当请求410中提供的信息与表中提供的一项或多项信息匹配时,决定终止请求410的连接。在一个实施方式中,应用程序代理172可以建立规则以确定是否终止连接(例如,如果表中有一个匹配,则终止连接,如果表中有两个或多个匹配,则终止连接等)。在一个实例中,如果请求410包括起始装置130的目的地IP地址并且表包括起始装置130的目的地IP地址,则应用程序代理172可以决定终止请求410的连接。在另一实例中,如果请求包括缓存服务器120的目的地IP地址但是不包括客户端装置110的IP地址,则应用程序代理172可以确定没有终止请求410的连接。
虽然图4示出了网络部分400的实例组件,但是在其他实施方式中,与图4中描述的相比较,网络部分400可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或另外地,网络部分400的一个或多个组件可以执行描述为由网络部分400的一个或多个其他组件执行的一个或多个任务。
图5A和5B是能够由网络100的实例部分500执行的另一实例操作。如图5A和5B所示,实例网络部分500可以包括客户端装置110、缓存服务器120、起始装置130、路由中介服务器140、其他装置150、网络160和网络装置170。客户端装置110、缓存服务器120、起始装置130、路由中介服务器140、其他装置150、网络160和网络装置170可以包括例如以上结合图1-4中的一个或多个描述的特征。
如图5A进一步所示,路由中介服务器140可以从网络部分500的一个或多个源接收信息。例如,本地缓存174可以将本地缓存信息510提供到路由中介服务器140。本地缓存信息510可以包括关于本地缓存174的可用性的信息,标识本地缓存174中存储的资源的信息,关于本地缓存174的大小的信息等。在另一实例中,网络160可以将网络信息520提供到路由中介服务器140。网络信息520可以包括关于网络160和/或网络160的组件、与网络160相关的拓扑结构和成本、可用于网络160的带宽、优选的网络160的客户端装置等的信息。在又一实例中,缓存服务器120可以将缓存信息530提供给路由中介服务器140。缓存信息530可以包括关于缓存服务器120的可用性的信息、标识缓存服务器120中存储的资源的信息、关于缓存服务器120的负载的信息等。在一个实例实施方式中,路由中介服务器140可以使得新缓存服务器添加到网络100,而无需像现有方案要求的那样明确地将新的缓存服务器配置到路由判定中。新的缓存服务器可以向路由中介服务器140提供缓存信息(例如,与缓存信息530类似)。
在再一实例中,其他装置150可以向路由中介服务器140提供其他装置信息540。其他装置信息540可以包括关于其他装置150的可用性的信息、标识其他装置150中存储的资源的信息、关于与其他装置150相关的服务提供商的信息、标识具有由与其他装置150相关的服务提供商提供的资源的服务器的ALTO服务信息等。在又一实例中,起始装置130可以向路由中介服务器140提供起始信息550。起始信息550可以包括关于起始装置130的可用性的信息、标识起始装置130中存储的资源的信息、关于起始装置130的负载的信息等。
路由中介服务器140可以接收本地缓存信息510、网络信息520、缓存信息530、其他装置信息540和/或起始信息550,并可以存储(例如,在图2的主存储器230、ROM 240和/或存储装置250中)本地缓存信息510、网络信息520、缓存信息530、其他装置信息530和/或起始信息550。如图5A中进一步示出,客户端装置110可以向网络装置170提供资源的请求560,并且网络装置170可以经由应用程序代理172接收请求560。请求560可以包括IP信息,诸如请求560的目的地IP地址、客户端装置110的IP地址(即,请求560的源IP地址)、请求560的目的地端口等。在一个实例中,请求560可以包括HTTP GET请求(例如,请求资源)、域名、和/或统一资源定位符(URL)。应用程序代理172可以接收请求560,并可以如以上结合图4描述的,基于请求560中提供的信息确定是否在网络装置170终止请求560的连接。
如果应用程序代理172在网络装置170终止请求560的连接,则应用程序代理172可以确定请求560请求的资源的目标源装置。应用程序代理172可以以多种方式确定目标源装置。例如,如图5B所示,应用程序代理172可以向路由中介服务器140提供查询570。查询570可以包括存储了由请求560请求的资源的目标源装置的位置的请求。在一个实施方式中,请求570可以包括与请求560相关的信息,诸如请求560请求的资源、请求560的域名、请求560的URL等。
路由中介服务器140可以接收查询570,并可以基于查询570确定请求560请求的资源的目标源装置。在一个实例中,路由中介服务器140可以基于各种因素确定目标源装置,诸如网络160的状态(例如,网络160的带宽、网络160的负载等)、目标源装置关于客户端装置110的物理位置(例如,在位于距客户端装置110较远的装置前,可以选择位于较靠近客户端装置110的装置)等。在确定目标源装置之后,路由中介服务器140可以将目标源装置的位置580(例如,IP地址)提供给应用程序代理172。
在一个实例中,请求560中包括的域名可以由特定服务器(例如,起始装置130)托管,而请求560中包括的URL可以标识由不同服务器(例如,缓存服务器120)托管的资源。在这种场景下,由于请求560请求的资源由缓存服务器120托管,因此路由中介服务器140可以确定缓存服务器120是目标源装置。相反,在基于DNS的系统中,请求560将不必首先由于请求560的域名而被路由到起始装置130。
在一个实例实施方式中,在生成查询570之前,应用程序代理172可以确定所请求的资源是否存储在本地缓存174中。在一个实例中,应用程序代理172可以保持提供了本地缓存174中存储的资源列表的表(或其他数据结构)。应用程序代理172可以扫描表以确定所请求的资源是否存储在本地缓存174中。如果应用程序代理172确定所请求的资源存储在本地缓存174中,则应用程序代理172可以从本地缓存174检索所请求的资源。例如,应用程序代理172可以向本地缓存174提供请求560,并且本地缓存174可以检索请求560请求的资源590。本地缓存174可以向应用程序代理172提供资源590,并且应用程序代理172可以将资源590转发到客户端装置110。
如果应用程序代理172确定资源不存储在本地缓存174中,则应用程序代理172可以向路由中介服务器140提供查询570。应用程序代理172可以从路由中介服务器140并且基于查询570接收目标源装置(例如,缓存服务器120、起始装置130、和/或其他装置150)的位置580。应用程序代理172可以使用位置580来与目标源装置连接,并从目标源装置检索所请求的资源。
如图5B进一步示出,在一个实例中,如果位置580标识了缓存服务器120的IP地址,则应用程序代理172可以向缓存服务器120提供请求560(例如,其可以包括客户端装置110的IP地址),并且缓存服务器120可以检索请求560请求的资源590。缓存服务器120可以向应用程序代理172提供资源590,并且应用程序代理172可以将资源590(例如,其可以包括缓存服务器120的IP地址)转发到客户端装置110。在另一实例中,如果位置580标识起始装置130的IP地址,则应用程序代理172可以向起始装置130提供请求560(例如,其可以包括客户端装置110的IP地址),并且起始装置130可以检索请求560所请求的资源590。起始装置130可以向应用程序代理172提供资源590,并且应用程序代理172可以将资源590(例如,其可以包括起始装置130的IP地址)转发到客户端装置110。在又一实例中,如果位置580识别其他装置150的IP地址,则应用程序代理172可以向其他装置150提供请求560(例如,其可以包括客户端装置110的IP地址),并且其他装置150可以检索请求560请求的资源590。其他装置150可以向应用程序代理172提供资源590,并且应用程序代理172可以将资源590(例如,其可以包括其他装置150的IP地址)转发到客户端装置110。
虽然图5A和5B中示出了网络部分500的实例组件,但是在其他实施方式中,与图5A和5B中描述的相比较,网络部分500可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或者另外地,网络部分500的一个或多个组件可以执行描述为由网络部分500的一个或多个组件执行的一个或多个其他任务。例如,网络装置170可以经由应用程序代理172执行描述为由路由中介服务其140执行的一个或多个功能(例如,确定目标源装置)。
图6是能够由网络100的实例部分600执行的又一实例操作的示图。如图所示,实例网络部分600可以包括客户端装置110、缓存服务器120、起始装置130、其他装置150、网络装置170、应用程序代理172和本地缓存174。客户端装置110、缓存服务器120、起始装置130、其他装置150、网络装置170、应用程序代理172和本地缓存174可以包括以上结合例如图1至5B中的一个或多个描述的特征。
在一个实施方式中,图6可以描述网络装置170如何将来自客户端装置110的请求代理到目标源装置,并且进一步将从目标源装置检索的资源代理到客户端装置110。通过代理请求和资源,网络装置170可以确保客户端装置110和目标源装置彼此是透明的,或者缓存服务器120对客户端装置110和起始装置130是透明的。例如,客户端装置110可以对起始装置130是透明的,因为网络装置170可以使用其自己的IP地址,或者可以隐瞒客户端装置110和/或起始装置130的地址,以在客户端装置110和起始装置130之间交换信息(例如,包)。在另一实例中,网络装置170可以使用客户端装置110和/或起始装置130的IP地址,以与缓存服务器120交换信息(即,使得缓存服务器120对客户端装置110和/或起始装置130不可见)。这种布置可以确保客户端装置110、缓存服务器120、和/或起始装置130对彼此不可见,这将提高客户端装置110和/或目标源装置的安全性。
如图6中进一步所示,客户端装置100可以向网络装置170提供资源请求610,并且网络装置170可以经由应用程序代理172接收请求610。请求610可以包括IP信息,诸如请求610的目的地IP地址、客户端装置110的IP地址(即,请求610的源IP地址)、请求610的目的地端口等。应用程序代理172可以接收请求610,并可以基于请求610中提供的信息确定是否在网络装置170终止请求610的连接。如果应用程序代理172在网络装置170终止请求610的连接,则应用程序代理172可以确定适于服务请求610请求的资源的目标源装置。例如,应用程序代理172可以确定目标源装置为缓存服务器120、起始装置130、其他装置150和/或本地缓存174。在一个实例实施方式中,应用程序代理172可以以上结合图5A和5B描述的方式确定请求610的目标源装置。
应用程序代理172可以连接至所确定的目标源装置,并可以向确定的目标源装置提供请求610的代理620。代理请求620可以包括请求610的特征,但是可以通过对目标源装置隐瞒客户端装置110的IP地址来透明地提供。经由代理请求620,客户端装置110对目标源装置可以是透明的,因为网络装置170可以使用其自己的IP地址,或者可以隐瞒客户端装置110的地址,以向目标源装置发送信息。这可以使得客户端装置110安全地与目标源装置进行通信(即,而不需通过目标源装置获得对客户端装置110的IP地址的接入)。
在一个实例中,如果目标源装置对应于缓存服务器120,则应用程序代理172可以向缓存服务器120提供代理请求620,并且缓存服务器120可以检索代理请求620请求的资源630。缓存服务器120可以向应用程序代理172提供资源630。在另一实例中,如果目标源装置对应于起始装置130,则应用程序代理172可以向起始装置130提供代理请求620,并且起始装置130可以检索代理请求620请求的资源630。起始装置130可以向应用程序代理172提供资源630。在又一实例中,如果目标源装置对应于其他装置150,则应用程序代理172可以向其他装置150提供代理请求620,并且其他装置150可以检索代理请求620请求的资源630。其他装置150可以向应用程序代理172提供资源630。在另一实例中,如果目标源装置对应于本地缓存174,则应用程序代理172可以向本地缓存174提供请求610(即,可以不需要代理),并且本地缓存174可以检索请求610请求的资源630。本地缓存174可以向应用程序代理172提供资源630。
应用程序代理172可以从上述目标源装置中的一个接收资源630,并且可以将资源630的代理640提供到客户端装置110。代理资源640可以包括资源630的特征,但是可以通过对客户端装置110隐瞒目标源装置的IP地址来透明地提供。经由代理资源640,目标源装置对客户端装置110可以是“透明”的,因为网络装置170可以使用其自己的IP地址向客户端装置110发送信息。这可以使得目标源装置安全地与客户端装置110进行通信(即,无需客户端装置110获得对目标源装置的IP地址的接入)。
虽然图6示出了网络部分600的实例组件,但是在其他实施方式中,与图6中描述的相比较,网络部分600可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或另外地,网络部分600的一个或多个组件可以执行描述为由网络部分600的一个或多个其他组件执行的一个或多个任务。
图7是能够由网络100的实例部分700执行的实例操作的示图。如图所示,实例网络部分700可以包括客户端装置110、缓存服务器120、起始装置130、其他装置150、网络装置170、应用程序代理172和本地缓存174。客户端装置110、缓存服务器120、起始装置130、其他装置150、网络装置170、应用程序代理172和本地缓存174可以包括例如以上结合图1-6中的一个或多个描述的特征。
如图7所示,客户端装置110可以向网络装置170提供与单个连接相关的多个资源的多个请求710-1,...,710-4(统称为“多个请求710”),并且网络装置170可以经由应用程序代理172接收多个请求710。在一个实施方式中,可以经由单个连接顺序提供多个请求710。在其他实施方式中,可以经由单个连接在不同时间提供多个请求710。应用程序代理172可以接收多个请求710,并可以基于多个请求710中提供的信息确定是否在网络装置170终止多个请求710的连接。在一个实施方式中,应用程序代理172可以以上面结合图4描述的方式确定是否终止多个请求710的连接。如果应用程序代理172决定没有终止多个请求710的连接,则应用程序代理172可以将多个请求410转发到网络160用于额外路由。
如果应用程序代理172在网络装置170终止多个请求710的连接,则应用程序代理172可以确定最适于服务多个请求710请求的资源的目标源装置。在一个实例实施方式中,应用程序代理172可以为多个请求710选择一个或多个目标源装置。在另一实例实施方式中,应用程序代理172可以为多个请求710中的每个选择单独的目标源装置。例如,应用程序代理172可以选择缓存服务器120作为请求710-1的目标源装置,可以选择其他装置150作为请求710-2的目标源装置,可以选择起始装置130作为请求710-3的目标源装置,和/或可以选择本地缓存174为请求710-4的目标源装置。在一个实例中,应用程序代理172可以上面结合图5A和5B描述的方式为多个请求710选择目标源装置。
应用程序代理172可以向缓存服务器120提供请求710-1,并且缓存服务器120可以检索请求710-1请求的资源720-1。缓存服务器120可以向应用程序代理172提供资源720-1。应用程序代理172可以其他装置150提供请求710-2,并且其他装置150可以检索请求710-2请求的资源720-2。其他装置150可以向应用程序代理172提供资源720-2。应用程序代理172可以向起始装置130提供请求710-3,并且起始装置130可以检索请求710-3请求的资源720-3。起始装置130可以向应用程序代理172提供资源720-3。应用程序代理172可以向本地缓存174提供请求710-4,并且本地缓存174可以检索请求710-4请求的资源720-4。本地缓存174可以向应用程序代理172提供资源720-4。应用程序代理172可以接收资源720-1、...、720-4,并可以向客户端装置110提供资源720-1、...、720-4。
虽然图7示出了网络部分700的实例组件,但是在其他实施方式中,与图7中所述的相比,网络部分700可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或另外地,网络部分700的一个或多个组件可以执行描述为由网络部分700的一个或多个其他组件执行的一个或多个任务。
图8是能够由网络100的实例部分800执行的又一实例操作。如图所示,实例网络部分800可以包括客户端装置110、缓存服务器120、起始装置130、网络装置170和应用程序代理172。客户端装置110、缓存服务器120、起始装置130、网络装置170和应用程序代理172可以包括例如以上结合图1-7中的一个或多个描述的特征。
如图8所示,客户端装置110可以向网络装置170提供资源请求810,并且网络装置170可以经由应用程序代理172接收请求810。请求810可以包括IP信息,诸如请求810的目的地IP地址、客户端装置110的IP地址(即,请求810的源IP地址)、请求810的目的地端口等。应用程序代理172可以接收请求810,并可以基于请求810中提供的信息确定是否在网络装置170终止请求810的连接。如果应用程序代理172在网络装置170终止请求810的连接,则应用程序代理172可以确定最适于服务请求810请求的资源的目标源装置。例如,应用程序代理172可以确定目标源装置为缓存服务器120。
应用程序代理172可以向缓存服务器120提供请求810,并且缓存服务器120可以检索请求810请求的资源的部分820。缓存服务器120可以向应用程序代理172提供资源部分820。然而,在应用程序代理172从缓存服务器120接收到请求810请求的整个资源之前,应用程序代理172可以接收事件的指示830。事件指示830可以提供关于网络(例如,网络160)中的诸如网络拥塞、带宽限制等的改变条件的信息、关于缓存服务器120故障的信息、关于缓存服务器120的过载条件的信息、和/或指示不能从缓存服务器120检索所请求的资源的剩余部分的其他信息。响应于时间指示830,应用程序代理172可以停止与缓存服务器120进行通信,并可以通过向起始装置130或者向所请求的资源的另一目标源装置提供请求810(即,HTTP字节范围请求)来切换目标源装置。基于请求810,起始装置130可以检索请求810请求的资源的剩余部分840。起始装置130可以向应用程序代理172提供剩余资源部分840。
应用程序代理172可以向客户端装置110提供资源部分820和剩余资源部分840。在一个实施方式中,在向客户端装置110提供剩余资源部分840之前,应用程序代理172可以向客户端装置提供资源部分820。在另一实施方式中,应用程序代理172可以等待接收资源部分820/840,并同时将资源部分820/840发送到客户端装置110。这种安排可以确保即使在所请求的资源的一个或多个目标源装置变得不可用时(例如,由于网络条件或目标源装置条件的变化),也能将所请求的资源完整地提供到客户端装置110。
虽然图8示出了网络部分800的实例组件,但是在其他实施方式中,与图8中描述的相比较,网络部分800可以包括更少的组件、不同的组件、不同排列的组件或另外的组件。可选地或另外地,网络部分800的一个或多个组件可以执行描述为由网络部分800的一个或多个其他组件执行的一个或多个任务。
图9是网络装置170的应用程序代理172的实例功能组件的示图。如图所示,应用程序代理172可以包括TCP接合器组件900、路由判定组件910和应用程序逻辑组件920。在一个实例实施方式中,结合图9描述的一个或多个功能组件可以由装置200(图2)或装置300(图3)的一个或多个实例组件实施。
TCP接合器组件900可以负责有效地接合客户端装置110和目标源装置连接(例如,TCP连接)之间提供的信息。在一个实例中,TCP接合器组件900可以通过相对于TCP序列号在特定时间段(例如,长度足以向目标源装置提供资源请求并从目标源装置接收资源)改变包中的头来接合信息(例如,包)。在一个实施方式中,TCP接合器900可以设置在网络装置170的转发面,以将应用程序代理172扩展至网络装置170的线速度(例如,每秒千兆)。在其他实施方式中,TCP接合器组件900可以是用于缓存未命中/旁路路径的加速器。
应用程序代理172可以从客户端装置110接收资源的请求930(例如,经由TCP接合器组件900),并可以基于请求930中提供的信息确定是否使用TCP接合器组件900。在一个实例中,请求930中提供的信息可以包括IP信息,诸如请求930的目的地IP地址、客户端装置110的IP地址(即,请求930的源IP地址)、请求930的目的地端口等。当应用程序代理172决定使用TCP接合器组件900时,应用程序代理172可以在网络装置170终止请求930的连接(例如,TCP连接),并可以激活TCP接合器组件900以优化连接的传输。如果应用程序代理172基于请求930中提供的信息终止请求930的连接,则TCP接合器组件900可以向路由判定组件910提供终止连接的指示940。如果应用程序代理172没有终止请求930的连接,则如参考标号950所指示,TCP接合器组件900可以将请求930转发到网络160用于额外路由。
路由判定组件900可以确定将资源请求或资源请求的部分路由至哪里。在一个实例实施方式中,路由判定组件910可以以上面结合图5A和5B描述的方式决定将资源请求路由至哪里。如图9所示,路由判定组件910可以从TCP接合器组件900接收指示940,并可以确定请求930请求的资源的目标源装置。路由判定组件910可以向应用程序逻辑组件920提供所确定的目标源装置的位置960。
应用程序逻辑组件920可以处理资源请求,由于网络条件变化或目标源装置故障等而切换目标源装置。如图9所示,应用程序逻辑组件920可以从路由判定组件910接收所确定的目标源装置的位置960,并且可以如参考标号970所指示将请求930路由到所确定的目标源装置的位置960。应用程序逻辑组件920可以从目标源装置接收资源980,并可以将资源980转发到客户端装置110。
虽然图9示出了应用程序代理172的实例功能组件,但是在其他实施方式中,与图9中描述的相比较,应用程序代理172可以包括更少的功能组件、不同的功能组件、不同排列的功能组件或另外的功能组件。可选地或另外地,应用程序代理172的一个或多个功能组件可以执行描述为由应用程序代理172的一个或多个其他功能组件执行的一个或多个任务。
在一个实例实施方式中,可以将网络装置170、应用程序代理172和本地缓存174部署为服务提供商网络中的独立组件。在另一实例实施方式中,网络装置170、应用程序代理172和本地缓存174可以集成到单个装置中(例如,单个服务器、单个介质流控制器、单个网络装置等)。在另一实例实施方式中,应用程序代理172和本地缓存174中的一个或多个的功能可以集成到网络装置170中。
本文所述的系统和/或方法可以提供细粒度和动态路由,这可以扩展到网络装置170的线速度。另外地或可选地,本文所述的系统和/或方法可以集成在核心网(例如,网络160)的基础架构(例如,网络装置170)中,并可以不要求覆盖服务的明确手动配置。另外地或可选地,系统和/或方法可以帮助在不同服务提供商中联合资源(例如,经由路由中介服务器140),并可以对透明和反向代理部署的资源路由进行寻址。另外地或可选地,通过在延迟最小的网络170终止这种连接,系统和/或方法可以提高来自客户端装置的TCP连接的效率,并且可以特别为诸如视频和文件下载的大资源提供透明目标源装置故障转移。
图10至13是用于根据本文所述的实施方式提供网络集成的动态资源路由的实例处理1000的流程图。在一个实施方式中,处理1000可以由网络装置170执行。在另一实施方式中,一些或全部处理1000可以由不同于网络装置170的一个或多个装置执行,或者与网络装置170组合执行。图10-13中描述的一个或多个处理块可以同时执行,或者独立于一个或多个其他处理块来执行。
如图10所示,处理1000可以包括从客户端装置接收资源请求(块1010),并且基于请求的IP信息确定是否终止请求的连接(块1020)。例如,在以上结合图4描述的实施方式中,客户端装置110可以向网络装置170提供资源的请求410,并且网络装置170可以经由应用程序代理172接收请求410。应用程序代理172可以接收请求410,并且可以基于请求410中提供的信息确定是否在网络装置170终止请求410的连接(例如,TCP连接)。在一个实例中,请求410中提供的信息可以包括IP信息,诸如请求410的目的地IP地址、客户端装置110的IP地址(即,请求410的源IP地址)、请求410的目的地端口等。应用程序代理172可以将请求410中提供的信息与表中提供的信息进行比较,并可以在请求410中提供的信息与表中提供的一项或多项信息匹配时决定终止请求410的连接。
如图10中进一步所示,当没有终止连接时(块1020-没有终止),处理1000可以包括将请求转发到网络(块1030)。例如,在以上结合图4描述的实施方式中,如果应用程序代理172基于请求410中提供的信息决定不终止请求410的连接,则应用程序代理172可以向客户端装置110提供没有终止连接的指示,并且可以如参考标号440所指示,将请求410转发到网络160用于额外路由。
返回图10,当终止连接时(块1020-终止),处理1000可以包括确定资源的目标源装置(块1040)并将请求提供到所确定的目标源装置(块1050)。例如,在以上结合图5B描述的实施方式中,如果应用程序代理172在网络装置170终止请求560的连接,则应用程序代理172可以为请求560请求的资源确定目标源装置。在一个实例中,应用程序代理172可以向路由中介服务器140提供查询570。查询570可以包括对存储了请求560请求的资源的目标源装置的位置的请求。路由中介服务器140可以接收查询570,并可以基于查询570确定请求560所请求的资源的目标源装置。在确定目标源装置之后,路由中介服务器140可以向应用代理服务器172提供目标源装置的位置580(例如,IP地址)。在一个实例中,如果位置580标识缓存服务器120的IP地址,则应用程序代理172可以向缓存服务器120提供请求560,并且缓存服务器120可以检索请求560请求的资源590。
如图10进一步所示,处理1000可以包括从目标源装置接收资源(块1060),并向客户端装置提供资源(块1070)。例如,在以上结合图5B描述的实施方式中,缓存服务器120可以向应用程序代理172提供资源590,并且应用程序代理172可以接收资源590并将资源590转发到客户端装置110。
处理块1020可以包括图11中描述的处理块。如图11所示,处理块1020可以包括从请求提取目的地IP地址(块1100),从请求提取客户端装置IP地址(块1110),从请求提取目的地端口(块1120),并基于目的地IP地址、客户端装置IP地址和目的地端口中的一个或多个确定是否终止请求的连接(块1130)。例如,在以上结合图4描述的实施方式中,应用程序代理172可以从请求410提取目的地IP地址,可以从请求410提取客户端装置110的IP地址,和/或可以从请求410提取目的地端口。应用程序代理172可以基于所提取的目的地IP地址、客户端装置110的IP地址、和/或目的地端口确定是否在网络装置170终止请求410的连接。在一个实例中,应用程序代理172可以保持或接入提供了应用程序、客户端装置IP地址、源装置IP地址等的列表的表(或其他数据结构)。应用程序代理172可以将请求410中提供的信息与表中提供的信息进行比较,并可以在请求410中提供的信息与表中提供的一项或多项信息匹配时确定终止请求410的连接。
处理块1040可以包括图12中描述的处理块。如图12所示,处理块1040可以包括确定请求所请求的资源是否存储在本地缓存中(块1200)。如果资源存储在本地缓存中(块1200-在本地缓存中),则处理块1040可以包括从本地缓存检索资源(块1210)。例如,在以上结合图5B描述的实施方式中,应用程序代理172可以确定所请求的资源是否存储在本地缓存174中。在一个实例中,应用程序代理172可以维持提供了本地缓存174中存储的资源的列表的表(或其他数据结构)。应用程序代理172可以扫描表,以确定所请求的资源是否存储在本地缓存174中。如果应用程序代理172确定所请求的资源存储在本地缓存174中,则应用程序代理172可以从本地缓存174检索所请求的资源。例如,应用程序代理172可以向本地缓存174提供请求560,并且本地缓存174可以检索请求560所请求的资源590。本地缓存174可以向应用程序代理172提供资源590,并且应用程序代理172可以将资源590转发到客户端装置110。
如图12中进一步所示,如果资源不存储在本地缓存中(块1200-不在本地缓存中),则处理块1040可以包括向所请求的资源的路由中介服务器提供查询(块1220),从路由中介服务器并基于查询来接收目标源装置的标识(块1230),并基于识别从目标源装置检索资源(块1240)。例如,在以上结合图5B描述的实施方式中,如果应用程序代理172确定资源590没有存储在本地缓存174中,则应用程序代理172可以将查询570提供到路由中介服务器140。应用程序代理172可以从路由中介服务器140并基于查询570来接收目标源装置(例如,缓存服务器120、起始装置130、和/或其他装置150)的位置580。应用程序代理172可以使用位置580来与目标源装置建立连接,并从目标源装置检索所请求的资源。
处理块1050-1070可以包括图13中描述的处理块。如图13所示,处理块1050-1070可以包括连接至所确定的目标源装置(块1300),并将请求的代理提供到所确定的目标源装置(块1310),基于请求的代理从目标源装置接收资源(块1320),并将资源的代理提供到客户端装置(块1330)。例如,在以上结合图6描述的实施方式中,应用程序代理172可以连接至所确定的目标源装置,并可以向所确定的目标源装置提供请求610的代理620。目标源装置可以检索代理请求620请求的资源630,并可以向应用程序代理172提供资源630。应用程序代理172可以从目标源装置接收资源630,并可以向客户端装置110提供资源630的代理640。
通过在诸如服务提供商网络的核心网的边缘网络装置中添加应用级智能,本文所述的系统和/或方法可以将资源路由集成到核心网的基础架构中。应用级智能可以包括应用程序代理,其终止与请求资源的客户端装置的全部和子集相关的给定应用程序的连接。对于每个资源请求,应用程序代理可以确定存储资源的目标服务器,可以连接至所确定的服务器,并可以在客户端装置和所确定的服务器之间代理资源请求和返回的资源。
文中所使用的术语组件旨在广义地解释为包括硬件(例如,处理器、微处理器、ASIC、FPGA、芯片、存储器装置(例如,ROM、RAM等)等)或者硬件和软件的组合(例如,执行存储器装置中包含的软件的处理器、微处理器、ASIC等)。
文中所使用的术语包旨在广义地解释为包括帧、数据报、包或信元;帧的片段、数据报的片段、包的片段或信元的片段;或者数据的其他类型、排列或封装。
文中所使用的术语边缘装置旨在广义地解释为包括提供到诸如网络160的网络的入口点或网络的出口点的任何装置。在一个实例实施方式中,网络装置170可以对应于边缘装置。
以上的实施方式的描述提供了说明和描述,但是不旨在详尽的或者将实施方式限定为公开的精确形式。鉴于上述教导,可以进行修改和更改,并可以从实施方式的实践获得。
例如,虽然已经关于图10-13描述了一系列块,但是在其他实施方式中,可以修改块的次序。此外,可以并行执行非依赖性块。
显而易见的是,可以以附图中示出的实施方式中的软件、固件和硬件的多种不同形式来实施上述的实例方面。用于实施这些方面的实际软件代码或专用控制硬件不应当解释为限制的。因此,没有参照特定程序代码描述这些方面的操作和行为,应当理解,软件和控制硬件可以设计为基于文中的描述来实施这些方面。
虽然权利要求中列出和/或说明书中公开了特征的特定组合,但是这些组合不旨在限制所公开的实施方式。实际上,许多这些特征可以以权利要求中没有特别列出和/或说明书中没有特别公开的方式组合。虽然以下列出的每个从属权利要求仅可以直接引用一个其他权利要求,但是所公开的实施方式包括与权利要求集中的每个其他权利要求组合的每个从属权利要求。
除非这样明确地描述,否则本申请中的元件、操作或指令都不应理解为对所公开的实施方式是关键和重要的。此外,如本文所使用的,冠词“一个(a)”旨在包括一项或多项。在仅指一项时,使用术语“一个(one)”或类似语言。此外,除非另有明确说明,短语“基于”旨在表示“至少部分地基于”。
Claims (14)
1.一种方法,所述方法包括:
通过计算装置从客户端装置接收资源的请求,
所述计算装置是到网络的入口点的边缘装置,并且所述资源包括文件;
通过所述计算装置访问包括一项或多项信息的表,
所述一项或多项信息包括以下各项的至少一项:
与生成满足第一阈值的数量的针对资源的请求的特定客户端装置相关联的互联网协议(IP)地址信息,或者
与被所述计算装置检索资源的数量满足第二阈值的目标源装置相关联的IP地址信息;
通过所述计算装置确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的至少一项信息相匹配;
基于确定所述请求中提供的信息与所述表中提供的所述一项或多项信息的所述至少一项信息相匹配,通过所述计算装置终止所述请求的连接;
基于终止所述请求的连接,通过所述计算装置将所述连接被终止的指示提供到所述客户端装置;
通过所述计算装置并且基于终止所述请求的连接,为由所述请求请求的所述资源选择目标装置;以及
通过所述计算装置经由所述网络从所述目标装置获取所述资源。
2.根据权利要求1所述的方法,其中:
所述请求中提供的信息包括目的地互联网协议(IP)地址、客户端装置的IP地址或目的地端口中的至少一个,
所述表中提供的所述一项或多项信息包括应用程序、客户端装置IP地址或目标源装置IP地址的列表中的一个或多个,以及
确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的所述至少一项信息相匹配包括:
将所述目的地IP地址、所述客户端装置的IP地址、或所述目的地端口中的至少一个与所述表中提供的应用程序、客户端装置IP地址或目标源装置IP地址的列表中的一个或多个进行比较。
3.根据权利要求1所述的方法,其中,确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的所述至少一项信息相匹配还包括:
从所述请求提取目的地互联网协议(IP)地址;
从所述请求提取客户端装置的IP地址;
识别关于所述请求中包括的目的地端口的信息;以及
确定所述目的地IP地址、所述客户端装置的IP地址和关于所述目的地端口的信息与所述表中提供的一项或多项信息中的所述至少一项信息相匹配。
4.根据权利要求1所述的方法,还包括:
从所述客户端装置接收与特定应用程序相关的多个请求;以及
在所述计算装置终止所述多个请求的全部或子集的连接。
5.根据权利要求1所述的方法,其中,为所述资源选择所述目标装置包括:
执行搜索设置在所述计算装置中或本地连接至所述计算装置的本地缓存中存储的资源的列表;以及
当所述列表的搜索指示所述资源存储在所述本地缓存中时,选择所述本地缓存作为所述目标装置。
6.根据权利要求5所述的方法,其中,当所述列表的搜索指示所述资源不存储在所述本地缓存中时,为所述资源选择所述目标装置包括:
基于所述网络的带宽、与所述网络相关的成本、所述网络上提供的负载或相对于所述客户端装置的物理位置的所述目标装置的物理位置中的一个或多个来选择所述目标装置;以及
与所述目标装置连接。
7.一种边缘装置,包括:
用于存储包括一项或多项信息的表的装置,
所述一项或多项信息包括以下各项的至少一项:
与生成满足第一阈值的数量的针对资源的请求的特定客户端装置相关联的互联网协议(IP)地址信息,或者
与被所述边缘装置检索资源的数量满足第二阈值的目标源装置相关联的IP地址信息;
用于从客户端装置接收资源的请求的装置,
所述资源包括内容;
用于确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的至少一项信息相匹配的装置;
用于基于确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的所述至少一项信息相匹配,在所述边缘装置终止所述请求的连接的装置;
用于基于终止到网络的所述请求的连接,为由所述请求请求的所述资源选择目标装置的装置,以及
用于从所选择的目标装置检索所述资源的装置。
8.根据权利要求7所述的边缘装置,其中:
所述请求中提供的信息包括目的地互联网协议(IP)地址、客户端装置的IP地址或识别目的地端口的信息中的至少一个,以及
所述表中提供的一项或多项信息包括应用程序、客户端装置IP地址或目标源装置IP地址的列表中的一个或多个。
9.根据权利要求8所述的边缘装置,其中,所述用于确定所述请求中提供的信息与所述表中提供的所述一项或多项信息中的所述至少一项信息相匹配的装置包括:
用于将所述目的地IP地址、所述客户端装置的IP地址或识别所述目的地端口的信息中的至少一个与所述表中提供的应用程序、所述客户端装置IP地址或所述目标源装置IP地址的列表中的一个或多个进行比较的装置。
10.根据权利要求7所述的边缘装置,还包括:
用于从所述客户端装置接收与特定应用相关的多个请求的装置;以及
用于在所述边缘装置终止所述多个请求的全部或子集的连接的装置。
11.根据权利要求7所述的边缘装置,其中,所选择的目标装置包括与一个或多个服务提供商网络相关的装置,所述服务提供商网络在所述网络或所述网络的组件故障的情况下向所述网络提供资源,
其中,所述请求包括与所述资源相关的域名和统一资源定位符(URL),以及
其中,所述边缘装置还包括:
用于基于所述域名和所述URL为所述资源选择所述目标装置的装置。
12.根据权利要求7所述的边缘装置,其中,所述边缘装置包括资源的本地缓存,并且所述边缘装置还包括:
用于执行搜索所述本地缓存中存储的资源的列表的装置,以及
用于当所述列表的搜索指示所述资源存储在所述本地缓存中时选择所述本地缓存作为所述目标装置的装置。
13.根据权利要求12所述的边缘装置,其中,当所述列表的所述搜索指示所述资源不存储在所述本地缓存中时,所述边缘装置还包括:
用于将所述请求提供到服务器装置的装置,
用于从所述服务器装置并基于所述请求接收识别所述目标装置的位置的信息的装置,以及
用于基于识别所述位置的信息与所述目标装置连接的装置。
14.根据权利要求7所述的边缘装置,其中,基于以下一个或多个来选择所述目标装置:
所述网络的带宽,
与所述网络相关的成本,
所述网络上提供的负载,或
相对于所述客户端装置的物理位置的所述目标装置的物理位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710142847.7A CN107105006A (zh) | 2011-06-15 | 2011-12-29 | 为资源请求终止连接和选择目标源装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/161,090 | 2011-06-15 | ||
US13/161,090 US9571566B2 (en) | 2011-06-15 | 2011-06-15 | Terminating connections and selecting target source devices for resource requests |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710142847.7A Division CN107105006A (zh) | 2011-06-15 | 2011-12-29 | 为资源请求终止连接和选择目标源装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102833361A CN102833361A (zh) | 2012-12-19 |
CN102833361B true CN102833361B (zh) | 2017-04-12 |
Family
ID=45349052
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110451782.7A Expired - Fee Related CN102833361B (zh) | 2011-06-15 | 2011-12-29 | 为资源请求终止连接和选择目标源装置 |
CN201710142847.7A Pending CN107105006A (zh) | 2011-06-15 | 2011-12-29 | 为资源请求终止连接和选择目标源装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710142847.7A Pending CN107105006A (zh) | 2011-06-15 | 2011-12-29 | 为资源请求终止连接和选择目标源装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9571566B2 (zh) |
EP (1) | EP2536107A3 (zh) |
CN (2) | CN102833361B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504723B2 (en) | 2011-06-15 | 2013-08-06 | Juniper Networks, Inc. | Routing proxy for resource requests and resources |
US9571566B2 (en) | 2011-06-15 | 2017-02-14 | Juniper Networks, Inc. | Terminating connections and selecting target source devices for resource requests |
US9363327B2 (en) | 2011-06-15 | 2016-06-07 | Juniper Networks, Inc. | Network integrated dynamic resource routing |
US9813518B2 (en) * | 2014-11-20 | 2017-11-07 | Trading Technologies International, Inc. | Merging data downloads with real-time data feeds |
US9780909B2 (en) * | 2014-12-29 | 2017-10-03 | Juniper Networks, Inc. | Network topology optimization with feasible optical paths |
WO2016201690A1 (en) * | 2015-06-19 | 2016-12-22 | Qualcomm Incorporated | Methods and apparatuses for pgw assisted local cache |
US10476980B2 (en) | 2015-08-07 | 2019-11-12 | Dell Products L.P. | Remote socket splicing system |
WO2018137149A1 (zh) * | 2017-01-24 | 2018-08-02 | 华为技术有限公司 | 一种内容请求方法及代理设备 |
JP7497250B2 (ja) * | 2020-08-21 | 2024-06-10 | 株式会社日立製作所 | データ処理方法、エッジ装置、および、データ処理システム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180871A (zh) * | 1996-10-21 | 1998-05-06 | 国际商业机器公司 | 从外部通过防火墙访问计算机资源 |
Family Cites Families (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3278865B2 (ja) * | 1991-06-28 | 2002-04-30 | 日本電気株式会社 | トラヒック制御方法 |
JPH0793645B2 (ja) * | 1993-01-11 | 1995-10-09 | 日本電気株式会社 | 信号接続制御部 |
US5961593A (en) | 1997-01-22 | 1999-10-05 | Lucent Technologies, Inc. | System and method for providing anonymous personalized browsing by a proxy system in a network |
US6243751B1 (en) | 1997-06-11 | 2001-06-05 | Oracle Corporation | Method and apparatus for coupling clients to servers |
US6067545A (en) * | 1997-08-01 | 2000-05-23 | Hewlett-Packard Company | Resource rebalancing in networked computer systems |
US6192398B1 (en) * | 1997-10-17 | 2001-02-20 | International Business Machines Corporation | Remote/shared browser cache |
US6366912B1 (en) | 1998-04-06 | 2002-04-02 | Microsoft Corporation | Network security zones |
US6532493B1 (en) | 1998-10-29 | 2003-03-11 | Cisco Technology, Inc. | Methods and apparatus for redirecting network cache traffic |
US6760775B1 (en) | 1999-03-05 | 2004-07-06 | At&T Corp. | System, method and apparatus for network service load and reliability management |
US6237060B1 (en) * | 1999-04-23 | 2001-05-22 | Sun Microsystems, Inc. | Cache management techniques |
US6785228B1 (en) | 1999-06-30 | 2004-08-31 | Alcatel Canada Inc. | Subscriber permissions and restrictions for switched connections in a communications network |
WO2001008066A1 (en) | 1999-07-26 | 2001-02-01 | Iprivacy Llc | Electronic purchase of goods over a communication network including physical delivery while securing private and personal information |
US7401115B1 (en) | 2000-10-23 | 2008-07-15 | Aol Llc | Processing selected browser requests |
AU2001241777A1 (en) | 2000-02-29 | 2001-09-12 | Iprivacy Llc | Anonymous and private browsing of web-sites through private portals |
US7412422B2 (en) | 2000-03-23 | 2008-08-12 | Dekel Shiloh | Method and system for securing user identities and creating virtual users to enhance privacy on a communication network |
US7301952B2 (en) | 2000-04-06 | 2007-11-27 | The Distribution Systems Research Institute | Terminal-to-terminal communication connection control method using IP transfer network |
US6738808B1 (en) | 2000-06-30 | 2004-05-18 | Bell South Intellectual Property Corporation | Anonymous location service for wireless networks |
US20020035681A1 (en) | 2000-07-31 | 2002-03-21 | Guillermo Maturana | Strategy for handling long SSL messages |
US20030014624A1 (en) | 2000-07-31 | 2003-01-16 | Andes Networks, Inc. | Non-proxy internet communication |
WO2002048830A2 (en) | 2000-12-11 | 2002-06-20 | Phlair, Inc. | System and method for detecting and reporting online activity using real-time content-based network monitoring |
US7051070B2 (en) | 2000-12-18 | 2006-05-23 | Timothy Tuttle | Asynchronous messaging using a node specialization architecture in the dynamic routing network |
US8505024B2 (en) | 2000-12-18 | 2013-08-06 | Shaw Parsing Llc | Storing state in a dynamic content routing network |
US20030208570A1 (en) | 2001-02-16 | 2003-11-06 | Eugene Lapidous | Method and apparatus for multi-modal document retrieval in the computer network |
US7272645B2 (en) | 2001-05-25 | 2007-09-18 | Sbc Technology Resources, Inc. | Method of improving the reliability of peer-to-peer network downloads |
US8041814B2 (en) | 2001-06-28 | 2011-10-18 | International Business Machines Corporation | Method, system and computer program product for hierarchical load balancing |
WO2003014867A2 (en) | 2001-08-03 | 2003-02-20 | John Allen Ananian | Personalized interactive digital catalog profiling |
US6925461B2 (en) | 2001-12-17 | 2005-08-02 | At&T Corp. | Parallel random proxy usage for large scale web access |
US7493311B1 (en) | 2002-08-01 | 2009-02-17 | Microsoft Corporation | Information server and pluggable data sources |
US7509667B1 (en) | 2002-08-15 | 2009-03-24 | Sprint Communications Company L.P. | Broadband content jukebox with profile-based caching |
GB0225356D0 (en) | 2002-10-31 | 2002-12-11 | British Telecomm | Data accession process |
US7701953B2 (en) | 2002-11-04 | 2010-04-20 | At&T Intellectual Property I, L.P. | Client server SVC-based DSL service |
US7602788B2 (en) | 2002-11-04 | 2009-10-13 | At&T Intellectual Property I, L.P. | Peer to peer SVC-based DSL service |
US7567504B2 (en) | 2003-06-30 | 2009-07-28 | Microsoft Corporation | Network load balancing with traffic routing |
US7165111B2 (en) | 2003-08-04 | 2007-01-16 | Sbc Knowledge Ventures, L.P. | System and method to identify devices employing point-to-point-over Ethernet encapsulation |
WO2005086681A2 (en) | 2004-03-04 | 2005-09-22 | Quova, Inc. | Geo-location and geo-compliance utilizing a client agent |
US20050273849A1 (en) | 2004-03-11 | 2005-12-08 | Aep Networks | Network access using secure tunnel |
US7694135B2 (en) | 2004-07-16 | 2010-04-06 | Geotrust, Inc. | Security systems and services to provide identity and uniform resource identifier verification |
US7529354B2 (en) | 2004-08-10 | 2009-05-05 | Nokia Corporation | Method of managing a connection release, corresponding system and device |
WO2006023459A1 (en) | 2004-08-17 | 2006-03-02 | Shaw Parsing Llc | Techniques for delivering personalized content with a real-time routing network |
WO2006052714A2 (en) | 2004-11-09 | 2006-05-18 | Jeffory Atkinson | Apparatus and method for protection of communications systems |
US8458467B2 (en) | 2005-06-21 | 2013-06-04 | Cisco Technology, Inc. | Method and apparatus for adaptive application message payload content transformation in a network infrastructure element |
US9432475B2 (en) | 2004-12-17 | 2016-08-30 | Nhn Entertainment Corporation | Communication network system of bus network structure and method for transmitting and receiving data using the system |
US20060136599A1 (en) | 2004-12-22 | 2006-06-22 | Chung-Chih Tung | System and method of transferring packet through proxy server |
WO2007012054A2 (en) | 2005-07-20 | 2007-01-25 | Nortel Networks Limited | Fmipv6 integration with wimax |
US20070099634A1 (en) | 2005-11-02 | 2007-05-03 | Tropos Networks, Inc. | Mesh network that provides location information |
US8521864B1 (en) * | 2006-01-10 | 2013-08-27 | Crimson Corporation | Systems and methods for managing the impact of monitoring processes |
CA2641995C (en) | 2006-02-10 | 2016-09-20 | Verisign, Inc. | System and method for network-based fraud and authentication services |
CN101026615B (zh) * | 2006-02-18 | 2011-09-14 | 华为技术有限公司 | 一种基于ims的流媒体网络系统 |
US20070204003A1 (en) | 2006-02-28 | 2007-08-30 | Maven Networks, Inc. | Downloading a file over HTTP from multiple servers |
US7984169B2 (en) | 2006-06-28 | 2011-07-19 | Microsoft Corporation | Anonymous and secure network-based interaction |
JP4107676B2 (ja) | 2006-07-21 | 2008-06-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | トランザクション引継ぎシステム |
CN101141377B (zh) * | 2006-09-08 | 2011-08-17 | 中国科学院声学研究所 | 一种基于ims的对等联网缓存服务信令控制方法 |
US7702772B2 (en) | 2007-02-22 | 2010-04-20 | Yahoo! Inc. | Discovering and determining characteristics of network proxies |
US8301787B2 (en) | 2007-03-22 | 2012-10-30 | Red Hat, Inc. | Selective use of anonymous proxies |
US20090063747A1 (en) | 2007-08-28 | 2009-03-05 | Rohati Systems, Inc. | Application network appliances with inter-module communications using a universal serial bus |
US20090083320A1 (en) | 2007-09-20 | 2009-03-26 | Matchmine Llc | Display method and system for collecting media preference information |
US20090083636A1 (en) | 2007-09-20 | 2009-03-26 | Matchmine Llc | User media preferences visual key display method |
US20090083321A1 (en) | 2007-09-20 | 2009-03-26 | Matchmine Llc | Method for storing, transporting and using user media preferences information |
US7899031B2 (en) | 2007-11-20 | 2011-03-01 | Microsoft Corporation | Locally terminating an established connection |
GB2455099A (en) | 2007-11-28 | 2009-06-03 | Really Virtual Company Ltd | Providing an anonymous interaction between a user and a service provider |
US9231999B2 (en) * | 2007-11-28 | 2016-01-05 | Red Hat, Inc. | Multi-level load balancer |
CA2711467A1 (en) * | 2008-01-23 | 2009-07-30 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for pooling network resources |
US20090228582A1 (en) | 2008-03-06 | 2009-09-10 | At&T Knowledge Ventures, L.P. | System and method in a communication system with concealed sources |
US20080189298A1 (en) | 2008-04-02 | 2008-08-07 | Steve Cha | Method and apparatus for wireless access to personalized multimedia at any location |
US8615515B2 (en) | 2008-05-09 | 2013-12-24 | International Business Machines Corporation | System and method for social inference based on distributed social sensor system |
JP4582203B2 (ja) | 2008-06-06 | 2010-11-17 | コニカミノルタビジネステクノロジーズ株式会社 | 画像形成装置、同装置における通信制御方法及び通信制御プログラム |
CN101459614B (zh) * | 2008-12-24 | 2012-02-22 | 腾讯科技(深圳)有限公司 | 一种网络数据传输的方法、系统和设备 |
US20100223364A1 (en) * | 2009-02-27 | 2010-09-02 | Yottaa Inc | System and method for network traffic management and load balancing |
GB2525759A (en) | 2009-03-06 | 2015-11-04 | Appnexus Inc | A computer system |
US8032641B2 (en) | 2009-04-30 | 2011-10-04 | Blue Coat Systems, Inc. | Assymmetric traffic flow detection |
US8930805B2 (en) | 2009-07-24 | 2015-01-06 | Bank Of America Corporation | Browser preview |
KR101294278B1 (ko) | 2009-08-19 | 2013-08-07 | 한국전자통신연구원 | 서명코드를 이용한 웹 사용자 추적 장치 및 방법 |
US8400923B2 (en) | 2010-10-15 | 2013-03-19 | Telefonaktiebolaget L M Ericsson (Publ) | Multipath transmission control protocol proxy |
US8775434B1 (en) | 2010-10-19 | 2014-07-08 | Google Inc. | Resource catchment areas |
US9363327B2 (en) | 2011-06-15 | 2016-06-07 | Juniper Networks, Inc. | Network integrated dynamic resource routing |
US8504723B2 (en) | 2011-06-15 | 2013-08-06 | Juniper Networks, Inc. | Routing proxy for resource requests and resources |
US9571566B2 (en) | 2011-06-15 | 2017-02-14 | Juniper Networks, Inc. | Terminating connections and selecting target source devices for resource requests |
US9338061B2 (en) | 2012-04-26 | 2016-05-10 | Hewlett Packard Enterprise Development Lp | Open station as a stream analysis operator container |
-
2011
- 2011-06-15 US US13/161,090 patent/US9571566B2/en not_active Expired - Fee Related
- 2011-12-12 EP EP11193038.4A patent/EP2536107A3/en not_active Withdrawn
- 2011-12-29 CN CN201110451782.7A patent/CN102833361B/zh not_active Expired - Fee Related
- 2011-12-29 CN CN201710142847.7A patent/CN107105006A/zh active Pending
-
2017
- 2017-02-13 US US15/431,258 patent/US20170155730A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180871A (zh) * | 1996-10-21 | 1998-05-06 | 国际商业机器公司 | 从外部通过防火墙访问计算机资源 |
Also Published As
Publication number | Publication date |
---|---|
US20170155730A1 (en) | 2017-06-01 |
EP2536107A2 (en) | 2012-12-19 |
CN102833361A (zh) | 2012-12-19 |
US20120324109A1 (en) | 2012-12-20 |
CN107105006A (zh) | 2017-08-29 |
EP2536107A3 (en) | 2016-12-21 |
US9571566B2 (en) | 2017-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102833361B (zh) | 为资源请求终止连接和选择目标源装置 | |
CN102833148B (zh) | 资源请求及资源的路由代理 | |
JP7278679B2 (ja) | モバイルエッジコンピューティングノードの選択方法、装置及びシステム | |
US11134134B2 (en) | Routing for origin-facing points of presence | |
CN102833306B (zh) | 网络集成动态资源路由 | |
EP2510453B1 (en) | Website performance optimization and internet traffic processing | |
US20230334369A1 (en) | Artificial intelligence delivery edge network | |
CN108027805B (zh) | 数据网络中的负载分发 | |
CN106067890B (zh) | 一种域名解析方法、装置及系统 | |
CN110417842A (zh) | 用于网关服务器的故障处理方法和装置 | |
WO2017084274A1 (zh) | 选择回源服务器的方法及装置 | |
US11916729B2 (en) | Automated configuration of a content delivery network | |
US11159642B2 (en) | Site and page specific resource prioritization | |
CN104160680A (zh) | 用于透明代理缓存的欺骗技术 | |
US12069318B2 (en) | Unified routing and caching logic for applications utilizing a content delivery network | |
US10868881B1 (en) | Loading web resources using remote resource pushing | |
CN108259521A (zh) | 热点资源共享方法及装置 | |
CN112436951A (zh) | 一种预知流量路径的方法和装置 | |
US10958580B2 (en) | System and method of performing load balancing over an overlay network | |
CN107623580A (zh) | 内容分发网络中的任务处理方法、装置和系统 | |
Li et al. | Multi-layer service function chaining scheduling based on auxiliary graph in IP over optical network | |
CN102111457A (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. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170412 Termination date: 20171229 |
|
CF01 | Termination of patent right due to non-payment of annual fee |