一种内容中心网络的缓存方法及装置与流程

文档序号:11681363阅读:187来源:国知局
一种内容中心网络的缓存方法及装置与流程

本发明属于计算机技术领域,尤其涉及一种内容中心网络的缓存方法及装置。



背景技术:

随着互联网上应用的不断发展变化,基于ip(internetprotocol)的互联网体系接收在内容分发、移动性、可扩展性以及安全性等方面面临重大挑战,未来的互联网架构将从以主机为中心的通讯模型向以内容为中心的网络模型演化。

内容中心网络是一种革命式的未来互联网设计思路,它不再对数据所在地址命名,而是直接对数据本身命名,被命名的数据成为最关键的网络实体,因此内容中心网络不再关注终端设备的安全性,直接关注命名内容的安全,让数据传输机制从根本上实现可自由扩展。在内容中心网络中的每个网络节点具有缓存功能,支持多种智能路由转发策略,然而,由于节点缓存大小的有效、装置内容总量过多等因素,内容中心网络在提高缓存利用率、减少冗余传输等问题上面临不小挑战。

目前,内容中心网络节点的缓存机制可以分为两种:路径上缓存(on-pathcaching)和离路径缓存(off-pathcaching)。具有代表性的路径上缓存机制有betw、betwre以及probcache等。betw通过网络节点介数来权衡节点位置重要性,然后将内容缓存到重要的节点上,但betw容易导致缓存内容频繁替换及中心节点负载过高。为解决此问题,betwrep进一步使用节点缓存内容更替速率作为缓存决策度量,但此方法未考虑缓存内容流行度及多样性。probcache算法充分考虑了路径缓存容量以及单位时间缓存服务的流量多少,从而决定是否缓存到来的内容,但此方法也没有考虑内容流行度与缓存多样性等因素。为了提高缓存多样性,一种通过在单个缓存器对近期最少使用算法(lru,leastrecentlyused)替换策略使用马尔可夫链建模的基于逗留时间的缓存策略被提出,一种以绿色节能作为出发点,关注高速缓存位置的能源感知缓存管理被提出,缓存内容同时适当的考虑内容缓存的能耗和数据的传输,尽管在这些方法中路径上缓存的可扩展性很强,内容缓存大量冗余仍导致它的缓存命中率受限。

离路径缓存在于充分利用路径之外的节点的缓存内容,通常需要节点之间的协作。其中,breadcrumbs方法通过额外存储少量的缓存历史信息,实现了一个隐式、透明以及尽力而为的内容缓存、定位以及路由的装置;哈希路由机制充分利用网络内缓存且不要求网络中的节点维持每个缓存内容的状态信息;扫描算法(scan)利用bloomfilter交换缓存内容的信息,通过探索附近多个内容的复制来完成高效的交付。与路径上缓存不同,离路径缓存可以减少网络内缓存冗余度,可以显著的提高整体的缓存命中率,然而,离路径缓存上的策略需要节点记录或感知网络内缓存内容的状态,在解决网络缓存冗余度时,限制了内容中心网络(ccn)的可扩展性。



技术实现要素:

本发明的目的在于提供一种内容中心网络的缓存方法及装置,旨在解决在内容中心网络的现有技术中,独立节点缓存方法中缓存冗余度较高、路径上缓存方法中缓存多样性较差以及邻居协作缓存方法中网络节点之间通信开销较大的问题。

一方面,本发明提供了一种内容中心网络的缓存方法,所述方法包括下述步骤:

根据预设的节点中心度计算公式,生成内容中心网络中每个节点的节点中心度;

根据所述所有节点中心度,在所述所有节点中选取部分节点;

计算所述部分节点中每个节点对应的协作邻居节点数量,并根据所述协作邻居节点数量,获取所述部分节点中每个节点对应的协作邻居节点;

当所述协作邻居节点中的节点接收到待缓存的数据时,确定所述数据在所述协作邻居节点中对应的缓存节点,并将所述数据缓存到所述缓存节点。

另一方面,本发明提供了一种内容中心网络的缓存装置,所述装置包括:

