NS3的开发旨在为网络研究和教育提供开放,可扩展的网络仿真平台。简而言之,NS3提供了分组数据网络如何工作和执行的模型,并为用户提供了进行模拟实验的模拟引擎。使用ns-3的一些原因包括进行更难或不可能用真实系统执行的研究,在高度可控的,可重现的环境中研究系统行为,以及了解网络如何工作。用户将注意到NS3中的可用模型集侧重于建模Internet协议和网络的工作方式,但NS3不仅限于Internet系统;一些用户正在使用ns-3来建模非基于互联网的系统。
官方提供了相应的文档https://www.nsnam.org/ns-3-28/documentation/
官方文档
安装NS3
1、安装依赖库
在安装NS3前需要安装一些依赖库,在安装库之前可以先更新一下apt
sudo apt-get update
安装依赖库
sudo apt-get install gcc g++ python python-dev C++和python
sudo apt-get install mercurial NS3代码维护使用的源码版本控制管理系统
sudo apt-get install bzr 运行python绑定ns-3-dev需要bazaar这个组件
sudo apt-get install gdb valgrind 调试工具
sudo apt-get install gsl-bin libgsl-dev libgsl23 支持更多精确WIFI模块的GNU Scientific Library (GSL)
sudo apt-get install flex bison libfl-dev 仿真必需的词法分析器和语法分析生成器
sudo apt-get install g++-3.4 gcc-3.4 Network Simulation Cradle (nsc) stacks需要gcc-3.4
sudo apt-get install tcpdump 读取pcap的packet traces
sudo apt-get install sqlite sqlite3 libsqlite3-dev 支持统计特性的数据库软件
sudo apt-get install libxml2 libxml2-dev xml的配置存储软件
sudo apt-get install libgtk2.0-0 libgtk2.0-dev 基于GTK的配置系统
sudo apt-get install vtun lxc 在虚拟机and ns-3上测试
sudo apt-get install uncrustify 支持utils/check-style.py 代码风格检查程序
sudo apt-get install doxygen graphviz imagemagick 文档生成器
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra
sudo apt-get install python-sphinx dia
sudo apt-get install python-pygraphviz python-kiwi python- - pygoocanvas libgoocanvas-dev Gustavo’s ns-3-pyviz的可视化软件
sudo apt-get install libboost-signals-dev libboost-filesystem-dev 支持openflow 模块
sudo apt-get install openmpi* 支持基于 MPI的分布式仿真
2、安装NS3
NS3可通过Tarballs和Bake两种方式进行安装,以下将以Tarballs为例:创建Tarballs目录、进入目录、下载压缩包、解压
mkdir tarballs
cd tarballs
wget http://www.nsnam.org/release/ns-allinone-3.28.tar.bz2
tar xjf ns-allinone-3.28.tar.bz2
解压完成以后目录如图所示:
NS3目录
3、编译NS3
cd ns-allinone-3.28
./build.py
cd ns-3.28
./waf distclean (清除整个build目录)
./waf configure --build-profile=debug --enable-examples --enable-tests(打开debug并开启例子及帮助)
./waf build
编译
4、测试
可通过运行./test.py -c core来进行测试
测试
测试
5、运行hello-simulator
hello-simulator相当于hello world程序
通过输入./waf --run hello-simulator运行
运行结果
6、ERROR
6.1如果看不到输出
如果看到Waf消息指示构建已成功完成,但未看到“Hello Simulator”输出,则可能是在Building with Waf部分中将构建模式切换为优化,但错过了更改回调试模式。 如果未看到“Hello Simulator”输出,请键入以下内容:
$ ./waf configure --build-profile=debug --enable-examples --enable-tests
6.2如果遇见program 'hello-simulator' not found的错误
错误截图
原因可能是没有启用示例,运行命令./waf configure --enable-examples --enable-tests
启用示例
再次运行hello-simulator时会进行build,并输出结果。
运行时需要build的情况
在接下来的章节中需要进行代码的编写,在此推荐使用VS Code来作为编写代码的IDE。具体的在Ubuntu上的安装方法,请参见VS Code安装。