wifi吞吐量测试和分析方法

发布时间 2023-11-13 17:03:58作者: petercao

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.如果接收误包率一致,考虑软件侧固件问题