目前水下传感网的研究内容并不多,仿真软件就更加匮乏了,目前比较完善并且在持续更新的仿真软件有DESERT-Underwater(基于NS-2), Unet-Stack(基于JVM开发), 和Aqua-Sim NG(基于NS-3)。
本文主要是介绍Aqua-Sim NG 的安装。
NS-3源码下载: 首先先去网址 https://www.nsnam.org/releases/ 下载NS-3的源代码,目前Aqua-Sim NG经过测试可以使用的是 3.24, 3.26, 3.27三个版本。
我这里下载的是3.26版本,将下载下来的文件使用如下命令解压: tar xjf ns-allinone-3.26.tar.bz2
Aqua-Sim NG源码下载: Aqua-Sim NG去GitHub https://github.com/rmartin5/aqua-sim-ng 下载,然后将下载下来的压缩包解压。将解压后的文件复制到ns-allinone-3.26/ns-3.26/src/
目录下。从这里可以看出Aqua-Sim NG其实是被作为NS-3的一个模块一起被编译安装。
后续的步骤基本上就是ns-3的安装过程了。
第一步:处理gcc版本
ns3的安装需要使用gcc和g++编译,但是Ubuntu18.04系统默认的gcc/g++版本一般在7.X多,而ns3的编译不支持太高版本的gcc/g++,如果不将gcc/g++降级的话,在编译安装ns3时会失败。
可以先通过命令gcc -v
查看一下系统中当前gcc/g++版本。
如果确实较高则执行如下命令降低gcc和g++版本:
#安装低版本gcc和g++
sudo apt-get install gcc-5
sudo apt-get install g++-5
#进入/usr/bin目录
cd /usr/bin
#先备份
sudo mv gcc gcc.backup
sudo mv g++ g++.backup
#然后将我们下载的5.几版本的gcc和g++链接过去
sudo ln -sf gcc-5 gcc
sudo ln -sf g++-5 g++
#参看是否降级成功
gcc -v
注意:sudo apt-get install gcc-5
这条命令如果写出具体的gcc版本在我的系统上无法成功执行,但是模糊的写一个gcc-5
就可以成功执行,命令会自动下载一个gcc-5.5。g++同理。
第二步:安装相关依赖
在正式编译安装ns3之前,要先安装很多依赖软件,执行以下命令安装这些依赖即可:
sudo apt-get update
sudo apt-get install gcc g++ python
sudo apt-get install gcc g++ python python-dev
sudo apt-get install mercurial
sudo apt-get install bzr
sudo apt-get install gdb valgrind
sudo apt-get install gsl-bin libgsl-dev libgsl2
sudo apt-get install flex bison libfl-dev
sudo apt-get install g++ gcc
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install python-sphinx dia
sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
sudo apt-get install openmpi*
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
可以把这些命令复制到一个脚本文件里一次性执行,免得一条一条执行太麻烦。
第三步:正式安装
1、先进入到目录ns-allinone-3.26,然后执行如下命令:
cd ns-allinone-3.26
sudo ./build.py
2、然后进入到目录ns-3.26,执行命令
cd ns-3.26
sudo ./waf clean
3、在目录ns-3.26下,执行如下命令完成编译安装
sudo ./waf -d debug --enable-example --enable-tests configure
sudo ./waf
如图下图所示,出现该情况表示编译成功
第四步:测试
在ns-allinone-3.26/ns-3.26目录下,执行如下命令,测试是否安装成功:
sudo ./waf --run hello-simulator
输出Hello Simulator表示NS-3安装成功
也可以运行如下命令运行Aqua-Sim NG的一个示例程序,如果正常输出不报错误,则表明Aqua-Sim NG成功安装。
sudo ./waf --run broadcastMAC_example