ns2是常用的网络仿真软件,目前最常用的版本是ns-2.34(发布于2009年)和ns-2.35(发布于2011年)。ns2编译安装过程较为繁琐,尤其是需要手工解决一些因编译环境变化而带来的语法错误,对新手很不友好。本文描述了编译运行ns-2.34和ns-2.35的全过程,并提供了解决编译错误的补丁。
系统环境
虚拟机系统: Ubuntu server 17.10.1(全新安装)
宿主机系统:Windows 10
虚拟机管理器:VMWare Workstation
虽然ns-2.35为ns2的最新版,但是由于包括pFabric、PIAS、qJump在内的相当一部分研究工作仍是基于ns-2.34开发的,所以本文重点介绍ns-2.34的安装过程。
安装依赖项
虚拟机系统为全新安装的,所以编译ns2所需要的依赖项较多,包括:
- gcc
- g++
- make
- libxt-dev
- libx11-dev
- libxmu-dev
sudo apt-get install -y gcc g++ make libxt-dev libx11-dev libxmu-dev
安装ns-2.34
下载
下载ns2.34:
wget https://jaist.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.34/ns-allinone-2.34.tar.gz
解压缩:
tar -xvf ns-allinone-2.34.tar.gz
cd ns-allinone-2.34
补丁
ns-2.34发布于2009年6月,现在由于编译器版本不兼容等原因,直接编译的话会报一些编译错误,因此需要打补丁。
wget https://raw.githubusercontent.com/zylan29/ns-expr/master/ns-allinone-2.34-bugfix.patch
patch -p1 < ns-allinone-2.34-bugfix.patch
编译
第一次编译时使用install
脚本编译ns-2.34的全部组件。
./install
安装ns-2.35
下载
下载ns2.35:
wget https://jaist.dl.sourceforge.net/project/nsnam/allinone/ns-allinone-2.35/ns-allinone-2.35.tar.gz
解压缩:
tar -xvf ns-allinone-2.35.tar.gz
cd ns-allinone-2.35
补丁
ns-2.35发布于2011年11月,在新版本的编译环境下同样需要打补丁才能成功编译。
wget https://raw.githubusercontent.com/zylan29/ns-expr/master/ns-allinone-2.35-bugfix.patch
patch -p1 < ns-allinone-2.35-bugfix.patch
编译
编译ns-2.35的全部组件
./install
运行
运行简单的ns2网络仿真脚本
wget http://nile.wpi.edu/NS/Example/ns-simple.tcl
/path-to-ns2/ns-2.34/ns ns-simple.tcl
参考
- ns2项目网址:https://www.isi.edu/nsnam/ns/
- ns2项目新网址: http://nsnam.sourceforge.net/wiki/index.php/Main_Page
- ns-2.34 bug fix patch: https://github.com/camsas/qjump-ns2/blob/master/ns-allinone-2.34.ubuntu.patch
- 解决ns-2.34的"error: narrowing conversion of ‘194’ from ‘int’ to ‘char’ inside { }"问题
:https://stackoverflow.com/questions/43601538/ns-2-installation-error-narrowing-conversion-of-252-from-int-to-char - 解决ns-2.35 "ambiguous reference"问题:https://stackoverflow.com/questions/21129363/specifying-for-ambiguous-reference
- Simple Simulation Example: http://nile.wpi.edu/NS/simple_ns.html
- 推荐阅读ns Tutorial:https://www.isi.edu/nsnam/ns/tutorial/nsindex.html
网友评论