基于缓存节点状态和位置的信息中心网络缓存部署方法与流程

文档序号:18329421发布日期:2019-08-03 11:54阅读:164来源:国知局
基于缓存节点状态和位置的信息中心网络缓存部署方法与流程

本发明属于通信技术领域,尤其涉及基于缓存节点状态和位置的信息中心网络缓存部署方法。



背景技术:

缓存功能是信息中心网络的优势所在,缓存的效率直接决定了信息中心网络的整体性能,而缓存的部署策略则是缓存策略的重中之重。近年来,各国学者更专注于研究缓存部署策略对信息中心网络带来的性能提升。对于缓存的部署策略,应该着重关注高效的网络利用率、数据的高可用性。从p2p系统和cdn技术来看,缓存部署在网络边缘对提高缓存命中率有很大帮助,但是信息中心网络支持在所有路由器上部署缓存,不仅是边缘节点,中心节点也依然适合部署缓存,因此,缓存的部署策略将是决定信息中心网络整体性能的关键性因素。

缓存部署策略也称为缓存决策策略,依据合作方式可以分为三类,分别是非协作缓存、显式协作缓存和隐式协作缓存。

显式协作缓存虽然可以带来较高的缓存效率,但是它需要大量的交互信息,计算方法过于复杂,而非协作缓存又会有大量的数据冗余。隐式协作缓存综合了以上两种缓存协作方式的优点。

隐式协作缓存主要是依靠一些附加的消息进行缓存决策,比如缓存节点位置、内容流行度、概率、缓存节点状态等。由于隐式协作缓存的性能高,代价小,在三个缓存部署策略中,隐式协作缓存占比最高。隐式协作缓存是一种非常适用于信息中网络的缓存方式,它既不需要显式协作缓存的全局计算和通信能力,也不会有非协作式缓存产生的大量冗余的数据。隐式协作缓存中的典型代表是lcd、mcd、probcache等,这三种缓存策略都是为了让缓存在链路上更接近消费者,从而减小网络延迟,但是却没有考虑每个缓存节点的状态是否适合继续缓存信息。



技术实现要素:

本发明的目的在于公开缓存命中率高、平均请求长度小的基于缓存节点状态和位置的信息中心网络缓存部署方法。

本发明的目的是这样实现的:

基于缓存节点状态和位置的信息中心网络缓存部署方法,包含如下步骤:

步骤(1):计算最终得到的状态值;

步骤(2):计算缓存率;

步骤(3):建立数据包状态值:在数据包添加一个额外的字段记为数据包状态值;

步骤(4):建立状态记录表:在每个缓存节点增加一张状态记录表,状态记录表包含兴趣包中的数据名称和状态记录表状态值;

步骤(5):选择缓存节点,并更新数据包状态值、修改状态记录表。

进一步地,最终得到的状态值value:

value=α*vk+β*vhop+γ*vhitk,α,β,γ∈n;

上式中,vk是根据预过滤队列个数k得到的状态值,vhop是根据链路位置得到的状态值,vhitk是在第几个预过滤队列中存在兴趣包中数据名称的数据,α是根据预过滤队列个数k得到的状态值的权重,β是根据链路位置得到的状态值的权重,γ是在第几个预过滤队列中存在兴趣包中数据名称的数据的权重。

进一步地,缓存率cacherate:

上式中,ncached是被选中缓存节点次数,ntotal是收到的兴趣包。

进一步地,数据包状态值为0时的含义为最大状态值节点已缓存,最小缓存率节点已缓存;数据包状态值为1时的含义为最大状态值节点已缓存,最小缓存率节点未缓存;数据包状态值为2时的含义为最大状态值节点未缓存,最小缓存率节点已缓存;数据包状态值为3时的含义为最大状态值节点未缓存,最小缓存率节点未缓存。

进一步地,状态记录表状态值为1时的含义为不可能是最大状态值节点,可能是最小缓存率节点;状态记录表状态值为2时的含义为可能是最大状态值节点,不可能是最小缓存率节点;状态记录表状态值为3时的含义为可能是最大状态值节点,可能是最小缓存率节点。

