小伙伴们好呀~最近小锐在处理问题时经常收到客户反馈说:
我的iPhone怎么用着用着偶尔就会出现弹窗提示“无线局域网似乎未接入互联网”,这个是怎么回事呀?是不是无线网络出问题了啊?
咦,点击弹窗底部的“继续尝试使用无线局域网”后,Wi-Fi又可继续正常使用,咋回事呀这个?
![image](https://upload-images.jianshu.io/upload_images/24545071-c077db3bc2117aa4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
针对这个问题小锐在与多个客户沟通后发现了一个共同点,大伙都是升级了iOS 13.X版本后出现异常弹窗的问题。
从目前看有三个疑点:
1、无线网络或无线设备问题。
2、苹果手机兼容性问题。
3、苹果系统误报
### **疑点1/2:无线网络设备问题与苹果手机兼容性问题**
于是小锐带着这两个疑惑自己搭建环境进行了分析测试,分别在锐捷无线、其他厂商无线环境下,使用iOS 13.1.3版本iPhone手机开展为期1周的测试复现。发现在这个期间,不同设备下都有该弹窗提示,出现概率比较低(1-3天出现1次)点击继续使用无线能正常快速上网。弹窗时,持续对手机进行Ping测试,观察网络速率,各项指标均正常(丢包率0%、时延20ms)因此,小锐断定能排除无线设备、无线认证方式、无线网络、苹果手机兼容性问题。
### **疑点3:苹果手机兼容性问题**
既然排除了设备与无线网络本身的问题,接下来只能放大招了,小锐通过空口抓包软件,抓取弹窗提示时iPhone手机的交互报文进行分析,有了重大发现!(请自行脑补柯南背景音乐)。此时手机正在对苹果服务器netcts.cdn-apple.com进行http报文探测,报文如下图所示:
![image](https://upload-images.jianshu.io/upload_images/24545071-05c6727e6e38e137.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
(报文解释:iPhone手机内部自带了一些探测机制,在刚连上Wi-Fi、刚解锁、以及使用过程中,都会不定时对苹果服务器发起http探测,用于诊断网络连通性。而netcts.cdn-apple.com是升级iOS 13.x后新增的域名)
于是小锐将测试重点放在苹果服务器上,因为服务器一但不稳定,将导致终端探测异常,触发弹窗提示。在有线环境下,不同时间段对该域名进行Ping包测试,小锐发现有线网Ping经常有丢包,且平均时延达到200ms以上,丢包5%以上,证明该服务器的网络很不稳定,使得iPhone误以为Wi-Fi网络有异常,触发弹窗。
小锐先Ping 腾讯的域名,保证有线网络无异常:
![image](https://upload-images.jianshu.io/upload_images/24545071-1110582378591408.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
再Ping苹果的探测域名(丢包延迟情况严重):
![image](https://upload-images.jianshu.io/upload_images/24545071-32d4babc521131a9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image](https://upload-images.jianshu.io/upload_images/24545071-7c17c3e26641aae9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![image](https://upload-images.jianshu.io/upload_images/24545071-de5d287c477824da.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
### **苹果手机探测报文对比分析**
正常交互流程:抓取iPhone与netcts.cdn-apple.com正常探测的报文,交互流程如下图,iPhone对服务器发起http请求,接着服务器回复一个较长聚合报文,之后服务器和iPhone之间一应一答,交互多个来回,最终完成探测,iPhone端未弹窗提示。
![image](https://upload-images.jianshu.io/upload_images/24545071-e36520f45726ddcd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
异常交互流程:在服务器丢包时,抓取到终端异常交互流程,如下图所示,终端发起http探测,服务器仅回复了第一个聚合报文,之后终端发起后续报文,服务器无应答。在终端多次尝试服务器无回应时,最终认为是Wi-Fi网络出现问题,触发弹窗提示。
![image](https://upload-images.jianshu.io/upload_images/24545071-78251f620c52d5e8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
通过以上详细的分析小锐发现故障原因就是iPhone在iOS 13.x**新增了一个网络探测机制:netcts.cdn-apple.com**,当该服务器因为自身网络不稳定或其他原因未应答时,iPhone便误以为是Wi-Fi网络异常,弹窗提醒用户。
在明确了问题原因之后小锐第一时间联系了苹果厂家,但对此没有给出明确的解决办法,小锐暂时也只能建议客户的iPhone终端先不要升级最新版本,等后续苹果发布更新版本后再升级体验。
(温馨小提示:在只使用Wi-Fi情况下,可将移动蜂窝数据关闭,避免苹果探测机制不完善导致偷用手机4G流量。)
参考来源:【运维实战家】