1.1 什么是URSP
URSP(UE Route Selection Policy)是5G系统架构中由PCF下发到UE的一组路由选择策略规则。每条URSP规则定义了一个"流量描述符"到"路由选择描述符"的映射关系,告诉UE:"当你检测到某种类型的流量时,应该通过哪个切片、哪个DNN、哪种SSC模式来发送。"
1.2 本篇测试场景
本篇的测试场景是:UE已经成功注册到5G网络(前3篇中任一场景),现在需要获取URSP策略。UE主动发起UE Policy关联建立请求,PCF根据UE的签约信息和运营商策略生成URSP规则,并通过NAS信令下发到UE。
2 协议规范与关键技术
2.1 核心协议参考
| 协议 |
关键内容 |
| TS 23.501 |
URSP架构定义、流量描述符和路由选择描述符的结构 |
| TS 29.513 |
PCF策略控制服务接口,Npcf_UEPolicyControl服务定义 |
| TS 29.507 |
AMF暴露给PCF的服务接口(Namf_Communication) |
| TS 24.526 |
URSP规则的编码格式、UE端的规则处理行为 |
| TS 24.501 |
NAS层UL/DL NAS Transport消息中携带UE Policy Container的机制 |
2.2 URSP规则结构
每条URSP规则由三部分组成:
(1)规则优先级(Rule Precedence)
数值越小优先级越高。UE按照优先级顺序匹配规则,使用第一条匹配成功的规则。
(2)流量描述符(Traffic Descriptor)
描述需要匹配的应用流量特征,包含以下可选组件:
| 组件 |
说明 |
示例 |
| Application ID |
OS应用标识 |
com.example.videoapp |
| IP描述符 |
目标IP/前缀 |
10.0.1.0/24 |
| 域名描述符 |
目标域名 |
.video.example.com |
| 非 IP描述符 |
Non-IP流量类型 |
TSN流量 |
| DNN |
数据网络名称 |
internet |
| 连接能力 |
连接类型 |
IMS、internet、suceedeliveries |
(3)路由选择描述符(Route Selection Descriptor)
匹配成功后,UE应使用的路由参数:
| 组件 |
说明 |
示例 |
| S-NSSAI |
切片标识 |
SST=2(URLLC切片) |
| DNN |
数据网络名称 |
internet |
| SSC Mode |
会话和服务连续性模式 |
SSC Mode 1 |
| PDU Session Type |
PDU会话类型 |
IPv4、IPv6、Ethernet |
| Access Type |
接入类型 |
3GPP、Non-3GPP |
| Multi-Access |
是否允许多接入PDU |
是/否 |
| RAT Type |
无线接入技术 |
NR、EUTRA |
2.3 URSP策略交互涉及的关键接口
| 接口 |
方向 |
用途 |
| N1 NAS(UE-AMF) |
双向 |
承载UE Policy Container |
| Npcf_UEPolicyControl |
AMF-PCF |
UE策略关联的创建和管理 |
| Namf_Communication |
PCF-AMF |
PCF订阅和下发N1消息 |
| Namf_N1MessageNotify |
AMF-PCF |
AMF向PCF报告UE上传的消息 |
2.4 PCF中的URSP策略配置
PCF根据以下信息生成URSP规则:
-
运营商预配置的策略模板:PCF上配置的默认URSP规则
-
UE签约数据:从UDM获取的UE切片签约信息(Subscribed NSSAI)
-
UE当前状态:Allowed NSSAI、已建立的PDU会话等
-
本地策略决策:PCF根据运营商策略进行的动态调整
3 消息流程与详细解读
3.1 URSP策略交互完整流程
sequenceDiagram
participant UE as UE终端
participant AMF as AMF
participant PCF as PCF
UE->>AMF: UL NAS Transport<br/>携带UE Policy Container
AMF->>AMF: 解析UE Policy Container<br/>决定建立UE Policy关联
AMF->>PCF: Npcf_UEPolicyControl_Create Request
PCF-->>AMF: 201 Created<br/>返回策略决策
PCF->>AMF: Namf_Communication_N1N2MessageSubscribe<br/>订阅UPDP类型的N1消息
AMF-->>PCF: 201 Created<br/>订阅成功
PCF->>AMF: Namf_Communication_N1N2MessageTransfer<br/>携带n1MessageContainer(含URSP规则)
AMF->>UE: DL NAS Transport<br/>携带UE Policy Container(含URSP)
UE->>AMF: UL NAS Transport<br/>携带UE Policy Container(确认)
AMF->>PCF: Namf_N1MessageNotify<br/>携带n1MessageNotification
PCF->>PCF: 更新策略状态
3.2 流程详细解读
步骤1:UE发起UE Policy Container上传
UE在成功注册到网络后,向AMF发送UL NAS Transport消息,消息中的Payload Container Type指示为"UE Policy Container"。UE Policy Container中可能包含:
步骤2:AMF决定建立UE Policy关联
AMF收到UE Policy Container后,检查是否已存在该UE的UE Policy关联。如果不存在,AMF决定向PCF发起策略关联建立请求。
AMF在决定过程中需要确定:
步骤3:AMF向PCF创建UE Policy关联
AMF向PCF发送Npcf_UEPolicyControl_Create Request,请求消息中包含:
| 参数 |
说明 |
| SUPI |
UE的永久标识 |
| GPSI |
UE的外部标识 |
| Access Type |
当前接入类型(3GPP/Non-3GPP) |
| UE Policy Container |
UE上传的策略容器 |
| Allowed NSSAI |
UE当前允许的切片 |
| User Location |
UE当前位置信息 |
| Serving PLMN |
当前服务PLMN |
| RAT Type |
无线接入技术类型 |
PCF收到请求后,根据运营商策略和UE签约信息生成URSP规则,返回201 Created响应。
步骤4:PCF订阅N1消息
PCF向AMF发送Namf_Communication_N1N2MessageSubscribe请求,订阅类型为UPDP(UE Policy Delivery Procedure)的N1消息。这样当UE后续上传UE Policy Container时,AMF可以及时通知PCF。
AMF确认订阅成功,返回201 Created。
步骤5:PCF下发URSP规则
PCF通过Namf_Communication_N1N2MessageTransfer向AMF发送URSP规则。消息中的n1MessageContainer包含UE Policy Container(内含URSP规则)。
步骤6:AMF转发URSP到UE
AMF通过DL NAS Transport消息将UE Policy Container(含URSP规则)发送给UE。DL NAS Transport消息的关键参数:
| 参数 |
说明 |
| Payload Container Type |
N1 SM Information或UE Policy |
| Payload Container |
URSP规则编码 |
步骤7:UE确认接收URSP
UE收到URSP规则后,进行以下处理:
-
解析URSP规则,检查规则的有效性
-
按优先级排序URSP规则
-
保存URSP规则供后续流量匹配使用
-
生成确认信息,通过UL NAS Transport发送给AMF
步骤8:AMF通知PCF
AMF收到UE的确认后,通过Namf_N1MessageNotify将UE上传的n1MessageNotification转发给PCF。PCF据此更新策略关联状态。
3.3 URSP规则处理流程(UE侧)
flowchart TD
A[UE收到URSP规则] --> B[解析URSP规则列表]
B --> C[检查每条规则的优先级和有效性]
C --> D[保存到本地URSP存储]
D --> E[UE上应用发起网络请求]
E --> F[匹配流量描述符]
F --> G{找到匹配的URSP规则}
G -->|是| H[提取路由选择描述符]
G -->|否| I[使用默认路由]
H --> J{对应的PDU Session是否已存在}
J -->|是| K[复用已有PDU Session]
J -->|否| L[按路由描述符建立新PDU Session]
L --> M[使用指定的S-NSSAI和DNN]
K --> N[发送应用数据]
M --> N
I --> N
4 关键信令参数分析
4.1 UL NAS Transport消息(UE发起)
NAS-MSG:
Protocol Discriminator: 5GS Mobility Management
Message Type: UL NAS Transport (0x67)
Payload Container Type: UE Policy Container (0x5)
Payload Container:
UE Policy Container:
UE Policy Provisioning Request
[UE请求获取URSP策略]
Additional Information: [可选]
Request Type: Initial Request
4.2 Npcf_UEPolicyControl_Create Request
| 参数 |
脱敏后取值 |
说明 |
| supi |
4608800000XXXXXX |
UE永久标识 |
| gpsi |
86138000XXXXXX |
UE外部标识 |
| accessType |
3GPP_ACCESS |
接入类型 |
| servingPlmn |
46088 |
服务PLMN |
| ratType |
NR |
无线接入技术 |
| userLocation |
TAI: 46088-XXXX, Cell: XXXXXX |
UE位置 |
| uePolicyContainer |
Base64编码的UE策略容器 |
UE上传的策略数据 |
| allowedNssai |
SST=1/SD=010203, SST=3 |
UE当前允许的切片 |
4.3 URSP规则示例(PCF下发)
PCF下发的URSP规则通常包含多条规则,以下是一个典型的URSP规则集(脱敏后):
规则1(优先级最高:IMS语音)
| 字段 |
取值 |
| Rule Precedence |
1 |
| Traffic Descriptor |
Connection Capability = IMS |
| Route Selection Descriptor |
S-NSSAI=SST=1/SD=010203, DNN=ims, SSC Mode=1, PDU Type=IPv4v6 |
规则2(URLLC业务)
| 字段 |
取值 |
| Rule Precedence |
2 |
| Traffic Descriptor |
Application ID = app1.operator.com, IP Descriptor = 10.0.1.0/24 |
| Route Selection Descriptor |
S-NSSAI=SST=2, DNN=internet, SSC Mode=2, PDU Type=IPv6 |
规则3(默认Internet)
| 字段 |
取值 |
| Rule Precedence |
3 |
| Traffic Descriptor |
DNN = internet |
| Route Selection Descriptor |
S-NSSAI=SST=1/SD=010203, DNN=internet, SSC Mode=1, PDU Type=IPv4v6 |
规则4(物联网应用)
| 字段 |
取值 |
| Rule Precedence |
4 |
| Traffic Descriptor |
Application ID = app3.operator.com |
| Route Selection Descriptor |
S-NSSAI=SST=3, DNN=iot, SSC Mode=3, PDU Type=IPv4 |
规则5(默认路由)
| 字段 |
取值 |
| Rule Precedence |
255(最低优先级,匹配所有) |
| Traffic Descriptor |
匹配所有流量 |
| Route Selection Descriptor |
S-NSSAI=SST=1/SD=010203, DNN=internet, SSC Mode=1 |
4.4 DL NAS Transport消息(URSP下发)
NAS-MSG:
Protocol Discriminator: 5GS Mobility Management
Message Type: DL NAS Transport (0x68)
Payload Container Type: UE Policy Container (0x5)
Payload Container:
UE Policy Container:
URSP Rules:
Rule 1: Precedence=1, TD=IMS, RSD=SST=1/SD=010203+ims+SSC1
Rule 2: Precedence=2, TD=app1+10.0.1.0/24, RSD=SST=2+internet+SSC2
Rule 3: Precedence=3, TD=internet, RSD=SST=1/SD=010203+internet+SSC1
Rule 4: Precedence=4, TD=app3, RSD=SST=3+iot+SSC3
Rule 5: Precedence=255, TD=match-all, RSD=SST=1/SD=010203+internet
5 测试验证与数据解读
5.1 接口消息跟踪分析
通过信令跟踪工具,可以捕获到完整的UE-AMF-PCF交互过程。以下是脱敏后的关键数据:
AMF-PCF接口跟踪(Npcf_UEPolicyControl_Create):
Request:
POST /npcf-ue-policy-control/v1/policies
Body:
{
"supi": "4608800000XXXXXX",
"gpsi": "86138000XXXXXX",
"accessType": "3GPP_ACCESS",
"ratType": "NR",
"servingPlmn": {"mcc": "460", "mnc": "88"},
"allowedNssai": [
{"sst": 1, "sd": "010203"},
{"sst": 3}
],
"uePolicyContainer": {
"uePolicyProvisioningRequest": {}
}
}
Response:
201 Created
Body:
{
"uePolicy": {
"urspRules": [...]
}
}
PCF-AMF订阅消息(Namf_Communication_N1N2MessageSubscribe):
Request:
POST /namf-comm/v1/ue-contexts/4608800000XXXXXX/n1-n2-messages/subscriptions
Body:
{
"n1MessageClass": "UPDP",
"n1n2NotifySubscription": true
}
Response:
201 Created
PCF下发URSP(Namf_Communication_N1N2MessageTransfer):
Request:
POST /namf-comm/v1/ue-contexts/4608800000XXXXXX/n1-n2-messages
Body:
{
"n1MessageContainer": {
"n1MessageClass": "UPDP",
"n1MessageContent": {
"contentId": "ue-policy-container"
}
}
}
Response:
200 OK
5.2 关键分析点
-
PCF根据Allowed NSSAI生成URSP:PCF在生成URSP规则时,只使用UE当前Allowed NSSAI中的S-NSSAI。例如,如果UE的Allowed NSSAI包含SST=1/SD=010203和SST=3,PCF只会为这两个切片生成路由描述符,不会包含UE签约但未Allowed的切片。
-
优先级机制确保精确匹配:URSP规则按优先级顺序匹配。IMS流量优先匹配SST=1/SD=010203+ims,物联网应用匹配SST=3+iot,其余流量走默认规则。这种分层匹配确保了不同业务获得最合适的网络切片。
-
UPDP订阅实现持续策略管理:PCF通过订阅UPDP类型的N1消息,可以持续监控UE的策略执行状态。当UE的Allowed NSSAI发生变化(如切换到新切片)时,PCF可以主动更新URSP规则。
5.3 AMF CLI验证
在AMF上查看UE策略信息(脱敏后):
AMF-Version# show ue policy supi 4608800000XXXXXX
UE Policy Information:
SUPI : 4608800000XXXXXX
PCF Association:
Policy Control URI: http://10.0.1.100:8081/npcf-ue-policy-control/v1/policies/pol-001
Status: Active
Create Time: 2026-04-17 14:30:00
N1 Message Subscription:
N1MessageClass: UPDP
Subscription Status: Active
UE Policy Container (last received):
Type: UE Policy Provisioning Request
Timestamp: 2026-04-17 14:30:01
Last DL Policy Delivery:
Type: URSP Rules
Rule Count: 5
Timestamp: 2026-04-17 14:30:05
Last UL Policy Confirmation:
Type: UE Policy Provisioning Result
Result: Success
Timestamp: 2026-04-17 14:30:12
5.4 URSP在切片端到端流程中的位置
将本篇与前3篇结合,我们可以看到完整的切片端到端流程:
1. UE初始注册 → 获取Allowed NSSAI(第1-3篇)
2. UE获取URSP策略 → 知道应用与切片的映射关系(本篇)
3. UE发起PDU Session → 根据URSP选择切片和DNN建立会话
4. UE发送应用数据 → 通过正确的切片路由到目标网络
6 小结与思考
6.1 本篇小结
本篇详细分析了UE与PCF交互获取URSP策略的全流程。核心要点如下:
-
URSP是应用与切片之间的桥梁:URSP规则将应用层流量特征映射到网络层切片参数,解决了"应用不知道用哪个切片"的问题。
-
PCF是策略的核心决策点:PCF根据运营商策略、UE签约数据和当前网络状态,动态生成最适合的URSP规则。不同用户可能获得不同的URSP策略。
-
NAS Transport消息是策略传输通道:URSP规则通过NAS层的DL/UL NAS Transport消息在UE和AMF之间传输,AMF作为中继连接PCF。
-
策略关联的持续管理:通过PCF订阅N1消息,实现了策略的持续管理。当网络条件变化时,PCF可以主动更新URSP规则。
6.2 延伸思考
问题1:如果PCF下发的URSP中引用了UE当前Allowed NSSAI之外的S-NSSAI怎么办?
这是一个异常场景。根据TS 23.501,PCF应基于UE当前的Allowed NSSAI生成URSP规则。如果PCF错误地引用了不在Allowed NSSAI中的切片,UE在尝试建立PDU Session时将被SMF拒绝。实际网络中,PCF应通过AMF获取最新的Allowed NSSAI来避免此问题。
问题2:UE能否本地配置URSP规则?
是的。除了PCF下发的URSP规则外,UE还可以在USIM或ME中预配置URSP规则。当PCF下发的URSP规则与本地配置冲突时,PCF下发的规则优先级更高。本地URSP通常用于覆盖PCF策略不可用的场景(如漫游到不支持URSP的网络)。
问题3:URSP规则何时需要更新?
以下场景会触发URSP规则更新:
更新过程通过PCF主动下发新的URSP规则(Push模式)或UE重新发起Policy关联(Pull模式)完成。