一种覆盖网络中的数据缓存管理方法

文档序号:7768493阅读:258来源:国知局
专利名称:一种覆盖网络中的数据缓存管理方法
技术领域
本发明属于信息工程领域,涉及一种覆盖网络中的数据缓存管理的方法。
背景技术
覆盖网络是基于现有的物理通信网络建立的一个虚拟的逻辑网络,覆盖网络不 需要修改网络层的协议,无需更换大量网络设备进行重新部署,而是在应用层加入对通 信的管理与控制来保证服务质量,可以有效节约成本。目前典型的覆盖网络如P2P网络 已经在流媒体、即时消息、在线网络游戏等领域取得了广泛的应用。一种在覆盖网络中开展的重要需求就是通过一个数据源向多个节点发送数据, 称为数据多播,而保证数据多播可靠性与可扩展性的关键是数据缓存管理方法。目前的 缓存管理方法是通过将网络中节点的地址与缓存消息的哈希值进行比较,当两者的差值 在一个指定的阈值范围内或精确匹配时就将消息缓存到指定节点。这样虽然可以实现比 较精确的缓存者(bufferer)定位,但是哈希函数是一种预先定义的计算机制,当有新节 点加入到覆盖网络中时哈希函数不能重新进行定义,导致新节点不能成为缓存者,所以 这样的缓存管理方法并不适用于动态变化的网络环境,可扩展性较差。

发明内容
针对上述存在的技术问题,本发明提出了一种能用于动态变化的覆盖网络中的 数据缓存管理方法,该方法通过对数据缓存者的均勻选择来实现数据的分布式均勻缓存。为了解决上述技术问题,本发明采用如下的技术方案 一种在覆盖网络中的数据缓存管理方法,包括以下步骤
S1、源节点SN随机选择一个邻居节点LN并向其发送数据条目/的缓存请求消息
R ;
S2、当缓存请求消息i 到达节点LN时,节点LN将缓存请求消息i 的TTL值减1;
S3、节点LN检查本地缓存是否包含缓存请求消息及,如果包含有缓存请求消息及, 则将缓存消息转发给邻居节点,然后循环执行步骤S2 ;否则执行步骤S4 ;
S4、节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,执行步骤S4-1;否 则,执行步骤S4-2:
S4-1、节点LN将缓存请求消息i 放入本地缓存,然后执行步骤S5 ; S4-2、节点LN生成随机数X,其中,0< <1,比较χ与
本地缓存的满载率/,其中,满载率/为本地缓存中已存储的数据条目个数与本地缓存所 得存储数据条目个数的比值,如果χ大于/,则执行步骤S4-1;否则,将缓存请求消息i 随机转发给邻居节点;
S5、节点LN向源节点SN发送反馈消息,源节点SN记录数据条目/的缓存者LN, 并将数据条目/发送给缓存者LN。
上述TTL的初始值为TZZb -Iog1//,其中,s为节点LN的邻居节点个数,N为
网络规模。上述节点LN将缓存请求消息i 转发给邻居节点的步骤具体为
节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,将缓存请求消息i 的 TTL值加1后随机转发给节点LN的邻居节点;否则,直接将缓存请求消息i 随机转发给 节点LN的邻居节点;
上述节点LN将缓存请求消息i 放入本地缓存的步骤具体为 节点LN检查本地缓存是否满载,如果满载,则删除本地缓存中最早存入的缓存请求 消息并将缓存请求消息放入本地缓存;否则,直接将缓存请求消息R放入本地缓存。本发明中,当源节点发出缓存请求消息i 后,每个收到缓存请求消息i 的邻居 节点将检查本地缓存中是否包含缓存请求消息及,如果包含并且此时缓存请求消息及的 TTL值为0,说明缓存请求消息i 应该被缓存到一个已经缓存了缓存请求消息i 的节点 上,则将缓存请求消息继续转发到其他节点;如果收到缓存请求消息的节点不包含 缓存请求消息及,则在缓存请求消息的TTL为0时将缓存请求消息i 缓存到本地缓存, 否则继续转发缓存请求消息及,在缓存过程中如果缓存区满则将删除最早缓存的消息来 释放空间使得及可以被缓存。与现有技术相比,本发明具有如下优点和有益效果
本发明引入了概率方法来控制是否缓存数据,能有效适应覆盖网络中节点的加入与 离开,具有良好的可扩展性;同时本发明方法还将节点是否成为缓存者的判断放在每次 节点接收到缓存请求消息时,再通过TTL值控制缓存者与数据源的距离使得缓存者均勻 分布于网络中,起到分散负载的作用,可以降低覆盖网络中“热点”的出现,提高网络 的鲁棒性。


