ns-3.30.1 Ubuntu 16.04虚拟机安装&使用

目录

0.开发环境

1.安装依赖环境

 遇到的问题

2.下载NS3源码

3.配置&安装

4.测试

4.1 ns3功能测试

4.2 程序测试

4.3可视化工具Pyviz测试

5.NetAnim(可视化工具)

5.1安装

5.2 NetAnim运行

5.3xml文件生成


0.开发环境

  1. 系统:Ubuntu 16.04 (运行在VMware 15 Pro上)
  2. ns3.30.1
  3. 系统内存:开始2G不够,后来我增加到2.8G

1.安装依赖环境

可参照官网指导手册,这是最权威的:

  • https://www.nsnam.org/wiki/Installation#Ubuntu.2FDebian.2FMint
  • https://www.nsnam.org/docs/tutorial/html/getting-started.html#running-a-script

其中阅读Ubuntu部分的教程即可

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第1张图片

总结了部分安装命令,可直接保存为shell文件运行

#!/bin/bash
sudo  apt-get install gcc g++ python python3
sudo  apt-get install gcc g++ python python3 python3-dev
sudo  apt-get install mercurial python3-setuptools git
sudo  apt-get install qt5-default
sudo  apt-get install python-pygraphviz python-kiwi python-pygoocanvas libgoocanvas-dev ipython
sudo  apt-get install gir1.2-goocanvas-2.0 python-gi python-gi-cairo python-pygraphviz python3-gi python3-gi-cairo python3-pygraphviz gir1.2-gtk-3.0 ipython ipython3  
sudo apt-get install openmpi-bin openmpi-common openmpi-doc libopenmpi-dev
sudo apt-get install autoconf cvs bzr unrar
sudo apt-get install gdb valgrind 
sudo apt-get install uncrustify
sudo apt-get install doxygen graphviz imagemagick
sudo apt-get install texlive texlive-extra-utils texlive-latex-extra texlive-font-utils texlive-lang-portuguese dvipng latexmk
sudo apt-get install python3-sphinx dia 
sudo apt-get install gsl-bin libgsl-dev libgsl23 libgslcblas0
sudo apt-get install flex bison libfl-dev
sudo apt-get install tcpdump
sudo apt-get install sqlite sqlite3 libsqlite3-dev
sudo apt-get install libxml2 libxml2-dev
sudo apt-get install cmake libc6-dev libc6-dev-i386 libclang-dev llvm-dev automake
sudo apt-get install python-pip
python3 -m pip install --user cxxfilt
sudo apt-get install libgtk2.0-0 libgtk2.0-dev
sudo apt-get install vtun lxc
sudo apt-get install libboost-signals-dev libboost-filesystem-dev
#下面这些不是必须的,还是建议装上
sudo pip install pygccxml
sudo apt-get install castxml
sudo apt-get install libgcrypt11-dev libgcrypt20-doc
sudo apt-get install gtk+-3.0

 遇到的问题

pip:

pip3和pip两个,都是版本问题,利用相关命令来升级。具体用的哪个命令,我也记不清了,就是百度,升级pip版本就对了。

sudo pip3 install --user --upgrade pip

sudo python -m pip install --upgrade pip

sudo pip3 install --upgrade pip

这里推荐两篇博客:按照操作,pip升级到20.0.2版本.

  • https://blog.csdn.net/qq_43590972/article/details/88617999
  • https://blog.csdn.net/wzyaiwl/article/details/81263419
  • 但最后仍会提示:pip is being invoked by an old script wrapper。。。。。。,应该没啥影响。

第二天,写博客时输入pip3 --version 和pip --version验证版本信息,又正常了!!!

castxml:

需要2.0以上版本,但是apt-get只能安装1.0版本的。就是自己下载安装,也需要别的依赖环境,太麻烦了。百度一下这个也不太重要,就没管了。


2.下载NS3源码

  • 从NS3官网下载源码包,然后解压。
下载源码包:
wget https://www.nsnam.org/releases/ns-allinone-3.30.1.tar.bz2
解压命令:
tar -xjf ns-allinone-3.30.1.tar.bz2

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第2张图片

  • 解压后如下图所示:

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第3张图片


3.配置&安装

进入ns-allinone-3.30.1/ ns-3.30.1/文件夹下,开始配置安装

  1. 由于一开始安装了Pyviz可视化工具库,在配置的时候需要指定pybindgen的路径,否则pyviz无法检测到。
  2. 使得编译版本为debug模式,同时使得实例代码和测试代码可用。
#此命令不可复制粘贴,看你的pybindgen文件夹的位置在哪
sudo ./waf configure --build-profile=debug --enable-example --exable-tests --with-pybindgen=/home/ubuntu/tarballs/ns-allinone-3.30-1/pybindgen-0.20.0 --enable-sudo

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第4张图片

pwd命令:

配置完成后系统提示如下 :configure finished successfully。这样应该才是正常的。

  1. 可以看见pyviz enable。否则会提示missing....
  2. 前面所说:castxml too old.

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第5张图片

接下来执行命令sudo ./waf (耗时较长,差不多40分钟)。

sudo ./waf

可以看见哪些被安装的模块,哪些没有被安装的。visualize即可视化工具。

 

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第6张图片

至此NS3安装完成。


4.测试

4.1 ns3功能测试

仍然是在ns-3.30.1目录下,执行如下命令:

sudo ./test.py -c core

结果如下图:

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第7张图片

4.2 程序测试

运行如下命令:

sudo ./waf --run hello-simulator

结果如下图:有hello-simulator输出。

4.3可视化工具Pyviz测试

运行如下命令:--vis表明启用可视化工具

sudo ./waf --run first --vis

结果如下图:(点击simulate可以运行)

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第8张图片

  • 对于python脚本:直接运行即可
sudo ./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
  • C++脚本

如src/netanim/examples/star-animation.cc脚本,要出现GUI界面,需对文件所在路径下的wscript脚本进行修改。添加'visualizer'

执行命令(文件名不要带上.cc):出现GUI界面如下

sudo ./waf --run src/netanim/examples/star-animation --vis

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第9张图片


5.NetAnim(可视化工具)

5.1安装

进入ns-allinone-3.30.1/netanim-3.108/文件夹,执行如下命令:

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第10张图片

sudo make clean
sudo qmake NetAnim.pro
sudo make

执行命令,启动NetAnim

./NetAnim

NetAnim软件界面:

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第11张图片

5.2 NetAnim运行

NetAnim仿真GUI界面就是解析仿真程序生成的xml文件

如之前的star-animation。打开 star-animation.cc文件,阅读代码。

  • 加载netanim-module.h文件

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第12张图片

  • 在Run()函数前保存为xml文件

  • 生成的.xml文件位于ns-3.30.1文件夹

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第13张图片

5.3xml文件生成

如果程序里没有生成xml文件的代码,需要自己添加

如example/tutoroal/first.cc文件

  1. 添加#include "ns3/netanim-module.h"头文件
  2. Simulator:Run();上一句添加 AnimationInterface anim("first.xml")
  3. 以命令行参数的形式调用,需加在创建节点之前加入():
  4. CommandLine cmd;
  5. cmd.Parse(argc,argv);

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第14张图片

如:运行first.cc可看见有first.xml文件生成

利用NetAnim打开生成的xml文件,如下图所示:

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第15张图片 firrst.xml

 

ns-3.30.1 Ubuntu 16.04虚拟机安装&使用_第16张图片 star-animation.xml

 

你可能感兴趣的:(网络仿真,计算机网络,ns3,ubuntu,网络仿真)