NS3之路—-NS3的安装及第一个example例子
NS3的安装以及第一个example
首先,本文中的相关知识均来自于https://www.nsnam.org/ns-3.24/documentation/tutorial,本文以tutorial为基础,从个人角度讲述,下面我们开始进行ns3的安装(一切操作均在终端中进行,均以ns-3.23为例)。
1. 下载ns3(有多种方式,推荐第一种)
l 使用tarball(关于tarball是什么,自行查阅),首先需要建立一个ns3的下载目录,假设为workspace。再使用wget命令下载,以ns-3.23为例,如下:
下载:wget http://www.nsnam.org/release/ns-allinone-3.23.tar.bz2
解压:tar xjf ns-allinone-3.23.tar.bz2
至此,我们下载了ns-3.23,解压得到ns-allinone-3.23文件夹.
PS:推荐使用tarball,使用bake的下载过程过于复杂。
l 使用Bake下载ns3,命令如下:
hg clone http://www.nsnam.org/bake
可以对比看到使用tarball和bake的区别在于一个使用wget,另一个使用hg。因为hg命令属于Mercurial(在预安装中所安装的),因此看到如下命令算正确。
…….
45 files updated, 0 files merged, o files removed, 0 files unresoulved.
这个时候下载的只是一个叫做bake的python脚本,在其下有bake文件夹。里面有bake.py脚本。
而这只是用来下载ns3的脚本。首先切换到bake文件夹,为其设置环境变量:
export BAKE_HOME = ‘pwd’
export PATH = $PATH:$BAKE_HOME:$BAKE_HOME/build/bin
export PYTHONPATH = $PYTHONPATH:$BAKE_HOME:$BAKE_HOME/build/bin
接着就需要对bake进行配置(下载ns3配置)。
./bake.py configure -e ns-3.23
如果上步通过,则检查相关组件是否足够进行下载工作,使用check来检查,如果缺少组件,则需要先进行安装。
./bake.py check
如果检查通过,则会出现下列信息,否则,需要安装缺少的组件,相关安装过程使用apt-get install。
….
>…. OK
>….. OK
到这一步之后就可以开始进行ns3的下载了。
./bake.py download
所以,其实使用bake的过程远比tarball要麻烦,如果想尽早进入开发,推荐tarball,如果愿意继续在此摸索,可以将两者都试试。
2. 编译NS3
Ns3的编译有三种方式,分别为:build.py;./bake.py build; ./waf build。针对这三种方式分别进行介绍。
l Build.py
切换到ns-allinone-3.23目录下,输入命令
./build.py –enable-examples –enable-tests
该编译会编译所有的模块,另外命令中涉及到了examples和tests,那是因为examples和tests位于ns中,并且默认情况下是没有被编译的,因此在这里进行主动编译。编译过程中能看到很多信息如下:
关注这个就可以了:‘build’ finished successfully(…ms)
这样就编译成功了,注意modules not build中的openflow和visualizer将在后面相关部分进行介绍。
l ./bake.py build
在对应目录下使用该命令编译成功之后得到下列信息:
>> …. OK
如果编译不成功的话,则会有相关信息提示依赖丢失。
l ./waf build
同样在对应目录下使用如下命令,clean用于清除原本编译的二进制文件等,configure则进行相关组件的检查和配置。
./waf clean
./waf –build-profile = optimized –enable-examples –enable-tests configure
成功后会提示“Configure” finished successfully.
接下来便可以使用“./waf”命令直接进行编译了,编译成功后也会有信息提示:
关注’build’ finished successfully (…ms)
这时我们可以运行一个简单的example来测试ns3是否安装成功。
./waf –run hello-simulator
如果成功输出Hello Simulator,那么恭喜你,NS3安装成功了。
但是如果build successfully但是却没有看到Hello Simulator的信息,那么那么可能与你设置的编译模式有关(optimal/debug),可以尝试着使用如下命令:
./waf configure –build-profile=debug –enable-examples –enable-tests
./waf
然后再运行之前的hello simulator的例子。