IOS系统Wi-Fi图标无法点亮及Portal弹出慢问题
近期,部分客户反馈,少量的 IOS 或 OS X 终端,在使用 Portal 认证的情况下,会出现认证卡住、Portal 页面弹出慢、Wi-Fi 图标点不亮等问题,且其他 Wi-Fi 厂商客户也爆出了一样的问题。
通过对这些问题做了详细的分析,目前得出以下结果,简要描述为:最近苹果终端的 Wi-Fi 功能,在某些认证方式的场景下出现了一些问题,通过技术研究分析,发现这些问题和 Wi-Fi 设备本身没有关系,导致的原因是苹果服务器和苹果终端延迟发包。目前我司设备已经有了规避措施,第一时间联系了 Apple 公司的400和技术支持中心,暂时还未取得相关的技术解决回复。
上述内容是分析后的结论,可能有人还是没有感觉。如果你想了解更为详细的分析过程,下面的内容足够满足你,准备好了吗?
【正常iOS系统点亮WiFi图标过程】
1、连上WiFi后iOS会自动发起探测帧:http://captive.apple.com/hotspot-detect.html
2、首先DNS解析该域名,然后自动发送一个HTTP/1.0的探测帧请求到http://captive.apple.com/hotspot-detect.html
3、终端接收到苹果服务器探测回应,如果回应报文头部为success,那么认为网络是通的,同时,状态栏的WIFI图标出现,流程结束。
【正常iOS系统自动弹出portal流程】
1、连上WiFi后iOS会自动发起探测帧:http://captive.apple.com/hotspot-detect.htm
2、首先DNS解析该域名,然后自动发送一个HTTP/1.0的探测帧请求到 http://captive.apple.com/hotspot-detect.html
3、终端接收到探测回应,回应报文头部不是success,不点亮WiFi图标。
4、终端会自动打开一个页面,在这个页面中再请求一次http://captive.apple.com/hotspot-detect.html,这一次,使用的是HTTP/1.1。
5、此时我们控制器会使用苹果服务器IP给终端回复一个302 moved跳转到http://auth.wifi.com
6、接下来便进入到portal页面及认证流程并点亮WiFi图标,流程结束。
【部分iOS WiFi图标无法点亮、portal页面弹出缓慢原因】
目前出现的苹果终端WiFi图标无法点亮、portal页面弹出缓慢的问题,从问题终端抓包分析,该终端在走到正常流程第三步后,没有再继续下面的流程,发HTTP/1.1的GET包。(也没有发其他数据包,除了探测网关欺骗的ARP包外),一直等到几十秒或几分钟后,才开始继续接下来的流程。
从上面问题终端的数据包截图可以看到,终端在19:26:03收到HTTP/1.0 200 ok包之后,一直等到19:26:47才发出HTTP/1.1 GET包,才开始继续后面的流程。
在这持续的44s时间中,WiFi图标未点亮、portal页面也不会弹出,造成WiFi图标无法点亮、portal页面弹出缓慢,客户认为WiFi连接不上的情况。
从目前部分区域问题终端抓包分析,均为终端自身不再继续发包(除了探测网关欺骗的ARP包外)导致无法重定向,和Wi-Fi设备无关。
【规避措施】
针对以上终端自身不发包行为,从无线上无更多的方法让终端继续发包。出现这种情况时,我司无线设备目前通过规避措施,在SSID中勾选iOS不自动弹出portal页面,用户手动访问网页来解决。或者,可以暂时新建其他的认证方式。
勾选不自动弹portal,用户手动打开浏览器弹出portal页面流程如下:
用户打开浏览器,手动访问任意网页(以下数据包为访问百度新闻),此时终端在GET百度新闻时,控制器使用百度新闻的IP给终端回复302 moved temporarily跳转到http://auth.wifi.com弹出portal页面,进入认证过程。
本文只写了 Portal 页面弹出慢的问题,其他问题欢迎后续和我们的技术人员一起交流。