首页 › deep-tech › 举手抢话筒:随机接入原理

举手抢话筒:随机接入原理

一、手机开机后最尴尬的瞬间

想象你走进一个坐满陌生人的礼堂,想上台发言。台上的主持人一直在讲话(基站的下行广播信号,谁都能听),所以你听得懂会场规则;但主持人不知道你是谁、坐在哪一排、离台有多远——而话筒只有一支,时机也只有一份。

手机开机的那一刻就是这种处境。它能通过下行同步信号“听懂”基站广播的一切:频率、帧结构、小区配置。可反过来,基站对它一无所知:不知道它存在,不知道它距离几百米还是几十公里,更没有给它分配过任何上行资源。上行链路上所有常规信道——业务数据、控制反馈、探测信号——全都默认“你已经校准好了时钟、已经拿到了资源许可”。唯独随机接入(RACH)什么都不假设。它是整张网的前门,也是上行链路唯一的“无票入场通道”。

很多人第一次接触 RACH 都会问:为什么搞得这么麻烦?答案是一个经典的鸡生蛋困境——手机想申请资源就得先说话,可说话本身就需要资源。随机接入就是为了打破这个死循环而专门设计的“免调度开口机制”。

二、一次举手,四重使命

随机接入一次要同时解决四件事,理解了这四件事,后面所有看似繁琐的设计都能对上号:

  1. 报到:让网络知道“有人想入网”;
  2. 测距对时:基站测量前导码晚到了多少,换算出手机该把上行时钟提前多少(定时提前),否则后续所有上行信号都会漂出接收窗口;
  3. 发放第一张许可:给手机分配第一块上行资源,让它有机会“自报家门”;
  4. 解决抢座冲突:多部手机可能同时举手,必须有机制裁定谁是赢家。

任何一次切换、一次失步恢复、一次波束失败自救,本质上都绕回这四件事——因为触发随机接入的场景虽然五花八门,但病根都是同一个:上行时钟不可信了。

flowchart TD
    A["什么情况下需要随机接入"] --> B["开机第一次入网"]
    A --> C["切换到新小区"]
    A --> D["闲置太久<br/>上行时钟已失步"]
    A --> E["申请资源一直没人理<br/>调度请求失败"]
    A --> F["波束突然失效<br/>需要换天线救场"]
    B --> G["手机自己发起<br/>只能走竞争模式"]
    D --> G
    E --> G
    C --> H["网络早有安排<br/>发专属前导码免竞争"]
    F --> H

注意这张图的分岔:手机主动发现的场景只能走“竞争模式”(谁都有份抢);而网络主动安排的场景(切换、波束恢复)可以提前塞给手机一个专属前导码,走“免竞争通道”。这个区别是理解整个机制的钥匙,后面细讲。

三、64 声哨子:前导码的设计智慧

3.1 只带 6 个比特的开场白

竞争模式下,每个小区预备了 64 个前导码,手机随机挑一个发出去。算一下信息量:$\log_2 64 = 6$,整个 Msg1 只携带 6 个比特。这是全网最“话少”的一条消息,但它必须在一无所知的条件下被基站可靠检测到——甚至基站连它什么时候到、从哪个方向来都不清楚。所以前导码的全部智慧都压在了波形设计上,这就是 ZC(Zadoff-Chu)序列。

$$x_u(n)=\mathrm{e}^{-\mathrm{j}\pi u n(n+1)/L_{\mathrm{RA}}},\quad n=0,1,\dots,L_{\mathrm{RA}}-1$$

为什么偏偏选它?两大性质堪称为此量身定做:

$$R(k)=\sum_{n=0}^{L_{\mathrm{RA}}-1}x(n)\,x^{*}\big((n+k)\bmod L_{\mathrm{RA}}\big)=\begin{cases}L_{\mathrm{RA}}, & k=0\ 0, & k\neq 0\end{cases}$$

