news 2026/5/10 18:02:18

老猿学5G:从3GPP规范到中国移动实践,漫游计费架构深度解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
老猿学5G:从3GPP规范到中国移动实践,漫游计费架构深度解析

1. 5G漫游计费的背景与挑战

记得第一次接触5G漫游计费项目时,我被复杂的流程搞得晕头转向。当时有个用户投诉国际漫游流量费异常,我们团队花了三天时间才定位到是归属地OCS与漫游地CHF之间的时区转换出了问题。这种看似简单的技术细节,在实际业务中往往就是"爆雷点"。

5G漫游计费与传统4G最大的不同,在于它采用了服务化架构。简单来说,就像把原来的"固定电话网"改造成了"微信通话"——所有计费交互都通过Nchf这样的服务化接口完成。这种变化带来的直接好处是计费响应速度提升3-5倍,但同时也引入了新的复杂度。

在漫游场景下,有三个关键难题:

  • 计费一致性:用户在上海使用北京号码上网,产生的费用要实时同步到归属地系统
  • 结算准确性:不同运营商之间的费用分摊要精确到字节级
  • 异常处理:当网络延迟或系统故障时,如何保证不重复计费也不漏计

中国移动在3GPP标准基础上做了个聪明的改动——把OCS(在线计费系统)从核心网剥离出来,直接放到账务域。这就好比把收银台从商场内部搬到了门口,顾客消费时能立即完成扣款。实测数据显示,这种架构使漫游场景下的计费延迟从平均800ms降到了200ms以内。

2. 3GPP标准下的漫游计费框架

2.1 核心组件协作机制

3GPP的漫游计费架构就像个精密运转的钟表,每个齿轮都有明确职责。让我们用快递系统做个类比:

  • **SMF(会话管理功能)**相当于快递员,负责收集用户的上网"包裹"信息
  • **CHF(计费功能)**是转运中心,对包裹进行分类处理
  • OCS则是财务部,决定这个包裹该收多少钱

具体到漫游场景,当北京用户在上海刷视频时:

  1. 上海SMF通过Nchf接口发送计费请求
  2. 上海CHF检查用户归属地(发现是北京用户)
  3. 通过NRF(网络仓库功能)查找北京OCS地址
  4. 将计费请求转发到北京OCS进行实时扣费

这个过程涉及两个关键接口:

  • Nchf_ConvergedCharging_Create:开始计费会话
  • Nchf_ConvergedCharging_Update:周期性更新用量

2.2 话单生成与传递

离线计费的话单流转就像传统邮政系统。CHF生成的CDR(呼叫详单)会通过CGF(计费网关功能)进行"分拣",最终以文件形式传到账务域。这里有个容易出问题的环节——话单去重。我们曾遇到过一个案例:由于网络抖动导致同一话单被传输两次,幸亏CGF有MD5校验机制才避免重复计费。

在线计费则更讲究实时性,典型流程是:

1. SMF → CHF : Nchf_Create(SUPI=13800138000,流量=100MB) 2. CHF → OCS : 查询用户余额 3. OCS → CHF : 返回可用额度(剩余50元) 4. CHF → SMF : 授权使用50MB流量

每用完一定额度(比如50%),就会触发Nchf_Update进行额度更新。这种"预付费+分段授权"的机制,既防止用户透支,又避免频繁交互带来的网络负担。

3. 中国移动的架构创新

3.1 省际漫游路由方案

中国移动的省际漫游设计就像高铁售票系统——不管你在哪个车站买票,最终结算都要回到你的身份证归属地。具体实现上有三个关键技术点:

  1. Nchf'接口转发:这是中移动自研的"计费专线",相比标准Nchf接口增加了路由标签。就像快递单上的"加急"标记,确保漫游计费请求优先处理。

  2. 归属地OCS寻址:采用三级寻址策略:

    • 第一层:根据SUPI前7位确定省份
    • 第二层:通过NRF动态查询OCS实例
    • 第三层:负载均衡选择具体服务器
  3. 异常话单处理:当主用通道故障时,CHF会生成异常话单文件,通过内容计费系统进行补单。这就好比高速公路堵车时启用应急车道。

3.2 双通道保障机制

中移动最精妙的设计是消息+文件双通道的冗余方案。正常情况走服务化接口实时交互;异常情况下自动降级为文件传输。我们在2022年某次核心网升级时,这个机制成功避免了全国范围计费中断。

