好的,我们立即开始下一篇规范的深度解读。

在前几章中,我们已经完整地追踪了计费信息在网络功能实体(NF)之间流动的“路径”和“时机”。现在,我们将深入到这些流动的“货物”本身——计费数据——的内部结构中。我们将像一位语言学家一样,逐一解析构成5G计费“语言”的每一个“单词”和“语法”,理解它们的确切含义和用途。

由于第6章内容极其丰富,是整个计费规范的数据字典,我们将首先聚焦于6.1节,并对其进行一次完整的、系统性的解读。在开始之前,我们先快速回顾并收尾5.2节的最后两个小节。


深度解析 3GPP TS 32.255:6.1 5G数据连接计费的数据描述 (Data description)

本文技术原理深度参考了3GPP TS 32.255 V18.6.0 (2024-12) Release 18规范中,关于“6.1 Data description for 5G data connectivity charging”的核心章节,旨在为读者提供一份关于5G计费消息和CDR内容的详尽“数据字典”,全面解析其中每一个关键信息元素的含义与作用。

承前启后:计费数据的“物流”之旅 (5.2.4 & 5.2.5 简述)

在深入数据内容之前,我们先完成数据“物流”的最后两站。5.2.3节告诉我们,CDR在CHF中诞生。那么,它如何被送往最终目的地——计费中心(BD)呢?

  • 5.2.4 Ga record transfer flows:定义了CHF(作为CDF)如何将一条条生成的CDR实时或准实时地传送给计费网关(CGF)。这条“传送带”就是Ga接口。它保证了CDR能够被及时地从网络中收集起来。
  • 5.2.5 Bd CDR file transfer:定义了CGF在收集了足够多的CDR后,如何将它们打包成标准格式的话单文件(File),并通过Bd接口(通常是FTP/SFTP)批量发送给计费域(BD)。这是CDR数据进入后台处理系统的“最后一公里”。

简单来说,Ga是记录(Record)的传输,Bd是文件(File)的传输。 完成了这两步,计费数据的“旅程”才算完整。现在,让我们打开这些数据“包裹”,看看里面到底装了什么。


引言:计费“福尔摩斯”的案件卷宗

为了让枯燥的数据字段变得生动,我们引入一位新角色:运营商计费稽核部门的资深专家,“李探长”。他接到一个棘手的投诉:用户小杰声称自己上个月的“云游戏加速包”被多收了费。李探长的任务,就是通过分析SMF与CHF之间捕获的计费消息,以及最终生成的CDR,来还原事实真相,找出问题的根源。他手上的这些消息和记录,就是本章要解读的核心内容。


1. 计费交互的“信封”:消息内容概览 (6.1.1 Message contents)

The Charging Data Request and Charging Data Response are specified in TS 32.290 and include charging information. The Charging Data Request can be of type [Initial, Update, Termination].

李探长拿到的第一份证物,是SMF和CHF之间的一系列交互报文。这些报文就像一个个信封,外面标明了是Charging Data Request(SMF发给CHF的请求)还是Charging Data Response(CHF的回应),以及信件类型是[Initial][Update]还是[Termination]

Table 6.1.1.1.1: Converged charging messages reference table

MessageSourceDestination
Charging Data RequestSMF, CHFCHF
Charging Data ResponseCHFSMF, CHF

深度解析:这张表告诉我们,Request消息的发起方主要是SMF,但在高级的Inter-CHF交互中,一个CHF(如V-CHF)也可以向另一个CHF(如H-CHF)发起请求。而Response消息的发起方永远是CHF。李探长的任务,就是拆开这些“信封”,仔细检查里面的内容。


2. SMF的“呈堂证供”:Charging Data Request消息详解 (6.1.1.2)

李探长首先打开了SMF发给CHF的Charging Data Request消息。这是整个案件最原始、最关键的证据。规范中的**“Table 6.1.1.2.1: Charging Data Request message contents”**详细列出了这份“证供”的构成。我们将其分为几个逻辑部分来解读。

第一部分:案件基本信息 (Session & Subscriber Info)

Information ElementCategory (Conv.)Description
Session IdentifierOC会话标识符
Subscriber IdentifierOM用户标识符 (SUPI)
Tenant IdentifierOC租户标识符
  • 李探长的分析:这是卷宗的首页。“Subscriber Identifier”告诉他这起案件的主角是小杰(通过SUPI识别)。“Session Identifier”则是CHF为这次计费会话分配的内部ID,用于关联后续的所有UpdateTermination消息。“Tenant Identifier”则用于B2B场景,如果小杰正在使用的是公司购买的网络切片,这里就会填上他公司的ID。

第二部分:报案人信息 (NF Consumer Info)

