免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2403 | 回复: 0
打印 上一主题 下一主题

NS2进阶实例4--(2)抖动率---NS2入门实例3的Trace文件的分析演示 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-06 23:38 |只看该作者 |倒序浏览

   针对NS2入门实例3的场景,我们利用awk 和 gnuplot工具做更加深入的分析,演示科学实验中对Trace文件做深入分析的一般方法!
   关注点:
        有线场景中,Trace文件的格式;(此处不细说,因为很多Tutorial中很详尽!哈哈!)
        利用awk工具计算端到端延迟、抖动率、丢包率、吞吐量;
        利用gnuplot的基本命令,并将awk工具的分析结果用曲线图绘制出来!

        NS2入门实例3模拟后得到的out.tr文件此处不给出,请自行仿真获得!哈哈

      第二篇: 抖动率的测量---实现的全过程!

       测量抖动率: measure-jitter.awk文件
#测量CBR数据包Jitter的awk代码
#针对out.tr的分析
#jitter=((recvtime(j)-sendtime(j)) - (recvtime(i)-sendtime(i)))/(j-i),  其中 j>i

BEGIN {
     #初始化, 设置变量以记录目前已处理数据包的最大ID号
     highest_packet_id=0;
  }
  {
  #将out.tr文件的相应字段赋值给变量
  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;
  
  #记录目前已处理数据包的最大ID号
  if (packet_id>highest_packet_id)
      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") {
      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;
  seqno_diff=0;
  
     # 当out.tr中数据行全部读取完后,开始计算有效数据包的端到端的时间延迟
     for ( packet_id=0; packet_id

   (同上一篇一致的操作命令!)
   获得的图示结果为: (此场景下,jitter 值恒为 0!)
   



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/105477/showart_2088383.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP