转:http://kms.h3c.com/View.aspx?id=52875

问题现象

在无线环境中经常碰到苹果终端连接无线后wifi图标无法点亮导致终端无法上网、在起portal的网络中认证页面无法自动弹出影响使用体验。

告警信息

原因分析

一、wifi图标无法点亮分三种情况:

1、无线属内网环境,自动获取地址时没有下发DNS地址,导致wifi图标始终无法点亮。

2、无线即无portal认证、又无加密,此时有些苹果终端每次连接wifi都会延迟10秒左右才能点亮图标。

3、无线环境起了portal认证,wifi图标延迟10秒到45秒才能点亮。

二、WIFI图标点亮以及portal不弹窗分析

1、 概率性不弹窗分析

参考了苹果官方文档的状态机,发现非首次连接的ssid是有可能被cache的,如果cache,就会直接交给“热点助手(Hotspot helper)”,目前看,只要意图合理合法的APP都有可能注册为热点助手。热点助手对于频繁连接断开的ssid处理行为可能会有特殊处理,比如不再嗅探,直接点亮wifi标识。

2、概率性弹窗慢分析

苹果弹窗的嗅探报文并不总是立即发出,偶尔会出现不大于45s的延迟,因此产生了弹窗慢的问题。查看苹果的官方文档,发现苹果在分配到ip以后如果该网络没有cache过会进入网络评估状态,这个过程需要与注册为“热点助手(Hotspot helper)”的APP交互。系统先发一个评估(Evaluate)的命令给每一个热点助手,命令包含SSID和BSSID,每一个命令助手要在45s内做出对该网络的可信度(有none, low, high三档)评估。

(1)第一个给出high的热点助手会被选为best_helper,后面的弹窗会与该助手交互。

(2)如果所有的热点助手都没有给出high,选择给评估最高的助手为best_helper,后面的弹窗会与该助手交互。(比如有四个助手,三个给了none,一个给了low,那么这个给low的会被选中)

(3)如果45s没有热点助手给出任何可信度的评估,苹果会迁移到认证结束(Authenticated)的状态,不会有弹窗。

从抓包上看,再结合苹果对热点助手的规则,可以推断出:最坏的结果是,首次连接,也许所有的热点助手都没有关于当前网络的记录,所以评估过程不可能在45s内给出high,甚至最少有一个给了none其他的根本没有给出评估结果,超时后系统把这个给出none的选为best_helper,开始后面的弹窗交互,这种情况,一定会延迟45s。也有可能是热点助手收到评估命令后,有些立刻给出了评估,有些给的迟一些,但是还是在45s以内所有的助手都给出了评估,系统选出来了best_helper,开始弹窗流程,这个过程也许用了10s,也许用了20s,这可能就是弹窗延迟时间不定的原因。

以下是典型的热点助手的行为:

我们通过安装一些可能具有热点助手功能的APP进行抓包后发现有些热点助手具有特殊的嗅探报文,比如钱盾,会在以上的嗅探报文基础上额外发出若干如下报文:

GET /hotspot-detect.html HTTP/1.1

Host: captive.apple.com

