在ns2学习中,我建立了umts环境后想要统计下各节点的延迟时间,但是使用柯老师的例子后发现awk生成文件不成功,于是在仔细查找后发现问题出在"if(start_time[packet_id]==0)"这里,于是改正为"action == "+" ,ok!结果出来。网上很多人运行柯老师的例子都可以成功,但是为什么我的就不行,难道是tcp协议的问题么。以下是我计算端到端延迟的代码:
BEGIN {
highest_packet_id = 0;
}
{
action = $1;
time = $2;
from = $3;
to = $4;
type = $5; #aodv relationships,if 5 no infomation
pktsize = $6;
flow_id=$8;
src = $9;
dst = $10;
seq_no = $11;
packet_id = $12;
if ( highest_packet_id < packet_id )
highest_packet_id = packet_id;
if ( action == "+" )
start_time[packet_id] = time;
if ( type == "tcp" && action != "d" ) {
if ( action == "r" ) {
end_time[packet_id] = time;
}
} else {
end_time[packet_id] = -1;
}
}
END {
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 < end ) printf("%f %f/n", start, packet_duration);
}
}