您的位置:首页 > 运维架构 > Linux

Linux下对NS2项目的仿真分析全过程代码(从tcl脚本-awk文本处理-gnuplot)

2017-07-04 22:01 751 查看
1、编写 tcl 脚本文件,得到 out.tr 以及 out.nam 文件;out.tr文件存储的是仿真得到的数据

运行代码:

创建tcl文件:touch example.tcl (example为文件名) 

或  gedit example.tcl

运行编好的tcl文件:ns example.tcl      得到out.tr文件(用于awk文本分析)

2、用awk语言编写文件处理tcl脚本运行后得到的数据(.tr文件),运行awk文件

运行代码:

创建awk文件:touch example.awk (example为文件名)

或  gedit example.awk

运行编好的awk文件:awk -f example.awk out.tr > result       得到一个输出文件:result(用于画图)

注:在一些复杂的情况下(例如:需要测量在不同数据速率的情况下,系统吞吐量等的性能时),前面两步可以通过写一个脚本来完成:

通过建立一个shell脚本文件得到不同数据发送速率下的平均时延、丢包率、吞吐量等,下面为一个简单的例子。

数据速率从1Kbps-30Kbps得到与上面result类似的数据

#!/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

得到三个处理后的文件:delay,l
b3a5
oss_rate,throughtput

delay文档:每一行表示每一个数据率下,该网络系统的delay

loss_rate文档:每一行表示每一个数据率下,该网络系统的loss_rate

throughtput文档:每一行表示每一个数据率下,该网络系统的throughtput

3、gnuplot   将result数据用图表表示

启动画图工具:source  /etc/profile

                            gnuplot

建立一个.plt文件:里面包含一些画图命令,如下面的例子所示plot.plt

运行:gnuplot>  load 'plot.plt'       //load 命令来运行该plot.plt文件

       注意:运行文件时,要先进入delay,loss_rate,throughtput所在的文件夹内:cd '/home/realize/......'

       注意: gnuplot要求所有文件和目录名用单引号或双引号括起来   

gnuplot可以在提示符下一行行输入代码。另外,也可以把代码存入一个临时文件中,并在提示符下输入load ‘filename’来运行它(别忘记引号),像上面一样。                                                                 

set multiplot     //设置为多图模式
set size 0.5,0.5    //设置图的大小
set origin 0.0,0.0   //设置第一个图的原点位置
set xrange [0:300]   //设置X 坐标的范围
set xlabel "data_rate(Kbps)"
set ylabel "pkt_delay(s)"
plot "delay" with linespoints lw 2 pt 19     //文档名为:delay,将文档中的第一列作为横坐标,第二列作为纵坐标绘图
set origin 0.5,0.0   //设置第二个图的原点位置
set ylabel "loss_rate(100%)"
plot "loss_rate" with linespoints lw 2 pt 19
set origin 0.0,0.5   //设置第三个图的原点位置
set ylabel "throughtput(Kbps)"
plot "throughtput" with linespoints lw 2 pt 19
运行后得到:rate-delay,rate-loss_rate,rate-throughtput仿真图
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息