转载,转自:http://blog.csdn.net/hnythyq/article/details/55195605 侵删
- ndnsim 仿真基本流程
使用ndnsim仿真实验的大体流程:
- 构建拓扑结构(方法一:代码构建。方法二:使用拓扑插件)
- 在所有节点安装NDN栈。
- 安装相应的转发策略。
- 给各个节点安装对应的消费者应用或者生产者应用
- 手动或者用globalroutinghelper生成FIB表
- 确定模拟时间。
- 使用trace helper获取仿真结果。
- 开始模拟,模拟技术后销毁。
各种实例见:http://ndnsim.net/2.0/examples.html
- 如何使用自己的仿真代码进行试验?
建议使用ndnsim工作组给出的仿真模板。
具体过程:
(前提已安装ns3和ndnsim,且ns3安装是默认路径。查看usr/local/lib里面有没有ns3相关库,如果没有则重新安装ns3和ndnsim。
cd ns-3
./waf configure -d optimized
./waf
./waf shell(添加的一步)
sudo ./waf install)
cd ndnSIM
git clonehttps://github.com/named-data-ndnSIM/scenario-template.git my-simulations
cd my-simulations
PKG_CONFIG_PATH=/usr/local/lib/ ./wafconfigure
如果编译成功则模板可以正常使用。
之后运行需要使用LD_LIBRARY_PATH=/usr/local/lib ./waf –run 命令。
模板的使用方面:
Scenario文件夹放仿真环境的文件。
Extensions文件夹放应用的文件。
为了获取仿真的结果,我们需要使用ndnSIM中提供的trace资源来获取相关的数据。
Packet-leveltrace helpers
l ndn::L3RateTracer用来估计比特率和统计通过一个节点兴趣包和数据包的数量。
l ndn::L2Tracer用来记录在第二层丢包率。
Contentstore trace helper
l ndn::CsTracer用来记录缓存的碰撞率的。(cache hits/cache misses)
Application-leveltrace helper
l ndn::AppDelayTracer用来记录兴趣包的发送和数据包的接收之间的延时。
Tracer的使用都是在Simulator::Run()前加上tracer类名::InstallAll(“输出文件名”)。
如ndn::AppDelayTracer::InstallAll(“app-delays-trace.txt”);
还有一点想说的就是网站上给出的例子内容的发布者都是回复的一个虚拟的数据包,所以我们要想实现自己真正的某些收发功能,需要自己写消费者和发布者应用。
总的来说难点在于自己编写应用、转发策略、缓存策略等,用现成的策略和应用进行仿真还是很简单的。
最后有一点疑问就是用拓扑插件生成拓扑,中的metric表示什么。。。跳数?优先级?