用于内容分发网络的应用层流量优化增强的制作方法

文档序号:7679167阅读:137来源:国知局
专利名称:用于内容分发网络的应用层流量优化增强的制作方法
技术领域
本发明涉及一种计算机网络,更具体地,涉及增强内容分发。
背景技术
对等(P2P)应用程序交换大量数据,并产生大量的网络流量(network traffic)。 P2P应用程序支持(leverage)位于多个不同的网络节点的多份数据内容拷贝,以允许请求代理从许多可能的数据源的一个或多个中获得数据内容的部分。这种P2P分布式应用程序改善了应用程序性能和可量测性,并经常被用于文件共享、实时通信以及按需媒体流。许多P2P应用程序通过在通信网络上实现应用层覆盖网络来操作。覆盖网络是经由覆盖链路直接互相连接的参与网络节点(同位体,peer)的逻辑网络,覆盖链路均为通信网络的一个或下层传输链路的抽象。覆盖网络包括标引一个或多个网络装置(或“资源”) 的数据结构,所述网络装置存储并提供特定的数据内容,诸如文件或文件部分。寻找特定数据内容的同位体询问数据结构,以获得提供文件的网络装置的身份的列表。同位体(这里, 作为客户端进行操作)从经由覆盖网络而从中请求并接收数据内容的列表中随机地选择一个装置。用于P2P应用程序的客户端软件通常自然地选择资源,S卩,没有结合网络拓扑信息或相关的细节。相反,客户端依靠试探来接近这种信息。结果,利用这些应用程序而交换的网络数据流量可能使网络链路阻塞、使服务提供商网络边界多次交叉,并通常以从用户立场来说不是最理想和从服务提供商的观点来看不是期望的方式,而通过通信网络。例如, 尽管两个同位体可以是相同的服务提供商网络的成员,连接同位体的覆盖链路可能仍越过多个网络边界,这会对服务提供商不必要地增加同位体间的通行成本。此外,尽管分布式应用程序在数据源投入额外的带宽,以提高吞吐量并减小终端用户的等待时间,同时还减小内容提供商提供应用服务器的负担,但是,便宜地分布数据内容的能力是以服务提供商为代价的,服务提供商承受无效率地传输网络数据的成本。最近,已经提出一种应用层流量优化(ALTO)服务,其中,ALTO协议关于从中获得数据内容的资源的选择而被用于为P2P应用程序提供引导。在一个实例中,服务提供商会为用于服务提供商网络的ALTO服务器提供网络拓扑和拓扑链路成本信息。P2P客户端会将 ALTO请求发送至ALTO服务器,以获得网络映射(network map)和相应的成本映射。网络映射指定由网络的ALTO服务器所定义的拓扑群的子集。用于网络映射的成本映射在网络映射的各个组中定义代表用于连接的组间路由成本的提供商优先选择。结果,提供ALTO服务器的服务提供商可以引导P2P客户端根据服务提供商优先选择来选择资源,所述优先选择可以包括优化吞吐量和/或用户体验,例如,对服务提供商降低成本或促进提供商的其他目标。在 2009 年 10 月的 J. Seedorf et al.,RFC 5693,"Application-Layer Traffic Optimization (ALTO) Problem Statement"网络工作组、因特网工程特别工作草案、以及在 2010 年 3 月的 R. Alimi et al.,“ALTO Protocol-ietf alto-protocol-03. txt,,ALT0 工作组、因特网工程特别工作草案中进一步详细地描述了 ALTO服务和ALTO协议,这两篇文档的全部内容结合于此作为参考。

发明内容
通常,本发明致力于一种用于增强集成有内容分发网络(⑶N)的ALTO服务的技术。例如,本文献描述了在根据更传统的客户端/服务器模型而向应用程序分发内容的CDN 情况下的、ALTO服务的部署方案和增强。本文中描述的其他增强可以在其他部署中有用, 例如与P2P应用程序或分布式应用程序一起使用时。内容提供商越来越依赖于内容分发网络来分配由地理上不同和能力不同的客户端所请求的内容。在许多情况中,用作用户装置(试图到达存储并提供资源CDN高速缓存节点)的接入网的CDN和服务提供商(SP)网络通常是分开的。也就是说,CDN和SP网络可以是不同管理域的成员,并由此可以不共用内部的路由成本信息。服务提供商可以部署 ALTO服务,以通过对用户透明地提供服务的方式,根据本文描述的原理来使CDN性能最优化,使得用户主机不需要特殊的软件或其他修改。在一个简单的实例中,操作标准因特网浏览器的用户可以感受由增强的ALTO服务所使能的CDN最优化。在一个实例中,描述了这样的技术,其中,同盟的ALTO服务器将包含在⑶N的网络和成本映射以及一个或多个SP网络(提供对CDN的接入)的网络和成本映射中的信息相组合,以计算可以对一个或多个端点而增强主机选择的主要成本映射(master cost map)。 同盟的ALTO服务器根据ALTO服务产生适合于⑶N的网络和成本映射。在可行的端点和端点组(在下文中,可替换地被称作“PID”)的映射内,网络和成本映射包括将CDN与SP网络的边界路由器相耦接的CDN边界路由器。PID可以表示单个装置或装置部件、诸如网络子网、SP网络的装置组、或一些其他分组。同盟的ALTO服务器利用网络和成本映射来计算拓扑链路的成本矩阵,拓扑链路将每个⑶N节点连接至每个边界路由器(将⑶N耦接至由 CDN所服务的SP网络)。同盟的ALTO服务器另外从用于SP网络的各个ALTO服务器请求并接收网络和成本映射。通过根据已有的域间连接将CDN网络映射中的条目与SP网络的网络映射中的条目相链接,然后将所计算的成本矩阵中的条目与包含在所接收的各种SP网络成本映射中的相应成本信息相加,同盟的ALTO服务器产生具有用于拓扑链路的条目的主要成本映射, 拓扑链路越过多个管理域(即,⑶N和一个或多个SP网络)。例如,当⑶N域名系统(DNS) 名称服务器从SP网络用户接收DNS询问时,CDN DNS利用主要成本映射来确定用户的最佳 CDN高速缓存节点,并返回该节点的网络地址。以此方式,该技术可以允许用户利用这种信息来执行高速缓存节点的比随机更好的选择,该技术通过所述高速缓存节点来建立连接。在另一实例中,将该技术描述为对网络映射条目增加属性,以进一步表现本文所描述的PID的特征。该技术使得ALTO服务能够在多个PID类型中消除歧义以例如从网络映射中过滤不必要的PID、确保用于特定PID类型的PID可以仅包括单个端点装置、并根据配对成员类型来设定默认值或者另外影响多个PID的成本映射条目值。例如,在CDN环境中,该技术规定对网络映射条目增加属性,所述条目规定PID是否为以下类型“主机”、“CDN高速缓存节点”、“移动主机”或“有线主机”。转向器提供位置信息给请求主机,以使得主机能够连接至⑶N高速缓存节点。主机可以表示主机子网。在该情况中,根据所述技术进行操作的ALTO服务器利用这些属性而对转向器产生成本映射, 转向器具有针对CDN间高速缓存节点对和主机间对而被设定为无穷大的成本映射条目值。 当ALTO服务器从在转向器上操作的ALTO客户端接收请求时,ALTO服务器对排除具有无穷大成本的条目的成本映射提供稀疏矩阵。也就是说,ALTO服务器仅对一些节点对(针对这些节点,节点间的成本是除了无穷大以外的值)提供成本条目。当ALTO客户端接收到稀疏矩阵成本映射时,ALTO客户端将映射中的空条目解释为具有无穷大的默认值,并可以用无穷大的值占据整个成本映射。然后,一旦从主机接收到内容请求(例如,HTTP GET请求), 转向器因此由于在至其他主机的路径的整个成本映射中指定的默认值无穷大成本,而选择 CDN高速缓存节点作为内容资源。在另一实例中,描述了用于更新ALTO服务器并向ALTO客户端推送增量网络映射修正的技术。CDN高速缓存节点或其他内容服务器可以经历断电、阻塞,或经历影响服务节点的性能的内容的其他条件。CDN高速缓存节点向ALTO服务器提供状态更新,ALTO服务器将状态更新合并在ALTO网络映射和成本映射的计算中。例如,CDN高速缓存节点可以将表明其内容服务不可操作的状态更新发送至ALTO服务器。因此,ALTO服务器从网络映射中去除该节点,并相应地更新成本映射。因为关于阻塞或其他网络条件的状态更新可以导致对网络映射的频繁修改,所以,该技术使得ALTO服务器抢先用增量网络映射和成本映射修正来更新ALTO客户端。增量网络映射修正使ALTO客户端能够更新网络映射的先前版本, 而不是接收更新的整个网络映射。以此方式,该技术可以允许ALTO客户端保持当前的网络和成本映射,而且还避免另外由频繁的整个网络或成本映射传输而导致的网络中的流量。在一个实施方式中,本发明致力于一种包括以下步骤的方法通过包括用于第二 ALTO服务器的第一 ALTO客户端的第一 ALTO服务器,产生第一 ALTO网络映射,第一 ALTO 网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联。该方法还包括以下步骤通过第一 ALTO服务器产生第一 ALTO成本映射,第一 ALTO成本映射针对第一组PID的每一组合而包括成本条目,该成本条目包含成本值以指定通过第一网络越过网络路径的成本,第一网络连接第一组PID的相应组合。该方法还包括以下步骤通过第一 ALTO服务器的第一 ALTO 客户端接收第二 ALTO网络映射,其包括PID条目以描述一个或多个PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联。该方法还包括以下步骤通过第一 ALTO客户端接收第二 ALTO成本映射,第二 ALTO成本映射针对第二组PID的每一组合而包括成本条目,该成本条目包含成本值以指定通过第二网络而越过网络路径的成本,第二网络连接第二组PID的相应组合。该方法另外包括以下步骤产生包含一个或多个主要成本条目的主要成本映射的步骤,每个主要成本条目均包括从第一组 PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目包括表示从选自第一组PID的PID和选自第二组PID中选择的PID越过网络路径的成本;以及将主要网络映
7射从第一 ALTO服务器输出至第二 ALTO客户端。在另一实施方式中,本发明致力于一种方法,其包括以下步骤通过转向器装置接收第一 ALTO网络映射,第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联。 该方法还包括以下步骤通过转向器装置接收第二 ALTO网络映射,第二 ALTO网络映射包括PID条目以描述一个或多个PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联。该方法还包括以下步骤通过转向器装置接收包括一个或多个主要成本条目的主要成本映射,每个主要成本条目包括从第一组PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目包括表示从选自第一组PID 的PID和选自第二 PID的PID越过网络路径的成本。该方法还包括以下步骤通过转向器装置而从主机端点接收内容请求;询问第二ALTO网络映射以确定与第二组PID中的主机端点相关联的PID;以及询问主要成本映射以针对与主机端点相关联的PID来确定第一组PID 中的最低成本的PID。该方法另外包括以下步骤在第一 ALTO网络映射中选择与最低代码的PID相关联的端点,以从主机端点来服务内容请求。在又一实施方式中,本发明致力于一种第一应用层流量优化(ALTO)服务器,其包括网络映射模块以产生第一 ALTO网络映射,第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联。第一 ALTO服务器还包括成本映射模块以产生第一 ALTO成本映射,第一 ALTO成本映射针对第一组PID的每一组合而包括成本条目,该成本条目包含成本值以指定通过第一网络越过网络路径的成本,第一网络连接第一组PID的相应组合。第一 ALTO服务器还包括第一 ALTO客户端以接收第二 ALTO网络映射,第二 ALTO网络映射包括PID条目以描述一个或多个PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联,其中,第一 ALTO客户端接收第二 ALTO成本映射,第二 ALTO成本映射针对第二组PID中的每一组合而包括成本条目,该成本条目包含成本值以指定通过第二网络越过网络路径的成本,第二网络连接第二组PID的相应组合,并且其中,网络映射模块和成本映射模块产生主要成本映射,其包括一个或多个主要成本条目,每个主要成本条目包括从第一 PID中选择的PID和从第二 PID中选择的PID,并且,每个主要成本条目包括表示从选自第一组PID的PID和选自第二组PID的PID越过网络路径的成本。第一 ALTO 服务器还包括客户端接口,以将主要成本映射从第一 ALTO服务器输出至第二 ALTO客户端。在另一实施方式中,本发明致力于一种转向器装置,其包括位置数据库和应用层流量优化(ALTO)客户端,以接收第一 ALTO网络映射,第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联,其中,ALTO客户端接收第二 ALTO网络映射,第二 ALTO网络映射包括PID条目以描述一个或多个PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联,其中,ALTO客户端接收包括一个或多个主要成本条目的主要成本映射,每个主要成本条目包括从第一组PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目包括表示从选自第一组PID的PID和选自第二 PID的PID横穿网络路径的成本,并且其中,ALTO客户端将第一 ALTO网络映射、第二 ALTO 网络映射和主机成本映射存储至位置数据库。转向器装置还包括查找模块,以从主机端点接收内容请求,其中,查找模块询问第二ALTO网络映射,以确定与第二组PID中的主机端点相关联的PID,其中,查找模块询问主要成本映射,以针对与主机端点相关联的PID来确定第一组PID中的最低成本的PID,并且其中,查找模块选择与第一ALTO网络映射中的最低代码的PID相关联的端点,以从主机端点服务内容请求。在另一实施方式中,本发明致力于包括指令的计算机可读存储介质。该指令使可编程处理器通过第一应用层流量优化(ALTO)服务器产生第一 ALTO网络映射,所述第一 ALTO服务器包括用于第二 ALTO服务器的第一 ALTO客户端,第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联。该指令还使可编程处理器通过第一 ALTO服务器产生第
一ALTO成本映射,第一 ALTO成本映射针对第一 PID的每个组合而包括成本条目,该成本条目包括成本值以指定通过第一网络越过网络路径的成本,第一网络连接第一组PID的相应组合。该指令使可编程处理器利用第一 ALTO服务器的第一 ALTO客户端接收第二 ALTO网络映射,第二 ALTO网络映射包括PID条目以描述一个或多个PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联。该指令使可编程处理器通过第一 ALTO客户端接收第二 ALTO成本映射,第二 ALTO成本映射针对第二 PID 的每个组合而包括成本条目,成本条目包括成本值以指定通过第二网络越过网络路径的成本,第二网络连接第二组PID的相应组合。该指令使可编程处理器产生包括一个或多个主要成本条目的主要成本映射,每个主要成本条目包括从第一组PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目包括表示从选自第一 PID的PID和选自第二 PID的PID越过网络路径的成本,并且该指令将主要成本映射从第一 ALTO服务器输出至第
二ALTO客户端。在本发明中描述的技术可以提供一中或多种优点。例如,该技术可以允许ALTO服务与CDN的增强集成,从而使得根据提供商指定的优化数据而对内容请求的资源选择进行改进。例如,为网络推送当前网络映射和成本映射的增量更新,可以给ALTO客户端提供最新的资源选择信息,并可以培养服务连续性。此外,该技术可以允许转向器的独立缩放和端点的健康管理。作为另一实例,属性添加技术可以允许资源选择部件在内容提供商(例如,CDN高速缓存节点)和内容客户(例如,主机)之间进行区分,并由此对内容提供商限制资源选择。PID属性可以进一步使得特定PID类型的策略能够允许提供商执行例如服务区别。例如,服务提供商可以利用使该PID中的那些端点接收更高质量的服务OioS)的属性来标记 PID0另外,将默认成本引入主要成本映射可以使得ALTO服务器能够选择性地对ALTO客户端告知主要成本映射的成本条目。作为又一实例,该技术可以允许ALTO服务器在网络边界上共用内部网络映射和成本映射,以使得应用层流量优化技术横跨多个管理域。因此,该技术可以使能多域优化的资源选择,而不是多个局部优化的PID选择,后者由于网络间边界效应而频繁地导致普遍未获最佳的资源选择。在附图和以下说明书中阐述了本发明的一个或多个实施方式的细节。从说明书和附图以及权利要求书中,本发明的其他特征、目的和优点将是显而易见的。