Information ElementCategory (Conv.)Description
NF Consumer IdentificationM发起请求的网络功能信息
… (NF Name, Address, etc.)OC
Invocation TimestampM请求发起的时间戳
  • 李探长的分析:这部分记录了“报案人”——SMF——的详细信息,包括它的身份、地址、所在网络(PLMN ID)等。Invocation Timestamp则精确记录了“报案”时间。这些信息对于故障定位和多SMF场景下的问题追溯至关重要。

第三部分:核心诉求 - 用量汇报与配额申请 (Usage & Quota Info)

这是消息的核心内容,直接关系到小杰的费用问题。

Information ElementCategory (Conv.)Description
Multiple Unit UsageOC多单元使用量
├─ Rating GroupM评级组 (e.g., 云游戏)
├─ Used Unit ContainerOC已使用单元容器
│ ├─ Service IdentifierOC业务标识符
│ ├─ Quota management IndicatorOC配额管理指示
│ ├─ TriggersOC触发器
│ ├─ Uplink/Downlink VolumeOC上下行流量
├─ Requested UnitOC请求的单元 (申请配额)
PDU Container InformationOCPDU容器信息
  • 李探长的分析
    • 李探长在一条[Update]消息的Multiple Unit Usage部分找到了关键证据。
    • 他看到了一个Rating Group为“CloudGaming”的条目。
    • Used Unit Container中,他发现Uplink Volume为10MB,Downlink Volume为150MB,这记录了小杰从上次报告到现在,玩游戏实际消耗的流量。Triggers字段显示,这次上报的原因是“quotaExhausted”(配额耗尽)。
    • 紧接着,在Requested Unit部分,他看到了SMF正在为这个Rating Group申请新的一笔配额。
    • PDU Container Information则包含了更丰富的业务上下文,比如这次计费的业务是在哪个RAT类型、哪个位置发生的。

第四部分:完整的现场快照 (PDU Session Context)

除了核心的用量,Request消息还携带了大量描述PDU会话当前状态的上下文信息。

Information ElementCategory (Conv.)Description
PDU Session Charging InformationOMPDU会話计费信息 (核心)
├─ Charging IdOM计费ID
├─ User Location InfoOC用户位置信息
├─ Network Slice Instance IdentifierOM网络切片实例标识符 (S-NSSAI)
├─ RAT TypeOC无线接入技术类型
├─ Data Network Name IdentifierMDNN
Roaming QBC informationOM漫游QBC信息
  • 李探长的分析:这部分就像是案件的“现场照片”,提供了完整的上下文。李探长通过PDU Session Charging Information,可以了解到:
    • Charging Id确认了这属于小杰的哪一次上网过程。
    • User Location InfoRAT Type告诉他,这笔费用发生在5G网络下的“中央商务区”基站。
    • S-NSSAI显示,小杰正在使用运营商为“云游戏”专门优化的高性能网络切片。
    • Roaming QBC information字段的存在与否,可以让他判断这是否是一次漫游会话。

3. CHF的“判决书”:Charging Data Response消息详解 (6.1.1.3)

李探长接着分析CHF的回应消息。这是CHF对SMF请求的“判决”,直接决定了网络下一步的行为。规范中的**“Table 6.1.1.3.1: Charging Data Response message contents”**列出了其详细结构。

第一部分:判决结果 (Invocation Result)

Information ElementCategory (Conv.)Description
Invocation Result CodeOC调用结果码 (成功/失败)
Failed ParameterOC失败参数
  • 李探长的分析:这是“判决书”的结论。如果Result Code显示成功,说明请求被正常处理。如果失败,Failed Parameter会告诉SMF具体是哪个参数出了问题,便于快速定位。

第二部分:配额授权与指令 (Granted Quota & Instructions)

Information ElementCategory (Conv.)Description
Multiple Unit InformationOC多单元信息
├─ Rating GroupM评级组
├─ Granted UnitOC授予的单元 (下发配额)
│ ├─ Time / Total VolumeOC时长/流量配额
├─ Final Unit IndicationOC最终单元指示
├─ TriggersOC下发的触发器
  • 李探长的分析
    • 李探长在CHF的响应中,找到了针对“CloudGaming”这个Rating GroupMultiple Unit Information
    • Granted Unit中,他看到CHF新授予了200MB的流量配额。
    • Final Unit Indication字段如果存在,则表明这是最后一笔配额,耗尽后将执行终止行为。
    • 最关键的是Triggers字段。李探长发现,CHF在这里下发了一个新的触发器:“当用户位置进入‘家庭宽带优惠区’时,立即报告”。这表明CHF的策略是动态的,它会根据用户行为调整SMF的监控策略。

4. 最终的“结案陈词”:CDR内容详解 (6.1.3)

