首页 › deep-tech › 5G随机接入RACH原理图解

5G随机接入原理:手机开机后发出的“第一声”是如何设计的

前几轮我们讲过调制解调、波束赋形、切换与寻呼。但有一个更底层的问题一直没展开:UE开机、失步、或收到寻呼之后,是怎么“敲开”网络大门的? 这就是随机接入(Random Access, RACH)要解决的事。它是切换、TAU、寻呼响应、波束失败恢复等几乎所有移动性事件的共同入口——入口卡住,后面全堵。这一篇我们把它拆开看:为什么必须有随机接入、前导码的数学设计为什么如此精妙、四步握手每一步在防什么错。

一、为什么上行需要“敲门”:一个不对称的同步问题

先想一个问题:UE开机后明明已经通过同步信号(SSB)和基站完成了下行同步,为什么还需要随机接入?

答案是:下行同步了,上行并没有。

所以UE必须先上报“我离你有多远”,让基站告诉它一个时间提前量(TA, Timing Advance),之后上行才对得上拍。但问题在于:此时上行链路尚未建立,UE连“说话的资格”都没有——基站不知道它存在,也没有给它分配任何资源。

这就形成了一个经典的“先有鸡还是先有蛋”困境:要分配上行资源,基站得先知道UE;要知道UE,UE得先发上行信号。 随机接入就是为了打破这个死锁:UE在一个所有UE共知的固定资源位置(PRACH时机)上,发一段基站预先广播过特征的特殊信号(前导码)。基站不需要提前认识你,只要识别出“有人在X时刻发了Y号前导码”,就能反向估算出传播时延,并启动后续的身份确认流程。

类比一下:新员工第一天到公司,前台没有你的门禁卡(上行资源),但公司有规定——“访客在大门口按三下铃”。铃声本身不含信息,但公司听到铃声、看到你站的位置,就知道“有人来了、他离大门多远”,然后给你临时工牌(TA + 临时标识),走完登记流程。

二、敲门的两种方式:竞争的与非竞争的

随机接入分两大类,区别在于“用哪个前导码由谁决定”:

flowchart TD
    A["什么情况下需要随机接入?"] --> B["网络能提前安排吗?"]
    B -->|"不能, UE自主发起"| C["CBRA 基于竞争"]
    B -->|"能, 网络预先指配"| D["CFRA 无竞争"]

    C --> C1["RRC_IDLE 开机初始接入"]
    C --> C2["RRC_INACTIVE 状态恢复"]
    C --> C3["无线链路失败后重建"]
    C --> C4["上行失步后收到寻呼<br/>或上行数据到达"]
    C --> C5["切换时目标小区未给专用前导码"]

    D --> D1["切换(目标小区指配专用前导码)"]
    D --> D2["波束失败恢复(BFR)"]
    D --> D3["辅小区组SCG添加"]
    D --> D4["定位等需要确定性时延的场景"]

CFRA 流程只有两步(发前导码→收随机接入响应),因为“身份”已经包含在专用前导码里了,不需要再走竞争解决。理解了这个分界,现网看到“切换到某小区用CBRA失败率高”时,第一反应就应该是查目标小区的RACH资源是否拥塞或根序列规划是否冲突。

三、前导码的数学设计:为什么偏偏是ZC序列

敲门声可以随便设计吗?不行,这段信号要在无调度、低信噪比、大时延扩展的环境下被检测出来,还必须支持几十个UE共用一组资源。5G(和4G一脉相承)选择了 Zadoff-Chu(ZC)序列,它的性质简直是为此量身定做的。

长度为 $N_{ZC}$ 的根ZC序列定义($u$ 为根指数,需与 $N_{ZC}$ 互质):

$$x_u(n) = \exp\left(-j\frac{\pi u \, n(n+1)}{N_{ZC}}\right)$$

它有三条“超能力”,每一条都对应随机接入的一个工程难题:

ZC序列性质 数学表述 解决的工程问题
恒包络(CAZAC) 所有采样点模值恒为1 信号峰均比低,UE功放成本低、发射效率高
理想自相关 与自身循环移位版本的相关为零,仅在移位点出现尖峰 基站做相关检测时尖峰位置=传播时延,一次检测同时完成存在性判断+TA测量
理想互相关 不同根序列间互相关恒定为 $1/\sqrt{N_{ZC}}$ 多个UE同时用不同前导码互不干扰,且相邻小区可以用不同根序列组隔离干扰

第二条尤其妙:基站把接收信号与本地ZC序列做相关运算,相关峰出现的位置就直接给出往返时延,进而得到距离:

$$d = \frac{c \cdot \tau}{2}$$

