5G核心网学习平台
AMF 实践篇 #43

AMF功能实战篇(47) 防止服务过载,发送429响应

《5G核心网原理与实践》实践篇 · AMF 网元功能

《5GC原理与实践》实践篇(47) 防止服务过载,发送429响应

爱卫生

2023年02月18日 23:53

《5GC原理与实践》实践篇是按网元来规划的。包括AMF篇、SMF篇、PCF篇等。

本文是AMF篇的第47篇。

本期目录(为求完整性,把整个1.9的目录放出来了。)

1.9 拥塞管理的支持 199

1.9.1 非SBI接口拥塞管理 199

1.9.1.1 N2启动拥塞控制,发送Overload Start

199

1.9.1.2 N2停止拥塞控制,发送Overload Stop

203

1.9.1.3 NAS的Back-off Timer的支持 205

1.9.2 SBI接口拥塞管理 207

1.9.2.1 防止服务过载,发送429响应 207

1.9.2.1 防止服务过载,发送429响应

为防止AMF侧服务过载,当AMF发现自身服务过载时(即大量并发用户请求该服务),AMF会给消费者网元(如SMF)发送

429 too many request响应,并且在HTTP头中携带retry-after参数,要求消费者网元在retry-after指定的时间到期后再重新发送

请求。未到期则保持静默,不要找我。

注意,retry-after和上一集提到的NAS消息的back-off timer(T3346)虽然都做拥塞控制,但还是有区别的。一个是做SBI接

口,一个是做NAS消息。一个是在HTTP头中携带,一个是在NAS消息中携带。Retry-after属于RFC的规范参数,更通用。而

back-off计时器则纯粹是3GPP定义的了。

具体流程如下图:

测试步骤:

1)通过开源项目脚本或测试仪模拟大量并发UE的注册或PDU会话建立等请求。使得AMF过载。

2)AMF检测到当前并发请求数已经超过预定义的门限值,则给消费者网元回429响应码,并携带retry-after参数,指明重新发

送请求的等待时间。

检查点:

1)AMF能够如预期的那样发送429响应和retry-after参数。

2)消费者网元在收到retry-after的等待时间后,在时间未到之前,不再给AMF发送任何请求。

看一个具体的log。

可以看到,在#6292号报文中,AMF给SMF发送了429响应,以及retry-after参数=30秒。

并且抓包发现SMF在30秒内没有向AMF发送任何新的请求。因此测试通过。

← 返回 AMF 实践篇