背景:
最近完成了一套sip系统,想要测试通话语音质量。运用实际网络来测试很好,但是这个需要很大的成本。这时就需要一套能够仿真实际网络传输的软件来帮忙!
实施:
最后找到两款软件能够胜任:NIST net和NS-2。但是,它们都是运行在linux下的,而且NIST net 还要求重新编译内核,NS-2绝大多数介绍都是安装在RedHat 9.0下,要不就在Windows下安装一个系统仿真器Cygwin,这个Cygwin的安装受到从各个站点下载安装包的影响。安装速度奇慢!最后选择在现有的CentOS 5.0下安装。
步骤:
1.从
http://www.isi.edu/nsnam/dist/下载ns-allinone-X.XX.tar.gz
2.以root登录CentOS,解压
ns-allinone-2.27.tar.gz:tar xvfz ns-allinone-2.29.tar.gz,即生成/home/ns2/ ns-allinone-2.9。
3.修改文件:
(1)修改/home/ns2/ ns-allinone-2.9/nam-1.11/agent.h中的第73行,将NULL改为0。
(2)在ns-allinone-2.29目录下
文件名 | 行数 | 修改或删除 |
ns-2.29/sctp/sctp.c | 705 | 删除SctpAgent:: |
ns-2.29/mobile/god.h | 88.93.98.101 | 删除Vector:: |
ns-2.29/tcp/tcp-sack-rh.cc | 68 | 删除SackRHTcpAgent:: |
ns-2.29/pgm/pgm_agent.cc | 307 | 删除PgmAgent:: |
ns-2.29/pgm/pgm_sender.cc | 189 | 删除PgmSender:: |
ns-2.29/pgm/pgm_receiver.cc | 186 | 删除PgmReceiver:: |
nam-1.11/parser.h | 97.98 | 删除Parser:: |
nam-1.11/node.h | 226 | 删除Node:: |
nam-1.11/netgraph.h | 删除NetGraph: | |
ns-2.29/indep-utils/cmu-scen-gen/setdest/setdest.h | 26.31.36.39 | 删除vector:: |
ns-2.29/dsr/dsrgent.cc | 219 | 添加void XmitFlowFailureCallback(Packet *pkt, void *data); void XmitFailureCallback(Packet *pkt, void *data); |
ns-2.29/diffsuion/diffsuion.cc | 400 | 添加void XmitFailedCallback(Packet *pkt, void *data); |
ns-2.29/diffsuion/omai_mcast.cc | 361 | 添加void OmniMcastXmitFailedCallback(Packet *pkt, void *data); |
(3)再修改一下ENV,,将下面的加到/etc/profile的最后
NSPATH=$HOME/ns-allinone-2.29
PATH=$NSPATH/bin:$NSPATH/tcl8.4.11/unix:$NSPATH/tk8.4.11/unix:$PATH
LD_LIBRARY_PATH=$NSPATH/otcl-1.11:$NSPATH/lib
TCL_LIBRARY=$NSPATH/tcl8.4.11/library
export NSPATH PATH LD_LIBRARY_PATH TCL_LIBRARY
PATH=$NSPATH/bin:$NSPATH/tcl8.4.11/unix:$NSPATH/tk8.4.11/unix:$PATH
LD_LIBRARY_PATH=$NSPATH/otcl-1.11:$NSPATH/lib
TCL_LIBRARY=$NSPATH/tcl8.4.11/library
export NSPATH PATH LD_LIBRARY_PATH TCL_LIBRARY
4. 在ns-allinone-2.29目录下运行安装:./install 。
使用:
NS-2的使用要学习tcl脚本的编写,而且没有个把月是看不懂的,接下来的测试部分正在学习中...