也就是说,前导码既是“敲门声”,也是一把“测距尺”——Msg1一响,基站连你大概多远都知道了,这就是后续TA命令的来源。

从一根序列到64个前导码

每个小区要提供64个候选前导码。做法不是存64段序列,而是利用“循环移位仍正交”的性质:把一根长度839的根ZC序列循环移位,每移 $N_{CS}$ 个采样点生成一个新前导码($N_{CS}$ 是零相关区/循环移位间隔,由SIB广播)。

flowchart TD
    R["根ZC序列 u=物理根序列号<br/>长度839(长格式)"] -->|"循环移位0"| P0["前导码0"]
    R -->|"循环移位 N_CS"| P1["前导码1"]
    R -->|"循环移位 2·N_CS"| P2["前导码2"]
    R -->|"..."| PX["......"]
    R -->|"循环移位 k·N_CS"| PK["前导码k-1"]
    P0 & P1 & P2 & PK --> T{"k个移位够64个吗?"}
    T -->|"839/N_CS ≥ 64, 单根够用"| OK["1个根序列服务本小区"]
    T -->|"839/N_CS < 64, 单根不够"| M["多个根序列拼出64个<br/>→ 需要邻区根序列规划"]

$N_{CS}$ 的两难:半径与速度的博弈

$N_{CS}$ 不能随便小。它必须盖住两部分不确定性:最大往返传播时延(决定小区半径)和多普勒频移对相关峰的展宽(决定可容忍的UE速度)。简化关系为:

$$R_{max} \approx \frac{c \cdot N_{CS}}{2 \cdot N_{ZC} \cdot \Delta f_{RA}}$$

代入一个真实算例:长格式前导码 $N_{ZC}=839$、$\Delta f_{RA}=1.25\,\text{kHz}$,取 $N_{CS}=13$,则 $R_{max} \approx 3\times10^8 \times 13 / (2\times839\times1250) \approx 1.86$ km——这正是教科书上“NCS=13对应约1.9公里低速率小区”的出处。

这带来一个现网最常见的规划权衡:$N_{CS}$ 越大,抗时延/抗频偏能力越强,但一根根序列能切出的移位前导码越少。城区小小区用小 $N_{CS}$,一根根序列就够64个前导码;高铁沿线既要超远覆盖(Format 1长前导码,序列长达3ms、覆盖可达上百公里量级)又要抗350km/h的多普勒,$N_{CS}$ 被迫取很大,于是需要占用好几根根序列,而相邻小区必须规划不同的根序列组,否则跨小区前导码虚警(ghost preamble)会让基站“听见不存在的敲门声”。根序列规划冲突,是RACH类无线投诉排查中的经典病根。

四、四步握手:每一步都在防一个错

竞争随机接入的标准流程是四步,业内俗称 Msg1~Msg4。我们结合两个UE同时敲门的场景看时序:

sequenceDiagram
    participant UE1 as UE-A
    participant UE2 as UE-B
    participant gNB as gNB

    Note over UE1,UE2: 两者恰好选中同一前导码, 同一PRACH时机发送
    UE1->>gNB: Msg1: 前导码#12 (RA-RNTI对应资源位置)
    UE2->>gNB: Msg1: 前导码#12 (同一时机, 发生碰撞)
    gNB->>gNB: 相关检测: 发现前导码#12有能量, 测得TA
    gNB-->>UE1: Msg2: RAR (TA指令+上行授权+临时C-RNTI)
    gNB-->>UE2: Msg2: RAR (同一个响应, 双方都收到)
    Note over UE1,UE2: 灾难点: 两者以为都接入成功
    UE1->>gNB: Msg3: RRCSetupRequest (携带UE身份)
    UE2->>gNB: Msg3: RRCSetupRequest (不同身份, 空口互踩)
    gNB-->>UE1: Msg4: 竞争解决(回显UE-A的身份)
    Note over UE1: UE-A: 收到自己的身份→接入成功
    Note over UE2: UE-B: 身份不符→接入失败, 退避重试

Msg1:发前导码。 UE从64个候选中随机选一个,在PRACH时机上以初始功率发送。发射功率由广播参数给出目标值(preambleReceivedTargetPower),失败后逐步爬坡。

Msg2:随机接入响应(RAR)。 基站在一个由资源位置算出的固定窗口内(典型10ms量级)发送响应,UE用 RA-RNTI 去PDCCH上盲检属于自己的响应。RA-RNTI完全由UE所用的资源位置决定:

$$\text{RA-RNTI} = 1 + s_{id} + 14\,t_{id} + 14\times80\, f_{id} + 14\times80\times8\, u_{carrier}$$

