1.一种基于分级思想的命名数据网络顺序缓存方法,其特征在于,包括以下步骤:步骤1、内容请求者CR发起数据请求,封装兴趣包通过所有可用接口向外发送,兴趣包包括内容名称字段、选择器字段、随机数字段、以及兴趣包跳数字段,内容请求者CR将兴趣包的兴趣包跳数IH字段内容初始为0;
步骤2、路由器接收兴趣包,根据读取的内容名称检索路由器的内容存储器CS,若存在相同内容名称的匹配项,则封装数据包,并将缓存标志值设置为0封装在数据包的缓存标志CT字段中,数据包包括内容名称字段、签名字段、签信息字段、数据字段、数据包跳数字段和缓存标志字段,将数据包从兴趣包进入的接口IF发送回去,进入步骤6;若不存在相同内容名称的匹配项,则进入步骤3;
步骤3、路由器从内容存储器CS中未查询到匹配项,继续查询待定兴趣表PIT,待定兴趣表包括内容名称项、进入接口项、以及兴趣包跳数项,根据内容名称在待定兴趣表中查询是否存在匹配项,若存在匹配项,在待定兴趣表中新增条目,记录兴趣包的内容名称,兴趣包的进入接口以及兴趣包跳数,记录完毕后该兴趣包丢弃;否则转向步骤4;
步骤4、路由器从待定兴趣表PIT中未查询到匹配项,根据兴趣包的内容名称在转发信息库中查询是否存在匹配项,若存在匹配项,在待定兴趣表中新增条目项,记录该兴趣包的内容名称,进入接口以及兴趣包跳数,记录完毕路由器查询转发信息库FIB中对应匹配项的接口队列信息,将兴趣包跳数IH字段原有数值加1并从本步骤查询的接口队列对外发送;否则将兴趣包丢弃;
步骤5、内容生产者CP解析兴趣包中内容名称CN字段信息以及兴趣包跳数IH字段值,封装数据包,内容生产者CP将缓存标志值设置为2封装在数据包的缓存标志CT字段中,将数据包跳数初始为0封装在数据包跳数DH字段中,将数据包从兴趣包进入的接口IF发送回去;
步骤6、路由器接收数据包,并解析数据包内容,计算当前路由器在当前路径中的等级level,计算当前路径中路由器总数目TH,计算当前路由器在当前路径同内容请求者CR的相对距离DTR, 计算当前路由器在当前路径同内容生产者CP的相对距离DTP,计算当前路由器中内容存储器CS剩余缓存容量RCS,数据包大小DPS以及缓存标志CT字段的值,计算完毕进行缓存判断,
所述的步骤6包括以下步骤:
步骤6.1、路由器读取数据包内容名称CN字段;
步骤6.2、路由器读取数据包跳数DH字段的值;
步骤6.3、路由器读取数据包缓存标志CT字段的值;
步骤6.4、路由器根据数据包内容名称同待定兴趣表PIT中的内容名称进行匹配;
步骤6.5、路由器查询出待定兴趣表PIT中内容名称的匹配项中对应兴趣包的进入接口信息;
步骤6.6、路由器查询出待定兴趣表PIT的内容名称的匹配项中兴趣包跳数IH的值;
步骤6.7、路由器计算出当前路径中路由器总数目TH的值,计算公式为:;
其中,DH为数据包跳数,IH为兴趣包跳数;
步骤6.8、路由器计算在当前路径中的等级level,计算公式为:其中,first为第Ⅰ级,second为第Ⅱ级,third为第Ⅲ级;
步骤6.9、路由器计算在当前路径中同内容请求者CR的相对距离DTR的值,计算公式为:步骤6.10、路由器计算在当前路径中同内容生产者CP的相对距离DTP的值,计算公式为:
步骤6.11、路由器判断数据包的数据包缓存标志CT字段的值,若数据包缓存标志CT字段的值大于2,转向步骤6.12;若数据包缓存标志CT字段的值等于2,转向步骤6.13;若数据包缓存标志CT字段的值等于1则不修改该数据包缓存标志CT字段的值,转向步骤6.19;若数据包缓存标志CT字段的值等于0,转向步骤6.15;
步骤6.12、路由器修改数据包中缓存标志CT字段的值,将原有缓存标志CT字段的值减去1,修改完毕转向步骤6.19;
步骤6.13、路由器比较当前路由器的内容存储器CS的剩余缓存容量RCS和数据包大小DPS,若当前路由器中内容存储器CS剩余缓存容量RCS大于数据包大小DPS,将该数据包缓存在当前路由器内容存储器CS中,同时将数据包中的缓存标志CT字段的值设置为1,转向步骤
6.19;否则转向步骤6.14;
步骤6.14、路由器计算在当前路径中同内容请求者CR的相对距离DTR的值是否为0,若为0则将内容存储器CS中最近时间内最久未使用的数据包替换为新到达的数据包,替换完毕将新到达的数据包中的缓存标志CT字段的值设置为1,转向步骤6.19;若不为0则将数据包中的缓存标志CT字段的值设置为2,转向步骤6.19;
步骤6.15、路由器计算在当前路径中同内容生产者CP的相对距离DTP的值是否为0,若为0,进入步骤6.16;否则,转向步骤6.18;
步骤6.16、若当前路由器中内容存储器CS剩余缓存容量RCS大于数据包大小DPS,则将数据包缓存在当前路由器中,并且将数据包的缓存标志字段值设置为1,当前次传输的数据包在路由路径中的传输过程中,已经对数据包缓存完毕,设置完毕转向步骤6.19,否则转向步骤6.17;
步骤6.17、路由器计算在当前路径中同内容请求者CR的相对距离DTR的值是否为0,若为0,则将本地内容存储器CS中最近时间内最久未使用的数据包替换为新到达的数据包,替换完毕将数据包的缓存标志CT字段的值设置为1,转向步骤6.19,若不为0,则将数据包中的缓存标志CT字段的值设置为2,转向步骤6.19;
步骤6.18、路由器按照如下公式设置数据包的缓存标志CT字段的值:设置完毕转向步骤6.19;
步骤6.19、路由器查询待定兴趣表PIT中对应兴趣包的进入接口信息;
步骤6.20、路由器更新数据包跳数DH字段的值,将原数据包跳数DH字段的值加上1;
步骤6.21、路由器从步骤6.19查询到的进入接口将数据包跳数DH字段更新完毕的数据包发送出去;
步骤6.22、路由器在数据包发送完成后清除待定兴趣表PIT中数据包对应的兴趣包的相关内容。