专栏首页程序猿的那点事吞吐量测试与iPerf的使用

吞吐量测试与iPerf的使用

一、吞吐量介绍

1.上行吞吐量测试方法 手机作为client端,PC为server端 2.下行吞吐量测试方法 手机作为server端,PC作为client端

什么是WiFI吞吐量? 网络中的数据是由一个个数据包组成,防火墙对每个数据包的处理要耗费资源。吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。 也可以说吞吐量表示在单位时间内通过某个网络或接口的数据量 ,包括全部上传和下载的流量。

测试吞吐量的工具:iPerf iPerf是一个跨平台的网络性能测试工具,它支持Win/Linux/Mac/Android/iOS等平台,iPerf可以测试TCP和UDP带宽质量,iPerf可以测量最大TCP带宽,具有多种参数和UDP特性,iPerf可以报告带宽,延迟抖动和数据包丢失。利用iPerf这一特性,可以用来测试一些网络设备如路由器,防火墙,交换机等的性能。

-s 以server模式启动,eg:iperf -s -c host 以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23 -f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K -i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2 -l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16 -m 显示tcp最大mtu值 -o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o c:\iperflog.txt -p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999 -u 使用udp协议 -w 指定TCP窗口大小,默认是8KB -B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数) -C 兼容旧版本(当server端和client端版本不一样时使用) -M 设定TCP数据包的最大mtu值 -N 设定TCP不延时 -V 传输ipv6数据包 server专用参数 -D 以服务方式运行ipserf,eg:iperf -s -D -R 停止iperf服务,针对-D,eg:iperf -s -R client端专用参数 -d 同时进行双向传输测试 -n 指定传输的字节数,eg:iperf -c 222.35.11.23 -n 100000 -r 单独进行双向传输测试 -t 测试时间,默认10秒,eg:iperf -c 222.35.11.23 -t 5 -F 指定需要传输的文件 -T 指定ttl值

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IP地址的分配过程

    IP地址的分配一般分为俩种,手动配置和动态获取。服务器主机一般采用手动配置,而客户端主机(比如我们的手机)采用动态获取。原因有以下几个: 1、 客户主机比服务...

    用户7557625
  • Android P中WIfi P2P代码结构

    从FrameWork层开始,Wifi P2P和Wifi的代码就开始分开了,当然只是在Wifi目录下新建了一个p2p文件夹来单独存放p2p的相关代码。下面我们来看...

    用户7557625
  • WiFi Direct详解(p2p使能,扫描,连接流程)基于Android8.1.0

    本文相关代码路径:http://androidxref.com/8.1.0_r33/xref/ 代码中相应的行数即为源码中的位置。

    用户7557625
  • 资源 | 吴恩达deeplearning.ai五项课程完整笔记了解一下?

    机器之心整理 机器之心编译 参与:思源、路雪 自吴恩达发布 deeplearning.ai 课程以来,很多学习者陆续完成了所有专项课程并精心制作了课程笔记,在此...

    机器之心
  • 吴恩达deeplearning.ai五项课程完整笔记了解一下?

    来源:机器之心 通过本文为大家解读如何构建自然语言、音频和其他序列数据的模型。 自吴恩达发布 deeplearning.ai 课程以来,很多学习者陆续完成了所...

    数据派THU
  • Linux上C语言写的简易telnet客户端

    drunkdream
  • 【演讲实录】下一代企业级应用架构管理体系

    在IT系统的建设和管理中,敏态和稳态似乎不可协调的两个问题,那么在企业IT系统的管理中,如何根据需求去合理管控,今天将通过王璞老师在第七届数据技术嘉年华上的分享...

    数据和云
  • GRID布局

    目前CSS布局方案中,网格布局可以算得上是最强大的布局方案了。它可以将网页分为一个个网格,然后利用这些网格组合做出各种各样的布局。Grid布局与Flex布局有一...

    WindrunnerMax
  • 前端-组件、Prop 和 State

    如果你还记得我们在前面文章中所讨论过的,组件的概念是 React 的三大支柱之一。使用 React 开发应用基本都是在使用组件。

    grain先森
  • 第138天:Web前端面试题总结(编程)

    2、一个页面上两个div左右铺满整个浏览器,要保证左边的div一直为100px,右边的div跟随浏览器大小变化(比如浏览器为500,右边div为400,浏览器为...

    半指温柔乐

扫码关注云+社区

领取腾讯云代金券