进一步地,步骤(5)中的选择缓存节点具体为:在每个兴趣包的请求路径上选取一个或两个拥有最大状态值的节点和最小缓存率的节点作为缓存节点缓存数据包,如果两个缓存节点是同一节点,那么只在这一个节点上缓存,否则在这两个缓存节点缓存。

进一步地,步骤(5)中的更新数据包状态值、修改状态记录表具体为:

客户端发出兴趣包时设置兴趣包中的最大状态值为0,最小缓存率为1;在每一个缓存节点上,将当前缓存节点的最终得到的状态值和缓存率,与兴趣包中的最大状态值和最小缓存率进行比较:如果当前缓存节点的最终得到的状态值大于兴趣包中的最大状态值,则在转发时更新兴趣包中的最大状态值,如果当前缓存节点的缓存率小于兴趣包中的最小缓存率,则在转发时更新兴趣包中的最小缓存率,根据比较结果在状态记录表中记录数据名称和状态记录表状态值;如果当前缓存节点的最终得到的状态值小于兴趣包中的最大状态值,当前缓存节点的缓存率高于兴趣包中的最小缓存率,则不修改兴趣包的最大状态值和最小缓存率;当当前缓存节点的最终得到的状态值与兴趣包的最大状态值相同或当前缓存节点的缓存率与兴趣包的最小缓存率相同时,不进行缓存;

响应的数据包由生产者沿兴趣包路径返回时,查询每个缓存节点中兴趣包内容名称对应的状态记录表,如果不存在记录则直接转发数据包;如果存在记录则将数据包状态值与状态记录表状态值进行与操作,如果与操作结果大于0,则对该数据包进行缓存,再将数据包状态值更新为数据包状态值与与操作结果的差值,并在状态记录表中删除记录。

进一步地,与操作的规则定义为:

当状态记录表状态值为1、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为1、数据包状态值为1时,与操作结果为1;

当状态记录表状态值为1、数据包状态值为2时,与操作结果为0;

当状态记录表状态值为1、数据包状态值为3时,与操作结果为1;

当状态记录表状态值为2、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为2、数据包状态值为1时,与操作结果为0;

当状态记录表状态值为2、数据包状态值为2时,与操作结果为2;

当状态记录表状态值为2、数据包状态值为3时,与操作结果为2;

当状态记录表状态值为3、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为3、数据包状态值为1时,与操作结果为1;

当状态记录表状态值为3、数据包状态值为2时,与操作结果为2;

当状态记录表状态值为3、数据包状态值为3时,与操作结果为3。

本发明的有益效果为:

本发明提高了缓存的命中率,降低网络延迟,减小用户的平均请求长度;综合考虑缓存节点的状态和位置,以非常小的通信代价获得了更佳的缓存位置;不需要在数据包中增加过多字段,不会导致网络数据包的臃肿。

附图说明

图1是基于缓存节点状态和位置的信息中心网络缓存部署方法步骤图;

图2是基于缓存节点状态和位置的信息中心网络缓存部署方法的兴趣包转发流程示意图;

图3是基于缓存节点状态和位置的信息中心网络缓存部署方法的数据包转发流程示意图;

图4是缓存命中率的实验对比图;

图5是请求路径伸缩比的实验对比图;

图6是不同内容集中度的实验对比图;

图7是不同缓存大小的实验对比图。

具体实施方式

下面结合附图来进一步描述本发明:

如图1,基于缓存节点状态和位置的信息中心网络缓存部署方法,包含如下步骤:

步骤(1):计算最终得到的状态值;

缓存节点状态值是评价信息中心网络中的缓存节点是否适合缓存的重要指标,缓存内容越少越适合缓存,距离用户越近越适合缓存。目前每个缓存节点的状态值由三部分因素决定,但是对于不同网络环境中的缓存节点来说,每个因素所占的比重应该不同,因此采用加权的方式计算。

最终得到的状态值value:

value=α*vk+β*vhop+γ*vhitk,α,β,γ∈n;

上式中,vk是根据预过滤队列个数k得到的状态值,vhop是根据链路位置得到的状态值,vhitk是在第几个预过滤队列中存在兴趣包中数据名称的数据,α是根据预过滤队列个数k得到的状态值的权重,β是根据链路位置得到的状态值的权重,γ是在第几个预过滤队列中存在兴趣包中数据名称的数据的权重。为了减小浮点型表示带来的精度问题,均采用非负整数来表示。

