一、基础环境搭建
首先我们需要搭建系统环境
sudo apt-get install build-essential
sudo apt-get install tcl8.4 tcl8.4-dev tk8.4 tk8.4-dev
sduo apt-get install libxmu-dev libxmu-headers
其次下载ns2.35,下载地址: http://www.isi.edu/nsnam/ns/ns-build.html
将下载的.tar.gz文件复制到任意目录下,比如我复制到/home下,解压
tar -zxvf ns-allinone-2.35.tar.gz
解压之后,cd ns-allinone-2.35
进入该解压目录,然后直接运行
./install
注意:安装过程可能遇到的问题:
例如:ns-2.35/linkstate中ls.h文件出错,我们可以根据提示,在erase函数前面加上this->,然后重新安装,便可成功。
配置环境变量
sudo vim ~/.bashrc
在文件中添加以下代码:
export PATH="/home/wnt/ns-allinone-2.35/bin:/home/wnt/ns-allinone-2.35/tcl8.5.10/unix:/home/wnt/ns-allinone-2.35/tk8.5.10/unix:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/wnt/ns-allinone-2.35/otcl-1.14:/home/wnt/ns-allinone-2.35/lib"
export TCL_LIBRARY="$TCL_LIBRARY:/home/wnt/ns-allinone-2.35/tcl8.5.10/library"
修改生效
source .bashrc
如此,ns2的安装完成。
二、安装mUDP,mUdpSink,mTcpsink三个模块
下载地址mUDP、mUdpSink和mTcpSink
1、新建/ns-allinone-2.35/ns-2.35/measure文件夹,把下载的文件放入其中。
2、修改/ns-allinone-2.31/ns-2.31/common/packet.h,把如下代码段加入struct hdr_cmn{}
中。
我加在dir_t direction_;
后面
int frametype_;
double sendtime_;
unsigned int pkt_id_;
unsigned int frame_pkt_id_;
3、修改/ns-allinone-2.35/ns-2.35/中的Makefile和Makefile.in两个文件,把如下代码段加入OBJ_CC中,我放在xcp/xcpq.o xcp/xcp.o xcp/xcp-end-sys.o \
后面
measure/mtcpsink.o measure/mudp.o measure/mudpsink.o \
注意:Makefile中还需要修改CCOPT = -O2 -Wall -Wno-write-strings
后面增加-fpermissive
4、修改/ns-allinone-2.35/ns-2.35/tcl/lib/ns-default.tcl,把如下代码段加入Agent/Ping set packetSize_ 64
下一行。
Agent/mUDP set packetSize_ 1000
当然还要修改mudp.cc源文件
将以下代码
mUdpAgent::mUdpAgent() : id_(0), openfile(0)
{
bind("packetSize_", &size_);
UdpAgent::UdpAgent();
}
改为
mUdpAgent::mUdpAgent() :UdpAgent(), id_(0), openfile(0)
{
bind("packetSize_", &size_);
}
5、在/ns-allinone-2.35/ns-2.35目录下依次执行 ./configure
;make clean
;make
三个命令。