NFD’s Content Store
CS用一组CS条目来实现,按照包括隐式摘要在内的全部数据名称进行排序。 为了管理条目,CS采用一个缓存策略接口(nfd :: cs :: Policy),每当添加,删除,更新或使用一个CS条目时接口会被调用。
默认情况下,ndnSIM使用NFD的内容存储,可使用旧式ndnSIM特定内容存储实现(请参阅旧内容存储实现)。 支持的缓存替换策略如下所示:
为了控制最大缓存大小和NFD CS的缓存策略:
ndnHelper.setCsSize(<max-size-in-packets>);
ndnHelper.setPolicy(<replacement-policy>);
...
ndnHelper.Install(nodes);
例如:To set CS size 100 on node1, size 1000 on node2, and size 2000 on all other nodes. LRU replacement policy for node 1, priority FIFO for the rest:
ndnHelper.setCsSize(100);
ndnHelper.setPolicy("nfd::cs::lru");
ndnHelper.Install(node1);
ndnHelper.setCsSize(1000);
ndnHelper.setPolicy("nfd::cs::priority_fifo");
ndnHelper.Install(node2);
NodeContainer allOtherNodes;
for (NodeList::Iterator i = NodeList::Begin(); i != NodeList::End(); ++i) {
if (*i != node1 && *i != node2) {
allOtherNodes.Add(*i);
}
}
ndnHelper.setCsSize(2000);
ndnHelper.Install(allOtherNodes);
例如:在所有的节点上禁用NFD的CS:
(设置CS的最小容量,为1,注:如果将容量设置为0,将会认为使用了旧版本CS)
ndnHelper.setCsSize(1);
...
ndnHelper.Install(nodes);
CS 条目
每一条CS条目包括:
(1)Data分组
(2)标志,标识Data分组是否是响应Interest分组而来的
(3)时间戳,标识Data分组是否已经久不更新而过期
网友评论