
简介这份文档面向5G网络优化工程师、通信专业学生及备考认证的技术人员系统梳理了5G NR独立组网SA模式下终端附着网络的完整信令流程帮助读者理解从同步到注册完成的关键环节为排查接入类问题提供理论支撑。资源包内含1个docx文件大小约127KB以图文结合的方式呈现高层呼叫处理序列与初始附加进程并附有UE与网络之间交互的消息序列表便于对照查阅。文档依次讲解同步信号束接收、系统信息获取、随机接入前导与响应、RRC连接建立、NAS层注册以及身份验证与安全模式协商等阶段同时说明HARQ ACK/NACK反馈机制如何保障传输可靠性。目前已有428人学习下载适合需要深入掌握SA接入流程、提升网络优化与故障定位能力的中高级读者参考。1. 5G(NR)-SA网络中终端附着到底在做什么你手里有一台5G模组或一部5G手机插上SIM卡、开机几秒钟后状态栏出现“5G”图标能上网了。这背后发生的事就是终端附着。在5G(NR)-SA独立组网网络里附着不是单一动作而是一串信令流程的集合终端从搜到小区、读到系统消息到发起注册请求、完成鉴权和安全激活再到建立PDU会话拿到IP地址整个过程涉及RRC层、NAS层和核心网多网元的配合。很多做5G实训室方案或5G协议栈详解的工程师第一次抓空口日志时会被几十条信令绕晕不知道哪条是关键节点、哪条失败了会导致附着卡死。这篇文章就按实际信令顺序把SA网络下终端附着的主要流程拆开讲清楚每一步在做什么、关键参数在哪、常见翻车点是什么。适合做5G模组开发、核心网调测、或者带5G实训课的从业者新手能照着步骤抓包对照熟手能直接看参数边界和排查思路。2. SA附着前的准备小区搜索与系统消息读取终端开机后第一件事不是发注册请求而是先“找到组织”。这一步在协议里叫小区搜索Cell Search属于物理层动作终端通过同步信号块SSB完成下行时频同步拿到物理小区标识PCI再读系统消息块SIB获取接入网络必需的小区配置。SA网络和NSA最大的区别之一就在这里NSA终端要同时锚定4G和5G而SA终端只驻留在NR小区上流程更干净但要求终端对NR系统消息的解析必须完整。2.1 SSB与MIB终端怎么锁定一个NR小区终端在初始搜索时并不知道小区中心频点在哪它按协议规定的同步栅格Sync Raster逐个频点扫描每个频点尝试检测SSB。SSB由PSS、SSS和PBCH三部分组成PSS/SSS给出PCI和符号定时PBCH里承载MIBMIB只有24比特但包含了一个关键字段pdcch-ConfigSIB1它告诉终端去哪里找SIB1的调度信息。实际调测时如果终端一直停在“搜网”状态第一步要确认的就是SSB能不能解出来。常见做法是用综测仪或小区模拟器固定发送SSB看终端侧RSRP和SINR是否达标。我一般会把SSB的频点、子载波间隔SCS和波束方向先对齐再往下走。# 用常见5G模组AT命令确认小区搜索状态以通用模组为例 # 查询当前驻留小区信息 ATC5GREG? # 期望返回类似C5GREG: 2,1,00101,00A1B2C3,7 # 第二个参数1表示已注册到SA网络7表示NR制式 # 查询信号质量 ATCESQ # 关注RSRP和SINRSA附着阶段RSRP建议高于-105dBmSINR高于3dB上面命令里ATC5GREG?返回的第二个参数是注册状态1代表已注册本地网络如果一直是2未注册但正在搜网或0未注册且不搜网说明小区搜索或后续注册没走通。ATCESQ给出的RSRP和SINR是判断空口质量的基础SA附着对SINR比NSA更敏感因为NR没有LTE做锚点兜底。参数上SCS的选择直接影响SSB的时域位置FR1常用15kHz和30kHzFR2用120kHz和240kHz配错SCS会导致终端根本解不出PBCH。2.2 SIB1解析接入控制参数藏在哪读完MIB后终端根据pdcch-ConfigSIB1去监听PDCCH拿到SIB1的调度再解出SIB1。SIB1是接入的“门禁规则”里面有几个参数直接决定终端能不能发起附着cellBarred表示小区是否禁止接入cellReservedForOperatorUse表示是否保留给运营商专用trackingAreaCode是跟踪区码ranac是RAN通知区域码。如果cellBarred为barred终端会直接放弃这个小区转去搜下一个。做5G实训室方案时经常有学员反馈“模组死活不附着”最后查出来是基站侧SIB1里cellBarred配成了barred这种坑很隐蔽因为空口上终端不会报“被禁止”只会默默换小区。SIB1里还有si-SchedulingInfo指示其他SIB如SIB2、SIB3的调度。SIB2里带q-RxLevMin和q-QualMin这是小区选择的最小接收电平门限。终端会拿实测RSRP和这个门限比低于门限就认为小区不满足S条件不驻留。参数设置上q-RxLevMin的单位是2dBm比如配-60实际对应-120dBm。我一般会把门限设得比实际覆盖边缘低3到5dB避免终端在弱场下反复乒乓。2.3 随机接入从发前导到拿到TA小区选好后终端要在RRC空闲态发起随机接入Random Access目的是和基站建立上行同步并拿到临时标识。SA网络里随机接入分四步终端发Msg1前导码基站回Msg2RAR含TA和临时C-RNTI终端发Msg3RRCSetupRequest基站回Msg4竞争解决。Msg3里携带终端初始身份5G-S-TMSI或随机数Msg4确认哪个终端赢了竞争。这一步的坑集中在前导码配置上prach-ConfigurationIndex决定了前导格式和时频资源如果基站配的格式和终端支持的不一致Msg1发出去基站收不到终端会一直重发直到达到preambleTransMax后报随机接入失败。实际排查时我会先看终端侧有没有发出Msg1的功率爬升记录再看基站侧有没有RAR下发两边一对就能定位是前导没收到还是RAR没解出来。注意SA网络里随机接入的Msg3可能携带的是RRCSetupRequest也可能是RRCResumeRequest用于INACTIVE态恢复两者流程不同抓包时先看Msg3的LCID或逻辑信道类型再判断。3. 注册请求与鉴权NAS层附着的主战场随机接入成功后RRC连接建立起来终端进入RRC_CONNECTED态接下来就是NAS层的注册流程。SA网络的注册叫“初始注册”Initial Registration对应5GMM5G移动性管理状态从5GMM-DEREGISTERED转到5GMM-REGISTERED。这一步是终端附着最核心的部分涉及AMF、AUSF、UDM等多个核心网网元信令交互多、参数杂也是最容易出问题的地方。3.1 Registration Request里带了什么终端在RRCSetupComplete消息里捎带第一个NAS消息Registration Request。这条消息里几个关键IE5GS registration type初始注册还是移动性注册更新、5GS mobile identitySUCI或5G-GUTI、UE security capability终端支持的加密和完整性算法、requested NSSAI请求的网络切片。5GS mobile identity如果是首次注册终端用SUCISUCI里包含加密后的SUPI用户永久标识归属网用SUCI解密出SUPI来鉴权。requested NSSAI是切片选择的关键如果终端请求的切片AMF不支持AMF会回Registration Rejectcause值可能是#62No network slices available。做切片相关调测时这个IE要重点看。# 在核心网侧如开源5GC抓NAS日志的常见方式 # 以常见容器化5GC为例查看AMF的NAS解码日志 docker logs -f amf 21 | grep -i Registration Request # 关注输出中的5GS mobile identity类型和requested NSSAI # 如果看到SUCI说明是首次注册看到5G-GUTI说明是重注册上面命令用于在核心网AMF侧实时过滤注册请求日志。docker logs -f跟踪容器输出grep过滤关键字。实际调测时如果AMF日志里看不到Registration Request说明RRC层的NAS消息没传上来要回去查RRCSetupComplete里有没有带NAS PDU。如果看到了但AMF没回Registration Accept要看AMF有没有向AUSF发起鉴权请求这一步卡住通常是SUCI解密失败或UDM里没有签约数据。3.2 鉴权与安全激活五元组怎么用AMF收到Registration Request后如果终端用的是SUCIAMF会向AUSF发起鉴权请求AUSF再向UDM取鉴权向量。5G鉴权用的是5G-AKA或EAP-AKA‘鉴权向量是五元组RAND、AUTN、XRES*、CK’、IK‘。AMF把RAND和AUTN通过Authentication Request发给终端终端用SIM卡里的密钥算出RES*回Authentication Response。AMF比对RES和XRES一致则鉴权通过。之后是安全模式命令Security Mode Command流程AMF把选定的加密算法和完整性算法告诉终端终端回Security Mode CompleteNAS层安全激活完成。这一步的坑如果终端和AMF支持的算法集没有交集AMF会选5G-EA0空加密或直接拒绝。实际排查时看Security Mode Command里的selected NAS security algorithms如果选了EA0说明加密没谈拢虽然能注册上但数据面可能有问题。参数上UE security capability里终端要声明自己支持的NEA加密和NIA完整性算法。常见组合是NEA2128-bit AES和NIA2。如果终端只声明了NEA1SNOW 3G而AMF只支持NEA2就会协商失败。我一般会在终端侧配置里把NEA0/1/2/3和NIA0/1/2/3都打开让网络侧去选避免因为算法不匹配导致注册被拒。3.3 Registration Accept与Registration Complete鉴权和安全激活完成后AMF回Registration Accept里面带5G-GUTI分配给终端的临时标识、TAI list跟踪区列表、allowed NSSAI允许的切片。终端收到后回Registration Complete初始注册流程结束。此时终端进入5GMM-REGISTERED态但还没有IP地址因为PDU会话还没建。Registration Accept里的allowed NSSAI要和终端请求的requested NSSAI对比如果网络只允许了部分切片终端只能用允许的那些。实际调测时如果终端注册上了但业务不通先看allowed NSSAI里有没有业务需要的切片SST值。提示Registration Accept里的5G-GUTI在后续重注册时会替代SUCI减少空口暴露永久标识的风险。如果终端每次注册都发SUCI检查一下是不是没保存GUTI或者GUTI失效了。4. PDU会话建立拿到IP地址才算真正“附着”完成注册成功只代表终端在移动性管理上被网络认可但要用数据业务还得建立PDU会话。PDU会话是终端和DN数据网络之间的逻辑通道对应4G里的PDN连接。SA网络里PDU会话建立由终端发起SMF负责管理UPF负责用户面转发。这一步走完终端拿到IP地址才能真正ping通外网。4.1 PDU Session Establishment Request的关键参数终端在RRC连接态下发PDU Session Establishment Request这条NAS消息里几个关键IEPDU session ID终端分配的会话标识后续所有该会话的消息都用这个ID、PDU session typeIPv4、IPv6、IPv4v6或以太网、SSC mode会话和服务连续性模式1/2/3、requested DNN数据网络名称类似4G的APN。SSC mode决定会话中断时的处理方式mode 1保持IP不变mode 2允许IP变化mode 3先建新会话再拆旧的。做车联网或远程驾驶场景时SSC mode 1更合适因为IP变了业务就断了。requested DNN要和签约数据里的DNN一致不一致SMF会回cause#27Missing or unknown DNN。# 终端侧发起PDU会话的常见AT命令 # 配置DNN和PDU session type ATC5GDCONF1,IP,internet # 激活PDU会话 ATC5GACT1,1 # 查询会话状态和IP地址 ATC5GACT? # 期望返回C5GACT: 1,1,10.20.30.40上面命令里ATC5GDCONF设置上下文参数第一个1是上下文IDIP是PDU session typeinternet是DNN。ATC5GACT1,1激活上下文1。ATC5GACT?查询状态返回的IP地址就是终端拿到的。如果激活失败看返回的错误码常见的有C5GACT: 1,0表示未激活需要结合核心网SMF日志看是DNN不匹配还是UPF没资源。4.2 SMF与UPF的交互N4会话怎么建SMF收到PDU Session Establishment Request后要做几件事选UPF、分配IP地址、通过N4接口向UPF下发PFCP会话建立请求。PFCP消息里带PDR包检测规则、FAR转发动作规则、QERQoS执行规则、URR用量上报规则。UPF收到后回PFCP会话建立响应SMF再回PDU Session Establishment Accept给终端。这一步的坑如果UPF侧没有配置对应的DNN或地址池耗尽PFCP会话建不起来SMF会回cause#26Insufficient resources或#27。实际排查时在SMF和UPF之间的N4接口抓包看PFCP Session Establishment Request里带的DNN和UE IP地址请求再看响应里的cause值。参数上QER里的QFIQoS流标识和5QI5G QoS标识决定业务优先级。5QI 9是默认的best effort5QI 1是语音5QI 82是低时延。做5G远程驾驶无人车场景时要把5QI设成82或84并在QER里配GBR保证比特率否则时延抖动会很大。我一般会在SMF侧把5QI和DNN绑定不同DNN走不同QoS策略避免所有业务挤在默认流上。4.3 从PDU Session Accept到数据通终端收到PDU Session Establishment Accept里面带PDU addressIP地址、QoS rulesQoS规则、session-AMBR会话聚合最大比特率。终端根据QoS rules把上行包映射到对应的QoS流上数据面就通了。此时终端可以ping外网但要注意SA网络里用户面走的是UPF不是4G的SGW/PGW。如果ping不通先确认UPF有没有到DN的路由再看N3接口基站和UPF之间的GTP-U隧道建没建起来。N3隧道用TEID标识基站侧和UPF侧的TEID要配对配错了包就丢了。注意PDU Session Establishment Accept里的session-AMBR是上下行聚合限速如果终端测速远低于预期先看这个值是不是设得太低再看UPF侧有没有配限速策略。5. 附着流程里的避坑与排查清单SA附着流程长、网元多出问题不可怕可怕的是不知道从哪查。下面这几条是我在实际调测里踩过的坑按“现象→原因→解决”整理覆盖空口、核心网和终端侧。5.1 终端一直停在“搜网”不发起注册现象模组上电后ATC5GREG?一直返回2正在搜网或者返回0不搜网空口上抓不到任何RRC消息。原因最常见的是SSB解不出来可能是频点配错、SCS不匹配或者终端支持的频段和基站发送的频段不一致。另一个原因是SIB1里cellBarred为barred终端默默换小区。解决先用频谱仪或综测仪确认基站侧SSB在发频点和SCS和终端能力对齐。再看SIB1的cellBarred和cellReservedForOperatorUse确保不是禁止接入。如果终端支持多频段检查ATC5GDCONF里的频段锁定是不是锁到了基站没发的频段上。5.2 随机接入失败Msg1重发到最大次数现象终端侧日志显示前导码发送功率一路爬升最后报随机接入失败空口上能看到Msg1但看不到Msg2。原因前导码格式不匹配或者PRACH时频资源配错。也可能是基站侧检测门限设得太高弱场下收不到Msg1。解决核对基站prach-ConfigurationIndex和终端支持的preamble format确保一致。弱场场景下把基站侧PRACH检测门限调低3到5dB。如果Msg2能收到但Msg4收不到查竞争解决定时器和Msg3的调度是否冲突。5.3 注册被拒cause #62或#27现象终端发Registration Request后收到Registration Rejectcause值为#62No network slices available或#27Missing or unknown DNN。原因#62是终端请求的NSSAI里某个SST/SD组合AMF不支持或没签约。#27是PDU会话建立时DNN和签约数据不一致。解决核对终端requested NSSAI和AMF侧配置的allowed NSSAI确保SST/SD在签约范围内。DNN问题查UDM里的签约数据确保requested DNN在签约的DNN列表里。如果用了默认DNN确认网络侧有没有配默认DNN。5.4 鉴权通过但安全模式失败现象Authentication Response发出后AMF回了Security Mode Command但终端回Security Mode Reject或者AMF没收到Security Mode Complete。原因终端和AMF支持的加密/完整性算法没有交集或者终端侧SIM卡算出的RES和网络侧XRES不一致鉴权其实没真正通过。解决检查终端UE security capability里声明的NEA/NIA算法集确保和AMF配置的有交集。如果算法没问题查SIM卡和UDM里的密钥是否一致鉴权向量是不是过期了。实际调测时我习惯在AMF侧把鉴权日志和安全模式日志分开打先确认鉴权通过再查安全模式。5.5 PDU会话建立成功但ping不通外网现象终端拿到IP地址ATC5GACT?显示已激活但ping外网超时。原因UPF到DN的路由没配或者N3接口的GTP-U隧道TEID不匹配或者终端侧QoS规则把上行包映射到了错误的QoS流。解决先在UPF侧ping DN的网关确认路由通。再在基站和UPF之间的N3接口抓GTP-U包看TEID是否配对。最后查终端侧QoS rules确保上行包映射到了正确的QFI。如果用了切片确认UPF支持该切片的SST。6. 用抓包和日志把附着流程串起来验证调SA附着光看文档不够得动手抓。我一般用两种手段空口侧用QXDM或模组自带日志工具抓RRC和NAS消息核心网侧用容器日志或抓包工具看N2/N4接口。把两边的时间戳对齐就能看到一条完整的信令链SSB→SIB1→Msg1→Msg2→Msg3→Msg4→RRCSetupComplete带Registration Request→Authentication→Security Mode→Registration Accept→PDU Session Establishment→PDU Session Accept。每一步的失败都会在链上断掉断点就是排查起点。验证附着是否真正成功不能只看状态栏的“5G”图标。我习惯做三个检查第一ATC5GREG?返回1且ATC5GACT?返回有效IP第二从终端ping一个公网地址看时延和丢包第三在核心网侧看SMF的会话表里有没有这个UE的会话UPF的流表里有没有对应的PDR/FAR。三个都过了才算附着完成。# 终端侧综合验证脚本以通用模组为例 # 1. 检查注册状态 ATC5GREG? # 2. 检查PDU会话和IP ATC5GACT? # 3. ping测试假设模组支持AT ping ATC5GPING8.8.8.8,4,32 # 期望返回类似C5GPING: 4,4,32,45,0 # 表示发4收4平均时延45ms丢包0上面脚本里ATC5GPING的参数依次是目标地址、次数、包大小返回的五个数字分别是发送数、接收数、包大小、平均时延、丢包数。如果接收数小于发送数先查空口SINR再查UPF侧有没有丢包统计。时延异常大时查5QI配置和UPF的转发路径看是不是走了非最优路由。最后说一个我自己的习惯每次调新模组或新基站先把附着流程的日志按时间戳存一份基线后面出问题拿基线一对比差异点就是问题点。这个习惯帮我省了很多“玄学”排查时间。SA附着流程虽然信令多但每一步都有明确的触发条件和参数约束把流程拆开、把参数对齐、把日志留好就没有查不出来的问题。希望帮到你。本文还有配套的精品资源点击获取