NS 2.35 柯志亨书-实验3笔记-TCP UDP模拟 ——计算FTP不同参数:时延、抖动、吞吐率、丢包率awk代码
计算FTP时延的awk的代码:View Code
# Measure the end to end delay by the trace file
BEGIN{
# program initialize
highest_packet_id = 0;
}
{
# awk会自动循环执行这个{}
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;
# Record the current max packet ID
if ( packet_id > highest_packet_id )
highest_packet_id = packet_id;
# Record the tx time of packet
if ( start_time == 0 )
start_time = time;
# FTP flow_id=1
# Record CBR flow_id=2 rx time
# 这里既要判断flow=2,没有drop,还要判断recv
# drop是必须的,因为有可能1-2 recv,2-3 drop了
# CBR 路径是1-2-3,整条路径上都有可能drop
if ( flow_id == 1 && action != "d" )
{
if (action == "r")
{
end_time = time;
}
}
else
end_time = -1;
}
END {
# When read over, start to calculate
for ( packet_id=0; packet_id highest_packet_id )
highest_packet_id = packet_id;
# Record the tx time of packet
if ( start_time == 0 )
{
pkt_seqno = seq_no;
start_time = time;
}
# FTP flow_id=1
# Record CBR flow_id=2 rx time
if ( flow_id == 1 && action != "d" )
{
if (action == "r")
{
end_time = time;
}
}
else
end_time = -1;
}
END {
# When read over, start to calculate
last_seqno = 0;
last_delay = 0;
seqno_diff = 0;
for ( packet_id=0; packet_id
页:
[1]