ndnSIM的real application(with ccn-cxx)运行

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hahachenchen789/article/details/85614881

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

猜你喜欢

转载自blog.csdn.net/hahachenchen789/article/details/85614881