《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发送任何新的请求。因此测试通过。