本发明涉及信息中心网络技术领域,具体是涉及一种基于请求内容关联性的icn网络预缓存方法。
背景技术
随着互联网技术的广泛普及与应用,当前的网络体系出现了诸多不足,严重影响互联网的进一步发展,目前,网络应用主体已由硬件共享转为文字信息、图像和视频的内容服务,用户关注的不再是内容存储在哪里,而是内容本身,以及内容检索与传输速度、质量和安全性,因此,基于主机的通信模型已经不适合当前网络发展的需要。
近年来,将内容与主机分离的改进方法引起了学术界的广泛关注,以内容为中心的网络成为未来网络发展的重要模式,信息中心网络(informationcentricnetworking,icn)直接把内容作为网络处理的基本对象,将内容的存储地址,安全性以及可访问性与内容本身分离开来,并且赋予路由节点缓存的能力,其优势在于极大地降低了用户的请求时延,节省了网络带宽,从而提升了网络的性能。
缓存作为icn网络的特征之一,其极大地减少了网络传输流量,降低了网络拥塞。icn网络通过缓存将用户高请求频度的内容保留在网络之中,使得用户可以以最短的时间获得所需内容,因此,将缓存的概念加入icn网络提升了网络性能,在一定程度上提高了用户体验,这里,如何在具有缓存能力的网络设备中存放内容来提高网络性能成为一个实际存在的问题,也就是说,网络中的内容选择哪些内容进行存储,选择的这些内容放置在哪些节点上。
根据cisovni报告的显示,在2018年中,视频类应用产生的网络流量占据网络总流量的79%,其中,互联网上请求内容的产生相关流量将超过97.5%。而现有的方案大都没有考虑内容分块后,用户对同一内容各块请求之间的关联性,以此进行同一内容后续请求块的预缓存,另外,缓存算法设计时,各请求内容块的流行度都是预先设定的,无法体现内容块的真实请求情况。
因此,根据实际应用的流量分布情况,研究一种基于请求内容关联性的icn网络预缓存方法对于网络性能的提升是至关重要的。
技术实现要素:
为了解决上述技术问题,本发明提供了一种基于请求内容关联性的icn网络预缓存方法,本发明利用用户请求内容块,预先缓存用户请求内容块的后续内容块,设置逗留时间,并将流行内容块推送至网络边缘,降低用户请求时延,为信息路由快速转发提供技术支持。
本发明所采用的技术方案是:
一种基于请求内容关联性的icn网络预缓存方法,包括以下步骤:
步骤s1、模型定义:将网络模型定义为无向图g=(v,e),其中v={v1,v2,l,vw}为网络节点集合,即路由器节点,下标w是指网络节点的个数,e是节点间边的集合;ei,j=(vi,vj)∈e表示节点vi、vj之间的没有方向的链路;
将网络中一组内容集合定义为o={o1,o2,l,ok,l,om},其中m表示网络中内容的数量,将一个内容ok划分成nk个块,记为
步骤s2、预缓存存储决策:用户通过路由器节点向内容源服务器css发出关于内容ok,m的兴趣包
步骤s3、预缓存内容的推进:若路由器节点收到的是兴趣包
若缓存节点收到的是预缓存兴趣包,内容源服务器css响应预缓存兴趣包,并发送该内容ok,m剩余块的预缓存数据包,并设置预缓存内容的预逗留时间;
步骤s4、逗留时间的计算:内容源服务器css根据包的类型分别对逗留时间进行设置,对于用户请求的内容ok,m,根据滑动窗口动态的改变逗留时间,对于预缓存的内容,设置临时缓存时间,防止预缓存内容长时间占用存储空间;
步骤s5、缓存替换策略:随着路由器节点中缓存内容数量的增加,存储空间逐渐减少,当路由器节点中存储空间为0时,新请求的内容是否进行缓存则需要根据缓存替换策略决定。
进一步的,步骤s2中的兴趣包
进一步的,用户到内容源服务器css之间的路径lio中的路由器跳数为h,内容ok,m的后续块的数量为nk-m块;步骤s2中在对内容ok,m的后续块进行存储时包括以下步骤:
步骤s21、内容源服务器css根据用户请求的兴趣包
步骤s22、计算路径lio中路由器节点缓存内容的数量f:
步骤s23、计算存储内容与存储节点之间的关系q:
步骤s24、将内容ok,m的后续块发送到路由器节点vq进行缓存。
进一步的,步骤s3在对内容ok,m的局部活跃度lacc进行计算时,分别对
式中,γ为权值参数且γ>1,k为滑动窗口的宽度参数,即时间窗口由k个时长为t的时隙构成,
若
若
进一步的,步骤s5中的缓存替换策略包括:对于预缓存的内容,若在预缓存的时间内,该内容没有被用户请求,则该内容将很快处于可删除状态;若新请求的内容到达时,处于删除状态的内容块将会优先被替换掉;若路由器节点的存储空间中不存在删除状态的内容块,新到达的内容将会替换掉路由器节点中具有最小逗留时间的内容块。
与现有技术相比,本发明的有益效果是:本发明中,通过分析icn网络中用户请求内容块之间的联系特性,利用用户请求内容块之间的相关性,设计了一种节点之间协作的预缓存策略。该策略针对现有缓存策略没有充分考虑用户多次请求之间关系的特性,引入了预缓存的方式,在一定程度上降低了用户的请求时延问题,同时,根据请求内容的流行性问题,逐步的将流行的内容放置在网络的边缘。
附图说明
图1是本发明的流程示意图;
图2是本发明中路由器节点对兴趣包进行处理的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明中,通过分析icn网络中用户请求内容块之间的联系特性,利用用户请求内容块之间的相关性,设计了一种节点之间协作的预缓存策略。该策略针对现有缓存策略没有充分考虑用户多次请求之间关系的特性,引入了预缓存的方式,在一定程度上降低了用户的请求时延问题。同时,根据请求内容的流行性问题,逐步的将流行的内容放置在网络的边缘。
下面详细说明缓存策略的细节:
网络模型定义为无向图g=(v,e),其中v={v1,v2,l,vw}为网络节点集合,即路由器节点,下标w是指网络节点的个数,e是节点间边的集合,其中ei,j=(vi,vj)∈e表示节点vi、vj之间的没有方向的链路,网络中一组内容集合为o={o1,o2,l,ok,l,om},其中m表示网络中内容的数量,一个内容ok划分成nk个块,记为
(一)内容块的局部活跃度
为了体现内容请求的动态性,我们采用动态滑动窗口机制对内容块的活跃度进行动态地计算与更新,兼顾内容对象的历史请求热度和当前内容块的新颖性。
定义1:内容块局部活跃度(localactivityofcontentchunk,lacc)用户第x+1次请求内容块ok,i的时刻为tx+1,与该时刻相关的滑动窗口内的内容被请求的次数称为内容块局部活跃度,
其中,k为滑动窗口的宽度参数,即时间窗口由k个时长为t的时隙构成,
我们从中可以看出,滑动窗口中靠前时隙中的请求次数对于lacc的影响较小,相反,靠后的时隙对lacc的影响较大,该参数降低了历史请求对于lacc的影响,既保证了内容的历史请求信息对当前信息的影响,又保证了请求的即时性,使得lacc的值更加真实地反映当前的结果。
(二)包结构
为了区分由用户发起的报文与预缓存的报文,本发明分别将其称作兴趣包(interestpacket)、预缓存兴趣包(pre-cacheinterestpacket)、数据包(datapacket)以及预缓存数据包(pre-cachedatapacket);
这里预缓存兴趣包与预缓存数据包表示用于执行预缓存操作的包,该预缓存数据包是与用户请求的内容块属于同一内容的后续内容块封装成的包,即用户请求ok,i,则将内容ok所属的
由于在ndn中,没有经过请求的数据包,也就是说,在pit表中没有该条记录,路由节点将会很快删除,因此,达不到预缓存的效果,为此,本文引入syntheticpre-cacheinterestgenerator产生兴趣包。此时,若预缓存的内容已经放置在用户边缘路由器vi到内容源服务器(contentsourceserver,css)形成的路径lio中,即lio=(ei,i+1,ei+1,i+2,k),此时,css将收不到该兴趣包,同时路径lio中各路由器将不会重复缓存该数据包。
为了实现以上叙述的情况,这里有两个问题需要考虑(1)如何感知兴趣包经过的路径,让数据包(预)缓存在lio路径上;(2)(预)缓存的内容将会占用cs存储空间,如何合理的设置预缓存内容在cs中的逗留时间。为了解决第一个问题,在兴趣包添加字段routeridlist(ril)。该字段表示用户发起的兴趣包到css所经过的路由器的层级号的集合。此时,兴趣包每经过一跳路由,就会将路由器id添加到列表ril字段中。另外,在数据包和预缓存数据包中添加了缓存节点标识(cachenodeidentifier,cni)。cni用于标识数据包将缓存的在哪个位置。这里,cni有两个作用:
(1)css将通过该字段将内容(预)缓存到对应的路由节点上,此时,该字段对应的是节点在该条路径上的路由器层级号;(2)在用户请求时,通过捕捉流行度的变化,设置该字段为0或者-1,当下一跳节点收到该数据包时,检查cni字段。当该字段为0后,就会缓存该内容,若为-1,表示该路由器只需要转发而不需要缓存该内容。为了解决第二个问题,添加了lacc字段,lacc表示该内容对应的局部活跃度,用于存储位置变化和内容逗留时间的计算。
在路由节点vi收到关于内容
图2中展现了节点对兴趣包的处理流程,其中,标号1处产生的为兴趣包,标号2处产生预缓存兴趣包,节点对ip的处理过程如下:节点收到关于某内容的兴趣包,如果其cs中存在该内容,则节点将会复制该内容,并将复制内容返回给用户,在这个过程中,该节点将会计算
(三)合作的预缓存算法
一个内容被分成若干块后,如果用户想要获取完整信息,之后将会连续的发出对同一内容的后续块的请求,从这个角度考虑,在特定用户请求了某一内容ok,i后,若同时将内容ok第i块以后的若干块存储在该条路径中,必然会降低该用户对剩余块的请求响应时间,提高用户就近获取所需块的可能性,用户发起请求,当css收到兴趣包,会将后续的块继续发送给用户,根据兴趣包中ril字段,将数据包、预缓存数据包缓存在后半条所属的路由器中。
如图1所示,本发明包括模型定义、预缓存存储决策、预缓存内容的推进、逗留时间的计算以及缓存替换策略等步骤,以下对各个步骤进行详细说明:
1.预缓存存储决策
css依据收到的兴趣包,主动地将用户请求的内容的后续块发送给指定的路由器节点。假设用户请求内容ok含有nk块,当前用户请求的内容块为ok,m,用户到css的路由跳数为h,则关于该请求内容的后续块的数量为nk-m块,其中路径lio中每个路由器缓存内容的数量f约为:
为了充分利用边缘节点,本文将预缓存的内容放置在路径lio的一半路径以后,其中存储的内容与缓存节点的对应关系为:
这里,q代表路由节点的下标,即将内容ok,j发送到节点vq进行缓存,j表示当前将要缓存内容ok的第j块,初始值设为当前用户请求块的下标(j≥m)。例如,用户请求的内容块ok,m,因此j的初始值设为m。
2.预缓存内容的推进
为了将流行的内容推送至网络边缘,本发明根据内容的lacc进行内容块的推进。当缓存节点收到兴趣包
(1)若
(2)若
(3)当缓存节点收到的是预缓存兴趣包,则说明该兴趣包是基于用户请求内容产生的内容预请求,css响应预缓存兴趣包,并发送该剩余块的预缓存的数据包。当对应的层级号的路由器收到预缓存数据包后,该节点将会提取预缓存数据包中的内容。为了节省缓存空间,设置预缓存内容的预逗留时间ttem。预逗留时间的设置节省了用户请求后续内容块的时间。
3.逗留时间的计算
针对包的类型,分情况进行逗留时间的设置,对于用户请求的数据包,根据滑动窗口,动态的改变逗留时间时间。对于预缓存的内容,设置临时缓存时间,防止预缓存内容长时间占用存储空间。
(1)请求内容块的逗留时间
内容块的逗留时间基于其所属的lacc值动态改变,网络中越流行的内容块,其lacc值越大,相应地,所对应的逗留时间应该更长,若
如果用户请求的内容块为第一次请求(lacc=1),这时沿途路由节点不存在该资源,内容请求需要发送至css以响应,则css依据缓存存储决策进行内容的存储选择,对应的缓存时间设置为基础逗留时间tbasic,之后若用户再请求该内容块时,其对应的逗留时间变化应该根据lacc的值,并以tbasic为基础,进行更新,
从上述式子中,我们可以看出,lacc的值越大,逗留时间的值越大,即lacc与逗留时间(sojourntime,st)之间是正比的关系,这体现了内容越活跃,流行度越大,对应的存储时间越长。
(2)预缓存内容的逗留时间
本发明中,根据用户可能在短时间内发送对同一内容不同内容块的请求,提出了内容块的预缓存策略,通过用户请求内容块,预先缓存所属同一内容的后续内容块,以此减少用户的请求时延,为了防止预缓存的内容长时间的占用cs的存储空间,设置预缓存内容的临时缓存时间pst=ttem,因此,临时缓存内容pst的取值需要依用户对内容块的平均发送间隔来进行设置,该过程与内容块实际的局部活跃度是无关的,也就是说,预缓存的内容块的预逗留时间pst,要随着预缓存块的顺序依据请求的间隔进行设定,当用户请求内容后,依据lacc的值进行动态的更新,当预缓存的内容第一次请求时,lacc的值为1,根据存储时间策略,则有pst(1)=tbasic。
4.缓存替换策略
随着节点中缓存内容数量的增加,存储空间逐渐减少,当节点中存储空间为0时,新请求的内容是否进行缓存则需要根据缓存替换策略决定,对于预缓存的内容,当在预缓存的时间内,该内容没有被用户请求,则该内容将很快处于“可删除”状态,当新请求的内容到达时,处于“删除”状态的内容块将会优先被替换掉,这里还有一种情况,即当缓存空间中不存在“删除”状态的内容块,新到达的内容将会替换掉cs中具有最小逗留时间的内容块。
假设css中含有用户请求的数据块ok,1:ok,5,用户r1:r5为内容请求者,
(1)用户发送对内容块ok,1的请求兴趣包
(2)用户r2发送对内容块o1,1:o1,3的请求兴趣包
(3)在情况(2)下,假设该次请求中,ok,3的活跃度降低,也就是说,
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。