CN105519054A - 缓存处理方法、装置及系统 - Google Patents
缓存处理方法、装置及系统 Download PDFInfo
- Publication number
- CN105519054A CN105519054A CN201380000841.6A CN201380000841A CN105519054A CN 105519054 A CN105519054 A CN 105519054A CN 201380000841 A CN201380000841 A CN 201380000841A CN 105519054 A CN105519054 A CN 105519054A
- Authority
- CN
- China
- Prior art keywords
- data content
- residence time
- node
- packet
- hop node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种缓存处理方法、装置及系统,其中,缓存处理方法,其特征在于,包括:接收下一跳节点发送给请求方的包含数据内容的第一数据包;将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区;将第一数据包发送给所述请求方。从而依据数据内容在不同节点的逗留时间的不同长短,对数据内容进行缓存,避免了每个节点对于同样的数据内容重复储存造成的缓存空间资源的浪费,从而在提高缓存空间资源利用率的同时,丰富了缓存数据内容的多样性,提高请求者通过本节点获取到该数据内容的命中率,减少总时延。
Description
技术领域
本发明涉及互联网技术,尤其涉及一种缓存处理方法、装置及系统。
背景技术
随着互联网技术的飞速发展以及互联网用户数量的快速增长,基于传输控制协议(TransmissionControlProtocol,简称:TCP)/网络互连协议(InternetProtocol,简称:IP)的现有互联网逐渐暴露出诸多问题。其中,一个重点的发展方向就是在互联网的网元中部署缓存。
现有技术中,缓存决定的策略采用全存(ALWAYS),ALWAYS是一种对经过某一网元节点缓存器的所有内容都缓存的策略。具体的,首先通过每个网元节点在接收到包含内容前缀信息的兴趣(interest)包后,该网元节点i查询该兴趣包中内容前缀信息对应的内容是否已经存储在该网元节点i的缓存中,若是,则将存储的相应内容返回给请求该数据的网元节点;若否,该网元节点i则将该兴趣包中包含的内容前缀信息存储在该网元节点i维护的转发信息库(ForwardingInformationBase,简称FIB)中,并将该兴趣包转发给下一跳网元节点i+1进行上述操作;之后,当数据包传输给该网元节点i时,该网元节点i通过查询FIB中是否存有该数据包的内容前缀信息,若是,则将该数据包的内容缓存到该网元节点上;若否,则丢弃该数据包。
现有的缓存决定策略中,一个数据包在经过各个网元节点时,在缓存区存储空间允许的条件下,各个网元节点就会缓存该数据包中的相应内容,现有的缓存决定策略会造成相容内容在各个网元节点的大量重复存储,进而造成。
发明内容
本发明提供一种缓存处理方法、装置及系统,用于在考虑不同数据包内容的流行度的情况下,有效地利用各网络节点的缓存资源,提高效率。
本发明的第一个方面是提供一种缓存处理方法,包括:
接收下一跳节点发送给请求方的包含数据内容的第一数据包;
将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
将所述第一数据包发送给所述请求方。
结合第一方面,在第一种可能的实现方式中,在所述接收下一跳节点发送给请求方的包含数据内容的第一数据包之前,还包括:
接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
若是,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
若否,则更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
结合第一方面及第一方面的第一种可能的实现方式和第二种可能的实现方式,在第三种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,包括:
对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述将所述第一数据包发送给请求方,包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第一方面及第三种可能的实现方式,在第四种可能的实现方式中,还包括:
若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第一方面的第一种可能的实现方式及第二种可能的实现方式,在第五种可能的实现方式中,所述兴趣包还包括:上一跳节点的逗留时间;
所述更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
查询转发信息库FIB,将所述兴趣包发给下一跳节点。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,具体包括:
对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述将所述第一数据包发送给请求方包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第一方面以及第一方面的第六种可能的实现方式,在第七种可能的实现方式中,还包括:
若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方。
结合第一方面的第五种可能的实现方式,在第八种可能的实现方式中,所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,包括:
对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间添加至所述第一数据包中;
所述将所述第一数据包发送给请求方,包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第一方面以及第一方面的第八种可能的实现方式,在第九种可能的实现方式中,还包括:
若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方。
结合第一方面以及第一方面的上述各个可能的实现方式,在第十种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
结合第一方面以及第一方面的上述各个可能的实现方式,在第十一种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
本发明的第二个方面是提供一种缓存处理装置,包括:
接收模块,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包;
比较模块,用于将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
发送模块,用于将所述第一数据包发送给所述请求方。
结合第二方面,在第一种可能的实现方式中,所述接收模块,还用于接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
所述缓存处理装置,还包括
查询模块,用于根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
所述发送模块,还用于若已存储与所述数据内容前缀信息对应的数据内容,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
更新模块,用于若已存储与所述数据内容前缀信息对应的数据内容,则更新本节点的待定兴趣表PIT;
所述发送模块,还用于将所述兴趣包转发给下一跳节点。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述更新模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
所述发送模块,具体用于查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
结合第二方面及第二方面的第一种可能的实现方式和第二种可能的实现方式,在第三种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述比较模块,具体用于对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第二方面及第三种可能的实现方式,在第四种可能的实现方式中,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,还用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第二方面的第一种可能的实现方式及第二种可能的实现方式,在第五种可能的实现方式中,所述兴趣包还包括:上一跳节点的逗留时间;
所述更新模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
所述逗留时间覆盖模块,还用于将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
所述发送模块,还用于查询转发信息库FIB,将所述兴趣包发给下一跳节点。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述比较模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第二方面以及第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方。
结合第二方面的第五种可能的实现方式,在第八种可能的实现方式中,所述比较模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
逗留时间覆盖模块,用于将所述本节点的逗留时间添加至所述第一数据包中;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第二面以及第二方面的第八种可能的实现方式,在第九种可能的实现方式中,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于若所述缓存区已满,所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方。
结合第二方面以及第二方面的上述各个可能的实现方式,在第十种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
结合第二方面以及第二方面的上述各个可能的实现方式,在第十一种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
本发明的第三个方面是提供一种缓存处理系统,包括:至少一个网元节点,所述网元节点包括上述第二方面以及第二方面各个可能的实现方式所要保护的所述缓存处理装置。
本发明的第四个方面是提供一种缓存处理装置,包括:
接收器,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包;
处理器,用于将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
发射器,用于将所述第一数据包发送给所述请求方。
结合第四方面,在第一种可能的实现方式中,所述接收器,还用于接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
所述处理器,还用于根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
所述发射器,还用于若已存储与所述数据内容前缀信息对应的数据内容,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
所述处理器,还用于若已存储与所述数据内容前缀信息对应的数据内容,则更新本节点的待定兴趣表PIT;
所述发射器,还用于将所述兴趣包转发给下一跳节点。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
所述发射器,具体用于查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
结合第四方面及第四方面的第一种可能的实现方式和第二种可能的实现方式,在第三种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述处理器,具体用于对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,还用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第四方面及第三种可能的实现方式,在第四种可能的实现方式中所述处理器,还用于若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,还用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第四方面的第一种可能的实现方式及第二种可能的实现方式,在第五种可能的实现方式中,所述兴趣包还包括:上一跳节点的逗留时间;
所述处理器,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
所述处理器,还用于将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
所述发射器,还用于查询转发信息库FIB,将所述兴趣包发给下一跳节点。
结合第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一数据包还包括:下一跳节点的逗留时间;
所述处理器,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第四方面以及第四方面的第六种可能的实现方式,在第七种可能的实现方式中,所述处理器,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方。
结合第四方面的第五种可能的实现方式,在第八种可能的实现方式中,所述处理器,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,用于将所述本节点的逗留时间添加至所述第一数据包中;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
结合第四方面以及第四方面的第八种可能的实现方式,在第九种可能的实现方式中,所述处理器,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,用于若所述缓存区已满,所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方。
结合第四方面以及第四方面的上述各个可能的实现方式,在第十种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
结合第四方面以及第四方面的上述各个可能的实现方式,在第十一种可能的实现方式中,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
本实施例提供的缓存处理方法、装置及系统,其中缓存处理方法,通过本节点接收下一跳节点发送给请求方的包含数据内容的第一数据包。再由本节点将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区,并由本节点将第一数据包发送给请求方。通过加入对本节点的逗留时间与其他节点的逗留时间的比较,将同一数据内容在不同节点的流行程度、使用程度体现出来,从而依据数据内容在不同节点的逗留时间的不同长短,对数据内容进行缓存,避免了每个节点对于同样的数据内容重复储存造成的缓存空间资源的浪费,从而在提高缓存空间资源利用率的同时,丰富了缓存数据内容的多样性,并且当该数据包的数据内容在本节点的逗留时间最长时,将该数据内容缓存至本节点的缓存区,将提高请求者通过本节点获取到该数据内容的命中率,减少总时延。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的缓存处理方法的流程示意图;
图2为本发明实施例二提供的缓存处理方法的流程示意图;
图3为本发明实施例三提供的缓存处理方法的信令交互示意图;
图4为本发明实施例四提供的缓存处理方法的信令交互示意图;
图5为本发明实施例五提供的缓存处理方法的信令交互示意图;
图6为本发明实施例六提供的缓存处理方法的流程示意图;
图7为本发明实施例七提供的缓存处理装置的结构示意图;
图8为本发明实施例八提供的缓存处理装置的结构示意图;
图9为本发明实施例十二提供的缓存处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的缓存处理方法的流程示意图,其执行主体为网络中的一个网元节点,并且,下文中的上一跳节点、本节点以及下一跳节点都能执行本发明各实施例所提供的缓存处理方法,全文以本节点作为执行主体进行说明,如图1所示,缓存处理方法包括如下步骤:
步骤100、本节点接收下一跳节点发送给请求方的包含数据内容的第一数据包。
步骤101、本节点将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
具体的,其他节点可以为下一跳节点和上一条节点;或者,上一条节点;或者,下一跳节点,下文各实施例会对这三种不同的比较方式进行详细说明,此处不再赘述。
步骤102、本节点将第一数据包发送给请求方。
具体的,请求方可以通过上一跳节点接收该第一数据包。
本实施例提供的缓存处理方法,通过本节点接收下一跳节点发送给请求方的包含数据内容的第一数据包。再由本节点将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区,并由本节点将第一数据包发送给请求方。通过加入对本节点的逗留时间与其他节点的逗留时间的比较,将同一数据内容在不同节点的流行程度、使用程度体现出来,从而依据数据内容在不同节点的逗留时间的不同长短,对数据内容进行缓存,避免了每个节点对于同样的数据内容重复储存造成的缓存空间资源的浪费,从而在提高缓存空间资源利用率的同时,丰富了缓存数据内容的多样性,并且当该数据包的数据内容在本节点的逗留时间最长时,将该数据内容缓存至本节点的缓存区,将提高请求者通过本节点获取到该数据内容的命中率,减少总时延。
在图1以及上述可行的实现方式的基础上,图2为本发明实施例二提供的缓存处理方法的流程示意图,如图2所示,在步骤100、本节点接收下一跳节点发送给请求方的包含数据内容的第一数据包之前,还可以包括如下步骤:
步骤103、本节点接收请求方发送的兴趣包,兴趣包包含数据内容前缀信息。
具体的,当请求方需要某一个数据内容时,会通过网元节点向上游节点发送兴趣包,该兴趣包中包含所需的数据内容对应的数据内容前缀信息。
步骤104、本节点根据数据内容前缀信息查询缓存区是否已存储与数据内容前缀信息对应的数据内容。
具体的,若缓存区存储与数据内容前缀信息对应的数据内容,则执行步骤105;若缓存区没有存储与数据内容前缀信息对应的数据内容,则执行步骤106。
步骤105、本节点将包含数据内容和本节点的逗留时间的第二数据包发送给请求方。
步骤106、本节点更新本节点的待定兴趣表(PendingInterestTable,简称:PIT),并将兴趣包转发给下一跳节点。
对于本发明提供的缓存处理方法,具体的,可以有三种可能的实现方式,下面通过三个实施例对这三种实现方式进行说明。
实施例三
需要说明的是,在本实施例三中,缓存处理方法通过比较某一数据内容在本节点上的逗留时间、该数据内容在下一跳节点上的逗留时间以及该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施三进行说明。
在图2基础上,进一步的,对于图2中的步骤103,其中,兴趣包还包括:上一跳节点的逗留时间。
在图2提供的缓存处理方法基础之上,其中,步骤106具体包括:
查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下;
若否,则创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间;
查询转发信息库FIB,将所述兴趣包发给下一跳节点。
进一步的,当本节点查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,第一数据包还包括:下一跳节点的逗留时间。
此时,图1中步骤101具体包括:对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
进一步的,在图1中步骤102之前,还包括:
将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
图1中步骤102,包括:根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
另外,优选的,对于步骤101,还存在另一种可能的场景:若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区;若是,则将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
图3为本发明实施例三提供的缓存处理方法的信令交互示意图,参照图3,对本发明实施例三进行完整的说明:
兴趣包(interest包)的传输阶段:
步骤200、接收上一跳节点i-1发送的包含有数据内容前缀信息及该数据内容k在上一跳节点i-1的逗留时间的兴趣包。
具体的,请求者发出包含有数据内容前缀信息及该数据内容k在上一跳节点i-1的逗留时间的兴趣包到本节点i。
步骤201、本节点i收到兴趣包之后查看缓存区CS(ContentStore)。
具体的,本节点i查看CS,若CS中有该数据内容k,则执行步骤202将数据内容k返回,结束;若CS中没有该内容,则转203。
步骤202、本节点i将包含该数据内容的第二数据包返回给上一跳节点i-1。
步骤203、查看本节点i的PIT(PendingInterestTable)。
具体的,若PIT中有该数据内容前缀的条目,则将发送兴趣包的发送接口标识及逗留时间添加到该条目中,如下文表一中将发送接口2,上一跳节点的逗留时间ST(j,2)添加至Contentj条目,结束;若PIT中没有该内容前缀的条目,则创建新条目,如下文表一中将数据内容前缀信息k的条目及发送接口3,上一跳节点的逗留时间ST(j,2)添加至PIT表。当添加上述内容前缀至已有条目或者建立新条目后,继续进行步骤204。
步骤204、将该数据内容k在本节点i的逗留时间添加到兴趣包中,覆盖原有的上一跳节点i-1的逗留时间。
步骤205、本节点i查看FIB(ForwardingInformationBase)将兴趣包转发到下一跳节点i+1。
表一:基于逗留时间方法的PIT表
数据包(Data)的传输阶段:
步骤206、接收下一跳节点i+1发送的包含该数据内容k在该下一跳节点i+1的逗留时间的第一数据包。
具体的,下一跳节点i+1在第一数据包中添加该数据内容k在该下一跳节点i+1的逗留时间,按PIT转发给本节点i。
步骤207、查看本节点i的PIT。
具体的,本节点i在接收到第一数据包后,查看本节点i的PIT,若本节点i的PIT没有匹配的数据内容条目,则丢弃该第一数据包,结束;若本节点i的PIT有匹配的数据内容条目,则执行步骤308。
步骤208、本节点i比较数据内容k在本节点上的逗留时间与PIT中该数据内容前缀对应的上一跳节点的逗留时间,及数据包中的数据内容k在下一跳节点i+1的逗留时间。
具体的,若本节点i的该数据内容k的逗留时间最大,则执行步骤209;若本节点i处该数据内容k的逗留时间不是最大,则执行步骤210。
步骤209、在本节点i的CS中存储该数据内容k,然后执行步骤211。
步骤210、查询CS是否已满,若未满,则将该数据内容k存入CS,若已满,则本节点i的CS中不存储该数据内容k,然后执行步骤211。
步骤211、向上一跳节点i-1转发包含本节点i处数据内容k的逗留时间的第一数据包。
具体的,将本节点i处数据内容k的逗留时间覆盖第一数据包中的下一跳节点i+1的逗留时间,并将该第一数据包通过PIT记录的接口转发给请求者。
实施例四
需要说明的是,在本实施例四中,缓存处理方法通过比较某一数据内容在本节点上的逗留时间与该数据内容在下一跳节点上的逗留时间,来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施四进行说明。
在图2提供的缓存处理方法基础之上,其中,步骤106具体包括:
本节点查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识添加至条目下。
若否,则创建新的条目,将数据内容前缀信息对应的发送接口标识添加至新的条目下。
查询转发信息库FIB,将兴趣包转发给下一跳节点。
具体的,如下表二所示,本节点查询该PIT,若该PIT中有数据内容前缀信息j的条目,则将兴趣包的发送接口标识添加至该条目中,例如表二中将数据内容前缀信息j对应的发送接口标识2添加到条目中,然后丢弃该兴趣包。若该PIT中没有数据内容前缀信息k的条目,则创建新的条目,并将该数据内容前缀信息k对应的发送接口标识3添加至表二中的数据内容前缀信息k的新条目中。
表二:基于逗留时间方法的PIT表
进一步的,当本节点查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,第一数据包还包括:下一跳节点的逗留时间。
此时,图1中步骤101具体包括:本节点对本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
进一步的,在图1中步骤102之前,还包括:
将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
图1中步骤102,包括:根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方;第一数据包包含数据内容和本节点的逗留时间。
另外,优选的,对于步骤101,还存在另一种可能的场景:若本节点的逗留时间小于或等于第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区;若是,则将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方;第一数据包包含数据内容和本节点的逗留时间。
图4为本发明实施例四提供的缓存处理方法的信令交互示意图,参照图4,对本发明实施例四进行完整的说明:
兴趣包(interest包)的传输阶段:
步骤300、接收上一跳节点i-1发送的包含有数据内容前缀信息的逗留时间的兴趣包。
具体的,请求者通过上一跳节点i-1发出包含有数据内容前缀信息的兴趣包到本节点i。
步骤301、本节点i收到兴趣包之后查看CS。
具体的,本节点i查看CS,若CS中有该数据内容k,则执行步骤302将该数据内容k返回,结束;若CS中没有该数据内容k,则执行步骤303。
步骤302、本节点i包含该数据内容k的第二数据包返回给上一跳节点i-1。
步骤303、查看本节点i的PIT(PendingInterestTable),
具体的,若PIT中有该数据内容前缀信息的条目,则将发送兴趣包的发送接口标识添加到该条目中,结束;若PIT中没有该数据内容前缀信息的条目,则创建新条目。添加上述数据内容前缀信息至已有条目或者建立新条目后,继续进行步骤304。
步骤304、将数据内容k在本节点i的逗留时间添加到兴趣包中。
步骤305、本节点i查看FIB(ForwardingInformationbase)将兴趣包转发到下一跳节点i+1。
数据包传输阶段:
步骤306、接收下一跳节点i+1发送的包含该数据内容k在该下一跳节点i+1的逗留时间的第一数据包。
具体的,下一跳节点i+1在第一数据包中添加数据内容k在该下一跳节点i+1的逗留时间,按PIT转发给本节点i。
步骤307、查看本节点i的PIT。
具体的,本节点i在接收到第一数据包后,查看本节点i的PIT,若本节点i的PIT没有匹配的内容条目,则丢弃该第一数据包,结束;若节点i的PIT有匹配的内容条目,则执行步骤308。
步骤308、本节点i比较数据内容k在本节点i的逗留时间与PIT中记录的数据内容k在下一跳节点i+1的的逗留时间。
具体的,若本节点i处数据内容k的逗留时间最大,则执行步骤309;若本节点i处该数据内容k的逗留时间不是最大,则执行步骤310。
步骤309、在本节点i的CS中存储该数据内容k,然后执行步骤311。
步骤310、查询CS是否已满,若未满,则将该数据内容k存入CS,若已满,则本节点i的CS中不存储该数据内容k,然后执行步骤311。
步骤311、向上一跳节点i-1转发包含本节点i处数据内容k的逗留时间的第一数据包。
具体的,将本节点i处数据内容k的逗留时间覆盖第一数据包中的下一跳节点i+1的逗留时间,并将该第一数据包通过PIT记录的接口转发给请求者。
实施例五
需要说明的是,在本实施例四中,缓存处理方法通过比较某一数据内容在本节点上的逗留时间与该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施三进行说明。
在图2基础上,进一步的,对于图2中的步骤103,其中,兴趣包还包括:上一跳节点的逗留时间。
在图2提供的缓存处理方法基础之上,其中,步骤106具体包括:
查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下;
若否,则创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间;
查询转发信息库FIB,将所述兴趣包发给下一跳节点。
进一步的,当本节点查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,第一数据包还包括:下一跳节点的逗留时间。
此时,图1中步骤101具体包括:对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
进一步的,在图1中步骤102之前,还包括:
将本节点的逗留时间添加至第一数据包中。
图1中步骤102,包括:根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
另外,优选的,对于步骤101,还存在另一种可能的场景:若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区;若是,则将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
图5为本发明实施例五提供的缓存处理方法的信令交互示意图,参照图五,对本发明实施例四进行完整的说明:
兴趣包(interest包)的传输阶段:
步骤400、接收上一跳节点i-1发送的包含有数据内容前缀信息及该数据内容k在上一跳节点i-1的逗留时间的兴趣包。
具体的,请求者通过上一跳节点i-1发出包含有数据内容前缀信息及数据内容k在该上一跳节点i-1的逗留时间的兴趣包到本节点i。
步骤401、本节点i收到兴趣包之后查看CS。
具体的,本节点i查看CS,若CS中有该数据内容k,则执行步骤402将该数据内容k返回,结束;若CS中没有该数据内容k,则执行步骤403。
步骤402、本节点i包含该数据内容k的第二数据包返回给上一跳节点i-1。
步骤403、查看本节点i的PIT。
具体的,若PIT中有该数据内容前缀信息的条目,则将发送兴趣包的发送接口标识以及数据内容k在该上一跳节点i-1的逗留时间添加到该条目中,结束;若PIT中没有该数据内容前缀信息的条目,则创建新条目。添加上述数据内容前缀信息以及数据内容k在该上一跳节点i-1的逗留时间至已有条目或者建立新条目后,继续进行步骤404。
步骤404、将该数据内容k在本节点i的逗留时间添加到兴趣包中,
覆盖原有的上一跳节点i-1的逗留时间。
步骤405、本节点i查看FIB(ForwardingInformationbase)将兴趣包转发到下一跳节点i+1。
数据包传输阶段:
步骤406、接收下一跳节点i+1发送的第一数据包。
具体的,下一跳节点i+1响应第一数据包,按PIT将第一数据包转发给本节点i。
步骤407、查看本节点i的PIT。
具体的,本节点i在接收到第一数据包后,查看本节点i的PIT,若本节点i的PIT没有匹配的数据内容条目,则丢弃该第一数据包,结束;若节点i的PIT有匹配的内容条目,则执行步骤408。
步骤408、本节点i比较数据内容k在本节点i的逗留时间与PIT中数据内容前缀对应的上一跳节点的逗留时间。
具体的,若本节点i处数据内容k的逗留时间最大,则执行步骤409;若本节点i处该数据内容k的逗留时间不是最大,则执行步骤410。
步骤409、在本节点i的CS中存储该数据内容k,然后执行步骤211。
步骤410、查询CS是否已满,若未满,则将该数据内容k存入CS,若已满,则本节点i的CS中不存储该数据内容k,然后执行步骤211。
步骤411、向上一跳节点i-1转发包含本节点i处数据内容k的逗留时间的第一数据包。
具体的,将本节点i处数据内容k的逗留时间覆盖第一数据包中的下一跳节点i+1的逗留时间,并将该第一数据包通过PIT记录的接口转发给请求者。
进一步的,对于上述各实施例中数据包传输阶段的处理,图6为本发明实施例六提供的缓存处理方法的流程示意图,下面根据图6所示对数据包传输阶段的处理进行详细说明,内容如下:
步骤500、查看本节点的PIT是否存在与数据内容k匹配的数据内容条目。
具体的,若PIT中存在与数据内容k匹配的数据内容条目,则执行步骤502;若PIT中不存在与数据内容k匹配的数据内容条目,则执行步骤501。
步骤501、丢弃第一数据包。
步骤502、本节点将数据内容对应的本节点的逗留时间与数据内容k对应的其他节点的逗留时间进行比较。
具体的,参照上文实施例三至实施例五可知,本节点的逗留时间与数据内容k对应的其他节点的逗留时间进行比较,可以用过三种可能的实现方式实现,即,本节点的逗留时间与上一跳节点的逗留时间、下一跳节点的逗留时间进行比较;本节点的逗留时间与上一跳节点的逗留时间进行比较;本节点的逗留时间与下一跳节点的逗留时间进行比较。上文已进行了详细说明,此处不再赘述。
步骤503、判断本节点的逗留时间是否为最长。
具体的,若本节点的逗留时间为最长,则执行步骤505;本节点的逗留时间并不是最长,则执行步骤504。
步骤504、判断本节点的缓存区是否已满。
具体的,本节点的缓存区已满,则执行步骤506;若本节点的缓存区未满,则执行步骤505。
步骤505、本节点根据LRU(最近最少使用算法LeastRecentlyUsed)策略将数据内容k存储在本节点的缓存区中。
步骤506、本节点向上一条节点转发包含数据内容k在本节点的逗留时间的第一数据包。
进一步的,对于上述各实施例提供的缓存处理方法,其中,各个节点的逗留时间通过以下公式(1)以及公式(2)获得。公式(1):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,x(i)为本节点i的缓存容量,λk(i)为数据内容k在本节点i的到达率,μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去λk(i)获得μk(i)。
或者,公式(2):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,为数据内容k第j次缓存至本节点i的时刻,为数据内容k第j次从本节点i被替换的时刻,N为统计总次数。
图7为本发明实施例七提供的缓存处理装置的结构示意图,该缓存处理装置可以安装在任何需要进行缓存处理的网元节点上,此处对该网元节点不做限定,如图7所示,缓存处理装置包括:接收模块10、比较模块11、发送模块12。
接收模块10,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包。
比较模块11,用于将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
具体的,其他节点可以为下一跳节点和上一条节点;或者,上一条节点;或者,下一跳节点,下文各实施例会对这三种不同的比较方式进行详细说明,此处不再赘述。
发送模块12,用于将第一数据包发送给请求方。
具体的,请求方可以通过上一跳节点接收该第一数据包。
本实施例提供的缓存处理方法,通过接收模块接收下一跳节点发送给请求方的包含数据内容的第一数据包。再由比较模块将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区,并由发送模块将第一数据包发送给请求方。通过加入对本节点的逗留时间与其他节点的逗留时间的比较,将同一数据内容在不同节点的流行程度、使用程度体现出来,从而依据数据内容在不同节点的逗留时间的不同长短,对数据内容进行缓存,避免了每个节点对于同样的数据内容重复储存造成的缓存空间资源的浪费,从而在提高缓存空间资源利用率的同时,丰富了缓存数据内容的多样性,并且当该数据包的数据内容在本节点的逗留时间最长时,将该数据内容缓存至本节点的缓存区,将提高请求者通过本节点获取到该数据内容的命中率,减少总时延。
在图7以及上述可行的实现方式的基础上,图8为本发明实施例八提供的缓存处理装置的结构示意图,如图8所示,该缓存处理装置还包括:查询模块13、更新模块14、逗留时间覆盖模块15。
在接收模块10接收下一跳节点发送给请求方的包含数据内容的第一数据包之前,接收模块10,还用于接收请求方发送的兴趣包,兴趣包包含数据内容前缀信息。
具体的,当请求方需要某一个数据内容时,会通过网元节点向上游节点发送兴趣包,在本实施例中,该兴趣包中包含所需的数据内容对应的数据内容前缀信息。
查询模块13,用于根据数据内容前缀信息查询缓存区是否已存储与数据内容前缀信息对应的数据内容。
具体的,若缓存区存储与数据内容前缀信息对应的数据内容,则发送模块12将包含数据内容和本节点的逗留时间的第二数据包发送给请求方。
若缓存区没有存储与数据内容前缀信息对应的数据内容,更新模块14,用于更新本节点的待定兴趣表(PendingInterestTable,简称:PIT),并由发送模块12将兴趣包转发给下一跳节点。
对于本发明提供的缓存处理装置,具体的,可以有三种可能的实现方式,下面通过实施例九至实施例十一,对这三种实现方式进行说明。
参照上文实施例三,需要说明的是,在本实施例九中,缓存处理方法通过比较某一数据内容在本节点上的逗留时间、该数据内容在下一跳节点上的逗留时间以及该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施九中的缓存处理装置进行说明。
参照图8,进一步的,接收模块10接受的兴趣包还包括:上一跳节点的逗留时间。
参照图8,其中,更新模块14,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下。
若否,更新模块14创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至新的条目下。
之后,逗留时间覆盖模块15,还用于将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间;
发送模块12,还用于查询转发信息库FIB,将兴趣包发给下一跳节点。
进一步的,当发送模块12查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,接收模块10接收到的第一数据包还包括:下一跳节点的逗留时间。
此时,比较模块11,具体用于对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
逗留时间覆盖模块15,用于将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
发送模块12,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,第一数据包包含所述数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:比较模块11,还用于若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区。
逗留时间覆盖模块15,用于若缓存区已满,将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例三中图3所提供的信令交互方案,此处不再赘述。
参照上文实施例四,需要说明的是,在本实施例十中,缓存处理装置通过比较某一数据内容在本节点上的逗留时间与该数据内容在下一跳节点上的逗留时间,来判断该数据内容是否能够缓存到本节点的缓存区中。下面对采用本实施四的实现方式的缓存处理装置进行说明。
参照图8,其中,更新模块14,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识添加至条目下。
若否,则创建新的条目,将数据内容前缀信息对应的发送接口标识添加至新的条目下。
发送模块12,具体用于查询转发信息库FIB,将兴趣包转发给下一跳节点。
具体的,参照上文中表二所示,本节点更新模块14查询该PIT,若该PIT中有数据内容前缀信息j的条目,则将兴趣包的发送接口标识添加至该条目中,例如上文表二中将数据内容前缀信息j对应的发送接口标识2添加到条目中,然后丢弃该兴趣包。若该PIT中没有数据内容前缀信息k的条目,更新模块14则创建新的条目,并将该数据内容前缀信息k对应的发送接口标识3添加至上文表二中的数据内容前缀信息k的新条目中。
进一步的,当本节点发送模块12查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,本实施例中,本节点接收模块10接收的第一数据包还包括:下一跳节点的逗留时间。
此时,比较模块11,具体用于对本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
进一步的,逗留时间覆盖模块15,用于将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
之后,发送模块12,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,该第一数据包包含数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:
比较模块11,还用于若本节点的逗留时间小于或等于第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区。
逗留时间覆盖模块15,还用于若缓存区已满,则将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并由发送模块12将第一数据包转发给请求方,该第一数据包包含数据内容和本节点的逗留时间。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例四中图4所提供的信令交互方案,此处不再赘述。
参照上文实施例五,需要说明的是,在本实施例十一中,缓存处理装置通过比较某一数据内容在本节点上的逗留时间与该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施十一进行说明。
参照图8,进一步的,在接收模块10接收的兴趣包还包括:上一跳节点的逗留时间。
参照图8,其中,更新模块14,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下。
若否,则更新模块14创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至所述新的条目下。
逗留时间覆盖模块15,用于将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间。
发送模块12,具体用于查询转发信息库FIB,将兴趣包发给下一跳节点。
进一步的,当发送模块12查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,接收模块10接收的第一数据包还包括:下一跳节点的逗留时间。
此时,比较模块11,具体用于对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
逗留时间覆盖模块15,用于将本节点的逗留时间添加至第一数据包中。
之后,发送模块12,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,该第一数据包包含数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:比较模块11,还用于若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区;
逗留时间覆盖模块15,还用于若缓存区已满,将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例四中图5所提供的信令交互方案,此处不再赘述。
进一步的,对于上述各实施例提供的缓存处理装置,其中,各个节点的逗留时间通过以下公式(1)以及公式(2)获得。公式(1):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,x(i)为本节点i的缓存容量,λk(i)为数据内容k在本节点i的到达率,μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去λk(i)获得μk(i)。
或者,公式(2):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,为数据内容k第j次缓存至本节点i的时刻,为数据内容k第j次从本节点i被替换的时刻,N为统计总次数。
本发明实施例提供一种缓存处理系统,该系统包括至少一个网元节点,例如上文中所述上一跳节点、本节点以及下一条节点,其中每一个节点都设置有上文各实施例中的缓存处理方法装置,该缓存处理方法装置采用图7以及图8所示的结构,能够执行图1~图6所提供的缓存处理方法,其技术效果已在上文中进行了详细说明此处不再赘述。
图9为本发明实施例十二提供的缓存处理装置的结构示意图,该缓存处理装置可以安装在任何需要进行缓存处理的网元节点上,此处对该网元节点不做限定,如图9所示,缓存处理装置包括:接收器20、处理器21、发射器22。
接收器20,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包。
处理器21,用于将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
具体的,其他节点可以为下一跳节点和上一条节点;或者,上一条节点;或者,下一跳节点,下文各实施例会对这三种不同的比较方式进行详细说明,此处不再赘述。
发射器22,用于将第一数据包发送给请求方。
具体的,请求方可以通过上一跳节点接收该第一数据包。
本实施例提供的缓存处理方法,通过接收器接收下一跳节点发送给请求方的包含数据内容的第一数据包。再由处理器将数据内容对应的本节点的逗留时间与数据内容对应的其他节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区,并由发射器将第一数据包发送给请求方。通过加入对本节点的逗留时间与其他节点的逗留时间的比较,将同一数据内容在不同节点的流行程度、使用程度体现出来,从而依据数据内容在不同节点的逗留时间的不同长短,对数据内容进行缓存,避免了每个节点对于同样的数据内容重复储存造成的缓存空间资源的浪费,从而在提高缓存空间资源利用率的同时,丰富了缓存数据内容的多样性,并且当该数据包的数据内容在本节点的逗留时间最长时,将该数据内容缓存至本节点的缓存区,将提高请求者通过本节点获取到该数据内容的命中率,减少总时延。
进一步的,在接收器20接收下一跳节点发送给请求方的包含数据内容的第一数据包之前,接收器20,还用于接收请求方发送的兴趣包,兴趣包包含数据内容前缀信息。
具体的,当请求方需要某一个数据内容时,会通过网元节点向上游节点发送兴趣包,在本实施例中,该兴趣包中包含所需的数据内容对应的数据内容前缀信息。
处理器21,用于根据数据内容前缀信息查询缓存区是否已存储与数据内容前缀信息对应的数据内容。
具体的,若缓存区存储与数据内容前缀信息对应的数据内容,则发射器22将包含数据内容和本节点的逗留时间的第二数据包发送给请求方。
若缓存区没有存储与数据内容前缀信息对应的数据内容,处理器21,用于更新本节点的待定兴趣表(PendingInterestTable,简称:PIT),并由发射器22将兴趣包转发给下一跳节点。
对于本发明提供的缓存处理装置,具体的,可以有三种可能的实现方式,下面通过实施例十三至实施例十五,对这三种实现方式进行说明。
参照上文实施例三,需要说明的是,在本实施例十三中,缓存处理方法通过比较某一数据内容在本节点上的逗留时间、该数据内容在下一跳节点上的逗留时间以及该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施十三中的缓存处理装置进行说明。
参照图9,进一步的,接收器20接受的兴趣包还包括:上一跳节点的逗留时间。
参照图9,其中,处理器21,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下。
若否,处理器21创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至新的条目下。
之后,处理器21,还用于将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间;
发射器22,还用于查询转发信息库FIB,将兴趣包发给下一跳节点。
进一步的,当发射器22查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,接收器20接收到的第一数据包还包括:下一跳节点的逗留时间。
此时,处理器21,具体用于对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
处理器21,用于将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
发射器22,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,第一数据包包含所述数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:处理器21,还用于若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区。
处理器21,用于若缓存区已满,将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例三中图3所提供的信令交互方案,此处不再赘述。
参照上文实施例四,需要说明的是,在本实施例十四中,缓存处理装置通过比较某一数据内容在本节点上的逗留时间与该数据内容在下一跳节点上的逗留时间,来判断该数据内容是否能够缓存到本节点的缓存区中。下面对采用本实施四的实现方式的缓存处理装置进行说明。
参照图9,其中,处理器21,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识添加至条目下。
若否,则创建新的条目,将数据内容前缀信息对应的发送接口标识添加至新的条目下。
发射器22,具体用于查询转发信息库FIB,将兴趣包转发给下一跳节点。
具体的,参照上文中表二所示,本节点处理器21查询该PIT,若该PIT中有数据内容前缀信息j的条目,则将兴趣包的发送接口标识添加至该条目中,例如上文表二中将数据内容前缀信息j对应的发送接口标识2添加到条目中,然后丢弃该兴趣包。若该PIT中没有数据内容前缀信息k的条目,处理器21则创建新的条目,并将该数据内容前缀信息k对应的发送接口标识3添加至上文表二中的数据内容前缀信息k的新条目中。
进一步的,当本节点发射器22查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,本实施例中,本节点接收器20接收的第一数据包还包括:下一跳节点的逗留时间。
此时,处理器21,具体用于对本节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
进一步的,处理器21,还用于将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间。
之后,发射器22,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,该第一数据包包含数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:
处理器21,还用于若本节点的逗留时间小于或等于第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区。
处理器21,还用于若缓存区已满,则将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并由发射器22将第一数据包转发给请求方,该第一数据包包含数据内容和本节点的逗留时间。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例四中图4所提供的信令交互方案,此处不再赘述。
参照上文实施例五,需要说明的是,在本实施例十五中,缓存处理装置通过比较某一数据内容在本节点上的逗留时间与该数据内容的数据内容前缀对应的上一跳节点的逗留时间来判断该数据内容是否能够缓存到本节点的缓存区中。下面对本实施十五进行说明。
参照图9,进一步的,在接收器20接收的兴趣包还包括:上一跳节点的逗留时间。
参照图9,其中,处理器21,具体用于查询PIT中是否存在与数据内容前缀信息对应的条目,若是,则将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至条目下。
若否,则处理器21创建新的条目,将数据内容前缀信息对应的发送接口标识,以及数据内容前缀信息对应的上一跳节点的逗留时间添加至所述新的条目下。
处理器21,还用于将本节点的逗留时间覆盖兴趣包中的上一跳节点的逗留时间。
发射器22,具体用于查询转发信息库FIB,将兴趣包发给下一跳节点。
进一步的,当发射器22查询转发信息库FIB,将兴趣包转发给下一跳节点之后,下一跳节点接收到该兴趣包后,若该下一跳节点的缓存区存储与数据内容前缀信息对应的数据内容时,该下一跳节点向本节点发送包含数据内容的第一数据包,进一步的,接收器20接收的第一数据包还包括:下一跳节点的逗留时间。
此时,处理器21,具体用于对PIT中数据内容前缀对应的上一跳节点的逗留时间、本节点的逗留时间进行比较,若本节点的逗留时间为最长,则将数据内容缓存至缓存区。
处理器21,还用于将本节点的逗留时间添加至第一数据包中。
之后,发射器22,具体用于根据PIT中数据内容前缀信息对应的发送接口标识,将第一数据包发送给请求方。
具体的,该第一数据包包含数据内容和本节点的逗留时间。
另外,优选的,还存在另一种可能的场景:处理器21,还用于若本节点的逗留时间小于或等于PIT中数据内容前缀对应的上一跳节点的逗留时间以及第一数据包中数据内容对应的下一跳节点的逗留时间,则判断缓存区是否已满,若否,则将数据内容缓存至缓存区;
处理器21,还用于若缓存区已满,将本节点的逗留时间覆盖第一数据包中的下一跳节点的逗留时间,并将第一数据包转发给请求方。
具体的,本实施例中的缓存处理装置其执行的方法具体参照上文实施例四中图5所提供的信令交互方案,此处不再赘述。
进一步的,对于上述各实施例提供的缓存处理装置,其中,各个节点的逗留时间通过以下公式(1)以及公式(2)获得。公式(1):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,x(i)为本节点i的缓存容量,λk(i)为数据内容k在本节点i的到达率,μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去λk(i)获得μk(i)。
或者,公式(2):
其中,f(STk(i))为数据内容k在本节点i的逗留时间,为数据内容k第j次缓存至本节点i的时刻,为数据内容k第j次从本节点i被替换的时刻,N为统计总次数。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (37)
1.一种缓存处理方法,其特征在于,包括:
接收下一跳节点发送给请求方的包含数据内容的第一数据包;
将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
将所述第一数据包发送给所述请求方。
2.根据权利要求1所述的缓存处理方法,其特征在于,在所述接收下一跳节点发送给请求方的包含数据内容的第一数据包之前,还包括:
接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
若是,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
若否,则更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点。
3.根据权利要求2所述的缓存处理方法,其特征在于,所述更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
4.根据权利要求1~3任意一项所述的缓存处理方法,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,包括:
对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述将所述第一数据包发送给请求方,包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
5.根据权利要求1或4所述的缓存处理方法,其特征在于,还包括:
若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
6.根据权利要求2或3所述的缓存处理方法,其特征在于,所述兴趣包还包括:上一跳节点的逗留时间;
所述更新本节点的待定兴趣表PIT,并将所述兴趣包转发给下一跳节点,包括:
查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
查询转发信息库FIB,将所述兴趣包发给下一跳节点。
7.根据权利要求6所述的缓存处理方法,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,具体包括:
对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述将所述第一数据包发送给请求方包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
8.根据权利要求1或7所述的缓存处理方法,其特征在于,还包括:
若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方。
9.根据权利要求6所述的缓存处理方法,其特征在于,所述将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区,包括:
对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
在所述将所述第一数据包发送给请求方之前,还包括:
将所述本节点的逗留时间添加至所述第一数据包中;
所述将所述第一数据包发送给请求方,包括:
根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
10.根据权利要求1或9所述的缓存处理方法,其特征在于,还包括:
若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;若是,则将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间,并将所述第一数据包转发给请求方。
11.根据权利要求1~10任意一项所述的缓存处理方法,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
12.根据权利要求1~10任意一项所述的缓存处理方法,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
13.一种缓存处理装置,其特征在于,包括:
接收模块,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包;
比较模块,用于将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
发送模块,用于将所述第一数据包发送给所述请求方。
14.根据权利要求13所述的缓存处理装置,其特征在于,所述接收模块,还用于接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
所述缓存处理装置,还包括
查询模块,用于根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
所述发送模块,还用于若已存储与所述数据内容前缀信息对应的数据内容,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
更新模块,用于若已存储与所述数据内容前缀信息对应的数据内容,则更新本节点的待定兴趣表PIT;
所述发送模块,还用于将所述兴趣包转发给下一跳节点。
15.根据权利要求14所述的缓存处理装置,其特征在于,所述更新模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
所述发送模块,具体用于查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
16.根据权利要求13~15任意一项所述的缓存处理装置,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述比较模块,具体用于对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
17.根据权利要求13或16所述的缓存处理装置,其特征在于,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,还用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
18.根据权利要求14或15所述的缓存处理装置,其特征在于,所述兴趣包还包括:上一跳节点的逗留时间;
所述更新模块,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
所述逗留时间覆盖模块,还用于将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
所述发送模块,还用于查询转发信息库FIB,将所述兴趣包发给下一跳节点。
19.根据权利要求18所述的缓存处理装置,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述比较模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
20.根据权利要求13或19所述的缓存处理装置,其特征在于,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方。
21.根据权利要求18所述的缓存处理装置,其特征在于,所述比较模块,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
逗留时间覆盖模块,用于将所述本节点的逗留时间添加至所述第一数据包中;
所述发送模块,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
22.根据权利要求13或21所述的缓存处理装置,其特征在于,所述比较模块,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述逗留时间覆盖模块,用于若所述缓存区已满,所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发送模块,具体用于将所述第一数据包转发给请求方。
23.根据权利要求13~22任意一项所述的缓存处理装置,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
24.根据权利要求13~22任意一项所述的缓存处理装置,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
25.一种缓存处理系统,其特征在于,包括:至少一个网元节点,所述网元节点包括权利要求13~24任意一项所述的缓存处理装置。
26.一种缓存处理装置,其特征在于,包括:
接收器,用于接收下一跳节点发送给请求方的包含数据内容的第一数据包;
处理器,用于将所述数据内容对应的本节点的逗留时间与所述数据内容对应的其他节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
发射器,用于将所述第一数据包发送给所述请求方。
27.根据权利要求26所述的缓存处理装置,其特征在于,所述接收器,还用于接收请求方发送的兴趣包,所述兴趣包包含数据内容前缀信息;
所述处理器,还用于根据所述数据内容前缀信息查询所述缓存区是否已存储与所述数据内容前缀信息对应的数据内容;
所述发射器,还用于若已存储与所述数据内容前缀信息对应的数据内容,则将包含所述数据内容和所述本节点的逗留时间的第二数据包发送给请求方;
所述处理器,还用于若已存储与所述数据内容前缀信息对应的数据内容,则更新本节点的待定兴趣表PIT;
所述发射器,还用于将所述兴趣包转发给下一跳节点。
28.根据权利要求27所述的缓存处理装置,其特征在于,所述处理器,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识添加至所述新的条目下;
所述发射器,具体用于查询转发信息库FIB,将所述兴趣包转发给下一跳节点。
29.根据权利要求26~28任意一项所述的缓存处理装置,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述处理器,具体用于对所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,还用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
30.根据权利要求26或29所述的缓存处理装置,其特征在于,所述处理器,还用于若所述本节点的逗留时间小于或等于所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,还用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方;
所述第一数据包包含所述数据内容和所述本节点的逗留时间。
31.根据权利要求27或28所述的缓存处理装置,其特征在于,所述兴趣包还包括:上一跳节点的逗留时间;
所述处理器,具体用于查询所述PIT中是否存在与所述数据内容前缀信息对应的条目,若是,则将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述条目下;
若否,则创建新的条目,将所述数据内容前缀信息对应的发送接口标识,以及所述数据内容前缀信息对应的所述上一跳节点的逗留时间添加至所述新的条目下;
所述处理器,还用于将所述本节点的逗留时间覆盖所述兴趣包中的上一跳节点的逗留时间;
所述发射器,还用于查询转发信息库FIB,将所述兴趣包发给下一跳节点。
32.根据权利要求31所述的缓存处理装置,其特征在于,所述第一数据包还包括:下一跳节点的逗留时间;
所述处理器,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,用于将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
33.根据权利要求26或32所述的缓存处理装置,其特征在于,所述处理器,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间以及所述第一数据包中所述数据内容对应的下一跳节点的逗留时间,判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,用于若所述缓存区已满,将所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方。
34.根据权利要求31所述的缓存处理装置,其特征在于,所述处理器,具体用于对所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间、所述本节点的逗留时间进行比较,若所述本节点的逗留时间为最长,则将所述数据内容缓存至缓存区;
所述处理器,用于将所述本节点的逗留时间添加至所述第一数据包中;
所述发射器,具体用于根据PIT中所述数据内容前缀信息对应的发送接口标识,将所述第一数据包发送给请求方;所述第一数据包包含所述数据内容和所述本节点的逗留时间。
35.根据权利要求26或34所述的缓存处理装置,其特征在于,所述处理器,还用于若所述本节点的逗留时间小于或等于所述PIT中所述数据内容前缀对应的所述上一跳节点的逗留时间,则判断所述缓存区是否已满,若否,则将所述数据内容缓存至缓存区;
所述处理器,用于若所述缓存区已满,所述本节点的逗留时间覆盖所述第一数据包中的下一跳节点的逗留时间;
所述发射器,具体用于将所述第一数据包转发给请求方。
36.根据权利要求26~35任意一项所述的缓存处理装置,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述x(i)为本节点i的缓存容量,所述λk(i)为所述数据内容k在本节点i的到达率,所述μk(i)为其他数据内容到达率,通过本节点i的总到达率λ(i)减去所述λk(i)获得所述μk(i)。
37.根据权利要求26~35任意一项所述的缓存处理装置,其特征在于,逗留时间通过以下公式获得:
其中,所述f(STk(i))为数据内容k在本节点i的逗留时间,所述为数据内容k第j次缓存至本节点i的时刻,所述为所述数据内容k第j次从本节点i被替换的时刻,所述N为统计总次数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013076157 | 2013-05-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105519054A true CN105519054A (zh) | 2016-04-20 |
CN105519054B CN105519054B (zh) | 2019-03-26 |
Family
ID=55725068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380000841.6A Active CN105519054B (zh) | 2013-05-23 | 2013-05-23 | 缓存处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105519054B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001136196A (ja) * | 1999-11-01 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 遅延保証型パケット廃棄装置およびその方法 |
US20030210711A1 (en) * | 2002-05-08 | 2003-11-13 | Faust Albert William | Data transfer method and apparatus |
CN1930833A (zh) * | 2004-03-11 | 2007-03-14 | 松下电器产业株式会社 | 控制站装置、基站装置、终端装置、分组通信系统以及分组通信方法 |
CN101820386A (zh) * | 2009-01-30 | 2010-09-01 | 帕洛阿尔托研究中心公司 | 用于促进在以内容为中心的网络中转发分组的方法和系统 |
CN102025634A (zh) * | 2010-12-16 | 2011-04-20 | 中兴通讯股份有限公司 | 数据包缓存管理方法和设备 |
CN102075562A (zh) * | 2010-12-03 | 2011-05-25 | 华为技术有限公司 | 协作缓存的方法和装置 |
-
2013
- 2013-05-23 CN CN201380000841.6A patent/CN105519054B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001136196A (ja) * | 1999-11-01 | 2001-05-18 | Nippon Telegr & Teleph Corp <Ntt> | 遅延保証型パケット廃棄装置およびその方法 |
US20030210711A1 (en) * | 2002-05-08 | 2003-11-13 | Faust Albert William | Data transfer method and apparatus |
CN1930833A (zh) * | 2004-03-11 | 2007-03-14 | 松下电器产业株式会社 | 控制站装置、基站装置、终端装置、分组通信系统以及分组通信方法 |
CN101820386A (zh) * | 2009-01-30 | 2010-09-01 | 帕洛阿尔托研究中心公司 | 用于促进在以内容为中心的网络中转发分组的方法和系统 |
CN102075562A (zh) * | 2010-12-03 | 2011-05-25 | 华为技术有限公司 | 协作缓存的方法和装置 |
CN102025634A (zh) * | 2010-12-16 | 2011-04-20 | 中兴通讯股份有限公司 | 数据包缓存管理方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105519054B (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102301353B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법 | |
CN103457993B (zh) | 本地缓存装置和提供内容缓存服务的方法 | |
US10587513B2 (en) | Method, apparatus and system for determining content acquisition path and processing request | |
CN104901980A (zh) | 基于流行度的数据命名网络的均衡分布缓存方法 | |
CN104247371A (zh) | 以信息为中心的网络中的基于名称的邻居发现和多跳服务发现 | |
CN105407055B (zh) | 一种内容中心网络的能耗控制方法 | |
JP2007066161A (ja) | キャッシュシステム | |
CN106416194A (zh) | 用于网络译码及高速缓存辅助内容分配的装置及方法 | |
CA2444363A1 (en) | Layered network node, network incorporating the same, node, and layered network | |
CN101710904B (zh) | P2p流量优化方法及其系统 | |
CN103379029A (zh) | 一种内容网络的路由转发的方法、装置及系统 | |
Tarnoi et al. | Adaptive probabilistic caching technique for caching networks with dynamic content popularity | |
CN105637910A (zh) | 下行数据处理方法及装置、系统 | |
CN117439655B (zh) | 一种空间太赫兹信息中心网络轻量级缓存方法及装置 | |
CN107633102A (zh) | 一种读取元数据的方法、装置、系统及设备 | |
Alduayji et al. | PF-EdgeCache: Popularity and freshness aware edge caching scheme for NDN/IoT networks | |
CN103501530B (zh) | 一种基于命名数据的无线自组织网络的节能方法 | |
CN104170342A (zh) | 内容处理的方法和网络侧设备 | |
CN106790638A (zh) | 命名数据网络中基于主动缓存的数据传输方法及系统 | |
CN105519054A (zh) | 缓存处理方法、装置及系统 | |
US7441086B2 (en) | Data caching method and computer-readable medium storing a program executing the method | |
CN103533056B (zh) | 一种面向智能手机的p2p移动流媒体系统及其工作方法 | |
CN105281832A (zh) | 一种紫外光网络中邻居发现方法 | |
CN103701883B (zh) | 流媒体片段注入缓存系统的方法、设备及缓存系统 | |
CN115002139B (zh) | 一种缓存策略生成方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |