百科全书
2026-09-02 18:24:11
5GC SBI通用数据类型如何工作?
介绍5G核心网SBI通用数据类型如何在不同网络功能之间统一JSON参数,涵盖标识符、网络数据、QoS、计费、跟踪、结构化对象以及实际API故障排查。

贝克电信

5GC SBI通用数据类型如何工作?

在排查5G核心网服务化接口(SBI)问题时,很多工程师都会遇到同一个难点。从AMF发送到SMF的请求体中,可能已经包含SUPI、DNN、S-NSSAI、TAI、PDU Session ID和5QI等熟悉字段,但要判断这条消息是否真正有效,仍然并不简单。一个字段应该编码为字符串还是整数?它是否有规定的取值范围?任何值都可以使用,还是必须从预定义枚举中选择?一个对象内部是否还能包含其他嵌套参数?

这些问题由SBI通用数据类型来定义。服务化接口覆盖AMF、SMF、UDM、PCF和NRF等网络功能,但许多底层参数并不专属于某一个NF。如果每项服务都各自定义这些值,规范中就会产生大量重复内容,同一个用户标识符或QoS参数也可能在不同API中采用不同表示方式。因此,分析SBI流量不能只检查HTTP方法和资源URI。HTTP/2规定请求如何传输,JSON规定数据如何表示,而通用数据类型回答的是一个更基础的问题:每个JSON参数必须遵循什么格式和校验规则。

通用数据类型解决了什么问题?

可以把它们理解为整个5GC服务化API环境共享的一套“数据词汇表”。某个数据类型可能出现在AMF请求中,也可能被SMF、UDM或PCF引用。它不属于单一接口,而是提供一套可以在多项服务之间复用的标准化定义。

以IPv4地址为例,每个NF都不应该自行定义如何用字符串表示地址。PLMN信息也是如此,其中MCC和MNC有明确的长度与格式要求;SUPI、GPSI、PEI等用户和设备标识符也各自遵循规定的编码规则。统一定义使不同NF之间的RESTful API能够可靠交换信息。

通用数据类型还应与NF专用类型区分开来。通用类型用于描述会在多个接口中反复出现的对象,而某个特定网络功能独有的业务对象,则在相应的29系列规范中定义。实际使用中,一项SBI API往往会同时引用这两类数据类型。

它们的范围远不止网络地址。通用定义还覆盖通用参数、签约与身份信息、5G网络数据、QoS、计费、跟踪信息以及其他可复用对象。它们共同构成SBI消息参数的基础数据模型。

AMF、SMF、UDM和PCF共享的5G核心网SBI通用数据类型,涵盖标识符、网络信息、QoS、计费和跟踪参数
SBI通用数据类型为5G核心网不同网络功能提供一致的数据表示方式,使标识符、位置信息、QoS参数和计费数据能够在多个服务接口之间复用。

三种基本数据结构有什么区别?

从结构上看,SBI参数通常可以分为三类:简单数据类型、枚举类型和结构化数据类型。理解这三类结构比死记具体参数名称更有用,因为在Wireshark抓包、API文档和OpenAPI定义中看到的大多数字段都可以归入这个模型。

简单数据类型是最底层的构建单元,包括字符串、整数、数值、日期、日期时间和布尔值。在5GC中,这些基础类型通常还会附加取值范围、编码格式或正则表达式等约束。

例如,IPv4地址在技术上以字符串表示,但并不是任意字符串都有效,它必须符合规定的IPv4格式。IPv6地址、IPv6前缀和MAC地址也各自有格式要求。Uint16、Uint32和Uint64规定无符号整数的取值范围。URI必须符合URI格式规则,DateTime值则必须使用规定的日期时间格式。

规范中还经常定义带Rm后缀的类型,例如Ipv4AddrRm、DateTimeRm和Uint32Rm。这些类型与对应基础类型使用相同的底层格式,但加入OpenAPI的nullable属性,因此字段可以携带null值。

枚举类型类似多选一字段:取值必须从预定义集合中选择。例如AccessType用于区分3GPP_ACCESS和NON_3GPP_ACCESS;PduSessionType可以取IPV4、IPV6、IPV4V6、UNSTRUCTURED或ETHERNET;CoreNetworkType可以表示5GC或EPC。

枚举的目的在于消除歧义。调用方不能自行创造一个含义相近但未定义的字符串,而必须使用规范明确规定的值。这是故障排查中很常见的情况:字段名完全正确,但枚举值无效,因此API仍然会拒绝请求或错误解释请求。

结构化数据类型把多个属性组合成一个完整对象。这些属性本身还可以引用简单类型、枚举类型或其他结构化对象,从而形成层级化模型。

ProblemDetails就是典型示例,它可以包含type、title、status、detail、instance、cause和invalidParams等字段。TAI也是结构化对象,由PLMN ID与TAC组合而成;GUAMI更进一步,由PLMN ID与AMF ID组成。到了这一层,SBI分析不能只看单个字段,还要关注对象内部各属性之间的关系。

身份和网络参数是如何逐层构建的?

在真实抓包中,签约、身份和5G网络相关数据是最常见的SBI参数之一。SUPI用于标识用户,GPSI表示外部用户身份,PEI表示永久设备标识符,DNN标识数据网络,NF Instance ID则唯一标识一个NF实例。

这些字段大多看起来只是简单字符串,但真正重要的是字符串内部的编码规则。SUPI可以包含IMSI或NAI形式,GPSI可以包含MSISDN或External Identifier。换句话说,被定义为字符串,并不意味着任意字符串都有效。

5G网络相关类型在这些基础标识符之上构建会话和位置信息。PduSessionId用于标识一个PDU Session;MCC和MNC构成PLMN身份的一部分;TAC标识Tracking Area Code;NrCellId和EutraCellId分别标识NR和E-UTRA小区。

结构化对象再把这些基础参数组合成更高层的数据模型。S-NSSAI通过SST和可选SD表示网络切片;TAI由PLMN ID和TAC组成;NCGI把PLMN ID与NR Cell ID组合起来标识NR小区,ECGI则对E-UTRA发挥类似作用。

UserLocation是更高层的抽象。根据接入类型,它可以携带NR Location、E-UTRA Location或Non-3GPP Access Location。一个NR Location本身还可以包含TAI、NCGI、位置时间戳和地理信息。

这体现了SBI数据模型的模块化设计。先把MCC、MNC、TAC和Cell ID等基础元素标准化,再组合成PLMN ID、TAI、NCGI和UserLocation等高层对象。API可以直接复用这些对象,而不需要每项服务都重新定义整套位置参数。

5GC SBI数据模型展示SUPI、GPSI、PLMN ID、TAI、S-NSSAI、NCGI和UserLocation如何从基础字段构建成结构化5G网络对象
5GC网络数据采用层级模型:先标准化基础标识符和网络代码,再组合为TAI、NCGI、S-NSSAI和UserLocation等更复杂对象。

为什么QoS、计费和跟踪数据也必须标准化?

SBI流量传递的内容远不止用户身份和网络位置。QoS策略、使用信息以及网络跟踪数据同样会在多个NF之间流转,因此这些值也必须采用一致的数据定义。

在QoS参数中,QFI用于标识QoS Flow,5QI表示5G QoS Identifier,BitRate通过数值和单位表示速率,Packet Delay Budget表示时延预算,Packet Error Rate和Packet Loss Rate用于描述传输质量。

QoS策略同样使用大量枚举类型。PreemptionCapability表示某项业务是否可以抢占分配给其他业务的资源;PreemptionVulnerability表示现有资源是否可能被更高优先级业务抢占;QosResourceType则区分NON_GBR、NON_CRITICAL_GBR和CRITICAL_GBR等取值。

这些基础字段随后组合成ARP、AMBR、Dynamic 5QI和Non-Dynamic 5QI等结构化对象,使SMF、PCF以及其他相关网络功能在交换优先级、比特率、时延和抢占行为等概念时可以使用同一种表示方式。

计费数据采用相同的设计原则。ChargingId、RatingGroup和ServiceId属于较直接的简单数据类型,而QoSFlowUsageReport可以包含QFI、采集起止时间戳以及上行和下行流量;VolumeTimedReport则可以表示某个定义时间区间内的PDU Session使用量。

跟踪相关类型用于统一网络跟踪信息。TraceDepth通过枚举值描述不同跟踪深度,TraceData则组合Trace Reference、Trace Depth和NE Type等参数,避免每个NF都自行定义一套彼此不兼容的跟踪字段。

这些例子说明,通用数据类型并不只是标准化“几个JSON字段”,而是在标准化不同核心网服务如何理解相同的业务和网络概念。如果QoS、位置、计费信息或用户标识符需要在多个NF之间传递,就必须先拥有一致的数据模型。

如何在实际故障排查中使用数据类型?

工程中一个非常常见的错误,是检查JSON消息时只看某个字段是否存在,却不检查它的数据类型及相关约束。更有效的方法是把HTTP层和数据模型放在一起分析。

先确认正在调用哪项服务以及资源URI,然后在请求体或响应体中找到目标字段。找到以后不要只停留在字段值本身,还要检查它引用了哪种数据类型、是必选还是可选、Cardinality是多少、是否属于枚举类型,以及是否存在格式或Pattern限制。

一个IPv4字段在人眼看来可能像IP地址,但如果不满足规范规定的格式,它仍然属于无效输入。同样,PduSessionType的某个值即使自然语言含义可以理解,只要不属于规范定义的枚举值,就不符合API定义。

对结构化数据应递归展开分析。看到UserLocation时,要确认对象中包含的是NR、E-UTRA还是Non-3GPP位置信息;看到TAI时,要检查PLMN ID和TAC;看到S-NSSAI时,要检查SST和可选SD。只有逐层追踪类型引用,才能判断JSON对象是否真正符合API模型。

当服务器拒绝请求时,也值得重点查看ProblemDetails。除HTTP状态码之外,它还可以提供detail、cause和invalidParams信息。如果这些字段存在,排查就可以直接从违反API要求的具体参数入手,而不必停留在笼统的HTTP 4xx响应上。

5GC工程师通过检查API资源、字段类型、枚举值、Cardinality、格式约束和ProblemDetails排查SBI JSON消息
排查SBI接口不能只确认JSON字段是否存在,还应校验数据类型、枚举值、必选条件、Cardinality以及格式约束。

为什么数据模型思维比记忆参数表更有用?

5GC SBI通用数据类型数量很多,如果试图记住每一个字段、正则表达式和取值范围,很快就会变得低效。更好的方法是建立数据模型思维:简单类型定义最小数据单元,枚举限制合法状态,结构化类型则把这些单元组合成可以被5GC服务直接使用的对象。

在这个框架下,SUPI、MCC、TAC和QFI不再是孤立参数,而是构建用户、位置、会话、QoS、计费和跟踪模型的基础模块。不同NF能够通过SBI一致地调用服务,一个重要原因就是这些通用类型提供了稳定且可复用的数据语义。

因此,在阅读一个陌生的5GC API时,最有价值的第一个问题不应该是“这条消息有多少个字段?”,而应先确认这些字段引用了哪些类型、对象如何嵌套,以及哪些约束决定最终JSON是否有效。掌握这种方法后,即使面对从未见过的SBI服务,也可以沿着OpenAPI和数据类型定义逐层分析,而不必重新背诵整张参数表。

常见问题

哪份3GPP规范定义了SBI通用数据类型?

它们主要定义在TS 29.571《5G System; Common Data Types for Service Based Interfaces》中。该规范定义了在多项SBI服务之间共享和复用的数据结构。NF专用服务和数据类型则定义在相应的29.5xx系列规范中,例如SMF服务使用TS 29.502,UDM服务使用TS 29.503。

OpenAPI的nullable属性在实际JSON消息中如何体现?

被定义为nullable的字段,通常通过带Rm后缀的类型实现,可以在JSON消息体中显式携带null值,表示当前没有有效值被赋予。这与字段完全不存在并不相同。字段缺失可能意味着该参数不适用或未提供,而显式null可以具有特定语义,例如清除之前已配置的值。

不同厂商的SBI通用数据类型会不一样吗?

在规范层面,这些定义是标准化的,但真实产品中仍可能出现实现差异。有些厂商可能只实现部分可选字段,某些API可能包含厂商专用扩展,对枚举值校验的严格程度也可能不同。这些差异是互操作测试中常见的重点排查项。

如何快速判断一个字段使用的是通用类型还是NF专用类型?

最直接的方法是查看OpenAPI定义中的$ref路径。如果引用指向TS 29.571定义的通用schema,通常就是共享的SBI数据类型;如果指向当前服务规范内部定义的schema,一般就是NF专用类型。熟悉SUPI、TAI、S-NSSAI和ProblemDetails等常见复用类型,也有助于在抓包分析时快速识别。

抓包中Rm类型与普通类型有什么区别?

当取值不是null时,两者的JSON表示实际上相同,因为它们使用相同的底层格式。区别存在于OpenAPI模型层:Rm类型允许字段包含null。如果抓到的字段显式携带null值,它必然使用了可空定义;如果字段携带的是正常有效值,仅凭这个值本身无法判断schema引用的是普通类型还是对应的Rm类型。

推荐产品
目录
客服 电话
We use cookie to improve your online experience. By continuing to browse this website, you agree to our use of cookie.

Cookies

This Cookie Policy explains how we use cookies and similar technologies when you access or use our website and related services. Please read this Policy together with our Terms and Conditions and Privacy Policy so that you understand how we collect, use, and protect information.

By continuing to access or use our Services, you acknowledge that cookies and similar technologies may be used as described in this Policy, subject to applicable law and your available choices.

Updates to This Cookie Policy

We may revise this Cookie Policy from time to time to reflect changes in legal requirements, technology, or our business practices. When we make updates, the revised version will be posted on this page and will become effective from the date of publication unless otherwise required by law.

Where required, we will provide additional notice or request your consent before applying material changes that affect your rights or choices.

What Are Cookies?

Cookies are small text files placed on your device when you visit a website or interact with certain online content. They help websites recognize your browser or device, remember your preferences, support essential functionality, and improve the overall user experience.

In this Cookie Policy, the term “cookies” also includes similar technologies such as pixels, tags, web beacons, and other tracking tools that perform comparable functions.

Why We Use Cookies

We use cookies to help our website function properly, remember user preferences, enhance website performance, understand how visitors interact with our pages, and support security, analytics, and marketing activities where permitted by law.

We use cookies to keep our website functional, secure, efficient, and more relevant to your browsing experience.

Categories of Cookies We Use

Strictly Necessary Cookies

These cookies are essential for the operation of the website and cannot be disabled in our systems where they are required to provide the service you request. They are typically set in response to actions such as setting privacy preferences, signing in, or submitting forms.

Without these cookies, certain parts of the website may not function correctly.

Functional Cookies

Functional cookies enable enhanced features and personalization, such as remembering your preferences, language settings, or previously selected options. These cookies may be set by us or by third-party providers whose services are integrated into our website.

If you disable these cookies, some services or features may not work as intended.

Performance and Analytics Cookies

These cookies help us understand how visitors use our website by collecting information such as traffic sources, page visits, navigation behavior, and general interaction patterns. In many cases, this information is aggregated and does not directly identify individual users.

We use this information to improve website performance, usability, and content relevance.

Targeting and Advertising Cookies

These cookies may be placed by our advertising or marketing partners to help deliver more relevant ads and measure the effectiveness of campaigns. They may use information about your browsing activity across different websites and services to build a profile of your interests.

These cookies generally do not store directly identifying personal information, but they may identify your browser or device.

First-Party and Third-Party Cookies

Some cookies are set directly by our website and are referred to as first-party cookies. Other cookies are set by third-party services, such as analytics providers, embedded content providers, or advertising partners, and are referred to as third-party cookies.

Third-party providers may use their own cookies in accordance with their own privacy and cookie policies.

Information Collected Through Cookies

Depending on the type of cookie used, the information collected may include browser type, device type, IP address, referring website, pages viewed, time spent on pages, clickstream behavior, and general usage patterns.

This information helps us maintain the website, improve performance, enhance security, and provide a better user experience.

Your Cookie Choices

You can control or disable cookies through your browser settings and, where available, through our cookie consent or preference management tools. Depending on your location, you may also have the right to accept or reject certain categories of cookies, especially those used for analytics, personalization, or advertising purposes.

Please note that blocking or deleting certain cookies may affect the availability, functionality, or performance of some parts of the website.

Restricting cookies may limit certain features and reduce the quality of your experience on the website.

Cookies in Mobile Applications

Where our mobile applications use cookie-like technologies, they are generally limited to those required for core functionality, security, and service delivery. Disabling these essential technologies may affect the normal operation of the application.

We do not use essential mobile application cookies to store unnecessary personal information.

How to Manage Cookies

Most web browsers allow you to manage cookies through browser settings. You can usually choose to block, delete, or receive alerts before cookies are stored. Because browser controls vary, please refer to your browser provider’s support documentation for details on how to manage cookie settings.

Contact Us

If you have any questions about this Cookie Policy or our use of cookies and similar technologies, please contact us at support@becke.cc .