一、手机吞吐量测试方法

准备工具:手机侧安装Magic Iperf软件;PC侧安装iperf.exe

1.上行吞吐量测试方法

手机作为client端,PC为server端

2.下行吞吐量测试方法

手机作为server端,PC作为client端

TCP的只需要去掉-u参数即可:-i表示几秒回显一次,-t表示测试时常,-w表示缓存区大小

android网络吞吐量测试 网络吞吐量怎么测试_固件

注意,UDP测试方法见下图:

android网络吞吐量测试 网络吞吐量怎么测试_固件_02

二、影响wifi吞吐量的因素

  首先,吞吐量属于极限测试、即检验手机在极限状态下的最大网络容量。故,最好选择近距离屏蔽房环境测试、以排除干扰。

1.软件因素

后台扫描

蓝牙共存

EDCA竞争,RTS、CTS帧等

息屏省电模式

2.硬件

发射端:发射功率,杂散等

接收侧:接收灵敏度,多天线接收差,板间干扰等

3.环境因素

同频干扰

邻频干扰

低速率设备NAV

4.其他系统性能

CPU调度

管家管控

应用敏感性

三、分析方法

直接原因:wifi层面直接原因就是速率协商不上去,或者因为丢包重传导致掉速后又不能很快协商上来。

分析根本原因,就要建立在直接原因上去入手分析。

软件固件,硬件射频,天线都有可能导致速率协商不上去,掉速较快以及掉速后很久协商不上来。

1.首先确认tcp端口流

  直接打开wireshark,从tcpdump或者空口log中过滤出tcp数据流。

这个步骤比较容易,因为一般吞吐量测试属于极限测试、后台不会挂其他应用。

使用magic iperf一般server端口为固定的5001,这样很容易找到对应的tcp长连接。

2.wireshark过滤空口tcp数据流

  使用wireshark过滤规则:

tcp.port eq 5001 && ip.dst eq [] 可以过滤出相关流

3.wireshark的IO统计wifi速率变化

  y轴取wlan_radio.data_rate,查看tcp流物理层速率变化。

四、发射和接收两方面分析

1.发送,过滤wlan.sa eq []

wireshark的IO统计wifi重传包-因为重传是引起掉速的直接原因

   y轴取wlan.fc.retry,查看tcp流物理层速率变化。

wireshark的IO发射功率

  y轴取wlan_radio.signal_dbm

2.接收部分

driver log中查看各个chain的rssi

wlan: [931:D:HDD] hdd_wlan_fill_per_chain_rssi_stats: 4316: RSSI for chain 0, vdev_id 0 is -54

wlan: [931:D:HDD] hdd_wlan_fill_per_chain_rssi_stats: 4316: RSSI for chain 1, vdev_id 0 is -68

fw log中查看误包情况

R0: FWMSG: [14a30036bc5] ANI_DBGID_POLL phyId 0 listen_time 61-61 ofdmPhyErrCnt 10 cckPhyErrCnt 3 ofdmPhyErrRate 163 cckPhyErrRate 49 level 2 

四、根据结果综合分析

1.如果发送重传较多,一般为射频或天线问题

  需要查看TRP指标,如果没问题。考虑天线阻抗或射频板间干扰。

2.如果发送重传不多,那考虑软件侧固件问题

3.如果接收误包较多,一般也为射频或天线问题

  查看TSI指标,如果没有问题。考虑chain1等多天线间信号强度差异大,可以查看driver log中相关rssi。

4.如果接收误包率一致,考虑软件侧固件问题