缓存队列状态由动态lru-k算法中的k值来决定,即预过滤队列的个数。当一个缓存节点预过滤队列的个数较多时,说明该节点需要缓存的个数较多,相对于k值较小的缓存节点来说,放入k值较大的缓存节点需要很长时间的过滤才能被放入缓存队列。

在信息中心网络中,更希望信息被缓存在边缘缓存节点上,这样可以减少用户的平均请求跳数,以降低网络延迟,减小中心网络的负载。链路位置以跳数为计算单位,每经过一个路由器跳数加一。

动态lru-k缓存替换策略中提到过该策略拥有k个预过滤队列,只有数据包在该缓存节点经过第k个队列要求的缓存次数后,才会将该数据包放入缓存队列,所以当评判一个缓存节点是否适合缓存某个数据包时,应该考虑它目前是否在预过滤队列中,以及在第几个预过滤队列中。这个参数的主要目的是降低多节点对数据过滤的影响,根据参数决定在value值计算公式的重要性,一般来说,应该优先考虑该数据已经在预过滤队列中的节点,从而尽快使该数据被缓存。

步骤(2):计算缓存率cacherate:

缓存率是被选中缓存节点次数与收到的兴趣包的比值,提出缓存率的概念主要是因为通过状态值选择缓存节点时,边缘节点会被频繁选为缓存节点,导致这个问题的主要原因是状态值分布相对不均匀,靠近内容源的节点缓存概率非常小,所以提出缓存率,在兴趣包的转发路径上选取缓存率最小的点进行一次缓存,用以弥补只通过状态值选择缓存节点带来的不足。

上式中,ncached是被选中缓存节点次数,ntotal是收到的兴趣包。

步骤(3):建立数据包状态值:在数据包添加一个额外的字段记为数据包状态值;

如图3,数据包是内容发布者根据兴趣包发送路径方向发送回来的响应数据包,数据包中包含了数据的名称和数据内容,但是对于当前的部署策略来说无法获知这个数据包是否已在路径上缓存,因此需要添加一个额外的字段来告诉后续缓存节点是否可以缓存这个数据包。当数据包在某一个节点被缓存过后,应该修改该字段的状态值,后续节点根据状态值判断是否继续缓存这个数据包。在数据包的传输路径上,需要找到最大状态值和最小缓存率两个节点,因此需要对两个状态进行标记,共有四种情况,可以分别用0、1、2、3表示。

数据包状态值为0时的含义为最大状态值节点已缓存,最小缓存率节点已缓存;数据包状态值为1时的含义为最大状态值节点已缓存,最小缓存率节点未缓存;数据包状态值为2时的含义为最大状态值节点未缓存,最小缓存率节点已缓存;数据包状态值为3时的含义为最大状态值节点未缓存,最小缓存率节点未缓存。

步骤(4):建立状态记录表:如图2,为了便于记录某一个兴趣包经过的缓存节点的最大状态值和最小缓存率,在每个缓存节点增加一张状态记录表,状态记录表包含兴趣包中的数据名称和状态记录表状态值;当数据包返回时,查询状态记录表中数据名称对应的状态记录表状态值时,如果不存在记录,说明在兴趣包传输时,状态值没有高于当时的最大状态值,缓存率也没有低于当时的最小缓存率,因此这个节点未被选择为缓存节点。

状态记录表状态值,不作为缓存节点的待选节点时,不存入srt中即可,没有必要专门为这种状态准备一个状态值,同时也减小了占用的数据空间。

对于状态记录表中存入的状态值不可以直接判断是否是最大状态值节点和最小缓存率节点,需要结合数据包中的状态值进行判断,主要原因是在兴趣包的转发过程中,并不知道后续节点是否有更大的状态值或更小的缓存率,只是在兴趣包转发到当前节点时是最大状态值或最小缓存率,因此需要加上可能两个字。当数据包沿着兴趣包转发的路径返回时,如果遇到一个节点可能是最大状态值,并且数据包中的状态值表明尚未在最大状态值节点缓存,那么表明当前节点就是最大状态值的节点,最小缓存率节点的判断也是如此。

