CN114025020B - 一种基于二分法的命名数据网络缓存方法 - Google Patents
一种基于二分法的命名数据网络缓存方法 Download PDFInfo
- Publication number
- CN114025020B CN114025020B CN202210011878.XA CN202210011878A CN114025020B CN 114025020 B CN114025020 B CN 114025020B CN 202210011878 A CN202210011878 A CN 202210011878A CN 114025020 B CN114025020 B CN 114025020B
- Authority
- CN
- China
- Prior art keywords
- interest
- content
- data packet
- packet
- router
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于二分法的命名数据网络缓存方法,内容请求者发起数据请求,将兴趣包通过所有可用转发接口向外发送;路由器接收兴趣包,依次检索内容存储器、待定兴趣表、以及转发信息库,并判断向下一级路由器发送或更新本路由器的待定兴趣表或者丢弃,内容生产者根据兴趣包生成数据包;路由器接收数据包向上级路由器转发,并根据缓存标志值选择是否存储数据包。本发明使得数据合理分配缓存,有效提高了数据包的缓存命中率,减少了平均请求时延和平均路由跳数。
Description
技术领域
本发明属于信息中心网络缓存技术领域,更具体涉及一种基于二分法的命名数据网络缓存方法。
背景技术
现今互联网仍在飞速发展,网络的内容多样性日益增长,但传统的IP网络架构仍然沿用上世纪的设计理念,传统网络架构面临越来越多的技术挑战。为了解决传统网络架构在网络拓展,安全,灵活和移动等方面的不适应性问题,近几年,世界各国都在关注设计全新的未来互联网体系架构,其中主流研究方向之一就是信息中心网络。信息中心网络(Information-Centric Networking,ICN),是以数据内容为核心的网络交换体系架构,其中数据进行传输的主体是带有标识的数据包,而传输是通过标识与数据之前的映射关系来驱动,同数据在网络中的位置无关。命名数据网络(Named-Data Networking,NDN)是ICN网络中的一个典型项目,通过搭建网络体系架构,实现数据内容的寻址,转发,路由,缓存等功能。NDN传统缓存方案为沿途缓存(Cache Everything Everywhere,CEE),该方案会使得每个路由节点缓存相同内容,导致路由器中出现大量重复内容。研究人员提出了下一跳缓存(Leave Copy Down,LCD)方案,该方案使数据缓存在其命中节点的下一跳,但数据需要较多请求次数才能缓存在距离内容请求者最近的路由器中,这样会使得数据较慢缓存到内容请求者周围路由器,降低请求效率。有人提出一种基于概率存储的缓存方案,路由器每接收到一个数据包,按照0.5的概率进行一次计算判断是否缓存该数据包,该方案能使得路由器缓存更多数据,但存在较大的不确定性。
发明内容
本发明的目的在于解决现有技术中存在的上述问题,提供一种基于二分法的命名数据网络缓存方法。
本发明的上述目的通过以下技术手段实现:
一种基于二分法的命名数据网络缓存方法,包括以下步骤:
步骤1、内容请求者发起数据请求,将兴趣包通过所有可用转发接口向外发送;
步骤2、路由器接收兴趣包,并读取兴趣包的内容名称,根据内容名称检索内容存储器,若存在内容名称匹配的数据包,则将数据包中的缓存标志值CT设置为兴趣包跳数IH,将数据包从兴趣包的进入接口发送出去;若不存在内容名称匹配的数据包,则进入步骤3;
步骤3、路由器查询待定兴趣表,待定兴趣表包括内容名称和对应的进入接口,若待定兴趣表中匹配到相同的内容名称,则在待定兴趣表记录兴趣包的内容名称和对应进入接口,丢弃兴趣包;若没有匹配到相同的内容名称,则进入步骤4;
步骤4、路由器查询转发信息库,转发信息库包括名称前缀和对应的转发接口,若转发信息库中存在与兴趣包的内容名称匹配的名称前缀,则查找匹配的名称前缀对应的转发接口,将兴趣包的兴趣包跳数加1,并将兴趣包从本步骤查找的转发接口转发;若没有与兴趣包的内容名称匹配的名称前缀,则丢弃兴趣包;
步骤6、路由器接收数据包,获得数据包的缓存标志值CT,若数据包的缓存标志值CT等于大于1,则数据包的缓存标志值CT减1;若数据包的缓存标志值CT等于1,则数据包的缓存标志值CT减1并缓存数据包;若数据包的缓存标志值CT等于0,则数据包的缓存标志值CT不变;
路由器在待定兴趣表PIT中与数据包对应兴趣包的所有的进入接口,并通过进入接口进行发送,
数据包发送完成后清除待定兴趣表PIT中对应的兴趣包的内容名称和进入接口。
如上所述的步骤1包括以下步骤:
步骤1.1、内容请求者将需要请求的内容名称封装在兴趣包的内容名称字段中;
步骤1.2、内容请求者创建一个随机数封装在兴趣包的随机数字段中;
步骤1.3、内容请求者将兴趣包的兴趣包跳数字段初始为0;
步骤1.4、内容请求者封装兴趣包的其余字段;
步骤1.5、查询内容请求者所有可用转发接口;
步骤1.6、内容请求者将封装完毕的兴趣包从所有可用转发接口发送出去。
如上所述的步骤6中缓存数据包包括以下步骤:
路由器查找最久未使用的数据包,路由器将替换出的数据包的缓存标志值设置为1,通过查询转发信息库FIB获取该路由器通向上游路由器的转发接口,将替换出的数据包从通向上游路由器的转发接口转发出去,路由器将接收的数据包缓存在内容存储器CS中。
本发明相对于现有技术,具有以下优点:
1、将数据内容首次缓存在中心路由器中,当相同的数据内容再次被请求则缓存在内容请求者的邻接路由器中,过滤了请求频率低的数据内容,使内容请求者周围的路由器中缓存请求频率更高的数据内容,减少了数据内容返回给内容请求者的平均跳数从而降低了开销;
2、中心路由器将替换出的数据包转发至上游路由器指示缓存,增加了靠近内容请求者的路由器中请求频率更高的数据内容的多样性;
3、有效降低冗余缓存以及无效缓存,实现网络化缓存资源的合理利用。
4、将请求频率高的数据内容缓存在靠近内容请求者的路由器中,减少了内容请求者等待数据内容返回的平均时延,提升了用户的体验度。
附图说明
图1为数据包的结构示意图;
图2为兴趣包的结构示意图;
图3(a)为路由链路中路由器个数为单数时中心路由器的位置,图3(b)为路由链路中路由器个数为双数时中心路由器的位置;
图4为待定兴趣表的结构示意图;
图5为转发信息库的结构示意图;
图6为网络拓扑结构示意图;
图7为缓存命中率结果示意图;
图8为平均请求时延结果示意图;
图9为平均路由跳数结果示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
一种基于二分法的命名数据网络缓存方法,包括以下步骤:
步骤1、内容请求者CR发起数据请求,将兴趣包通过所有可用转发接口向外发送,兴趣包结构如图2所示;
步骤1.1、内容请求者CR将需要请求的内容名称封装在兴趣包的内容名称字段CN中;
步骤1.2、内容请求者CR创建一个随机数封装在兴趣包的随机数字段Nonce中;
步骤1.3、内容请求者CR将兴趣包的兴趣包跳数IH字段初始为0;
步骤1.4、内容请求者CR封装其余字段信息;
步骤1.5、查询内容请求者CR所有可用转发接口;
步骤1.6、内容请求者CR将封装完毕的兴趣包从所有可用转发接口发送出去;
步骤2、路由器接收兴趣包,并读取兴趣包的内容名称,根据内容名称检索内容存储器CS,若存在内容名称匹配的数据包,则将数据包从兴趣包的进入接口发送出去;若不存在内容名称匹配的数据包,则进入步骤3。具体包括以下步骤:
步骤2.1、路由器接收兴趣包后解析内容名称CN字段信息;
步骤2.2、路由器接收兴趣包后解析兴趣包跳数IH字段得到跳数值;
步骤2.3、路由器将解析获得的内容名称同内容存储器CS中内容名称进行匹配;
步骤2.4、若存在相同匹配项,进入步骤2.5,否则转到步骤3;
步骤2.5、路由器从内容存储器CS中获取兴趣包的内容名称对应的数据内容;
步骤2.6、路由器将数据内容封装在数据包的数据Data字段中;
步骤2.7、路由器将内容名称封装在数据包的内容名称CN字段中;
步骤2.8、路由器将数据包的缓存标志字段中的缓存标志值CT按如下公式进行设置:CT=IH。
其中,IH为兴趣包跳数。
设置完毕将缓存标志值CT封装在数据包的缓存标志字段中;
步骤2.9、路由器将数据包其余字段进行封装;
步骤2.10、封装数据包完毕,路由器将数据包从兴趣包进入的进入接口IF发送回去;
步骤3、路由器从内容存储器CS中未查询到匹配项,继续查询待定兴趣表PIT,待定兴趣表PIT结构如图4所示,待定兴趣表包括两项内容,分别是内容名称CN(Content Name)和对应的进入接口IF(Incoming Face(s)),相同的内容名称CN可能对应多个进入接口IF,若待定兴趣表中匹配到相同的内容名称,则在待定兴趣表记录兴趣包的内容名称和对应进入接口,丢弃兴趣包;若没有匹配到相同的内容名称,则进入步骤4。具体包括以下步骤:
步骤3.1、路由器将兴趣包的内容名称同待定兴趣表中的内容名称CN进行匹配;
步骤3.2、若存在匹配项,进入步骤3.3。否则转向步骤4;
步骤3.3、在待定兴趣表中新增条目,记录兴趣包的内容名称以及对应的进入接口IF;
步骤3.4、记录完毕,路由器将该兴趣包丢弃,兴趣包的发送过程结束。
步骤4、路由器从待定兴趣表PIT中未查询到匹配项,继续查询转发信息库FIB,转发信息库数据结构如图5所示,信息转发库包括两项内容,分别是名称前缀NP(NamePrefix)和对应的转发接口列表FL(Face List)。其内容通过命名数据网络链路状态路由协议(Name-data Link State Routing protocol, NLSR)进行填充,根据兴趣包的内容名称在转发信息库FIB中查询是否存在匹配项,若转发信息库中存在与兴趣包的内容名称匹配的名称前缀,则查找匹配的名称前缀对应的转发接口,将兴趣包的兴趣包跳数加1,并将兴趣包从本步骤查找的转发接口转发;若没有与兴趣包的内容名称匹配的名称前缀,则丢弃兴趣包。具体包括以下步骤:
步骤4.1、路由器将兴趣包的内容名称同转发信息库FIB中的名称前缀NP进行匹配;
步骤4.2、若存在匹配项,进入步骤4.3,否则说明路由器无法处理该兴趣包,将兴趣包丢弃;
步骤4.3、在兴趣待定表PIT中新增条目,记录该兴趣包的内容名称信息以及对应的进入接口;
步骤4.4、记录完毕路由器查询转发信息库FIB中匹配项对应的转发接口;
步骤4.5、查询完毕将兴趣包跳数IH字段原有数值加1,完成兴趣包跳数更新操作;
步骤4.6、兴趣包跳数更新完毕后,路由器将兴趣包从步骤4.4中查询到的转发接口转发出去;
步骤5.1、内容生产者CP根据解析的内容名称CN字段信息从内容服务器中获取请求的数据内容并且封装成数据包进行返回,数据包结构如图1所示;
步骤5.2、内容生产者CP将内容名称封装进数据包的内容名称CN字段中;
步骤5.3、内容生产者CP将数据内容封装进数据包的数据Data字段中;
步骤5.4、为了将首次被请求的数据包缓存在中心路由器上,内容生产者CP将缓存标志值CT按如下公式进行设置:
设置完毕将缓存标志值CT封装在数据包的缓存标志字段中。中心路由器的位置如图3(a)和图3(b)所示;
步骤5.5、内容生产者CP将数据包其余字段进行封装;
步骤5.6、封装数据包完毕,内容生产者CP将数据包从兴趣包进入的进入接口IF发送回去;
步骤6、路由器接收数据包,并解析数据包内容,路由器处理数据包包括以下步骤;
步骤6.1、路由器读取数据包内容名称CN字段的信息;
步骤6.2、路由器读取数据包的缓存标志值CT;
步骤6.3、路由器判断数据包的缓存标志值CT是否等于0,若不等于0,转向步骤6.4,否则转向步骤6.5;
步骤6.4、路由器判断数据包的缓存标志值CT是否等于1,
若等于1,则路由器比较当前内容存储器剩余缓存容量RCS以及数据包大小DPS。如果内容存储器剩余缓存容量RCS大于等于数据包大小DPS,路由器将数据包缓存在内容存储器CS中,并且将数据包的缓存标志字段的缓存标志值 CT更新为0转向步骤6.8,若剩余缓存容量RCS小于数据包大小DPS则转向步骤6.6。
若缓存标志字段的值不等于1,则转向步骤6.7
步骤6.5、路由器不变更数据包的缓存标志值CT,转向步骤6.8;
步骤6.6、路由器使用LRU(Least Recently Used)规则替换出最近一段时间内最久未使用的数据包,路由器将替换出的数据包的缓存标志值设置为1,通过查询转发信息库FIB获取该路由器通向上游路由器的转发接口,将替换出的数据包从通向上游路由器的转发接口转发出去。转发完毕,路由器将接收的数据包缓存在内容存储器CS中,并将接收到的数据包的缓存标志值CT设置为0,设置完毕转向步骤6.8。
步骤6.7、路由器将数据包缓存标志CT字段的值减去1,转向步骤6.8;
步骤6.8、路由器查询待定兴趣表PIT中与数据包对应兴趣包的所有的进入接口IF;步骤6.9、路由器从查询到的所有的进入接口将数据包发送出去;
步骤6.10、路由器在数据包发送完成后清除待定兴趣表PIT中对应的兴趣包的内容名称和进入接口。
基于以上步骤,进行仿真实验进行性能测试:
仿真实验平台选择ndnSIM;
仿真拓扑结构为随机生成的具有50个节点的NDN网络拓扑,结构图如图6所示,在网络中心设置1个内容生产者CP,在网络边缘设置5个内容请求者CR;
仿真设置的参数如下,链路带宽BW为10(Mbps);链路时延LD为10(ms);内容请求者CR发送兴趣包速率为100(interest/s),发送过程符合泊松分布;内容请求者CR根据 Zipf-Mandelbrot分布请求数据内容,其中Zipf参数α一般取[0.2,1.5],参数α控制数据内容请求集中程度,参数α越大内容请求者CR请求的数据内容越集中,本实施例中取参数α为0.7;数据内容总数设置为5000个;路由器中内容存储器CS大小设置为50Mb;路由策略采用BestRoute策略;仿真时间设置为100s。
将内容请求者CR从路由器中命中数据内容的数量同内容请求者CR总共发出兴趣包的数量进行对比得到缓存命中率,缓存命中率实验结果如图7所示,其中每隔1s进行一次计算。
将内容请求者CR接收到请求的数据包的时延同内容请求者CR总共发出兴趣包的数量进行对比得到平均请求时延,平均请求时延如图8所示,其中每隔1s进行一次计算。
将内容请求者CR请求的数据包返回时经过的跳数同内容请求者CR总共发出兴趣包的数量进行对比得到平均路由跳数,平均路由跳数如图9所示,其中每隔1s进行一次计算。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (1)
1.一种基于二分法的命名数据网络缓存方法,其特征在于,包括以下步骤:
步骤1、内容请求者发起数据请求,将兴趣包通过所有可用转发接口向外发送;
步骤2、路由器接收兴趣包,并读取兴趣包的内容名称,根据内容名称检索内容存储器,若存在内容名称匹配的数据包,则将数据包中的缓存标志值CT设置为兴趣包跳数IH,将数据包从兴趣包的进入接口发送出去;若不存在内容名称匹配的数据包,则进入步骤3;
步骤3、路由器查询待定兴趣表,待定兴趣表包括内容名称和对应的进入接口,若待定兴趣表中匹配到相同的内容名称,则在待定兴趣表记录兴趣包的内容名称和对应进入接口,丢弃兴趣包;若没有匹配到相同的内容名称,则进入步骤4;
步骤4、路由器查询转发信息库,转发信息库包括名称前缀和对应的转发接口,若转发信息库中存在与兴趣包的内容名称匹配的名称前缀,则查找匹配的名称前缀对应的转发接口,将兴趣包的兴趣包跳数加1,并将兴趣包从本步骤查找的转发接口转发;若没有与兴趣包的内容名称匹配的名称前缀,则丢弃兴趣包;
步骤6、路由器接收数据包,获得数据包的缓存标志值CT,若数据包的缓存标志值CT等于大于1,则数据包的缓存标志值CT减1;若数据包的缓存标志值CT等于1,则数据包的缓存标志值CT减1并缓存数据包;若数据包的缓存标志值CT等于0,则数据包的缓存标志值CT不变;
路由器在待定兴趣表PIT中与数据包对应兴趣包的所有的进入接口,并通过进入接口进行发送,
数据包发送完成后清除待定兴趣表PIT中对应的兴趣包的内容名称和进入接口,
所述的步骤1包括以下步骤:
步骤1.1、内容请求者将需要请求的内容名称封装在兴趣包的内容名称字段中;
步骤1.2、内容请求者创建一个随机数封装在兴趣包的随机数字段中;
步骤1.3、内容请求者将兴趣包的兴趣包跳数字段初始为0;
步骤1.4、内容请求者封装兴趣包的其余字段;
步骤1.5、查询内容请求者所有可用转发接口;
步骤1.6、内容请求者将封装完毕的兴趣包从所有可用转发接口发送出去,
所述的步骤6中缓存数据包包括以下步骤:
路由器查找最久未使用的数据包,路由器将替换出的数据包的缓存标志值设置为1,通过查询转发信息库FIB获取该路由器通向上游路由器的转发接口,将替换出的数据包从通向上游路由器的转发接口转发出去,路由器将接收的数据包缓存在内容存储器CS中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210011878.XA CN114025020B (zh) | 2022-01-06 | 2022-01-06 | 一种基于二分法的命名数据网络缓存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210011878.XA CN114025020B (zh) | 2022-01-06 | 2022-01-06 | 一种基于二分法的命名数据网络缓存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114025020A CN114025020A (zh) | 2022-02-08 |
CN114025020B true CN114025020B (zh) | 2022-04-22 |
Family
ID=80069562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210011878.XA Active CN114025020B (zh) | 2022-01-06 | 2022-01-06 | 一种基于二分法的命名数据网络缓存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114025020B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114257654B (zh) * | 2022-02-28 | 2022-05-20 | 中南民族大学 | 一种基于分级思想的命名数据网络顺序缓存方法 |
CN116073939B (zh) * | 2023-03-07 | 2023-06-20 | 中南民族大学 | 一种光命名数据网络中数据冲突解决方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039781B (zh) * | 2020-09-09 | 2022-09-09 | 北京同创神州航天科技有限公司 | 一种基于流控制的命名数据网络转发方法 |
CN113489779B (zh) * | 2021-07-01 | 2024-07-16 | 扬州大学 | 一种基于网络拓扑分层的精确缓存放置方法 |
CN113783779B (zh) * | 2021-09-10 | 2022-06-28 | 中南民族大学 | 命名数据网络中分级随机缓存方法 |
-
2022
- 2022-01-06 CN CN202210011878.XA patent/CN114025020B/zh active Active
Non-Patent Citations (2)
Title |
---|
命名数据网络中基于数据请求节点的就近缓存算法;张浪等;《重庆邮电大学学报(自然科学版)》;20180228;第30卷(第1期);第90-95页 * |
基于命名数据网络的文件分发缓存策略研究;王凯;《北京交通大学硕士专业学位论文》;20210531;第二-三章 * |
Also Published As
Publication number | Publication date |
---|---|
CN114025020A (zh) | 2022-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114025020B (zh) | 一种基于二分法的命名数据网络缓存方法 | |
US6674769B1 (en) | Simultaneous searching of layer 3 policy filter and policy cache in a network switch port | |
JP3790217B2 (ja) | 高速インターネットプロトコルルートルックアップ遂行及びルーティング/フォワーディングテーブル管理のための装置及び方法 | |
Kim et al. | Revisiting route caching: The world should be flat | |
US6850980B1 (en) | Content routing service protocol | |
CN109905480B (zh) | 基于内容中心性的概率缓存内容放置方法 | |
US7313138B2 (en) | Router device and routing method | |
CN111107000B (zh) | 一种基于网络编码的命名数据网络中内容缓存方法 | |
CN109905720B (zh) | 命名数据网络下基于视频点播***的缓存替换方法 | |
CN104994152B (zh) | 一种Web协同缓存***和方法 | |
CN113783779B (zh) | 命名数据网络中分级随机缓存方法 | |
WO2012006893A1 (zh) | 以太网组播的方法及装置 | |
US11502956B2 (en) | Method for content caching in information-centric network virtualization | |
US7487255B2 (en) | Routing cache management with route fragmentation | |
Yang et al. | Providing cache consistency guarantee for ICN-based IoT based on push mechanism | |
EP1128611A2 (en) | Method for table lookup | |
CN113382053B (zh) | 基于节点半局部中心性和内容热度的内容主动推送方法 | |
CN114257654B (zh) | 一种基于分级思想的命名数据网络顺序缓存方法 | |
CN107135271B (zh) | 一种能量有效的内容中心网络缓存方法 | |
Siddiqui et al. | Congestion controlling mechanisms in content centric networking and named data networking–a survey | |
CN112688880B (zh) | 命名数据网络中一种降低冗余数据包传输方法 | |
CN114448887A (zh) | 一种基于令牌与流行度的信息中心网络缓存管理方法及*** | |
CN111262785B (zh) | 一种命名数据网络中的多属性概率缓存方法 | |
Chiu et al. | A two-tiered caching scheme for information-centric networks | |
CN112351075A (zh) | 一种基于内容中心网络的联合移动管理方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |