在NS2仿真实验的实验八中,使用到了柯老师自己编写的mUDP和mUdpSink
书中代言:mUDP是UDP的延伸,除了具有UDP的功能外,还能记录所发送的包的信息。mUdpSink可以把接收到的包的信息记录到文件中。
以下是加入步骤:
1. 下载mUDP, mUdpSink的文件,要下载的有下列几个文件:mudp.cc、mudp.h、mudpsink.cc、mudpsink.h
2. 新建/ns-allinone-2.35/ns-2.35/measure文件夹,把这四个文件放入其中。
3. 修改/ns-allinone-2.31/ns-2.31/common/packet.h,把如下程序加入struct hdr_cmn{}中。
double sendtime_;
unsigned int pkt_id_;
4. 修改/ns-allinone-2.35/ns-2.35/Makefile,把如下程序加入OBJ_CC下一行。
measure/mudp.o measure/mudpsink.o \
5. 修改/ns-allinone-2.35/ns-2.35/tcl/lib/ns-default.tcl,把如下程序加入Agent/Ping set packetSize_ 64下一行。
Agent/mUDP set packetSize_ 1000
6. 在/ns-allinone-2.35/ns-2.35目录下执行 ./configure;make clean;make命令,就OK了。
值得注意的是,如果configure失败,提示你找不到tcl,我在墙外找到一篇文章建议输入 ./configure --with -tcl-ver=8.5,就可以配置成功了。
------------------------------------------------------------------------------------------------------------------------------------------
mTcpSink是TCPsink的延伸,除了具有TCPSink功能外,还能记录所发出的包的信息。加入步骤:
1. 下载mtcpsink.cc, mtcpsink.h,放入/ns-allinone-2.31/ns-2.31/measure文件夹中。
下载地址暂时没找到。
2. 修改/ns-allinone-2.31/ns-2.31/Makefile,把如下程序加入OBJ_CC下一行。
measure/mtcpsink.o \
3. 在/ns-allinone-2.31/ns-2.31目录下执行./configure;make clean;make命令。
最后感谢柯志亨老师的开源精神!