直觉上可以这样理解:把序列想象成一条环形跑道上的脚印图案。拿着复印的图案沿跑道错位对比——只要错开哪怕一格,图案就完全不重合(相关值为零);只有转到完全对齐的那一点,才出现一根又高又尖的“针峰”。这根针峰出现的位置,恰好就是前导码晚到的时间——一举两得:峰在哪个“移位档位”说明手机选的是哪个前导码(谁在举手),峰偏移了多少说明传播时延多大(他离多远)。

3.2 同一条旋律,从不同小节开口

一个小区要 64 个前导码,如果用 64 条互不相干的序列,彼此互相关就不会理想,容易误检。工程师的解法极其省料:只用一条根序列,做不同的循环移位。类比:同一段旋律,有人从第 1 小节开口,有人从第 5 小节开口——旋律“指纹”相同,但起点错开,接收机靠相关峰的位置就能区分,且只要移位间隔足够大,二者完全正交。

$$\text{单根序列可派生前导码数}=\left\lfloor \frac{L_{\mathrm{RA}}}{N_{\mathrm{cs}}} \right\rfloor$$

这里的 $N_{\mathrm{cs}}$(移位间隔)是现网最“物理”的一个参数——它直接编码了小区半径。间隔必须大于最远用户的往返时延加多径扩展,否则远端用户的峰就会“串档”到近端用户的移位格子里。于是出现一条工程铁律:小区越大 → 移位间隔越大 → 单根序列派生出的哨子越少 → 需要动用更多条根序列才能凑满 64 个。举个量级估算:5 公里半径的小区,往返时延约 33 微秒,单根序列大约只能派生十几个前导码,凑齐 64 个得占用 4 条根序列。邻区之间的根序列必须错开规划——这就是无线优化里经典的“PRACH 根序列规划”,思路和 PCI 规划如出一辙。规划不当的典型症状是“前导码污染”:邻区的用户被本小区误检成幽灵举手,白白消耗应答资源。

另外还有个高铁专属细节:350 公里时速带来的多普勒频移会把相关峰“晃”出虚假的鬼峰,造成误检。解决办法是把高速场景下容易混淆的那些移位档位拉黑禁用(受限集模式),代价是单根序列可用的哨子更少。普通小区用不上,铁路沿线小区必开。

3.3 长哨与短哨

序列之外还有“格式”之分,本质是在覆盖距离、抗噪能力、时间开销之间做取舍:

维度 长前导码 短前导码
序列长度 839 139
子载波间隔 1.25 / 5 kHz 15/30/60/120 kHz
可用频段 仅低频大塔(FR1) 低频毫米波(FR1/FR2)都行
家族成员 0、1、2、3 四种 A1-A3、B1-B4、C0、C2 九种
设计取向 单发长音够得远 短促可重复,帧结构对齐数据,便于波束逐个扫射接收

长格式家族的分工一目了然:

格式 子载波间隔 序列重复 大致撑得起的小区 典型用途
0 1.25 kHz 1 次 约 14.5 公里 默认宏站
1 1.25 kHz 2 次+超长前缀 约 100 公里 草原、海面超大区
2 1.25 kHz 4 次 约 22 公里 靠重复次数换覆盖
3 5 kHz 4 次 约 14.5 公里 高铁(间隔加宽抗多普勒)

规律很朴素:够不着就重复几遍,重复次数就是覆盖增益;距离特别远就拉长循环前缀,容忍更晚的到达。选格式的原则是“够用就好”——给 500 米的小站配百公里格式,等于让哨声占满整条跑道,随机接入机会变稀,高峰期冲突概率反而飙升,把覆盖问题换成了接入拥塞问题。

四、四步握手:从哨声到工位

竞争模式的标准流程是四步,一套完整的“举手—递话筒—自报家门—发工牌”礼仪:

