电信网中的分级高速缓存的制作方法

文档序号:7743099阅读:312来源:国知局
专利名称:电信网中的分级高速缓存的制作方法
技术领域
本发明涉及一种根据权利要求1前序部分的方法。此外,还描述了用于管理分级高速缓存的网络节点、系统和程序。
背景技术
因特网业务量快速地添加,尽管相当大比例的业务量是冗余的。这种情况之所以会发生,是因为多个用户要求大量相同的数据。这意味着相当大比率的网络基础结构传送相同的要求,并且随后传送作为应答的相同的内容。消除相当大数目的电信负荷为企业和服务供应商客户提供了一个巨大的节约可能。
用于减少冗余数据传送的可能解决方法的其中之一是通过应用一种高速缓存机制。高速缓存机制通过利用用于访问的本地特征(locality feature)来减少网络业务量。在这个模型中,如果客户机请求的数据不是在本地给出的,则将数据从服务器节点复制到位置最接近客户机的节点,并且在那里进行高速缓存。通过利用高速缓存的数据,在最靠近客户机的节点上处理客户的请求。近来被访问的数据被暂时保留在高速缓存存储器中,以便可以在本地处理相同数据的重复访问。因而,高速缓存是一种在靠近请求者的位置保持被频繁访问的信息的方法。
高速缓存机制的优点在于这种方法避免了不必要的网络访问,导致网络传输和访问时间的减少。对于因特网(其是广域网的一个举例)来说,这意味着带宽减小,而对于终端用户来说,由于访问时间较短,则意味着生产率的提高。
在因特网情况下,一个所谓的Web高速缓存存储器可以在物理上或者逻辑上靠近该用户的存储装置上存储网络内容。这导致在因特网中对网络内容的快速查找。
为了限制由因特网使用不受控制的增长所引起带宽需要,供应商已经开发了扩展局部超高速缓存至网络级的应用程序。当前的主要类型的网络级高速缓存存储器产品是代理服务器。这些是在通用的硬件和操作系统上运行的软件应用程序。一个代理服务器被放置在物理地位于一个诸如网络浏览器的客户应用程序和一个所请求的网络内容在其上可用的网络服务器之间的硬件上。代理服务器充当一个看门人(gatekeeper),接收所有发往网络服务器的分组,并且检查每个分组,以确定是否可以满足该请求。如果不能满足该请求,将该请求转送至网络服务器。否则,所请求的网络内容被直接从代理服务器的本地存储器传输至客户应用程序。代理服务器还可以被用于过滤请求,例如,防止雇员访问一组特定的网点。
令人遗憾地,代理服务器不是优选地用于高速缓存,并且在沉重的网络负荷下将失效。另外,因为代理服务器处于所有用户业务量的路径中,因而出现了两个问题。通信被减慢,以允许代理服务器检查每个分组,并且代理软件或者硬件的故障致使所有用户失去网络访问。此外,代理服务器需要用于每个用户浏览器的配置。需要昂贵的硬件以补偿低的软件性能和代理服务器可扩展性的缺乏。
一种解决所提到的问题的方法于1998年9月16日在Cisco技术资料Version1.7的“Web Cache Control Protocol(网络高速缓存存储器控制协议)”中进行了描述。这个文件包括对一种高速缓存引擎的描述,该引擎被设计成一个松耦合的多节点网络系统,优选地提供健壮的(robust)共享网络高速缓存。高速缓存引擎解决办法包括网络高速缓存通信协议(Web Cache Communication Protocol)和一或多个存储数据的高速缓存引擎。网络高速缓存通信协议定义了在高速缓存引擎和路由器之间的通信。利用网络高速缓存通信协议,路由器仅仅将终端用户的网络请求发往该高速缓存引擎,而不是预定服务器。路由器也确定高速缓存引擎的可用性,并且当新的高速缓存引擎被添加到设备时将请求转发至新的高速缓存引擎。一旦一个用户初次访问网络内容,这个请求被发送至解译该请求的路由器。根据网络高速缓存通信协议,路由器截取传输控制协议TCP端口80的网络业务量,并且将其路由至高速缓存引擎。高速缓存引擎检查其是否有所请求的网络内容。如果没有,则从相应的网络服务器请求网络内容。当页面正被传输到该用户时,高速缓存系统在高速缓存引擎的局部存储器上保存页面和所有相关的图形。该内容现在被高速缓存,用于随后对相同网络内容的请求,并且不必在因特网上发送该请求。代替这种情况,网络高速缓存系统从局部存储器传输网络内容。高速缓存引擎对用户和网络操作来说是透明的。
通常,一旦相同内容不止一次被访问,高速缓存方法保证网络资源的有效使用,但是另一方面,这种解决方案将不一致性引入到该网络。根据系统的设计,确保最新的数据的重任以各种方法来解决。
提供高速缓存的系统的相应节点可以以建立分级结构这样的方式来安排。在分级结构内,执行一种分级高速缓存。
参照

