首页 › ran › 5G两步随机接入信令全链拆解

5G两步随机接入(2-step RACH)MsgA/MsgB全流程深度拆解

一、为什么需要两步随机接入:从四步到两步的演进动机

随机接入(Random Access,RACH)是UE从"非同步态"进入"与gNB上行同步"、并最终建立RRC连接的唯一入口。在3GPP R15中,NR沿用了LTE经典的四步随机接入(4-step RACH)流程:Msg1(Preamble)→ Msg2(RAR)→ Msg3(RRC请求+UE ID)→ Msg4(竞争解决)。这一流程在初始接入、切换、上行失步恢复、调度请求(SR)失败等数十种触发场景下被反复执行,其固有的"四次握手"结构带来了不可压缩的接入时延和较大的信令开销。

R16引入两步随机接入(2-step RACH)的根本思路,是把上行两次发送(Msg1+Msg3)合并为MsgA、下行两次响应(Msg2+Msg4)合并为MsgB,在信道条件良好、负载较低的场景下,用一次往返完成接入,把接入时延从约4个TTI级交互压缩到1个往返。其规范定义集中在 TS 38.321(MAC层)Section 5.1.1A(CBRA型2-step)与 5.1.1B(CFRA型2-step),物理层细节见 TS 38.213,RRC参数定义见 TS 38.331 中的 rach-ConfigCommonTwoStepRA / rach-ConfigDedicatedTwoStepRA。

理解2-step RACH的关键不是"少了两步"这一表象,而是它如何在保留4-step全部能力(含竞争解决、回退、功率攀升)的前提下,通过MsgA的复合结构和MsgB的三态响应(success/fallback/backoff)实现"快路径 + 慢回退"的双模设计。

二、整体信令时序:成功路径与回退路径

下图完整呈现了2-step RACH的成功路径、以及当gNB只解出Preamble却未解出PUSCH负载时的回退(fallback)到4-step路径:

sequenceDiagram
    participant UE
    participant gNB
    Note over UE,gNB: ===== 2-step RACH 主路径(成功) =====
    UE->>gNB: MsgA = MsgA-PRACH(Preamble) + MsgA-PUSCH(负载:CCCH SDU/如RRCSetupRequest)
    Note right of gNB: gNB同时尝试解码 Preamble 与 PUSCH 负载
    gNB-->>UE: (PDCCH) DCI 1_0 加扰 MSGB-RNTI
    gNB->>UE: MsgB = successRAR(TA + C-RNTI + TPC + 竞争解决)
    Note left of UE: 竞争解决成功,TC-RNTI升级为C-RNTI,接入完成

    Note over UE,gNB: ===== Fallback 路径(仅Preamble被解出) =====
    UE->>gNB: MsgA(Preamble + PUSCH 负载)
    Note right of gNB: Preamble OK, 但PUSCH负载解码失败
    gNB->>UE: MsgB = fallbackRAR(TA + UL Grant + TC-RNTI)  [结构等同Msg2]
    UE->>gNB: Msg3(PUSCH,使用fallbackRAR中的UL Grant)
    gNB->>UE: Msg4(竞争解决)
    Note left of UE: 退化为完整4-step流程

设计意图非常清晰:MsgA"一把梭"上行信息,MsgB按gNB解码结果灵活应答。若上行两次信息都被gNB成功接收,则2-step直通;若Preamble响了但负载没响(典型于PUSCH功率不足或负载碰撞),gNB不下发失败指示令UE重发MsgA,而是直接给一条fallbackRAR,复用已解出的Preamble(RAPID已知),让UE立刻进入Msg3→Msg4,避免浪费这一轮的前导码尝试。这是一种"尽力而为、能省则省、不行就回退"的渐进式设计。

三、MsgA的结构拆解:一份消息,两个信道

MsgA并非单一传输,而是在同一时刻或相邻时刻、由两个独立物理信道承载的两部分,二者通过RRC配置的资源映射关系一一绑定:

