ndnSIM官网说明可以利用ndnsim以及ndn-cxx、NFD等模块来模拟真实的协议栈实验。

但如果采用官网的教程和模块版本,是无法运行的。因为ndn-tools的版本会和ndn-cxx以及NFD模块版本冲突。具体的冲突原因是由于各个模块的接口api发生变化,导致模板之间的调用出现问题;或者是ndn-tools的编译需要c++14,而waf-tools只支持c++11。

总之各个模块的版本耦合太过严重,而也没有详细的版本变更说明。导致模拟真实的协议栈实验变得困难。

总结下来有两个解决办法:

方法一:

不采用官网实验所用的模块版本,对ns-3,ndnsim,ndn-cxx,NFD模块的版本进行实验,采用ndn-tools最新的版本,采用c++14进行编译。

方法二:

采用官网实验所用的模块版本,包括:ns-3,ndnsim,ndn-cxx,NFD模块,然后改变ndn-tools的版本,使之回退到c++11编译的版本。

最初采用方法一进行实验,验证了模块的所有版本,发现编译仍然报错。

因此采用方法二,结果编译成果,其中各个模块的版本如下:

ns-3:ndnSIM-v2.5

ndnSIM:master

ndn-cxx:(头指针分离于 c37bf16)

NFD:(头指针分离于 0a30676)

ndn-tools:(头指针分离于 ndn-tools-0.5)

接下来详细描述整个实验的运行过程:

1.下载源码

mkdir ns-dev
cd ns-dev
git clone https://github.com/named-data-ndnSIM/ns-3-dev ns-3

这里要注意不用checkout,下载下来就是ndnSIM-v2.5版本

git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM ns-3/src/ndnSIM

这里注意也不需要checkout,下载就是master分支。

--recursive 选项是下载ndnSIM的子模块,ndn-cxx和NFD。

2.编译安装ndnsim

cd ns-3
./waf configure --enable-examples
./waf
sudo ./waf install

注意这里不能用

-d optimized

3.下载真实实验应用代码

cd ..
git clone --recursive https://github.com/named-data-ndnSIM/scenario-ndn-ping my-simulations

加了--recursive 选项是下载应用代码中的一个子模块,ndn-tools。

cd ./my-simulations/ndn-tools
git checkout ndn-tools-0.5

checkout出ndn-tools-0.5版本。

4.对真实实验应用代码进行编译并运行:

cd ..
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./waf configure --debug./waf --run ping-simple# or
# ./build/ping-simple

ndnSIM的real application(with ccn-cxx)运行相关推荐

  1. (1) iphone开发,自定义Window-based Application 模板及委托运行机制

    Xcode 4.2之前是有这个模板的,但Xcode 4.2之后的更新版本中就没有了此模板,综合来说模板的作用就是为我们编程的时候节省代码量的. 好了让我们开始自定义Window-based Appli ...

  2. 曲奇的ndnSIM API教程翻译 命名数据网络 NDN ndn simulator

    目录 ndnSIM 开发文档 1.入门 1-1介绍 更多文档 支持 日志 1.2下载和编译 可移植性 先决条件 核心依赖项 NS-3 Python绑定的依赖项 下载ndnSIM源码 编译运行ndnSI ...

  3. powershell设置了权限依旧无法运行脚本_没用的知识汇总+1 Windows 权限维持汇总...

    文中所提到的利用方式均在WIN10与2016中进行了测试.文中所提技术仅用于内部测试,请勿进行非法利用. Windows 启动目录: Windows 启动目录分为,用户启动目录,与系统启动目录. 用户 ...

  4. 【Android 应用开发】 Application 使用分析

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40737419 代码下载 : Android 应用 Application 经典用法; ...

  5. SpringBoot webmvc项目导出war包并在外部tomcat运行产生的诸多问题以及解决方案

    背景: 有需求要将原来的Spring(3.2.6) + Springmvc + Hibernate项目重构为Springboot(1.5.2)项目 描述: 记录重构过程,以及期间遇到的种种问题和对应的 ...

  6. Run application

    Run application 运行程序 Runs an application using a command line. 使用命令行运行程序 Description 描述 Optionally, ...

  7. Native Application 开发详解

    文章目录: 1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Application 有何妙用: 5. ...

  8. java 编译 器 ide_在没有IDE的情况下编译和运行Java

    java 编译 器 ide 最近一个名为" 不使用IDE编译Java软件包 "的Java subreddit线程提出了一个问题:"是否有一个命令将软件包内的一组Java文 ...

  9. 在没有IDE的情况下编译和运行Java

    最近一个名为" 不使用IDE编译Java软件包 "的Java subreddit线程提出了一个问题:"是否有一个命令将软件包内的一组Java文件编译到一个单独的文件夹中( ...

最新文章

  1. Ubuntu之Gitlab、Gerrit、Jenkins协调工作配置
  2. 并发编程-10线程安全策略之不可变对象
  3. Python实现的导弹跟踪算法,燃!
  4. Python easy_install
  5. 动手学PaddlePaddle(0):新版本PaddlePaddle安装
  6. [C语言] 单向链表的构建以及翻转算法_图文详解(附双向链表构建代码)
  7. 获取URl后的查询参数
  8. c语言ide 字体大小,配置最小c语言IDE
  9. 最直白的编译原理-基础知识(清华-王书3版)
  10. K3S配置IPV6环境
  11. C++之三大特性 “封装”、“继承”、“多态”
  12. 在vue中使用unity3D实现webGL将要呈现的效果
  13. Jupyter Notebook简洁教程
  14. 服务器连接异常系统无法登录,Win10系统电脑无法登录LOL提示服务器连接异常的原因及解决方法...
  15. ppt制作:加总页数首页不显示页码
  16. 计算机微课用什么音乐,有关微课音乐课堂教学
  17. 关于几种软件测试分类的方法
  18. 价值 20 万美元的爱马仕包包是用蘑菇做的,你还会买吗?
  19. NASA电池数据集内容说明
  20. Java毕业设计_消防安全培训系统

热门文章

  1. Qz学算法-数据结构篇(排序)
  2. Vue使用vue-print-nb打印,并去除页眉页脚,打开打印窗口自动打印
  3. c语言编程的结果怎么输出到文件中,用C语言如何将结果输出到一个文本文件中保存...
  4. YOLOV5-face视频流
  5. 主人拿刀帮宠物狗打架 萨摩耶犬被砍4刀险被夺命
  6. gitee开源程序kkFileView踩坑及解决方案
  7. 信管专业的目标职位体系与职业认证体系
  8. MySql初级篇:入门mysql这一篇就够了(bushi)
  9. 计算机电路基础卡诺图,2019“计算机电路基础”作业.doc
  10. 互联网精英在家办公指南