图1为缓存者决定过程的示意图; 图2为缓存管理方法的实际拓扑示意图。
具体实施例方式本发明提出了一种覆盖网络中的缓存管理方法,该方法具体步骤如下
51、源节点SN从本地邻居节点列表中随机选择邻居节点LN并向节点LN发送数据 条目/的缓存请求消息及;
52、当缓存请求消息i 到达节点LN时,节点LN将缓存请求消息i 的TTL值减1; TTL值表示消息在网络中的生存时间,每当节点收到一个缓存请求消息时,就将缓
存缓存请求消息的TTL值减1,TTL为整数值,其初始值与网络规模有关,一般由公式 THfl =Iogat Jf计算其初始值为IH11, s为节点LN的邻居节点个数,N为网络规模;
53、节点LN检查本地缓存是否包含缓存请求消息及,如果包含有缓存请求消息及, 则将缓存消息转发给邻居节点,然后循环执行步骤S2 ;否则执行步骤S4 ;
节点LN将缓存请求消息i 转发给邻居节点的步骤具体为节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,将缓存请求消息i 的 TTL值加1后随机转发给节点LN的邻居节点;否则,直接将缓存请求消息i 随机转发给 节点LN的邻居节点;
54、节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,执行步骤S4-1;否 则,执行步骤S4-2:
S4-1、节点LN将缓存请求消息i 放入本地缓存,然后执行步骤S5 ; 节点LN将缓存请求消息i 放入本地缓存的步骤具体为
节点LN检查本地缓存是否满载,如果满载,则删除本地缓存中最早存入的缓存请求 消息并将缓存请求消息放入本地缓存;否则,直接将缓存请求消息放入本地缓存; S4-2、节点LN生成随机数X,其中,0<χ<1,比较χ与本地缓存的满载率/,其
中,满载率/可用公式/ = 计算得到,其中,《为已存储在节点LN的本地缓存中的数 据条目个数,S为节点LN的本地缓存能够存储的数据条目个数,如果χ大于/,则执行步 骤S4-1;否则,将缓存请求消息i 随机转发给邻居节点;
55、节点LN向源节点SN发送反馈消息,源节点SN记录数据条目/的缓存者LN, 并将数据条目/发送给缓存者LN。图2为一覆盖网拓扑示意图,图中所示的覆盖网络由终端节点A、B、C、D、Z 构成,网络规模为6,源节点为S,Z为缓存者,即最终接收缓存请求的目标节点,缓存 请求消息及的TTL值为4,节点A、C的缓存满载率/分别为0.6、0.4,节点B、D的缓 存中分别存在缓存请求消息及,节点D的缓存已满。下面将结合附图2对本发明作进一步说明
1)源节点S要将数据条目/缓存到覆盖网络中的其他节点上,先从自己的邻居表中 随机选出节点A,并向节点A发送一个缓存请求消息i ;
2)当缓存请求消息i 到达节点A时,节点A将缓存请求消息i 的TTL值减1,即 缓存请求消息及的TTL值变为3 ;
3)节点A检查本地缓存发现没有缓存请求消息及,节点A检查缓存请求消息i 的 TTL值,此时缓存请求消息i 的TTL值为3,节点A本地缓存的满载率/为0.6,节点A 生成随机数0.5,比较节点A生成的随机数和节点A当前缓存的满载率/,节点A生产的 随机数小于其当前缓存的满载率/,所以节点A将缓存请求消息i 转发给其邻居节点B ;
4)当缓存请求消息i 到达节点B时,节点B将缓存请求消息i 的TTL值减1,即 缓存请求消息的TTL变为2,节点B检查本地缓存发现有缓存请求消息及,节点B直 接将缓存请求消息转发给其邻居节点C ;
5)当缓存请求消息i 到达节点C时,节点C将缓存请求消息i 的TTL值减1,即 缓存请求消息及的TTL变为1 ;节点C检查本地缓存发现没有缓存请求消息及,节点C 检查缓存请求消息及的TTL值,此时,缓存请求消息i 的TTL为1,节点C本地缓存的 满载率/为0.4;节点C生成随机数0.2,小于节点C当前的缓存满载率0.4,所以节点C 将缓存请求消息转发其邻居节点D ;
6)当缓存请求消息i 到达节点D时,节点D将缓存请求消息i 的TTL值减1,即 缓存请求消息的TTL变为0,节点D检查本地缓存发现有缓存请求消息及,节点D将 缓存请求消息的TTL加1,此时缓存请求消息i 的TTL值变为1,节点D将缓存请求
5消息及转发给其邻居节点Z ;
7)当缓存请求消息i 到达节点Z时,节点Z将缓存请求消息i 的TTL值减1,即 缓存请求消息及的TTL变为0,节点Z检查本地缓存发现没有缓存请求消息i 并发现本 地缓存已满,节点Z删除最早放入本地缓存的数据条目并将缓存请求消息i 放入节点Z的 本地缓存中;
8)节点Z向源节点S发送个反馈消息告知缓存请求消息i 已经存入节点Z的本地缓 存中;
9)源节点S记录数据条目/的缓存者为节点Z,并将数据条目/发送给节点Z。
权利要求
1.一种覆盖网络中的数据缓存管理方法,其特征在于,包括以下步骤51、源节点SN随机选择一个邻居节点LN并向其发送数据条目/的缓存请求消息R ;52、当缓存请求消息i 到达节点LN时,节点LN将缓存请求消息i 的TTL值减1;53、节点LN检查本地缓存是否包含缓存请求消息及,如果包含有缓存请求消息及, 则将缓存消息转发给邻居节点,然后循环执行步骤S2 ;否则执行步骤S4 ;54、节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,执行步骤S4-1;否 则,执行步骤S4-2:S4-1、节点LN将缓存请求消息i 放入本地缓存,然后执行步骤S5 ; S4-2、节点LN生成随机数X,其中,0<χ<1,比较χ与本地缓存的满载率/,其中,满载率/为本地缓存中已存储的数据条目个数与本地缓存所 得存储数据条目个数的比值,如果χ大于/,则执行步骤S4-1;否则,将缓存请求消息i 随机转发给邻居节点;55、节点LN向源节点SN发送反馈消息,源节点SN记录数据条目/的缓存者LN, 并将数据条目/发送给缓存者LN。
2.根据权利要求1所述的覆盖网络中的数据缓存管理方法,其特征在于所述的TTL的奶始坑为TIZd =Iogi N,其中,χ为节点LN的邻居节点个数,#为网络规模。
3.根据权利要求1或2所述的覆盖网络中的数据缓存管理方法,其特征在于 所述的节点LN将缓存请求消息i 转发给邻居节点的步骤具体为节点LN检查缓存请求消息i 的TTL值是否为0,如果为0,将缓存请求消息i 的 TTL值加1后随机转发给节点LN的邻居节点;否则,直接将缓存请求消息i 随机转发给 节点LN的邻居节点。
4.根据权利要求1或2所述的覆盖网络中的数据缓存管理方法,其特征在于 所述的节点LN将缓存请求消息i 放入本地缓存的步骤具体为节点LN检查本地缓存是否满载,如果满载,则删除本地缓存中最早存入的缓存请求 消息并将缓存请求消息放入本地缓存;否则,直接将缓存请求消息放入本地缓存。
全文摘要
本发明公开了一种覆盖网络中的数据缓存管理方法,该方法通过对数据缓存者的均匀选择来实现数据的分布式均匀缓存。本发明的技术方案中引入了概率方法来控制是否缓存数据,能有效适应覆盖网络中节点的加入与离开,具有良好的可扩展性;同时还将节点是否成为缓存者的判断放在每次节点接收到缓存请求消息时,再通过TTL值控制缓存者与数据源的距离使得缓存者均匀分布于网络中,起到分散负载的作用,可以降低覆盖网络中“热点”的出现,提高网络的鲁棒性。
文档编号H04L12/56GK102014066SQ20101058492
公开日2011年4月13日 申请日期2010年12月13日 优先权日2010年12月13日
发明者朱永琼, 杨红云, 胡瑞敏, 谭小琼, 陈铙 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1