节点中心度计算模块,用于根据预设的节点中心度计算公式,生成内容中心网络中每个节点的节点中心度;

部分节点选取模块,用于根据所述所有节点中心度,在所述所有节点中选取部分节点;

协作邻居节点获取模块,用于计算所述部分节点中每个节点对应的协作邻居节点数量,并根据所述协作邻居节点数量,获取所述部分节点中每个节点对应的协作邻居节点;以及

数据缓存模块,用于当所述协作邻居节点中的节点接收到待缓存的数据时,确定所述数据在所述协作邻居节点中对应的缓存节点,并将所述数据缓存到所述缓存节点。

本发明根据预设的节点中心度计算公式,为内容中心网络中每个节点测量节点中心度,根据所有的节点中心度,在内容中心网络的所有节点中选取部分节点,计算这些部分节点分别对应的协作邻居节点数量,以获取部分节点中每个节点的协作邻居节点,当一组协作邻居节点中的节点接收到待缓存的数据时,在这组协作邻居节点中确定该数据对应的缓存节点,并将数据缓存到这个缓存节点,从而通过生成节点的协作邻居节点实现了将待缓存的数据存储到对应的缓存节点,有效地降低了缓存内容的冗余度,有效地提高了缓存内容的多样性,以及有效地降低了节点间协作通信的开销。

附图说明

图1是本发明实施例一提供的内容中心网络的缓存方法的实现流程图;

图2是本发明实施例二提供的内容中心网络的缓存装置的结构示意图;以及

图3是本发明实施例二提供的内容中心网络的缓存装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明实施例一提供的内容中心网络的缓存方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤s101中,根据预设的节点中心度计算公式,生成内容中心网络中每个节点的节点中心度。

在本发明实施例中,节点中心度体现了节点在内容中心网络中的重要性,节点中心度的计算公式为:

τ(i)=ατd(i)+βτc(i)+γτb(i),其中,τ(i)为内容中心网络中节点i的节点中心度,τd(i)为节点i的度数中心性,τc(i)为节点i的紧密中心性,τb(i)为节点i的节点介数,α、β和γ为预设的权值,且α+β+γ=1。

因此,在具体实施过程中,先获取内容中心网络中每个节点的度数中心性、紧密中心性以及节点介数,再根据这些数据和节点中心定义的公式,计算内容中心网络中每个节点的节点中心度,从而通过基于权重的节点中心度计算公式,较好地度量每个节点在内容中心网络的重要性。

具体地,节点的度数中心性为该节点关联的边的数量,包括出度和入度,节点的紧密中心性用来表示该节点与其它节点间的紧密程度,可通过计算该节点与其它节点之间最短距离的倒数和得到该节点的紧密中心度,节点介数为内容中心网络中经过该节点的最短路径占网络中所有最短路径的比例,节点的度数中心性、紧密中心性以及节点介数都可作为节点在网络中重要性的度量。

在步骤s102中,根据所有节点中心度,在所有节点中选取部分节点。

在本发明实施例中,可预先设置中心度阈值,将所有节点按照节点中心度的高低进行排序,在排序后,从所有节点中按照排序顺序选取节点中心度超过中心度阈值的所有节点,这些节点中心度超过中心度阈值的所有节点即为在所有节点中选取的部分节点。优选地,根据实际网络中节点的节点中心度,设置并调整中心度阈值,从而使得内容中心网络中数据缓存达到更好的效果。

在步骤s103中,计算部分节点中每个节点对应的协作邻居节点数量,并根据协作邻居节点数量,获取部分节点中每个节点对应的协作邻居节点。

在本发明实施例中,根据节点中心度的大小在所有节点中选出的部分节点,被认为是内容中心网络中的重要节点,即这些节点控制着更多的流(例如信息、资源等)。内容中心网络中节点缓存的大小与网络中的内容总量相比非常小,所以经过重要节点内容量和请求也非常大,可通过重要节点的协作邻居节点分担重要节点的部分请求和缓存任务。

在本发明实施例中,可先获取部分节点(即内容中心网络的重要节点)与内容中心网络中内容服务器的距离,再根据部分节点与内容服务器的距离以及这些部分节点的节点中心度,计算部分节点中每个节点对应的协作邻居节点数量。具体地,协作邻居节点数量的计算公式为:

其中,ni为部分节点中节点i的协作邻居节点数量,dir为节点i到内容服务器r的最短距离,djr为部分节点中节点j到内容服务器r的最短距,n为内容中心网络中所有节点的数量,λ和μ为预设的权值,且λ+μ=1。

在本发明实施例中,在计算得到部分节点中每个节点的协作邻居节点数量后,在部分节点中每个节点的邻居节点中选取协作邻居节点数量个邻居节点,并将这协作邻居节点数量个邻居节点设置为部分节点中相应节点的协作邻居节点。

在步骤s104中,当协作邻居节点中的节点接收到待缓存的数据时,确定数据在协作邻居节点中对应的缓存节点,并将数据缓存到缓存节点。

在本发明实施例中,内容中心网络中每个节点中存储着数据的内容,而不是数据的地址,因此,当部分节点中一个节点对应的协作邻居节点接收到待缓存的数据时,先获取数据的名字,即数据中内容的名字,再在这组协作邻居节点对应的散列表查找与数据的名字相匹配的节点,该节点即待缓存数据的缓存地址。

具体地,可预先为部分节点中每个节点对应的协作邻居节点设置一个散列表,即每组协作邻居节点中的节点使用一个散列表,在该散列表中协作邻居节点中每个节点的节点标识都对应着待缓存的内容名字,从而有效地降低内容中心网络的节点中缓存内容的冗余度,也有效地提高了内容中心网络中缓存内容的多样性。

优选地,在协作邻居节点接收到数据请求时,通过请求数据的名字和该组协作邻居节点对应的散列表,查找到该数据请求对应的节点标识,并将该数据请求发送给该节点,从而通过协作邻居节点和散列表,有效地降低了节点之间协作通信的开销。

在本发明实施例中,通过每个节点的节点中心度来度量内容中心网络中每个节点的重要性,并从内容中心网络的所有节点中选出部分节点,根据节点的节点中心度、节点与内容中心网络中内容服务器的距离,计算部分节点中每个节点对应的协作邻居节点数量,继而根据该协作邻居节点数量获取部分节点中每个节点对应的协作邻居节点,在协作邻居节点接收到待缓存的数据时,根据数据的名字和协作邻居节点对应的散列表,确定数据的缓存节点,将数据缓存到该缓存节点中,从而有效地降低了内容中心网络中缓存内容的冗余度、有效地提高了缓存内容的多样性,并有效地降低了节点之间协作通信的开销。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘、光盘等。

实施例二:

图2示出了本发明实施例四提供的内容中心网络的缓存装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:

节点中心度计算模块21,用于根据预设的节点中心度计算公式,生成内容中心网络中每个节点的节点中心度。

在本发明实施例中,节点中心度体现了节点在内容中心网络中的重要性,节点中心度的计算公式为:

τ(i)=ατd(i)+βτc(i)+γτb(i),其中,τ(i)为内容中心网络中节点i的节点中心度,τd(i)为节点i的度数中心性,τc(i)为节点i的紧密中心性,τb(i)为节点i的节点介数,α、β和γ为预设的权值,且α+β+γ=1。

因此,在具体实施过程中,先获取内容中心网络中每个节点的度数中心性、紧密中心性以及节点介数,再根据这些数据和节点中心定义的公式,计算内容中心网络中每个节点的节点中心度,从而通过基于权重的节点中心度计算公式,较好地度量每个节点在内容中心网络的重要性。

部分节点选取模块22,用于根据所有节点中心度,在所有节点中选取部分节点。

在本发明实施例中,可预先设置中心度阈值,将所有节点按照节点中心度的高低进行排序,在排序后,从所有节点中按照排序顺序选取节点中心度超过中心度阈值的所有节点,这些节点中心度超过中心度阈值的所有节点即为在所有节点中选取的部分节点。优选地,根据实际网络中节点的节点中心度,设置并调整中心度阈值,从而使得内容中心网络中数据缓存达到更好的效果。

