2-Step RACH
Understanding 2-Step RACH
Random access is how a UE establishes initial connection with a cell, performs handover, or recovers from beam failure. The legacy 4-Step procedure (Msg1-Msg4) was inherited from LTE and works reliably but requires four round-trips. In scenarios demanding ultra-low latency (factory automation, autonomous vehicles, AR/VR) or rapid beam recovery (mmWave), the 10-15 ms overhead is too high.
2-Step RACH compresses the procedure by having the UE transmit its data payload alongside the preamble. This is a calculated risk: without prior timing advance, the PUSCH portion of MsgA has reduced reliability. The gNB mitigates this by allocating wider timing tolerances in the PUSCH resources and using robust MCS (QPSK rate 1/2). If the PUSCH fails, the system gracefully falls back to the 4-Step procedure.
Msg1 (UE→gNB): PRACH preamble
Msg2 (gNB→UE): RAR (TA, UL grant, TC-RNTI)
Msg3 (UE→gNB): RRC request on PUSCH
Msg4 (gNB→UE): Contention resolution
Total: ~10-15 ms
2-Step RACH (Rel-16):
MsgA (UE→gNB): PRACH preamble + PUSCH payload
MsgB (gNB→UE): TA + C-RNTI + contention resolution
Total: ~5-8 ms
Fallback: If MsgA PUSCH fails, gNB sends RAR → UE continues with 4-Step Msg3/Msg4.
RACH Procedure Comparison
| Property | 4-Step RACH | 2-Step RACH |
|---|---|---|
| Messages | 4 (Msg1-Msg4) | 2 (MsgA, MsgB) |
| Latency | 10-15 ms | 5-8 ms |
| Reliability | Higher (TA before data) | Lower (no prior TA) |
| Coverage | Cell-edge robust | Requires good SINR |
| 3GPP Release | Release 15 | Release 16 |
| Use case | General access | URLLC, beam recovery |
Frequently Asked Questions
How does 2-Step RACH reduce latency?
Combines Msg1+Msg3 into MsgA and Msg2+Msg4 into MsgB, cutting four exchanges to two. Saves ~5-7 ms. Critical for URLLC (1 ms target), handover, and mmWave beam recovery where link interruptions must be minimized.
When does it fall back to 4-Step?
When channel conditions are poor (high path loss, low SINR) or after MsgA retries fail. The gNB can also force fallback by responding with a standard RAR instead of MsgB. Cell-edge UEs default to 4-Step for reliability.
What is MsgA structure?
PRACH preamble (timing estimation) + PUSCH payload (RRC request, BSR, optional small data). PUSCH uses robust MCS (QPSK R=1/2). If gNB decodes preamble but not PUSCH, it falls back to 4-Step gracefully.