flowchart LR
    subgraph MsgA["MsgA 复合上行消息"]
        direction TB
        A1["MsgA-PRACH<br/>PRACH Occasion (RO)<br/>承载 Preamble (Zadoff-Chu序列)<br/>选自 64个preamble + SSB关联"]
        A2["MsgA-PUSCH<br/>PUSCH Occasion (PO)<br/>承载 MAC PDU 负载<br/>含 CCCH SDU(如RRCSetupRequest)<br/>+ DMRS + C-RNTI MAC CE(如已有)"]
        A1 -.->|"RO↔PO 映射<br/>1个preamble↔特定PO+DMRS"| A2
    end

MsgA-PRACH部分与4-step的Msg1在preamble选择逻辑上完全一致:UE根据SSB的RSRP测量选择一个SSB,在该SSB关联的PRACH Occasion(RO)中、从该SSB对应的preamble分组(Group A/B)里选一个preamble发射,并执行功率攀升(preambleReceivedTargetPowerMsgA + powerRampingStepMsgA)。

MsgA-PUSCH部分是2-step真正的增量。它本质上就是把4-step中Msg3的内容(典型如 RRCSetupRequest、RRCResumeRequest 等CCCH SDU)提前到第一次上行就发出去。它占用的是一个被RRC显式配置的 PUSCH Occasion(PO),并通过DMRS端口而非preamble来区分不同的UE尝试。关键在于:preamble与PO/DMRS之间有确定的映射关系——UE选定了哪个preamble,就唯一确定了它应使用哪个PO、哪个DMRS。这样gNB只要解出preamble,就知道去哪个PO、用哪个DMRS去解对应的PUSCH负载;如果两个UE碰巧选了同一个preamble但映射到不同PO/DMRS,就不会真正碰撞——这是2-step RACH相对于4-step提升并发能力的关键之一。

flowchart TB
    subgraph RRC["TS 38.331 关键配置参数"]
        direction TB
        C1["rach-ConfigCommonTwoStepRA<br/>(广播,公共)"]
        C2["msgA-PRACH-Configuration<br/>msgA-PUSCH-Configuration"]
        C3["msgA-TransMax<br/>(MsgA最大重传次数)"]
        C4["msgA-RSRP-ThresholdSSB<br/>(选2-step的RSRP门限)"]
        C5["powerRampingStepMsgA<br/>preambleReceivedTargetPowerMsgA"]
        C6["rach-ConfigDedicatedTwoStepRA<br/>(CFRA专用,切换场景)"]
    end

四、MsgB的三态响应与MAC PDU结构

MsgB是2-step RACH最精巧的部分。UE在发送MsgA后启动 msgB-ResponseWindow(一个独立于4-step ra-ResponseWindow的新定时器),在窗口内监听PDCCH,寻找用 MSGB-RNTI 加扰的 DCI format 1_0(对CFRA或已有C-RNTI的UE则用C-RNTI加扰)。该DCI调度的PDSCH承载的就是MsgB的MAC PDU。

MsgB的MAC PDU由一个或多个MAC子PDU(subPDU)串接而成,每种子PDU对应一种应答语义:

flowchart LR
    MPDU["MsgB MAC PDU"] --> S1["Backoff Indicator 子PDU<br/>仅含BI字段,无负载"]
    MPDU --> S2["fallbackRAR 子PDU<br/>子头(RAPID) + 7字节fallbackRAR<br/>结构=传统Msg2 RAR"]
    MPDU --> S3["successRAR 子PDU<br/>子头(RAPID+存在位图) + successRAR<br/>含TA+C-RNTI+TPC..."]
    S1 -.->|"T1/T2位区分"| Type["子头鉴别位<br/>区分三类subPDU"]
    S2 -.-> Type
    S3 -.-> Type

子头中的T1/T2鉴别位用于区分这是BI、fallbackRAR还是successRAR类型的子PDU,使一条PDSCH能在一个PDU里同时承载多种应答(例如给一个UE回successRAR、给另一个UE回fallbackRAR、并附带一个全局BI)。

三种子PDU的语义与IE对照如下表:

