CN101410819B - 用于任意数据流的可靠高吞吐量高性能的传输和路由机制 - Google Patents

用于任意数据流的可靠高吞吐量高性能的传输和路由机制 Download PDF

Info

Publication number
CN101410819B
CN101410819B CN2006800535414A CN200680053541A CN101410819B CN 101410819 B CN101410819 B CN 101410819B CN 2006800535414 A CN2006800535414 A CN 2006800535414A CN 200680053541 A CN200680053541 A CN 200680053541A CN 101410819 B CN101410819 B CN 101410819B
Authority
CN
China
Prior art keywords
server
address
network
packet
given
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2006800535414A
Other languages
English (en)
Other versions
CN101410819A (zh
Inventor
格雷戈里·弗莱彻
安德鲁·F·钱帕尼
丹尼尔·斯特多尔斯基
迈克尔·M·阿福根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Akamai Technologies Inc
Original Assignee
Akamai Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Akamai Technologies Inc filed Critical Akamai Technologies Inc
Publication of CN101410819A publication Critical patent/CN101410819A/zh
Application granted granted Critical
Publication of CN101410819B publication Critical patent/CN101410819B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
    • H04J3/1605Fixed allocated frame structures
    • H04J3/1611Synchronous digital hierarchy [SDH] or SONET
    • H04J3/1617Synchronous digital hierarchy [SDH] or SONET carrying packets or ATM cells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5077Network service management, e.g. ensuring proper service fulfilment according to agreements wherein the managed service relates to simple transport services, i.e. providing only network infrastructure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/5096Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to distributed or central networked applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2567NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/668Internet protocol [IP] address subnets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring

Abstract

本发明充分利用(leverage)一种现有的内容分发网络基础设施以提供这样的系统,该系统提高使用互联网协议(IP)作为其基本传送机制的任何应用程序的性能。叠加网络包括一组边缘节点、中间节点和网关节点。该网络提供优化的IP分组路由。互联网应用程序用户能使用叠加以在正常网络环境时获得改善的性能,在正常的缺省BGP路由将另外地迫使用户通过拥挤的或运行欠佳的路径的时获得或维持好的性能,或即使在网络运转中断的时候,使用户能够保持与目标服务器应用程序的通信。

Description

用于任意数据流的可靠高吞吐量高性能的传输和路由机制
背景技术
技术领域
本发明通常涉及互联网上的数据分组传送和路由。
相关技术的简述
公共的互联网正被企业越来越多地用于多种关键任务的应用,例如:电子商务、虚拟专用网(VPN)上的局间连接、以及最近作为开发分布式应用的新范例的Web服务等的处理事务。然而,当前的基于边界网关协议(BGP)的互联网路由基础设施不足以满足这些应用的可靠性和性能的需要。特别是,主要由该BGP协议确定的互联网路由具有几个缺点。第一、BGP使用的是被称作最短AS(自治系统)路径长度的度量以决定分组的下一跳(hop)。图1A示出了BGP将直接从网络A将数据路由发送到网络D,因为该AS路径长度是1。这不总是所希望的,因为已经显示了BGP收敛慢。因此,如果两个网络之间的连接变得不可用了,那么在所有相关的路由器变得知道并能够围绕该问题路由之前需要几秒到几分钟的时间。在这期间,分组将被丢失。而且,如图1B所示,对等规则(peering policies)可指示:网络不应该从另一个网络接收分组;BGP不能有效地围绕该问题路由。另一个问题是:为了最优性能,不同的互联网应用需要端到端连接的不同的特性(例如:最小限度的损失、等待时间或在等待时间内的可变性)。BGP没有努力为服务质量而选择路线并且完全不知道这些度量中的任何一个。如图2所示,BGP将选择一条具有比可选择的路由更大等待时间的路由(在网络A和D之间)。
随着商业越来越多地依靠互联网处理这些应用,如:Web交易、虚拟专用网(VPN)和Web服务,本领域中存在对智能路由的需要。在本领域中,基于实时网络环境的测量的智能路由的概念是已知的,例如:由RouteScience和其他公司提供的产品。然而,这些产品只具有控制仅仅出站(outbound)路由的第一跳的能力,即,通过将合适的指令加到路由器上。例如,通过影响BGP通告(advertisement),控制入站路由的努力受限于用于改变这些通告的低频、这些通告的粗粒度、来自于互联网上的多台路由器的协作要求和几个ISP的政策控制的同时存在。
在现有技术中,分布式计算机系统也是熟知的。一种这样的分布式计算机系统是由服务提供商操作和管理的“内容发布网络”或“CDN”。服务提供商可代表他自己或代表第三方提供服务。这种类型的“分布式系统”通常是指由一个网络或多个网络连接的一组自治计算机以及设计为有助于各种服务的软件、系统、协议和技术,其中的服务例如:外包(outsoureced)站点基础设施的支持或内容发布。通常,“内容发布”的意思是:代表内容提供商的内容、流媒体和应用软件的存储、超高速缓存或传输,包括于此使用的辅助技术,包括但不限于:请求路由、自动配置(provisioning)、数据监视和报告、内容目标化、个性化和商业智能。术语“外包站点基础设施”的意思是:能够使一个实体完全地或部分地代表第三方操作和/或管理第三方的Web站点基础设施的分布式系统和相关联的技术。
假设给定的分布式计算机系统具有一组分布在互联网各处的机器。通常,这些机器的大多数是位于靠近该互联网边缘的服务器,即,在终端用户接入网上或邻近终端用户接入网。网络操作指挥中心(NOCC)可用于控制和管理该系统中的各种机器的操作。第三方网站例如Web网站206将发布的内容(例如:HTML、嵌入页面对象、流媒体、软件下载,等等)卸载到分布式计算机系统,并且,特别地,卸载到“边缘”服务器。想要得到这样的内容的终端用户可以被引导到该分布式计算机系统从而更可靠地和有效地得到该内容。尽管没有详细显示,该分布式计算机系统也可包括其它基础设施,例如:分布式数据收集系统,该系统从边缘的服务器收集使用情况和其它数据、综合一个区域或一组区域上的数据,并且将这些数据传送到其它后端系统以帮助监控、记录(logging)、报警、记账、管理和其它操作及管理职能。分布式网络代理监视该网络及服务器负载并且将网络、流量和负载数据提供给DNS查询处理机构,其对由CDN正在管理的内容域是权威的。分布式数据传送机制可用于将控制信息(例如:管理内容的元数据、帮助负载平衡的元数据,等等)发布到边缘服务器。如图3所示,给定的机器300包括商业化硬件(例如因特尔奔腾处理器)302,其运行支持一个或更多应用程序306a-n的操作系统内核(例如:Linux或变体)304上。为了帮助内容分发服务,例如,给定的机器通常运行一组应用程序,例如HTTP Web代理307、名称服务器308、本地监测程序310、分布式数据收集程序312等等。
如前所述的内容发布网络也可包括辅助网络或机制以帮助一些数据的传送或改善数据吞吐量。因此,互联网CDN使用信息分散技术可提供流媒体的传送,由此将给定流发送到多个冗余路径上。在颁布给AkamaiTechnologies,Inc的题为“Streaming media subscription mechanism for acontent delivery network”的美国专利No.6,751,673中描述了一种这样的技术。该CDN也可基于在一段时间内已经收集的性能数据,提供传送机制,以帮助在一对主机,例如两个CDN服务器或CDN边缘服务器与客户机原始(origin)服务器之间的通信。在也颁布给Akamai Technologies,Inc的题为“Optimal route selection in a content delivery network”的美国公布专利申请2002/0163882中描述了典型的基于HTTP的技术。
发明内容
本发明的目的是为任意数据流提供一种可靠的、高吞吐量、高性能的传送和路由机制。
本发明的另一个目的是提供围绕互联网中的所考虑的问题路由数据的互联网顶层上的叠加(overlay),以找到或具有最小等待时间和损耗的最佳服务路由或路径。
本发明依然另一个目的是借助一种现有的内容分发网络基础设施以提供这样的系统,该系统提高使用该互联网协议(IP)作为其根本传送机制的任何应用程序的性能。
本发明的另一个更一般的目的是提供一种改善互联网上的商业应用程序的性能和可靠性的叠加机制(overlay mechanism)。
本发明依然另一个目的是提供这种技术,该技术允许互联网应用程序用户在正常网络环境期间获得改善的性能,在正常的默认BGP路由将另外地强制用户通过拥挤的或运行欠佳的路径时获得或维持好的性能,或允许用户即使在网络运转中断的时候继续通信。
本发明提供了可升级的、高可用性的和可靠的叠加服务,该叠加服务检测差的性能路径并围绕其进行路由,以及当该直接路径运行正常时,找到性能更好的可选的路径,由此保证改善的应用程序的性能和可靠性。
上面已经描述了本发明的一些更相关的性质。这些性质应该被解释为仅仅是示例性的。如下所述,通过用不同方式应用本公开的发明或通过修改本发明,能够获得很多其它有益的结果。
附图说明
为了更完全地理解本发明及其优点,现在参照下面的与附图相关联的描述,其中:
图1A示出了一组4个互连网络以及BGP如何确定网络A和网络D之间的分组数据流的路由;
图1B示出了当存在网络A如何与网络D对等的问题时,目标服务器是如何不能达到的;
图2示出了BGP路由判定如何对等待时间不敏感,这将导致低性能;
图3示出了典型的内容分发网络边缘服务器结构;
图4示出了本发明的叠加机制如何围绕数据链路进行路由以改善性能;
图5示出了本发明的叠加机制如何找到具有最小等待时间的路径以改善性能;
图6示出了根据本发明一种实施方式的包含叠加机制的一组组件;
图7示出了数据如何流过图6的叠加机制;
图8示出了在一种实施方式中,网关区域可如何管理网络地址转换NAT;
图9示出了可能在给定网关区域内执行的序列号转换功能;
图10示出了在叠加内,负载信息的不同片段是如何被报告的;
图11示出了本发明的一种供选择的实施方式,其中,但是企业防火墙IP后的客户机被直接映射到网关区域,而其它客户机被映射到公共区域;
图12是过程流程图,其示出了在供选择的实施方式的叠加内,全局流量管理(GTM)过程可如何被执行;
图13示出了正常叠加路由;
图14示出了图13中示出的叠加的故障-安全(fail-safe)的运行;
图15示出了叠加机制是如何用于实现对目标服务器上给定的应用程序的多客户机远程访问;和
图16示出了叠加机制是如何用于实现对目标服务器上给定的应用程序的站点-到-站点(远程办公)。
具体实施方式
本发明是一种位于公共的可路由互联网上的“叠加”机制。优选地,该叠加借助现有的内容分发网络(CDN)基础设施,虽然这不是必要条件。通常,通过围绕下行链路路由(图4)或找到一条具有最短等待时间的路径(图5),本发明的叠加机制为使用IP作为传输协议的任何应用程序提供性能上的提高。因此,在图4中,网络A和D之间的链路是下行的,因此该叠加通过网络B路由分组。在图5中,该叠加使用穿过网络A到达网络C再到达网络D的路径,代替BGP路由将规定的从网络A到网络D的更慢的路径。在图4和图5中,假设客户机试图与服务器通信。然而,单个或固定的客户机的示例并不意味着把它作为一种限制。这是普遍性的。根据本发明,该叠加机制可用在很多不同的操作环境中。一种这样的环境是有期望访问单个服务器(或服务器场(server farm))的多个客户机(例如:漫游客户机)。有时这被称作“远程访问”实施方式。在另一种情况下,2个或更多固定端点希望相互之间通信。有时这被称作站点到站点或“远程办公”实施方式。普遍化地,并且如将要看到的,该叠加机制通过在一组服务器处接收IP分组、让这些分组通过一系列0个或更多CDN服务器隧道输送(tunnel),并将分组分发给固定的、给定的IP地址,来进行操作。
本发明的叠加IP(OIP)路由机制包括一组典型的组件,如图6所示。
·边缘服务器602-通常,运行如下所述的OIP边缘服务器软件程序的CDN边缘服务器。如将描述的,该软件负责接收、封装(encapsulate)和转发IP分组。
·边缘区域600-通常,为该叠加机制配置的CDN边缘区域。
·中间服务器606-通常,从边缘区域600或其他中间服务器接收封装的分组并将他们转发到其他中间服务器或网关区域的服务器。
·中间区域604-中间服务器的区域。
·网关服务器610-通常,已经配置为从叠加接收封装分组、并且对原始分组应用源网络地址转换(NAT)并将原始分组们转发给目标服务器的边缘服务器。
·网关区域608-通常,一类边缘区域,其包括网关服务器并且一般被部署在用户端。
·目标服务器612-其流量通过叠加被隧道传送的机器;
·目标地址-目标服务器的IP地址;当与CDN虚拟IP地址比较时,该地址有时被称作直接地址。
·时隙-该叠加的单个“实例(instance)”;优选地,时隙是对应于单个目标地址的标号的索引。
·虚拟IP地址-通常,对应于时隙的CDN地址;优选地,每个边缘区域每时隙存在一个虚拟IP地址。他有时被称作VIP。
·路径614-位于边缘区域和网关区域之间的一组有序的CDN区域
·路径段616-路径的单跳。
·隧道618-从边缘服务器到网关服务器的一组一个或更多路径。
·会话620-从客户机622到目标服务器的单个端到端的连接;优选地,该会话由5个元组(IP有效载荷协议、源地址、目的地地址、源端口、目的地端口)定义。该源是客户机而该目的地是目标。
在第一种实施方式中,远程访问,存在一个或更多期望将分组发送到单个IP地址的客户机。图7示出了该叠加IP机制如何完成该操作的。在步骤1,客户机700发出DNS请求以决定主机名。该主机名(例如通过CNAME)被化名给由权威的DNS702管理的域;通常,权威的DNS由CDN服务提供商管理。优选地,该主机名对应单个网关区域(和目标地址)704。如前所述,这也被称作时隙。在步骤2,DNS查询返回该主机名的单个IP地址。该地址确定最佳性能的可利用边缘区域706,并且,优选地,那个区域被提供给该主机名。如前所述,该地址被称作虚拟IP地址。在步骤3,客户机700开始将IP分组发送给虚拟IP地址。这些分组由边缘区域706中的服务器接收。基于该IP分组头中的目的地地址,该边缘区域706知道分组发送到的网关区域704。然后,该分组被封装。在步骤4,并基于由CDN映射系统优选地提供的路由,边缘区域706中的边缘服务器沿着多个路径发送这些封装的分组的多份复制。在颁布给Akamai Technologies,Inc的第6,665,726号和第6,751,673号美国专利中描述了一项用于实现这种多路径分组传送操作的技术。如在步骤5显示的,再次优选地基于CDN映射系统提供的路由,几个中间服务器接收封装的分组并将它们(或者直接地,或者通过其他未示出的中间区域)转发给网关区域704。在步骤6,这些分组由网关区域704中的服务器接收,在网关区域704中,复制品已移除。目的地NAT将该虚拟IP转换为目标地址,并且在分组被发送之前,对分组应用源网络地址端口转换,以使返回的流量也将在叠加网络上发送。优选地,信息被存储,以使返回的流量被发送到边缘区域706,客户机分组从边缘区域706起始。在步骤7,网关区域704从目标地址处接收IP分组并对该分组进行网络地址反变换。然后,该数据分组被封装。在步骤8,分组的多个复制沿着多个路径被发送。在步骤9,中间服务器将分组发送回该会话的原始边缘区域。在步骤10,由边缘服务器接收分组并移除复制。该分组源于虚拟IP地址,然后被发送回请求的客户机700。这完成了端到端传输。
下面提供了典型的边缘服务器、中间服务器和网关服务器的补充细节描述。
I.边缘服务器
边缘服务器运行一个程序(为了方便,称作oipd),它提供了下面的功能:在虚拟IP地址上接收分组;基于预期协议/端口、无效的或攻击流量或指定的访问控制表(ACL)将分组过滤;封装/解封装;转发复制的分组;并且接收复制的分组。现在描述这些功能中的每一个。
接收分组
发往虚拟IP地址的IP分组不应该由边缘服务器的TCP/IP栈处理;它们必须始终是被隧道传送的或丢弃的。因此,在分组被在本地处理之前,边缘服务器操作系统内核包括截取分组(并将它们传送给oipd)的钩子程序(hook)。在一个典型的实施方式中,边缘服务器运行商业硬件和Linux操作系统内核。该内核包括模块ip_tables、模块ip_queue和模块iptable_filter。当机器启动时,配置脚本(在ip_tables模块中)设置规则以使发送到任何虚拟IP地址的分组所有被发送到用户空间。如果没有应用程序使用ip_queue模块正在监听,那么分组被丢弃。
分组过滤
优选地,支持三(3)种类型的分组过滤:期望的/允许的TCP/UPD;无效的或攻击流量;CDN服务供应商或用户的指定白名单/黑名单ACL。边缘服务器程序oipd优选地基于端口过滤TCP/UDP分组。
封装
由边缘服务器程序提供的一个重要的功能是封装。封装头部可包括下面的信息,或其中的一部分:
·协议版本-标准版本字段。
·TTL-在分组被自动地发送到网关区域(或取决于方向的边缘区域)之前分组能够通过的跳数。在每一跳其将被递减。
·路径号码-分组沿着路径被发送,每一个路径将有一个标识符。该号码优选地对应于在该映射或其它数据结构中的指定的索引。
·转发状态-被网关服务器使用。
·数据长度-OIP分组的有效负载中的字节个数。
·源服务地址-封装机器的服务地址。
·目的地服务地址-隧道的接收侧的服务地址。
·消息序列号-用于识别复制分组和确定穿过隧道的损失。
·OIP时隙数-分组的时隙。
·序列号-由IP分组的散列(hashing)信息决定。
·边缘区域号-发送分组的区域的区域号。
·SRMM中间区域映射规则-确定哪个中间区域能够用于该时隙。
·消息确认码-用于确定OIP分组的可靠性。
当一个分组将被封装时,该oipd程序基于IP头部中的目的地地址字段中的虚拟IP地址而得知CDN用户。然后,该程序查找包括下面映射的配置文件:
虚拟IP地址->SRIP时隙数
有时这被称作“VIP映射”。优选地,该映射在安装时间时被确定,并且各种边缘服务器组件一致认同该映射。然后,优选地利用由时隙配置文件产生的“时隙配置映射”,该时隙数用于查阅该客户机的网关区域号码。然后,为了负载平衡,该边缘服务器程序将信息散列成序列号以将该负载分解成易管理的程序块(chunk)。优选地,该散列至少包括源IP地址。在下一个头部是TCP或UDP的情况下,源端口和目的地端口也可被散列。
边缘服务器程序支持第一低层(low level)映射(如下所述的服务B),其将序列号映射到服务地址。特别地,该序列号用于索引该映射以识别包含单个服务地址的网关区域。这是分组的所有(例如:三(3)个)复制将要发往的服务地址。然后,该边缘服务器程序检查以发现它在以前是否已将任何分组转发到该地址。如果是这样的话,它将序列号递增并在封装头部中的“消息序列号”字段中使用该号码。如果边缘服务器程序仍然没有发送任何分组到该IP地址,那么它如下所述对状态进行初始化。
转发分组
“转发分组”功能操作如下。在这一点,大多数封装头部被填充。该头部的补充信息产生如下。优选地,所有边缘服务器支持分配程序(被称作SRMM并被描述如下),其映射:MapperX.OIP.sr_assn_D_regionY,其中X是正确的映射表前缀而Y是区域号。目的地区域号和SRMM中间区域规则用于索引分配消息。这产生了一个或更多下一跳区域号,并且优选地下一跳区域号在每时隙是可配置的。每个下一跳由路径号来索引。该路径号被包含在封装头部中,因此下行中间节点知道它们的下一跳。如果分配消息不具有任何下一个区域,则单个封装分组被发送到目的地服务器地址(并且这应该触发NOCC中的警报)。对下一跳区域中的每一个,第二低层映射(如下所述的服务C)被检查。优选地,用于索引该映射的序列号是被包含在封装分组头部中的那一个序列号。优选地,对于每一个序列号,这些映射中的每一个只包含单个的服务地址。这是该分组下一个应该被转发到的服务地址。优选地,该序列号是从连接识别信息(例如:5个元组)中得到的。如果将被发送到的下一个区域是网关区域,那么第一低层映射不需要被检查,因为这已经由发送边缘服务器完成了。优选地,该初始查询在分组沿着多个路径被发送之前完成,以避免必须使中间区域同步。
随着头部信息完成,针对于头部和数据计算MAC。该计算可基于SHA-1、MD5等类似算法。为了简化通过中间节点的转发,该TTL字段可能不被包括在该散列中,因为该TTL字段是可变的。
复制分组
优选地,如前所述,边缘服务器程序发送复制分组。如上所述,优选地,为了产生冗余,该边缘服务器程序在几个方向上发送每个分组的多个复制。接收侧需要一种有效的方法来滤出复制。当处理复制分组时,第一个目的是丢弃尽可能少的分组;下一个目的是发送尽可能少的复制分组到目标服务器。该边缘服务程序在隧道层上跟踪复制分组。对每个(边缘源地址,边缘目标地址)对,对于边缘服务器程序从其接收分组的每个服务地址,该边缘服务器程序优选地维持指示哪个分组已经被接收(哪个还没有)的状态的滑动窗。现在描述一种处理算法。该算法需要维护一个参数,即该窗口的大小,和两个数据对象:窗口和迄今为止看到的、为环绕式处理(wraparound)而被调整的最高序列号。优选地,该窗口大小必须足够大以使其不必重置。因此,
oip.packet.window.size>=(max_packet_rate*maxjpacket_age)
当进行初始化的时候,优选地,整个窗口被初始化为空(NULL)。最高序列号被设置为第一个分组的号码,并且该滑动窗口中的项目(entry)被设为SEEN。对每个新的分组,如果序列号>最高序列号+oippacket.window.size,那么状态被初始化并再次启动。如果该分组在该窗口内但小于迄今为止的最高序列号,那么该算法核查该窗口中的项目是否已经被设置为SEEN。如果被设为SEEN,那么该分组被丢弃;否则,它被标记为SEEN。如果该分组大于迄今为止的最高序列号,那么该算法将该最高序列号设置给该分组,将项目标记为SEEN并且之间的所有项目都标记为UNSEEN。尽管使用2个值足以保证正确性,但是使用3个值要求2个状态位。如果发送器被重启,那么存在一个小的机会,即:随机选择的序列号将在接收器正在维持的当前窗口中。这可能导致分组不必要的丢失。为了阻止这种情况,优选地,发送器周期地写每个服务地址的(服务地址,末尾序列号的)映射表,发送器将数据发到所述每个服务地址。当边缘服务器启动时,它读取这个文件并向其添加一个大的号码以保证它不在该窗口内。该值应该确实大于窗口大小。
如前所述,优选地,边缘区域包括许多边缘服务器。因此,该系统可完成边缘服务器故障转移(failover)功能。这确保:如果单个边缘服务器发生故障了,那么由此将丢弃的分组的数目被最小化。优选地,每个边缘区域具有给定数目的已配置机器的合作组(buddy group)。为了复制移除以便处理故障转移,SEEN分组状态被周期地公布给合作组中的所有机器。该数据可能非常频繁地改变。因此,优选地,每个机器给其合作组中的所有机器发送一个更新,其指示最高序列号SEEN。优选地,使用TCP,每个机器通过后端网络上将该信息发送给其合作组中的所有机器。
II.中间服务器中间服务器具有类似于在边缘服务器中实现的“转发分组”的功能。该中间服务器支持相同的MapperX.OIP.sr_assn_D_regionYchannel。每个中间区域被指定SRMM中间区域规则并且应该只接收用于按照所述规则配置的时隙的分组。目的地区域号和时隙的中间区域规则用于索引分配消息以确定下一跳。如果机器接收用于具有不同中间区域规则的时隙的分组,那么它应该继续转送分组,但是他应该触发一个警告。如果发送给另一个中间区域,那么第二低层映射用于确定下一跳服务器的服务地址。如果下一个区域是网关区域,那么优选地,头部中的目的地服务地址被使用。在该分组被转送之前,该TTL字段必须被递减。如果TTL达到1,那么分组被转发给网关区域服务地址。
III.网关服务器
如前所述,优选地,该网关区域是通常位于客户机数据中心处的特定边缘区域。理想地,这是接近于目标服务器的某个地方。该网关服务器也运行边缘服务器程序oipd的实例,其能同时作为边缘和网关。优选地,网关区域中的每个机器具有其自己的用于安装和安全访问的CDN特定的IP地址,并且其作为用于叠加网络通信的服务地址。优选地,并如前所述,单个VIP地址用于固定的客户机映射,并且几个NAT地址被使用。优选地,为了产生冗余,该网关区域包括几个机器。这些机器可为负载平衡。
该网关服务器提供如下功能:连接跟踪、状态同步、网络地址转换、序列号转换、区域内分组转发、将分组返回到边缘区域。现在,详细地描述这些功能中的每一个。
连接跟踪
为了跟踪连接,边缘服务器程序oipd利用NAT库,例如libalias,其完成伪装和IP地址转换。优选地,该库将连接跟踪信息存储在散列表或其他数据结构中。当建立新的连接时,新的项目被添加到该表中。当参考已有的项目时,其时间戳被更新。当在给定的时间周期内未参考已有的项目时(其意义基于协议和连接状态变化),该项目被从该表中删除。当新的连接跟踪被创建时,除了被添加到标准libalias数据库外,优选地,其也被添加到新建立的但还未被同步的连接跟踪的列表中。当已有的连接跟踪被更改时,除非它已经存在于那个列表或新的项目列表中,否则它被添加到已更改的但还未被同步的项目的列表中。当已有的连接跟踪被删除时,其被从libalias数据库中被移除,并被添加到已删除的项目的列表(除非它目前存在于新的项目列表中,这意味着和它有关的信息从未被同步并且因此该删除信息不需要被同步)。该oipd程序将周期地同步数据库(新的、更改的和删除的列表)的更新。这允许连接跟踪数据库在整个网关区域被共享,以使每个(per)连接状态信息能够在网关区域中的机器之间移动。
状态同步
在网关服务器中运行的oipd程序优选地将几段信息与单个连接相关联。该信息在网关区域中的所有机器上被同步。为此,将一系列函数添加到libalias以帮助将被同步的数据的收集。存在用于每种类型的列表(新的,更改的,删除的)的同步的一种函数,用于收集所有记录以初始化对等机器的一种函数,以及用于对单个项目的查询做出响应的一种函数。现在描述这些函数。
函数GetSyncNewData建立用于使还没有被同步的所有新记录同步的数据分组。在TCP分组的情况下,只有这些被认为完全连接(即:从客户机和服务器都已经看到SYN分组)的分组将被同步。优选地,oipd程序保证单个连接将总被相同的机器操作,直到其被标记为完全被连接。这保证可以避免与部分被连接的跟踪项目的同步和它们的终止时间有关的可能的竞争情况。
函数GetSyncModData建立用于使还没有被同步的更改的记录同步的数据分组。期望有效的项目至少经常被同步以保证它在远端机器上的数据库中不会超时。优选地,该oipd程序保证列表中的每个项目至少被周期地(例如:UDP连接项目的超时周期)同步。这保证当同时限制需要的带宽以保持同步网关区域时,连接项目不会错误地超时。
函数GetSyncDelData收集已删除的记录的信息,并且函数GetSyncAIIData收集数据库中所有项目的信息。
当同步数据被远端机器接收到时,如果该同步数据适用于有效连接(例如:它由GetSyncAdd Data、GetSyncMod Data或GetSyncAl l Data收集),那么它被传到函数SetSyncAddData。该方法在本地数据库中创建了新的连接项目,或如果已有一个,那么该方法更新了已有的项目。对于TCP连接,优选地通过利用两个有限状态机,每个有限状态机器用于每一个方向(入/出),该连接的状态由libalias跟踪。函数SetSyncAddData保证本地机器上的有限状态机遵循有效的转换以使有效连接不会被错误地标记为未连接或断开连接。与将要被删除的记录有关的同步数据被传送给函数SetSyncDeIData,只要该项目的本地表格的时间戳不比已删除的项目的本地表格的时间戳更近,那么该函数SetSyncDelData将该项目从本地表格中移除。
优选地,这些libalias同步常规程序被包含发送器线程(thread)和接收器线程的NAT sync模块使用。该模块用其所有同步对等体(例如网关区域中的所有其它机器)的前端地址和后端地址初始化。该发送器线程连接到其对等体中的一个以重新获得该连接跟踪表格的完整截图(snapshot),作为初始化过程的一部分。然后,它依次试验每个对等体,直到它找到做出响应的那一个;然后,它向那个机器请求表格更新。优选地,在该初始化完成或所有对等体节点已经被试验之前,没有其它叠加活动进行。该发送机线优选地使用实时时钟以驱动同步。对每个时钟重复(iteration),该发送器线程使用GetSyncAddData、GetSyncDelData,和GetSyncModData以收集用于同步的数据。然后,该数据被发送到区域中所有活的对等体。为了检验活跃度(liveness),优选地,该发送器线程使用最后给定的有效地址(或者前端或者后端),试图与对等体节点建立TCP连接。如果该连接发生故障,那么该发送器线程试图通过其它地址建立连接。如果这个连接也发生故障,那么即使该对等体可能在接下来的同步试验中再次试验,但它被假设为失效的。在libalias中,设置发送器的同步时钟重复的速率,用于GetSyncModData算法以确定在每个同步周期内有多少更改记录被发送。该速率是可配置的。如前所述,当每个时钟重复时,所有新的连接项目(除了半连接的TCP)、合理数目的修改项目和所有删除项目将被同步。该接收机线程仅仅等待远程连接进入,然后根据消息类型处理它们。更新和删除消息被传送到合适的SetSync方法。初始化请求使接收机运行函数GetSyncAllData,然后将该数据发送到远程机器。
网络地址转换
如前所述,该叠加对将被发送到目标服务器的到达服务地址(网关)的所有分组执行源网络地址转换(NAT)。这确保这些分组将通过该叠加被发送回来。优选地,用于源NAT的地址基于每个区域和每个机器被定义。优选地,因为可能期望给定机器在NAT地址周围移动,因此给定机器未被分配静态NAT地址。并且,当分组到达网关服务器时,优选地,该NAT根据所包含的连接类型而被不同地应用。这些连接类型是可配置的,例如:每个服务器或每个端口:长期的TCP;短期的TCP;UDP-对话;UDP-询问/响应;和ICMP。询问/响应UPD连接通常只包括从客户机到服务器的单个UDP分组和从服务器到客户机的0个或更多响应分组。对于UDP询问/响应和ICMP,优选地,为每个进入的分组选择新的NAT地址、端口/ICMP ID。优选地,给出网关区域中每个机器的自己的端口/ICMP ID范围,对于该范围来说只有其被允许使用来创建新的NAT对话。当接收分组时,边缘服务器程序(下面将更详细地描述)选择一个空闲地址、端口/ICMP ID,并且将该分组发送给目标服务器。具有NAT地址的机器从服务器接收响应分组,但通常它将不具有NAT对话信息以将该地址转换回去。因此,该机器优选地核查目的地端口/ICMP ID并将该响应转发给具有那个端口/ICMP ID的机器。然后,第二个机器将该分组转换回去以包含原始客户机地址和端口/ICMP ID,并且通过叠加将其发送回去。图8示出了该操作。对两种类型的TCP连接,只有当SYN分组可见时,优选地选择新的NAT地址和端口。在任何一种情况下,该NAT源端口号用于将分组引导回创建该会话的服务器。对于长期的连接,期望减少需要在网关服务器之间发送的数据量;优选地,这通过使NAT会话信息同步来完成。特别地,当数据分组到达时,边缘服务器程序(如下所述)确定是否存在任何连接状态数据。如果存在,那么该程序应用源NAT并发出该分组。如果连接状态数据不可用,那么边缘服务器程序将该分组转发给所属(owning)机器。对于包含来自客户机的多个分组的UDP连接,机器将核查其是否具有用于客户机地址和端口的会话信息。如果有,那么机器使用该NAT信息。如果没有,那么机器优选地获得用于该客户机地址、端口的宽范围锁定。这保证如果分组同时到达两个网关服务器,那么它们中只有一个将建立NAT会话。
序列号转换
当网关服务器中的oipd程序接收从目标服务器到客户机的SYN分组时,其执行序列号转换,以对该分组加标签,指示该分组中的主机ID。无论该程序何时从叠加接收分组,如果它不具有分组的状态信息,那么它查看序列号以确定它应该将分组转发到的网关服务器。优选地,每个主机被分配一个唯一标识符。每个网关区域被分配一个最大尺寸,并且序列号空间优选地被分解为2个最大尺寸部分。为了支持SYN cookies,优选地,只有最高的8位被修改并且每个主机被分配2个连续的序列号空间块。当在状态被同步之前,到达网关区域的第一个分组由一个服务器处理而下一个分组由不同的服务器处理时,优选地,第二个服务器使用ACK系列号的最高的8位,以确定它应该将分组发送到哪个服务器。这个在图9中被示出。在将分组发送给目标服务器之前,该oipd程序必须未应用序列号转换,以使目标服务器得到正确ACK序列号。
区域内转发
在将分组转发给另一个网关服务器之前,头字段中的转发状态被更改,以指示分组已经被转发。接收机器处理该分组,好象分组是从叠加接收的一样,但是如果由于任何原因,该oipd程序需要再次转发该分组,那么它将改为丢弃该分组。
将分组返回到边缘区域
优选地,通过叠加将分组从目标服务器发送回到最初发送它的相同的边缘区域。这保证了那里的边缘区域将能够发送IP分组,该IP分组具有客户最初将分组发送到的虚拟IP的源地址。当在网关区域接收分组时,被封装的IP分组包括用户使用的虚拟IP,并且头部将包括边缘区域号码。该信息以连接存储,并且用与NAT会话信息一样的方式被同步。当网关服务器从目标服务器接收分组时,它用存储的虚拟IP替代源IP地址(其包括目标地址)。然后,它将分组转发到正确的区域。
当在边缘服务器区域时,优选地,网关区域实现服务器的合作组。该组被配置为用于一个区域,并且其中每个服务器包含监控程序以核查活跃度和负载。然后,当必要时,可执行机器或软件的故障转移。
负载报告
优选地,叠加机制实现负载平衡。为此,优选地,每个服务器执行机器内的DNS程序,该程序实现几个负载平衡功能:将虚拟IP地址和NATIP地址映射到正起作用的边缘服务器,将序列号映射到正起作用的边缘服务器,和将序列号映射到正起作用的中间服务器。这些函数需要三(3)种不同的服务:服务B、服务C和服务D。服务B代表进入叠加的字节,而服务C代表退出叠加的字节。图10示出了负载信息的不同片段如何在不同服务上被报告。
服务B将虚拟IP地址和NAT地址都映射到机器上。在安装时,从时隙到虚拟地址以及从NAT时隙到NAT地址的一对一映射被建立。为了确保所有区域能够支持相同号码的VIP时隙,网络宽配置变量被设置,在用于NAT地址服务B映射中留下一组给定的序列号。NAT时隙以时隙号为开始并向下工作(work downwards)。对于服务B,机器内的DNS程序需要知道:边缘服务器的活跃度、机器能容纳的字节数,和每时隙的字节负载。在机器上运行的监控程序被用于确定活跃度。oipd程序将服务器之内或之外的字节负载报告给监控程序。对于服务C,机器内的DNS程序需要知道边缘服务器的活跃度、该机器的容量(capacity)(根据给定度量),和每序列号的度量值。典型的度量是“片(flit)”。“片”是通常表示在给定服务机器上的非带宽资源利用的任意工作单位。这种利用通常包括CPU利用、磁盘利用、如线程和信号量(semaphore)等操作系统提取受限的资源等等,以及它们的组合。在一种典型的实施方式中,片是几个专用计算机变量的给定线性或凸函数,例如CPU和磁盘利用。然而,对于下述的负载平衡,进入服务器的字节数是该片值的很好的近似。对于服务D,机器内的DNS程序需要知道中间服务器的活跃度、该机器的容量(根据给定度量),和每序列号的度量值。
区域分配
在叠加机制的授权DNS中执行区域分配程序。因为映射到区域的每个连接具有到那个区域的从客户机到服务器和从服务器到客户机的相应的流量,因此服务B和C都需要被考虑。为此,区域监控程序报告服务B和C上的进和出的字节总和。该区域分配程序需要知道边缘区域片容量度量,以及(服务B和C的)边缘区域字节负载和片负载。因为分组优选地被发送到它们起始的边缘区域,因此映射到区域的每个连接影响区域发送和接收的负载数量。为了正确地对其进行处理,该区域分配程序优选地使用输入的字节和输出的字节中的最大值以确定区域是如何被负载的。
映射制作器
分配程序(SRMM)使用两部分信息:每个目的地区域的字节(与时隙相同),边缘区域对;和中间区域的区域片负载。边缘上的oipd程序报告字节负载,其将被注入到叠加中,优选地被目的地区域中止。这是加到叠加上的要求,并且是在从区域监控器发送到SRMM程序的新消息中的值。中间区域报告总的服务D字节和片。因为片负载和字节负载相关联,因此SRMM程序优选地使用边缘字节作为要求并且使用片上限(cap)和字节/片比率以推断该中间区域中的合理字节上限。该信息进入SRMM随即支持的已有区域分配消息。
该(SRMM)程序产生区域层映射,该映射指定了从边缘区域到网关区域的最佳路径,以及从网关区域回到边缘区域的最佳路径。如前所述,优选地,SRMM从边缘区域接收输入的要求和从中间区域接收负载和容量信息。此外,每个中间区域被分配给一个或更多中间区域映射规则并且每个时隙将被分配给特定的中间区域映射规则。优选地,SRMM只通过具有相同映射规则的中间区域映射用于特定时隙的流量。
在操作中,当SRMM保证没有两个路径共用相同的中间区域并且所有的中间区域都适当地负载平衡时,SRMM确定从每个边缘区域到每个网关区域的多条路径。默认地,它将选择3条路径。为了处理这些要求,优选地,对于SRMM算法进行下面的简化假:假设有足够的容量,给定来自查验子系统的信息,那么选择的第一条路径是最佳的(即它能支持多跳路径);并且,接着的两条路径只包括单个中间区域。
根据上述假设,路径确定被分解为两个部分。第一个部分包括运行一系列最短路径算法。对每个中间映射规则,对每个目的地,运行Dijkstra算法,其中目的地是所有的边缘和网关区域。如在这些计算要求的,使用边缘字节负载,并且每个中间区域的运行总数被跟踪。如果总负载低于每个中间区域的容量,那么完成这部分路径确定。如果不是,那么超过容量的所有节点将进行价值(price)调整,并且重复该算法。通过用常数因子乘以使用溢出节点的每个链路的得分(score),应用该价值调整。重复该过程,直到稳定。然后,每个节点处的容量被更新。
实质上,(边缘区域、网关区域)(源、目的地)对的列表被确定。对于每一对,算法选择具有此对的足够容量的最佳中间节点。算法的输出为每个区域的服务D创建IP分配消息。它被(目的地区域,路径号)索引。
边缘映射
如前所述,为了使用服务提供,客户为CDN服务供应商的DNS别名记录(CNAME)主机名称,对于该区域DNS则变为授权的。如果期望的,该主机名称可反过来被配置为全局流量管理主机名称,以提供额外的优势。
通过后台的方式,该叠加机制可使用“每用户”区域。每用户区域支持仅用于单一时隙的流量。对于处于企业防火墙后面的用户来说,这种方法是期望的。特别是,这样的用户能够然后被映射到接近目标服务器定位的CDN区域,这将通过进入公共CDN边缘区域来防止LAN性能退化为WAN性能。在图11中,企业防火墙IP后的客户被直接映射到网关区域,而其它客户被映射到公共区域。使用全局流量管理,具有指定的、预定义的源IP地址的用户被映射到这些“每个用户”区域。
图12是示出了如何在叠加内执行全局流量管理(GTM)程序以提供该功能的过程流程图。如果在给定判定点上信息不可用,则优选地,采用“否”路径。因此,如果GTM不具有任何预定的映射数据,那么客户机被映射到公共区域。同样地,如果GTM不具有任何地理信息,那么客户机被映射到公共区域。如果GTM不具有活跃度反馈信息,那么假设该区域故障并使用直接IP地址映射该客户机。优选地,GTM通过对那个区域中的虚拟IP运行查验测试来从网关区域获得活跃度信息。
故障-安全(fail-safe)映射
通过后台的方式,客户的目标服务器地址可被认为是故障-安全IP地址。如果该叠加检测到任何端到端的问题(或者客户机特定的,或者其它的),则优选地,该CDN的授权DNS分发该IP地址。这具有从所有通信中移除叠加的作用。图13示出了正常叠加路由,并且图14示出了故障-安全操作。由于各种事件,该故障-安全操作可被触发,这些事件例如任何每个客户每个区域的问题,其中多个区域出现故障或缺乏容量,其中GTM不具有从在网关区域处测试虚拟IP得到的活跃度信息,其中一个或更多名称服务器程序不具有足够的信息以作出分配,等等。
管理入口
CDN服务提供商可提供面向客户机的外联网,其允许客户登陆并执行必要的路由配置以及查看性能和流量利用统计。路由配置包括输入BGP信息,因此该边缘服务器可建立与本地路由器的BGP会话,以及输入将使用叠加网络的应用程序的应用IP信息。
本发明的叠加机制提供了很多优点。优选地,该机制持续地监控和分析从每个本地边缘节点到中间节点、从每个本地边缘节点到每个远端边缘节点以及所有中间节点之间的性能。因此,例如,这些性能测量包括等待时间和分组损失。然后,该数据被结合并分析以确定两个边缘位置之间的最佳路径。如果该叠加网络能够提供比BGP确定的路径更好的路径,那么这些边缘节点将截取分组并经由中间节点按路线发送他们。除了围绕较差性能路径进行路由以外,叠加也使用分组复制以确保正常运行时间(uptime)。叠加的性能测量粒度使得电力中断可以另外破坏分组传输。为了避免该问题,分组在边缘被复制,并且经由多个叠加路径被发送。路径中的一个可以是直接路由的路径,但分组在发送边缘被截取并被封装并且在远端边缘被解封装。优选地,使用在远端接收到的第一个分组,而其他的被丢弃。在可供选择的实施方式中,在某些情况下,故障-安全IP地址(通常目标服务器的IP地址)由CDN授权的DNS分发。
远程访问实施方式
在图15示出的远程访问实施方式中,多个客户1502a-n向单个IP地址,即目标服务器1504,发送分组。叠加机制1500包括授权的DNS1506、至少一个边缘区域1508、一个或更多中间区域1510和一个或更多网关区域1512。一个感兴趣的应用程序在目标服务器上可部分执行。应用程序的客户侧在客户机器上执行,客户机器可为膝上型计算机、移动式计算设备,等类似设备。应用程序的特殊功能(或应用程序是如何以分布式方式在客户机和服务器上执行的)对于叠加是透明的。仅仅假设客户机和服务器之间的通信在IP传送上发生。在该实施方式中,该应用程序是与互联网域相关联的。如前所述,该域的别名是由服务器提供商管理的叠加网络域(经由CNAME)。对应用程序域的DNS询问使授权的DNS1506返回VIP地址。然后,给定客户机(其机器通常运行客户侧的应用程序或实例)通过如前所述的叠加机制连接到目标服务器上的应用程序。特别地,发送到应用程序的数据分组在边缘处被封装、复制、通过多条路径转发,然后在网关处被处理以移除复制。在网关处,目的地NAT将虚拟IP转换为目标地址,并且源网络地址端口转换在分组被发送之前被应用到该分组,以使返回的流量也将在叠加网络上被发送。优选地,信息被存储,以使返回的流量被发送到客户分组起始的边缘区域。当应用程序做出响应时,网关区域从目标地址接收IP分组并对该分组进行NAT反变换。然后,该分组被封装。然后,该分组的多个复制被沿着多条路径发送。中间服务器将这些分组发送回该会话的原始边缘区域。这些分组被边缘服务器接收并且复制被移除。该分组源于虚拟IP地址并且然后被发送回请求客户机。
远程办公实施方式
在如图16所示实施方式中,应用程序在目标服务器1604上执行并且客户机1602(其自身可为应用程序或应用程序实例)位于固定的、远程的端点。在一个典型的例子中,客户机1602和服务器1604位于一对地理上分开的地点。为了便于讨论,假设客户机1602位于企业防火墙外但邻近路由器1608的位置。在该实施方式中,客户机1602执行远程办公加速(ROA)程序1610。程序1610宣布它本身作为目标服务器IP地址;因此,路由器1608将那个程序看做路由器。通过宣布目标服务器IP地址,程序1610建立与路由器1608的BGP会话并因此透明地截取打算发送到位于远程办公的应用程序的数据分组。一旦被截取,程序1610执行由远程访问实施方式中的边缘服务器执行的封装和其它功能。叠加机制以前面描述过的方式提供了两个地点之间的分组传输。
在远程办公实施方式中,该叠加通过退化(degenerate)BGP协议的使用,提供了一种数据封装的方法。概括地说,该技术能够用于任何给定的互联网协议,包括EGRP、OSPF,等协议。虽然退化的BGP方法是优选的,但是分组也可通过使用直插式(in-line)方法(例如:分组接收器(packet grabber))被提供给该叠加。
变型:
为了节省客户机带宽和减少服务供应商带宽成本,可能期望实施关于复制分组到什么程度的动态决定。因此,例如,可能期望以给定个数(例如:三(3)个复制)开始,然后,如果该损失/等待时间是可接受的,那么动态地减少这个数量。
概括地说,所描述的叠加机制可被概括为一个路由“云(cloud)”,其中任意数据流可智能地实现。在这个云内,并且使用上述传送技术,数据可穿过一个或更多中间节点,沿着冗余的路径被传输,利用TCP或UDP作为传送机制,服从用于在多维参数空间中确定最优性的流或类特定的逻辑,或任何它们的组合。
基于所使用的结构和计费模型,在叠加入口点处,可使用本地控制器或“按钮式机器”。该元件的动机是流到云并且在云内的带宽具有固有的成本。在某些情况下(例如:所有VPN流量正在被处理),因为该方案的最少的基本成本是可选方案的两倍,所以不是对所有这种流入到该云的流量都是意义的。因此,控制器的目的是提供以成本/效益折衷商业逻辑来支持系统的简单和有效的方法。(像这样,盒子实际上是一个按钮,控制如何积极地使用系统-由此得名)。基于提供的规则,该控制器以每个分组每个流为基础,得出关于流量应该被通过云发送到另一个端点还是直接发送到另一个端点的决定。默认地,优选地所有流量将流过控制器。然而,控制器将是可配置的,以利用合适的商业逻辑以决定流应该在什么时候被发送到云。该信息也可影响在云内发生的行为。
控制器可使用的规则是相当灵活的。它们包括基于如下各项选择流量:域(例如:内联网流量是重要的,但给定内容供应商不重要)、IP地址(例如:对于将流量路由到东京办公室是重要的,但对芝加哥不必)、性能预测(例如:该控制器能够使用上层服务器了解直接和备用路径的各种QoS度量,并且如果预测的改善大于给定阈值和/或如果直接路径的质量低于某个阈值,那么选择管理流量)、可靠性预测(例如:该控制器可了解直接和备用路径的各种可靠性度量,并且如果预测改善大于给定阈值和/或如果直接路径的质量低于某个阈值,那么通过上层服务器选择使用备用路径用于通信量),等等。当然,当一起使用时,这些规则更有效。例如,用户可选择对不同的域不同地设置性能和可靠性度量。
因此,路径优化是基于一段时间内收集到的性能数据而获得经由CDN区域从一个节点到另一个节点的数据分组的一般思想。如前所述,该技术已经用于改善返回到用于HTTP流量的客户机原始服务器的连通性。而且,调整服务特性的能力以使当该性质能够充分改善性能(例如:等待时间下降x%)时,其能够被优选地调用。根据本发明,内容分发网络被看作“云”,数据流可进入云,被最优地导向穿过“中间”(例如:通过最优化技术),并且出现在其它侧以及可能在到目的地的途中。例如,考虑这样的情况:VPN流量从东海岸(例如剑桥市)的办公室出来在到加利福尼亚(例如:圣马特奥)的办公室的途中。代替仅仅使用BGP,本发明可指导该流量为“入口点”。然后,该流量流经网络,采用合适的反跳(bounce)数,然后在接近适当的办公室的“出口点”处退出网络。在特定实现中,控制器被放置在所有的流量都流经的剑桥市办公室。该控制器被用于实时地基于商业规则(例如:到第一个域的流是重要的,但到第二个域的流量是不重要的)和服务质量(QoS)规则(例如:只有不存在直接路径或如果备用路径好出某个百分数时,使用备用路径)来进行决定。当然,这些例子并不限制本发明。
尽管不意味着限制,但是控制器机器能够在边缘或ISP网络中执行。现在描述几种可能的应用程序。
Web交易
Web上提供安全交易的实体可使用本发明以改善那些交易的可靠性和性能。一个例子是在线信用卡交易的供应商。因为它们根据定义不是可高速缓存的,且因为每个请求是有价值的,因此,交易是吸引人的。本发明能够通过简单地将HTTP支持添加到边缘服务器优化技术,来促进Web交易。在这种环境中,支持安全内容(例如:经由SSL)的CDN区域能够被看做到HTTP路由云的“入口点”,相应地提供与原始位置或通过网络的连接。实质上,HTTP边缘服务器的实现被扩展到一般化的云中,其中,每个边缘区域能够作为入口点并且其中某组区域(例如:上层区域)能够作为出口点。
适用性的另一个方面是下面的事实:由于SOAP在HTTP中执行,因此安全和HTTP云支持所有基于SOAP的交易。因此,本发明能够用于执行基于SOAP的Web交易。
VPNQoS
价值流的另一种机会存在于VPN领域中。VPN流量具有两个有吸引力的性质,其与商业发现有价值的信息相关联,并且根据定义在两个地理上不同的位置之间流动。简单的方法是将VPN流量看作防火墙后的具有端到端语义的加密IP数据流。因此,有可能通过云提供基于UDP的传送机制。最有可能地,流量将透明地流过按钮式机器并被适当地引导到云中。在这种方式中,基于按钮设置,VPN上的所有流量将从该服务得益。
该技术也与企业内容分发网络提供兼容。如果公司具有基于VPN的结构,则具有企业CDN和云的CDN服务供应商能够改善该公司中的每段数据的性能和可靠性。例如,所有VoD内容和可高速缓存的Web内容可被在客户办公室中高速缓存。然而,实时流不能被高速缓存。企业CDN能够限制流量的速度以保护有限的资源。云提供冗余并进行转发,以改善这些流的质量。此外,其他数据流例如P2P视频会议、数据库同步等等,能够从该功能中得益。
Web服务网络
随着web服务变得越来越广泛地被接收,系统的关键缺点之一将是它们之间发生的消息接发(messaging)。虽然正在开发几个协议以支持该功能(SOAP、UDDI,等等),但是存在两个缺少的因素。第一个因素是一组应用层功能,例如:安全、排队和认可/登录。第二个因素是这些消息的传送机制。
普通技术人员将了解,因为他们将BGP路由层用作黑盒子来决定给定通信的整个输出和输入路由,因此上述叠加技术是具有优势的,并且因此不易受与BGP有关的问题的影响。
本领域普通技术人员将认识到,为了增加的性能和可靠性,本发明可能依赖于应用程序专用的度量,促进在分布式的、可能的全局计算机网络内的IP流量的3层通用路由。系统将接收任意IP流,并且将它们经过内容分发网络路由发送,以试图得到一组度量,例如,由元数据建立的度量。元数据可基于这些特性例如源、目的地、流、应用程序类型等等,以许多方式被应用。为了实现这些度量,系统也可决定在每跳和每个分组的基础上,沿着备用路由和/或多个路由来路由流量。
已经描述了我们的发明,现在我们的权利要求如下。

Claims (9)

1.一种提供对在目标服务器上执行的应用程序的多个客户机器远程访问的方法,其中每个客户机器利用互联网协议通过互联网与所述应用程序进行通信,所述方法包括以下步骤:
建立叠加网络,所述叠加网络包括至少一个边缘区域、一组中间区域以及至少一个网关区域,其中每个边缘区域、每个中间区域和每个网关区域包括一个或更多服务器;
对于每个客户机器,根据与所述应用程序相关联的主机名称的DNS解析,将每个这样的客户机器与虚拟互联网协议地址相关联,所述虚拟互联网协议地址与给定边缘区域中的给定服务器相关联;
在所述给定边缘区域中的所述给定服务器上:对于将在所述客户机器和所述应用程序之间传递的每个请求数据分组,封装所述请求数据分组,复制已封装的所述请求数据分组,以及将已封装的所述请求数据分组转发到在网关区域处的给定服务器,其中所述请求数据分组被通过一组路径中的每一条路径转发到在所述网关区域处的所述给定服务器,所述每一条路径包括至少一个中间区域,所述一组路径至少包括从所述给定边缘区域到所述网关区域的、不共用相同的中间区域的第一条路径和第二条路径;
在所述网关区域内的所述给定服务器处,处理所接收的数据以恢复所述请求数据分组,将网络地址转换应用于已恢复的所述请求数据分组,并且将所述请求数据分组转发到所述目标服务器以由所述应用程序进行进一步处理。
2.根据权利要求1所述的方法,其中所述虚拟互联网协议地址是通过使所述客户机器执行对所述主机名称查询而获得的。
3.根据权利要求2所述的方法,其中所述主机名称是通过为与所述应用程序相关联的域取别名而获得的。
4.根据权利要求1所述的方法,进一步包括以下步骤:
当检测到给定的故障条件时,根据与所述应用程序相关联的主机名称的DNS解析,将客户机器与所述目标服务器的IP地址相关联。
5.根据权利要求1所述的方法,其中所述给定边缘区域是在所述DNS解析时刻的最佳性能的边缘区域。
6.根据权利要求1所述的方法,其中所述网络地址转换执行目的地网络地址转换,所述目的地网络地址转换将所述虚拟互联网协议地址转换为所述目标服务器的互联网协议地址。
7.根据权利要求6所述的方法,其中在所述分组被转发到所述目标服务器以进行进一步处理之前,所述网络地址转换还将源网络地址转换应用于所述请求数据分组。
8.根据权利要求7所述的方法,进一步包括以下步骤:
在所述网关区域处接收响应数据分组,封装所述响应数据分组,复制已封装的所述响应数据分组,以及通过一组路径转发已封装的所述响应数据分组。
9.根据权利要求8所述的方法,进一步包括以下步骤:
在具有所述虚拟互联网协议地址的所述服务器处,处理所接收的数据以恢复所述响应数据分组,以及将所述响应数据分组转发到所述客户机器。
CN2006800535414A 2005-12-30 2006-12-29 用于任意数据流的可靠高吞吐量高性能的传输和路由机制 Active CN101410819B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/323,342 US7660296B2 (en) 2005-12-30 2005-12-30 Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US11/323,342 2005-12-30
PCT/US2006/049660 WO2007089352A2 (en) 2005-12-30 2006-12-29 Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows

Publications (2)

Publication Number Publication Date
CN101410819A CN101410819A (zh) 2009-04-15
CN101410819B true CN101410819B (zh) 2012-05-30

Family

ID=38224310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800535414A Active CN101410819B (zh) 2005-12-30 2006-12-29 用于任意数据流的可靠高吞吐量高性能的传输和路由机制

Country Status (5)

Country Link
US (4) US7660296B2 (zh)
EP (1) EP1972112A4 (zh)
JP (1) JP4975760B2 (zh)
CN (1) CN101410819B (zh)
WO (1) WO2007089352A2 (zh)

Families Citing this family (204)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
KR101185570B1 (ko) * 2006-03-04 2012-09-24 삼성전자주식회사 이동망 환경에서의 다중 인터페이스를 이용한 자원예약방법
US8181227B2 (en) * 2006-08-29 2012-05-15 Akamai Technologies, Inc. System and method for client-side authenticaton for secure internet communications
US8249081B2 (en) * 2006-09-29 2012-08-21 Array Networks, Inc. Dynamic virtual private network (VPN) resource provisioning using a dynamic host configuration protocol (DHCP) server, a domain name system (DNS) and/or static IP assignment
US8355405B2 (en) * 2006-11-13 2013-01-15 B-Obvious Ltd. Selective session interception method
US7852861B2 (en) * 2006-12-14 2010-12-14 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) application level content routing using dual-proxy method
US8489670B1 (en) * 2006-12-26 2013-07-16 Akamai Technologies, Inc. Reducing TCP connection establishment time in an overlay network
US7840701B2 (en) * 2007-02-21 2010-11-23 Array Networks, Inc. Dynamic system and method for virtual private network (VPN) packet level routing using dual-NAT method
US20080208961A1 (en) * 2007-02-23 2008-08-28 Hostway Corporation Parallel retrieval system
JP5071165B2 (ja) * 2007-03-19 2012-11-14 日本電気株式会社 経路多重化通信システム、通信ノード及び通信方法
US8695089B2 (en) * 2007-03-30 2014-04-08 International Business Machines Corporation Method and system for resilient packet traceback in wireless mesh and sensor networks
ATE532352T1 (de) * 2007-06-29 2011-11-15 Vodafone Plc Verfahren und knot zur zugangsteuerung an einen telekommunikationnetzwerkkern
GB2450575B (en) * 2007-06-29 2012-06-20 Vodafone Plc Controlling the use of access points in a telecommunications network
US7961711B2 (en) * 2007-08-06 2011-06-14 Microsoft Corporation Fitness based routing
US8543667B2 (en) 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
US20090248793A1 (en) * 2008-03-25 2009-10-01 Contribio Ab Providing Content In a Network
US8429739B2 (en) 2008-03-31 2013-04-23 Amazon Technologies, Inc. Authorizing communications between computing nodes
US8549347B1 (en) 2010-12-20 2013-10-01 Amazon Technologies, Inc. Techniques for network replication
US7865586B2 (en) * 2008-03-31 2011-01-04 Amazon Technologies, Inc. Configuring communications between computing nodes
US20100094962A1 (en) * 2008-10-15 2010-04-15 Patentvc Ltd. Internet backbone servers with edge compensation
US9049198B2 (en) * 2008-10-15 2015-06-02 Aster Risk Management Llc Methods and systems for distributing pull protocol requests via a relay server
US8108933B2 (en) 2008-10-21 2012-01-31 Lookout, Inc. System and method for attack and malware prevention
US8533844B2 (en) 2008-10-21 2013-09-10 Lookout, Inc. System and method for security data collection and analysis
US9235704B2 (en) 2008-10-21 2016-01-12 Lookout, Inc. System and method for a scanning API
US9781148B2 (en) 2008-10-21 2017-10-03 Lookout, Inc. Methods and systems for sharing risk responses between collections of mobile communications devices
US9043919B2 (en) 2008-10-21 2015-05-26 Lookout, Inc. Crawling multiple markets and correlating
US8087067B2 (en) 2008-10-21 2011-12-27 Lookout, Inc. Secure mobile platform system
US8347386B2 (en) 2008-10-21 2013-01-01 Lookout, Inc. System and method for server-coupled malware prevention
US8984628B2 (en) 2008-10-21 2015-03-17 Lookout, Inc. System and method for adverse mobile application identification
US9367680B2 (en) 2008-10-21 2016-06-14 Lookout, Inc. System and method for mobile communication device application advisement
US20110219109A1 (en) * 2008-10-28 2011-09-08 Cotendo, Inc. System and method for sharing transparent proxy between isp and cdn
CN101409684B (zh) * 2008-11-25 2011-09-14 清华大学 基于三层软交换的互联网高性能地址分配方法
JP2010153955A (ja) * 2008-12-24 2010-07-08 Hitachi Ltd 交換装置
US9955352B2 (en) 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
US8538815B2 (en) 2009-02-17 2013-09-17 Lookout, Inc. System and method for mobile device replacement
US8467768B2 (en) 2009-02-17 2013-06-18 Lookout, Inc. System and method for remotely securing or recovering a mobile device
US8416692B2 (en) * 2009-05-28 2013-04-09 Microsoft Corporation Load balancing across layer-2 domains
US8369332B2 (en) * 2009-08-21 2013-02-05 Alcatel Lucent Server-side load balancing using parent-child link aggregation groups
US9083587B2 (en) * 2009-08-21 2015-07-14 Cisco Technology, Inc. Port chunk allocation in network address translation
US8626876B1 (en) 2012-11-28 2014-01-07 Limelight Networks, Inc. Intermediate content processing for content delivery networks
US20110110377A1 (en) * 2009-11-06 2011-05-12 Microsoft Corporation Employing Overlays for Securing Connections Across Networks
KR20110071774A (ko) * 2009-12-21 2011-06-29 한국전자통신연구원 스마트 경계 라우터 및 이를 이용한 플로우 정보 전송 방법
US8898287B2 (en) * 2010-02-24 2014-11-25 Salesforce.Com, Inc. System, method and computer program product for monitoring data activity utilizing a shared data store
US9137213B2 (en) * 2010-03-26 2015-09-15 Avaya Inc. On-demand feature server activation in the cloud
JP5515985B2 (ja) * 2010-04-02 2014-06-11 富士通株式会社 監視装置、障害区間特定方法および障害区間特定プログラム
CN103069776B (zh) 2010-06-18 2016-10-05 阿卡麦科技公司 将内容分发网络(cdn)扩展到移动或有线网络
US8660057B2 (en) * 2010-08-26 2014-02-25 Golba, Llc Method and system for distributed communication
JP5803924B2 (ja) * 2010-09-02 2015-11-04 日本電気株式会社 データ転送システム
US20130159547A1 (en) * 2010-09-02 2013-06-20 Nec Corporation Data transfer system
US8560646B1 (en) 2010-09-28 2013-10-15 Amazon Technologies, Inc. Managing communications using alternative packet addressing
CN103181148B (zh) * 2010-11-08 2017-05-31 瑞典爱立信有限公司 移动网络中的业务加速
WO2012078082A1 (en) * 2010-12-07 2012-06-14 Telefonaktiebolaget L M Ericsson (Publ) Method for enabling traffic acceleration in a mobile telecommunication network
US8806032B2 (en) * 2010-12-15 2014-08-12 At&T Intellectual Property I, L.P. Methods and apparatus to migrate border gateway protocol sessions between routers
JP5526015B2 (ja) * 2010-12-22 2014-06-18 株式会社日立製作所 ゲートウェイシステム、ゲートウェイ装置、負荷分散方法
CN102164078B (zh) * 2011-03-25 2014-07-02 北京星网锐捷网络技术有限公司 策略路由方法、装置及系统
US9172774B2 (en) * 2011-04-13 2015-10-27 Qualcomm Incorporated Technique for managing communications at a router
US8732268B2 (en) * 2011-04-19 2014-05-20 Microsoft Corporation Global traffic management using modified hostname
US8867337B2 (en) 2011-04-26 2014-10-21 International Business Machines Corporation Structure-aware caching
US8738765B2 (en) 2011-06-14 2014-05-27 Lookout, Inc. Mobile device DNS optimization
US8488601B1 (en) 2011-07-12 2013-07-16 Qlogic, Corporation Method and system for link aggregation
US8467395B1 (en) * 2011-07-12 2013-06-18 Qlogic, Corporation Method and system for link aggregation
US8788881B2 (en) 2011-08-17 2014-07-22 Lookout, Inc. System and method for mobile device push communications
US9014023B2 (en) 2011-09-15 2015-04-21 International Business Machines Corporation Mobile network services in a mobile data network
US8625452B2 (en) * 2011-09-15 2014-01-07 International Business Machines Corporation Maintenance of high-speed channels by inserting channel maintenance data in a mobile data network to avoid channel type switching
US9742858B2 (en) 2011-12-23 2017-08-22 Akamai Technologies Inc. Assessment of content delivery services using performance measurements from within an end user client application
WO2013096934A1 (en) 2011-12-23 2013-06-27 Akamai Technologies, Inc. Host/path-based data differencing in an overlay network using a compression and differencing engine
CN102571817B (zh) * 2012-02-15 2014-12-10 华为技术有限公司 访问应用服务器的方法及装置
US9141957B2 (en) * 2012-04-11 2015-09-22 Netgear, Inc. System and method for filtering advertising in a networking device
US9641405B2 (en) * 2012-05-31 2017-05-02 Ca, Inc. System and method for sequencing per-hop data in performance-monitored network environments
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US8521153B1 (en) 2012-06-18 2013-08-27 International Business Machines Corporation Using the maintenance channel in a mobile data network to provide subscriber data when a cache miss occurs
US9875267B1 (en) * 2012-09-28 2018-01-23 EMC IP Holding Company LLC State-based message generation
US8875287B2 (en) 2012-10-04 2014-10-28 Akamai Technologies, Inc. Server with mechanism for reducing internal resources associated with a selected client connection
CN102917047B (zh) * 2012-10-17 2015-08-05 成都索贝数码科技股份有限公司 一种在互联网环境中实现数字文件物流的系统及方法
US8495221B1 (en) * 2012-10-17 2013-07-23 Limelight Networks, Inc. Targeted and dynamic content-object storage based on inter-network performance metrics
US9386514B2 (en) * 2012-10-25 2016-07-05 Raytheon Company Hybrid communication system for smartphone/tablet network
US8655307B1 (en) 2012-10-26 2014-02-18 Lookout, Inc. System and method for developing, updating, and using user device behavioral context models to modify user, device, and application state, settings and behavior for enhanced user security
EP2922251A4 (en) * 2012-12-09 2015-10-14 Huawei Tech Co Ltd PACKET DELIVERY METHOD, DEVICE AND DATA CENTER NETWORK
US9654353B2 (en) * 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with rendezvous services network
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9509804B2 (en) 2012-12-21 2016-11-29 Akami Technologies, Inc. Scalable content delivery network request handling mechanism to support a request processing layer
US9729605B2 (en) 2012-12-27 2017-08-08 Akamai Technologies Inc. Mechanism for distinguishing between content to be served through first or second delivery channels
US9208215B2 (en) 2012-12-27 2015-12-08 Lookout, Inc. User classification based on data gathered from a computing device
EP2939138B1 (en) 2012-12-27 2020-10-14 Akamai Technologies, Inc. Stream-based data deduplication using peer node graphs
US9374369B2 (en) 2012-12-28 2016-06-21 Lookout, Inc. Multi-factor authentication and comprehensive login system for client-server networks
US8855599B2 (en) 2012-12-31 2014-10-07 Lookout, Inc. Method and apparatus for auxiliary communications with mobile communications device
US9424409B2 (en) 2013-01-10 2016-08-23 Lookout, Inc. Method and system for protecting privacy and enhancing security on an electronic device
US9882713B1 (en) 2013-01-30 2018-01-30 vIPtela Inc. Method and system for key generation, distribution and management
US9338210B2 (en) * 2013-03-15 2016-05-10 Rhapsody International Inc. Distributing content items to users
US9565101B2 (en) * 2013-04-22 2017-02-07 Fujitsu Limited Risk mitigation in data center networks
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
EP2809033B1 (en) * 2013-05-30 2018-03-21 Solarflare Communications Inc Packet capture in a network
US8601565B1 (en) * 2013-06-19 2013-12-03 Edgecast Networks, Inc. White-list firewall based on the document object model
US9467369B2 (en) * 2013-08-02 2016-10-11 Time Warner Cable Enterprises Llc Packetized content delivery apparatus and methods
US9503333B2 (en) 2013-08-08 2016-11-22 Level 3 Communications, Llc Content delivery methods and systems
CN104427488A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 一种终端及无线组网方法
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9577910B2 (en) 2013-10-09 2017-02-21 Verisign, Inc. Systems and methods for configuring a probe server network using a reliability model
CN103546559B (zh) * 2013-10-24 2018-02-02 网宿科技股份有限公司 数据分发方法和装置
US9642008B2 (en) 2013-10-25 2017-05-02 Lookout, Inc. System and method for creating and assigning a policy for a mobile communications device based on personal data
US9819721B2 (en) 2013-10-31 2017-11-14 Akamai Technologies, Inc. Dynamically populated manifests and manifest-based prefetching
WO2015084878A1 (en) * 2013-12-02 2015-06-11 Akamai Technologies, Inc. Virtual private network (vpn)-as-a-service with delivery optimizations while maintaining end-to-end data security
US9753796B2 (en) 2013-12-06 2017-09-05 Lookout, Inc. Distributed monitoring, evaluation, and response for multiple devices
US10122747B2 (en) 2013-12-06 2018-11-06 Lookout, Inc. Response generation after distributed monitoring and evaluation of multiple devices
US9503367B2 (en) 2013-12-10 2016-11-22 Fujitsu Limited Risk mitigation in data center networks using virtual machine sharing
US9467478B1 (en) * 2013-12-18 2016-10-11 vIPtela Inc. Overlay management protocol for secure routing based on an overlay network
US9712438B2 (en) 2014-01-08 2017-07-18 Microsoft Technology Licensing, Llc Routing messages between virtual networks
US10044609B2 (en) * 2014-02-04 2018-08-07 Fastly, Inc. Communication path selection for content delivery
US9887914B2 (en) 2014-02-04 2018-02-06 Fastly, Inc. Communication path selection for content delivery
US9325586B1 (en) * 2014-03-26 2016-04-26 Marvell Israel (M.I.S.L.) Ltd. Packet duplication measurement in a network device
US9866655B2 (en) 2014-03-31 2018-01-09 Akamai Technologies, Inc. Server initiated multipath content delivery
US9576070B2 (en) 2014-04-23 2017-02-21 Akamai Technologies, Inc. Creation and delivery of pre-rendered web pages for accelerated browsing
US9887874B2 (en) * 2014-05-13 2018-02-06 Cisco Technology, Inc. Soft rerouting in a network using predictive reliability metrics
US9678841B2 (en) * 2014-05-30 2017-06-13 Fastly, Inc. Communication continuation during content node failover
CN104113475B (zh) * 2014-07-30 2018-09-11 深圳市共进电子股份有限公司 基于Linux的家庭网关的网络路由实现方法和系统
US11296930B2 (en) 2014-09-30 2022-04-05 Nicira, Inc. Tunnel-enabled elastic service model
US9935827B2 (en) 2014-09-30 2018-04-03 Nicira, Inc. Method and apparatus for distributing load among a plurality of service nodes
US10070155B2 (en) 2014-11-10 2018-09-04 Time Warner Cable Enterprises Llc Packetized content delivery apparatus and methods
US10135956B2 (en) 2014-11-20 2018-11-20 Akamai Technologies, Inc. Hardware-based packet forwarding for the transport layer
CN104539585B (zh) * 2014-12-05 2017-12-05 北京奇虎科技有限公司 浏览器防注入的方法、浏览器客户端和装置
US10154068B2 (en) 2014-12-30 2018-12-11 Akamai Technologies, Inc. Self-adjusting tiered caching system to optimize traffic performance and origin offload
US9948709B2 (en) 2015-01-30 2018-04-17 Akamai Technologies, Inc. Using resource timing data for server push in multiple web page transactions
US10313463B2 (en) 2015-02-19 2019-06-04 Akamai Technologies, Inc. Systems and methods for avoiding server push of objects already cached at a client
US10015073B2 (en) 2015-02-20 2018-07-03 Cisco Technology, Inc. Automatic optimal route reflector root address assignment to route reflector clients and fast failover in a network environment
US10097449B2 (en) * 2015-02-20 2018-10-09 Cisco Technology, Inc. Optimized border gateway protocol best path selection for optimal route reflection
US9800653B2 (en) * 2015-03-06 2017-10-24 Microsoft Technology Licensing, Llc Measuring responsiveness of a load balancing system
WO2016178816A1 (en) 2015-05-01 2016-11-10 Lookout, Inc. Determining source of side-loaded software
CN104811354B (zh) * 2015-05-08 2018-04-06 北京京东尚科信息技术有限公司 一种用于cdn健康检测的方法、装置和系统
US10348589B2 (en) * 2015-06-15 2019-07-09 Netflix, Inc. Managing networks and machines that deliver digital content
US9743151B2 (en) 2015-06-24 2017-08-22 Time Warner Cable Enterprises Llc Multicast video program switching architecture
US9929949B2 (en) 2015-06-29 2018-03-27 Google Llc Systems and methods for inferring network topology and path metrics in wide area networks
CN106612211B (zh) * 2015-10-23 2020-02-21 华为技术有限公司 VxLAN中的路径探测方法,控制器和网络设备
US9980303B2 (en) 2015-12-18 2018-05-22 Cisco Technology, Inc. Establishing a private network using multi-uplink capable network devices
US10341379B2 (en) 2016-02-12 2019-07-02 Time Warner Cable Enterprises Llc Apparatus and methods for mitigation of network attacks via dynamic re-routing
WO2018039233A1 (en) 2016-08-22 2018-03-01 Akamai Technologies, Inc. Providing single sign-on (sso) in disjoint networks with non-overlapping authentication protocols
CN106453673A (zh) * 2016-08-31 2017-02-22 腾讯科技(深圳)有限公司 一种数据传输方法及相关设备
US9667619B1 (en) 2016-10-14 2017-05-30 Akamai Technologies, Inc. Systems and methods for utilizing client side authentication to select services available at a given port number
EP3563248B1 (en) * 2016-12-30 2022-11-30 Akamai Technologies, Inc. Unified, browser-based enterprise collaboration platform
US10084855B2 (en) 2017-01-23 2018-09-25 Akamai Technologies, Inc. Pixel-based load balancing
WO2018148302A1 (en) * 2017-02-07 2018-08-16 Level 3 Communications, Llc System and method for next hop bgp routing in a network
US9986269B1 (en) 2017-03-03 2018-05-29 Akamai Technologies, Inc. Maintaining stream continuity counter in a stateless multiplexing system
WO2018165190A1 (en) 2017-03-07 2018-09-13 Akamai Technologies, Inc. Cooperative multipath
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10764391B2 (en) 2017-09-14 2020-09-01 Akamai Technologies, Inc. Origin and cache server cooperation for compute-intensive content delivery
US10887385B2 (en) 2017-09-20 2021-01-05 Akamai Technologies, Inc. Marker based reporting system for hybrid content delivery network and peer to peer network
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US10531134B2 (en) 2017-11-10 2020-01-07 Akamai Technologies, Inc. Determining a time budget for transcoding of video
US10581948B2 (en) 2017-12-07 2020-03-03 Akamai Technologies, Inc. Client side cache visibility with TLS session tickets
US11343322B2 (en) * 2017-12-18 2022-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Virtual edge node as a service
US10439925B2 (en) 2017-12-21 2019-10-08 Akamai Technologies, Inc. Sandbox environment for testing integration between a content provider origin and a content delivery network
US10810279B2 (en) 2018-02-07 2020-10-20 Akamai Technologies, Inc. Content delivery network (CDN) providing accelerated delivery of embedded resources from CDN and third party domains
US10791047B2 (en) * 2018-02-19 2020-09-29 Disney Enterprise Inc. Automated network navigation
CA3101926A1 (en) 2018-02-26 2019-08-29 Charter Communications Operating, Llc Apparatus and methods for packetized content routing and delivery
US10764402B2 (en) 2018-03-03 2020-09-01 Akamai Technologies, Inc. Leveraging time-windows generated by web browser pre-connections
US10440142B2 (en) 2018-03-06 2019-10-08 Akamai Technologies, Inc. Automated TTL adjustment using cache performance and purge data
US10958649B2 (en) 2018-03-21 2021-03-23 Akamai Technologies, Inc. Systems and methods for internet-wide monitoring and protection of user credentials
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10681001B2 (en) 2018-03-29 2020-06-09 Akamai Technologies, Inc. High precision mapping with intermediary DNS filtering
US11233850B2 (en) * 2018-04-17 2022-01-25 Hewlett Packard Enterprise Development Lp Replicating data over a public network
CN108667658B (zh) * 2018-04-28 2020-02-21 厦门白山耘科技有限公司 一种带宽复用方法及装置
US10452563B1 (en) 2018-05-07 2019-10-22 Akamai Technologies, Inc. Cache eviction scheme for acceptable substitutes in online media
US10812315B2 (en) * 2018-06-07 2020-10-20 Cisco Technology, Inc. Cross-domain network assurance
US11012362B2 (en) 2018-06-18 2021-05-18 Akamai Technologies, Inc. Download management with congestion mitigation for over the air content delivery to vehicles
US10667172B2 (en) 2018-06-18 2020-05-26 Akamai Technologies, Inc. Download management with congestion mitigation for over the air content delivery to vehicles
EP3808043A4 (en) 2018-06-18 2021-09-15 Akamai Technologies, Inc. MANAGEMENT OF DOWNLOADS WITH REDUCED CLOGGING FOR DISTRIBUTION OF CONTENT BY RADIO TO VEHICLES
CN108833272B (zh) * 2018-06-20 2021-04-27 新华三技术有限公司 一种路由管理方法和装置
US10834138B2 (en) 2018-08-13 2020-11-10 Akamai Technologies, Inc. Device discovery for cloud-based network security gateways
US10931695B2 (en) 2018-08-22 2021-02-23 Akamai Technologies, Inc. Nonce injection and observation system for detecting eavesdroppers
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10798006B2 (en) 2018-10-12 2020-10-06 Akamai Technologies, Inc. Overload protection for data sinks in a distributed computing system
US11245667B2 (en) 2018-10-23 2022-02-08 Akamai Technologies, Inc. Network security system with enhanced traffic analysis based on feedback loop and low-risk domain identification
US10944819B2 (en) 2018-10-26 2021-03-09 Hewlett Packard Enterprise Development Lp Replication of an encrypted volume
US11019034B2 (en) 2018-11-16 2021-05-25 Akamai Technologies, Inc. Systems and methods for proxying encrypted traffic to protect origin servers from internet threats
US10951589B2 (en) 2018-12-06 2021-03-16 Akamai Technologies, Inc. Proxy auto-configuration for directing client traffic to a cloud proxy
CN109905387A (zh) * 2019-02-20 2019-06-18 网宿科技股份有限公司 一种数据处理方法及装置
US11003482B2 (en) 2019-02-22 2021-05-11 Vmware, Inc. Service proxy operations
US10924534B2 (en) 2019-03-01 2021-02-16 Akamai Technologies, Inc. Dynamic placement of computing tasks in a distributed computing environment
US11425216B2 (en) * 2019-04-01 2022-08-23 Cloudflare, Inc. Virtual private network (VPN) whose traffic is intelligently routed
US10887647B2 (en) 2019-04-24 2021-01-05 Charter Communications Operating, Llc Apparatus and methods for personalized content synchronization and delivery in a content distribution network
US10904207B2 (en) 2019-04-29 2021-01-26 Cloudflare, Inc. Intelligently routing a response packet along a same connection as a request packet
US11784912B2 (en) 2019-05-13 2023-10-10 Cloudflare, Inc. Intelligently routing internet traffic
US11748655B2 (en) * 2019-05-31 2023-09-05 Apple Inc. Classification of messages using learned rules
CN110445886B (zh) * 2019-07-05 2020-11-06 网宿科技股份有限公司 一种实现域名访问加速的方法和系统
US11128491B2 (en) * 2019-08-13 2021-09-21 Cloudflare, Inc. Network layer performance and security provided by a distributed cloud computing network
US11706162B2 (en) * 2019-10-21 2023-07-18 Sap Se Dynamic, distributed, and scalable single endpoint solution for a service in cloud platform
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11196704B2 (en) * 2019-12-31 2021-12-07 Level 3 Communications, Llc Content delivery system using embedded requestor information
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
CN111343092B (zh) * 2020-03-15 2021-10-22 腾讯科技(深圳)有限公司 基于边缘计算的通信方法、装置、介质及电子设备
US11368387B2 (en) 2020-04-06 2022-06-21 Vmware, Inc. Using router as service node through logical service plane
CN113595964B (zh) * 2020-04-30 2023-02-10 华为技术有限公司 连接跟踪同步方法、装置、系统、设备及介质
US20210382847A1 (en) * 2020-06-09 2021-12-09 Arteris, Inc. SYSTEM AND METHOD FOR PERFORMING TRANSACTION AGGREGATION IN A NETWORK-ON-CHIP (NoC)
US11431690B1 (en) * 2020-06-23 2022-08-30 Amazon Technologies, Inc. Protecting data within an edge location while providing access to associated metadata
CN114221955B (zh) * 2020-09-03 2023-01-20 浙江宇视科技有限公司 设备跨区域访问方法、装置、电子设备和存储介质
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
CN113542371B (zh) * 2021-06-29 2022-05-17 西南大学 基于边缘网关的资源调度方法及系统
CN113726648B (zh) * 2021-08-27 2022-11-29 中国电信股份有限公司 多路径通信方法、装置、电子设备及计算机可读介质
US11683286B2 (en) * 2021-11-18 2023-06-20 Cisco Technology, Inc. Anonymizing server-side addresses
CN115150932B (zh) * 2022-09-01 2022-11-18 深圳慧城智联科技有限公司 一种基于5g的边缘网关通信信息同步方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175868A (ja) * 1993-10-15 1995-07-14 Internatl Business Mach Corp <Ibm> デジタル情報を媒体に出力するための方法およびシステム
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6275470B1 (en) * 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
JP2001237876A (ja) * 2000-02-21 2001-08-31 Nec Corp Ip仮想プライベート網の構築方法及びip仮想プライベート網
EP1168718B1 (en) * 2000-06-30 2005-03-23 Alcatel Method and device to communicate with a device not belonging to the same virtual private network
US20020055983A1 (en) * 2000-11-03 2002-05-09 The Board Of Regents Of The University Of Nebraska Computer server having non-client-specific persistent connections
US6954790B2 (en) * 2000-12-05 2005-10-11 Interactive People Unplugged Ab Network-based mobile workgroup system
JP4225681B2 (ja) * 2000-12-06 2009-02-18 富士通株式会社 仮想閉域網構築方法及び装置並びに中継装置
US7530086B2 (en) * 2000-12-12 2009-05-05 Hewlett-Packard Development Company, L.P. Media program timing and identity delivery method and system
WO2002076077A1 (en) * 2001-03-16 2002-09-26 Leap Wireless International, Inc. Method and system for distributing content over a wireless communications system
EP1421758A1 (en) * 2001-08-02 2004-05-26 Sun Microsystems, Inc. Filtering redundant packets in computer network equipments
US20030101279A1 (en) * 2001-11-29 2003-05-29 Rajiv Maheshwari Method for transferring messages along optimally redundant network paths in a distributed communication network
US20030188021A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for processing multiple fragment requests in a single message
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)
AU2003239385A1 (en) * 2002-05-10 2003-11-11 Richard R. Reisman Method and apparatus for browsing using multiple coordinated device
JP3952860B2 (ja) * 2002-05-30 2007-08-01 株式会社日立製作所 プロトコル変換装置
US7328237B1 (en) * 2002-07-25 2008-02-05 Cisco Technology, Inc. Technique for improving load balancing of traffic in a data network using source-side related information
US20040093419A1 (en) * 2002-10-23 2004-05-13 Weihl William E. Method and system for secure content delivery
US20050071439A1 (en) * 2003-09-29 2005-03-31 Peter Bookman Mobility device platform
US20050259689A1 (en) * 2004-04-01 2005-11-24 Azer Bestavros Providing soft bandwidth guarantees using elastic TCP-based tunnels
JP4655619B2 (ja) * 2004-12-15 2011-03-23 日本電気株式会社 無線基地局装置およびそのレート制御方法
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows

Also Published As

Publication number Publication date
US7660296B2 (en) 2010-02-09
CN101410819A (zh) 2009-04-15
US20070153782A1 (en) 2007-07-05
JP2009522877A (ja) 2009-06-11
US20150074187A1 (en) 2015-03-12
US20120215938A1 (en) 2012-08-23
US20100138488A1 (en) 2010-06-03
WO2007089352A2 (en) 2007-08-09
US8170017B2 (en) 2012-05-01
WO2007089352A3 (en) 2008-08-14
JP4975760B2 (ja) 2012-07-11
EP1972112A2 (en) 2008-09-24
EP1972112A4 (en) 2010-12-01
US8891522B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
CN101410819B (zh) 用于任意数据流的可靠高吞吐量高性能的传输和路由机制
US11240064B2 (en) System and method for a global virtual network
Carofiglio et al. From content delivery today to information centric networking
US7284055B1 (en) Method and system for network redirecting
US7274658B2 (en) Optimal route selection in a content delivery network
US8274909B2 (en) Conditional protocol control
KR101420548B1 (ko) 오버레이 네트워크에서 통신 피어들의 선택을 지원하는 방법 및 시스템
Pan et al. An overview of DNS-based server selections in content distribution networks
US20110231470A1 (en) Systems and methods for network virtualization
US20080222267A1 (en) Method and system for web cluster server
VanderSloot et al. Running refraction networking for real
EP2385656B1 (en) Method and system for controlling data communication within a network
US20130159547A1 (en) Data transfer system
Yoshida Dynamic CDN against flash crowds
Chandhok Web distribution systems: Caching and replication
US20130151664A1 (en) Data transfer system
Schmidtke Is the internet spatial?
Li et al. One-hop dht resolution of locator/id mapping
Bachmeir et al. Diversity protected, cache based reliable content distribution building on scalable, P2P, and multicast based content discovery
Gao et al. Overlay networks to support internet emergency preparedness services
Christian Bachmeir et al. Diversity Protected, Cache Based Reliable Content Distribution Building on Scalable, P2P, and Multicast Based Content Discovery
Moen Overlay multicast for real-time distributed simulation
Verma et al. Using CDN to Increase the Scalability of the Server
Hjálmtýsson et al. Simple Active Mechanisms for Measuring and Monitoring Service Level Topologies
Haddow Improving Internet path performance through detour routing

Legal Events

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