sequenceDiagram
    participant U as 手机
    participant G as 基站
    Note over U,G: 竞争模式的四步握手
    U->>G: Msg1 哨声前导码(64选1)
    G->>U: Msg2 应答(提前量+许可+临时号牌)
    U->>G: Msg3 连接请求(自报家门)
    G->>U: Msg4 竞争解决(复述身份确认)
步骤 学名 里面装了什么 类比
Msg1 前导码 64 选 1 的签名,发在专用时频格上 举手吹哨
Msg2 随机接入响应 定时提前 + 首张上行许可 + 临时号牌 老师点名递话筒
Msg3 第一句正式话 带身份的连接请求 自报家门
Msg4 竞争解决 回显身份,颁发正式身份 复述确认,发工作证

四步里藏着两个精彩的设计巧思,值得单独拎出来讲。

巧思一:没有名字,就用“时间+地点”当名字。 手机发 Msg1 时还没有任何身份,基站怎么把应答精准递给它?答案是基站按“你在哪个符号、哪个时隙、哪个频率格喊的哨”计算出一个临时编号(RA-RNTI),并用它加扰应答的控制信道:

$$\text{RA-RNTI}=1+s_{\text{id}}+14 \times t_{\text{id}}+14 \times 80 \times f_{\text{id}}+14 \times 80 \times 8 \times \text{载波号}$$

手机自己也会算同一个数——“我是下午三点在 3 号窗口喊的话”,于是它只盯着这个编号等应答。好比酒店前台喊:“3 号窗口刚才喊话的那位客人,请来取您的房卡。”不需要知道姓名,也不会递错人。这就是无身份通信里“用时空坐标替代身份”的经典思路。

巧思二:Msg2 一次塞齐三件套。 应答里同时装着:定时提前命令(校表)、上行许可(第一批资源,指明 Msg3 用什么时频资源、什么调制编码发送)、临时号牌(供 Msg3 和后续信令使用)。手机拿到提前量后立刻校准上行时钟——从此刻起,它发的信号才第一次“落进”基站的接收窗内。也就是说,Msg3 是手机人生中第一次按时到达的上行传输,此后常规的调度通信才成为可能。

五、撞哨之后:竞争解决

为什么递完话筒还不能散场?因为 64 个哨子里,甲乙两人可能恰好选了同一个。两人同时举手,基站只听到“一声”,于是只发一份应答——两人都以为话筒是自己的,挤在同一块资源上同时开口。接下来分三种结局:

flowchart TD
    A["甲乙同选一号哨声"] --> B["基站只听到一声举手"]
    B --> C["回同一张上行许可"]
    C --> D["两人挤同一资源发言"]
    D --> E["基站只成功听清甲"]
    E --> F["Msg4回显甲的身份"]
    F --> G["甲对上暗号<br/>临时号牌转正"]
    F --> H["乙发现不是自己<br/>按随机时长退避"]
    H --> I["加大音量换哨声<br/>从头再来"]

输家的退避也是设计过的:基站可在应答里捎带一个“退避指示”,告诉大家“接下来随机等这么久再来”,负载越高退避越久,把重试洪峰摊平。这套“随机签名+共享资源+事后裁定”的组合拳,本质上是把一场不可协调的混战,规范成了一场有仲裁的拍卖。

首轮叫价也有讲究:64 个哨子可以分成 A、B 两组,B 组留给“我要说的话比较长”的用户。选 B 组等于提前告诉基站“给我多批点资源”,基站据此调整 Msg3 的授权大小,省一次讨价还价。

六、没人理怎么办:功率爬升的礼貌

手机第一次举手该用多大嗓门?它没有闭环功控可用(还没建立连接),只能开环估算:拿刚测到的广播信号强度推算路径损耗,瞄准基站在广播里公布的“期望接收功率”发哨。估算总有失手,于是配了一套爬升机制:

$$P_{\text{PRACH}}=\min\big(P_{\text{max}},\;P_{\text{目标}}+\Delta P_{\text{格式}}+(\text{失败次数}-1)\times \text{爬升步长}\big)$$

