首页»版块 MagicOS MagicOS 通信你问我答系列 第8期 | 如何设置路由器能上网速度更 ...

通信你问我答系列 第8期 | 如何设置路由器能上网速度更快

[复制帖子标题和链接]

6840

通信小飞侠 荣耀工程师  发表于 2025-6-25 15:14:05 北京 来自:浏览器
一、我的手机为什么测速和下载文件都正常,用工具测试ping时丢包率高?

最近我们发现了一个这样的用户反馈:
通信你问我答系列 第8期 | 如何设置路由器能上网速度更快

先说结论:我们更改了路由器的设置,将Beacon间隔设置为了100ms,该问题得到了解决。注:推荐修改为100ms,也可以规避一部分路由器和其他非荣耀设备的兼容性问题,能够有更好的体验。

通信你问我答系列 第8期 | 如何设置路由器能上网速度更快


为什么要这么修改?

我们先简单介绍下手机WiFi芯片的休眠机制:
1、为了更好的省电,设备在发送或接收完数据包一段时间后(大概50毫秒之内),会进入休眠模式。
2、进入休眠后,如果路由器收到网络下行的数据,转发给设备之前会检查设备是否处于休眠状态;如果设备休眠就会缓存数据,并在Beacon里面设置标记,等设备醒来后接收。
3、即使在休眠状态,设备为保持连接,会周期性接收Beacon(不是每一个Beacon都接收);此时仅有最小硬件单元工作,并不是唤醒状态。
4、在省电状态下收到Beacon之后,解析发现有通知设备接收的标记,则说明路由器有数据缓存,设备需要退出省电来接收数据。
5、设备发送协议帧给路由器,通知它退出省电,路由器会把数据发给手机。

这个过程一般如下图所示:
通信你问我答系列 第8期 | 如何设置路由器能上网速度更快

从上面的过程可以看出,如果在休眠过程中,路由器缓存了数据,但是因为Beacon没有及时收到,就会下行延迟增高。导致没有接收到Beacon的原因可能有以下三种:
1、当路由器的beacon间隔周期不是常规的100ms时,可能存在一些兼容性问题导致设备收不到beacon帧;
2、帧漂移可能导致双端设备在接收beacon帧的时间点上有差异,错过Beacon帧的接受;
3、在一些复杂的环境中,拥塞的网络环境也会导致收不到Beacon帧。

回到用户提供的日志分析,并没有出现丢包,手机发出的PING包都有收到回复;但是回复延迟较高,有少部分出现2-3秒情况(正常值为5-100毫秒)。结合我们使用相应工具进行自测,怀疑是因为超过了设置的回复超时,所以被应用认为是丢包了。
我们深入分析了手机上的芯片日志之后,看到手机收Beacon的时间间隔约为15-20毫秒左右,并不是常见的100毫秒。所以怀疑当前问题和Beacon发送间隔时间有关,属于上述的第一种原因。


二、连接WiFi后,特定的一些只使用IPv6 only的网站打不开。
通信你问我答系列 第8期 | 如何设置路由器能上网速度更快

还是先说结论:以思科某款路由器设置为例,它支持配置ICMPv6 路由器通告(Router Advertisement)的路由周期(Router Lifetime)配置。如果这里的配置低于180秒,在手机连接路由器的过程中,ICMPv6 RA报文就会因为liftime低于默认配置,而被Android 内核中的处理逻辑忽略掉。注:如此修改同样会增加其他设备和路由器的兼容性,改善该路由器下连接设备的上网体验。

从下面的截图中可以看到,示例说明的路由器采用的配置是3600秒。

通信你问我答系列 第8期 | 如何设置路由器能上网速度更快



访问失败的原因是什么?通过浏览器打开网址的过程如下图所示,其中A类型的DNS请求是查询域名对应的IPv4地址,而AAAA则是查询域名的IPv6地址。

通信你问我答系列 第8期 | 如何设置路由器能上网速度更快

通过网络日志我们看到手机只发出了请求IPv4地址的DNS请求,那么问题就出在为什么没有进行IPv6的DNS请求。Android框架是支持v4和v6双栈的,在应用请求DNS查询时,会先检查是否有当前网络管理服务配置的路由是否有IPv6路由,如果有则依次发起AAAA和A类型的DNS查询,分别对应v6和v4类型。
如果没有发起DNS AAAA类型查询,说明本机缺少IPv6默认路由,而通过查看系统网络管理服务的日志打印看确实如此。为什么会没有IPv6的默认路由呢?通过分析网络日志,发现路由器下发的RA中“Router Lifetime”的值为90秒,引起我们的警觉。走读操作系统内核中ICMPv6 RA处理过程代码,看到系统会检查接收到的“Router Liftime”,如果小于本机配值的话会不处理;而本机的默认配置为180秒,大于路由器下发的90秒,正好是这种不处理的情况,进而导致没有添加IPv6的默认路由。在这个案例中,我们和用户确认了路由器后台的配置之后,用户修改为了60分钟,重启路由器之后再连接,问题消失了!


本期内容就介绍到这里,后续会有其他内容继续分享给亲爱的荣耀用户。如果您有任何关于WiFi相关的疑问、困惑或述求,欢迎留言评论或私信,感谢您对荣耀产品的支持!

您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表