全部博文(180)
分类: 系统运维
2009-11-06 21:17:31
#测量CBR数据包端点到端点间延迟时间的awk代码 #针对out.tr的分析 BEGIN { #初始化, 设置变量以记录目前已处理数据包的最大ID号 highest_packet_id=0; } { #将out.tr文件的相应字段赋值给变量 action=$1; time=$2; from=$3; to=$4; type=$5; pktsize=$6; flow_id=$8; src=$9; dst=$10; seq_no=$11; packet_id=$12; #记录目前已处理数据包的最大ID号 if (packet_id>highest_packet_id) highest_packet_id=packet_id; #记录数据包的发送的时间 if (start_time[packet_id]==0) start_time[packet_id]=time; #记录 CBR (其flow_id=2, 与具体情况有关哦!) 的接收时间 if (flow_id==2 && action!="d") { if (action=="r") { end_time[packet_id]=time; } }else { #把不是CBR数据包或者被DROP掉的CBR数据包的接收时间设置为 -1; end_time[packet_id]=-1; } } END { # 当out.tr中数据行全部读取完后,开始计算有效数据包的端到端的时间延迟 for ( packet_id=0; packet_id <= highest_packet_id; packet_id++) { start=start_time[packet_id]; end=end_time[packet_id]; packet_duration=end-start; #显然,只把接收时间晚于发送时间的记录列出来哦! if (start } |
#运行以下命令: gnuplot> set title "cbr_delay" gnuplot> set xlabel "simulation time" gnuplot> set ylabel "delay time" gnuplot> unset key gnuplot> set label "constant delay=0.038706 sec"at 0.1,0.05 gnuplot> set arrow from 0.5,0.05 to 0.5,0.04 gnuplot> plot "cbr_delay" #进一步改进! gnuplot> plot "cbr_delay" with linespoints |
科比斯曼2017-09-20 11:06:45
chinaunix网友: if (start_time[packet_id]==0) start_time[packet_id]=time; 楼主请问这个start_time[packet_id]是这么设置的么?我看不懂哦,系统应该不会自动给他赋值吧?
老哥,也在学这个,这地方,也不太明白,你后来解决了吗?
回复 | 举报chinaunix网友2010-08-28 00:22:25
请教一下:除了产生trace file 然后对它进行后期处理 有没有其它方法不会产生大的trace file 而且能够得到延迟和丢包率呀? 多谢了
chinaunix网友2010-04-07 19:48:43
if (start_time[packet_id]==0) start_time[packet_id]=time; 楼主请问这个start_time[packet_id]是这么设置的么?我看不懂哦,系统应该不会自动给他赋值吧?