第一次没回音,就按步长(典型 2~6 dB)加一档再来,直到成功或撞上最大尝试次数上限——撞上限就意味着“本小区接入失败”,手机只能换个小区重头再来。像极了课堂举手:先安静举手,没人理就站起来挥手臂,再没人理就只能喊了。还有一个容易被忽略的细节:如果手机中途换了波束重试,爬升计数不累加——因为新波束的开环估算基准变了,带着旧波本的“嗓门惯性”反而会喊过头、干扰别人。

顺带一提,这台“加法器”是接入类投诉的第一现场:用户感知到的“没信号、打不出电话”,很多时候不是业务信道坏了,而是哨声压根没被听到。

七、贵宾通道:免竞争随机接入

切换是时延敏感操作——源站已经决定把你送过去,目标站知道你马上到,这种时候还让用户去 64 选 1 地撞运气,既慢又险。所以网络会在切换命令里直接指定:用第几号哨子、在哪个时频格发。专属资源无人共享,自然无冲突、无需第四步——应答一到,接入即宣告完成,前后只需一个来回。波束失败恢复、网络主动唤醒失步用户等场景同样走这条贵宾通道。

代价是要预留专属哨子(从 64 个里切走一部分),所以它只用于“网络能提前预知”的场景。凡是手机自己突然想说话的场合,永远只能走竞争通道——没人能预知你什么时候要开口。这就呼应了第二节的分岔:发起方是谁,决定了通道形态。

八、两步 RACH:一口气说完

四步流程要两个完整往返,对低时延场景(以及频谱要“先听后说”的非授权频段)来说太奢侈。于是两步 RACH 把四步合并:举手和自报家门一口气说完。

sequenceDiagram
    participant U as 手机
    participant G as 基站
    Note over U: 举手和自报家门一口气说完
    U->>G: MsgA 哨声+数据连发
    alt 基站全都听清了
        G->>U: MsgB 确认+提前量+正式身份
    else 只听到哨声没听清数据
        G->>U: MsgB 回退指示
        U->>G: 按老四步补发自报家门
    end

赌点很清楚:此时手机还没有定时提前,数据部分是在“不知道自己该提前多少”的情况下发出去的,距离一远就可能整体糊掉。所以两步 RACH 天生配了回退机制——基站听到哨声但没解出数据时,回一份“回退应答”,手机退回熟悉的四步轨道,前面那一脚不算白踢。实战中网络通常四步、两步并存,用一条信号质量门槛分流:信号好的近点用户走两步抢时延,边缘用户老老实实四步——反正他们走两步大概率也要回退,白白多烧一次上行资源。

维度 四步 两步
消息数 4 条(2 个往返) 2 条(1 个往返,最理想)
时延 高 低,接近省一半
上行资源开销 拿到许可才发数据 押注式先发数据,浪费风险高
抗大时延不确定性 强(先校时再说话) 弱(距离远自动回退)
适用场景 宏站、边缘、拥塞小区 小站、毫米波、小包低时延

九、现网连接:断在哪一步,药方完全不同

对无线工程师来说,随机接入的实战价值浓缩成一句话:接入类 KPI 掉了,先分段定位,再对症下药。整条链路恰好有四个断点,各自对应完全不同的病因和修法:

断点 现象 常见病因 药方方向
哨声没被听见 发了 Msg1 收不到 Msg2 覆盖空洞、目标功率偏低、邻区根序列串扰、响应窗口过短 提目标功率、换更长格式、重做根序列规划
自报家门丢失 应答收到但 Msg3 解不出 边缘上行链路预算不足、校时误差、重传耗尽 改 Msg3 传输格式、查上行覆盖——不是 PRACH 的锅
冲突率过高 竞争失败占比大 哨子数/机会数撑不住话务量 加频域复用、加密机会密度、调退避参数
爬到顶也失败 连续多次尝试后放弃 上述问题的总爆发,或爬升步长太小喊不响 先修前三类,再查功率参数

把端到端成功率按段拆成“哨声应答率 × 自报家门成功率 × 冲突解决率”,三段连乘,最矮的那块板就是瓶颈。现网最常见的误判是把一切都归咎于“Msg1 覆盖不行”——拉出分段计数器一看,真相往往是哨声顺利过关、应答也发了,最后死在 Msg3 的边缘上行质量上。这时再去加功率、改前导码格式,方向就全错了。另一个排查小技巧:手算一遍某次接入的 RA-RNTI(代入它用的时隙和频率格),核对基站是否真的在响应用这个编号喊话——不少集成联调阶段的“手机卡死在第一步”,最后发现是两边算出的编号对不上。

十、结语

回头看,随机接入的全部设计都在回答一个问题:一群互相不认识的设备,如何在没有协调的前提下,礼貌而高效地瓜分一次开口机会。ZC 序列用一根本旋律解决“听清谁在举手”;时空坐标当临时身份解决“应答递给谁”;四步握手中的回显机制解决“撞哨之后谁算数”;功率爬升和随机退避解决“失手之后如何体面地再来”。这套机制从第三代移动通信一路沿用至今,五代只是给它加了波束、加了短格式、加了“两步快车道”——骨架未变。理解了它,你不仅看懂了开机的第一秒,也看懂了切换、失步恢复、波束自救背后共同的底层逻辑:网络里最难的事情,从来不是传数据,而是让陌生人开始对话。

常见问题

Q1:随机接入的“随机”,到底随机在哪? A:不是随机挑时间。发送的时频位置由小区广播统一规定,人人相同。随机的是签名——在 64 个前导码里随机挑一个,相当于大家在同一个时刻、同一个窗口举手,靠不同的哨声区分彼此。所以“随机”准确说是“随机选码”,冲突也因此而来。

Q2:Msg1 只带 6 个比特,是不是太浪费一次传输了? A:恰恰相反,这是刻意为之。手机此刻上行完全不同步、没有资源、身份未知,任何“话多”的波形都发不动也解不出。6 比特的哨声换来的是基站侧的距离测量和一张上行门票——先用最便宜的信号建立对话通道,话留给后面说。

Q3:两部手机选了同一个前导码,就一定接入失败吗? A:不一定。若两部手机相距较远、到达信号强弱悬殊,基站可能把两条 Msg3 都解出来,冲突等于没发生;只有互相干扰到至少一条解不出时,才会通过身份回显裁定唯一赢家,输家退避重试。冲突是概率事件,不是死刑。

Q4:切换时还要随机接入,会不会把切换拖慢? A:正常不会。切换走的是免竞争通道:目标小区在切换命令里直接指定专属哨子,无冲突、无需第四步,一个往返即完成。只有专属哨子的应答迟迟不到(比如波束异常),手机才会退回竞争模式自行再试,这属于异常兜底路径。

Q5:既然两步 RACH 更快,为什么不全面替代四步? A:两步的本质是“没校时就先发数据”,赌的是距离近、时延小。小区边缘用户走两步,数据部分大概率糊掉、被迫回退四步,反而多烧一次上行资源还增加干扰。所以现网普遍两套并存,按信号质量门槛分流:近点抢时延,边缘求稳妥。

参考来源

  1. 5G NR RACH — ShareTechnote — 最详尽的 RACH 工程参考:前导码序列生成、13 种格式逐一图解、四步流程与实测日志
  2. 5G NR Random Access Procedure — CafeTele — 从原理到计数器、KPI 与优化手册的完整指南,本文实战与断点分析的主要参照
  3. 5G RACH Procedure Explained — CafeTele — 四步/两步随机接入的分步图解
  4. 5GNR 2-Step RACH — Techplayon — 两步 RACH 的消息结构与流程细节
  5. 2-Step RACH in Release 16 — WirelessBrew — MsgA 资源配置与选择逻辑

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