5G(NR)初始注册流程详解:四步链路与NAS报文解析

发布时间:2026/9/26 1:27:16
5G(NR)初始注册流程详解:四步链路与NAS报文解析 简介这份文档面向5G网络优化工程师、核心网测试人员及通信专业学习者聚焦NR网络中终端注册与初始注册流程这一关键环节帮助读者理解UE开机后如何在5GC的AMF完成注册、建立用户上下文并接受服务。内容系统梳理了开机初始注册、移动更新注册与周期性注册三类注册类型并按无线接入、鉴权加密、注册请求、注册完成四大步骤拆解初始注册流程同时给出NrnasOtaMsgInterface-MSG报文字段示例涵盖协议版本、NAS消息大小、安全头类型、注册类型及SUPI等移动身份信息便于对照实际信令抓包分析。资源包为1个docx文档约224KB结构紧凑、便于查阅。目前已有1135人学习下载适合用于网络规划、故障排查与性能调优时快速查阅注册流程细节也可作为5G核心网信令学习的参考材料。1. 5G(NR)注册流程拆解从开机到 AMF 授权的四步链路手里这份《5G(NR)网络用户注册及初始注册流程.docx》不是那种泛泛讲概念的科普材料它把 UE 开机后怎么一步步在 5GC 里完成注册、NAS 报文长什么样、每个字段什么含义都摊开写了。做过 5G 网络优化的人都知道注册失败是路测里最让人头疼的问题之一——终端显示有信号但就是上不了网后台信令一看卡在 Registration Request 或者 Authentication 环节。这份文档的价值在于它把初始注册拆成无线接入、鉴权加密、注册请求、注册完成四个阶段并且给了一段真实的 NrnasOtaMsgInterface-MSG 报文逐字段解析从 extended-protocol-discriminator 到 SUCI 里的 MCC/MNC 编码都能对上。适合谁看做 5G 网络规划、故障排查、性能调优的工程师以及需要理解 NAS 层信令交互的协议栈开发人员。下面我按「这是什么 → 怎么用 → 坑在哪」的顺序把这份文档里的关键内容和我自己踩过的坑一起捋一遍。2. 注册类型与四步流程先搞清楚 UE 为什么发起注册2.1 三种注册类型对应的触发条件5G(NR) 里的注册不是只有开机才做UE 在不同场景下会发起不同类型的注册。文档里列了三种我结合实际信令跟踪的经验展开说。开机初始注册是最常见的。终端刚开机、从飞行模式恢复、或者从非 5G 网络切换到 5G 覆盖区都会触发 Initial Registration。这时候 UE 和网络之间没有任何上下文一切从零开始。信令上你能看到 registration-type-value 字段被置为 initial-registration值 1follow-on-request 标志位也可能被置起来表示后续还有请求要发。移动更新注册Mobility Registration Update发生在 UE 移动到一个新的 TAC 小区而这个新 TAC 不在 UE 之前注册的 TA 列表里。注意如果新 TAC 还在已注册的 TA 列表内UE 不需要发起注册更新这是很多人容易搞混的地方。只有当 UE 离开注册区域时才会触发移动更新注册目的是让 AMF 知道 UE 现在在哪个跟踪区以便后续寻呼能找得到。周期性注册Periodic Registration由周期注册定时器超时触发。这个定时器由网络通过 Registration Accept 消息下发给 UEUE 在定时器到期后主动发起注册请求相当于给网络报个平安。如果这个定时器设得太长UE 长时间不更新网络侧可能已经把 UE 的上下文释放了导致下行数据到达时寻呼不到 UE设得太短又会增加信令负荷。常见做法是根据业务类型和终端功耗要求来权衡一般在一个小时到几小时之间。2.2 初始注册的四个阶段拆解文档把初始注册流程分成四大步无线接入PART1、鉴权加密PART2、注册请求PART3、注册完成PART4。这个划分和 3GPP 标准里的流程描述基本一致但文档用更直白的语言把每一步做了什么讲清楚了。PART1 无线接入阶段UE 和 gNB 之间先建立 RRC 连接。这一步是 NAS 信令传输的基础——没有 RRC 连接NAS 消息根本传不出去。UE 在 RRCSetupComplete 消息里会带上 NAS 层的 Registration Request这是 NAS 消息第一次出现在空口信令里。PART2 鉴权加密阶段UE 和网络之间做安全相关的交互。AMF 会发起鉴权流程验证 UE 的身份是否合法。这一步涉及 AKAAuthentication and Key Agreement流程UE 和 AMF 之间要交换鉴权向量。鉴权通过后双方还会协商 NAS 层的加密和完整性保护算法。如果这一步失败后面什么都做不了。PART3 注册请求阶段UE 向 gNB 发送类型为 InitialRegistration 的 Register Request携带 SUPI、NSSAI、安全参数等信息。gNB 收到后根据 UE 提供的 NSSAI 或者根据自身配置选择相应的 AMF把 UE 的 NAS 信息通过 N2 接口传给 AMF同时带上 gNB 自身的位置信息、Cell ID 等参数。这一步的关键是 AMF 的选择——选错了 AMFUE 可能注册到一个不支持其切片需求的 AMF 上导致注册被拒。PART4 注册完成阶段AMF 完成鉴权和授权后向 UE 发送 Registration AcceptUE 回 Registration Complete注册流程结束。此时 UE 在 5GC 里有了上下文可以进行后续的连接管理和会话管理。2.3 用 Wireshark 抓包验证注册流程理论讲完了怎么验证你理解的流程和实际信令对得上最直接的办法是抓空口信令或者 N2 接口的信令。如果你有测试终端和测试 SIM 卡可以用 QXDM 或者类似工具抓 NAS 信令如果在核心网侧可以在 N2 接口上抓包。下面是一个用 tshark 过滤 5G NAS 注册消息的示例命令# 在 N2 接口上抓包过滤 NGAP 协议中携带的 NAS 注册请求 tshark -i eth0 -f sctp port 38412 -Y ngap.procedureCode 15 -V # 如果只想看 NAS 层的 Registration Request可以用这个过滤条件 tshark -i eth0 -Y nas_5gs.mm.message_type 0x41 -V第一条命令抓的是 NGAP 协议里 procedureCode 为 15 的消息对应 Initial Context Setup里面会携带 NAS 层的 Registration Request。第二条命令直接过滤 NAS 5GS 消息类型为 0x41 的包0x41 就是 Registration Request 的消息类型编码。参数说明-i指定网卡-f是 BPF 过滤条件-Y是 Wireshark 显示过滤器-V展开协议树。如果你在测试环境里抓不到包先确认 N2 接口的 SCTP 端口是不是 38412以及抓包点是否在 gNB 和 AMF 之间的链路上。3. 初始注册报文逐字段解析从十六进制到业务含义3.1 NrnasOtaMsgInterface-MSG 报文结构文档里给了一段真实的注册请求报文我把它拆开逐字段讲。这段报文是 NrnasOtaMsgInterface-MSG 格式从最外层的消息 ID 到最内层的 SUCI 编码都有。第一层是消息头。08对应nRMM-OTA-MSG-REGISTRATION-REQUEST消息 ID 是 2048。ucUpDown为 0x0表示上行方向。ucVersion为 0x4协议版本号 4。ulLengthASN为 0x23即 35 字节这是 ASN 层消息的总长度。第二层是 NAS 消息容器。ulNasMsgSize为 0x17即 23 字节这是 NAS 消息本身的长度。extended-protocol-discriminator为 0x7e即 126这是 5GS NAS 消息的扩展协议鉴别器用来区分 5GS 和 EPS 的 NAS 消息。sec-header-type为 0表示安全头类型是 plain即没有加密和完整性保护——这符合初始注册请求的特点因为此时还没有建立安全上下文。第三层是消息体。registrationRequest的起始字节是41对应消息类型 0x41。nAS-key-set-identifier里的tSC为 0表示 native security contextnAS-key-set-identifier-value为 7即 key-set-identifier-value-nO-KEY说明当前没有可用的密钥集。registration-type字段里follow-on-request为 1表示后续还有请求registration-type-value为 1即 initial-registration。第四层是移动身份。nR-mobile-identity的type-of-identity为 1表示 SUCIodd-or-even-indic为 0表示偶数位。SUCI 体里supi-format为 0即 SUPI-Format-IMSImcc-mnc为 0x64f070解码出来是 MCC 460、MNC 15这是中国移动的网络代码。routing-indicator为 0protection-Scheme-ID为 0表示 protection-Null-Scheme即没有加密保护。home-Network-Pub-Key-ID为 0scheme-Output为全零说明 SUCI 没有用公钥加密。3.2 用 Python 解析 NAS 注册请求报文如果你拿到一段十六进制报文想快速解析出关键字段可以用 Python 写个小脚本。下面这个例子解析的是文档里给出的报文片段# 解析 5G NAS Registration Request 的关键字段 # 输入是文档中的十六进制报文片段 hex_msg 084100047E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 p a hrefhttps://download.csdn.net/download/TXNMG/87911554 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p