其中 $s_{id}$ 是PRACH时机的起始OFDM符号号、$t_{id}$ 是帧内时隙号、$f_{id}$ 是频域编号、$u_{carrier}$ 区分正常/辅助上行载波。UE没有报任何身份,基站凭什么“回信”给你?靠的就是约定的资源位置编码——你几点几分在几号窗口敲的门,就是你临时的身份号。RAR里携带三样东西:TA指令(约12bit)、上行授权(调度Msg3)、临时C-RNTI。UE从此有了上行“发言权”。

Msg3:亮明身份。 第一次接入时,UE通过RRC信令(RRCSetupRequest)携带自己的正式身份(如核心网分配的标识或随机值)。这一步开始才走普通的HARQ重传。

Msg4:竞争解决。 这是四步设计中最具巧思的一环。如时序图所示,两个UE撞了前导码后会收到同一份RAR,双方都以为自己成功了,并在相同的授权资源上发Msg3——空口互相踩踏。网络必须做个了断,两种机制:

同时,Msg4成功后临时C-RNTI“转正”为该UE的C-RNTI。整套设计用最少的信令轮次把碰撞、误判、身份冒用全部兜住——这就是“为什么是四步而不是三步或五步”的答案:前两步建立同步与资源,后两步完成身份确认与冲突仲裁,缺一不可。

五、失败了怎么办:功率爬坡、退避与重试的天花板

随机接入本质上运行在无调度、无反馈的信道上,失败是常态,协议用三个参数把“韧性”和“稳定性”平衡起来:

flowchart TD
    S["发送前导码(第N次尝试)"] --> W{"窗口内收到Msg2 RAR?"}
    W -->|"是"| C{"Msg4竞争解决成功?"}
    C -->|"是"| DONE["接入成功<br/>临时C-RNTI转正"]
    C -->|"否"| FB["回落: 视为本次失败"]
    W -->|"否"| HB["失败处理"]
    FB --> HB
    HB --> P{"尝试次数达到上限?"}
    P -->|"否"| BK["按广播的退避参数<br/>随机等待0~Backoff时间"]
    BK --> RP["功率提高一个步长(典型2~4dB)<br/>重选前导码, 回到发送"]
    P -->|"是"| FAIL["宣告随机接入失败<br/>触发链路失败/重建/重选小区"]

六、5G的两点增强:让敲门声“带波束信息”和“只敲一次”

5G在继承四步框架的同时,做了两项针对自身痛点的改造。

第一,SSB与前导码资源的关联映射。 上一轮讲波束赋形时提到,毫米波基站用几十个窄波束扫描覆盖。如果UE发的Msg1不带波束信息,基站就不知道该往哪个波束方向回RAR。5G把SSB波束与PRACH时机/前导码分组做了周期性关联:UE选中哪个SSB,就只在与该SSB关联的时机上发对应分组的前导码。基站收到Msg1,立刻知道“这个UE在我的几号波束方向上”,后续RAR、Msg3、Msg4全部用这个波束对准它。前导码从纯粹的同步信号,升级成了携带波束方向信息的粗定位信令——这是5G RACH相比4G最本质的增强,也是现网波束类参数(如每SSB的PRACH配比)优化的原理基础。

第二,两步随机接入(2-step RACH),四步压缩成两步。 四步流程在低时延和高密度场景下偏重:海量物联网终端每次唤醒都走四步,信令开销占比过高;URLLC业务对1~2ms的额外时延敏感。于是标准演进后期(Rel-16起商用化)引入两步方案:

$$\text{MsgA} = \text{Msg1(前导码)} + \text{Msg3(PUSCH数据)}, \quad \text{MsgB} = \text{Msg2(RAR)} + \text{Msg4(竞争解决)}$$

维度 四步接入 两步接入
空口轮次 4次(2次上行+2次下行) 2次(MsgA上行、MsgB下行)
时延 约2个RTT以上 约减半
信令开销 每次接入4条消息 高密度小包场景显著降低
碰撞影响 仅Msg1碰撞,Msg3可用HARQ挽救 MsgA中PUSCH部分也会碰撞,冲突代价更高
覆盖 前导码+Msg3独立优化 PUSCH与前导码同传,边缘UE可回退四步
典型场景 通用、覆盖受限小区 小包高频唤醒(IoT)、低时延业务

注意最后一列的“回退”:若MsgB迟迟未到,UE按网络配置自动降级回四步流程继续(把已发的MsgA当作Msg1,走Msg2~Msg4)。这种“两步为主、四步兜底”的双轨设计,让运营商可以按小区负荷和业务画像灵活开关——现网参数上体现为msgA相关配置与回退开关。

七、现网视角:工程师会在哪里遇到这些原理