子PDU类型 触发条件 关键IE内容 UE后续动作
Backoff Indicator (BI) 小区负载高,整体抑制 BI(4bit,0~919ms量级回退值) 缩短/延后下次MsgA重传节奏
fallbackRAR Preamble解出、PUSCH负载未解出 TA(12bit) + UL Grant(27bit,调度Msg3) + TC-RNTI(16bit) 视作Msg2,按UL Grant发Msg3,再等Msg4竞争解决
successRAR Preamble与PUSCH负载均解出 TA + C-RNTI/TC-RNTI + TPC(给Msg3重传用) + 可选ChannelAccess-CPext(NR-U);子头第二字节为存在位图指示哪些可选字段出现 竞争解决成功:TC-RNTI升级为C-RNTI,接入完成

需要特别注意 fallbackRAR与successRAR在竞争解决上的本质差异:

successRAR子头之所以是两字节(比fallbackRAR子头多一字节),正是因为它需要一个存在位图(presence bitmap):successRAR是变长结构,TA、C-RNTI、TPC、NR-U信道接入字段是否出现,都由该位图指示,体现了MsgB对不同场景(如授权频段vs非授权频段NR-U)的灵活适配。

五、MAC随机接入状态机:2-step与4-step的耦合

UE侧的RA过程由 TS 38.321 Section 5.1 的状态机驱动。下图刻画了2-step RA与4-step RA在同一状态机内的耦合关系,特别是三条关键的"流转边":

stateDiagram-v2
    [*] --> SelectRA: RA触发(初始接入/切换/SR失败等)
    SelectRA --> TwoStep: 仅配置2-step 或 RSRP>=门限
    SelectRA --> FourStep: 仅配置4-step 或 RSRP<门限
    SelectRA --> TwoStepCFRA: 专用preamble(CFRA,切换)
    state TwoStep {
        [*] --> SendMsgA
        SendMsgA --> WaitMsgB: 启动msgB-ResponseWindow
        WaitMsgB --> Success: 收到successRAR
        WaitMsgB --> Fallback: 收到fallbackRAR
        WaitMsgB --> ResendMsgA: 超时,计msgA-TransMax
    }
    Fallback --> FourStepInner: 退化为Msg3→Msg4
    ResendMsgA --> SendMsgA: 重传(功率攀升)
    ResendMsgA --> SwitchTo4Step: 达msgA-TransMax
    SwitchTo4Step --> FourStep: 回退到4-step(若同时配置)
    ResendMsgA --> RAFP: 达msgA-TransMax且未配4-step → 上报RRC随机接入问题
    Success --> [*]: 接入成功
    FourStepInner --> [*]
    FourStep --> [*]

三条关键流转边的设计含义:

  1. RSRP门限选择(msgA-RSRP-ThresholdSSB):只有当测得SSB RSRP足够高(链路质量好,PUSCH负载大概率能一次解出)时,UE才选2-step;否则直接走4-step。这是一个链路自适应式的接入模式选择,避免在弱信号下反复发MsgA浪费上行资源。
  2. fallbackRAR内部回退:一旦在2-step中收到fallbackRAR,UE并不退出RA过程重启,而是"原地"切到4-step的Msg3/Msg4分支,复用已分配的TC-RNTI和UL Grant。
  3. msgA-TransMax触发的模式级回退:若MsgA重传次数达到 msgA-TransMax 仍未成功,且gNB同时配置了4-step(小区里两者并存是R16的典型部署),UE会整体回退到4-step RACH重新开始;若只配了2-step,则向高层上报随机接入问题(触发RRC重建等)。

六、2-step与4-step RACH核心机制对比

维度 4-step RACH (R15) 2-step RACH (R16)
消息数 Msg1~Msg4(4条) MsgA + MsgB(2条)
上行首次携带内容 仅Preamble(Msg1) Preamble + PUSCH负载(Msg3内容)
竞争解决 显式Msg4(回显48bit UE ID) successRAR隐式完成 / fallbackRAR退化为Msg4
接入时延(理想) ~4次往返 ~1次往返
PDCCH监听RNTI RA-RNTI(Msg2) / TC-RNTI(Msg4) MSGB-RNTI / C-RNTI(CFRA)
响应窗口定时器 ra-ResponseWindow msgB-ResponseWindow
主要适用场景 通用、弱信号、高负载 小区覆盖好、低负载、mmWave、NTN、URLLC、小数据传输(MSDT)
Preamble碰撞区分 仅靠preamble preamble + PO + DMRS 多维区分
失败回退 重传Msg1达preambleTransMax → 上报 重传MsgA达msgA-TransMax → 回退4-step 或上报

