NS-3教程(1):NS-3开发环境搭建

前言


我是根据这篇博客http://blog.csdn.net/dyzok88/article/details/50816624,搭建的开发环境,在此之后NS-3又发布了几个新的版本,本文在原文的基础上,针对新出的版本做了些更新。

在现代网络通信技术的教学和科研中,迫切希望有一种先进的网络仿真技术。在网络模拟工具的研究和开发方面国内所做的工作较少,但是国外早已出现了很多研究成果和仿真工具,如ns-2、OMNet++、OPNET、GloMoSim、GTNetS、QualNet、Yans、NCTUNS、SSFNet、JiST和SimPy等。ns-3是在广泛汲取现有优秀开源工具ns-2、GTNetS、Yans等技术经验,摒弃现有工具的缺点开发出来的。最重要的是,ns-3基于GNU GPLv2许可,相信在开源力量的推动下,ns-3一定会会更加强大。

本文重点内容是ns-3的下载、编译和安装。所谓“条条大路通罗马”,ns-3环境的搭建也是有多种可行之法,作为开发新手,快速掌握其中的一种方法,并且过滤掉所谓的“高大上”之法,未必不是件好事。

准备工作


ns-3的开发文档在nsnam官网有详细的介绍,通过官网可以链接到nsnam的wiki页面,https://www.nsnam.org/wiki/Installation,该页面详细介绍了ns-3的安装。本人根据该文档,成功搭建了Ubuntu14.04 + ns-3.26的开发环境。

下面将准备工作总结为一个小脚本。

#!/bin/sh
# Copyright(C) 2016 NiceTony Network. All rightsreserved.
# ns-3setup
#
# setup ns-3 env on `Ubuntu14.04+ns-3.26`
# History
# v1.0.0           2016-11-2
# Create.
#
# Have any questions about these content, plscontact me [email protected]

sudo apt-get install gcc g++ python -y
sudo apt-get install gcc g++ python python-dev -y
sudo apt-get install qt4-dev-tools libqt4-dev -y
sudo apt-get install mercurial -y
sudo apt-get install bzr -y
sudo apt-get install cmake libc6-dev libc6-dev-x32 g++-multilib -y
sudo apt-get install gdb valgrind -y
sudo apt-get install gsl-bin libgsl0-devlibgsl0ldbl -y
sudo apt-get install flex bison libfl-dev -y
sudo apt-get install tcpdump -y
sudo apt-get install sqlite sqlite3 libsqlite3-dev-y
sudo apt-get install libxml2 libxml2-dev -y
sudo apt-get install libgtk2.0-0 libgtk2.0-dev -y
sudo apt-get install vtun lxc -y
sudo apt-get install uncrustify -y
sudo apt-get install doxygen grphviz imagemagick -y
sudo apt-get install texlive texlive-extra-utilstexlive-latex-extra texlive-font-utils dvipng -y
sudo apt-get install python-sphinx dia -y
sudo apt-get install python-pygraphviz python-kiwipython-pygoocanvas libgoocanvas-dev -y
sudo apt-get install libboost-signals-dev libboost-filesystem-dev -y
sudo apt-get install openmpi-bin openmpi-commonopenmpi-doc libopenmpi-dev -y

注意:支持python绑定生成修改,需要安装如下的软件包:apt-get install cmake libc6-dev libc6-dev-i386g++-multilib,但是ubuntu14.04系统源中未能发现软件包libc6-dev-i386,于是使用libc6-dev-x32代替。如果系统缺少模块所需的软件包,会造成模块安装失败。但是一般不会影响系统影响ns-3的主体和其他模块的运行。

NS-3编译好的组件如下图,

下载NS-3


直接下载tar压缩包(推荐使用,最简单直接)

mkdir ns-3
cd ns-3
wget https://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
tar -jxvf ns-allinone-3.24.1.tar.bz2

我们下载的是ns-3一体化安装包,只需要运行build.py就可以满足大部分需求,下一节将详细介绍编译的问题,

编译安装


使用build.py编译

运行命令即可,

sudo ./build.py --enable-examples --enable-tests

使用waf编译

一旦工程已经编译过,就不能再使用build.py脚本
使用waf重新配置和编译ns-3系统

//清除先前配置编译
./waf clean   

//重新配置ns-3,优化编译例子和测试
./waf -d optimized --enable-examples--enable-tests configure   

//optimized参数,优化模式下默认是禁止ns-3特殊的日志系统(logging),这样导致运行的的结果不能再控制台上显示。因此,建议更改为

//./waf -d debug --enable-examples --enable-tests configure
./waf    正式编译


测试


使用test.py测试

cd ns-3.26/
./test.py -c core    测试ns-3发行版是否编译正确

运行脚本测试

sudo ./waf --run scratch-simulator

你可能感兴趣的:(NS-3,NS-3)