聚焦 3GPP TS 38.413 NGAP 的 OVERLOAD START / OVERLOAD STOP 基本过程,并联通 TS 29.500 的 SBI 过载控制机制,从触发、信令IE、gNB侧行为到抓包排错,逐层拆解核心网"减负"的具体协议机制。
在5G网络中,AMF(Access and Mobility Management Function)是所有 UE 接入核心网的"第一道关口"。无论是初始注册、服务请求、移动性注册更新,还是周期性注册,所有 NAS 信令都必须先穿越 NG-RAN 的 N2 接口抵达 AMF。当出现信令风暴(如大型集会、节假日、灾害后位置区集中更新、IoT 海量设备并发接入)时,AMF 的 CPU、内存、数据库连接、UDM/UDR 查询队列会迅速饱和。如果此时 AMF 只是简单地"丢弃"或"超时"信令,会导致 UE 无差别重试,进一步加剧风暴,形成雪崩效应(avalanche effect)。
为避免这种灾难性正反馈,3GPP 在控制面设计了两级闭环过载控制:
OVERLOAD START 基本过程,通知 NG-RAN(gNB)"我扛不住了,请你按我给的策略,在接入侧就帮我挡掉一部分信令"。这是面向无线接入网的减负链路。503 Service Unavailable + Retry-After + RFC 7807 Problem Details 把过载状态回传,由消费者侧执行退避。这是面向NF间的减负链路,定义在 TS 29.500 第6.2.4节。本文聚焦第一条链路——NGAP 过载控制信令全链,因为它是真正能把信令"堵在无线侧"、避免核心网被淹没的关键机制。
AMF 内部运行着过载检测器(Overload Detector),它持续监控以下指标(具体阈值由运营商策略和厂商实现决定,规范不强制):
| 监控维度 | 典型指标 | 触发示例 |
|---|---|---|
| CPU 负载 | 进程CPU利用率 | 持续5秒 > 85% |
| 消息队列深度 | NAS消息队列积压 | 队列长度 > 50000 |
| 虚拟机/容器资源 | vCPU、内存水位 | 内存 > 90% |
| 数据库连接 | UDM/UDR 查询等待 | 平均响应 > 800ms |
| 信令速率 | 注册/服务请求QPS | 超过设计峰值120% |
当任一维度越过"高水位线(High Watermark)",AMF 的 OAM 子系统或应用层过载管理模块会向 AMF 的 NGAP 协议栈发送内部原语,触发 OVERLOAD START 过程;当所有维度回落到"低水位线(Low Watermark)"以下且持续一段时间(避免抖动),触发 OVERLOAD STOP。
设计意图:高低水位之间留有滞回区间(hysteresis),防止负载在阈值附近波动时反复发送 START/STOP,造成 gNB 侧状态机震荡。
flowchart TD
UE[UE / 大量终端] -->|RRC/NAS信令| RAN[NG-RAN gNB]
RAN -->|N2 NGAP| AMF[AMF 控制面]
AMF -->|1. NGAP OVERLOAD START<br/>OverloadAction+TrafficReduction| RAN
RAN -.->|按策略拒绝接入| UE
AMF -->|2. SBI调用其他NF| NF2[UDM/PCF/SMF...]
NF2 -->|HTTP 503 + Retry-After<br/>TS 29.500 §6.2.4| AMF
AMF -.->|退避重试/降级| NF2
AMF -->|3. AMF Set内重平衡<br/>TS 23.501 §5.22| AMF2[AMF Set内其他AMF]
style AMF fill:#ffd6d6,stroke:#c00
style RAN fill:#fff3cd,stroke:#a80
上图揭示了核心网减负的三条腿:①把信令挡在无线侧(本文主线);②NF间互相退避;③利用 AMF Set(AMF 集合)内的弹性容量做负载重平衡。本文重点拆解第①条。
OVERLOAD START 是 TS 38.413 定义的一个非UE关联信令基本过程(non-UE associated signalling elementary procedure)。它的关键特征是:不针对某一个特定UE,而是面向整个 gNB 与 AMF 之间的 N2 连接,属于"广播类"管理过程。
sequenceDiagram
autonumber
participant UE as UE(若干)
participant RAN as gNB / NG-RAN
participant AMF as AMF(过载中)
participant OAM as OAM / 过载管理
Note over AMF: 信令风暴涌入,CPU/队列飙升
AMF->>OAM: 内部原语:overload_detected(threshold)
OAM-->>AMF: 决策:启动过载控制,策略=reject非紧急MO data,减负40%
rect rgb(255, 230, 230)
Note over AMF,RAN: NGAP OVERLOAD START 过程
AMF->>RAN: NGAP OVERLOAD START (Non-UE)
Note right of AMF: PDU: <br/> OverloadResponse=OverloadAction<br/> TrafficLoadReductionIndication=40<br/> OverloadStartNSSAI(可选)<br/> AMFSet(可选)
end
Note over RAN: gNB 进入"受限转发"模式
RAN->>RAN: 按40%比例 + Action策略<br/>筛选新接入NAS消息
UE->>RAN: Registration Request (普通MO data类)
RAN--xRAN: 随机/加权判定 → 拒绝(命中40%)
RAN-->>UE: RRC Reject / MM cause #22 (congestion)
UE->>RAN: Service Request (紧急呼叫)
RAN->>AMF: 正常转发(紧急类豁免)
Note over AMF: 负载回落至低水位,持续T秒
AMF->>RAN: NGAP OVERLOAD STOP
Note over RAN: 恢复正常转发
按 TS 38.413 第8章(基本过程)与第9章(信息元素)定义,OVERLOAD START 消息的核心 ASN.1 结构如下(简化呈现,便于理解IE层级):
graph TD
A["NGAP PDU<br/>InitiatingMessage<br/>procedureCode = id-OverloadStart"] --> B["OverloadStart"]
B --> C["protocolIEs"]
C --> D["IE-1: AMFSet<br/>(可选, Rel-16+)<br/>标识哪个AMF集过载"]
C --> E["IE-2: OverloadStartNSSAI<br/>(可选, Rel-16+)<br/>按切片粒度过载"]
C --> F["IE-3: OverloadResponse<br/>(必选, 核心IE)"]
C --> G["IE-4: TrafficLoadReductionIndication<br/>(可选, 0..100%)"]
F --> F1["OverloadAction<br/>枚举:5个值之一"]
G --> G1["整数百分比<br/>gNB按此比例丢弃"]
style F fill:#fff3cd
style F1 fill:#ffd6d6
style G fill:#d6e4ff
下表逐IE说明其语义:
| 信息元素(IE) | 必选性 | 取值/类型 | 含义与作用 |
|---|---|---|---|
| AMFSet | 可选 | AMF Set标识 | 当一个 AMF Set 中仅部分AMF过载,gNB 可据此把后续 NAS 路由到该 Set 内健康的 AMF(结合 AMF Set 的 AMF Set ID 与容量因子 capacity metric) |
| OverloadStartNSSAI | 可选 | 切片列表(S-NSSAI) | 切片粒度过载:只对特定网络切片触发过载控制,不影响其它切片的UE。这是为切片隔离设计的关键IE |
| OverloadResponse | 必选 | OverloadAction枚举 | 指示 gNB 应采取的"接入抑制策略"——这是整个消息的灵魂IE |
| TrafficLoadReductionIndication | 可选 | 整数 0..100(百分比) | 指示 gNB 应减少的流量比例。如值为40,表示 gNB 应把指向该AMF的非紧急MO信令额外丢弃40%,与 OverloadAction 叠加生效 |
OverloadAction(定义于 TS 38.413 第9章 OverloadResponse)是一个枚举类型,决定 gNB 在过载期间的"准入闸门"策略。这是过载控制最容易被误解的IE,必须逐值吃透:
| OverloadAction 取值 | gNB 侧执行行为 | 设计意图 |
|---|---|---|
reject-non-emergency-mo-data-traffic |
拒绝非紧急的、移动台发起(MO)的数据相关信令(如普通Service Request) | 最常用。把数据面信令挡掉,保留注册/紧急能力,确保控制面不彻底瘫痪 |
reject-emergency-mo-data-traffic |
连紧急MO数据信令也拒绝 | 极高过载才用。规范要求紧急服务优先级最高,此值仅在极端拥塞、需保命系统能力时启用 |
permit-high-priority-sessions-and-emergency-mobile-terminated-services-only |
只允许高优先级会话 + 紧急MT(移动台终止)服务 | 优先保障被叫紧急服务和MPS(Multimedia Priority Service) |
permit-high-priority-sessions-only |
仅放行高优先级会话(MPS) | 最高级封锁,几乎拒绝所有普通用户业务 |
unspecified |
不指定具体动作 | 通常用于 OVERLOAD STOP 语境,表示过载结束、恢复正常 |
关键辨析:
reject-non-emergency-mo-data-traffic不是拒绝"数据包",而是拒绝"与MO数据业务相关的NAS信令过程"(如为建立数据连接的 Service Request)。注册类信令通常仍被放行,因为AMF需要保持UE的可达性管理能力。这就是为什么过载期间用户"打不开网页但还能看到信号"——UE可能仍处于CM-CONNECTED/REGISTERED,但新的数据会话建立被拒。
这个可选IE是过载控制的精细化旋钮。它的取值是 0~100 的整数百分比,语义为:"请你(gNB)把指向我(AMF)的非紧急MO数据信令,再额外丢弃 N%"。
举例:AMF 发送 OverloadAction = reject-non-emergency-mo-data-traffic + TrafficLoadReductionIndication = 40。则 gNB 的执行逻辑是:
对每一条新到达的、属于"非紧急MO数据"类别的NAS信令:
- 以 60% 的概率放行(转发给AMF)
- 以 40% 的概率拒绝(不转发,直接向UE回拒)
具体采用随机丢弃还是加权轮询,规范不规定,由厂商实现。这种"按比例"机制的好处是:AMF 可以平滑调节减负强度,而不是一刀切开关。过载加重时把百分比调高,缓解时调低,实现闭环自适应。
早期版本(Rel-15)的过载控制是"全 gNB 粒度"的——一旦 AMF 过载,整个 gNB 下所有UE都受影响。这在切片网络和 AMF Set 部署下显得过粗。后续版本引入两个增强:
OverloadStartNSSAI 允许 AMF 只对某几个 S-NSSAI 对应的切片信令触发过载。例如一个 eMBB 切片因突发流量过载,但 URLLC 切片仍需保障,AMF 可只对 eMBB 切片发 OVERLOAD START,URLLC 信令不受影响——这是网络切片隔离在过载控制维度的体现。当 AMF 负载回落,需取消过载控制,发送 OVERLOAD STOP:
sequenceDiagram
autonumber
participant RAN as gNB
participant AMF as AMF
Note over AMF: 负载回落至低水位,<br/>持续T_stable秒未再触发高水位
AMF->>RAN: NGAP OVERLOAD STOP
Note right of AMF: 携带可选 AMFSet / NSSAI<br/>精确取消对应粒度的过载
Note over RAN: 清除对应过载状态<br/>恢复正常转发
要点:
- OVERLOAD STOP 同样是非UE关联信令。
- 若之前 OVERLOAD START 带了 AMFSet/NSSAI,STOP 也可对应携带,实现精确取消(只解除特定切片/Set的过载,其余维持)。
- gNB 收到 STOP 后,必须清除本地保存的过载状态,否则会持续误拒用户。
stateDiagram-v2
[*] --> Normal: N2建立,初始状态
Normal --> Overloaded: 收到 OVERLOAD START<br/>(无NSSAI/全gNB)
Normal --> SlicedOverload: 收到 OVERLOAD START<br/>(带OverloadStartNSSAI)
Normal --> SetOverload: 收到 OVERLOAD START<br/>(带AMFSet)
Overloaded --> Normal: 收到 OVERLOAD STOP
SlicedOverload --> Normal: 收到匹配STOP
SetOverload --> Normal: 收到匹配STOP
state Overloaded {
[*] --> ApplyAction
ApplyAction: 按OverloadAction + <br/>TrafficReduction% 筛选NAS
}
当 gNB 决定拒绝某条 NAS 信令时,它通常:
RRC Reject,并在 NAS 层可能携带 5GMM cause = #22 (congestion),配合 T3346 定时器,指示 UE 退避一段时间后再试。Service Reject,cause #22 (congestion),避免UE立即重试。这种"无线侧就拒"的设计,使得信令根本不进入核心网,从源头保护了AMF。
| 维度 | N2 NGAP 过载控制 | SBI 过载控制 |
|---|---|---|
| 定义规范 | TS 38.413 §8 OVERLOAD START/STOP | TS 29.500 §6.2.4 |
| 作用接口 | N2(AMF↔gNB) | NF间SBI(HTTP/2) |
| 方向 | AMF→gNB,由被压方主动通知 | 被调用NF→调用方NF,响应中携带 |
| 载体消息 | NGAP独立基本过程 | HTTP 503 + Retry-After header + RFC 7807 ProblemDetails |
| 减负粒度 | Action枚举 + 百分比 + 切片/Set | 退避时长 + 按端点/服务名 |
| 执行主体 | gNB(在接入侧丢弃信令) | 调用方NF(停止/降频发起请求) |
| 典型场景 | AMF被海量注册/服务请求淹没 | UDM/PCF/CHF被高频查询拖慢 |
两者互补而非替代:N2 过载控制挡住"从UE涌入的信令洪流",SBI 过载控制调节"核心网内部NF之间的调用压力"。一个完善的过载防御体系两者都必须启用。
使用 Wireshark / TShark 过滤 N2 接口(SCTP承载NGAP):
# 识别OVERLOAD START/STOP
tshark -r n2.pcap -Y "ngap.procedureCode==17 || ngap.procedureCode==18" \
-T fields -e frame.number -e ngap.OverloadResponse -e ngap.OverloadAction \
-e ngap.TrafficLoadReductionIndication
注:OVERLOAD START 的 procedureCode 在 TS 38.413 中为
id-OverloadStart,STOP 为id-OverloadStop。抓包时这些消息出现频次应极低(正常网络每天0次;一旦出现,说明AMF已触发保护)。
| 故障现象 | 可能根因 | 排查方向 |
|---|---|---|
| 大量用户同时注册失败,cause #22 | AMF真过载,发了OVERLOAD START | 抓N2确认是否收到START;查AMF CPU/队列指标 |
| 过载已缓解但仍大量用户被拒 | gNB未正确处理OVERLOAD STOP / 状态未清除 | 检查gNB是否收到STOP;查gNB过载状态机日志 |
| 仅某切片用户被拒,其它正常 | AMF按NSSAI发了切片粒度过载 | 抓包看OverloadStartNSSAI;评估该切片是否真实过载 |
| 过载START/STOP频繁震荡 | 高低水位滞回区间设置过窄 | 调整OAM阈值,加大滞回窗口与去抖动时间 |
| 紧急呼叫也被拒 | OverloadAction错误地设为reject-emergency | 核查AMF过载策略配置,紧急类应豁免 |
| ## 八、常见问题 |
Q1: OVERLOAD START 是不是发给某个特定UE的? A: 不是。它是非UE关联信令,作用于整个N2连接(AMF与某gNB之间),不携带UE标识。它影响的是该gNB下所有符合OverloadAction条件的UE的后续接入信令。
Q2: OverloadAction 里的 reject-non-emergency-mo-data-traffic 会把已注册的UE踢下线吗?
A: 一般不会。它针对的是新的MO数据相关信令过程(如新的Service Request),已建立的PDU会话通常不受影响。UE仍保持注册态,只是无法发起新的数据会话建立。
Q3: TrafficLoadReductionIndication 和 OverloadAction 是"或"还是"与"的关系? A: 是叠加(与)关系。OverloadAction 定义"对哪类信令动手",TrafficLoadReductionIndication 定义"动手的强度比例"。例如 Action=reject非紧急MO数据 + Reduction=40,则gNB对该类信令丢弃40%。
Q4: 过载期间UE被拒后会一直被拒吗? A: 不会。gNB通常配合定时器(如T3346)让UE退避。一旦AMF发送OVERLOAD STOP,gNB立即恢复正常转发。UE退避期满后重试即可恢复服务。
Q5: NGAP过载控制和SBI过载控制哪个更优先部署? A: 两者解决不同链路的压力,应同时启用。N2过载控制是第一道防线(挡信令洪流入核心网),SBI过载控制防止核心网内部NF间级联拥塞。生产网络缺一不可。
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
