0 说明
NS3是一款网络模拟器,目前我们使用Ubuntu16来跑。因为Ubuntu18采用了新的桌面环境,NS3对其支持将在以后的版本中更新。
Aqua Sim NG(ASNG)是康涅狄格大学开发的基于NS3的水下网络模拟器,官方在NS3 2.4或2.6版本编译。我们这里使用NS3 2.6版本。查API的时候也要找对应版本的文档。
1 安装库
这里利用Ubuntu的apt直接安装。
sudo apt-get update
sudo apt-get install gcc g++ python python-dev mercurial bzr gdb valgrind gsl-bin libgsl0-dev flex bison libfl-dev tcpdump sqlite sqlite3 libsqlite3-dev libxml2 libxml2-dev libgtk2.0-0 libgtk2.0-dev vtun lxc uncrustify doxygen graphviz imagemagick texlive texlive-extra-utils texlive-latex-extra texlive-generic-extra texlive-generic-recommended texi2html python-sphinx dia python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev python-pygccxml libboost-signals-dev libboost-filesystem-dev openmpi-bin openmpi-doc libopenmpi-dev libgsl2
这里如果遇到软件包不再支持的问题,先去百度谷歌一下,没有直接去ubuntu软件中心查看相关软件包的情况,可能是改名字了。
2 安装NS3
到官网http://www.nsnam.org/下载2.6版本NS3代码包,解压到你想放的文件夹。我们直接放桌面。
下载解压后在终端进入NS3文件夹,编译。
cd ns-allinone-3.26
./build.py (会很久)
经过一段时间的等待,NS3环境算是初步搭建好,但是还不能用,还需要编译各个模块。而ASNG也算是一个模块,我们就直接在下一步中编译所以模块。
3 编译
下载ASNG到NS3的src中。
$ cd ns-allinone-3.26/ns-3.26/src/
$ git clone http://github.com/rmartin5/aqua-sim-ng
下载好之后就可以编译模块了。回到ns-3.26/下
./waf --enable-examples --enable-tests configure (-d optimized 优化编译,这个可选,可能会出一些问题,把warning当做error)
./waf build (会很久)
4 运行
编译好了我们可以运行例子试一试,格式如下:
./waf --run filename
我们写的代码一般放到scratch下,其中filename可以加上目录名字,也可以不加。我们可以随便写个不存在的名字,ns3会把支持的所有文件名给你列出来~
./waf --run test.py --vis
--vis 图形化显示
注意,我们写的文件虽然是c++,但是后缀要是.cc,不是.cpp !!!!
ok,现在就全部安装好了。
5 个人习惯
简单记录一下我的个人习惯。
虚拟机:vituralbox
编辑器:sublime
终端:terminator (保存好配置文件)
alias ns=./waf --run