理解原理的最终目的是排障。随机接入相关知识在日常工作中有四个高频落点:

  1. RACH成功率KPI分层看。运营商网管通常拆成三级:Msg1检测率(前导码被收到)、Msg2成功率(响应送达)、Msg4竞争解决成功率。Msg1差→覆盖/上行干扰/PRACH配置问题;Msg2差→下行覆盖或响应窗口配置问题;Msg4差→前导码拥塞或冲突率高。分层定位比笼统的“接入失败率”高效得多。
  2. 根序列规划。跨小区根序列/前导码组若规划冲突,会产生虚警前导码(把邻区用户认成自己的),表现为“无故的Msg1→无Msg2”,在高铁、高架、水面等超远覆盖场景尤其高发。排查口诀:先查NCS是否匹配小区半径与车速,再查邻区根序列组是否正交分配。
  3. PRACH时机密度与容量。PRACH时机的时频密度决定了每秒能承载的接入尝试数。大型场馆、地铁站等高密度场景,接入风暴(如球赛散场)会体现为前导码拥塞——调整时机密度、增配专用前导码分组,是无线优化常规手段。
  4. 切换失败先看RACH。切换的最后一步常常是向目标小区发前导码。若目标小区RACH配置(格式、NCS、根序列)与实际覆盖半径不符,切换必然高失败。跨厂商边界交接时,RACH参数表不一致是经典坑位。

常见调试陷阱还有一个:把RACH失败笼统归因为“信号弱”。实际上RA-RNTI算错导致的PDCCH盲检落空、Msg3上行授权过小、竞争解决计时器过短等信令层问题,症状与覆盖差一模一样。遇到疑难,抓一份空口信令看Msg1~Msg4到底断在哪一步,永远比看路测RSRP猜更可靠。

常见问题

Q: 前导码(Msg1)和Msg3都从UE发出,为什么Msg1不走HARQ重传而Msg3走? A: 因为两者可靠性的实现机制不同。Msg1是ZC序列,本身没有信息承载,靠功率爬坡+多次重发换取检测概率,协议层面就是“发一次赌一次、输了加码再来”;而Msg3是真正的数据(携带RRC信令),已有上行同步和调度授权,可以走标准的HARQ+自适应重传机制,效率更高。这是“无反馈信道用扩频/爬坡,有反馈信道用重传”的典型分工。

Q: 64个前导码是每个小区独享的吗?相邻小区会互相干扰吗? A: 不是独享。64个前导码是每小区的逻辑编号空间,相邻小区若使用相同的根序列组,同一编号在两小区可能对应相同序列,边缘UE的发送会被邻区误检(虚警)。规划上通过给相邻小区分配不同的物理根序列号区间来隔离;$N_{CS}$ 越大每根序列切出的前导码越少,占用根序列越多,邻区规划越紧张——这就是高速/超远覆盖场景根序列资源“不够分”的根源。

Q: 随机接入和CDMA有什么关系?都用了扩频码? A: 思想同源但用途不同。CDMA用扩频码区分长期并行的多个用户(每个用户始终占用一个码道);随机接入的ZC前导码只用于瞬时的“存在性宣告”,一次接入结束后码资源即释放。两者都利用了“良好相关特性的码字正交/准正交”这一数学武器,但随机接入还要额外解决“无调度下的碰撞仲裁”,所以有了四步握手;CDMA用户间有网络统一调度功率,不需要仲裁环节。

Q: 切换时用CFRA,为什么有时还是看到切换过程走了CBRA? A: CFRA需要目标小区预先指配专用前导码并通过切换命令下发。当目标小区RACH资源紧张、或跨厂商接口未协商专用前导码、或专用前导码发送后超时无响应时,UE会回退到竞争流程。所以现网“切换RACH方式”是协商结果而非固定属性,排查切换时延偏大时,先确认实际走的是哪条路径。

Q: 两步接入会全面取代四步接入吗? A: 不会。两步在低时延和信令开销上占优,但MsgA把前导码和数据捆绑发送,碰撞时损失更大,且对覆盖边缘的PUSCH功率要求更高。四步凭借“先轻后重”的分步设计(先确认同步再传数据)在覆盖受限和低负荷场景更稳健。两者是互补关系:网络按小区的业务画像配置,UE按网络指示选用,失败自动回退——这也是移动通信标准设计的一贯哲学:不给单一场景开特效药,给所有场景留退路。

参考来源

  1. 《通信原理》(樊昌信等)及3GPP NR无线协议类教材 — 本文ZC序列公式、$N_{CS}$ 与小区半径关系、RA-RNTI构成、功率爬坡机制等教科书内容的体系化参照

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入