7.3.3.1 RRCSetup的总体流程
课程视频前面的内容我们主要讨论了在初始化随机接入过程中随机接入信道所携带的前导码在时域、频域、码域上的各项特性以及随机接入过程中竞争性接入CBRA与非竞争性接入CFRA这两种不同场景的应用方式。本节将在此基础上继续深入在整个初始化接入过程当中手机使用随机接入信道、随机接入前导码发起接入之后究竟是如何一步步最终实现“建立RRC连接”这一目标的有时候我们容易简单地认为随机接入信道或随机接入前导码只是MAC层所触发的一个孤立的信道或信号加上Msg2RAR这一响应就是随机接入的全部内容。但实际上在这个基础之上还需要继续讨论如何解决竞争的问题并最终完成整个RRC连接建立RRCSetup的过程——这正是本节“总体流程”与下一节“具体流程分解”所要共同覆盖的内容。7.3.3.1RRCSetup的总体流程我们在上一小节已经讲到竞争性随机接入通过最多四到五步即可解决潜在的接入冲突即便没有冲突也同样需要通过这四到五步来确认整个随机接入过程中手机与其他手机之间不存在冲突、且这次接入是成功的。本节就来具体看看在两步随机接入Msg1前导码与Msg2响应已经明确的基础上后续的两到三步是如何最终解决竞争、结束整个RRCSetup过程的——也就是申请RRC连接这一完整过程。RRC连接的建立本质上是建立起用户与网络、与小区之间的专用信令通道如果流程继续推进下去后续还将建立起专用的用户数据通道DRB供用户实际收发数据使用。一、从上层需求到随机接入跨层触发的完整链条手机发起初始化接入的时机通常是开机、重启等场景——当手机内部系统准备完备之后上层应用会产生连接5G网络的需求。这一需求首先会触发手机5G协议栈中最上层的NAS非接入层生成一条Registration Request注册请求消息。这是一条标准的OTAOver The Air空口消息但它本身又是以透传Transparent的方式打包在无线接口的RRC消息内部进行传递的。由于NAS层处于协议栈的最上层它无法直接将消息发送给基站或核心网只能在手机内部逐层向下递交最终依靠物理层发出信号才能将信息真正传递给基站再由基站以透传方式将NAS消息转发给核心网。因此手机内部先由NAS层生成Registration Request这是发起注册流程Attach的起点随后这一请求被递交给RRC层。RRC层接到这一“需要向核心网传递NAS消息”的需求后会触发自身的消息生成机制形成RRCSetupRequest这条消息——这是一条真正意义上的RRC层三L3消息。RRCSetupRequest生成后同样需要向下递交——这一次递交的对象是层二L2其中最直接相关的是MAC层因为MAC层正是最终的调度器所在的层级。RRC消息要想真正通过空口发送给基站必须依靠MAC层触发物理层的信道行为。MAC层在接到这一递交请求后首先要做的是检查物理层当前是否已经存在可用的RRC连接——由于这是初始化接入场景显然尚不存在这样的连接因此MAC层或者说底层调度层便会自主触发一次随机接入过程。至此我们此前用大量篇幅讨论过的随机接入信道时频域资源特性、竞争性/非竞争性等一系列属性正是MAC层在这一步所需要综合考虑的内容——而这些考虑因素的触发依据正是来自上层RRC乃至NAS逐层传递下来的这一需求。图7.3.3.1-1 从上层需求到物理层随机接入的逐层触发链条自制补充图二、RRCSetup总体流程的五步图景手机完成上述触发之后便会按照标准的随机接入与RRC连接建立流程依次经历以下步骤图7.3.3.1-2 RRCSetup总体流程示意Msg1~Msg4完整信令交互原讲义配图步骤消息所处层级/关键说明Step 1Msg1 —随机接入前导码物理层/MAC层触发具体资源选择依据PRACH的时频域与码域配置CBRA场景下随机选择CFRA场景下使用专属分配Step 2Msg2 —随机接入响应RAR基站计算出定时提前量TA、下发供Msg3使用的上行授权UL Grant完成初步的时延估计Step 3Msg3 —携带RRCSetupRequest此时手机内部此前已生成、暂存的RRCSetupRequest层三消息被真正通过空口发送出去使用的是Msg2中给出的上行授权资源而非独立的PDCCH调度Step 4Msg4 — RRCSetup竞争解决基站确认接收成功后向手机下发竞争解决消息Step 5Msg5 — RRCSetupComplete手机确认接入完成标志着整个初始化接入流程的最后一步不过一般而言只要前四步没有问题接入即可视为已经完成需要特别指出一个时序上的细节RRCSetupRequest这条消息实际上是在Msg1、Msg2完成之前就已经在手机内部的RRC层生成、并暂存于手机存储器当中的——它只是在“时间点”上先于Msg1/Msg2出现但真正通过空口发送出去作为Msg3是在两步随机接入完成、拿到UL Grant资源之后才发生的。这也解释了此前小节中提到的一个关键细节Msg3之所以不需要独立的PDCCH来调度正是因为它复用了Msg2RAR中已经给出的上行授权。三、案例分析从信令跟踪工具截图看RRCSetup全流程在日常网络测试与问题分析工作中工程师常常需要借助专业的信令跟踪工具来验证手机接入过程是否合理、顺利并通过这些工具直观地查看信令的具体呈现方式。高通QXDM就是业界一款非常典型的信令跟踪分析工具它能够完整地呈现出手机在一次RRCSetup全流程包含随机接入过程与后续竞争解决过程中的信令细节。3.1两类不同性质的信令记录Log与OTA在QXDM这类工具的信令列表中消息类型通常分为两大类其一是Log普通日志指工具从手机芯片内部接口读取到的一些内部信息其内容格式是芯片厂商自行定义的私有格式并非3GPP规范中标准定义的空口字节内容但其反映的信息与手机接入过程密切相关其二是OTAOver The Air空口消息指5G Uu空口规范中明确定义的标准控制消息与信令是真正意义上遵循标准协议格式的字节内容。类型来源特点Log芯片内部接口读取厂商私有格式非标准协议字节但内容与接入过程密切相关如RACH尝试的时频域参数等OTA空口规范定义的标准消息严格遵循3GPP协议格式的标准字节内容如RRCSetupRequest、RRCSetup等具体消息在典型的QXDM截图中Msg1随机接入信道与Msg2随机接入响应这两步往往是以Log的形式呈现的——这是因为工具无法直接把物理层信道本身的完整信号“原样”展示出来只能以MAC层的形式呈现出该物理信道的一些基本参数供工程师参考而这些基本参数并不是物理信道本身完整、真实的体现这一点在分析截图时需要特别明确。3.2RACH Attempt日志字段解读一条典型的RACH Attempt日志记录通常会呈现出这样一次随机接入尝试的具体信息该次尝试发生在某个特定的系统帧、子帧、时隙上手机依据基站在SIB1中配置的参数集选择了具体的Preamble日志中还会给出该Preamble所对应的根序列信息uRoot即我们此前小节所讨论的根序列取值u、随机接入IDRAID即该次尝试所选用的具体前导码编号、频域位置索引以及循环移位相关的取值Cyclic Shift Value——这一数值本质上表示的是以一定的相移步长为单位该前导码是对应根序列内的第几个循环移位、也就是第几个衍生前导码这与我们在“小区规划中针对Preamble的考虑”一节中详细计算演示过的方法完全一致。字段含义uRoot该次接入尝试所使用前导码对应的根序列取值uRAID随机接入ID即选用的具体前导码编号频域位置该PRACH资源在频域上的索引对应FDM配置中的位置Cyclic Shift Value循环移位取值用于反推该前导码是所在根序列内的第几个衍生前导码除了上述前导码相关的参数外RACH Attempt日志中还会包含与Msg2RAR密切相关的信息其中有两点尤为重要其一是时延估计——由于Msg1本身采用的是开环功率控制没有闭环反馈依据基站只能依据捕获到的前导码信号间接推算出手机到基站之间相对精确的传播时延并通过Msg2中的定时提前量TA字段反馈给手机其二是上行资源授权UL Grant——这一信息同样包含在Msg2的RAR内容当中为手机后续发送Msg3提供了所需的上行调度资源而无需额外的PDCCH来专门调度Msg3。知识拓展为何日志中Msg1/Msg2与真正的OTA消息存在细微差别需要特别说明的是在信令跟踪截图中呈现出来的“Msg1”“Msg2”相关日志虽然体现出了随机接入前两步的核心参数但它们并不完全等同于标准协议意义上原原本本的Msg1物理层前导码信号本身与Msg2RAR的完整空口内容——它们是芯片工具从内部接口截取、以Log形式间接呈现出来的参考信息。这一区别提醒我们在借助商用测试工具分析网络问题时应当清楚地区分“工具呈现的调试信息”与“协议规范定义的标准信令内容”这两个不同的层面前者服务于工程调试的便利性后者才是协议一致性判断的权威依据。结合完整的时间顺序来看Msg1、Msg2这两步随机接入过程完成之后手机此前在RRC层生成、暂存的RRCSetupRequest消息才真正利用刚刚协商好的UL Grant资源以标准OTA消息的形式发送出去即Msg3。基站检测到Msg3并确认接收成功后向手机发送RRCSetupMsg4手机收到Msg4后再发送RRCSetupCompleteMsg5至此一次完整的初始化接入过程的全貌就清晰地呈现出来了。四、本节小结本节围绕RRCSetup的总体流程展开系统梳理了从手机上层需求产生逐层触发NAS层、RRC层、MAC层最终在物理层落地为具体随机接入行为的完整跨层链条结合五步信令交互Msg1~Msg5说明了RRCSetupRequest消息生成的时间点与其真正通过空口发送作为Msg3之间存在的时序差异并再次印证了Msg3复用Msg2中UL Grant资源这一关键设计最后结合QXDM信令跟踪工具的真实截图案例讲解了Log与OTA两类信令记录的本质区别以及RACH Attempt日志中uRoot、RAID、频域位置、循环移位取值等关键字段的含义。本节所呈现的是RRCSetup过程一个总体性的宏观图景。至于Msg2、Msg3、Msg4各个环节更为详尽的信令细节与内部机制将是下一小节“7.3.3.2 具体流程分解”所要逐一展开的内容。