对NS网络模拟和协议仿真的第四章例2进行仿真分析
1、用ns运行tcl
[easie@localhost zxxtest]$ ns wireless4.2.2.tcl #运行tcl脚本文件
num_nodes is set 3
INITIALIZE THE LIST xListHead
Start Simulation...
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5, distCST_ = 550.0
SORTING LISTS ...DONE!
2、用NAM显示:此步可以随意放在任何步骤之后,非必须
[easie@localhost zxxtest]$ nam wireless.nam #运行NAM
得到下图:
注:Ctrl+c 退出NAM模拟器
3、用gawk语言处理.tr文档
有三个awk文档,loss.awk,throughtput.awk,delay.awk
[easie@localhost zxxtest]$ gawk -f delay.awk wireless.tr>delay
gawk: delay.awk:52: (FILENAME=wireless.tr FNR=32952) fatal: division by zero attempted
命令为:gawk -f gawkfilenam.awk tracefilename.tr>definedfilename
这样就得到了一个delay的文件
注:在一些情况下,例如要求不同速率下的情况,可以使用一个shell脚本文件来一次性完成第一步和第三步 ./getperform
#!/bin/sh
i=1
while [ "$i" -le 300 ]; do
ns realize2.tcl $i
awk -f delay.awk rate=$i wired_wireless.tr >> delay
awk -f loss.awk rate=$i wired_wireless.tr >> loss_rate
awk -f throughtput.awk rate=$i wired_wireless.tr >> throughtput
if [ "$i" -le 225 ]; then
i=$(($i+20))
elif [ "$i" -le 250 ]; then
i=$(($i+5))
else
i=$(($i+2))
fi
done
exit 0
4、用gnuplot来画图显示
[easie@localhost zxxtest]$ source /etc/profile
[easie@localhost zxxtest]$ gnuplot
注:1、要画图之前需要先进入gawk文件生成的文件所在的文件夹内,例如:delay
2、先用source /etc/profile 打开画图工具在用gnuplot命令
3、之后可以直接使用plot "delay" with linespoints lw 2 pt 19
或者运行.plt文件,gnuplot> load 'plot.plt'
运行后即可得到相应的仿真图
4、退出命令使用quit
至此,所有仿真步骤完成。