想象你在嘈杂的菜市场里和朋友通电话。你喊一句"晚上八点见",对方没听清,问你"几点?"。这时候你有两种选择:
选择 A:把"晚上八点见"原封不动再喊一遍。 选择 B:换种说法补充信息——"我说的是 20 点整,太阳下山之后"。
显然,选择 B 提供了"新的、互补的"信息,比单纯重复一遍更容易让对方真正听懂。但选择 A 也不是毫无价值——人耳会本能地把两次听到的话"叠在一起"理解,第二次总比第一次清楚一点。
这个生活直觉,恰恰揭示了移动通信里两项最基础、也最精妙的技术:
这两者合在一起,构成了无线链路可靠性与效率的双闭环调节系统。任何一个做过网优或物理层调试的工程师,都绕不开它们。今天这篇,我们就把这套机制从直觉讲到公式,再到现网调试。
理解 HARQ,必须先搞清楚它"混合"的是哪两样东西。
FEC(Forward Error Correction)的思路是:发送端在数据里嵌入冗余校验位,接收端自己就能纠错,不用回传。 比如 LDPC 码、Polar 码、Turbo 码。
ARQ(Automatic Repeat reQuest)的思路是:靠 CRC 校验发现错误,错了就回 NACK 让发送端重传整个包。
HARQ = FEC + ARQ。关键创新不在于"会重传",而在于重传时不丢弃错误包,而是把多次接收的"软信息(soft bits,即带置信度的对数似然比 LLR)"在缓存里合并后再译码。
下表是三者的本质对比:
| 维度 | FEC | ARQ | HARQ |
|---|---|---|---|
| 纠错信息来源 | 发送端预先编码 | 重传同一包 | 重传 + 软合并 |
| 错误包处理 | 尝试纠错,失败丢弃 | 直接丢弃 | 缓存合并,不丢弃 |
| 是否需要反馈 | 否 | 是(ACK/NACK) | 是(ACK/NACK) |
| 时延 | 最低 | 较高(往返) | 中等(多进程缓解) |
| 频谱效率 | 冗余固定,有浪费 | 实际信道好时效率高 | 接近最优 |
flowchart TD
A[发送端 数据+CRC] --> B[FEC 编码<br/>加冗余]
B --> C[调制发送]
C --> D[接收端 译码]
D --> E{CRC 校验}
E -- 通过 --> F[ACK 上层]
E -- 失败 --> G[缓存软信息 LLR]
G --> H[NACK 请求重传]
H --> I[重传冗余版本]
I --> J[软合并后再次译码]
J --> E
style G fill:#ffe4b5
style J fill:#b5ffe4
这张图最关键的细节是 G 节点(缓存)和 J 节点(软合并)——这正是 HARQ 区别于普通 ARQ 的灵魂。
HARQ 重传时,"合并"具体怎么做?业界有两大流派。这是物理层面试和调测的高频考点。
做法:重传时发送和首次完全相同的编码比特(同一个冗余版本 RV)。
接收端把多次接收的软比特按最大比合并(MRC, Maximum Ratio Combining)叠加。由于每次接收的噪声近似独立,信号是相关的,合并后有效信噪比会累加:
$$ \gamma_{\text{eff}}^{(k)} = \sum_{i=1}^{k} \gamma_i \approx k \cdot \bar{\gamma} $$
对应合并增益(以 dB 计)约为:
$$ G_{\text{CC}} \approx 10\log_{10}(k) $$
也就是说,每重传一次,有效 SNR 大致提高 3 dB(理想情况下)。它的逻辑是:"我听不清,你就大声重复,我多听几次总能拼出来。"
做法:重传时发送不同的、新的冗余校验位(不同的冗余版本 RV0/RV1/RV2/RV3),每次都给接收端补充"新信息"。
随着重传次数增加,有效编码率不断下降(冗余越来越多):
$$ R_{\text{eff}}^{(k)} = \frac{K}{N_1 + N_2 + \dots + N_k} $$
其中 $K$ 是信息比特数,$N_i$ 是第 $i$ 次发送的编码比特数。它的逻辑是:"你听不清,我不重复原话,而是补充更多线索,让你从多个角度拼出全貌。"
5G NR 的数据信道(PDSCH/PUSCH)采用 LDPC 码,支持 RV0~RV3 四种冗余版本,以 IR 为主、CC 为辅——首次传 RV0(信息位优先),重传逐步补充冗余。下表是两者对比:
| 对比项 | Chase Combining (CC) | Incremental Redundancy (IR) |
|---|---|---|
| 重传内容 | 与首传完全相同 | 新的冗余校验位(不同 RV) |
| 增益来源 | 信噪比累加(MRC) | 有效编码率下降(信息量累加) |
| 性能(低 SNR) | 一般 | 更优 |
| 实现复杂度 | 低 | 高(需多 RV + 大软缓冲) |
| 5G NR 应用 | 辅助 | 主用 |
flowchart TB
subgraph CC[Chase Combining 追码合并]
A1[首次: RV0] --> A2[重传: RV0 完全相同]
A2 --> A3[合并: 信噪比累加<br/>γ_eff ≈ k·γ]
end
subgraph IR[Incremental Redundancy 增量冗余]
B1[首次: RV0 信息位] --> B2[重传: RV1 新冗余]
B2 --> B3[再传: RV2 更多冗余]
B3 --> B4[合并: 编码率下降<br/>信息量累加]
end
CC --> R1[增益型: 提高SNR]
IR --> R2[增益型: 提供新信息]
style A3 fill:#fff4cc
style B4 fill:#ccffcc
理解这两种合并方式,就理解了为什么 HARQ 比普通重传"性价比"高得多:每次重传都不是简单的重复劳动,而是在累积有效的解码资本。
HARQ 本质是停等协议:发一个包 → 等 ACK/NACK → 决定发新包还是重传。问题在于无线链路有往返时延(RTT)——从 PDSCH 发出到收到 HARQ-ACK,中间有若干个时隙的空档。如果只用一个进程"等回执",链路大量时间被浪费在等待上,吞吐量极低。
解决方案是 N 个 HARQ 进程并行流水作业。进程 1 发出去等回执的空档里,进程 2、3……继续发送,把链路时隙填满。对每个进程而言仍是"停等",但整体看是连续流水线。
5G NR 支持最多 16 个 HARQ 进程(典型配置 8 个)。每个传输块(TB)绑定一个进程号,ACK/NACK 也是按进程号反馈的。
sequenceDiagram
participant gNB as gNB(发送)
participant UE as UE(接收)
Note over gNB,UE: 进程号 P0~P7 并行流水
gNB->>UE: TB0 @ 进程0 (slot n)
gNB->>UE: TB1 @ 进程1 (slot n+1)
gNB->>UE: TB2 @ 进程2 (slot n+2)
Note right of UE: 处理+译码时延 K1
UE-->>gNB: ACK/NACK @ 进程0 (slot n+K1)
gNB->>UE: TB0'重传 或 TB8新包 @ 进程0
Note over gNB,UE: 进程0 的空档被进程1~7填满
5G NR 在上下行都采用异步 HARQ(LTE 上行是同步 HARQ)。"异步"意味着:重传的时机和占用的资源不是固定规则算出来的,而是由 DCI(下行控制信息)动态调度的。 这样做的好处是:
小贴士:HARQ-ACK 承载在 PUCCH(上行) 上反馈给 gNB;下行重传授权则通过 DCI 在 PDCCH 上指示。这点在抓包分析 PUCCH/PDCCH 时序时非常关键。
教材里常按"合并方式"把 HARQ 分三类:
记住一句话:Type III 是最通用的形式,CC 和 IR 都可视为其特例。 5G NR 实际上是 Type III 的灵活实现。
HARQ 解决的是"传错了怎么办",而 AMC 解决的是"一开始该怎么传"。
无线信道的质量(SNR/SINR)时刻在变:用户走近基站、被遮挡、高速移动,都会让 SINR 大幅波动。AMC 的思路是:
这就是 "看天吃饭"——天气好快马加鞭,天气差稳健前行。
| 参数 | 全称 | 含义 | 数值范围 |
|---|---|---|---|
| CQI | Channel Quality Indicator | UE 测量下行参考信号后上报的"信道质量打分",表示当前能支持的最高 MCS | 0~15(NR/LTE) |
| MCS | Modulation & Coding Scheme | 一个索引,映射到"调制阶数 + 编码率",进而决定传输块大小 TBS | 0~31(NR 主表) |
| BLER | Block Error Rate | 传输块 CRC 失败的比例 | 目标值通常 10%(eMBB) |
整个 AMC 的运作链条是:
这里的目标 BLER(典型 10%)是个精妙的设计选择。为什么不是 1% 那么低?因为:
$$ \text{首传选择过保守的 MCS} \Rightarrow \text{吞吐量损失} $$
如果一开始就追求极低 BLER,必然选低阶 MCS,浪费好信道的潜力。而残留的少量错误交给 HARQ 去补——这正是 AMC 与 HARQ 协同设计的精髓:AMC 负责"大致对",HARQ 负责"补漏"。 它们构成香农容量的工程逼近:
$$ C = B \cdot \log_2(1 + \text{SNR}) $$
AMC 让实际传输速率尽量贴近 $C$,HARQ 则在 $C$ 附近做精细修正。
5G NR 支持配置不同的目标 BLER:
| 业务类型 | 目标 BLER | 设计意图 |
|---|---|---|
| eMBB(大流量) | 约 10% | 重传兜底,最大化吞吐 |
| URLLC(低时延高可靠) | 约 1% 甚至 1e-5 | 首传即高可靠,少重传(重传=时延) |
| 语音 VoNR | 约 1%~10% | 平衡时延与效率 |
URLLC 之所以目标 BLER 压到 1%,是因为它的命门是时延——重传会显著增加端到端时延,必须靠"首传就够稳"来避免。
把前两节合起来,你会看到无线链路有两个嵌套的闭环控制系统:
flowchart TB
subgraph OUT[外环 AMC - 毫秒级 跟踪信道趋势]
U1[UE 测量 CSI-RS] --> U2[计算并上报 CQI]
U2 --> U3[gNB 选 MCS]
U3 --> U4[调制编码发送 TB]
end
subgraph IN[内环 HARQ - 亚毫秒级 纠正瞬时错误]
U4 --> I1[接收译码]
I1 --> I2{CRC 校验}
I2 -- 通过 --> I3[ACK 完成]
I2 -- 失败 --> I4[缓存软信息]
I4 --> I5[软合并重传 RV1/2/3]
I5 --> I1
I3 --> OOM[累计统计 BLER]
OOM -.BLER偏离目标.-> U3
end
style OUT fill:#e8f0ff
style IN fill:#ffe8f0
style OOM fill:#fff4cc
注意图里那条虚线——这是很多资料忽略的"BLER 外环":gNB 会统计实际 BLER,若长期偏离目标值(比如总是远高于 10%),就反过来微调 MCS 选择,形成第三重反馈。这就是 CSDN 教程里所说的 "AMC 双环控制"——CQI 是开环指令,BLER 统计是闭环修正。
| 调测指标 | 看什么 | 异常解读 |
|---|---|---|
| CQI 分布 | UE 上报的 CQI 直方图 | 长期低 CQI → 覆盖/干扰问题 |
| MCS 分布 | 调度器选用的 MCS 直方图 | 高 SINR 却用低 MCS → 链路自适应滞后 |
| 初传 BLER | 首传 CRC 失败率 | 远超 10% → AMC 过激或 SINR 估计偏差 |
| HARQ 重传率 | 平均重传次数 | 重传率高 → 信道波动大或 CQI 不准 |
| PUCCH ACK/NACK | 反馈时序 | NACK 集中 → 疑似干扰或功控问题 |
陷阱 1:以为"HARQ 重传率高=网络差" 其实不一定。AMC 故意把首传 BLER 设在 10%,意味着设计上就预期有约 10% 的包需要重传。重传是正常机制,关键是重传后能否成功(合并增益)。要看的是重传后仍失败的残留 BLER,而不是单纯的重传率。
陷阱 2:以为 CQI 越高一定越好 CQI 反映的是"UE 认为当前能承受的最高 MCS"。如果 CQI 反馈虚高(比如测量偏差、上行反馈受限),gNB 会选过激的 MCS,导致首传大量失败、重传飙升,反而拉低吞吐。CQI 的准确性比 CQI 的绝对值更重要。
陷阱 3:忽略 HARQ 反馈时序(K1) 5G 灵活的 K1 配置是双刃剑。配置不当会导致 ACK/NACK 错位、进程号错乱,表现为莫名其妙的丢包或重传风暴。调测时要核对 DCI 中的 PDSCH-to-HARQ_feedback timing indicator 与 UE 处理能力是否匹配。
陷阱 4:把 HARQ 和 RLC/PDCP 层 ARQ 混为一谈 HARQ 在 MAC 层,目标是物理层快速纠错(亚毫秒);RLC 层的 ARQ(AM 模式重传)目标是无损按序交付(毫秒级兜底)。两者是两层兜底:HARQ 先快速补,HARQ 救不回来的极少数错误包,再由 RLC 重传。理解这个层次关系,才能定位"到底是哪一层的重传"。
若用户反馈"下载慢",链路侧排查路径往往是:
你看,HARQ 与 AMC 知识是这条排查链的核心枢纽。
Q1:HARQ 和 RLC 层 ARQ 到底什么区别? A:HARQ 在 MAC 层,靠物理层软合并做快速、低时延的纠错,目标是"把 BLER 从 10% 降到接近 0";RLC ARQ 在 RLC 层(AM 模式),靠重传做按序、无损的兜底,处理 HARQ 仍漏掉的极少数错误。二者是"先快补、后兜底"的两层机制,互补而非冗余。
Q2:Chase Combining 和 Incremental Redundancy 怎么选? A:5G NR 以 IR 为主(LDPC 支持 RV0~RV3,低 SNR 下增益更大、频谱效率更高),CC 作为 RV0 重传时的退化情形。实际中由码率和 RV 版本调度策略决定,工程师无需手动选,但要理解 IR 是性能主力。
Q3:为什么 5G 用异步 HARQ 而 LTE 上行用同步? A:同步 HARQ 的重传时机/资源由固定规则确定,实现简单但调度僵化;异步 HARQ 由 DCI 动态指示,调度器可灵活安排重传时机,更适配 5G 的灵活帧结构(多变子载波间隔)和自包含时隙。代价是控制信令开销略增。
Q4:BLER 目标设成 10% 会不会太松?丢 10% 的包不是很糟吗? A:不会。"丢"的这 10% 并不真的丢——它们触发 HARQ 重传,经软合并后绝大多数都能恢复。设计上是用这 10% 的"可恢复错误"换取好信道下的高吞吐(选更高 MCS)。真正要关注的是重传后仍失败的残留 BLER,那才是真损失。URLLC 因怕时延,才把目标压到 1%。
Q5:HARQ 最多重传几次?会不会无限重传? A:不会无限。系统配置有最大重传次数(maxHARQ-Tx,典型 3~4 次)。超过仍失败,该包被丢弃,错误上抛给 RLC 层兜底重传,或直接计为一次丢块。这个上限是防止坏信道下无限占用进程、拖垮整个调度的安全阀。
本文由「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 等场景全覆盖。