图1是示出了示例性网络系统的框图,在该系统中,一个或多个网络装置执行在本发明中所描述的技术,以增强应用层流量优化在内容分发网络中的操作。图2A至图2B示出了图1的示例性网络系统的示例性网络映射。图3A至图;3B分别示出了由ALTO服务器利用图2A至图2B的网络映射并根据本发明的技术来计算的示例性边界路由器成本矩阵。图4示出了根据本发明的技术由ALTO服务器所产生的示例性主要成本映射。图5是示出了示例性网络系统的框图,在该系统中,一个或多个网络装置执行在本发明中描述的技术,以增强应用层流量优化在内容分发网络中的操作。图6是详细地示出了执行根据本发明的技术的ALTO服务器的框图。图7是示出了包括每个所描述的技术的PID属性的实例网络映射的框图。图8是对应于图7的网络映射并且由每个所描述的技术产生的示例性成本映射。图9是示例性网络系统的框图,该网络系统包括采用域名服务(DNS)的内容分发网络并执行本发明的技术。图10是示例性网络系统的框图,该网路系统包括使用域名服务(DNS)的内容分发网络并执行本发明的技术。图11是示出了根据本发明的原理的路由器的实例结构部件的框图。
具体实施例方式图1是示出了示例性网络系统2的框图,在该系统中,一个或多个网络装置执行在本发明中描述的技术,以增强应用层流量优化与内容分发网络的无缝且透明的整合。如图 1所示,示例性网络系统2包括内容分发网络6和接入网络4。接入网络4可以表示由服务提供商拥有和操作的公共网络以提供接入一个或多个用户装置的网络。结果,接入网络4 在本文中可以被称作服务提供商(SP)网络。在一些情况中,接入网络4可以表示在单个管理员或多个管理员的合作组的控制下的一个或多个自治系统。接入网络4可以连接至一个或多个客户网络(未示出),每个客户网络均构成两层(L2)有线或无线网络。已编号的层的参考符号可以指开放式系统互连(OSI)模型的特定层。可以在1980年4月4日在IEEE Transaction on Communications,vol· 28,no· 4 出片反的 Hubert Zimmermann 的题目为"the ISO model of Architecture for Open Systems Interconnection,,中找到关于 OSI 模型的更多信息,其全部内容结合于此作为参考。例如,术语“应用层”指的是OSI模型的第七层。内容分发网络(⑶N) 6是利用一个或多个服务而配合向客户端分发内容的互连装置的网络。这种内容可以包括例如流媒体文件、数据文件、软件、域名系统信息、文献、数据库查询结果以及其他内容。相应地,由CDN 6提供的服务的实例可以包括超文本传输协议 (HTTP)、媒体流、广告、文件传输协议(FTP)等。⑶N 6包括⑶N高速缓存节点20A至20C (可选地,为“⑶N节点”),这些⑶N高速缓存节点包含重复的内容,并且例如利用在⑶N 6的中间装置(为了简单起见而未示出)上操作的传输控制协议(TCP)或用户数据报协议(UDP) 对话而将该内容提供给请求装置。内容提供商管理CDN节点20,以利用负载平衡技术、高速缓存技术、请求路由和/或内容服务而使内容分发最优化。CDN节点20可以反映出内容,尽管CDN节点20中的任一个均可以提供与由其他CDN节点提供的服务和数据内容不同的服务和数据内容。在一些实施方式中,⑶N 6也为服务提供商网络或其他接入网络。接入网络4的边界路由器16A至16B( "BR 16”)经由相应的传输链路(transit link)7A至7B而耦接至⑶N 6的相应的边界路由器18A至18B ( “BR 18”),以为网络4的装置提供由CDN节点20所获得的内容的接入。边界路由器16和边界路由器18均可以包括例如自治系统边界/边界路由器或提供商边缘路由器,它们执行边界网关协议(BGP),以将网络终点(路由器为其提供连接性)告知其他路由器(或同位体)。主机IOA至IOC控制(host)经由接入网络4而连接至⑶N 6的应用程序,以请求并下载与应用程序相关的内容。主机10为用户装置并且可以包括例如工作站、台式计算机、膝上型计算机、手机或其他移动装置、个人数字助理(PDA)以及能够经由无线和/或有线连接而连接至计算机网络的任何其他装置。在一些实施方式中,主机10为经由接入网络 4而耦接至边界路由器16的客户网络的成员。内容分发网络6包括转向器沈以从主机10接收内容请求、选择并定位⑶N节点 20中的一个,该CDN节点能够服务请求并将正请求的主机转向至该确定的CDN节点。转向器沈例如可以为DNS或其他类型的服务器、代理服务器装置、P2P同位体、P2P专用跟踪器、 或防火墙或者其他安全装置。在一个情况中,转向器26执行DNS服务器负载平衡(SLB)。 在一些情况中,转向器沈为知道内容的转向器,其将特定内容或内容类型映射至存储并提供特定内容或内容类型的CDN节点20的每一个。在这种情况中,转向器沈选择CDN节点 20中的一个,以根据内容或内容类型的可用性而来服务请求。在一些情况中,转向器沈为知道服务的转向器,其将服务映射至能够提供服务的CDN节点20中的每一个,而与CDN节点当前是否存储服务内容无关。在这些情况中,转向器26选择CDN节点中的一个,以根据服务能力来服务一请求。如果所选择的CDN节点20 (提供服务)中的一个没有存储内容, 则该⑶N节点从集中服务器(centralized server)(未示出)或从⑶N节点20中的另一个请求并接收内容。在一些实施方式中,转向器沈为用于HTTP的知道内容或知道服务的转向器。也就是说,转向器26从HTTP客户端接收用于内容的HTTP请求,并通过使HTTP响应返回至请求装置而将该请求转向至所选择的CDN节点20中的一个,HTTP响应具有状态代码302并包括所选择的⑶N节点的网络地址。在一些实施方式中,主机10、⑶N节点20和转向器沈为在覆盖网络中连接以通过使用P2P应用程序来交换位置信息和内容的P2P同位体。在这种P2P实施方式中,转向器沈可以为用于P2P应用程序的集中服务器,P2P应用程序对同位体进行标引内容,并提供位置信息而非同位体。为了影响特定⑶N节点20的选择以服务从网络装置接收的特定请求,⑶N 6另外采用由⑶N 6的⑶N-ALTO服务器22所提供的应用层流量优化(ALTO)服务。通常,ALTO服务能够使CDN 6影响另外的内容提供商目的的选择过程,这些内容提供商目的可以包括通过选择地理上离请求主机10最近的一个CDN节点20来改进用户体验、对内容提供商降低传输成本、负载平衡、服务水平区分、解决带宽限制以及其他目的。⑶N-ALTO服务器22存储用于⑶N 6的网络映射和成本映射,并将这些映射提供给ALTO客户端,诸如转向器沈的⑶N-ALTO客户端28。如下面参考图7所详细描述的,网络映射包含网络位置标识符或者PID,它们均表示在网络中的一个或多个网络装置。通常,PID可以表示单个装置或装置部件、诸如网络子网的一组装置、SP网络或一些其他分组。由 ⑶N-ALTO服务器22存储的网络映射包括至少表示⑶N节点20和边界路由器18的PID。如下面参考图8详细描述的,成本映射包含在网络映射中所表示的多个PID对的成本条目和表示越过PID对的成员之间的网络路径的成本的相关值。该值可以为序数(即,有序的) 或数字(例如,实际的)。CDN-ALTO服务器22可以通过从CDN 6中的其他装置获得路由信息、然后对路由信息应用策略以将端点装置聚集在PID中,来产生网络映射和成本映射,并且该CDN-ALTO服务器针对每个特定标准(诸如传输成本或节点优先权)来计算越过PID 对的成员之间的网络路径的成本。在一些实施方式中,⑶N管理员或第三方为⑶N-ALTO服务器22提供网络映射和成本映射。根据本发明的技术,⑶N-ALTO服务器22通过表示没有附加的网络装置的唯一 PID,来表示⑶N 6的网络映射中的边界路由器18中的每一个。 CDN-ALTO服务器2 2例如可以为高端服务器或其他服务装置、用于P2P应用程序的内容分度器、或者可插入网络装置中的服务卡(诸如路由器或开关)。CDN-ALTO服务器22可以用作路由器的服务面的一个元件,以根据本发明的技术来提供ALTO服务。接入网络4也利用ALTO服务器14来实现ALTO服务,该ALTO服务器存储接入网络4的网络映射和成本映射。由ALTO服务器14存储的网络映射包括至少表示主机10和边界路由器16的PID。ALTO服务器14通过表示没有附加的网络装置的唯一 PID,来表示在接入网络4的网络映射中的边界路由器16的每一个。⑶N-ALTO服务器22执行本发明的技术,以针对接入网络4域中的主机10,来改进对⑶N 6域中的⑶N主机20的选择。根据这些技术,⑶N-ALTO服务器22包括ALTO客户端M,该ALTO客户端利用ALTO协议而从接入网络4的ALTO服务器14请求并接收用于接入网络4的网络映射和成本映射。⑶N-ALTO服务器22另外可以执行诸如内部BGP的路由协议,以发现将⑶N 6耦接至接入网络4的边界路由器18。在一些实施方式中,并不是用路由协议来发现这些实施方式,⑶N 6的网络映射中的PID包括边界路由器属性,使得⑶N-ALTO服务器22可以利用该边界路由器属性来识别表示边界路由器18中的一个的PID。在根据⑶N 6的网络映射而确定这些发现的边界路由器18的PID之后,⑶N-ALTO服务器22使用⑶N 6的网络映射和成本映射来计算CDN边界路由器成本矩阵,该CDN边界路由器成本矩阵指定从CDN节点20中的每一个到达边界路由器18中的每一个的成本。然后,⑶N-ALTO服务器22计算接入网络4的相似的边界路由器成本矩阵。也就是说,⑶N-ALTO服务器22利用由ALTO客户端M从ALTO服务器14获得的接入网络4的网络映射和成本映射,来计算接入网络边界路由器成本矩阵,该接入网络边界路由器成本矩阵指定从主机10中的每一个到达边界路由器16中的每一个的成本。通过使用两个成本矩阵(分别用于⑶N 6和接入网络4),⑶N-ALTO服务器22由于边界路由器16A至16B和18A至18B在传输链路7A和7B上的相应耦接,而使边界路由器 16A与边界路由器18A相关并使边界路由器16B与边界路由器18B相关。另外,⑶N-ALTO 服务器22利用边界路由器相关性作为链路而使主要成本映射中的两个成本矩阵相交叉, 并将来自相应成本矩阵中的各个成本相加,以计算交叉条目的总成本。换而言之,CDN-ALTO 服务器22计算从每个CDN节点20到达每一主机10的总成本。例如,为了计算从CDN节点 20B到达主机IOA的总成本,⑶N-ALTO服务器22 (使用接入网络4成本矩阵)确定从主机IOA PID到边界路由器16A PID的第一成本,并确定(使用⑶N 6成本矩阵)从边界路由器 18APID到⑶N节点20B PID的第二成本。然后,⑶N-ALTO服务器22将第一成本和第二成本相加,并且,在用于〈主机10APID,OTNfA 20B PID>对的主要成本映射的条目中插入该总禾口。在所示的实例中,由于存在可以越过在主机IOA和⑶N节点20之间交换的流量的多个边界路由器16和18,所以⑶N-ALTO服务器22可以针对每个组合或边界路由器16和边界路由器18来执行相交/相加处理。因此,除了上述计算以外,⑶N-ALTO服务器22可以计算包括 < 主机10APID,边界路由器16APID〉和 < 边界路由器18B PID,CDN节点20B PID> 的网络路径的总成本。然后,CDN-ALTO服务器22可以选择任一可能组合的最低总成本,以进入在 < 主机10APID,OTNfA 20B PID>对的主要成本映射中的条目。在具有连接边界路由器16和边界路由器18的附加链路的实施方式中,CDN-ALTO服务器22执行对应于附加链路的附加计算。在一些情况中,⑶N-ALTO服务器22将适当的传输链路7成本合并在总和中。在图2中示出了根据这些技术的示例性计算。转向器沈的⑶N-ALTO客户端28可以从⑶N-ALTO服务器22请求并接收主要成本映射、⑶N 6的网络映射以及接入网络4的网络映射。主机10将内容请求发送至转向器 26。根据所描述的技术,转向器沈询问主要成本映射以从用于请求主机的CDN节点20中选择最低成本的节点,并且其针对内容请求而返回所选择的CDN节点的网络地址。转向器 26利用接入网络4的网络映射,而将请求主机10的源IP地址映射至PID。然后,转向器沈利用主要成本映射来选择该PID的最低成本的CDN节点20。例如,在所示的实施方式中,主机IOA将内容请求34发送至转向器沈,转向器沈利用接入网络4和⑶N 6的主要成本映射和网络映射,以在内容响应36中选择⑶N节点 20B的网络地址,并将其返回至主机IOA0主机IOA与⑶N节点20B建立通信对话37 (例如,TCP对话),以获得所请求的内容。在一种情况中,操作因特网浏览器应用程序的用户在地址栏中键入统一资源标识符(URI),使得该应用程序(在该实例中)将包括URI的HTTP 请求34发送至转向器36。转向器36将URI映射至⑶N节点20 (其为HTTP服务器,并存储用于URI的内容(例如,网页)),并利用主要成本映射来选择一个所映射的节点,然后将 HTTP响应36返回至在主机IOA上运行的浏览器应用程序,该HTTP响应包括所选择的节点的网络地址。然后,浏览器应用程序可以经由通信对话37将第二 HTTP请求发送至所选择的⑶N节点20,以获得广受欢迎的内容。在一些实施方式中,ALTO服务器14和ALTO客户端M利用由HTTP所提供的加密方法来交换信息。图2A和图2B分别示出了用于图1的接入网络4和⑶N 6的示例性网络映射40 和42。作为一个实例,网络映射40包括PID条目,该PID条目将图1的接入网络4的主机 IOA和IOB映射至被标识为“PID-0”的PID。在一些情况中,网络映射40和42的PID条目包括识别PID是否表示边界路由器的属性。例如,可以对包括边界路由器端点的PID条目分配PID类型的“边界路由器”。为了易于说明,在简化图中示出了网络映射40和42。下文参考图7示出并讨论了更详细的网络映射。图3A示出了由⑶N-ALTO服务器22利用从接入网络4的ALTO服务器14接收的网络映射40和成本映射所计算的示例性接入网络边界路由器成本矩阵44。如所示出的,接入网络边界路由器成本矩阵44为边界路由器16中的每一个至主机10中的每一个的多对多映射(使用网络映射40PID来提取)。图;3B示出了由⑶N-ALTO服务器22利用⑶N 6的成本映射和网络映射42所计算的示例性接入网络边界路由器成本矩阵46。如所示出的,CDN边界路由器成本矩阵46为边界路由器18中的每一个至⑶N节点20中的每一个的多对多映射(使用网络映射42PID来提取)。图4示出了针对图1的接入网络4和⑶N 6而由⑶N-ALTO服务器22所计算的示例性主要成本映射48。主要成本映射48包括提供越过接入网络4的PID和⑶N 6的PID 之间的网络路径的总成本的条目。根据本发明的技术,CDN-ALTO服务器22通过使用边界路由器16和边界路由器18的相应耦接作为网络映射之间的链路而使网络映射40和42相交,来产生主要成本映射48。因此,主要成本映射48包括用于网络映射40的主机10PID和网络映射42的⑶N节点20PID的每一组合的成本条目。通过将来自接入网络边界路由器成本矩阵44和⑶N边界路由器成本矩阵46中的适当条目的成本相加,⑶N-ALTO服务器22确定每个成本条目的成本。通过利用来自主机 IOA的内容请求(在网络映射40中,映射至“PID-0”)作为实例,PID对<PID_0,PID-20〉经由连接边界路由器16A和18A的传输链路7A或经由连接边界路由器16B和18B的传输链路 7B而连接。在第一种情况中,CDN-ALTO服务器22将<PID_0,PID_2>成本(2)和〈PID-22, PID-20〉成本(11)相加,以达到用于越过传输链路7A的PID-O和PID-20之间的网络流量的13的总成本。在第二种情况中,⑶N-ALTO服务器22将<PID_0,PID_3>成本(6)和 <PID-23,PID-20>成本(16)相加,以达到用于越过传输链路7B的PID-O和PID-20之间的网络流量的22的总成本。由于13小于22,所以⑶N-ALTO服务器22将13设定为指定主要成本映射48中的PID对<PID-0,PID-20〉的成本条目的总成本。当转向器沈从主机IOA接收内容请求时,转向器沈询问连接至PID-O的最低成本的PID的成本映射。主要成本映射48将该PID表示为至PID-O而具有总成本13的PID-20。 转向器26利用网络映射42选择PID-20中的一个端点(在该情况中,为⑶N节点20B),并将⑶N节点20的IP地址返回至主机10A。图5是示出了示例性网络系统51的框图,在该网络系统中,转向器66、ALTO服务器70和内容节点72执行在本发明中所描述的技术。内容节点72为分布式应用程序(诸如利用CDN的客户端-服务器应用程序或P2P应用程序)提供内容。转向器66为知道内容或知道服务的转向器,诸如HTTP转向器或DNS服务器。转向器66和ALTO服务器70分别可以表示图1的转向器26和⑶N-ALTO服务器22。内容节点72可以表示图1的⑶N节点20中的任一个。转向器66可以负责主机PID的固定组,并在接收内容请求之前被提供有表示该职责的信息。转向器66的ALTO客户端68从ALTO服务器70请求并接收用于完整映射上传消息60中的分布式应用程序的网络映射和成本映射。在P2P网络中,ALTO客户端68可以是从ALTO服务器70获得映射并将这些映射并入在同位体数据库中的应用程序跟踪器。内容节点72向ALTO服务器70提供状态更新(status update) 58,该状态更新包括与涉及服务的能力相关的数据、由内容节点72所经历的网络条件,或影响内容节点72的内容溯源(content-sourcing)服务的一些其他因素。内容节点72可以周期性地或响应于诸如接收特定内容的特定事件,而向ALTO服务器70提供状态更新。
ALTO服务器70接收状态更新58,并且如果适当的话,其使用包含在其中的信息来修改用于包含内容节点72的网络的分布式应用程序的网络映射和成本映射(在图5中未示出)。例如,如果状态更新58表明内容节点72不再提供内容溯源服务,则ALTO服务器70 可以从网络映射中去除内容节点72。作为另一实例,如果状态更新58表明内容节点72正经历严重的流量负载,则ALTO服务器70可以增加具有内容节点72作为成员的PID对的成本。ALTO服务器70可以包括对特定的内容节点72状态指示指定成本权重的策略。换而言之,该策略规定ALTO服务器70的一个或多个特定成本修改动作,以响应由状态更新58所表明的内容节点72的特定状态条件。ALTO服务器70确定先前的网络映射和成本映射与ALTO服务器70由于接收状态更新58而产生的网络映射和成本映射之间的差别。另外,ALTO服务器70还产生指令,以能够使ALTO客户端68修改由ALTO客户端68在完整的映射上传消息60中接收的网络映射和成本映射,以反映对应用拓扑的改变。然后,ALTO服务器70将这些指令在更新消息62 中发送至ALTO客户端68。在一个实例中,ALTO服务器70利用内容节点72接收表明服务失败的状态更新 58。响应于这一服务失败,ALTO服务器70修改应用程序的网络映射和成本映射,然后确定新修改的映射和先前映射之间的差别。在该实例中,新修改的映射不再包括作为端点的内容节点72,这可以产生修改的PID或去除的PID。ALTO服务器70产生足以使ALTO客户端 68将网络和成本映射的ALTO客户端68拷贝变为由ALTO服务器70产生的修改的网络和成本映射的指令。作为一个可行的实例,该指令可以声明,“REM0VE[IP address of content node 72]”。ALTO服务器70自发地将指令在更新消息62中推送至ALTO客户端68。也就是说,ALTO服务器70并非必须在发送更新消息62之前从ALTO客户端68接收请求。一旦接收到更新消息62,ALT0客户端68就使用包含在更新消息62中的指令来修改包括该应用程序的网络映射和成本映射的位置数据库52。在一些实施方式中,新修改的映射为成本映射,而网络映射保持不变。在这种情况中,ALTO服务器70产生足以引起ALTO客户端68改变成本映射的ALTO客户端68拷贝以使ALTO客户端68成本映射与ALTO服务器70成本映射相一致的指令。作为一个可行的实例,该指令可以声明,“SETCOST PID-l,PID-2,8”,以使ALTO客户端68设定在客户端成本映射中的成本,以越过将PID-I和PID-2耦接至8的相应网络映射的拓扑链路。主机64包括应用程序74,其组成上面所讨论的分布式应用程序的一部分。例如, 应用程序74可以为P2P应用程序的同位体或客户端-服务器应用程序的客户端。应用程序74可以为因特网浏览器。应用程序74将内容请求M发送至转向器66,在接收到更新消息62之后,查找模块50通过询问用于分布式应用程序的网络和成本映射(由ALTO客户端68更新)来响应该转向器。查找模块50从中选择最低成本的节点(在一些情况中,该节点为内容节点7 以提供所请求的内容,并在内容响应56中将用于所选择的节点的网络地址返回至应用程序74。在一些实施方式中,查找模块50为HTTP服务器。在一些实施方式中,HTTP 302转向消息中的URI由于虚拟主机的结果而可以包含域名,而不是所选择的CDN节点的IP地址。在这种情况中,在选择请求主机的CDN节点之前,包含在成本映射中的IP地址可以需要与域名相互关联。以此方式,实时内容节点状态更新、增量网络和上述成本映射更新技术能够使能进行网络和成本映射的策略驱动的广告,这种广告将内容节点的条件结合在PID间成本计算过程中,如这种状态涉及例如网络拓扑、流量负载、节点健康状态,或涉及提供服务的其他状态。在P2P环境中,由于ALTO客户端68可以为应用程序跟踪器,所以用于应用程序的同位体数据库可以说明(account for)当前规格(metrics),例如,同位体可用性、内容可用性以及定位。此外,由于内容节点72向ALTO服务器70而不是向转向器66提供状态更新58,所以ALTO服务器70可以通过在更新消息62中将映射更新推送至ALTO客户端68,而根据实时状态变化来更快速地更新ALTO客户端68。这可以减少在ALTO服务器70和ALTO客户端 68之间所交换的信息量。另外,在ALTO服务器70处接收状态更新58使得ALTO服务能够在与转向器66所占据的管理域不同的管理域中操作。这可以能够独立地量测内容节点的健康管理(利用ALTO服务器70)和转向的健康管理(利用转向器66)。在许多情况中,转向器66面临更高的量测需求。图6是详细地示出了执行根据本发明技术的实例ALTO服务器80的框图。ALTO服务器80可以包括图1的⑶N-ALTO服务器22和图5的ALTO服务器70的方面。在所示的实施方式中,ALTO服务器80包括网络信息库90、数据结构以产生基于 ALTO的映射,该数据结构包括关于网络拓扑、端点状态、各种网络链路的传输成本的信息、 以及由映射模块81需要的任何其他信息。在所示实例中,网络映射模块82利用网络信息库90产生网络映射102,成本映射模块84利用网络信息库90产生成本映射104。网络信息库90被提供有通过执行路由协议92而获得的信息,以从管理员108和从内容节点72获得路由信息,所述的管理员连接至用户接口 100(“UI 100”)以上传包括网络信息的表格或其他数据结构,所述内容节点如以上参考图5所描述的而将状态更新消息58发送至资源接口 86,以利用节点的状态来更新网络信息库。网络信息库90还可以从与图1的ALTO客户端M基本相似地进行操作的ALTO客户端106接收网络信息。也就是说,ALTO客户端106 可以从其他管理域中请求并接收网络映射和成本映射,并将这些映射存储至网络信息库。除了接收状态更新58以外,资源接口 86还发现可用的内容节点(例如,内容节点 72)。资源接口 86可以利用例如ping (HTTP Get请求)、traCeroute或其他方法,而针对状态更新58来轮询(poll)内容节点72。资源接口 86可以包括简单的网络管理协议(SNMP) 代理,其连接至内容节点72或连接至中心网络管理服务器,以请求状态更新58。资源接口 86可以暴露应用程序编程接口(API),该应用程序编程接口可以包括Web服务或基于可扩展消息接发和存在协议(XMPP)的API。用户接口 100可以为命令行接口(CLI)、图形用户接口(⑶I)、远程过程调用(RPC) 或一些其他方法,以使得管理员108能够配置ALTO服务器80的网络信息库90和供给策略 98。管理员108可以为例如服务提供商网络的网络操作员,或者是在例如网络管理装置上运行的软件代理。管理员108为ALTO服务器80另外提供供给策略98,该供给策略为根据与传输成本、负载平衡、服务区分、PID分组或其他优先选择区域相关的管理员优先选择、而使网络映射模块82产生网络映射102并使成本映射模块84产生成本映射104的一组策略。 例如,供给策略98可以引导网络映射模块82和成本映射模块84产生映射,以使来自具有特定属性的PID的内容请求被转向至特定CDN节点。网络映射模块82和成本映射模块84可以执行映射过滤服务。该映射过滤服务允许ALTO客户端请求来自ALTO服务器80的映射,以询问根据各种参数而被过滤的映射。以这种方式,客户端可以避免客户端侧过滤,并且ALTO服务器80可以减少由不必要的大映射传输所引起的网络流量。根据本发明的技术,如下文参考图7而进一步详细描述的,网络映射102可以包括可用来消除PID (包含特定类的端点)中的歧义的PID属性。网络映射模块 82可以采用映射过滤服务过滤来自网络映射102的任何PID (不包括属于特定类的端点), 然后将所过滤的网络发送至请求客户端。客户端接口 96暴露ALTO服务器接口以使得ALTO客户端(例如,客户端40)请求并接收用于网络应用程序的网络映射和成本映射。客户端接口 96在完整映射上传消息 60中将网络映射102和成本映射104的拷贝发送至客户端40。客户端接口 96可以执行一个或多个协议,以获得ALTO客户端在网络中的网络地址,并且客户端接口保持这些网络地址,以将映射的增量更新推送至这些客户端。ALTO服务器80的差分引擎88高速缓存网络映射102和成本映射104的拷贝。一旦产生新的网络映射102和/或成本映射104,差分引擎88就确定新网络映射102和表示现有版本的缓存拷贝之间的差别。另外,差分引擎88还确定新的成本映射104和表示现有版本的成本映射的缓存拷贝之间的差别。然后,差分引擎88产生一系列命令,当这些命令由客户端40执行时,将导致客户端40使用于网络应用程序的网络映射和成本映射的拷贝分别与网络映射102和成本映射104相一致。差分引擎88引导客户端接口 96,以将这些命令在更新消息62中发送至客户端40。图7是示出了由ALTO服务器根据ALTO服务和本发明的技术所建立的实例网络映射102的框图。网络映射102包括一组网络位置标识符(PID) IlOA至110C,每一网络位置标识符均由网络位置标识符值114A至114C的相应一个来识别。PID 110中的每一个组成间接的网络不可知的聚集机构(aggregation mechanism),以表示例如一个或多个单独的端点、一个或多个子网、大都市区域、存在点(PoP)、一个或多个自治系统,或者它们的任一组合。例如,PID IlOB表示具有IP地址11. 0. 0. 58的端点,并具有网络位置标识符值 “PID-1”。可以聚集PID 110,并且可以根据任何数量的标准来分配网络位置标识符114。在一些情况中,ALTO服务器通过地理接近性而将端点、子网等聚集在PID 110中。网络端点到 PID 110中的聚集通过将网络端点与它们在ALT环境中的标识符分离,来提供可量测性和保密性。特别地,聚集通过减小网络的大小来减小成本映射的大小,并隐藏在特定PID(表示例如自治系统)下的网络拓扑。根据本发明的技术,示例性PID 110的每一个均包括PID类型字段112A至112C 中的相应一个,这些PID型字段存储所分配的PID的PID类型。例如,PID IlOA包括指定用于PID IlOA的“主机"PID类型的PID型字段112A,而PID IlOC包括指定用于PID IlOC 的“⑶N”PID类型的PID类型字段112C。因此,PID IlOA识别主机子网,PID IlOC识别可用的⑶N高速缓存节点的IP地址。PID类型字段112为各个PID 110的属性,并能够使ALTO服务采取特定PID类型的动作。如上文参考图6所描述的,可以通过作为约束的ALTO服务器而使PID类型值传给映射过滤服务。例如,ALTO服务器(诸如ALTO服务器80)可以设定成本映射的成本条目, 该成本映射将类型“主机”的两个PID之间的成本指定为无穷大的值。从而,使用成本映射选择用于请求主机的资源的转向器或其他资源选择器避免了选择另一主机作为资源,以有利于具有类型“⑶N”的PID的资源。在一些实施方式中,ALTO服务器可以过滤成本条目,以避免将这种条目发送至ALTO客户端。相反,ALTO服务器将成本条目的稀疏矩阵告知ALTO 客户端。在这些实施方式中,ALTO客户端假设,所接收的成本映射中的任何缺失的成本条目的默认成本为无穷大。虽然图7仅示出了“主机”和“⑶N”PID类型,但附加的PID类型也可以被用来表示PID 110的特性。例如,其他PID类型可以包括“移动主机”、“无线主机”或其他分类。在其他实例中,PID类型可以包括与客户和服务提供商之间的服务水平协议相对应的服务分类。在资源选择的过程中可以类似地采用这些附加类型以进一步服务提供商策略。作为仅有的一个实例,ALTO服务器可以识别具有类型“移动主机”的PID并产生成本映射,以使转向器将这些PID发送至控制(host)低分辨率视频流的内容节点。在另一实例中,ALTO服务器可以采用PID类型“边界路由器”来确保由ALTO服务器所服务的网络(例如,内容分发网络6或接入网络4)的任何边界路由器均被映射至不同的PID。这使ALTO服务器能够计算合并连接多个网络的传输链路的主要成本映射。图8是对应于图7的网络映射102并且通过所描述的技术而产生的示例性成本映射120。成本映射120解决需要将类型“主机”的PID转向至类型“⑶N”的PID的应用程序。因此,ALTO服务器产生成本映射120,使得主机间PID对和⑶N间PID对被设定为具有无穷大的成本。因此,与图7的网络映射102的PID IlOB和IlOC相对应的< “PID-1,,, “PID-2”〉的成本条目具有无穷大的值。ALTO服务器可以广告其从120得到的全矩阵或稀疏矩阵以减小网络流量。在使用图7的网络映射102和图8的成本映射120的一实例中,转向器(例如,图 5的转向器66)从ALTO服务器请求并接收成本映射120和网络映射102。然后,转向器66 从具有源IP地址的主机接收内容请求。转向器66根据网络映射102来确定包含源IP地址的PID。然后,转向器66利用成本映射选择所确定的PID的最低成本的CDN PID,并找出由最低成本的⑶N PID所包含的内容(例如,⑶N)节点的IP地址。由PID所包含的内容节点的选择可以是随机的、循环的或者是基于一定水平的内容了解的。作为引导内容了解 (content-awareness-directed)的选择的一个实例,转向器66可以将相同URI的请求发送至相同的内容节点。图9是包括采用域名服务(DNS)的内容分发网络130( "CDN 130”)的示例性网络系统128的框图。该网络系统128的元件通过利用DNS代理138而配合执行重复的DNS 查找。最初,主机140 (或在主机140上执行的应用程序)将DNS询问150发送至DNS代理 (DNS proxy) 138,DNS代理138请求根域名服务器(root name server) 146以找到用于顶级域(在该实例中,顶级域为“com”)的授权DNS服务器。根域名服务器146通过COM名服务器144的网络地址进行响应,DNS代理使用该COM名服务器来获得由内容分发网络130 覆盖的域(例如,“cdn.com”域)的授权DNS服务器的网络地址。COM名服务器144将名称服务器132的网络地址返回至DNS代理138。⑶N 130的每个元件均在相同的管理域中。名称服务器132为DNS服务器,并且其可以与图5的转向器66基本相似地进行操作。名称服务器132包括从⑶N 130的ALTO服务器136请求并接收网络映射和成本映射的ALTO客户端134。DNS代理138响应于从主机140接收的DNS请求150而发送DNS请求152,并且名称服务器132基于主机140的IP地址(在DNS请求152中由DNS代理138发送)以及从ALTO服务器136接收的网络映射和成本映射,而通过选择最适当的⑶N节点 (在该情况中,为CDN节点142)而进行响应。名称服务器132发送包括⑶N节点142的网络地址的DNS响应156,DNS代理138 在DNS响应158中将该网络地址转发至主机140。主机140与⑶N节点142直接建立通信对话160以获得广受欢迎的内容。图10是示出了网络系统170的框图,其与图9的网络系统1 基本上相似。然而, 与网络系统128不同,⑶N 130的ALTO服务器136在不同的网络172中受独立管理域的控制。另外,名称服务器132由DNS分解器(resolver) 174来替换。许多组织/内容提供商由于各种原因(例如可靠性、性能改进、DNS安全性以及其他原因)而向外部厂商(在所示实施方式中,为网络172的管理员)外界供应(outsource) DNS管理。可以通过⑶N 130内的高速缓存或其他⑶N来使用所管理的DNS服务。DNS分解器174在内容服务器之间使流量动态地负载平衡。典型地,所管理的DNS服务提供商在地理位置上定位DNS分解器以改进性能。DNS分解器174包括ALTO客户端134,以从ALTO 服务器136获得网络映射和成本映射。然后,通过使用本发明的技术,DNS分解器174可以基于在网络映射和成本映射中提供的信息而使流量负载平衡。例如,成本映射可以结合来自⑶N节点142的实时更新,这些实时更新使DNS分解器174增加或减小转向至⑶N节点 142的请求量。在一些实施方式中,⑶N 130和网络172均连接至单个服务提供商网络。在这些情况中,网络系统170与图9的网络系统1 基本上相似地进行操作。然而,在一些实施方式中,⑶N 130和网络172连接至不同的服务提供商网络。在这些情况中,网络系统170与图1的网络系统2基本上相似地进行操作,其中,网络系统2的接入网络4和⑶N 6分别对应于网络172和⑶N 130。在这些情况中,DNS分解器174可以连接至执行上文关于图1的 ⑶N-ALTO服务器22所描述的主要成本映射产生技术的ALTO服务器。在一些实施方式中,所管理的DNS服务可以利用多个⑶N厂商,并且DNS分解器 174可以基于子域而将请求转向至不同的⑶N节点。例如,DNS分解器174可以包括这样的策略其指定到特定子域的CDN节点142的转向和到不同子域的另一 CDN节点(未示出) 的转向。在该实施方式中,DNS分解器174可以包括ALTO客户端134。图11是示出了根据本发明的原理而提供可量测的ALTO服务的路由器MO的框图。路由器240可以表示图1的ALTO-CDN服务器22、图5的ALTO服务器70、或图6的ALTO 服务器80、或图9至图10的ALTO服务器136中的任一个。路由器240可以包括应用诸如如上文中所描述的ALTO服务的服务的一个或多个服务引擎Ml。也就是说,服务引擎可以为在用于服务ALTO协议的服务卡^OA至沈011( “服务卡沈0”)上操作的一个或多个相应的虚拟ALTO服务器沈IA至沈IM提供操作环境。在该实例中,路由和服务被结合在单个路由器MO内,该路由器使用适于高速转发功能(由处理高额流量的路由器所要求)的共用转发引擎对6。路由器240包括控制单元M2,该控制单元包括与转发引擎M6相耦接的路由引擎 M4,路由引擎244为执行路由操作的路由协议248提供操作环境。路由引擎244负责路由信息库(RIB)250的维护,以反映其连接的网络和其他网络实体的当前拓扑。具体地,路由引擎244周期性地更新RIB 250,以精确地反映网络和其他实体的拓扑。此外,路由引擎M4将由RIB 250存储的网络拓扑信息推送至服务卡沈0,以提供至虚拟ALTO服务器的拓扑输入。虚拟ALTO服务器261可以在PID聚集、网络映射产生和成本映射产生的过程中使用该拓扑输入。根据RIB 250,转发引擎246维护转发信息库(FIB) 252,该转发信息库将网络终端与特定的下一跳变以及相应的接口端口相关联。例如,控制单元242分析RIB 250并根据 RIB 250来产生FIB 252。路由器240包括接口卡254A至254N( "IFC 2 ”),这些接口卡分别经由网络链路256和257来接收并发送包。IFC 2M可以经由多个接口端口而耦接至网络链路256、257。转发引擎246可以包括交换结构(switch fabric)以基于所选择的下一跳变而将多点传送包转发至接口卡。通常,转发引擎246可以将从IFC 254接收的一些包转送至服务卡沈0。具体地, 转发引擎对6可以包括流转向单元(flow steering unit)M5,以将这些包选择性地引导至用于处理的服务引擎Ml。即,流转向单元245接收进入的包流,并在一个或多个服务卡260 内确定是否通过用于处理的服务引擎Ml来发送这些包,或确定是否绕过服务引擎Ml。例如,流转向单元245可以引导针对由服务卡提供的虚拟ALTO服务器中的一个而预定的包流。在2008年9月23日提交的美国专利申请第12/^235,677号的题为Iorwarding Plane Configuration for separation of Service and forwarding in an Intergrated Services Router"中可以发现一个转发用于服务分离的平面配置并在集成服务路由器中转发的实例,其全部内容结合于此作为参考。服务卡260从转发引擎246接收包,并根据所定义的配置数据282而选择性地提供服务。在一些情况中,服务卡可以将这些包或任何响应包转送至控制单元M2,以由转发引擎246根据FIB 252转发。多个输入和输出逻辑接口可以将服务卡260耦接至控制单元 242。可以沿着路由器240的底板或其他互连来安装具有服务引擎241的服务卡沈0,以在从转发引擎246接收的包上执行各种服务,这些服务包括ALTO服务和诸如过滤、记录、入侵检测和预防(IDP)分析、病毒扫描、深度包检测的其他服务。在一些情况中,服务卡沈0 可以发出命令251,以在转发引擎M6的流转向单元M5内动态地配置流表格M9。例如, 流转向单元245接收一个包,并分析所接收的包,以识别与该包相关联的包流,例如,利用基于流的供给逻辑247而基于在包的头或主体中携带的信息来识别η个元组(例如,五元组和输入接口)。一旦识别到包流,流转向单元245参考内部流表格对9,以确定是属于新的包流还是属于已由路由器240识别的包流。如果流转向单元245在流表格249中未找到匹配,这表明该包属于新的包流,则流转向单元245将该包引导至用于防火墙服务的服务引擎Ml的服务卡沈0。当将该包引导至服务引擎241时,服务卡260中的一个将ALTO服务应用于这些包,所述包符合ALTO协议并针对路由器的ALTO服务而预定。另外,服务卡260可以从包中提取并组装应用层数据, 深度包检查(DPI)机可以执行入侵检测和预防(IDP)分析和/或虚拟扫描,以过滤掉坏包。 作为另一实例,服务卡260还可以执行译码、NAT或鉴别服务。一旦接收并处理包流的一个包或多个包,服务卡260可以发出命令251以在流表格M9内安装动态过滤器,诸如当接收到匹配过滤器的包时指明要执行的特定动作的精确匹配过滤器。在服务卡260确定不需要另外的防火墙服务应用于包流的情况下(例如,在确定包流为可信或良好的之后),服务卡260可以在流转向单元M5内安装过滤器,以表明可以在绕过服务引擎241的径直路径上处理该包流对话的后续包。当流转向单元245接收到相同包流的后续包时,流转向单元245核对流表格M9,并确定该包与新的动态过滤器相匹配,并根据动态过滤器而在适当路径上引导包。控制单元242包括用户接口沈4,客户端(例如管理员沈6 ( "ADMIN266"))通过其可以直接或远程配置路由器M0。通过与用户接口 264相互作用,各种客户端(例如,人类用户和自动化脚本)可执行各种配置任务。例如,客户端可以通过供给策略、网络链路传输成本信息和QoS信息来配置虚拟ALTO服务器沈0。作为其他的实例,客户端可以配置路由器的接口卡、调节用于所支持的网络协议的参数、指定路由装置内的物理部件、修改由路由器所维护的路由信息、接入软件模块和位于路由器上的其他资源等。例如,用户接口 264 可以包括命令行接口(CLI)或其他适当的接口(例如,基于网络浏览器的接口),以处理用户或脚本驱动的命令。用户接口 264表示在路由引擎244上执行的软件,该路由引擎给出命令行接口(例如,经由外壳或远程登录对话),用于接收如本文所描述的配置数据,该配置数据包括由服务卡260的服务引擎241所提供的ALTO协议的配置。在一个实施方式中,转发引擎246和路由引擎244均可以包括一个或多个专用处理器、存储介质、硬件等,并且可以通过数据通信信道268而通信地耦接。数据通信信道268 可以为高速网络连接、总线、共享存储器或其他数据通信机制。以这种方式,可以将路由器240的操作视为被分成控制面、服务面和数据面。控制面可以被看作为由路由引擎244提供并可以包括一个或多个软件处理,诸如在由一个或多个微处理器提供的计算环境上执行的管理端口监督程序(management daemon)和路由协议端口监督程序。路由器240可以进一步包括用于容纳控制单元M2的物理底架(未示出)。该底架具有用于容纳一组卡(包括IFC 2M和服务卡沈0)的多个缝隙(未示出)。每张卡均可以被插入底架的相应缝隙,以经由总线、底板或其他电通信机制而将卡耦接至控制单元 242。路由器240可以根据从计算机可读存储介质(未示出)取出的可执行指令来操作。这种介质的实例包括随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPROM)、闪存等。可以通过用一个或多个处理器、离散硬件电路、固件、在可编程处理器上执行的软件,或以上的任一组合来执行计算机可读存储介质的指令,来实现路由器240的功能。可以至少部分地在装置管理系统和受管理装置上的硬件、软件、固件或其任一组合中实现在本发明中描述的技术。例如,可以将所述技术的各个方面实现为由一个或多个处理器执行的编码程序代码,所述的一个或多个处理器包括一个或多个微处理器、数字信号处理器(DSP)、特定用途集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等价的集成或离散的逻辑电路、以及这些部件的任何组合。术语“处理器”或“处理电路”可以通常指的是单独地或与其他逻辑电路组合的上述逻辑电路的任一个、或者任何其他的等效电路。包括硬件的控制单元还可以执行本发明的一个或多个技术。可以在同一装置内或不同的装置内执行这种硬件、软件和固件,以支持在本发明中所描述的各种操作和功能。另外,可以将任何所述单元、模块或部件一起或分开地实现为
21离散但可共同操作的逻辑装置。对模块或单元的不同特征的描述旨在突出不同的功能方面,而并非必须意味着这种模块或单元必须通过不同的硬件或软件部件来实现。相反,与一个或多个模块或单元相关联的功能可以由不同的硬件或软件部件来执行,或者可以集成在共用或不同的硬件或软件部件内。本发明中描述的技术也可以嵌入或编码在诸如包括指令的实体计算机可读存储介质中的计算机可读介质中。例如,当执行嵌入或编码在计算机可读介质中的指令时,这些指令可以使可编程处理器或其他处理器执行该方法。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PR0M)、可擦可编程只读存储器 (EPROM)、电可擦可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、 光学介质或其他计算机可读存储介质。应当理解,尽管术语“计算机可读介质”除了物理存储介质以外还可以包括诸如信号的瞬时介质,但术语“计算机可读存储介质”指的是物理存储介质,而不是信号或载波。除了以上实施方式以外或作为以上实施方式的替换,描述了以下实施方式。可以通过本文中所描述的任何其他实施方式来利用在以下实施方式的任一个中所描述的特征。一个实施方式致力于一种方法,该方法包括通过包括用于第二 ALTO服务器的第一 ALTO客户端的第一应用层流量优化(ALTO)服务器,来产生包括PID条目的第一 ALTO网络映射,以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联;通过第一 ALTO服务器来产生第一 ALTO成本映射, 第一 ALTO成本映射针对第一组PID的每一组合而包括成本条目,该成本条目包括成本值以指定通过第一网络(连接第一组PID的相应组合)而越过网络路径的成本;通过第一 ALTO 客户端接收第二 ALTO网络映射,该第二 ALTO网络映射包括PID条目以描述一个或多个PID 的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联;通过第一 ALTO客户端来接收第二 ALTO成本映射,第二 ALTO成本映射针对第二组PID中的每一个组合而包括成本条目,该成本条目包括成本值以指定通过第二网络(连接第二组PID的相应组合)而越过网络路径的成本;产生包括一个或多个主要成本条目的主要成本映射,每一个主要成本条目均包括从第一组PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目包括表示从选自第一组PID的PID和选自第二组PID的 PID越过网络路径的成本;并将该主要成本映射从第一 ALTO服务器输出至第二 ALTO客户端。在一些实施方式中,该方法可以进一步包括其中,第一网络包括与第一 ALTO网络映射的PID条目相关联的第一边界路由器,其中,第二网络包括与第二 ALTO网络映射的 PID条目相关联并经由传输链路而连接至第一边界路由器的第二边界路由器,其中,产生主要成本映射包括从第一组PID中选择第一所选PID,其中,第一所选PID与第一边界路由器不相关;从第二组PID中选择第二所选PID,其中,第二所选PID与第二边界路由器不相关;产生包括第一所选PID和第二所选PID的第一主要成本条目。在一些实施方式中,该方法可以进一步包括,将用于第一所选PID和第一边界路由器的PID的组合的第一 ALTO成本映射中的成本条目值与用于第二所选PID和第二边界路由器的PID的组合的第二 ALTO成本映射中的成本条目值相加,以产生总成本;并将第一主要成本条目的成本值设定为总成本。
在一些实施方式中,该方法可以进一步包括,将用于第一所选PID和第一边界路由器的PID的组合的第一 ALTO成本映射中的成本条目值与用于第二所选PID和第二边界路由器的PID的组合的第二 ALTO成本映射中的成本条目值、以及与用于将第一边界路由器连接至第二边界路由器的传输链路的成本相加,以产生总成本;以及将用于第一主要成本条目的成本值设定为总成本。在一些实施方式中,该方法可以进一步包括其中,与第一边界路由器相关联的第一 ALTO网络映射的PID条目包括PID类型字段,其将与第一边界路由器相关联的第一 ALTO 网络映射的PID条目识别为包括边界路由器,其中,与第二边界路由器相关联的第二 ALTO 网络映射的PID条目包括PID类型字段,其将与第二边界路由器相关联的第二 ALTO网络映射的PID条目识别为包括边界路由器。在一些实施方式中,该方法可以进一步包括产生第一网络的第一边界路由器成本矩阵,其指定从第一 ALTO网络映射中的第一组PID中的其他PID到达第一边界路由器的成本;以及产生第二网络的第二边界路由器成本矩阵,其指定从第二 ALTO网络映射的第二组PID中的PID到达第二边界路由器的成本。在一些实施方式中,该方法可以进一步包括其中,第一网络和第二网络在分开的管理域中操作。在一些实例中,该方法可以进一步包括,其中,与第一组PID中的特定PID相关联的第一网络的一个或多个端点中的每一个均为同一类型的成员,该方法进一步包括: 通过第一 ALTO服务器将PID类型属性分配给第一组PID中的每一个,其中,第一组PID中的特定PID的PID类型属性指定与该特定PID相关联的端点的子集的类型,其中,第一 ALTO 网络映射的每个PID条目均包括PID类型字段,其存储由PID条目所描述的第一组PID中的PID的所分配的PID类型属性。在一些实施方式中,该方法可以进一步包括,其中,将PID类型属性分配给每个 PID包括将“内容分发节点” PID类型属性分配给第一组PID中的第一 PID,其中,“内容分发节点”PID类型属性将与第一 PID相关联的端点识别为内容分发服务的提供商;以及将 “主机” PID类型属性分配给第一组PID中的第二 PID,其中,“主机” PID类型属性将与第二 PID相关联的端点识别为内容分发服务的客户。在一些实施方式中,该方法可以进一步包括,通过第一 ALTO服务器而从ALTO客户端接收用于主要ALTO成本映射的请求;设定主要成本条目的成本值,这些主要成本条目将包括具有相同PID类型属性的成员的PID对指定为无穷大;并且响应于接收到请求,将主要成本条目从ALTO服务器输出至ALTO客户端来作为主要ALTO成本映射。在一些实施方式中,该方法可以进一步包括过滤指定无穷大的成本值的主要成本条目,以产生主要成本条目的稀疏矩阵,其中,主要成本条目的稀疏矩阵的失去的主要成本条目具有无穷大成本的默认值,其中,输出主要成本条目包括仅将主要成本条目的稀疏矩阵从ALTO服务器输出至ALTO客户端作为主要ALTO成本映射。在一些实施方式中,该方法可以进一步包括通过第一 ALTO服务器而从第一网络的端点的第一个中接收状态更新,该第一网络包括表示第一端点的条件(影响第一端点关于服务的性能)的信息;产生第一网络的第二 ALTO网络映射,其中,第一网络的第二 ALTO 映射解释所接收的信息,以表示用于第一网络的更新的ALTO拓扑;确定第一网络的第一 ALTO网络映射和第二 ALTO网络映射之间的差别;并将更新消息从第一 ALTO服务器输出至ALTO客户端,ALTO客户端包括第一 ALTO网络映射的增量更新,以使得ALTO客户端使由 ALTO客户端存储的第三ALTO网络映射与第一网络的第二 ALTO网络映射一致。在一些实施方式中,该方法可以进一步包括,其中,第一 ALTO服务器包括路由器,并且其中,第二网络包括内容分发网络。一些实施方式致力于一种编码有指令的计算机可读存储介质,这些指令使一个或多个可编程处理器执行以上所阐述的任何方法。一些实施方式致力于一种包括用于执行以上所阐述的任何方法的装置的设备。在一些实施方式中,第一应用层流量优化(ALTO)服务器运行与第二 ALTO服务器相通信的第一 ALTO客户端,并产生第一 ALTO网络映射,该第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联。第一 ALTO服务器还产生第一 ALTO成本映射,该第一 ALTO成本映射针对第一组PID的每一组合而包括成本条目,该成本条目包括成本值以指定通过第一网络而越过网络路径的成本,该第一网络连接第一组PID的相应组合。第一 ALTO 服务器还接收第二 ALTO网络映射,该第二 ALTO网络映射包括PID条目以描述一个或多个 PID的第二组中的每一个,其中,第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联。第一 ALTO服务器还通过第一 ALTO客户端来接收第二 ALTO成本映射,第二 ALTO成本映射针对第二组PID的每一组合而包括成本条目,该成本条目包括成本值以指定通过第二网络而越过网络路径的成本,第二网络连接第二组PID的相应组合。第一 ALTO服务器还产生包括一个或多个主要成本条目的主要成本映射,每个主要成本条目均包括从第一组PID中选择的PID和从第二组PID中选择的PID,并且每个主要成本条目均包括表示从选自第一组PID的PID和选自第二组PID的PID越过网络路径的成本。第一 ALTO服务器还将主要成本映射输出至第二 ALTO客户端。在一些实施方式中,第一网络包括与第一 ALTO网络映射的PID条目相关联的第一边界路由器,第二网络包括与第二 ALTO网络映射的PID条目相关联并经由传输链路而连接至第一边界路由器的第二边界路由器,并且第一 ALTO服务器通过以下方式来产生主要成本映射从第一组PID中选择第一所选PID,从第二组PID中选择第二所选PID,并且创建包括第一所选PID和第二所选PID的第一主要成本条目,其中,第一所选PID与第一边界路由器不相关,第二所选PID与第二边界路由器不相关。在一些实施方式中,第一 ALTO服务器将用于第一所选PID和第一边界路由器的 PID的组合的第一 ALTO成本映射中的成本条目值与用于第二所选PID和第二边界路由器的PID的组合的第二 ALTO成本映射中的成本条目值相加,以产生总成本。第一 ALTO服务器还将第一主要成本条目的成本值设定为总成本。在一些实施方式中,第一 ALTO服务器将用于第一所选PID和第一边界路由器的 PID的组合的第一ALTO成本映射中的成本条目值与用于第二所选PID和第二边界路由器的 PID的组合的第二 ALTO成本映射中的成本条目值、以及与将第一边界路由器连接至第二边界路由器的传输链路的成本相加,以产生总成本。第一 ALTO服务器还将第一主要成本条目的成本值设定为总成本。在一些实施方式中,与第一边界路由器相关联的第一 ALTO网络映射的PID条目包括PID类型字段,其将与第一边界路由器相关联的第一 ALTO网络映射的PID条目识别为包括边界路由器,其中,与第二边界路由器相关联的第二 ALTO网络映射的PID条目包括PID 类型字段,其将与第二边界路由器相关联的第二 ALTO网络映射的PID条目识别为包括边界
路由器。在一些实施方式中,第一 ALTO服务器还产生第一网络的第一边界路由器成本矩阵,其指定从第一 ALTO网络映射中的第一组PID中的其他PID到达第一边界路由器的成本。第一 ALTO服务器还产生第二网络的第二边界路由器成本矩阵,其指定从第二 ALTO网络映射的第二组PID中的PID到达第二边界路由器的成本。在一些实施方式中,与第一组PID中的特定PID相关联的第一网络的一个或多个端点中的每一个均为同一类型的成员,并且第一 ALTO服务器将PID类型属性分配给第一组 PID中的每一个,其中,第一组PID中的特定PID的PID类型属性指定与特定PID相关联的端点的子集的类型,其中,第一 ALTO网络映射的每个PID条目均包括PID类型字段,其存储由PID条目所描述的第一组PID中的PID的所分配的PID类型属性。在一些实施方式中,第一 ALTO服务器将“内容分发节点"PID类型属性分配给第一组PID中的第一 PID,其中,“内容分发节点”PID类型属性将与第一 PID相关联的端点识别为内容分发服务的提供商。第一 ALTO服务器还将“主机” PID类型属性分配给第一组PID 中的第二 PID,其中,“主机”PID类型属性将与第二 PID相关联的端点识别为内容分发服务的客户。在一些实施方式中,第一 ALTO服务器从ALTO客户端接收主要ALTO成本映射的请求。第一 ALTO服务器还设定主要成本条目的成本值,主要成本条目将包括具有相同PID类型属性的成员的PID对指定为无穷大。第一 ALTO服务器还响应于接收到请求,而将主要成本条目从ALTO服务器输出至ALTO客户端来作为主要ALTO成本映射。在一些实施方式中,第一 ALTO服务器过滤指定无穷大的成本值的主要成本条目, 以产生主要成本条目的稀疏矩阵,其中,主要成本条目的稀疏矩阵的失去的主要成本条目具有无穷大的成本的默认值,并且其中,输出主要成本条目包括将仅将主要成本条目的稀疏矩阵从ALTO服务器输出至ALTO客户端来作为主要ALTO成本映射。在一些实施方式中,第一 ALTO服务器从第一网络的第一个端点接收状态更新,第一网络包括指示第一端点的条件(影响第一端点相对于服务的性能)的信息。第一 ALTO 服务器还产生第一网络的第二 ALTO网络映射,其中,第一网络的第二 ALTO映射说明所接收到的信息,以表示第一网络的更新的ALTO拓扑。第一 ALTO服务器还确定第一网络的第一 ALTO网络映射和第二 ALTO网络映射之间的差别。第一 ALTO服务器将更新消息从第一 ALTO服务器输出至ALTO客户端,该ALTO客户端包括第一 ALTO网络映射的增量更新,以使得ALTO客户端使由ALTO客户端存储的第三ALTO网络映射与第一网络的第二 ALTO网络映射相一致。在一些实施方式中,第一 ALTO服务器包括路由器,而第二网络包括内容分发网 此外,可以将在上述实施方式中所阐述的任何特定特征组合在所述技术的有利实施方式中。也就是说,任何特定的特征通常可适用于本发明的所有实施方式。已经描述了本发明的各种实施方式。这些和其他实施方式均在所附权利要求的范围内。
权利要求
1.一种方法,包括通过执行与第二应用层流量优化(ALTO)服务器通信的第一 ALTO客户端的第一 ALTO 服务器,来产生第一 ALTO网络映射,所述第一 ALTO网络映射包括PID条目以描述一个或多个PID的第一组中的每一个,其中,所述第一组PID中的每一个均与第一网络的一个或多个端点的子集相关联;通过所述第一 ALTO服务器来产生第一 ALTO成本映射,所述第一 ALTO成本映射针对所述第一组PID的每一组合而包括成本条目,所述成本条目包含成本值以指定通过所述第一网络而越过网络路径的成本,所述第一网络连接所述第一组PID的相应组合;通过所述第一 ALTO客户端接收第二 ALTO网络映射,所述第二 ALTO网络映射包括PID 条目以描述一个或多个PID的第二组中的每一个,其中,所述第二组PID中的每一个均与第二网络的一个或多个端点的子集相关联;通过所述第一 ALTO客户端接收第二 ALTO成本映射,所述第二 ALTO成本映射针对所述第二组PID的每一组合而包括成本条目,所述成本条目包含成本值,以指定通过第二网络而越过网络路径的成本,所述第二网络连接所述第二组PID的相应组合;产生包括一个或多个主要成本条目的主要成本映射,每个主要成本条目均包括从所述第一组PID中选择的PID和从所述第二组PID中选择的PID,并且所述每个主要成本条目均包括成本值,所述成本值表示从选自所述第一组PID中的PID和选自所述第二组PID中的 PID越过网络路径的成本;以及将所述主要成本映射从所述第一 ALTO服务器输出至第二 ALTO客户端。
2.根据权利要求1所述的方法,其中,所述第一网络包括与所述第一 ALTO网络映射的PID条目相关联的第一边界路由器,其中,所述第二网络包括与所述第二 ALTO网络映射的PID条目相关联并经由传输链路而连接至所述第一边界路由器的第二边界路由器, 其中,产生所述主要成本映射包括从所述第一组PID中选择第一所选PID,其中,所述第一所选PID未与所述第一边界路由器关联;从所述第二组PID中选择第二所选PID,其中,所述第二所选PID未与所述第二边界路由器关联;创建包括所述第一所选PID和所述第二所选PID的第一主要成本条目。
3.根据权利要求2所述的方法,还包括将用于所述第一所选PID和所述第一边界路由器的PID的组合的所述第一 ALTO成本映射中的成本条目值与用于所述第二所选PID和所述第二边界路由器的PID的组合的所述第二 ALTO成本映射中的成本条目值相加,以产生总成本;以及将所述第一主要成本条目的成本值设定为所述总成本。
4.根据权利要求2所述的方法,还包括将用于所述第一所选PID和所述第一边界路由器的PID的组合的所述第一 ALTO成本映射中的成本条目值与用于所述第二所选PID和所述第二边界路由器的PID的组合的所述第二 ALTO成本映射中的成本条目值、以及与将所述第一边界路由器连接至所述第二边界路由器的所述传输链路的成本相加,以产生总成本;以及将所述第一主要成本条目的成本值设定为所述总成本。
5.根据权利要求2至4所述的方法,其中,与所述第一边界路由器相关联的所述第一 ALTO网络映射的所述PID条目包括 PID类型字段,所述PID类型字段将与所述第一边界路由器相关联的所述第一 ALTO网络映射的所述PID条目识别为包括边界路由器,其中,与所述第二边界路由器相关联的所述第二 ALTO网络映射的所述PID条目包括 PID类型字段,所述PID类型字段将与所述第二边界路由器相关联的所述第二 ALTO网络映射的所述PID条目识别为包括边界路由器。
6.根据权利要求2至4所述的方法,还包括产生所述第一网络的第一边界路由器成本矩阵,所述第一边界路由器成本矩阵指定从所述第一 ALTO网络映射中的所述第一组PID中的其他PID到达所述第一边界路由器的成本;以及产生所述第二网络的第二边界路由器成本矩阵,所述第二边界路由器成本矩阵指定从所述第二 ALTO网络映射的所述第二组PID中的PID到达所述第二边界路由器的成本。
7.根据权利要求1至6所述的方法,其中,所述第一网络和所述第二网络在分开的管理域中操作。
8.根据权利要求1至7所述的方法,其中,与所述第一组PID中的特定PID相关联的所述第一网络的所述一个或多个端点中的每一个均为同一类型的成员,所述方法还包括通过所述第一 ALTO服务器将PID类型属性分配给所述第一组PID中的每一个,其中, 所述第一组PID中的特定PID的PID类型属性指定与所述特定PID相关联的端点的子集的类型,其中,所述第一 ALTO网络映射的每一 PID条目均包括PID类型字段,所述PID类型字段存储由所述PID条目所描述的所述第一组PID中的PID的所分配的PID类型属性。
9.根据权利要求8所述的方法,其中,将PID类型属性分配给每一PID包括将“内容分发节点,,PID类型属性分配给所述第一组PID中的第一 PID,其中,所述“内容分发节点”PID类型属性将与所述第一 PID相关联的端点识别为内容分发服务的提供商; 并且将“主机”PID类型属性分配给所述第一组PID中的第二 PID,其中,所述“主机”PID类型属性将与所述第二 PID相关联的端点识别为内容分发服务的客户。
10.根据权利要求8所述的方法,还包括通过所述第一 ALTO服务器从ALTO客户端接收用于所述主要ALTO成本映射的请求;设定主要成本条目的成本值,所述主要成本条目将包括具有相同PID类型属性的成员的PID对指定为无穷大;以及响应于接收到所述请求,将所述主要成本条目从所述ALTO服务器输出至所述ALTO客户端作为所述主要ALTO成本映射。
11.根据权利要求10所述的方法,还包括过滤指定无穷大的成本值的主要成本条目,以产生主要成本条目的稀疏矩阵,其中,所述主要成本条目的稀疏矩阵的失去的主要成本条目具有无穷大的成本的默认值,以及其中,输出所述主要成本条目包括仅将所述主要成本条目的稀疏矩阵从所述ALTO服务器输出至所述ALTO客户端作为所述主要ALTO成本映射。
12.根据权利要求1至11所述的方法,还包括通过所述第一 ALTO服务器从所述第一网络的所述端点的第一个中接收状态更新,所述状态更新包括指示影响关于服务的第一端点的性能的所述第一端点的条件的信息;产生所述第一网络的第二 ALTO网络映射,其中,所述第一网络的所述第二 ALTO映射解释所接收的信息,以表示所述第一网络的更新的ALTO拓扑;确定所述第一网络的所述第一 ALTO网络映射和所述第二 ALTO网络映射之间的差别;并且将更新消息从所述第一 ALTO服务器输出至ALTO客户端,所述更新消息包括所述第一 ALTO网络映射的增量更新,以使得所述ALTO客户端使由所述ALTO客户端存储的第三ALTO 网络映射与所述第一网络的所述第二 ALTO网络映射相一致。
13.根据权利要求1至12所述的方法,其中,所述第一ALTO服务器包括路由器,并且其中,所述第二网络包括内容分发网络。
14.一种设备,包括用于执行权利要求1至12中的方法的装置。
全文摘要
本发明公开了一种用于内容分发网络的应用层流量优化增强,通过使用ALTO服务,连网应用程序可以通过ALTO协议从ISP或内容提供商请求关于下层网络拓扑的信息。ALTO服务以修改网络资源消费模式为目标而提供诸如网络资源的优先选择的信息,同时保持或改进应用程序性能。在一个实例中,该文本描述了一种ALTO服务器,其使第一网络的网络映射和成本映射与第二网络的网络映射和成本映射相交叉,以产生包括一个或多个主要成本条目的主要成本映射,每个主要成本条目均表示从第一网络中的端点越过网络至第二网络中的端点的成本。通过利用主要成本映射,转向器可以选择在第一网络中的优选节点,由此服务从第二网络中的主机所接收到的内容请求。
文档编号H04L29/06GK102316091SQ20111014139
公开日2012年1月11日 申请日期2011年5月27日 优先权日2010年5月28日
发明者扬·梅德维德, 萨蒂什·拉格胡纳斯, 雷纳尔多·皮诺, 马尤雷思·巴克什 申请人:丛林网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1