行业动态与技术知识
Portal计费系统掉线重连怎么保住计费会话
Portal计费系统上线后,最容易被忽略、却最容易引发投诉的问题,是掉线重连。用户连着网刷视频,手机锁屏几分钟,或者笔记本从会议室走到工位,WiFi短暂断开又连上,计费会话就断了,得重新弹Portal登录。这种体验放在商场是烦,放在校园宿舍是怨,放在企业办公是直接影响干活。保住计费会话,是Portal系统稳定性的硬指标,不是锦上添花。
断网不等于该重新认证
首先要建立一个认知:终端断网和身份失效是两回事。手机锁屏导致WiFi休眠,属于网络层短暂中断,用户的身份和计费权益其实没变。Portal系统如果一检测到断网就把会话销毁,重连后强制重新登录,就是把这个认知搞反了。正确做法是区分链路中断和会话过期,链路恢复后优先尝试恢复旧会话,而不是无脑重建。
实现上靠的是会话token的续期机制。用户首次认证后,Portal下发的token带一个有效期,比如两小时。在这个有效期内,终端重连时带上token,网关和Portal校验通过就恢复放行,计费连续累计。token过期了才要求重新登录。这个有效期要和免费时长或者计费周期对齐,不能出现token还活着但计费已经断档的错位。
IP变化是重连的另一道坎
很多Portal系统用IP地址作为会话的关联键。但移动场景下,终端重连后拿到的可能是新IP,比如从AP_A漫游到AP_B,DHCP重新分配了地址。如果会话表只认旧IP,新IP就被当成新用户,要么重新登录要么直接拒绝。解决思路是把会话绑定到终端的MAC或者认证账号,而不是IP,IP变了只要账号token有效就续上。
这里有个权衡。绑定MAC更稳,但MAC在不同VLAN间漫游也可能变;绑定账号token最可靠,前提是认证环节拿到了稳定的账号标识。Portal系统要支持按账号维度维护会话,而不是只按IP,这对医疗、校园这类大范围漫游场景尤其重要。
网关和Portal的状态要对齐
上一轮对话里聊过会话同步,这里换个角度说重连。终端重连后,网关那边的放行状态可能还没恢复,Portal这边token是有效的,两边又出现了不一致。解决办法是重连事件触发Portal主动通知网关恢复放行,而不是等网关定时轮询。实时性差的网关轮询,会让用户重连后卡在登录页好几秒,体验上就是还断着。
计费不能因为重连出现断点
对按时长计费的单位,重连期间要不要计费是个运营选择。多数场景应该连续计,因为用户实际还连着网、还在消耗带宽,只是链路抖了一下。如果每次重连都清零重新计时,用户会发现自己明明一直在线却被拆成好几段短会话,账单看着别扭。Portal计费系统要能把抖动期间的会话合并,给出一条连续的时长记录。
保住计费会话,核心就一句话:断的是链路,不是身份。把会话建立在稳定的账号或终端标识上,用token续期替代重新认证,让网关和Portal在重连事件上实时对齐,计费连续累计。这几件事做扎实了,用户几乎感知不到掉线,Portal计费系统才算真正稳住了。
弱网下的续期重试要有耐心
终端在电梯、地下车库这些信号死角会短暂失联,重连后网关可能还没感知到。Portal的token续期机制要带重试,重连后先静默重试几次,确认真的失效了再要求重新登录,避免用户因为一次轻微抖动就被踢回登录页。重试间隔和次数要调过,太激进反而增加网关负担。
漫游跨越三层交换机时,终端IP可能跨网段变化,前面说过要按账号而非IP绑定会话,这里补充一点:跨网段后ARP和DHCP都要重新走,Portal的续期请求可能经由不同路径到达。要确保续期接口在任意接入网段都可达,别出现A网段能续、B网段续不了会话的诡异现象,这种问题在现场极难排查。
还有一个细节是续期期间的计费连续性。重试用时那几秒,终端其实还连着网、还在消耗带宽,计费不应该出现断点。Portal要把续期窗口内的流量归入原会话,而不是开一个临时零时长会话糊弄,否则月底对账又会露出马脚。
会话续期成功率应该被当成Portal系统的健康指标来监控。正常情况下这个数值应该接近百分之百,如果某天掉到九成以下,说明链路有抖动或者网关同步出问题了,运维要立刻排查,而不是等用户投诉。把它接入监控面板,和认证成功率、带宽利用率放一起看,系统状态一目了然。
续期失败后的处理也要有兜底。连续续期失败,Portal是强制重新登录,还是给一个宽限期让用户先接着用。不同的场所选择不同,医院怕中断就给宽限,公共场馆怕蹭网就严格。这个策略要可配置,别写死在系统里让运维改不了。
续期机制要在主流机型上实测,不能只在开发用的那台手机上调通。不同品牌对WiFi休眠的策略差别很大,有的锁屏就断网,有的保持长连接,续期触发时机和表现都不一样。Portal上线前拿四五款主流手机各测一遍锁屏重连,记录续期是否无缝、会话是否连续,这个投入比事后处理投诉划算。终端多样性是Portal稳定性真正的考场。