2)抖动率---NS2入门实例3的Trace文件的分析演示
- 格式:doc
- 大小:61.50 KB
- 文档页数:3
针对NS2入门实例3的场景,我们利用awk和gnuplot工具做更加深入的分析,演示科学实验中对Trace文件做深入分析的一般方法!
关注点:
有线场景中,Trace文件的格式;(此处不细说,因为很多Tutorial中很详尽!哈哈!)
#针对out.tr的分析
#jitter=((recvtime(j)-sendtime(j)) - (recvtime(i)-sendtime(i)))/(j-i),其中j>i
BEGIN {
#初始化,设置变量以记录目前已处理数据包的最大ID号
highest_packet_id=0;
}
{
#将out.tr文件的相应字段赋值给变量
if(seqno_diff==0) {
jitter=0;
} else {
jitter=delay_diff/seqno_diff;
}
printf("%f %f\n", start, jitter);
#更新变量,方便循环中的下一次计算
last_seqno=pkt_seqno[packet_id];
last_delay=packet_duration;
packet_duration=end-start;
#显然,只把接收时间晚于发送时间的记录列出来哦!
if (start<end) {
#得到了delay值(packet_duration)后计算jitter
seqno_diff=pkt_seqno[packet_id]-last_seqno;
delay_diff=packet_duration-last_delay;
}
}
}
(同上一篇一致的操作命令!)
获得的图示结果为:(此场景下,jitter值恒为0!)
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") {
利用awk工具计算端到端延迟、抖动率、丢包率、吞吐量;
利用gnuplot的基本命令,并将awk工具的分析结果用曲线图绘制出来!
NS2入门实例3模拟后得到的out.tr文件此处不给出,请自行仿真获得!哈哈
第二篇:抖动率的测量---实现的全过程!
测量抖动率:measure-jitter.awk文件
#测量CBR数据包Jitter的awk代码
action=$1;
time=$2;
fห้องสมุดไป่ตู้om=$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)
seqno_diff=0;
#当out.tr中数据行全部读取完后,开始计算有效数据包的端到端的时间延迟
for ( packet_id=0; packet_id <= highest_packet_id; packet_id++) {
start=start_time[packet_id];
end=end_time[packet_id];
if (action=="r") {
end_time[packet_id]=time;
}
}else {
#把不是CBR数据包或者被DROP掉的CBR数据包的接收时间设置为-1;
end_time[packet_id]=-1;
}
}
END {
#初始化Jitter计算所需的变量
last_seqno=0;
last_delay=0;