图1来描述分级高速缓存。图1描述了用于分级高速缓存的现有技术算法的情况。出现在图1中的分级结构包括路由器,R1至R1O。高速缓存引擎CE1至CE5被连接到一些路由器。高速缓存引擎具有上述用于存储高速缓存信息的功能。路由器被用于路由一个从主机至服务器的对信息的请求消息,并且将所请求信息从服务器路由至主机。路由器R1实现服务器的功能,其被连接到因特网。主机是具有由客户使用的客户应用程序的设备,并且位于分级结构的底部,它们被连接到路由器。
采用分级高速缓存的现有机制所存在的问题是相同高速缓存信息被存储在分级结构中的几个位置。参照图1,万一路由器R1或者R2请求一个网络内容,用于这个网络内容的高速缓存存储器将被放置在作为最近节点的高速缓存引擎CE1中。然而,如果路由器R3或者路由器R4之后请求相同网络内容,该网络内容将被复制到高速缓存引擎CE2中,意思是说高速缓存引擎CE1和CE2两者将包含相同的数据。当路由器R3请求一些网络内容,随后用于这个内容的该高速缓存存储器将被放入高速缓存引擎CE2中时,则出现所提到的问题的另一个举例。然而,如果路由器R1或者路由器R2之后请求相同网络内容,网络内容将被复制到高速缓存引擎CE1中,意思是说高速缓存引擎CE1和CE2两者将包含相同的数据。这意味着在两个举例中,相同高速缓存存储器信息存在于两个不同的高速缓存引擎中。这个概念提供了一种用于高速缓存存储器信息管理的僵硬(rigid)的解决办法。
此外,由于可能有相同数据的几个高速缓存拷贝,有必要提供一种用于更新高速缓存信息的机制。特别是必须在所有包含相同高速缓存内容的位置更新相同高速缓存信息。一种可能性是网络内容的洪泛(blooding)。为了执行这一洪泛,或者网络内容更新消息,或者每个高速缓存内容需要向因特网中的服务器请求更新。这是相当大规模的,因为每个在分级结构中较高位置的高速缓存引擎将刷新较低层中的高速缓存内容。另一个解决办法是在某一个期限期满之后删除该高速缓存内容。然而,对于很少变化的数据这是非常低效的,因为数据不能长时间高速缓存,因而不能从高速缓存获得很多的收益。或者由管理员在系统配置期间决定应用的高速缓存机制(这意味着考虑经验或者服务利用率预期数值),或者使用常规定义的高速缓存机制。意味着高速缓存算法的决定是非常固定地。

