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