协作邻居节点获取模块23,用于计算部分节点中每个节点对应的协作邻居节点数量,并根据协作邻居节点数量,获取部分节点中每个节点对应的协作邻居节点。

在本发明实施例中,可先获取部分节点(即内容中心网络的重要节点)与内容中心网络中内容服务器的距离,再根据部分节点与内容服务器的距离以及这些部分节点的节点中心度,计算部分节点中每个节点对应的协作邻居节点数量。具体地,协作邻居节点数量的计算公式为:

其中,ni为部分节点中节点i的协作邻居节点数量,dir为节点i到内容服务器r的最短距离,djr为部分节点中节点j到内容服务器r的最短距,n为内容中心网络中所有节点的数量,λ和μ为预设的权值,且λ+μ=1。

在本发明实施例中,在计算得到部分节点中每个节点的协作邻居节点数量后,在部分节点中每个节点的邻居节点中选取协作邻居节点数量个邻居节点,并将这协作邻居节点数量个邻居节点设置为部分节点中相应节点的协作邻居节点。

数据缓存模块24,用于当协作邻居节点中的节点接收到待缓存的数据时,确定数据在协作邻居节点中对应的缓存节点,并将数据缓存到缓存节点。

在本发明实施例中,内容中心网络中每个节点中存储着数据的内容,而不是数据的地址,因此,当部分节点中一个节点对应的协作邻居节点接收到待缓存的数据时,先获取数据的名字,即数据中内容的名字,再在这组协作邻居节点对应的散列表查找与数据的名字相匹配的节点,该节点即待缓存数据的缓存地址。

具体地,可预先为部分节点中每个节点对应的协作邻居节点设置一个散列表,即每组协作邻居节点中的节点使用一个散列表,在该散列表中协作邻居节点中每个节点的节点标识都对应着待缓存的内容名字,从而有效地降低内容中心网络的节点中缓存内容的冗余度,也有效地提高了内容中心网络中缓存内容的多样性。

优选地,在协作邻居节点接收到数据请求时,通过请求数据的名字和该组协作邻居节点对应的散列表,查找到该数据请求对应的节点标识,并将该数据请求发送给该节点,从而通过协作邻居节点和散列表,有效地降低了节点之间协作通信的开销。

因此,优选地,如图3所示,部分节点选取模块22包括:

排序选取模块321,用于根据所有节点中心度,对内容中心网络中每个节点进行排序,并根据排序结果,选取节点中心度超过预设中心度阈值的所有节点。

优选地,如图3所示,协作邻居节点获取模块23包括服务器距离获取模块331和节点数量计算模块332,其中:

服务器距离获取模块331,用于获取部分节点中每个节点与内容中心网络中内容服务器的距离;以及

节点数量计算模块332,用于根据所有距离和部分节点的节点中心度,计算部分节点中每个节点对应的协作邻居节点数量。

优选地,如图3所示,数据缓存模块24包括数据名字获取模块341和缓存节点确定模块342,其中:

数据名字获取模块341,用于当协作邻居节点中的节点接收到待缓存的数据时,获取数据的名字;以及

缓存节点确定模块342,用于根据数据的名字和协作邻居节点对应的散列表,获取数据应缓存到的节点标识,并根据节点标识,确定数据对应的缓存节点。

在本发明实施例中,通过每个节点的节点中心度来度量内容中心网络中每个节点的重要性,并从内容中心网络的所有节点中选出部分节点,根据节点的节点中心度、节点与内容中心网络中内容服务器的距离,计算部分节点中每个节点对应的协作邻居节点数量,继而根据该协作邻居节点数量获取部分节点中每个节点对应的协作邻居节点,在协作邻居节点接收到待缓存的数据时,根据数据的名字和协作邻居节点对应的散列表,确定数据的缓存节点,将数据缓存到该缓存节点中,从而有效地降低了内容中心网络中缓存内容的冗余度、有效地提高了缓存内容的多样性,并有效地降低了节点之间协作通信的开销。

在本发明实施例中,内容中心网络的缓存装置的各模块可由相应的硬件或软件模块实现,各模块可以为独立的软、硬件模块,也可以集成为一个软、硬件模块,在此不用以限制本发明。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1