wifi吞吐量测试和分析方法
https://blog.csdn.net/tankai19880619/article/details/91966964
iperf -c ipaddress_server -t 60 -i 1 -w 2M
iperf -s -i 1 -w 2M
-w window 对于TCP方式,此设置为TCP窗口大小。对于UDP方式,此设置为接受UDP数据包的缓冲区大小,限制可以接受数据包的最大值
-u udp -b UDP模式使用的带宽,比如-b 100M
-p port
上行(PC作Server,手机作Client)
影响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.如果接收误包率一致,考虑软件侧固件问题