发明内容
本发明的目的在于提供一种解决高速缓存内容动态管理的方法。特别是,本发明的目的在于提供一种解决在高速缓存结构中存储器资源的有效利用的方法。
根据本发明,执行在权利要求1中描述的方法。此外,本发明被包含在如权利要求24、26和28所描写的网络节点、系统和软件程序中。有利的实施例在从属权利要求中被描述。
提出的方法有下列优势,即为了简化更新或者刷新程序以及在每一部分分级结构中可能只存储一个高速缓存拷贝而执行高速缓存信息的动态处理。取决于信息的利用频率,高速缓存信息可以在分级结构内上下移动。这基本上意味着高速缓存信息被放置在必要高的级别上,但是如果该内容主要由级别较低的主机经常(regularly)使用,则增强所述机制,使其具有同时向分级结构下方移动高速缓存信息的能力。为了这个目的,建立分级结构内的一个位置的高速缓存信息的访问统计,并且通过接收对高速缓存信息的请求,检查至少一个其他的位置的访问统计,并且根据访问统计来确定分级结构内高速缓存信息的位置。分级结构的一个举例是采用树结构的形式,并且在这个举例中,分级结构的一部分被称作子树。在网络拓扑内,一个访问网络,例如连接到核心网络的无线网络或者局域网LAN代表一个子树。最小的子树是各个网络节点。采用这个定义,可以对一个网络节点或者一个具有多个网络节点的子树执行访问统计。在后一种情况中,在子树顶部的节点能够存储子树的访问统计。术语“位置”被用作对分级结构内网络节点的一般说明。意思是位置可以是具有一或多个网络节点的子树,其中网络节点可以是路由器、主机、服务器或者高速缓存引擎。
在连接到路由器的高速缓存引擎中或者路由器中可以评估访问统计量。路由器负责在分级结构内路由信息。同样在一位于分级结构顶部的服务器中,可以执行访问统计量的评估。
在一个该方法的有利实施例中,高速缓存信息或者保持在当前的高速缓存引擎中或者通过向上或者向下移动来将信息的位置变化到分级结构内的其他高速缓存引擎。当确定多个高速缓存引擎对相同信息的定期访问统计时,高速缓存信息也可以被复制。
提出的解决办法的动态特性也预见了当访问统计表明若干高速缓存引擎对相同信息的频繁访问时,将高速缓存内容复制到分级结构的多个部分。
现提出,一旦位置的确定导致位置改变,高速缓存引擎存储指向该信息位置的指针。位置可以是一个节点或者一个子树。指针可以指向下一节点,例如在树内,其指向右边或者左边的节点。在这种情况下,为了检索具有该内容的高速缓存引擎的地址,检索信息根据指针将被向树的下方发送。同样考虑存储示出树内方向指针——例如右或左——以及附加的指向具有该内容的节点的指针。在这种情况下,一旦内容被移动需要沿着树将指针更新为指向与该内容将要移到的位置相对应的服务器。
现提出,访问统计考虑对于一个内容的每时间单位访问的数目以及主机数目。通过附加参数——例如节点或者子树的距离或者优先级——可以增强对访问统计的评估。为了节省网络资源,可以确定一个在距离方面适合访问节点的位置。万一一个子树例如是一个具有高网络时延的无线接入网络,可以决定这个子树接收较高优先级并且通过位置的确定,这个优先级被考虑,以便减少无论怎样都较(anyhow)高的该延迟。
在一分级结构内,靠近用户的高速缓存引擎以及在服务器和主机之间位于分级结构相对更高处的高速缓存引擎可以被确定。在一有利实施例中,一旦一信息主要被一个请求主机使用,随后这个信息的高速缓存尽可能靠近该主机地被执行。为了使这个高速缓存引擎靠近主机,添加一指示到从主机接收的请求消息,指示请求高速缓存该信息。这个具有指示的请求消息被转发到下一个高速缓存引擎。
在一个优选实施例中,一旦不同的主机请求该信息,高速缓存信息被定位于分级结构中尽可能高的位置。为了执行此功能,位于分级结构中高的位置的高速缓存引擎驳回了由位于更低位置的高速缓存引擎置入请求消息中的希望由其高速缓存所述内容的指示。
高速缓存信息的访问优选地包括下列步骤。首先,主机向服务器发送一个对该信息的请求消息。下一个经过的高速缓存引擎检测其是否具有所请求信息,并且如果具有可利用的该信息则返回此信息,并且检查连接到这个高速缓存引擎的其他主机对该信息的使用,以及考虑该结果做出有关该信息位置的决定。一旦下一个经过的高速缓存引擎具有一指向该信息位置的指针,请求消息被发送到该位置或者一旦下一个经过的高速缓存引擎不具有该信息,该请求消息被发送到下一个高速缓存引擎。
现提出,指向所述信息位置的指针伴有像高速缓存时间、高速缓存刷新速率以及到位于该分级结构更低位置的路由器中的高速缓存引擎的距离指示之类的附加信息。
在一有利的实施例中,一旦高速缓存引擎具有一个指向该信息位置的指针,到具有该高速缓存信息的高速缓存引擎的距离就与到服务器的距离相比较,并且一旦到服务器的距离更短,则该信息从服务器处获得。这种解决方案的一个优点是来自原服务器的信息总是最新的,而来自高速缓存引擎的高速缓存内容可能是过时的。
优选地,考虑一个所谓的高速缓存刷新可能性(likelihood)信息。这个信息指示高速缓存内容在某一周期内变化的可能。例如,它可以被用于决定如下所述的高速缓存树结构是否有效。这个信息应该可以从内容或者内容供应商中获得,并且通过内容的建立可以被添加。这样一个指示符例如可以被添加到HTTP协议。
现提出,为了更新该高速缓存信息,执行一刷新机制。这个机制可以采用由服务器启动的基于推式的概念或者采用由至少一个高速缓存引擎启动的基于拉式的概念来执行。采用第一可能性,服务器通过考虑指针来沿着树结构发送内容的更新版本。这避免了对于每个更新洪泛整个树的必要。
在一优选实施例中,通过执行刷新过程来考虑刷新可能性。这个参数可用于确定在高速缓存刷新之间的时间。一旦内容例如平均每月一次被更新,则不需要每秒进行刷新。通常这个信息是不可用的,因此所有内容将被一样对待。
同样建议采用一个到高速缓存引擎的附加消息来进行高速缓存信息的清除,或者因为该信息是过时的而自动进行清除,或者通过执行下一个刷新机制来进行清除。
在一优选实施例中,分级结构的建立采用多点传送(multicast)和相应的多点传送传输树状拓扑来完成。这是众所周知的机制,为了这个目的能够被使用。
作为一个选择,采用路由协议来完成分级结构的建立。采用这个协议,有关在服务器和客户之间路由的信息可以被获得。路由协议的一个举例是距离矢量路由协议,包含一个具有到网络内所有节点的最短路径的列表。
网络节点包含一个用于收集有关一部分分级结构内高速缓存信息的使用的数据的收集实体,一个用于从所收集数据中确定对于该高速缓存信息的访问统计统计实体,以及一个为了确定分级结构内高速缓存信息的位置而用于分析访问统计的分析实体。
优选地,在高速缓存引擎中管理访问统计。服务器或者路由器同样可以执行这个任务。
具有上述特征的节点建立一个系统。优选地,系统的分级结构具有一种树结构,在树结构的顶部有至少一个服务器,至少有一个主机作为树结构的叶结点,并且在中间有至少一个路由器和至少一个高速缓存引擎,其存储高速缓存信息并且被连接到相应的路由器。
优选地,借助于多点传送路由协议来建立树结构。这些是众所周知的协议,为了所提及的目的而被定义。这意味着由于高速缓存树是基于多点传送传输树结构,对于所述高速缓存树不需要附加计算和传输。
当计算机程序在数字处理单元上被执行时,可装载入数字处理单元的内部存储器中的计算机程序,包括适合于控制本发明的方法的软件代码部分。特别是,根据本发明的程序单元的各部分可以由软件功能来体现,通过执行一请求消息来对其进行调用,并且在朝着服务器的方向经过的节点中执行。该单元包括用于信息接收的程序代码,用于信息位置调查的程序代码以及用于根据访问统计做出位置决定的程序代码。一个相应的程序代码单元同样评估访问统计。
在下面附图中示出的优选实施例的详细说明中,本发明上述及其他目的、特征和优点将变得更加明显。
附图简述图1示出用于分级高速缓存网络体系结构的技术现状;图2_1和2_2示出根据发明用于高速缓存信息访问的流程图;图3示出分级高速缓存结构;图4示出本发明的实施例。
优选实施例的详细说明一个被预见用于执行高速缓存机制的通信网络具有路由器,其以这样的方式被连接,即路由器和它们的连接分级结构中相关联,例如以树结构的形式,在树结构顶部具有至少一个服务器,并且具有至少一个主机作为连接树结构的叶结点。此外,所述网络具有高速缓存引擎,其存储高速缓存信息并且被连接到相应的路由器。在下面的描述中,这个分级结构将被称作高速缓存树结构。分级结构的一部分可以由一个路由器和至少一个相应的主机组成或者由一个路由器及连接到这个路由器的更多的路由器组成,所述部分被称作子树。
例如在网络配置期间可以建立该树结构,或者由网络管理员或者由因特网服务供应商来完成。借助于多点传送路由协议可以完成树结构的建立,其用于建立多点传送分布式树。多点传送分布式树的举例是生成树、共享树、基于源树或者基于核心树结构。这些树结构的详细说明可以在Hersent,O.,Gurle,D.,Petit,D.(Addison-Wesley,Harlow,2000)的“IP电话基于分组多媒体通信系统”中找到。或者在高速缓存引擎之间或者在与这些高速缓存引擎相关联的路由器之间可以建立该树结构。
借助于点到点的协议可以执行应用高速缓存所需的在树结构内的两个节点之间的通信。这样的协议的必要条件是可能在通信节点之间发送一个信令消息,通知这些节点有关的后续操作。例如,为了移动一高速缓存内容,信令消息被发送,并且之后高速缓存内容被移动。其他归于高速缓存机制的操作是作为高速缓存刷新信息的结果的高速缓存内容的删除。例如通过不同的应用协议像HTTP来满足这种点到点的协议的必要条件,其可以通过传输控制协议TCP或者通过在高速缓存引擎之间专用协议,用相应的高速缓存引擎间通信来增强。最后提到的协议有下列好处即,例如与HTTP相比较,其可以更容易更新。
在下文中,属于高速缓存机制的操作概述,其中执行本发明所需的内容请求处理、内容返回处理、内容刷新处理、内容的移动、内容复制以及访问统计一起被给出。
特别是在下面的段落中,在具有分级结构的通信网络中,用于访问高速缓存信息的请求处理以及内容返回处理参照图2来描述。
在步骤10,主机发送对信息的请求消息到服务器。请求在高速缓存树结构被向上发送,直到到达最接近请求主机的高速缓存引擎。最接近的引擎检测其是否具有可用的请求信息20。如果具有该信息,最接近请求主机的高速缓存引擎发送回该信息,否则其添加一个指示到该请求消息,即这个节点想要存储该请求信息30。这个节点也存储其想要高速缓存该内容的通知。这个通知可以或者是一个标志或者是一个地址。具有添加的指示的请求消息40朝着服务器50的方向被发送到下一个高速缓存引擎,其检查请求信息的可用性60。这个节点或者具有请求信息或者具有指向请求信息位置的指针140或者没有有关所需内容的信息。一旦这个节点具有可用的请求信息,则检查连接到这个高速缓存引擎的其他主机对该信息的使用70。例如,一旦访问统计所表示的使用率低,请求信息被移到最接近请求主机的高速缓存引擎。否则,当高速缓存内容的使用率高时,当前的高速缓存引擎可以决定保持该内容,在这种情况下它返回所需的内容,另外发送保留该高速缓存信息的通知。当前引擎还可以决定在高速缓存引擎中间复制该内容或者一旦其他子树也十分频繁地访问该内容,则将它向树结构上方移动。
此外,在树结构中较高位置的高速缓存引擎可以决定驳回较低的高速缓存引擎的指示,该指示表明它想要高速缓存该内容。驳回的理由可以是较高的高速缓存引擎当前具有该高速缓存内容以及不想将其发送走,例如因为访问统计示出高速缓存内容由多个子树使用。这个高速缓存引擎仍然是用于刷新来自原服务器高速缓存内容的负责节点。如果该指示被驳回,已经改写该指示的相应高速缓存引擎必须通知提出该指示的高速缓存引擎有关修改。
一旦当前的高速缓存引擎没有可用的请求信息60,请求消息向高速缓存树结构的较高处转送40,直到到达服务器50。服务器返回请求信息并且将其朝着最后提出想要具备该内容的指示的高速缓存引擎的方向发送100。更进一步地,这个节点将被称作目标高速缓存引擎。该目标高速缓存引擎高速缓存该信息130。在下传途中经过的高速缓存引擎110存储一个指示,例如一个指向网络内容将被找到的子树的指针120。此外,指向子树的指针和指向节点的指针将被认为是等价的。
如果请求相同的内容,一旦指针附有距离信息,这个指针被用于找出树结构内的内容位置140。如果高速缓存引擎接收请求并且其具有指向该内容的指针和距离信息,它可以比较到服务器和到子树内高速缓存引擎的距离,所述子树内高速缓存引擎具有可用的请求信息150。如果到服务器的距离少于到子树的距离160,该内容直接从服务器取出170。服务器可以检查信息使用的频率。在考虑到访问统计之后,服务器决定内容的位置190。当使用率低时,该内容可以沿着树结构往下走。服务器还可以决定保留该信息并且驳回任一指示。当信息经常被更新时这可能是一个优点。服务器还可以决定复制该信息到一或多个子树。
如果没有距离信息,请求消息根据指针被转送200。
如果请求信息位于比服务器更接近当前的高速缓存引擎的一个节点或者一个子树,这个信息从子树处取出180。当该信息在子树内经常被使用时,那么可能采取一个决定190,以保留该信息并且仅仅将其复制到请求高速缓存引擎。由于在子树内请求信息的低使用率,优选的将信息向分级结构中更高的位置移动。在这种情况下,由于内容现在存储在树中更高的位置,所述节点或者子树得到一个内容可以被删除的指示。
在下文中,参照图3给出具有高速缓存树结构的本发明的实施例。
图3给出一个高速缓存树结构的举例,具有由S表示的路由器,用C表示的主机或者客户机以及具有编号1到4的四个高速缓存引擎。路由器S1是信息的源,例如网络服务器。在为客户机C1到C7提供网络内容的网络服务器和访问该内容的所述客户机之间建立高速缓存树结构。路由器S5、S7、S14以及S16包含高速缓存内容。通过负责存储和管理高速缓存信息的高速缓存引擎可以增强路由器。
高速缓存树结构的建立可以用不同的方法来完成。例如,由于多点传送是一种用于向多个接收机提供内容的有效传输机制,高速缓存树结构可以基于相应的多点传送传输树结构拓扑,其借助于类似如上所述的多点传送路由协议而建立。这意味着,由于高速缓存树是基于最优于从一个或多个源向多个目的地传输的多点传送传输协议,则所述高速缓存树不需要附加的计算和传输。。多点传送传输结构的举例基于众所周知的算法,例如多点传送生成树。
如果最佳化多点传送传输树结构没有建立,路由协议可能用来得到对有关服务器和客户机之间路由的信息的访问。距离矢量路由协议包含一个具有到所有目的地最短路径的列表,例如在一网络内。距离矢量路由协议的详细说明可以在Tanenbaum,A.S.,Computer Networks,Third Edition,Prentice-Hall,New Jersey,1996中找到。最短路径基于所使用的量度,例如延迟。重要的量度可以由服务来指定。服务例如是一个网页,而服务供应商可以是例如相应网页的供应者或者所有人。在这种情况下,他的职责在指定例如由于快速访问或者带宽的延迟,因为高速访问是重要的并且将被认为是度量(原文疑有误)。
在图3中,路由器S19可以具有如下信息朝着服务器S1的路径由路由器S18、S17、S16、S15组成。根据这个信息,路由器S19假定所有路由器都能够高速缓存来自服务器S1的内容。由于路由器S19将朝着服务器的方向向上传递所有内容请求,任一所述路由器是否不能高速缓存该内容并不重要。路由器S19也不在乎是否该内容实际上由服务器本身或者任一其他在通向服务器S1的路径上的路由器来提供。
在下文中,参照图3描述信息的流程。
客户机C7发送一请求消息,例如内容请求。请求消息经由路由器S19、S18、S17被路由并且被S16发送到高速缓存引擎4。高速缓存引擎4检查是否具有该高速缓存内容。如果有,所缓存的内容被返回到C7。在返回该内容之前,高速缓存引擎有可能检查该内容是否还是最新的。如果高速缓存引擎4没有请求内容,该请求经由路由器S16、S15转送到服务器S1。服务器返回该内容并且路由器S16将其转送到其将被高速缓存的高速缓存引擎4。如果客户机C7是第一个访问服务器的客户机,内容被高速缓存在接近客户机的高速缓存引擎中。如果S19有一高速缓存引擎,内容将已经被高速缓存在那里面。一个指示符,如一个指向高速缓存内容的指针可能被保存在S16中,因为它有朝着不同的客户机方向的多个路径。基本上,有两个选择用于实现内容的获取。
根据图3的第一种方案,路由器S16存储一个指针,其选择性地附有附加信息(例如高速缓存时间或者高速缓存刷新速率)以及到路由器S19中的高速缓存引擎的距离指示。距离信息可以从相应的路由协议得到(retrieve),其提供更加精确和最新的信息。每当客户机C4到C7其中一个访问该内容时,到原服务器S1的距离和到路由器S19中的高速缓存引擎的距离就被比较。如果从路由器S16到原服务器S1的距离短于到路由器S19的距离,那么信息从原服务器处取出。一个额外的好处是来自原服务器的信息总是最新的,而来自高速缓存引擎的高速缓存内容可能是过时的。一旦该内容从原服务器处取出,其被高速缓存到路由器S16中。路由器S19中的高速缓存内容可以根据被发送到路由器S19的一条附加消息而被直接删除,或者它可以被保留到由于过时而需要被自动地刷新或者删除的时候。将被应用的机制取决于所使用的高速缓存更新程序。如果高速缓存信息由高速缓存引擎管理,将应用相同的机制。
在另一个用于获取内容的方案中,当来自高速缓存树结构的左侧支路的客户机——例如客户机C1——访问该内容时,高速缓存内容总是因为简单的理由从路由器S19获取。这意味着高速缓存内容可以从S19移动到S16。
采用内容高速缓存,系统比须确保内容是最新的。由于这个缘故,使用一个内容刷新机制。通过这个机制,至少有两个处理数据更新的可能。当采用第一可能性,服务器通过考虑指针来沿着树结构发送内容的一个更新版本。由于服务器初始化这个机制,其被称作基于推式的机制。与此相反,在所谓的基于拉式的机制中,高速缓存引擎或者间接地基于客户机请求或者通过在高速缓存引擎中启动的超时(操作)来启动高速缓存刷新过程。更新请求像来自客户机的任一其他的内容请求一样被处理。
对于每个高速缓存内容,访问统计——例如关于一内容的每时间单位的访问数目和主机数目——可被用于收集访问特征。在其最简单的形式中,这是每一子树的计数器和每一访问该内容的更高高速缓存引擎的计数器。这个统计允许在层次树内的内容位置的确定。万一例如仅仅来自特定子树的客户机访问该内容,可以决定向下移动该高速缓存内容,但为了更好的服务于多个来自不同的子树的访问,可以决定向上移动该内容。
在下文中,高速缓存内容的移动参照图4来描述。与图3相似,这个结构包含路由器S101到S123和客户机C11到C17。假定每个路由器包括高速缓存引擎功能。
参照图4,假定内容被高速缓存在路由器S110。如果大多数的访问来源于路由器S106并且经过路由器S103,产生一个决定以将高速缓存内容移动到S103。在这种情况下,这个内容为两个子树服务。当高速缓存内容从路由器S110处取出时,到路由器S103的高速缓存内容移动的执行可以被完成。在这种情况下,路由器S110删除该内容,并且向路由器S103指示其将高速缓存该内容。
类似地,如果确定所有请求都来自路由器S106,路由器S103可以决定将高速缓存内容或者发送到路由器S104或者发送到路由器S106。将内容移动到路由器S104意味着来自路由器S110的客户机可以仍然相对快速地访问该内容,而将内容移动到路由器S106最佳化地用于来自路由器S106的客户机的访问。是否将内容移动到路由器S104或者S106取决于访问统计。向树结构下方移动高速缓存内容或者通过向其移动到下一个高速缓存引擎或者移动到作为子树叶结点的高速缓存引擎(即,没有具有高速缓存引擎的另外的子树)来完成。在两种情况中,一个专用于点至点的消息被发给相应的高速缓存引擎,即当随后接收将到达的内容时其必须存储随后到达的内容。
内容的移动导致在相应节点中存储指向所确定的位置的指针。在一优选实施例中,有两种用于管理该指针的解决办法。如果内容被保存在S104,则在第一个解决办法中,指向S103的指针在S101被存储,以示出树结构中的方向。它意味着为了确定S104位置,检索消息将根据经过节点中的指针,沿树结构被向下发送。在提出的第二种解决办法中,除示出树结构内方向的指针之外,指向高速缓存引擎的指针也被存储。参照图4,如果复制内容,服务器S101存储指向S103的指针和指向S104和S107的指针。指针的管理同样包括有必要更新相应节点中的指针以便移动内容。
为了执行内容移动,将找到在其中存储所述内容的节点的相应地址。为了这个目的,具有该内容的高速缓存引擎向树结构下方发送消息,指示它想要获取下一个高速缓存引擎或者该高速缓存引擎的叶节点的地址。下一个高速缓存引擎是第一个这样的引擎其接收消息并且作为结果返回它的地址并且停止消息传送,或者将该消息转送到下一个高速缓存引擎。
例如,通过连接有高速缓存引擎子树的每个高速缓存引擎,用于具有高速缓存引擎的树结构相应叶结点的请求消息被转送,直到到达没有任一子树的高速缓存引擎。该高速缓存引擎终止消息并且返回它的地址。如果子树中有多个叶结点,则通过在请求消息中包括客户机地址(例如IP地址)来确定具有高速缓存引擎的正确的叶结点。这个地址随后由一具有多个子树的高速缓存引擎使用,以确定正确的子树,以便到达正确的高速缓存引擎叶结点。
另一个用于找到拓扑结构中的高速缓存引擎的位置的可能可以是使用来自网络的管理或者配置中的可用信息。
除高速缓存内容的移动之外,因为多个分支经常访问该内容,也可以决定复制高速缓存内容。
图4被用于描述具有复制内容的本发明的实施例。
考虑内容的复制可能性,可以区别不同的方案。
第一种方案,所有的子树包含高速缓存内容。这需要存储有关于此的指示以便确定树结构中高速缓存内容的位置。这是执行基于推式的高速缓存刷新机制所必须的。这也是服务于来自树结构中更高节点的请求所需要的。本发明确保在所有子树中间的复制得到授权和控制,例如由于指针的管理。
在另一个可能复制内容的方案中,有可能仅仅一些子树的包含高速缓存内容。在这种情况下,具有高速缓存内容的每一子树的一个指针被保存,以便如果要进行高速缓存刷新或者要读取内容时可以确定内容。为了控制由于大量的访问引起的高速缓存引擎的超负荷,可以使用负荷均衡机制。采用这个机制,用于访问的请求消息在所有具有请求内容的高速缓存引擎中间被分配。
可能达到最好的具有请求内容高速缓存引擎的选择可以通过考虑例如链接特征(诸如距离、延迟或者带宽)来完成。事实上,最理想的解决办法是采用到该内容的最短路径。为了检索最近的具有所需内容的高速缓存引擎,可以应用任意点传送(anycasting)。
参照图4,当在顶部具有路由器S104和S107的子树经常请求这个内容时,在路由器S103中高速缓存内容的复制可以被执行。在那种情况下,高速缓存内容可以被复制到到S104和S107。作为替代,当根据统计已经决定S106或者S110是用于放置高速缓存信息的适宜的路由器时,高速缓存内容还可以被复制到例如S106或者S110的叶网络的其中之一。
如果高速缓存内容被复制,有两个方法来合并复制的高速缓存内容。复制高速缓存内容的合并包括删除一个复制并且合并来自具有复制内容的位置的访问统计。在第一种情况下,当仅一些子树包含高速缓存内容并且该内容由没有该高速缓存内容的子树的其中之一经常请求,则具有该高速缓存内容的高速缓存引擎可以决定该高速缓存内容应该移到树结构中的更高层。这与基于推式的概念对应。此外,所有指针被存储的子树的根部可以根据基于拉式的概念来决定合并。
合并复制高速缓存信息的另一个方式是在每一高速缓存刷新时,一个子树的根部决定自己保留该内容并且通知具有复制高速缓存内容的高速缓存引擎其应该删除该高速缓存内容。
此外在复制高速缓存内容情况的下,必须指定一高速缓存刷新机制。如上所述,这有两个执行方法,基于推式的机制和基于拉式的机制。尽管基于推式的高速缓存刷新机制对于复制高速缓存内容更加有效,因为同时对多个高速缓存引擎执行刷新。有可能使用基于拉式的高速缓存刷新机制。在对复制高速缓存内容执行基于拉式的高速缓存刷新情况下,可以应用下列刷新机制。当高速缓存内容时,每一高速缓存引擎确定用于在高速缓存内容过时之后等待的随机等待时间。由于每一高速缓存引擎可能有不同的值,仅仅一个高速缓存引擎请求来自原服务器的高速缓存刷新。这个高速缓存刷新随后被发送至全部具有该高速缓存内容的高速缓存引擎。
在用于执行对复制高速缓存内容的刷新机制的第二种备选方案中,在最高等级上并且包含指向其它高速缓存引擎的指针的高速缓存引擎将负责请求一个来自原服务器的高速缓存刷新。这个高速缓存刷新随后被发送至所有包含该高速缓存内容的高速缓存引擎。
复制、合并或者更新操作将通过统计的评估来考虑。每当高速缓存内容被复制或者合并,相应的访问统计必须被累计或者减少并且相应地传递。每当高速缓存内容被刷新,旧的访问统计应该相应地被复制。
沿着高速缓存树结构向下移动高速缓存内容或者复制高速缓存内容的决定取决于几个方面,例如高速缓存内容的大小,客户机数目和每时间单位的访问,以及当将高速缓存内容移动到更接近于客户机时距离的改善。例如,万一两个子树中的客户机都经常访问高速缓存内容。根据内容供应商,数据内容平均每隔一周变化,这导致由网路工作人员或者内容供应商决定的一小时一次的高速缓存刷新速率。为了决定数据是否应该被复制到两个子树或者是否应该保存在那些子树的根部,用于在较远的距离提供给两个子树,一种有效算法将被应用。这个算法可以考虑到客户机的距离、内容的大小,移动高速缓存内容的代价、刷新速率、刷新高速缓存内容所需的平均消息数目、高速缓存引擎中的可用容量和其他几个方面。来自其它高速缓存引擎的信息可以采用高速缓存引擎间通信协议来获取,如以上所述的专用点到点的协议。
一个更先进的决策准则可以基于访问统计考虑分割(partition)高速缓存内容。当高速缓存内容沿着高速缓存树结构往下移,指向高速缓存内容的指针在分支点被存储,例如在具有多个子树的路由器S16和S20中。这意味着当内容在路由器S19被高速缓存,路由器S16存储指向路由器S119(疑原文有误)的高速缓存内容的指针。这可以是指向路由器S119的指针或者仅仅是一个指向包含路由器S119的子树的指针。
关于高速缓存机制,为了保持受限的高速缓存大小,应用一种置换规则。为了这个目的,采用现有的机制来进行内容的删除,例如,最近最少使用的内容被删除,或者在某一时间周期之后或者当没有高速缓存更新信息被接收时来删除该高速缓存内容。还可以由原服务器发送专用高速缓存清除消息。
选择性地,树结构的根部——例如服务器S1——存储所有指向所述内容的指针,以便当原服务器发送高速缓存更新消息时有效地使用资源。这些指针还被用于向树结构的更高处移动高速缓存内容或者当一个新的高速缓存内容拷贝在树结构的更高处产生时删除高速缓存内容。
来自路由协议的距离信息还可以被用于确定内容究竟是否应该被高速缓存。每当原服务器被访问时,可以确定到客户机的距离是多少。如果距离不太长,可以决定内容是否应该更接近于客户机被高速缓存或者是否根本不应高速缓存。由该决定,可以考虑历史的或者预测的内容访问信息。
本发明允许在节省网络资源的分级结构内的高速缓存的动态执行。本发明的动态基于根据经评估的访问统计确定高速缓存内容位置的可能性。
权利要求
1.用于在通信网络中管理高速缓存信息的方法,该通信网络具有在分级结构中相关的网络节点,在分级结构顶部具有至少一个服务器,在分级结构底部具有至少一个主机,并且在中间具有至少一个用于高速缓存信息的高速缓存引擎,其特征在于,建立对于分级结构内的一个位置的高速缓存信息的访问统计,并且当接收一个对于该高速缓存信息的请求时,至少一个其他位置的访问统计被检查,并且根据该访问统计来确定分级结构内的高速缓存信息的位置。
2.根据权利要求1的方法,其特征在于,或者在高速缓存引擎或者在服务器或者在一个路由器中评估访问统计,其负责对分级结构内的信息进行路由。
3.权利要求1或者2的方法,其特征在于,高速缓存信息位置的确定导致在分级结构内向上或者向下移动该高速缓存信息。
4.根据权利要求1或者3中任意一项的方法,其特征在于,在分级结构内复制所述高速缓存信息。
5.根据任一前述权利要求的方法,其特征在于,如果位置的确定导致改变位置,高速缓存引擎存储指向该信息位置的指针。
6.根据任一前述权利要求的方法,其特征在于,访问统计考虑对于一个内容的每时间单位访问的数目以及主机数目。
7.根据任一前述权利要求的方法,其特征在于,访问统计考虑各位置的距离和优先级。
8.根据任一前述权利要求的方法,其特征在于,最接近主机的高速缓存引擎给从主机朝着服务器的方向发送的对信息的请求消息添加一个指示,指示希望高速缓存该信息。
9.根据权利要求8的方法,其特征在于,由所述请求消息在朝向服务器的途中经过的下一个经过的高速缓存引擎驳回该指示。
10.根据任一前述权利要求的方法,其特征在于,为了访问高速缓存信息,将执行下列步骤,-主机向服务器发送对信息的请求消息,并且-下一个经过的高速缓存引擎检测其是否具有所请求信息,并且-在具有可用信息的情况下,这个信息被返回并且检查连接到这个高速缓存引擎的其他主机对该信息的访问统计,以及考虑该结果,做出有关该信息位置的决定,-如果下一个经过的高速缓存引擎具有指向该信息位置的指针,所述请求消息被转送到该位置,并且-否则该请求消息被转送到下一个高速缓存引擎。
11.根据权利要求5或者10的方法,其特征在于,指向该信息位置的指针伴有来自一组附加信息的任何附加信息,该组包括高速缓存时间、高速缓存刷新率以及一个到位于分级结构内更低位置的高速缓存引擎的距离指示。
12.根据权利要求5、10或者11的方法,其特征在于,如果高速缓存引擎具有一个指向该信息位置的指针,到具有该高速缓存信息的高速缓存引擎的距离与到服务器的距离相比较,并且一旦到服务器的距离更短,则该信息从服务器处获取。
13.根据任一前述权利要求的方法,其特征在于,高速缓存信息包括指示在某一个时期内高速缓存内容变化的可能性的信息。
14根据任一前述权利要求的方法,其特征在于为了更新高速缓存信息,执行一个刷新机制。
15.根据权利要求14的方法,其特征在于,刷新机制是一个由服务器启动的基于推式的机制。
16.根据权利要求15的方法,其特征在于,通过考虑信息位置的指针,服务器沿着分级结构发送内容的更新版本。
17.根据权利要求14的方法,其特征在于,刷新机制是一个由至少一个高速缓存引擎启动的基于拉式的机制。
18.根据权利要求13到17中任意一项的方法,其特征在于,考虑指示在某时期内改变高速缓存内容的可能性的信息。
19.根据任一前述权利要求的方法,其特征在于,发送一个附加消息到高速缓存引擎,或者当该消息过时时自动地进行高速缓存信息的删除。
20.根据任一前述权利要求的方法,其特征在于,分级结构的建立采用多点传送和相应的多点传送传输树状拓扑来完成。
21.根据任一前述权利要求的方法,其特征在于,为了获得有关服务器和客户机之间路由的信息,采用一个路由协议来进行分级结构的建立。
22.根据权利要求21的方法,其特征在于,路由协议是一个距离矢量路由协议,包含一个具有到网络内所有节点的最短路径的列表。
23.根据任一前述权利要求的方法,其特征在于,在两个网络节点之间的通信基于一个点到点的协议。
24.适合于在具有分级结构中相关的所述和另外的网络节点的通信网络中管理高速缓存信息的网络节点,在该分级结构顶部具有至少一个服务器,在分级结构底部具有至少一个主机,并且在中间具有至少一个用于高速缓存信息的高速缓存引擎,其特征在于该网络节点包含一个收集实体,用于收集有关分级结构内高速缓存信息使用率的数据;一个统计实体,用于从所收集的数据中确定对该高速缓存信息的访问统计;以及一个分析实体,用于为了确定分级结构内高速缓存信息的位置而分析访问统计。
25.根据权利要求24的网络节点,其特征在于,网络节点是服务器或者高速缓存引擎或者一个用于分级结构内路径选择目的的路由器。
26.适合于在具有分级结构中相关的网络节点的通信网络中管理高速缓存信息的系统,在该分级结构顶部具有至少一个服务器,在分级结构底部具有至少一个主机,并且在中间具有至少一个用于高速缓存信息的高速缓存引擎,其特征在于,该系统包括根据权利要求24或者25的网络节点。
27.根据权利要求26的系统,其特征在于,分级结构具有一种树型结构,在树型结构的顶部有至少一个服务器,至少有一个主机作为树型结构的叶结点,并且在中间有至少一个路由器和至少一个高速缓存引擎,其存储高速缓存信息并且被连接到相应的路由器。
28.可装载入数字处理单元的内部存储器中的计算机程序,当计算机程序在数字处理单元上被执行时,其包括适合于控制根据权利要求1的方法的软件代码部分。
全文摘要
本发明致力于移动通信领域。其涉及用于在分级结构内管理高速缓存信息的方法、网络节点和计算机程序。基本的方法是提供一个智能机制,用于对高速缓存内容的更为动态的管理。特别是提供了一种解决方法,通过在分级结构中的从客户到原始源的每个路径上对相同内容的单个高速缓存拷贝进行高速缓存,以便在高速缓存结构中更有效地利用存储资源。这基本上意味着高速缓存内容被放置在必要高的级别上,但是也意味着如果该内容主要由连接到部分分级结构的主机经常使用,则通过使该机制具有向低级别移动高速缓存内容的能力来增强该机制。所提出的解决办法的动态特性也预见了将高速缓存内容复制到分级结构的多个部分。
文档编号H04L29/08GK1575575SQ02818859
公开日2005年2月2日 申请日期2002年9月3日 优先权日2001年9月26日
发明者F·亨谢德特, H·哈梅莱尔斯 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1