平常在测试客户端与服务端交互时,因为一般都是为http与https协议,所以平常都会用Charles工具进行抓包分析,使用下来很方便,确实是一个轻量级的抓包工具。
但是抓取的协议比较固定,想抓取一些其它信息的时候就无法再用这个工具了。例如说视频流信息,以及该视频的播放指标等,介于这样的需求,可以采用网上也比较流程的工具-- wireshark
因为以前测试过一段时间的视频相关的指标,简单整理下流程
以我以前抓取Android上播放的视频为例
1、首先在客户端播放视频的时候,同时在手机上通过adb shell命令连上手机,然后通过tcpdump命令抓包
这步的具体步骤在另外一个文档中分享过,地址为
2、去wireshark官网上下载相应的安装包安装
3、拿到.pcap文件之后,用wireshark打开,可以看到非常详细的信息,包括每一秒的网络耗时,网络协议,IP地址
在此需要一些tcp、http、dns等协议的基础知识,
另外需要知道wireshark常用的过滤的方法。这样在分析pcap包时会方便很多,如下面截的图
举一些实例计算指标
==================================================================================
按抓的包可以分析出
(1)、下载视频大小(对对应的IP地址进行Follow TCP Stream操作)
==================================================================================
(2)
、下载峰值速率和平均下载速率,可以通过
Wireshark
的
I/O Graph
计算出来
==================================================================================
(3)RTT时间
分片的RTT是指针对每个分片,在网络传输中从发送端发送数据开始,到发送端收到来自接收端的确认总共经历的时延,以毫秒为单位,如下图所示,每个来自接收端的确认ACK响应,都有一个时延时间RTT,将这个分片中每个响应的时延加起来则为整个分片的RTT。
验证结果:
经过计算,第一个分片的 RTT 为 0.96ms
==================================================================================
(4)
TCP
重传率
TCP重传率为每个分片在网络传输中重传报文数与有效报文数的百分比率。
重传报文标识为[TCP Retransmission],如下图所示:
验证结果:
经过统计,重传报文数为 7 ,有效报文数为 486 , 7/486=0.0144 ,即 1.44% 。
==================================================================================
(5)
下载时长
通过分片文件可以查看到,分片下载开始时间为“2014-03-21 15:11:38.224013”,如下图所示:
分片下载结束时间为“2014-03-21 15:11:49.105883”,如下图所示:
验证结果:
分片下载时长为 15:11:49.105883 - 15:11:38.224013 = 10.88187s ,取小数点后两位,为 10.88s 。