计算CBR抖动的awk代码:
# Measure the end to end delay jitter by the trace file
# 计算方法:抖动率由相邻数据包延迟时间差除以数据包序号差得到;
# jitter = ( (trecvj-tsndj) - (trecvi-tsndi) ) / (j-i), j>i
BEGIN{
# program initialize
highest_packet_id = 0;
}
{
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[packet_id] == 0 )
{
pkt_seqno[packet_id] = seq_no;
start_time[packet_id] = time;
}
# Record CBR flow_id=2 rx time
if ( flow_id == 2 && action != "d" )
{
if (action == "r")
{
end_time[packet_id] = time;
}