缓存处理方法、装置及系统的制作方法

文档序号:9757259阅读:696来源:国知局
缓存处理方法、装置及系统的制作方法
【技术领域】
[0001] 本发明设及互联网技术,尤其设及一种缓存处理方法、装置及系统。
【背景技术】
[0002] 随着互联网技术的飞速发展W及互联网用户数量的快速增长,基于传输控制协议 (^ansmission Control Protocol,简称:TCP)/网络互连协议(Internet Protocol,简称: IP)的现有互联网逐渐暴露出诸多问题。其中,一个重点的发展方向就是在互联网的网元中 部署绘存。
[0003] 现有技术中,缓存决定的策略采用全存(ALWAYS), ALWAYS是一种对经过某一网元 节点缓存器的所有内容都缓存的策略。具体的,首先通过每个网元节点在接收到包含内容 前缀信息的兴趣(interest)包后,该网元节点i查询该兴趣包中内容前缀信息对应的内容 是否已经存储在该网元节点i的缓存中,若是,则将存储的相应内容返回给请求该数据的 网元节点;若否,该网元节点i则将该兴趣包中包含的内容前缀信息存储在该网元节点i维 护的转发信息库(Forwarding Information Base,简称FIB)中,并将该兴趣包转发给下一 跳网元节点i+1进行上述操作;之后,当数据包传输给该网元节点i时,该网元节点i通过 查询FIB中是否存有该数据包的内容前缀信息,若是,则将该数据包的内容缓存到该网元 节点上;若否,则丢弃该数据包。
[0004] 现有的缓存决定策略中,一个数据包在经过各个网元节点时,在缓存区存储空间 允许的条件下,各个网元节点就会缓存该数据包中的相应内容,现有的缓存决定策略会造 成相容内容在各个网元节点的大量重复存储,进而造成。

