无线终端ICMP测试丢包高,但使用正常?

在广州网易工作的时候,由于广州更多的事业部焦距于手游上,所以对于无线网络的要求是很高的,尤其是一些内测或者准备发行的游戏,由于策划、测试、开发等都需要测试游戏在市面上流行的手机里适配性的问题,而在这个过程中,就经常出现各类问题,需要我们团队去协作或支持。


而在这个过程中,就遇到了这样的一个问题。

现象:用户反馈终端使用卡顿,而此时周边并无大批量设备进行跑测或者更新下载的情况。

初步排查:AP关联终端只有20不到,AP流量饱和,但也未满载,用户反馈的终端信号强度正常,ICMP测试也未有高延迟或者丢包情况,周边环境确认同频干扰之类的情况也不存在,也未关联到较远的AP上面去,但测试同AP下的其他终端,发现部分终端确实ICMP丢包或者存在延迟高的情况,但咨询了相关用户,却未见反馈。

现场测试:现场使用确实存在偶发性卡顿,但是在局域网测试,却未有丢包。

带着这个疑惑,我去遍历了一下这些终端的共性和异常,发现丢包的终端,基本都是稍微旧型号的手机,以安卓为主,而IOS由于无线一直被吐槽,研究测试的时候,压根就没把他们统计在内。

搜索了一下安卓手机关于无线或者延迟方面的资料,终于找到了关于WLAN低延迟模式的相关信息。


WLAN 低延迟模式

Android 10 以后,扩展了 WLAN Lock API,以允许容易受到延迟时间影响的应用将 WLAN 配置为低延迟模式。当满足以下所有条件时,低延迟模式便会启动:

  • 已启用 WLAN,设备可以访问互联网。
  • 应用已创建并获得 Wi-Fi 锁,并且正在前台运行。
  • 屏幕处于开启状态。

WLAN 已启用且设备可访问互联网:这是基础条件,只有设备成功连接到 Wi-Fi 网络且具备网络访问能力,低延迟模式才有生效的前提。

应用已创建并获得 Wi-Fi 锁,且正在前台运行:应用需要通过 WLAN Lock API 创建并获取 Wi-Fi 锁,以确保其对网络连接的控制权,且必须处于前台运行状态,这样系统才能优先为其分配网络资源,保证低延迟需求。

屏幕处于开启状态:屏幕开启时,设备通常处于活跃使用状态,系统会优先保障应用的网络性能,关闭屏幕可能会触发设备的节能策略,从而影响网络延迟。




工作原理


停用节电模式:在 IEEE 802.11 标准中,节电模式(低电耗模式状态)会使设备在一段时间内关闭部分收发器组件以减少耗电,这期间无线接口处于短时间休眠状态,从而导致数据传输延迟增加。而在低延迟模式下,Android 框架中的 WifiLockManager 会明确停用节电模式,WLAN 系统保持唤醒状态,能够随时以最低延迟发送或接收数据包。


优化驱动和固件参数:设备制造商需要更新 WLAN 驱动程序和供应商 HAL,开发者还可以优化驱动程序层和固件层中的扫描和漫游参数,以进一步降低 Wi-Fi 延迟,不过确切的优化项目因实现而异。



其他相关事项

(1)设备兼容性:不是所有的设备都支持低延迟模式,设备的 Wi-Fi 芯片和天线需要支持该功能,且设备制造商需更新相关驱动程序和 HAL。
(2)功耗影响:由于低延迟模式停用了节电模式,可能会对设备的电池寿命和功耗产生一定影响,导致设备电量消耗加快。
(3)如果没有引入 WLAN 低延迟模式,锁屏后可能会出现延迟增高或者丢包的情况。
(4)许多手机系统为了节省电量,在锁屏后会采取一些节能措施,这可能会影响 WLAN 的连接状态。例如,部分后台数据访问,或者卸载 WiFi 驱动,导致 WLAN 进入休眠状态。当有数据需要传输时,就需要重新加载驱动或建立连接,这会导致延迟增高,甚至可能出现丢包的情况。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