measure-delay.awk
上传用户:sy0851
上传日期:2014-07-16
资源大小:4k
文件大小:1k
源码类别:

网络

开发平台:

Unix_Linux

  1. #使用的是无线trace的旧格式
  2. BEGIN {
  3.      highest_packet_id = 0;
  4. }
  5. {
  6.    action = $1;
  7.    time = $3;
  8.    #from = $3;
  9.    #to = $4;
  10.    type = $35; #aodv relationships,if 5 no infomation
  11.    pktsize = $37;
  12.    #src = $9;
  13.    #dst = $10;
  14.    #seq_no = $11;
  15.    packet_id = $41;
  16.    #不考虑路由包,可以保证序号为0的cbr被统计到
  17. if ( type != "AODV" ) {
  18.    if ( packet_id > highest_packet_id )
  19.          highest_packet_id = packet_id;
  20. #记录封包的传送时间
  21. if ( start_time[packet_id] == 0 )
  22.         start_time[packet_id] = time;
  23. #记录CBR 的接收时间
  24.  if ( type == "cbr" && action != "d" ) {
  25.       if ( action == "r" ) {
  26.          end_time[packet_id] = time;
  27.       }
  28.    } else {
  29. #把不符合条件的数据包的时间设为-1
  30. end_time[packet_id] = -1;
  31.    }
  32. }
  33. }
  34. END {
  35. #当资料列全部读取完后,开始计算有效封包的端点到端点延迟时间
  36.  for ( packet_id = 0; packet_id <= highest_packet_id; packet_id++ ) {
  37.        start = start_time[packet_id];
  38.        end = end_time[packet_id];
  39.        packet_duration = end - start;
  40. #只把接收时间大于传送时间的记录列出来
  41.  if ( start < end ) printf("%f %fn", start, packet_duration);
  42.    }
  43. }