5G计费入门避坑指南:搞懂CHF、OCS、Nchf这些核心网元与接口
5G网络的商业化落地正在加速推进,计费系统作为运营商商业变现的核心枢纽,其架构复杂度远超4G时代。对于刚接触5G核心网的技术人员而言,面对CHF、OCS、Nchf等新概念时,往往陷入"只见树木不见森林"的困惑。本文将采用"模块拆解+流程串联"的方式,带您穿透术语迷雾,掌握5G计费的核心骨架。
1. 5G计费系统的三大支柱
1.1 融合计费系统(CCS)的进化
传统4G时代在线计费(OCS)与离线计费(CDF)是两套独立系统,而5G的CCS实现了三大突破:
- 架构融合:将OCF(在线计费功能)与CDF(计费数据功能)整合到统一平台
- 接口统一:所有计费交互通过Nchf服务化接口完成,告别Diameter协议
- 能力扩展:新增ABMF(账户余额管理)和RF(批价功能)模块
典型应用场景:当用户发起高清视频业务时,SMF通过Nchf接口向CHF同时发送在线配额申请和离线话单记录,实现单次交互完成双重计费。
1.2 计费触发功能(CTF)的隐蔽角色
作为内嵌在各个网元的"神经末梢",CTF的工作机制值得关注:
| 触发条件 | 采集信息类型 | 典型网元位置 |
|---|---|---|
| PDU会话建立/修改/释放 | 会话时长、QoS等级 | SMF |
| 流量阈值触发 | 已用流量、剩余配额 | UPF |
| 业务特征变化 | 业务类型(视频/游戏等) | PCF |
注:CTF在3GPP R16中新增了对切片计费的支持
1.3 账务域(BD)的接口革新
5G时代Bx接口的演进带来两个显著变化:
- 话单文件标准化:CDR格式统一为JSON/XML,替代传统的ASN.1编码
- 异常处理机制:当Nchf接口超时,CHF会自动生成异常话单并通过Bx接口补传
# 典型CDR文件命名规则示例 CHF_<timestamp>_<SUPI前6位>_<序列号>.json2. 关键网元协作流程解析
2.1 在线计费的配额控制舞步
以用户观看4K视频为例,完整流程包含五个关键步骤:
- 会话初始化:SMF检测到视频业务特征,通过Nchf_ConvergedCharging_Create发起请求
- 余额检查:CHF查询ABMF获取用户剩余流量配额
- 费率计算:RF模块根据QoS等级(如GBR=50Mbps)计算每分钟费用
- 配额授予:OCF通过Nchf_ConvergedCharging_Update返回300MB临时配额
- 额度更新:当用量达到80%阈值时,UPF触发CTF上报,SMF发起更新请求
避坑提示:配置配额阈值时应考虑信令风暴风险,建议设置动态调整算法。
2.2 离线计费的话单生成逻辑
离线计费的核心在于CDR的生成策略,主要区分三种情况:
- 常规话单:会话结束时生成完整CDR
- 周期话单:长会话每15分钟生成增量CDR
- 异常话单:网络中断时生成部分CDR
// 典型CDR数据结构片段 { "sessionId": "5gc-987654321", "startTime": "2023-07-20T14:30:00Z", "endTime": "2023-07-20T15:15:00Z", "totalVolume": 1073741824, "qosClass": "Gold", "sliceInfo": { "sst": 1, "sd": "FFFFFF" } }2.3 融合计费的异常处理机制
当遇到OCS系统故障时,CHF的降级策略尤为重要:
- 本地配额池:启用预设的应急额度(如每用户500MB)
- 话单标记:在CDR中添加"emergencyQuotaUsed"标志位
- 事后稽核:系统恢复后通过Nchf_ConvergedCharging_Notify补发修正消息
3. 中国移动的架构创新实践
3.1 OCS迁移的深层考量
中国移动将OCS移至账务域的决策背后有三重技术动机:
- 计费策略统一:实现4G/5G计费规则集中管理
- 实时风控:欺诈检测响应时间从分钟级缩短到秒级
- 资源优化:省去CHF与OCS间的跨机房流量
3.2 Nchf'接口的双向价值
这个专属接口的设计亮点体现在:
- 协议转换:将3GPP标准的Nchf消息转换为内部BOSS协议
- 流量控制:实现基于SUPI前缀的优先级调度
- 漫游支持:携带VPLMN标识实现跨省路由
| 参数项 | 归属省场景 | 漫游场景 |
|---|---|---|
| 路由决策依据 | SUPI前6位(MCC+MNC) | SUPI+Visited-PLMN-Id |
| 响应超时 | 200ms | 500ms(含跨省传输时延) |
| 重试机制 | 3次(间隔100ms) | 2次(间隔300ms) |
3.3 内容计费的特殊处理
针对视频、云游戏等业务,中移动采用分层计费策略:
- 基础流量计费:通过SMF采集的PDU会话数据
- 内容特征识别:深度包检测(DPI)识别业务类型
- 叠加计费:在原有CDR上追加contentType字段
4. 实战中的典型问题排查
4.1 计费消息丢失的追踪方法
当发现Nchf消息丢失时,建议按以下顺序排查:
- 接口日志分析:检查SMF的Nchf请求时间戳
- 消息追踪:通过NRF查询CHF的服务状态
- 话单比对:核对CGF收到的CDR与SMF日志数量
- 网络抓包:在SMF-CHF间链路捕获HTTP/2流量
经验分享:在实际运维中发现,约60%的消息丢失源于MTU配置不当导致的分片丢失。
4.2 配额不同步的解决方案
常见于以下两种场景及应对措施:
场景一:UPF未及时上报用量
- 解决方法:启用SMF的配额心跳机制(默认每5分钟强制更新)
场景二:ABMF余额更新延迟
- 解决方法:配置CHF本地缓存,设置双读校验
# 配额双读校验伪代码示例 def check_quota(supi, requested_amount): local_balance = cache.get(supi) remote_balance = abmf_query(supi) if abs(local_balance - remote_balance) > threshold: trigger_alarm("Balance out of sync") return min(local_balance, remote_balance) else: return remote_balance4.3 漫游场景下的计费陷阱
需要特别注意的三个技术细节:
- 时区转换:CDR中的时间戳必须统一为UTC时间
- 货币转换:RF模块需集成实时汇率接口
- 税务规则:根据漫游协议自动选择计税方案
在最近某省际漫游测试中,由于未配置税率规则,导致计费差异达12%。这个教训说明,5G计费系统的测试用例必须包含跨域场景验证。