一、基礎環境搭建
首先我們需要搭建系統環境
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
三個指令。