具体实现上:

  • 消息通道:用于实时授权和扣费
  • 文件通道:用于对账和稽核
  • 同步机制:每小时执行一次消息与文件的交叉校验

下表对比了两种通道的特性:

特性消息通道文件通道
实时性毫秒级分钟级
可靠性99.9%99.99%
数据完整性单次交互多重校验
适用场景在线计费异常补单

4. 典型问题排查实战

4.1 计费不一致案例分析

去年处理过一个经典故障:某省用户漫游到外省后,话单中的地理位置信息出现偏差。根本原因是CHF没有正确处理NEF(网络开放功能)提供的GPSI映射关系。解决方法是在Nchf_Create消息中强制携带SUPI和GPSI的双重标识。

这类问题的排查可以遵循"三层验证法":

  1. 消息层:用Wireshark抓取Nchf接口消息
  2. 逻辑层:检查CHF的路由策略配置
  3. 数据层:核对UDR中的用户标识映射关系

4.2 结算稽核要点

漫游结算最怕遇到"糊涂账"。我们总结出三个关键检查点:

  1. 时间窗口对齐:确保所有系统使用统一的NTP时间源
  2. 流量单位统一:特别注意MB与MiB的换算(1MB=1000KB, 1MiB=1024KiB)
  3. 汇率转换基准:国际漫游要锁定当日央行汇率

有个实用技巧:在CHF配置中开启话单水印功能,给每张话单打上唯一序列号。这样在跨省结算时,就像给每个包裹贴上条形码,方便追踪溯源。

5. 深度优化建议

经过多个省市的部署实践,我总结出几个提升漫游计费性能的"土方子":

第一招:预热OCS连接池在节假日等高峰时段前,通过脚本模拟Nchf'接口调用,保持长连接活跃。某省实测显示,这能使峰值处理能力提升40%。

第二招:动态调整配额根据用户信用等级设置弹性额度:

  • 普通用户:50MB/次授权
  • VIP用户:200MB/次授权
  • 欠费用户:触发离线计费模式

第三招:智能重试机制对失败的计费请求采用指数退避重试:

def smart_retry(max_attempts=3): base_delay = 0.5 for attempt in range(max_attempts): try: return send_request() except Exception as e: delay = base_delay * (2 ** attempt) time.sleep(delay) raise RetryFailedError()

这些经验都是在实际踩坑中积累的。比如有次某明星用户在国外发微博导致瞬时高流量,由于固定配额设置过小,频繁的Nchf_Update交互反而拖垮了系统。后来改成动态配额才解决问题。

计费系统就像人体的神经系统,平时感觉不到它的存在,但一旦出问题就是大事。好的架构设计应该像中医讲的"治未病"——在问题发生前就做好预案。这也是为什么中国移动要在标准之外自主研发Nchf'接口和双通道机制,这些创新确实在实际业务中发挥了关键作用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 18:00:39

保姆级教程:用qBittorrent和Transmission搞定PT新手考核(附辅种工具推荐)

PT新手生存指南:从零开始高效通过考核的实战策略 第一次踏入PT世界的新手,面对密密麻麻的考核指标和陌生术语,难免会感到手足无措。别担心,这篇文章将带你避开所有新手陷阱,用最直接有效的方法快速通过考核。我们会从工…

作者头像 李华
网站建设 2026/5/10 17:53:09

FFmpeg GUI终极指南:3分钟学会图形化音视频处理

FFmpeg GUI终极指南:3分钟学会图形化音视频处理 【免费下载链接】ffmpegGUI ffmpeg GUI 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpegGUI 还在为复杂的FFmpeg命令行而烦恼吗?今天我要向你介绍一个革命性的工具——FFmpeg GUI,…

作者头像 李华
网站建设 2026/5/10 17:45:21

为AI智能体构建持久记忆:LLM监督与四图架构解析

1. 项目概述:为AI智能体构建持久记忆的“大脑” 如果你用过Claude Code、OpenClaw这类AI智能体开发工具,一定遇到过这样的困扰:每次开启新会话,智能体就像得了“健忘症”,完全不记得上次聊了什么。你费尽心思教会它的…

作者头像 李华
网站建设 2026/5/10 17:44:56

微信聊天记录永久保存完全指南:简单三步实现数据永恒备份

微信聊天记录永久保存完全指南:简单三步实现数据永恒备份 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/We…

作者头像 李华