www.pudn.com > some-ns2-trace-awk.rar > getNodeRecv.awk, change:2007-09-01,size:1070b
# getData.awk
BEGIN {
if(step ==0)
step = 10;
base = 0;
start = 0;
bytes = 0;
total_bytes = 0;
max = 0;
calc = 0;
}
$0 ~/^s.* AGT/ {
if (base == 0 && $3 == ("_" src "_")) {
base = $2;
#开始统计的时间
start = $2;
#开始统计的标志位
calc = 1;
}
}
#处理接收数据的记录
$0 ~/^r.* AGT/ && calc == 1{
time = $2;
#这个时间段结束,进入下一时间段
if (time > base) {
bw = bytes/(step * 1000.0);
if (max bw) max = bw;
printf "%.9f %.9f\n", base, bw >> outfile;
base += step;
bytes = 0;
}
if ($3 == ("_" dst "_") && match($14,"." src ":") >=0 ) {
#dst收到src发送的数据
#增加总的数据接收量
total_bytes += $8;
#增加当前时段的数据接收量
bytes += $8;
}
}
END {
if (total_bytes)
#输出整个运行时间平均传输速率
printf "# Avg B/w = %.3fKB/s\n", ((total_bytes/1000.0)/(time-start)) >> outfile;
else
printf "Avg B/w = 0.0KB/s\n";
printf "# Max B/w = %.3fKB/s\n", max >>outfile;
}