在分析完所有交互消息后,李探长调取了这次PDU会话最终生成的CDR。这份由CHF精心撰写的“结案报告”,汇总了整个会话期间的所有关键信息。规范中的**“Table 6.1.3.2.1: PDU session charging CHF record data”**定义了它的结构。

Information ElementCategoryDescription
Record TypeM记录类型 (CHF record)
Subscriber IdentifierOM用户标识符
NF Consumer InformationMSMF信息
List of Multiple Unit UsageOM所有用量变化的列表
Record Opening TimeM记录打开时间
DurationM记录总时长
Record Sequence NumberC记录序列号 (用于部分话单)
Cause for Record ClosingM记录关闭原因
Record ExtensionsOC记录扩展
  • 李探长的最终分析
    • CDR就像是本次计费案件的完整卷宗。它包含了小杰的身份、服务他的SMF信息。
    • List of Multiple Unit Usage字段最为庞大,它是一个列表,详细记录了在整个会话期间,每一次[Update]交互上报的用量信息,以及每次变化发生的时间、地点、原因等。李探长可以像看电影回放一样,追溯小杰的完整使用轨迹。
    • Record Opening TimeDuration记录了这次服务的起止时间。
    • Record Sequence Number的存在,让他可以判断这是否是一份部分话单,并能找到它的“前篇”和“后篇”。
    • Cause for Record Closing字段最终告诉他,这次会话是因为“用户正常释放”而结束的。

通过对这份CDR的完整分析,李探长最终发现,是由于小杰在一次SSC Mode 3切换中,新旧SMF之间的上下文传递出现了微小偏差,导致一小部分游戏流量被错误地计入了通用流量的Rating Group。案件告破!


文章结尾

通过扮演“李探长”的角色,我们对6.1节所定义的5G计费数据结构进行了一次彻底的“勘查”。我们理解了,计费的精确性,源于其数据结构的严谨性。

  • Charging Data Request是SMF提交的、包含丰富现场上下文的“证据”。
  • Charging Data Response是CHF下发的、包含授权和新指令的“判决”。
  • CDR是CHF最终生成的、记录了案件全过程的、不可篡改的“历史档案”。

掌握了这份“数据字典”,我们才算真正掌握了5G计费的语言。在接下来的文章中,我们将继续深入第6章的后续部分,探索在更复杂的场景下(如漫游、互操作),这些数据结构会发生哪些有趣的扩展和变化。

FAQ环节

Q1:Charging Data Request/Response消息和CDR有什么区别? A1:它们是过程和结果的关系。Charging Data Request/Response是SMF和CHF之间在会话过程中的实时交互消息,用于报告用量、申请配额和传递指令,是动态的、过程性的。而CDR是由CHF生成的最终产物,它汇总了整个计费会话期间所有交互的关键信息,形成一份静态的、完整的、用于事后审计和出账的记录。

Q2:在这些表格中,“Category”列的M, O, C代表什么?为什么这么重要? A2:它们代表了字段的强制性等级:**M (Mandatory)**表示该字段必须存在;**O (Optional)**表示该字段可选;**C (Conditional)**表示该字段在特定条件下必须存在。这对于设备开发和互联互通至关重要。例如,Subscriber Identifier在正常会话中是M,但在紧急会话中可能是O。遵循这些规则,才能保证不同厂商的SMF和CHF能够正确地“对话”。

Q3:PDU Session Charging InformationPDU Container Information看起来很像,有什么区别? A3:PDU Session Charging Information包含的是描述整个PDU会话的、相对静态的属性,如PDU Session ID、DNN、S-NSSAI等,这些信息在会话生命周期内通常不変。而PDU Container Information(作为Used Unit Container的一部分)包含的是描述某一段具体使用量发生时的动态上下文,如这段流量发生时的RAT类型、用户位置、业务流的QoS等。前者是“户口本”,后者是“事件快照”。

Q4:为什么计费消息中需要包含如此详细的NF(网络功能)信息,比如SMF的名字、地址? A4:这主要是为了可追溯性(Traceability)和故障定位。在一个大型运营商网络中,可能有成百上千个SMF实例。当计费出现问题时,详细的NF信息可以帮助运维人员快速定位到是哪个具体的SMF实例上报的数据有误。在复杂的分布式或漫游场景下,这些信息更是还原完整信令链路、诊断问题的关键。

Q5:CHF生成的CDR最终去了哪里?它和我的手机账单是什么关系? A5:CHF生成的CDR会经过CGF(计费网关)的收集和打包,最终以话单文件的形式发送到运营商的计费域(BD)。在BD中,这些原始、详细的CDR会经过一系列后台系统的处理,包括:批价(根据您的套餐,为每一条记录计算费用)、合帐(将您名下所有服务的费用合并)、出账(生成您最终看到的账单)。所以,CDR是您手机账单最原始的数据源。