Accept: */*

Accept-Language: zh-cn

Connection: keep-alive

Accept-Encoding: gzip, deflate

User-Agent: %E9%92%B1%E7%9B%BE/5.2.2 CFNetwork/811.5.4 Darwin/16.6.0

这个报文的User-Agent为“钱盾/5.2.2 CFNetwork/811.5.4 Darwin/16.6.0”。

具体有哪些APP注册了热点助手,这些APP如何评估当前网络,我们是不能完全知情的。也就是说,弹窗的快慢,是由苹果设备的所有热点助手的综合行为决定的。

关于PSK加密,这种情况会影响某个APP(比如钱盾)的评估,直接给出high,加快弹窗。

3、评估官网文档关于Captive网络的处理流程如下:

总结:

  1. 1.      关联网络?建立ip连接?评估阶段,弹窗是在评估阶段后面开始的,加密服务模板是在关联网络阶段,并没有证据证明服务模板加密是否可以影响到后面某一个Hotspot Helper对当前网络的评估。
  2. 2.      一旦有一个helper返回一个它可以以高可信度处理该网络的结果,其他helper的结果就可以被忽略了,每一个helper有最多45s的时间进行评估,如果45s内没有最优解,系统只能选择可信度最高的作为best_helper。(high confidence 如何理解,文档并没有精确说明)
  3. 3.      究竟有哪些APP注册过Hotspot Helper,我们还不能确定,用户手机安装了哪些APP,我们也是不可知的,所以在评估状态下究竟会返回什么结果,何时返回结果都是不确定的。
  4. 4.      偶尔不弹窗的原因也得到了解释:当前网络被Cache了,就不会走到评估阶段,也就不发嗅探报文了。
解决办法

1、如果是内网环境也一定要配置DNS地址,并且做PSK加密。

2、不起portal或起了portal无感知时尽量加PSK加密。

3、起了portal的无线环境中,常用的网络优化配置如下,可以提升体验程度(V7)

#

portal free-rule 2 destination ip any udp 53

portal free-rule 3 destination ip any tcp 53

portal free-rule 4 destination ip any tcp 5223

//这些是iOS有时候会发出探测报文的端口号

#

portal safe-redirect enable

portal safe-redirect method get post

portal safe-redirect user-agent Android

portal safe-redirect user-agent CaptiveNetworkSupport

portal safe-redirect user-agent MicroMessenger

portal safe-redirect user-agent Mozilla

portal safe-redirect user-agent WeChat

portal safe-redirect user-agent iPhone

portal safe-redirect user-agent micromessenger

#

portal web-server wbsvr

url http://h3c.XXX.imc.com/portal

server-type imc

captive-bypass ios optimize enable

if-match original-url http://captive.apple.com/hotspot-detect.html user-agent Mozilla temp-pass redirect-urlhttp://h3c.XXX.imc.com/portal

if-match original-url http://www.apple.com user-agent Mozilla temp-pass redirect-url http://h3c.XXX.imc.com/portal  #以上两条是苹果触发临时放行的地址,通过此配置将临时放行提前,避免出现弹出页面后wifi标识点亮又消失的问题,对Android设备无影响。

建议与总结

即使做了上述的优化后,IOS弹窗问题受终端行为影响还比较大,苹果6和6s基本第一次连接时都会产生45秒的延迟弹窗,当再次连接时速度就很快了,和终端cache行为、终端安装的app关系比较密切。并且在各大机场用同样的终端实际测试,各大友商的无线基本都会遇到同样的问题。

苹果终端wifi图标点亮慢和portal弹窗机制分析以及处理办法和建议的更多相关文章

  1. 一款基于的jQuery仿苹果样式焦点图插件

    这次我们要分享的这款jQuery焦点图非常特别,它的外观特别简单,但是又相当大气.焦点图的整体样式是仿苹果样式的,由于jQuery的运用,我们只要点击图片下方的缩略图即可达到图片切换的焦点图特效,这款 ...

  2. wpa_supplicant - 强有力的终端 wifi 配置工具【转】

    本文转载自:http://rickgray.me/2015/08/03/useful-command-tool-for-wifi-connection.html 最近网购了一套Raspberry-Pi ...

  3. badboy录制网站出现css样式混乱,网页的图标点击没反应

    本人在测试web工作过程中,遇到了标题一样的问题.苦恼很久也没有找到原因.后面自己摸索,发现了问题所在! badboy安装是2.2.5版本:ie最新版本: 原因:首次安装badboy的时候,所默认的浏 ...

  4. 实现bootstrap布局的input输入框中的图标点击功能

    使用bootstrap布局可以在input的输入框中添加譬如登录名输入框中的一键清除图标和密码输入框中显示密码的小眼睛图标.如下图: 但是在将图标放入input输入框中,这些小图标是无法获得点击事件的 ...

  5. H-ui框架信息图标点击跳出页面问题

    在html中为消息a标签添加id: 在static/h-ui/js/H-ui.min.js添加事件:

  6. jQuery仿苹果样式焦点图插件

    在线演示 本地下载

  7. 在菜单栏对应图标点击右键-关闭窗口,javaw.exe进程未关闭。

    问题: 可视化开发时,运行一个工程,总会生成一个javaw.exe进程. 关闭运行程序,javaw.exe还存在. 解决: 运行java工程时,会启动一个新的虚拟机来运行你的程序. 程序退出的时候,这 ...

  8. web移动开发中如何实现图标点击态的蒙层效果

    webapp开发中经常需要加入点击二态,即用户点击(tap)页面某个部分时该部分的样式进行相应的变化来相应用户的点击操作,这样能够带来更好的用户体验,今天我们要讨论的是如何给图标加上点击的二态效果. ...

  9. 单片机小白学步系列(十四) 点亮第一个LED的程序分析

    本篇我们将分析上一篇所写的程序代码.未来学习单片机的大部分精力,我们也将放在程序代码的编写上. 可是不用操心.我会很具体的介绍每一个程序的编写思路和各种注意事项等. 之前我们写的程序例如以下: #in ...

随机推荐

  1. java 获取网页指定内容-2(实践+修改)

    import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; ...

  2. CSS基础4——使用CSS格式化元素内容的文本

    CSS的文本属性用于控制文本的段落格式,如设置首行缩进.段落对齐方式.字间距.行间距等. 1.设置文本首行缩进:text-indent 可选属性值包含: 长度 / 百分比 2.设置文本对齐方式:tex ...

  3. 百度地图二次开发Demo

    单点标注:电子显示对应位置的图片,信息框 多点标注(批量点标注): 多点连线(基于多个点形成路径): 若须要Demo源码:请给我发邮箱 1507026255@qq.com 转载请注明小刘

  4. VC编译那些事儿

    转载自:http://blog.csdn.net/wowolook/article/details/8077153     最近又被ms的编译选译纠结了一下,运行程序是老是弹出0x14b1 or 71 ...

  5. iOS学习笔记(十七)——文件操作(NSFileManager)

    iOS的沙盒机制,应用只能访问自己应用目录下的文件.iOS不像android,没有SD卡概念,不能直接访问图像.视频等内容.iOS应用产生的内容,如图像.文件.缓存内容等都必须存储在自己的沙盒内.默认 ...

  6. web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么?

    web容器 web服务器 servlet/jsp容器 之间的区别和关系是什么? 这是我在网上找的一些资料:1. Web浏览器除了可以在本地硬盘上打开网页文档外,还可以使用http网络协议从网络上的We ...

  7. 【BZOJ2721】[Violet 5]樱花 线性筛素数

    [BZOJ2721][Violet 5]樱花 Description Input Output Sample Input 2 Sample Output 3 HINT 题解:,所以就是求(n!)2的约 ...

  8. POJ 1125 Stockbroker Grapevine【floyd简单应用】

    链接: http://poj.org/problem?id=1125 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22010#probl ...

  9. random模块一些常用的东西

    import random#一.随机小数# (1)大于0且小于1之间的小数print(random.random())# (2)大于1且小于9之间的小数print(random.uniform(0,9 ...

  10. 20170520 BADI增强学习

    一.要求:Tcode:FF_5 导入数据运行时,产生财务凭证之前修改某些字段值.Exmp:FEBRE-VWEZWBKPF-XBLNRFEBEP-CHECTBSEG-ZUONR there is a b ...