ns-3快速上手-开发环境搭建篇(译)

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 的安装,截止今日页面维护的版本是ns-3.13 。按照页面的介绍基本上能够顺利的搭建好ns-3.13 的环境。本人根据该文档,成功搭建了Ubuntu14.04+ns-3.24.1 的开发环境。
ns-3快速上手-开发环境搭建篇(译)_第1张图片
图1 Ubuntu14.04+ns-3.24.1
下面将准备工作总结为一个小脚本,省时!

#!/bin/sh
# Copyright(C) 2016 Ruijie Network. All rightsreserved.
# ns-3setup
#
# setup ns-3 env on `Ubuntu14.04+ns-3.24.1`
# History
# v1.0.0           2016-02-22
# Create.
#
# Have any questions about these content, plscontact me  [email protected]
# Permanent effective QQ Group: 110205992, join inus to communicate with ns-3 and wireless.

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快速上手-开发环境搭建篇(译)_第2张图片
图2 ns-3.24.1编译后的组件
如果不需要某个模块可以完全忽略不管这些依赖软件包。突然发现自己越来越啰嗦啦,OVER

下载ns-3

直接下载tar 压缩包(推荐使用,最简单直接)
mkdir ns-3
cd ns-3
wget  http://www.nsnam.org/release/ns-allinone-3.24.1.tar.bz2
tar -jxvf ns-allinone-3.24.1.tar.bz2
ns-3快速上手-开发环境搭建篇(译)_第3张图片

图3 ns-3.24.1解压后的文件

cd ns-allinone-3.24.1/; ls
图4 ns-allinone-3.24.1
cd ns-3.24.1; ls
ns-3快速上手-开发环境搭建篇(译)_第4张图片
图5 ns-3.24.1

编译安装

1 )使用build.py 编译
sudo ./build.py --enable-examples --enable-tests
2 )使用waf 编译
一旦工程已经编译过,就不能再使用build.py 脚本
使用waf 重新配置和编译ns-3 系统
./waf clean    清除先前配置编译
./waf -d optimized --enable-examples--enable-tests configure    重新配置ns-3 ,优化编译例子和测试
optimized 参数,优化模式下默认是禁止ns-3 特殊的日志系统(logging ),这样导致运行的的结果不能再控制台上显示。因此,建议更改为./waf -d debug --enable-examples --enable-tests configure
./waf     正式编译
ns-3快速上手-开发环境搭建篇(译)_第5张图片

ns-3快速上手-开发环境搭建篇(译)_第6张图片
图6 编译过程及结果

测试

1 )使用test.py 测试
cd ns-3.24.1/
./test.py -c core     测试ns-3 发行版是否编译正确
ns-3快速上手-开发环境搭建篇(译)_第7张图片

ns-3快速上手-开发环境搭建篇(译)_第8张图片
图7 测试ns-3编译结果

2 )运行脚本测试
sudo ./waf --run scratch-simulator
ns-3快速上手-开发环境搭建篇(译)_第9张图片
图8 运行scratch-simulator

结语

以上关于ns-3快速上手的简单解析,还有很多具体细节的问题没有涉及到。还请各位工程师从网络上获取相关文档并研究。经常访问锐捷社区无线版本的网页,http://bbs.ruijie.com.cn/?fromuser=unrecoverable找到最新的信息和资料。也非常欢迎您加我好友一起切磋技术,同时也欢迎各位在论坛上提问。另外,欢迎加入ns-3和无线技术交流QQ群110205992,杜绝广告商!

最近家中网络出现了问题,后续补上图片(非工作时间)。计划ns-3快速上手下一篇:用Eclipse IDE编译ns-3工程,敬请期待!

你可能感兴趣的:(wireless)