ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

5G随机接入核心:Msg2(RAR)协议解析与工程实践

5G随机接入核心:Msg2(RAR)协议解析与工程实践 1. 项目概述为什么Msg2是5G随机接入的“关键先生”在5G网络里手机从“失联”状态到成功接入基站这个过程就像一场精心编排的对话。随机接入Random Access, RA就是这场对话的开场白而其中的Msg2随机接入响应Random Access Response, RAR则是基站给手机的第一个、也是决定性的回复。很多人研究5G物理层关注那些复杂的波形和调制但真正决定你手机能不能快速、稳定连上5G信号的往往是在MAC媒体接入控制层发生的这些“握手”细节。今天我们就抛开那些高深的数学公式从一个一线工程师的视角深入聊聊Msg2RAR这个看似简单、实则暗藏玄机的信令消息。简单来说当你的手机想要接入网络比如开机、从覆盖盲区回到服务区、或者切换小区时它会先向基站发送一个“招呼”这就是Msg1前导码Preamble。基站收到后必须在极短的时间内回复一个Msg2RAR。这个RAR里包含了几个至关重要的信息一个临时的身份标识TC-RNTI、上行资源授权UL Grant、以及时间提前量TA Command。手机只有正确收到并解析了这个RAR才能进行后续的Msg3发送从而完成接入。可以说RAR是连接“试探”与“正式沟通”的桥梁它的设计、发送和接收直接决定了随机接入的成功率、时延和用户体验。我遇到过不少案例网络侧指标一切正常但用户就是抱怨接入慢、偶尔连不上。一查根因很多都出在RAR相关的配置或处理逻辑上。比如基站RAR的发送功率算错了导致边缘用户收不到或者RAR窗口配置得太小在复杂无线环境下容易错过再或者手机侧对RAR的解码能力有瑕疵。理解RAR的里里外外不仅是协议工程师的必修课对于网络优化、终端测试乃至芯片设计人员都至关重要。接下来我们就一层层剥开RAR的外壳看看它到底是如何工作的以及在实践中我们会遇到哪些“坑”。2. RAR消息的协议层拆解MAC PDU里装了些什么当我们谈论Msg2时我们指的并不是一个凭空产生的消息而是一个承载在DL-SCH下行共享信道上的、特定格式的MAC PDU协议数据单元。理解它的结构是理解其功能的基础。2.1 MAC PDU的整体封装格式首先基站生成RAR内容后MAC层会将其组装成一个MAC PDU。这个PDU有一个非常固定的头部结构。对于承载RAR的MAC PDU其第一个字节8比特是一个特殊的MAC子头Subheader我们称之为“RAPIDRandom Access Preamble Identifier子头”。这个子头的格式是固定的最前面1个比特是“E”字段扩展位对于RAR子头通常设为0接着是1个比特的“T”字段类型位这里必须设为0表明这是一个RAPID子头剩下的6个比特就是关键的“RAPID”字段。这6个比特用来指示这个RAR是响应哪个前导码Preamble的。手机在Msg1中发送的前导码是从一个集合如64个中随机选的一个基站通过这个RAPID告诉手机“嘿你发的XX号前导码我收到了这是给你的回复。”为什么是6比特因为2的6次方是64正好对应最多64个不同的前导码标识。这是一种非常高效的寻址方式不需要在初始阶段就知道手机的长时期身份像IMSI、C-RNTI这些用一个临时的、与本次尝试绑定的短标识即可。2.2 RAR负载MAC RAR的详细内容在RAPID子头之后就是真正的干货——MAC RAR本身。它的长度是固定的在5G NR中是56个比特7个字节。这56个比特被划分成几个关键字段每一个都肩负重任R保留位1个比特目前协议预留设为0。TA Command时间提前量命令12个比特。这是解决上行同步问题的核心。手机离基站有远近信号传播有时延。如果所有手机都在自己认为的时间点发送到达基站时就会参差不齐互相干扰。TA Command就是基站测量了手机Msg1的到达时间后计算出的一个调整量。手机收到后会根据这个值调整自己后续上行发送的时机确保大家的信号到达基站时是基本对齐的。这12比特能表示的TA值范围很大足以覆盖几十公里的小区半径。UL Grant上行资源授权27个比特。这是手机发送Msg3的“通行证”和“路线图”。它明确告诉手机“你可以在哪个时间系统帧、子帧、时隙、哪个频率资源块RB上以什么样的格式MCS调制编码方案来发送你的Msg3。” 这27个比特的编码非常紧凑包含了频域资源分配、时域资源分配、MCS、TPC功率控制命令等信息。手机MAC层必须严格按照这个授权来组装和发送Msg3一点都不能错。TC-RNTI临时小区无线网络临时标识16个比特。这是基站为手机分配的一个临时身份。在随机接入流程完成前手机还没有获得正式的C-RNTI。TC-RNTI就用于在竞争解决阶段Msg4前唯一标识这次接入尝试。它会被放在Msg3和Msg4中用于寻址。如果竞争解决成功这个TC-RNTI可能会被提升为正式的C-RNTI如果失败则被丢弃。把这56个比特展开就是一个完整的行动指令包“你是X号前导码的发送者RAPID你的信号晚了Y个单位TA接下来你在Z资源上用W的方式以T这个临时身份给我回话Msg3。”2.3 一个MAC PDU承载多个RAR的情况为了提高效率一个MAC PDU可以包含对多个前导码的RAR响应。这是怎么做到的呢MAC层采用了级联的方式。在MAC PDU的开头会按顺序放置多个RAPID子头每个子头对应一个RAR。每个RAPID子头后面紧跟着其对应的MAC RAR56比特。手机在监听RAR时会逐个解析子头检查其中的RAPID是否与自己发送的前导码匹配。一旦匹配就读取后面紧跟的MAC RAR内容。这种设计非常巧妙。它允许基站在一次下行传输中同时响应多个手机的接入请求极大地提升了信令效率。想象一下早高峰的地铁站检票员基站不是一个个回应“我可以进”RAR而是举一个牌子上面写着“持有1、5、12号卡片RAPID的乘客请到A、B、C口UL Grant进站你们的临时车票号TC-RNTI是XX、YY、ZZ”。所有乘客手机都在看这个牌子找到自己对应的信息。3. 从发送到接收RAR的完整生命周期与关键参数理解了RAR是什么我们再来看看它是如何从基站产生并最终被手机成功接收和使用的。这个过程涉及一系列严格的时序和参数任何一个环节出错都可能导致接入失败。3.1 基站侧RAR的生成与发送基站侧的物理层在特定的时频资源PRACH时机上检测前导码。一旦成功检测到一个有效的前导码它就会将相关信息如检测到的前导码索引、测量到的时间提前量上报给MAC层。MAC层收到上报后立即启动一个计时器并开始准备RAR。这个过程必须在协议规定的时间窗内完成。核心参数是ra-ResponseWindowRAR窗口。这个参数由基站通过系统消息如SIB1广播给所有手机。它定义了手机发送Msg1之后应该在多长时间窗口内监听PDCCH以接收承载RAR的DCI下行控制信息1_0用RA-RNTI加扰。RA-RNTI的计算是另一个关键点。它不是固定的而是由Msg1发送的时频资源位置决定的。计算公式通常包含发送Msg1的时隙号、符号索引、频域资源索引等信息。这样设计是为了让手机能精确地知道该监听哪个RA-RNTI加扰的PDCCH。如果计算错误手机就会“听错频道”永远等不到自己的RAR。基站MAC层组装好包含RAR的MAC PDU后会将其交给物理层并通过由RA-RNTI指示的PDCCH调度在PDSCH物理下行共享信道上发送出去。这里就涉及到RAR的MCS调制编码方案和发送功率。通常为了确保可靠性RAR会采用比较稳健的MCS如QPSK低码率。发送功率则需要足够高以确保小区边缘的用户也能正确解码。在实际网络优化中如果发现边缘用户随机接入成功率低除了覆盖问题也需要核查RAR的发射功率配置是否充足。3.2 手机侧RAR的盲检测与解析手机侧的工作更像一个守候者。发送完Msg1后手机立即启动一个窗口长度即为ra-ResponseWindow并在该窗口内持续盲检测由特定RA-RNTI加扰的PDCCH。这个过程是“盲”的因为手机不知道基站是否会回复也不知道回复会在窗口内的哪个时刻到来。它必须不断地尝试解码PDCCH。一旦检测到有效的DCI 1_0并且其CRC由正确的RA-RNTI校验通过手机就知道“我的RAR来了”接着手机根据DCI 1_0中的调度信息频域、时域资源指示去对应的PDSCH资源上接收数据并解码出MAC PDU。然后手机开始解析这个MAC PDU读取第一个MAC子头判断其类型T bit。如果是RAPID子头T0则读取其RAPID字段。将读取到的RAPID与自己发送的前导码索引进行比较。如果匹配成功手机认为这个RAR是给自己的。它会继续读取该子头后面紧跟的56比特MAC RAR从中提取TA Command、UL Grant和TC-RNTI。如果匹配失败手机继续解析下一个MAC子头重复步骤2-4直到遍历完整个MAC PDU或找到匹配项。如果在整个ra-ResponseWindow内都没有检测到自己的RA-RNTI或者检测到了但MAC PDU中没有找到匹配的RAPID手机则认为本次随机接入尝试失败会触发退避机制等待一段时间后重新发起尝试可能还会提升前导码的发射功率即功率爬坡。3.3 关键定时器与失败处理整个RAR流程由几个定时器严格控制ra-ResponseWindow如前所述手机监听RAR的窗口长度。设置太短容易因无线环境波动而错过RAR设置太长会增加接入时延且在竞争场景下浪费手机电量。典型值在10ms到40ms之间需要根据小区半径和信道条件优化。mac-ContentionResolutionTimer这个定时器在手机发送Msg3后启动用于等待竞争解决Msg4。虽然不直接属于RAR阶段但RAR中携带的TC-RNTI是Msg3/Msg4阶段寻址的关键因此它与RAR流程紧密相关。当RAR接收失败时手机会进行“随机接入问题”统计并触发退避Backoff过程。手机会从一个均匀分布的退避时间区间中随机选择一个值进行等待然后再重发Msg1。这个机制是为了避免多个失败设备立即重试导致信道拥塞的“雪崩”效应。退避参数也由基站通过系统消息指示。4. 实战中的典型问题与排查思路理论很完美现实却很骨感。在实际网络部署、终端测试和故障排查中RAR相关的问题层出不穷。下面分享几个我亲身经历或经常被问到的典型案例和排查思路。4.1 案例一边缘用户接入成功率波动大现象某个5G小区中心区域用户接入正常但小区边缘部分用户投诉开机注册慢甚至偶尔无法注册。查看基站计数器发现Random Access Preamble Timeout随机接入前导码超时指标在边缘扇区较高。排查思路首先排除覆盖问题检查边缘区域的RSRP参考信号接收功率和SINR信号与干扰加噪声比。如果RSRP已经低于-120dBmSINR接近0或为负那么首先是弱覆盖或干扰问题需要先进行RF优化。检查Msg1功率爬坡确认基站配置的preambleReceivedTargetPower前导码初始接收目标功率和powerRampingStep功率爬步步长是否合理。对于边缘用户可能需要更大的初始目标功率或爬步步长以确保Msg1能被基站检测到。聚焦RAR问题如果Msg1发送成功基站计数器Random Access Preamble Sent有统计但手机收不到RAR问题可能出在下行。RAR发射功率核查基站为承载RAR的PDSCH配置的发射功率偏置pdsch-RSRP相关参数。确保其相对于小区参考信号有足够的功率提升以补偿边缘用户的路径损耗。RAR MCS检查RAR使用的MCS表通常是QPSK和码率是否过于激进。在边缘应使用最稳健的MCS如MCS 0。ra-ResponseWindow设置检查该窗口是否过小。在传播时延大的边缘区域需要留出更多时间用于基站处理和下行传输。可以考虑从默认的20ms适当增大到30或40ms。空口抓包分析这是最直接的手段。在问题区域进行空口信令抓取需要专业测试终端和软件。重点看手机发出的Msg1前导码的序列号和发送时间。随后在计算出的RA-RNTI上是否出现了DCI 1_0调度。如果出现了调度的PDSCH是否成功解码解码出的MAC PDU中RAPID是否与手机发送的前导码匹配通过这个流程可以精确定位问题发生在“基站未调度RAR”、“调度了但手机未解对DCI”、“解对了DCI但PDSCH解码失败”还是“PDSCH解码成功但RAPID不匹配”等环节。经验心得对于边缘接入问题切忌只盯着一个点。它是一个从上行Msg1发射、基站检测与处理、下行RAR调度与发射、到手机接收解码的端到端过程。需要像侦探一样沿着这个链条一步步排查。通常适当提高RAR的发射功率和采用更稳健的MCS是解决边缘RAR接收问题最直接有效的手段之一。4.2 案例二在高负载小区下接入成功率骤降现象一个位于商业中心的5G小区在业务晚高峰时段大量用户同时尝试接入例如附近商场散场导致随机接入成功率Random Access Success Rate从平时的99%以上暴跌至80%以下同时Random Access Preamble Collision前导码冲突指标显著升高。排查思路确认根因是竞争冲突前导码冲突激增是典型特征。64个前导码资源是共享的当几十上百个设备几乎同时发起随机接入时很容易选择同一个前导码导致基站无法区分只能响应其中一个或全部不响应其他设备则因RAR中RAPID不匹配而失败。检查前导码分组与资源分配前导码分组5G中前导码可以划分为不同的组Group A, Group B用于区分不同Msg3大小的需求。检查分组配置是否合理避免资源分配不均。PRACH配置索引这个参数决定了PRACH信道在时频域上的密度例如每多少个子帧有一个PRACH时机。在超高负载场景下默认的密度可能不足。可以考虑增加PRACH配置索引意味着在相同时间内提供更多的PRACH发送机会时域更密集从而降低碰撞概率。优化退避Backoff参数这是缓解竞争冲突的核心手段。当接入失败时基站通过BIBackoff Indicator告诉手机需要等待多久再重试。BI值包含在RAR的MAC PDU中注意不是每个RAR都有它由一个特殊的MAC子头指示。检查基站配置的退避参数值bi。在3GPP协议中bi索引对应一个最大退避时间如索引10对应960ms。在高负载场景下应该配置一个更大的退避时间范围。这相当于让“撞车”的设备们等待更随机、更分散的时间再重试避免下一波集体重试再次引发碰撞。将退避参数从较小的值如20ms调整为较大的值如960ms往往能显著改善高并发下的接入性能。考虑非竞争随机接入对于切换Handover等对时延和可靠性要求极高的场景应使用基站指派的专用前导码非竞争随机接入。这可以完全避免冲突确保关键流程的接入成功。需要检查切换等流程中的专用前导码分配机制是否正常工作。经验心得随机接入本质上是一个基于竞争的ALOHA-like协议。在面对突发的大规模并发接入时冲突是不可避免的。优化的核心思路不是消灭冲突而是管理冲突。通过增加接入机会时频资源和智能地控制重试节奏退避算法可以将冲突的影响降到最低。这就像节假日高速路口不能只增加收费员基站处理能力更要增加车道PRACH资源和设置合理的车辆放行间隔退避才能避免堵死。4.3 案例三终端日志显示“RAR received but RAPID mismatch”现象在终端一致性测试或入网测试中从终端侧的上报日志或诊断信息中频繁看到“RAR received but RAPID mismatch”收到RAR但RAPID不匹配的错误。这意味着手机收到了基站下发的RAR但其中的前导码标识与自己发送的不符。排查思路 这个问题相对棘手因为它可能源于基站或终端任何一方的错误。双端联合排查黄金法则必须同时抓取空口信令基站侧或空口探头和终端内部日志。将两边的信令在时间线上对齐。对比关键信息前导码索引对比终端日志中“发送的Msg1前导码索引”与空口信令中“基站响应的RAR中的RAPID字段”。如果不一致问题可能出在a) 基站物理层前导码检测错误误判了索引b) 基站MAC层组装RAR时填错了RAPID。这属于基站设备bug需要联系设备商分析。RA-RNTI对比终端计算RA-RNTI所用的参数时隙、符号等与基站实际调度RAR时使用的RA-RNTI。如果不一致说明终端或基站有一方在计算RA-RNTI时使用了错误的公式或输入参数。需要仔细核对3GPP TS 38.321中关于RA-RNTI的计算公式以及终端和基站获取时间、频率资源索引的方式是否正确。时间对齐检查终端发送Msg1的时刻与基站发送对应RAR的时刻是否落在ra-ResponseWindow内。如果终端的时间同步有问题例如TA值极大且未补偿可能导致其监听RAR的窗口与实际RAR发送的时间错位从而解码出错误的数据误认为是RAPID不匹配。排除干扰因素在实验室环境下可以尝试在屏蔽房中复现排除外部干扰导致基站误检前导码的可能。也可以尝试让终端在极好点靠近基站进行测试排除信道质量差导致解码错误的可能。经验心得“RAPID mismatch”是一个指向性很强的错误但它只是一个结果。真正的根因可能藏在物理层检测、MAC层处理、RNTI计算乃至系统帧号同步等各个环节。解决这类问题双端信令跟踪对比是唯一可靠的方法。作为测试或优化工程师要养成同时抓取和分析两端日志的习惯才能看清问题的全貌。5. 进阶话题RAR与后续流程的衔接及优化思考RAR不是孤立的它的成功接收只是随机接入“万里长征”的第一步。它与后续的Msg3、Msg4紧密耦合共同决定了最终接入的成功与否。5.1 TC-RNTI的临时性与转化RAR中分配的TC-RNTI是一个临时身份。在竞争随机接入中多个手机可能使用相同的前导码基站只响应一个但所有发送了该前导码的手机都会收到这个RAR因为前导码不携带身份信息。因此多个手机会同时使用同一个TC-RNTI。这些手机都会根据RAR中的UL Grant发送Msg3。Msg3中包含了能唯一标识手机的信息如在RRC建立请求中携带的UE Identity。基站在成功解码其中一个Msg3后会在Msg4竞争解决消息中使用这个TC-RNTI进行加扰和寻址。只有那个Msg3被基站正确接收并处理的手机才能成功解码这个Msg4从而赢得竞争并将TC-RNTI转化为自己正式的C-RNTI。其他手机则解码Msg4失败触发竞争解决失败释放TC-RNTI并回退重试。因此RAR中的TC-RNTI是竞争解决的“种子”。它的正确分配和后续使用是区分不同竞争用户的关键。5.2 UL Grant的细节与Msg3的适配RAR中的UL Grant只有27比特却要规定Msg3发送的全部资源信息其编码效率极高。这里有几个容易出错的细节Msg3的TBS传输块大小UL Grant中指定的MCS结合分配的资源块RB数量共同决定了Msg3的TBS。终端MAC层必须根据这个TBS来组装RRC消息如RRCSetupRequest。如果RRC消息的实际比特数超过了这个TBS就必须进行截断或采用其他方式这通常会导致失败。协议设计时已经考虑了这一点但终端实现必须严格匹配。频率资源分配UL Grant指示的是Msg3在PUSCH上占用的具体RB。终端需要确保自己的上行载波频率已经通过SSB同步并且能准确映射到这些RB位置。时间提前量TA的应用终端在发送Msg3时必须应用RAR中携带的TA Command。这是终端第一次进行上行时间同步。如果应用错误或未应用会导致Msg3到达基站时与其他信号不同步造成干扰和解码失败。在测试中我曾见过因为终端芯片的TA应用逻辑有bug导致Msg3始终无法被基站正确解码的案例。5.3 面向垂直行业与URLLC的优化思考对于工业互联网、自动驾驶等垂直行业应用其对随机接入的时延和可靠性URLLC有极致要求。标准的基于竞争的随机接入流程其不确定性和可能发生的冲突重试难以满足微秒级时延和99.999%可靠性的要求。因此在这些场景下优化思路包括尽可能使用非竞争随机接入为关键终端预配置专用前导码彻底避免冲突。配置更密集的PRACH资源为URLLC业务划分专用的、高密度的PRACH信道资源减少等待发送机会的时延。优化RAR相关参数缩短ra-ResponseWindow减少手机等待RAR的时间但这要求极好的信道条件和精准的功率控制。为URLLC终端使用更可靠的RAR MCS和更高的发射功率确保RAR的一次接收成功率。采用更积极的功率爬坡步长让URLLC终端的Msg1能更快被基站检测到。两段式随机接入Two-step RA的引入这是5G-Advanced和未来6G的一个重要演进方向。它将Msg1前导码和Msg3RRC连接请求的内容合并为一条消息MsgA发送基站回复的Msg2RAR也包含了原本Msg4竞争解决的内容。这大大减少了信令交互次数理论上可以显著降低接入时延。在这种新流程中“Msg2”承载的功能和内容将更加复杂和关键。理解基础的RAR流程是思考这些高级优化方案的前提。每一次技术演进都是在解决旧有问题、满足新需求的过程中对基础流程的重新设计和增强。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进