从R17/R18看,2-step RACH的适用边界还在持续扩张:R17将其与NTN(非地面网络)结合,利用2-step减少长传播时延下的握手次数;R17/R18的小数据传输(SDT/MSDT)也优先采用2-step,使UE在RRC_INACTIVE态就能用MsgA一并发完少量上行数据。

七、设计意图总结:为什么是"双模渐进"而非"全面替代"

梳理完整流程后,可以提炼出2-step RACH的几个深层设计哲学:

常见问题

Q1:2-step RACH中,如果两个UE选了同一个preamble会怎样? A:与4-step仅靠preamble区分不同,2-step中preamble还绑定了具体的PO和DMRS端口。两个UE即使preamble相同,若映射到不同的PO或DMRS,gNB仍能区分并分别解码各自的PUSCH负载。只有在preamble、PO、DMRS三者都相同时才发生真正碰撞,此时只有负载被成功解码的UE会收到successRAR,其余UE因收不到匹配响应而触发MsgA重传。

Q2:fallbackRAR和4-step的Msg2 RAR是一回事吗? A:在MAC RAR字节结构上完全一致——都是TA(12bit)+UL Grant(27bit)+TC-RNTI(16bit)共7字节。区别仅在于语义上下文:fallbackRAR出现在2-step的MsgB中,表示"Preamble我收到了但负载没解出,请按这个UL Grant发Msg3";UE收到后直接进入4-step的Msg3→Msg4分支,复用已分配的TC-RNTI。

Q3:successRAR为什么不需要单独的竞争解决消息(Msg4)? A:因为MsgA的PUSCH负载本身已携带UE的唯一标识(如RRCSetupRequest中的UE Identity)。gNB能成功解码该负载,就等于已唯一识别了发起请求的UE,不存在歧义。successRAR携带的(TC-)C-RNTI直接固化该UE身份,竞争解决"隐式"完成。这正是2-step省去一轮往返时延的根本来源。

Q4:UE什么时候选2-step、什么时候选4-step? A:由RRC配置和实时测量共同决定。若小区只广播了其中一种,则没得选;若两者并存,UE依据测得的SSB RSRP与门限 msgA-RSRP-ThresholdSSB 比较——高于门限(链路好)选2-step,低于门限选4-step。这是一种链路自适应式的接入模式选择,避免弱信号下反复发MsgA。

Q5:2-step RACH一定会比4-step快吗? A:不一定。它仅在"成功路径"(MsgA一次解出、收到successRAR)下更快,约省一个往返时延。但若频繁触发fallback(退化为完整4-step)或反复重传MsgA,实际时延可能反超直接走4-step。这就是为什么标准保留RSRP门限和msgA-TransMax回退——把2-step用在"它真正能赢"的场景。

参考来源

  1. 3GPP TS 38.321 — NR; MAC layer specification — Section 5.1.1A / 5.1.1B(2-step RA Type-A/Type-B流程)、Section 6.2.3A(MsgB MAC PDU结构)
  2. 3GPP TS 38.300 — NR; NR and NG-RAN Overall Description — 随机接入总体描述与2-step RACH定位
  3. ShareTechnote — 5G RACH (2-step) — MsgA/MsgB与4-step对照的可视化解读
  4. WirelessBrew — 2-Step RACH MsgB Reception (Part 2) — MSGB-RNTI、DCI 1_0调度与msgB-ResponseWindow监听细节
  5. Cafetele — 5G NR Random Access Procedure — Preamble功率攀升、计数器与4/2-step触发场景对比

本文由「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学通信知识星球海报-扫码加入