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类似的数据
得到三个处理后的文件: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’来运行它(别忘记引号),像上面一样。
运行代码:
创建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仿真图
相关文章推荐
- 基于Linux0.11源代码的操作系统内核典型处理过程分析1
- ns2代码分析(二)-tcl文件处理
- linux下对NS2项目仿真分析的工具运用
- NS2 Tclcl机制分析, 编译层/解释层交互过程 ------ NS2学习日记 (2)
- Linux文本处理三剑客之-awk
- Linux 网桥代码分析 五 网桥端口设备接收数据包的处理分析
- NS2中tcl脚本文件分析(转)
- 自娱自乐7之Linux UDC驱动2(自编udc驱动,现完成枚举过程,从驱动代码分析枚举过程)
- linux下的文本处理命令sed&awk&grep
- awk---Linux下文本处理五大神器之二
- Linux文本处理—awk gawk命令的使用
- linux下的文本处理命令sed&awk&grep
- Linux内核初始化高端内存的过程(代码分析)
- NS2中有线网络trace文件分析脚本(awk)
- Linux下使用Shell脚本备份项目代码模板
- linux-awk【行扫描文本:样式扫描与处理工具】
- Linux基础篇之文本、数据流处理命令(sed uniq grep awk wc)
- linux下的文本处理命令sed&awk&grep
- NS2中tcl脚本文件分析(转)
- NS2中tcl脚本文件分析(转)