【发明内容】
阳〇化]本发明提供一种缓存处理方法、装置及系统,用于在考虑不同数据包内容的流行 度的情况下,有效地利用各网络节点的缓存资源,提高效率。
[0006] 本发明的第一个方面是提供一种缓存处理方法,包括:
[0007] 接收下一跳节点发送给请求方的包含数据内容的第一数据包;
[0008] 将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗 留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
[0009] 将所述第一数据包发送给所述请求方。
[0010] 结合第一方面,在第一种可能的实现方式中,在所述接收下一跳节点发送给请求 方的包含数据内容的第一数据包之前,还包括:
[0011] 接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
[0012] 根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信 息对应的数据内容;
[0013] 若是,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求 方;
[0014] 若否,则更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点。
[0015] 结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述更新 本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
[0016] 查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述 数据内容前缀信息对应的发送接口标识添加至所述条目下;
[0017] 若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所 述新的条目下;
[0018] 查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
[0019] 结合第一方面及第一方面的第一种可能的实现方式和第二种可能的实现方式,在 第=种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
[0020] 所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点 的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区, 包括:
[0021] 对所述本节点的逗留时间W及所述第一数据包中所述数据内容对应的下一跳节 点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存 区;
[0022] 在所述将所述第一数据包发送给请求方之前,还包括:
[0023] 将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
[0024] 所述将所述第一数据包发送给请求方,包括:
[00巧]根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送 给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
[00%] 结合第一方面及第=种可能的实现方式,在第四种可能的实现方式中,还包括:
[0027] 若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下 一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存 区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并 将所述第一数据包转发给请求方;
[0028] 所述第一数据包包含所述数据内容和所述本节点的逗留时间。
[0029] 结合第一方面的第一种可能的实现方式及第二种可能的实现方式,在第五种可能 的实现方式中,所述兴趣包还包括:上一跳节点的逗留时间;
[0030] 所述更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
[0031] 查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述 数据内容前缀信息对应的发送接口标识,W及所述数据内容前缀信息对应的所述上一跳节 点的逗留时间添加至所述条目下;
[0032] 若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,化及所述 数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
[0033] 将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
[0034] 查询转发信息库FIB,将所述兴趣包发给下一跳节点。
[0035] 结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一 数据包还包括:下一跳节点的逗留时间;
[0036] 所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点 的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区, 具体包括:
[0037] 对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点 的逗留时间W及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较, 若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
[0038] 在所述将所述第一数据包发送给请求方之前,还包括:
[0039] 将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
[0040] 所述将所述第一数据包发送给请求方包括:
[0041] 根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送 给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
[0042] 结合第一方面W及第一方面的第六种可能的实现方式,在第屯种可能的实现方式 中,还包括:
[0043] 若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述 上一跳节点的逗留时间W及所述第一数据包中所述数据内容对应的下一跳节点的逗留时 间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本 节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转 发给请求方。
[0044] 结合第一方面的第五种可能的实现方式,在第八种可能的实现方式中,所述将所 述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比 较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,包括:
[0045] 对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节 点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存 区;
[0046] 在所述将所述第一数据包发送给请求方之前,还包括:
[0047] 将所述本节点的逗留时间添加至所述第一数据包中;
[0048] 所述将所述第一数据包发送给请求方,包括:
[0049] 根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送 给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
[0050] 结合第一方面W及第一方面的第八种可能的实现方式,在第九种可能的实现方式 中,还包括:
[0051] 若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述 上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存 区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并 将所述第一数据包转发给请求方。
[0052] 结合第一方面W及第一方面的上述各个可能的实现方式,在第十种可能的实现方 式中,逗留时间通过W下公式获得: 阳化引 /(巧(W二聲-y^(l -(-产)
[0054] 其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i 的缓存容量,所述Ak(i)为所述数据内容k在本节点i的到达率,所述iik(i)为其他数据 内容到达率,通过本节点i的总到达率A (i)减去所述Ak(i)获得所述
[0055] 结合第一方面W及第一方面的上述各个可能的实现方式,在第十一种可能的实现 方式中,逗留时间通过W下公式获得:
[0057] 其中,所述f (STk(i))为数据内容k在本节点i的逗留时间,所述为数据内 容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替 换的时刻,所述N为统计总次数。
[0058] 本发明的第二个方面是提供一种缓存处理装置,包括:
[0059] 接收模块,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包; W60] 比较模块,用于将所述数据内容对应的本节点的逗留时间与所述数据内容对应的 其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存 至缓存区;
[0061] 发送模块,用于将所述第一数据包发送给所述请求方。
[0062] 结合第二方面,在第一种可能的实现方式中,所述接收模块,还用于接收请求方发 送的兴趣包,所述兴趣包包含数据内容前缀信息;
[0063] 所述缓存处理装置,还包括
[0064] 查询模块,用于根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数 据内容前缀信息对应的数据内容; W65] 所述发送模块,还用于若已存储与所述数据内容前缀信息对应的数据内容,则将 包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
[0066] 更新模块,用于若已存储与所述数据内容前缀信息对应的数据内容,则更新本节 点的待定兴趣表PIT ;
[0067] 所述发送模块,还用于将所述兴趣包转发给下一跳节点。
[0068] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述更新 模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将 所述数据内容前缀信息对应的发送接口标识添加至所述条目下; W例若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所 述新的条目下;
[0070] 所述发送模块,具体用于查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
[0071] 结合第二方面及第二方面的第一种可能的实现方式和第二种可能的实现方式,在 第=种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
[0072] 所述比较模块,具体用于对所述本节点的逗留时间W及所述第一数据包中所述数 据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所 述数据内容缓存至缓存区;
[0073] 逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一 跳节点的逗留时间;
[0074] 所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标 识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的 逗留时间。
[0075] 结合第二方面及第=种可能的实现方式,在第四种可能的实现方式中,所述比较 模块,还用于若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的 下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存 区;
[0076] 所述逗留时间覆盖模块,还用于若所述缓存区已满,将所述本节点的逗留时间覆 盖所述第一数据包中的下一跳节点的逗留时间;
[0077] 所述发送模块,具体用于将所述第一数据包转发给请求方;
[0078] 所述第一数据包包含所述数据内容和所述本节点的逗留时间。 阳079] 结合第二方面的第一种可能的实现方式及第二种可能的实现方式,在第五种可能 的实现方式中,所述兴趣包还包括:上一跳节点的逗留时间;
[0080] 所述更新模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应 的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,W及所述数据内容前缀信 息对应的所述上一跳节点的逗留时间添加至所述条目下;
[00川若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,化及所述 数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
[0082] 所述逗留时间覆盖模块,还用于将所述本节点的逗留时间覆盖所述兴趣包中的上 一跳节点的逗留时间;
[0083] 所述发送模块,还用于查询转发信息库FIB,将所述兴趣包发给下一跳节点。
[0084] 结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一 数据包还包括:下一跳节点的逗留时间;
[00化]所述比较模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点 的逗留时间、所述本节点的逗留时间W及所述第一数据包中所述数据内容对应的下一跳节 点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存 区;
[0086] 所述逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的 下一跳节点的逗留时间;
[0087] 所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标 识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的 逗留时间。
[0088] 结合第二方面W及第二方面的第六种可能的实现方式,在第屯种可能的实现方式 中,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容 前缀对应的所述上一跳节点的逗留时间W及所述第一数据包中所述数据内容对应的下一 跳节点的逗留时间,判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
[0089] 所述逗留时间覆盖模块,用于若所述缓存区已满,将所述本节点的逗留时间覆盖 所述第一数据包中的下一跳节点的逗留时间;
[0090] 所述发送模块,具体用于将所述第一数据包转发给请求方。
[0091] 结合第二方面的第五种可能的实现方式,在第八种可能的实现方式中,所述比较 模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述 本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至 缓存区;
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1