<!-- title: 5G两步随机接入信令全链拆解 -->
<!-- domain: ran -->

# 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路径**：

```mermaid
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配置的资源映射关系一一绑定：

```mermaid
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提升并发能力的关键之一。

```mermaid
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对应一种应答语义：

```mermaid
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在竞争解决上的本质差异**：

- **fallbackRAR路径**退化为完整4-step：UE发Msg3后，必须等gNB回Msg4，Msg4里携带的 `UE Contention Resolution Identity`（即UE在Msg3/MsgA负载中CCCH SDU前48比特的回显）与UE自身匹配，才算竞争解决成功。
- **successRAR路径**省去了Msg4：因为MsgA的PUSCH负载本身就携带了UE的唯一标识（如 `RRCSetupRequest` 中的39位或5位UE Identity），gNB**已成功解码该负载**即意味着该UE的接入请求被唯一识别，successRAR中携带的（TC-）C-RNTI直接完成身份固化，竞争解决"隐式"完成。这正是2-step省时延的核心来源。

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在同一状态机内的耦合关系，特别是三条关键的"流转边"：

```mermaid
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的几个深层设计哲学：

- **快路径与慢回退并存**：successRAR提供时延最优的快路径，fallbackRAR和msgA-TransMax回退保证在最坏情况下性能不劣于4-step。这种"best-effort升级"是R16增量式标准演进的典型范式——新机制必须保证在退化的情况下**不引入新的失败风险**。
- **资源耦合提升并发**：preamble与PO/DMRS的映射使2-step在不增加preamble数量（仍64个）的前提下，依靠PUSCH维度的复用提升了同时接入的UE数量，这对密集场景（如体育馆、高铁）意义显著。
- **链路自适应的模式选择**：RSRP门限把"选哪种RACH"的决定权交给UE侧的实时测量，让网络侧配置与UE侧信道状态协同，比静态指派更鲁棒。
- **最大化复用已有机制**：fallbackRAR字节级复用Msg2 RAR、Msg3/Msg4完全复用4-step流程、TC-RNTI/C-RNTI生命周期一致——标准在"新"与"兼容"间取得了精妙平衡。
## 常见问题

**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](https://www.3gpp.org/dynareport/38321.htm) — 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](https://www.3gpp.org/dynareport/38300.htm) — 随机接入总体描述与2-step RACH定位
3. [ShareTechnote — 5G RACH (2-step)](https://www.sharetechnote.com/html/5G/5G_RACH_2step.html) — MsgA/MsgB与4-step对照的可视化解读
4. [WirelessBrew — 2-Step RACH MsgB Reception (Part 2)](https://wirelessbrew.com/5g-nr/2-step-rach-msgb-reception-part2/) — MSGB-RNTI、DCI 1_0调度与msgB-ResponseWindow监听细节
5. [Cafetele — 5G NR Random Access Procedure](https://www.cafetele.com/articles/article-5g-nr-random-access-rach.html) — 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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