状态记录表状态值为1时的含义为不可能是最大状态值节点,可能是最小缓存率节点;状态记录表状态值为2时的含义为可能是最大状态值节点,不可能是最小缓存率节点;状态记录表状态值为3时的含义为可能是最大状态值节点,可能是最小缓存率节点。

步骤(5):选择缓存节点,并更新数据包状态值、修改状态记录表。

在每个兴趣包的请求路径上选取一个或两个拥有最大状态值的节点和最小缓存率的节点作为缓存节点缓存数据包,如果两个缓存节点是同一节点,那么只在这一个节点上缓存,否则在这两个缓存节点缓存。

客户端发出兴趣包时设置兴趣包中的最大状态值为0,最小缓存率为1;在每一个缓存节点上,将当前缓存节点的最终得到的状态值和缓存率,与兴趣包中的最大状态值和最小缓存率进行比较:如果当前缓存节点的最终得到的状态值大于兴趣包中的最大状态值,则在转发时更新兴趣包中的最大状态值,如果当前缓存节点的缓存率小于兴趣包中的最小缓存率,则在转发时更新兴趣包中的最小缓存率,根据比较结果在状态记录表中记录数据名称和状态记录表状态值;如果当前缓存节点的最终得到的状态值小于兴趣包中的最大状态值,当前缓存节点的缓存率高于兴趣包中的最小缓存率,则不修改兴趣包的最大状态值和最小缓存率;当当前缓存节点的最终得到的状态值与兴趣包的最大状态值相同或当前缓存节点的缓存率与兴趣包的最小缓存率相同时,不进行缓存;因为存在网络边缘更有利于内容的分发,所以状态值或缓存率相等时不进行替换。

响应的数据包由生产者沿兴趣包路径返回时,查询每个缓存节点中兴趣包内容名称对应的状态记录表,如果不存在记录则直接转发数据包;如果存在记录则将数据包状态值与状态记录表状态值进行与操作,如果与操作结果大于0,则对该数据包进行缓存,再将数据包状态值更新为数据包状态值与与操作结果的差值,并在状态记录表中删除记录。

与操作的规则定义为:

当状态记录表状态值为1、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为1、数据包状态值为1时,与操作结果为1;

当状态记录表状态值为1、数据包状态值为2时,与操作结果为0;

当状态记录表状态值为1、数据包状态值为3时,与操作结果为1;

当状态记录表状态值为2、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为2、数据包状态值为1时,与操作结果为0;

当状态记录表状态值为2、数据包状态值为2时,与操作结果为2;

当状态记录表状态值为2、数据包状态值为3时,与操作结果为2;

当状态记录表状态值为3、数据包状态值为0时,与操作结果为0;

当状态记录表状态值为3、数据包状态值为1时,与操作结果为1;

当状态记录表状态值为3、数据包状态值为2时,与操作结果为2;

当状态记录表状态值为3、数据包状态值为3时,与操作结果为3。

如图4,缓存命中率的实验对比图,mine为本发明的结果,可以看出在不同的参数a、c,不同的实验分组geant、wide、garr、tiscali下,本发明的缓存命中率始终高于其他方法。

其次,从图5请求路径伸缩比的实验对比图中,可以看出,在不同的实验参数a、c下,本发明的缓存命中率也都高于lce、lcd、probcache、random(bernoulli)组。

再次,如图6,不同内容集中度,不同参数t、c下,本发明的缓存命中率比其他分组高。

最后,从图7不同缓存大小的实验对比图中,在不同参数t、a,不同缓存大小下,本发明的缓存命中率也高于lce、lcd、probcache、random(bernoulli)组。

所以,从图4、图5、图6和图7中可以看出,本发明能够明显提升缓存命中率。

与现有技术相比,本发明提高了缓存的命中率,降低网络延迟,减小用户的平均请求长度;综合考虑缓存节点的状态和位置,以非常小的通信代价获得了更佳的缓存位置;不需要在数据包中增加过多字段,不会导致网络数据包的臃肿。

以上所述并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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