无线Trace脚本(旧格式)-平均延时
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脚本(旧格式)-平均延时相关推荐
- linux mtr运行脚本,使用mtr测试网络丢包率和平均延时的脚本实例
A h4u}+XLFSj0#!/bin/bash r+Q0hW m KH0# 测试网络丢包率和平均延时,注意变量clr和cdt的赋值,不同版本的mtr对应的字段位置不同51Testing软件测试网yS ...
- 实时检测服务器延迟和丢包率脚本,使用mtr测试网络丢包率和平均延时的脚本实例...
mtr(a network diagnostic tool)是一个神奇的指令,能按要求对路由中所有节点进行批量测试.简单敲一个"mtr qq.com"将会有意外收获! 当需要进行产 ...
- linux 启动脚本sleep后不执行_JMeter多脚本间的启动延时
JMeter做压测时,当需要多个jmx脚本依次执行时,需要用到"启动延时",即间隔可设置的时间后启动运行下一个jmx脚本. 实现"启动延时"的方法有2个. 方法 ...
- SU数据新旧格式转换问题
最近在用SU做处理,用本机的SU程序对甲方给的数据进行处理时,总是报道头有问题.查了一下,发现甲方给的数据使用低版本的SU生成的,所以需要转换成新版本的数据格式. SU旧格式转新格式的命令为:suol ...
- 2019-11-29-解决从旧格式的-csproj-迁移到新格式的-csproj-格式-AssemblyInfo-文件值重复问题...
title author date CreateTime categories 解决从旧格式的 csproj 迁移到新格式的 csproj 格式 AssemblyInfo 文件值重复问题 lindex ...
- shell脚本通过ping命令来获取平均延时
#!/bin/bash #设置环境变量 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" exp ...
- Android adb无线调试脚本
使用adb的无线调试功能十分的方便. 但是实际工作中,总是要手动输入,十分麻烦.所以就把它写成脚本文件. 使用步骤 连接上USB 运行脚本文件(windows双击运行bat文件,mac的话termin ...
- android dhcp 脚本,Android adb无线调试脚本
image.png 使用adb的无线调试功能十分的方便. 但是实际工作中,总是要手动输入,十分麻烦.所以就把它写成脚本文件. 使用步骤 连接上USB 运行脚本文件(windows双击运行bat文件,m ...
- Shell脚本编写格式
1.IF 判断语句 #! /bin/bash#[] 该符号是test简化书写,test可以用来判断文件目录,数值大小if [ $usr=root ] ;thenecho "running s ...
最新文章
- Git简介以及与SVN的区别
- C++对象内存布局--③测试多继承中派生类的虚函数在哪一张虚函数表中
- uniapp h5 页面 解决 ios 长按无法保存图片问题(安卓支持此功能)--实现移动端长按保存图片
- qgis在地图上画导航线_在Laravel中的航线
- mysql php 变量赋值,在MySQL UPDATE(PHP / MySQL)中使用变量
- c语言opengles程序,OpenGL ES _ 着色器_程序
- ElasticSearch ---- 查询
- 笨办法学Python(第三版)pdf
- LeetCode 36. Valid Sudoku
- Uncaught TypeError: Cannot read property 'tagNa...
- 禁用联想笔记本电脑自带的键盘
- Oracle中SQL*plus常用命令
- POE 网络变压器 Pulse 普思
- html5中加水平分割线,HTML设置水平分割线
- java 公共方法是什么意思_在java中公共/私有/其他方法的含义是什么意...
- Setting语言与输入法列表客制化
- fastai 文本分类_使用Fastai v2和多标签文本分类器检查有毒评论
- openwrt 认证收费_在OpenWrt中安装Wiwiz实现portal认证
- Innovus/Encounter Floorplan命令合集(二)
- 你总是喜欢抓不住的东西