本发明属于计算机通信网络领域,涉及信息中心网络架构下的内容缓存技术,尤其涉及一种基于社会关系的内容缓存方法。
背景技术
通信网络已经发展成为以内容分发和检索为主的网络,而网络技术仍然只涉及主机之间的连接。为了加速内容的分发,已有研究提出了一种将内容作为核心的未来网络架构——信息中心网络(icn)。icn通过名称检索内容并进行路由转发。在icn中,每个icn路由器都有一个缓存经过它的数据的缓存空间。网络中的这种缓存策略已经被广泛研究并且大大减小了内容检索的时间。
已有基于d2d缓存的内容分发方法存在以下不足:
(1)现有的icn缓存技术主要集中在网络资源利用上,但用户社会关系的因素却被忽略。然而,社会关系有助于用户分享内容从而提高内容分发效率。
(2)现有技术方案进行网络缓存节点选择时,主要思想是根据某个准则选择网络中的重要节点进行内容缓存。存在的问题是,重要节点往往是固定的,没有随着网络拓扑和内容流行度进行动态变化,造成某些重要节点负担过重。
技术实现要素:
本申请的目的在于提供一种基于社会关系的内容缓存方法,结合用户之间的社会关系和网络参数,设计一个内容社交关系矩阵,该矩阵随着网络拓扑和用户之间社会关系的改变而改变,用户根据该矩阵进行信息转发从而获取请求内容,并进行内容缓存决策和替换。
为达到上述目的,本申请提供一种基于社会关系的内容缓存方法,包括:一种基于社会关系的内容缓存方法,包括:
根据网络拓扑和用户的社会关系,建立内容社交关系矩阵;
当某个请求节点需要请求内容时,根据所述内容社交关系矩阵逐层查找缓存所述请求内容的节点;
若所述内容社交关系矩阵中存在被命中的节点,则将缓存的所述请求内容从所述被命中的节点经路由原路转发至所述请求节点。
如上的,其中,预先对节点重要性进行排序,按顺序选择预设数量的节点作为全局重要节点;在路由转发过程中,当遇到全局重要节点时,为所述全局重要节点保留请求内容副本。
如上的,其中,设置计数器,在为全局重要节点保留请求内容副本后,更新所述计数器,直至所有全局重要节点中均保留有请求内容副本。
如上的,其中,在所有全局重要节点中均保留有请求内容副本后,路由转发过程中,当监测到中间转发节点的相邻节点为全局重要节点,且满足如下条件时,将中间转发节点的上一节点作为全局重要节点,删除该相邻的重要节点中缓存的请求内容副本:
a.该相邻的全局重要节点对中间转发节点的重要性小于中间转发节点的上一个节点对中间转发节点的重要性;
b.中间转发节点的上一个节点是所述相邻的全局重要节点最重要的节点;
c.中间转发节点的上一个节点对所述相邻的全局重要节点的重要性大于所述相邻的全局重要节点对所述中间转发节点的上一个节点的重要性。
如上的,其中,当某个请求节点j需要请求内容时,根据所述内容社交关系矩阵中节点j的相对重要性uij,向其最高的节点i发出请求,当节点i存在所述请求内容时,则将节点i中的请求内容转发至节点j。
如上的,其中,当节点i不存在所述请求内容时,则根据所述内容社交关系矩阵中节点i的相对重要性uxi,向其最高的节点x发出请求,以此类推,直至发生缓存命中。
如上的,其中,当在有限跳数之内没有发生缓存命中,则向外网发出请求。
如上的,其中,根据网络拓扑和用户的社会关系,建立的所述内容社交关系矩阵为:
其中,uij表示节点的相对重要性,即节点i对节点j的重要性,ii表示节点i的节点自身重要性,节点i自身的重要性由节点的社会关系决定。
如上的,其中,计算所述节点i自身的重要性ii,具体为:ii=bi·ψ(i,c);
具体的,bi为节点i的介数,
如上的,其中,计算所述节点i的节点相对重要性uij,具体为:
本申请实现的有益效果如下:
(1)结合用户社会关系因素,有助于用户分享内容,从而提高内容分发的效率;
(2)随着网络拓扑和内容流行度的动态变化,减轻某些重要节点的缓存负担。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种基于社会关系的内容缓存方法流程图;
图2为路由转发过程中,节点监测的具体操作流程图;
图3为本申请提供的一种基于社会关系的内容缓存装置图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明考虑无线社交网络场景(蜂窝网络基站或者wi-fi的无线网络覆盖),社交网络用户节点之间对等连接,网络拓扑由用户节点构成,在无线网络覆盖范围内,节点通过信道广播路由转发,在节点之间建立联系通信。在无线网络覆盖区域,大多数社交用户根据兴趣建立了虚拟的社交关系,频繁的通信联系及内容分享使他们形成“朋友”关系,具有“小世界”的特性。对具有相似兴趣度的用户更倾向于请求相同的信息,并且进行分享,使得通信交流可能性更大。而当内容无法得到满足时,则将会脱离这个关系,向范围更广的互联网发出请求。
实施例一
本发明实施例一提供一种基于社会关系的内容缓存方法,如图1所示,包括:
步骤11:初始化,根据网络拓扑和用户的社会关系建立内容社交关系矩阵;
示例性的,假设在整个网络中有m个节点,初始建立的内容社交关系矩阵为:
其中,该矩阵随着社会关系的变化不断动态变化,uc为内容社交关系矩阵,针对内容c(即为interest包)的缓存由该矩阵决定;uij表示节点的相对重要性,即i对j的重要性,ii表示节点i的节点自身重要性,i节点自身的重要性由节点的社会关系决定。
步骤12:当某个请求节点需要请求内容时,根据内容社交关系矩阵逐层查找缓存该请求内容的节点,若存在被命中的节点,则将缓存的请求内容从被命中的节点经路由原路转发至请求节点;
具体的,当某个节点j需要请求内容时,根据内容社交关系矩阵中节点j的相对重要性uij,向相对重要性最高的节点i发出请求:
当i节点存在所述请求内容时,则将i节点中的请求内容转发至节点j;
当i节点不存在所述请求内容时,则根据所述内容社交关系矩阵中节点i的相对重要性uxi,向相对重要性最高的节点x发出请求,以此类推,直至发生缓存命中,命中节点将其中的请求内容按原路经路由转发至请求节点j;
当在有限跳数之内没有发生缓存命中,则向外网发出请求。
实施例二
本发明实施例二为本发明的优选实施例,具体包括:
本实施例中,网络控制器维护内容社交关系矩阵,预先按节点自身重要性由高到低进行排序,选择前预设数量(为方便描述,在此将预设数量定义为l)的节点作为全局重要节点;
l的值根据内容的重要程度β和整个网络的节点总数m决定,即l=β*m,l的值随着网络用户对内容的需求进行调整。
在路由转发过程中,当遇到全局重要节点时,在该全局重要节点的缓存空间中保留一个请求内容副本;
优选的,在网络中维护一个计数器,用于记录副本保留的次数,每次保留完一次副本后,更新计数器当前数值加一,直至所有全局重要节点中均保留请求内容副本;
参见图2,在所有全局重要节点均保留有请求内容副本后,路由转发过程中,每到一个节点都进行监测,具体操作如下:
步骤21:监测中间转发节点j的相邻节点是否存在全局重要节点,如果是,则执行步骤22,否则继续监测中间转发节点j的上一个节点i;
步骤22:判断该全局重要节点v对中间转发节点j的重要性是否小于中间转发节点j的上一个节点i对中间转发节点j的重要性,如果是,则执行步骤23,否则继续监测中间转发节点的上一个节点;
全局重要节点v对中间转发节点j的重要性为内容社交关系矩阵中的uvj,中间转发节点j的上一个节点i对中间转发节点j的重要性为内容社交关系矩阵中的uij,即判断uvj是否小于uij;
步骤23:判断中间转发节点j的上一个节点i是否为全局重要节点v最重要的节点,即判断uiv>uxv(x为除i以外的其他节点)是否成立,如果是,则执行步骤24,否则继续监测中间转发节点的上一个节点;
步骤24:判断中间转发节点的上一个节点i对全局重要节点v的重要性是否大于全局重要节点v对中间转发节点的上一个节点i的重要性,即判断uiv>uvi是否成立,如果是,则执行步骤25,否则继续监测中间转发节点的上一个节点;
步骤25:删除全局重要节点v中缓存的内容,将中间转发节点的上一个节点i作为全局重要节点并缓存此内容的副本;
在此需要说明的是,上述步骤a至步骤d的判断操作无先后顺序,可同时执行。
在此方案中,提出全局重要节点的概念,全局重要节点在l分发完毕之前主要由节点自身重要性ii决定,在l分发完毕之后主要由节点相对重要性uij决定;
在l分发完毕之前主要考虑用户偏好和网络的拓扑结构,让内容c主要分布在对其兴趣度较大的点,从而减少获取时间;
在l分发完毕之后该内容c在网络中的分布逐渐稳定,开始考虑空间、缓存替换率等因素,使重要节点向缓存空间较大的节点转移,从而减轻缓存过多内容的节点的负担。
实施例三
本发明实施例三对节点的特性进行详细描述,具体包括:
节点特性包括节点介数、节点自身重要性和节点相对重要性;
节点介数:如果一对节点间的最短路径(距离)有gjk条,其中有gjk(i)条经过节点i,那么节点i对这一对节点的贡献为gjk(i)/gjk,把节点i对所有节点对的贡献累加起来再除以节点对的总数,就可以得到节点i的介数bi,即
节点自身重要性:表示对于内容c,节点i在整个网络中的综合重要程度;根据节点介数和用户自身的兴趣偏好,计算得到内容c的用户自身重要性ii,具体为:
ii=bi·ψ(i,c)
ii的值越大,则节点i对内容c越偏好,切对于网络资源的控制能力越强,即该节点在整个网络中越重要;
节点相对重要性:用于表示节点间的关联程度,节点相对重要性能够随着网络因素的实时变化而动态改变,网络因素包括网络拓扑、用户偏好、缓存空间、缓存替换率,在任一网络因素发生变化时,选择更合适的缓存节点,提高缓存命中率,节约网络资源;
节点相对重要性
uij表示i对j的重要性,uij越大,说明i对j越重要,那么i给j提供信息的可能性就越大,uij不仅可以决定缓存节点还可以决定路由的路径,是影响缓存性能的一个重要因素;
进一步的,用户间社会距离drij由用户间兴趣相似度和用户物理传输距离决定,具体为:
其中,
用户间兴趣相似度具体为:
其中,
其中,p(x(wk)|i)为用户i在历史信息中选择wk主题内容的概率;p(x(wk))为全网中wk主题内容的概率;pref(i,wk)为用户的偏好函数,反映一个用户对内容的感兴趣度,间接反映一个用户请求一个内容的概率,假设网络中所有内容主题的集合w=(w1,w2,...,wg),针对某一个特定内容c有k个主题,即
实施例四
本发明实施例四对内容社交关系矩阵进行详细描述:
内容社交关系矩阵表示对于一个指定内容,网络中每个节点之间的重要性关系,是一个在内容和社会关系两个维度上不断动态更新的全局矩阵,对于相同用户来说,用户对不同内容的偏好度是不同的,因此不同的内容对应的一个不同的内容社交关系矩阵,这样有效地避免了所有内容都缓存在相同的几个重要节点而造成的节点缓存负担过重的问题;对于同一个内容,根据节点之间的用户偏好相似度以及网络的物理结果,该矩阵表示实时每个节点在全局节点中的重要程度以及节点之间相对的重要性。
假设整个网络中有m个节点,建立一个内容社交关系矩阵,矩阵中节点重要性随着社会关系变化不断动态变化,该矩阵的初始状态为:
其中,uij表示相关节点相对重要性,即i对j的重要性;ii表示节点i自身重要性;
内容社交关系矩阵的更新包括内容维度上的更新和社会关系维度上的更新:
对于内容维度的更新,由于用户对于不同内容的偏好度不同,导致节点相对重要性uij和节点自身重要性ii都不同,因此,当有新的内容进入网络时,更新内容社交关系矩阵;
对于社会关系维度上的更新,由于用户的移动性,网络结构和用户之间的社交关系都在实时变化,因此,每隔一段时间,节点相对重要性计算公式中的参数si和ri改变,重新计算uij,当社会关系发生变化时,drij和dj也随之发生改变,从而导致uij改变,矩阵局部更新;需要说明的是,内天社交关系矩阵不需要全部更新,只需要更新社会关系改变的节点,从而减少运算量。
实施例五
本发明实施例五提供一种基于社会关系的内容缓存装置,如图3所示,包括:
创建模块31,用于根据整个社交网络中的节点数,建立内容社交关系矩阵;
查找模块32,用于当某个请求节点需要请求内容时,根据内容社交关系矩阵逐层查找缓存该请求内容的节点;
转发模块33,用于将缓存的请求内容经路由原路转发至该请求节点。
内容缓存装置还包括选择模块34,用于预先对节点重要性进行排序,按顺序选择预设数量的节点作为全局重要节点;
对应的,转发模块33还用于在路由转发过程中,当遇到全局重要节点时,为全局重要节点保留请求内容副本。
优选的,选择模块34中包括计数器340,在转发模块33为全局重要节点保留请求内容副本后,更新计数器340,直至所有全局重要节点中均保留有请求内容副本。
进一步的,转发模块33包括监测单元331、判断单元332和处理单元333;
监测单元331,用于在所有全局重要节点中均保留有请求内容副本后,路由转发过程中,当监测到中间转发节点的相邻节点为全局重要节点时,触发处理单元进行操作;
判断单元332,用于判断相邻的全局重要节点对中间转发节点的重要性是否小于中间转发节点的上一个节点对中间转发节点的重要性;还用于判断中间转发节点的上一个节点是否是所述相邻的全局重要节点最重要的节点;还用于判断中间转发节点的上一个节点对所述相邻的全局重要节点的重要性是否大于所述相邻的全局重要节点对所述中间转发节点的上一个节点的重要性;
所述处理单元333,用于当所述判断单元332判断均为是时,将中间转发节点的上一个节点对所述相邻的全局重要节点的重要性大于所述相邻的全局重要节点对所述中间转发节点的上一个节点的重要性。
更进一步的,查找模块32包括内部请求单元321、判断单元322和外部请求单元323;
内部请求单元321,用于当某个请求节点j需要请求内容时,根据所述内容社交关系矩阵中节点j的相对重要性uij,向其最高的节点i发出请求;
判断单元322,用于判断节点i中是否有所述请求内容;
内部请求单元323,还用于当判断单元322判断节点i中不存在请求内容时,根据内容社交关系矩阵中节点i的相对重要性uxi,向其最高的节点x发出请求,以此类推,直至发生缓存命中;
对应的,转发模块33,具体用于当判断单元322判断所述节点i中存在请求内容时,将节点i中的内容转发至请求节点j;当内部请求单元发生缓存命中后,将命中节点中的请求内容按原路经路由转发至请求节点j;
外部请求单元323,用于当在有限跳数之内没有发生缓存命中,则向外网发出请求。
根据所述公开的实施例,可以使得本领域技术人员能够实现或者使用本发明。对于本领域技术人员来说,这些实施例的各种修改是显而易见的,并且这里定义的总体原理也可以在不脱离本发明的范围和主旨的基础上应用于其他实施例。以上所述的实施例仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。