BEGIN {#程序初始化,设定一变量以记录目前处理的封包的最大ID号码。在awk环境下变量的使用不需要声明,直接赋值。highest_uid = 0;total_packet=0;total_delay_time=0;
}
#下面大括号里面的内容会针对要进行处理的记录(也就是我们的trace文件)的每一行都重复执行一次
{event = $1;     #$1表示一行的第一栏,是事件的动作。每一栏默认是以空格分隔的。下同。time = $2;       #事件发生的时间node_nb = $3;        #发生事件的节点号(但是两边夹着“_”,下面一句代码将“_”处理掉)trace_type = $4;     #trace文件跟踪事件的层次(指在路由层或mac层等等)flag = $5;              #uid = $6;        #包的uid号码(普通包头的uid)pkt_type = $7;              #包的类型(是信令或是数据)pkt_size = $8;       #包的大小(byte)#下面的代码记录目前最高的CBR流的packet ID,本来的延迟分析是针对所有的包的(包括信令),这里作了简化,只针对CBR封包,以后大家做延时分析可以做相应的改动即可。if ( event=="s"&& pkt_type=="cbr" && uid > highest_uid ){#if判断句的前三个判断条件就不说了,第四个是说每个包的记录次数不超过1highest_uid = uid;}#记录封包的传送时间if ( event=="s"&& pkt_type=="cbr" && uid==highest_uid&&trace_type=="AGT" )start_time[uid] = time;    # start_time[]表明这是一个数组#记录封包的接收时间if ( event=="r"&& pkt_type=="cbr" && uid==highest_uid&&trace_type=="AGT" ) end_time[uid] = time;if( event=="D")end_time[uid] =-1;}
#END表明这是程序结束前执行的语句,也只执行一次
END {#当每行资料都读取完毕后,开始计算有效封包的端到端延迟时间。for ( packet_id = 0; packet_id <= highest_uid; packet_id++ ){start = start_time[packet_id];end = end_time[packet_id];#只把接收时间大于传送时间的记录打印出来if ( end!=-1&&start < end ){packet_duration = end - start;total_packet++;total_delay_time+=packet_duration;} }     printf("%f\n",total_delay_time/total_packet);
}

转载于:https://www.cnblogs.com/yue-/archive/2012/05/22/6260071.html

无线Trace脚本(旧格式)-平均延时相关推荐

  1. linux mtr运行脚本,使用mtr测试网络丢包率和平均延时的脚本实例

    A h4u}+XLFSj0#!/bin/bash r+Q0hW m KH0# 测试网络丢包率和平均延时,注意变量clr和cdt的赋值,不同版本的mtr对应的字段位置不同51Testing软件测试网yS ...

  2. 实时检测服务器延迟和丢包率脚本,使用mtr测试网络丢包率和平均延时的脚本实例...

    mtr(a network diagnostic tool)是一个神奇的指令,能按要求对路由中所有节点进行批量测试.简单敲一个"mtr qq.com"将会有意外收获! 当需要进行产 ...

  3. linux 启动脚本sleep后不执行_JMeter多脚本间的启动延时

    JMeter做压测时,当需要多个jmx脚本依次执行时,需要用到"启动延时",即间隔可设置的时间后启动运行下一个jmx脚本. 实现"启动延时"的方法有2个. 方法 ...

  4. SU数据新旧格式转换问题

    最近在用SU做处理,用本机的SU程序对甲方给的数据进行处理时,总是报道头有问题.查了一下,发现甲方给的数据使用低版本的SU生成的,所以需要转换成新版本的数据格式. SU旧格式转新格式的命令为:suol ...

  5. 2019-11-29-解决从旧格式的-csproj-迁移到新格式的-csproj-格式-AssemblyInfo-文件值重复问题...

    title author date CreateTime categories 解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题 lindex ...

  6. shell脚本通过ping命令来获取平均延时

    #!/bin/bash #设置环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" exp ...

  7. Android adb无线调试脚本

    使用adb的无线调试功能十分的方便. 但是实际工作中,总是要手动输入,十分麻烦.所以就把它写成脚本文件. 使用步骤 连接上USB 运行脚本文件(windows双击运行bat文件,mac的话termin ...

  8. android dhcp 脚本,Android adb无线调试脚本

    image.png 使用adb的无线调试功能十分的方便. 但是实际工作中,总是要手动输入,十分麻烦.所以就把它写成脚本文件. 使用步骤 连接上USB 运行脚本文件(windows双击运行bat文件,m ...

  9. Shell脚本编写格式

    1.IF 判断语句 #! /bin/bash#[] 该符号是test简化书写,test可以用来判断文件目录,数值大小if [ $usr=root ] ;thenecho "running s ...

最新文章

  1. Git简介以及与SVN的区别
  2. C++对象内存布局--③测试多继承中派生类的虚函数在哪一张虚函数表中
  3. uniapp h5 页面 解决 ios 长按无法保存图片问题(安卓支持此功能)--实现移动端长按保存图片
  4. qgis在地图上画导航线_在Laravel中的航线
  5. mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量
  6. c语言opengles程序,OpenGL ES _ 着色器_程序
  7. ElasticSearch ---- 查询
  8. 笨办法学Python(第三版)pdf
  9. LeetCode 36. Valid Sudoku
  10. Uncaught TypeError: Cannot read property 'tagNa...
  11. 禁用联想笔记本电脑自带的键盘
  12. Oracle中SQL*plus常用命令
  13. POE 网络变压器 Pulse 普思
  14. html5中加水平分割线,HTML设置水平分割线
  15. java 公共方法是什么意思_在java中公共/私有/其他方法的含义是什么意...
  16. Setting语言与输入法列表客制化
  17. fastai 文本分类_使用Fastai v2和多标签文本分类器检查有毒评论
  18. openwrt 认证收费_在OpenWrt中安装Wiwiz实现portal认证
  19. Innovus/Encounter Floorplan命令合集(二)
  20. 你总是喜欢抓不住的东西

热门文章

  1. UUID的使用及其原理
  2. flask 学习实战项目实例
  3. 路由器:访问控制列表
  4. 获取当前脚本目录路径问题汇总
  5. NOSQL图形数据库 - Neo4j
  6. Python 扩展 Op
  7. AI+IoT+电池应用
  8. C++ list 的使用
  9. Android Activity从右边到左边跳转(overridePendingTransition)
  10. Cause:compileSdkVersion is not specified