2. Online状态定义
在通信协议栈与业务逻辑的交叉点上,Online状态是终端设备在核心网或业务平台侧注册成功的标志性状态。它不仅是用户“可被寻址”的前提,更是会话(Session)生命周期管理的起点。本章从含义、与Session的关系、触发条件三个维度,对Online状态进行精确拆解。
2.1 Online状态的含义
Online状态表示终端与网络侧之间已建立可达性与可服务性。具体包含以下三层语义:
| 语义层 | 说明 | 协议体现 |
|---|---|---|
| 注册可达 | 终端已在网络侧完成身份认证与位置更新,网络可随时寻呼到该终端。 | IMS REGISTER / SIP 200 OK |
| 业务就绪 | 终端具备发起或接收业务的能力,如语音、消息、数据。 | P-CSCF 发现 / S-CSCF 分配 |
| 状态保持 | 终端与网络之间维持周期性心跳或保活机制,防止隐式离线。 | Re-registration / Keep-Alive |
测试要点:Online状态不等于“用户正在通话”或“用户正在使用数据业务”。Online仅表示终端在网络侧处于可服务状态,业务激活是后续Session建立阶段的行为。
2.2 Online状态与Session的关系
Online状态与Session(会话)是依赖但不同层的关系。Online是Session建立的前提条件,但Session的建立与释放不影响Online状态的维持。二者对比如下:
| 维度 | Online状态 | Session(会话) |
|---|---|---|
| 生命周期 | 长周期(分钟~小时级) | 短周期(秒~分钟级) |
| 依赖关系 | Session建立的前提 | 依赖Online状态存在 |
| 状态变化 | Online ↔ Offline | Idle ↔ Active ↔ Release |
| 网络资源 | 仅占用注册数据 | 占用媒体通道、QoS资源 |
| 典型协议 | SIP REGISTER / 200 OK | SIP INVITE / 183 / 200 OK |
关键规则:终端必须先进入Online状态,才能发起或接收Session建立请求。如果终端在Session进行中突然变为Offline,网络侧应主动释放该Session并回收资源。
2.3 Online状态切换的触发条件
Online状态并非静态不变,终端在网络侧的注册状态会因多种条件发生切换。以下是Online ↔ Offline切换的完整触发条件清单:
2.3.1 Online → Offline 触发条件
- 显式去注册:终端主动发送SIP REGISTER(Expires=0)或网络侧下发401/403拒绝。
- 注册超时:终端未在注册有效期(通常600~3600秒)内发起重注册,网络侧自动清除注册数据。
- 网络侧强制踢出:如S-CSCF检测到终端异常、计费异常或网络过载,主动发起去注册流程。
- 终端关机/网络断开:终端检测到无线链路丢失或关机,网络侧通过隐式去注册机制(如Diameter RTR)清除状态。
- 用户切换网络:如从4G切换到5G但未完成IMS重注册,或从WiFi切换到蜂窝网络导致注册上下文失效。
2.3.2 Offline → Online 触发条件
- 初始注册:终端开机后首次发起SIP REGISTER请求,经鉴权成功后进入Online状态。
- 重注册:终端在注册有效期即将到期前,主动发起REGISTER刷新注册状态。
- 网络触发重注册:网络侧通过SIP NOTIFY或Diameter PUSH通知终端重新注册(如网络升级、配置变更)。
- 切换后重注册:终端完成接入网切换后,检测到IMS注册状态丢失,主动发起重注册。
测试风险提示:Online→Offline切换时,如果网络侧未及时释放关联的Session资源,会导致“僵尸Session”问题——网络侧仍保留媒体通道,但终端已无法响应,造成资源泄漏。测试用例必须覆盖异常断链场景下的资源回收验证。
2.4 状态切换的协议流程示例
以下是一个典型的Online → Offline → Online切换流程,以IMS网络为例:
终端 P-CSCF S-CSCF
| | |
|--- 1. REGISTER (Exp=0) -|-- 2. RTR (去注册) ------>|
| | |
|<-- 3. 200 OK (Exp=0) ---|<-- 4. RTA (确认) -------|
| | |
| [Online → Offline] | |
| | |
|--- 5. REGISTER (Exp=600) |-- 6. MAR (鉴权) ------->|
| | |
|<-- 7. 401 Unauthorized -|<-- 8. MAA (挑战) -------|
| | |
|--- 9. REGISTER (Auth) --|-- 10. SAR (注册) ------->|
| | |
|<-- 11. 200 OK (Exp=600) |<-- 12. SAA (确认) ------|
| | |
| [Offline → Online] | |
测试关注点:步骤1~4验证显式去注册的完整性;步骤5~12验证重注册的鉴权与状态恢复。测试工具应能捕获每个SIP消息的Expires头域、Result-Code AVP,并验证网络侧注册数据库的更新。
2.5 状态切换的测试设计要点
| 测试场景 | 触发方式 | 预期结果 | 异常检测点 |
|---|---|---|---|
| 显式去注册 | 终端发送Expires=0的REGISTER | 网络侧清除注册,返回200 OK | 网络侧是否残留注册数据 |
| 注册超时 | 终端不发起重注册,等待超时 | 网络侧主动标记为Offline | 超时定时器精度(±10%容差) |
| 网络强制踢出 | 网络侧发送RTR(原因值) | 终端收到NOTIFY后去注册 | 终端是否释放所有Session |
| 关机断网 | 终端物理断网或关机 | 网络侧隐式去注册(等待检测周期) | 隐式去注册检测周期是否过长 |
| 初始注册 | 终端开机发起REGISTER | 鉴权通过后进入Online | 鉴权挑战/响应完整性 |
| 重注册 | 终端在超时前发起REGISTER | 网络侧刷新注册有效期 | 重注册窗口期是否触发竞争条件 |
测试策略建议:在自动化测试中,将Online状态切换作为前置条件(Precondition)进行参数化设计。例如:测试Session建立前,先通过API或协议指令将终端置于Online状态;测试Session释放后,再验证终端仍处于Online状态。这样可以隔离状态切换与业务逻辑的耦合。