最近一直在玩网络模拟与仿真,我们需要模拟几百个节点的 mesh network 做 VoIP 通信,然后修改一些 VoIP 协议和算法,并在模拟器上对修改后的协议进行测试和比较,看看性能有没有提升或者下降。模拟完成后,我们将会用 Linksys WRT54GL 架设真实 mesh network,并通过修改 OpenWrt 固件把新的协议应用到真实 mesh network 中,看看有什么变化和区别。前段时间我们试用了 NCTUns,一个台湾交通大学开发的网络模拟软件。这几天我们主要在关注 NS2,一个由加州伯克利大学开发的网络仿真平台,也是目前的主流开源网络模拟平台。
安装必备软件包
# yum install autoconf automake gcc-c++ libX11-devel xorg-x11-proto-devel \
libXt-devel libXmu-devel
下载和安装 NS2
要下载和安装的模块很多,最简单的方式就是下载 all in one 版本,所有模块都包括:
$ wget http://www.isi.edu/nsnam/dist/ns-allinone-2.34.tar.gz
$ tar zxvf ns-allinone-2.34.tar.gz
$ cd ns-allinone-2.34
$ ./install
安装过程很顺利,不需要有什么 trouble shooting,安装完后修改环境变量:
$ vi /home/vpsee/.bashrc
# LD_LIBRARY_PATH
OTCL_LIB=/home/vpsee/ns-allinone-2.34/otcl-1.13
NS2_LIB=/home/vpsee/ns-allinone-2.34/lib
X11_LIB=/usr/X11R6/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$OTCL_LIB:$NS2_LIB:$X11_LIB
# TCL_LIBRARY
TCL_LIB=/home/vpsee/ns-allinone-2.34/tcl8.4.18/library
export TCL_LIBRARY=$TCL_LIB
# PATH
PATH=$PATH:/home/vpsee/ns-allinone-2.34/bin: \
/home/vpsee/ns-allinone-2.34/tcl8.4.18/unix: \
/home/vpsee/ns-allinone-2.34/tk8.4.18/unix
运行 NS2
到 http://nile.wpi.edu/NS/ 下载一个简单的例子 ns-simple.tcl,然后在命令行下用 ns2 运行这个脚本:
$ ns2 ns-simple.tcl
成功运行后界面如下: