专利名称::使用路径信息的组播下载的制作方法
技术领域:
:本发明涉及用于高效传递内容文件的方法和系统。
背景技术:
:与经由因特网下载的大多数其它类型的文件相比,诸如包括音频、视频、电影等的多媒体数字信息文件的多媒体数字信息文件一般具有大得多的大小。常常发生的是,由于网络拥塞、过多流量、网络优先级以及容量限制,所请求的多媒体文件的传递不能容易地在从客户端计算机请求时发生。之前的用于传递内容的技术利用了包括位于网络内的战略地理位置(strategicgeographiclocation)上的边缘服务器的内容传递网络(CDN)。内容传递网络能够在这样的边缘服务器中对内容进行高速緩沖存储(cache),所述边缘服务器由其邻近网络边缘的地理位置而得到其名称。甚至在网络拥塞以及中断的情况下,边缘服务器也将内容提供给客户端计算机。由AkamaiNetworks出片反的、名称为"InternetBottlenecks:theCaseforEdgeDeliveryServices"的白皮书、以及Barbir等人的、名称为"KnownCNRequest-RoutingMechanisms"的2003年4月3日的网络工作组因特网草案描述了用于使用边缘服务器的内容传递的不同技术。通过引用而被并入的2002年11月7日的美国专利公开2002016882、2003年4月3日的20030065762、2003年1月2日的20030002484、以及授予Leighton等人的美国专利6108703描述了内容传递网络。这些文档还描述了利用迁移(migratory)和重写工具来给用于从内容传递网络传递的内容加标签的方法,所述重写工具重写URL以指向最有可能容留所请求的内容的边缘服务器。在下载服务模型中,例如,客户端做出的内容请求不一定反映对于内容的立即需求。因此,即使当前在边缘服务器上不能获得一个内容,只要内容传递网络以后可将该内容传递到该边缘服务器,客户端就可以使其内容请求被满足。内容传递网络通过将该内容请求重定向到在期望的下载到客户端的时刻将包含该内容的边缘服务器来满足此请求。当今的内容传递网络通常基于网络资源和高速緩沖存储器容量来操作以传递内容。通常地,响应于来自客户端的内容请求,内容传递网络将向请求客户端提供作为所请求的内容的全局地址而工作的统一资源定位符(URL)。提供给请求客户端的URL通常将客户端重定向到具有该内容、或享有到直接或间接链接到内容服务器的另一上游(upstream)边缘服务器的链路的内容传递网络中的最近的边缘服务器。为了广播/组播(multicast)内容,在流传输(streaming)内容时,边缘服务器可高速緩冲存储一小段该内容。边缘服务器借以链接到内容服务器的路径一般采取常常被称为组播树的树状结构的形式,在所述组播树中,每个边缘服务器呈现为通过"分支(branch)"而链接到采用另一边缘服务器或内容服务器本身的形式的节点的"树叶(leaf)"。我们之前的专利申请"CACHESERVERNETWORKANDMETHODOFSCHEDULINGTHEDISTRIBUTIONOFCONTENTFILESWITHINTHESAME"(2004年3月12日提交的PCTUS04/07652)处理如何能够为延迟的下载服务建立组播树。根据网络配置,由于地理接近而被指定用于为请求客户端服务的边缘服务器可能缺少到内容服务器的直接连接。因此,将特定的边缘服务器添加到组播树将需要添加一个或多个额外的边缘服务器以提供为了下载内容的目的的连通性。在这样的情况下,链中的每个这样的边缘服务器将需要与内容服务器通信,以得到紧接在上游的边缘服务器的信息。此外,组播树一旦被创建,就通常不能进行动态改变以适应于负载平衡。另外,当今的内容传递网络所采用的组播树的静态特性不允许绕过节点或者自动故障恢复。因此,存在对于提供更大的灵活性和提高的性能、同时克服前述缺陷的内容传递网络的需求。
发明内容简要地,根据本原理的优选实施例,提供了一种用于将内容传递到请求客户端的方法。该方法通过将包括标识内容源的源数据和标识到这样的源的路径的路径数据的内容信息返回给内容请求客户端而开始。从请求客户端接收的客户端源信息的路径数据被进行解析以识别将借以传递所请求的内容的至少一个服务器。然后发生经由所识别的服务器的所请求的内容的下载。具有路径信息使得请求客户端能够对特定的边缘服务器做出请求,该边缘服务器继而能够注册该下载请求并从适当的上游位置访问所述内容,从而消除对于将下载请求直接转发到上游服务器的需要。图1描述了对于理解根据现有技术的内容传递有用的组播树的示例;图2描述了对于理解根据本原理的内容传递有用的组播树的示例;图3描述了对于理解根据本原理的内容传递有用的组播树的另一示例;以及图4描述了示出响应于来自客户端的对于内容的请求而添加节点的图3的组播树的修改。具体实施例方式如在下文中更详细地描述的,本发明提供了一种内容下载技术,其中请求客户端一般以统一资源定位符(URL)的形式来接收内容信息,所述统一资源定位符(URL)包含描述从为客户端服务的服务器(例如边缘或高速緩冲存储服务器)到包含内容的内容服务器的路径的路径信息。这样的路径信息提供若干优点,包括(l)将另外的服务器(节点)添加到传递路线(在下文中被称为组播树)的能力、(2)在服务器变为不工作时容易地维持组播树的能力、以及(3)动态地更新服务器之间的链接的能力。为了更好地理解本原理的内容下载方法,对根据现有技术的内容下载的描述将被证明是有帮助的。在该方面,参照描述与根据现有技术的内容下载相关联地构建的组播树的图1。在现有技术中,我们假设内容服务器从客户端接收内容请求,并基于内容传递网络拓朴和状态来创建用于所请求的内容的组播树。在此假设下,内容原始源、客户端的用户接口以及延迟下载调度程序(scheduler)都位于内容服务器上。虽然实际上它们都可以是不同的实体,但是使用此假设来陈述比较简单,因为内容的实质保持不变。为了讨论的目的,假设在内容传递网络内没有在先的内容传递请求存在,因此对于内容服务器CS上的内容Cl不存在组播树。现在假定客户端Al、A3和A2分别做出对于在7pm、8pm和5pm传递内容Cl的请求。对于来自客户端A1的第一请求,内容服务器建立组播树(即,传递路线),其包括将边缘服务器El与请求客户端Al链接的路径。此路径成为该组播树中的第一分支,其由以下关系表示CS—El—Al当接收到来自内容服务器的重定向的请求时,客户端Al将向边缘服务器El发送请求,边缘服务器El将检查其请求队列,并且如果对于相同内容Cl的请求尚未存在则将该新请求添加到所述队列。当对于用于在8pm传递的相同内容的请求从客户端A3到达时,内容服务器已经创建了用于由客户端Al请求的内容的组播树。为了为来自客户端A3的新请求服务,内容服务器将把最接近客户端A3的边缘服务器(比如说边缘服务器E3)作为节点添加到组播树。为了此讨论,假设在内容传递网络的结构中,边缘服务器E3只拥有到边缘服务器E2的连接。在这种情况下,内容服务器将需要把边缘服务器E3和E2两者添加到组播树。所产生的与客户端A3做出的请求相关联的路径^口下声斤示CS—El—E2—E3—A3将请求路由消息发送回A3,所述请求路由消息指示E3将充当边缘服务器以接收所请求的内容。当接收到该请求路由消息时,A3将发送请求到E3,E3^r查其请求队列,并将对于内容Cl的请求添加到其请求队列。由于E3不具有之前的对于内容C1的请求,因此其需要将对于所述内容的请求转发到上游服务器。通过轮询或者通过被从内容服务器推送(push),E3确定其上游边缘服务器为E2。E2从E3接收对于内容Cl的请求。然后,E2重复与E3相同的过程,使得将对于内容C1的请求转发给E1。由于E1已经具有对于内容C1的请求,因此对于由A3生成的请求,停止将新路径添加到组播树的规程。类似地,当客户端A2做出对于在5pm传递所述内容的请求时,内容传递网络将距此请求客户端最近的边缘服务器(比如说E2)添加到组播树。由于边缘服务器E2已经存在于之前创建的组播树内,因此内容传递网络不需要将更多的节点添加到该树。然而,由于此内容传递请求具有5pm的传递时间,其比与由客户端Al做出的内容请求相关联的8pm的传递时间早,因此E2需要将具有新的传递时间的请求发送到El。El检查其请求队列,并添加具有在5pm的更早的传递时间的新请求。用于由客户端A2请求的内容的组播才对内的3各径如下所示CS—El—E2—A2对于给定的内容,对于边缘服务器是否更接近另一边缘服务器的确定取决于链路成本和高速緩沖存储成本两者。最佳的组播树使链路成本和高速緩沖存储成本最小化。链路成本取决于服务器之间的地理距离。高速緩冲存储成本取决于对于所请求的内容的所有请求中的最大的服务时间差。换言之,内容被高速緩沖存储在给定的服务器处时间越长,对这样的内容进行高速緩冲存储的成本越大。使用此方法,每个内容请求返回作为用于内容传递的重定向的本地源的一个边缘服务器。虽然获得简单性,但是此方法引起若干缺点。如上所述,组播树可能需要添加一个或多个中间边缘服务器以将内容高效地传递到请求客户端。在这样的情况下,每个边缘服务器需要与内容服务器单独地通信,以得到关于其下一个上游边缘服务器的信息。这样的通信可能阻塞内容传递网络,产生通信(traffic)延迟。上述现有技术方法还引起以下缺点组播树一旦被构造就不能进行动态改变以适应改变的网络通信模式(pattem),因此不能实现负载平衡。另外,如果组播树中的节点出现故障(即,边缘服务器出现故障),则大多数内容传递网络缺乏绕过该服务器或自动从这种事件恢复的能力。当今的内容传递网络通常需要额外的协议来报告或发现服务器故障并维持组播树完整。方式即将指示从最接近已经做出内容请求的客户端的边缘服务器到内容服务器的内容传递所通过的路径的路径信息返回给该客户端。因此,当请求客户端得到路径信息时,客户端可以向最接近的边缘服务器做出所述请求,该边缘服务器继而解析该路径信息以识别其上游服务器(上游边缘服务器或内容服务器)。每个上游边缘服务器将解析所述请求以识别下一个上游服务器等等。为了最佳地理解本原理的内容传递技术,为了讨论的目的,假设每个请求客户端具有内容传递网络内的以下不同路径请求客户端A3具有以下路径CS—El—E2—E3—A3请求客户端A2具有以下路径CS—El—E2—A2<table><table>请求客户端Al具有以下路径CS—El—Al为了了解将路径信息返回给请求客户端如何使得能够创建组播树,考虑以下示例,其预先假定每个边缘服务器具有用于被调度(scheduled)的下载服务(以下称为SDS)的程序。响应于内容请求,内容服务器将例如包含内容源信息的URL的请求路由消息返回给请求客户端。因此,在此示例中,被返回给客户端Al的内容源信息采取具有以下格式的URL的形式http://El/SDS&path=CS/Cl。尽管使用URL构成用于提供路径信息的一种技术,但是可存在用于嵌入路径信息和经由边缘服务器执行被调度的下载的其它机制。响应于客户端A2的内容请求,所返回的指定所述路径的请求路由URL将具有以下格式http://E2/SDS&path=El&path=CS/Cl。注意此URL具有所添加的指定边缘服务器E2的路径信息。客户端A3在做出对于相同内容的请求时加入组播树,并且接收所返回的包含路径的URL,其具有以下格式http://E3/SDS&path=E2&path=E1&path=CS/C1。当客户端A3得到重定向的包含路径的URLhttp://E3/SDS&path=E2&path=El&path=CS/Cl时,在提供完整路径信息时提供的优点变得最为明显。客户端A3使用包含路径的URL来从边缘服务器E3寻找所请求的内容。当接收到该包含路径的URL时,边缘服务器E3使用其被调度的下载服务程序(SDS)来首先解析该包含路径的URL。其后,边缘服务器E3登记该对于内容的请求,接着将该请求作为下载请求排队。最后,边缘服务器E3使用包含路径的URL:http://E2/SDS&path=El&path=CS/Cl来访问上游边缘服务器E2。以类似的方式,边缘服务器E2的SDS程序将处理该请求,并且在必要时将该请求转发给边缘服务器El,直到该请求到达原始服务器或者已经具有可用于在指定的服务时间传递的所请求的内容的另一服务器为止。换言之,在边缘服务器处从客户端接收包含路径的URL消除了将下载请求转发到上游节点的需要。为了使每个边缘服务器支持根据本原理的下载,边缘服务器中的SDS程序需要执行(l)请求解析以了解在重定向的内容信息请求中的路径数据;(2)请求排队以登记所有进入的请求;(3)请求集合(aggregation)以将下载请求排队;以及(4)请求转发以将下载请求发送到上游服务器。根据本原理的提供与请求路由有关的路径信息获得了若干优点。首先,提供路径信息允许在一个内容请求中将多个服务器(节点)添加到组播树。根据内容传递网络的结构是平级的(flat)还是分级的(hierarchical),将边缘服务器添加到组播树可通过其它服务器发生,所述其它服务器可包括边缘服务器或代理服务器。例如,考虑图2中描述的组播树,其中客户端A4做出对于与客户端A1、A2和A3相同的内容的请求,并且边缘服务器E5位置最接近该客户端。为客户端A4服务的边缘服务器E5具有到边缘服务器E4的分级连接。在这样的情况下,边缘服务器E4和E5两者都有必要被添加到组播树。这样的添加变得容易实现,这是因为E5将接收来自由客户端A4返回的包含路径的URL的关于整个路径的路径信息。在分析包含路径的URL时,边缘服务器E5将发起到边缘服务器E4的连接以寻找所请求的内容。作为响应,边缘服务器E4将连接到边缘服务器E3等等。根据本原理的、提供与请求路由有关的路径信息也有助于组播树的维持。在典型的内容传递网络中,存在上游边缘服务器中的任一个可能缺乏为内容请求服务的能力的可能性。当未能从上游边缘服务器接收到响应时,请求边缘服务器可以绕过该故障节点,并解析URL以便向更高的上游边缘服务器做出请求。即使在其它情况中上游边缘服务器看起来是"健康的",这样的服务器也可能由于该服务器和内容服务器之间的信息不一致而丢失内容请求信息。为了维持关于组播树的信息以用于边缘服务器和内容服务器之间的内容一致性,通常需要存在一个或额外的协议,这被证明是昂贵的。利用请求路由的内容信息中的路径信息,组播树的维持可以以分布式方式自动发生。具体地,绕过故障节点或恢复故障节点可在不需要联系内容服务器的情况下发生。另外,根据本原理的、提供与请求路由有关的路径信息允许动态更新。通过在重定向的URL中为每个内容请求提供完整路径信息,中间的边缘服务器可对于所述内容动态地更新其上游服务器。例如,々支设现有的组播树,其包括如图3所示被布置为E3—E2—El的边缘服务器(节点)E1、E2和E3。利用图示的配置,对于所请求的内容,边缘服务器E3将边缘服务器E2作为其上游服务器。对于针对相同内容但具有不同服务时间的新请求,存在新的高效路径,如图4所示的E4—E3—E1—CS所指示的那样。基于这一新的可能的路径,边缘服务器E3对于E1处的内容动态地更新其上游边缘服务器,这在所返回的内容信息请求中不存在路径信息的情况下将是不可能的。上文描述了用于通过返回内容信息请求而高效地传递内容文件的技术,所述内容信息请求包含描述从为客户端服务的边缘服务器到内容服务器的路径的路径信息。权利要求1.一种用于通过包含边缘服务器的内容传递网络而将内容从内容服务器传递到请求客户端的方法,包括以下步骤由所述内容服务器从所述请求客户端接收内容请求;由所述内容服务器创建边缘服务器的路径,该路径是从所述请求客户端到所请求的内容的源;由所述内容服务器将包含所述路径的请求路由消息返回到所述请求客户端,以便识别至少一个边缘服务器,其中客户端可经由所述至少一个边缘服务器而请求用于传递的内容。2.根据权利要求1所述的方法,还包括以下步骤由边缘服务器从客户端接收所述内容传递请求;由所述边缘服务器解析所述内容请求内的路径数据,以便识别所述至少一个服务器,其中将经由所述至少一个服务器传递所请求的内容;以及由所述边缘服务器将内容请求转发到所识别的服务器;从所识别的服务器传递所请求的内容。3.根据权利要求1所述的方法,其中,返回路由消息的步骤包括返回包含路径的统一资源定位符(URL)的步骤。4.根据权利要求1所述的方法,其中,创建边缘服务器的路径的步骤还包括以下步骤如果该路径不是内容传递网络中用于所请求的内容的第一路径,则将该路径添加到组播树。5.根据权利要求4所述的方法,还包括更新现有的组播树以优化内容传递的步骤。6.根据权利要求5所述的方法,还包括响应于改变的情况而动态地更新现有的组播树的步骤。7.根据权利要求6所述的方法,还包括响应于所述树内的服务器的故障而更新现有的组播树的步骤。8.根据权利要求6所述的方法,还包括响应于内容可获得性的改变而动态地更新现有的组播树的步骤。9.根据权利要求3所述的方法,其中所述解析步骤包括根据所述内容信息中的路径信息而将至少一个服务器添加到所述组播树的步骤。10.—种用于将内容传递到请求客户端的装置,包括内容服务器部件,用于(l)从所述请求客户端接收内容请求,(2)创建从所述请求客户端到所请求的内容的源的边缘服务器的路径,(3)由所述内容服务器将包含所述路径的请求路由消息返回到所述请求客户端,以及(4)由所述请求客户端将内容请求发送到所述路径上的至少第一边缘服务器;并且其中所述至少一个边缘服务器部件接收所述内容请求并解析所述内容请求内的路径数据,以便识别至少一个服务器,其中将经由所述至少一个服务器传递所请求的内容;并且由所述边缘服务器将内容请求转发给所识别的服务器;因此所述所识别的服务器能够传递所请求的内容。11.根据权利要求IO所述的装置,其中,所述请求路由消息包括包含路径的统一资源定位符。12.—种用于将内容传递到请求客户端的方法,包括以下步骤响应于来自客户端的对于内容的请求,将包括标识该内容的源的源数据和标识到这样的内容源的路径的路径数据的内容信息返回到请求客户端;从请求客户端接收该内容源信息,以发起内容传递;解析所接收的客户端源信息内的路径数据以识别至少一个服务器,其中将经由所述至少一个服务器传递所请求的内容;以及经由所识别的服务器下载所请求的内容。全文摘要当接收到内容请求时,通过由边缘服务器组成的内容分发网络将内容下载到请求客户端(A1、A2和A3),内容服务器以请求路由消息来响应,所述请求路由消息包括标识内容的源数据和标识通过所述网络到这种内容的源的路径的路径数据。在请求路由消息中具有所述路径信息使得请求客户端能够向特定的边缘服务器做出请求,所述边缘服务器继而可登记该下载请求并且从适当的位置访问所述内容,从而消除了内容服务器和该路径上的边缘服务器之间的频繁通信。文档编号H04L29/06GK101208926SQ200580050247公开日2008年6月25日申请日期2005年6月22日优先权日2005年6月22日发明者张俊彪,斯尼格达·弗马,军李申请人:汤姆森特许公司