首页 › deep-tech › HARQ混合自动重传原理图解

HARQ 混合自动重传:无线通信里最聪明的“重来一次”

一、从一个生活场景说起

想象你在嘈杂的餐厅里接电话,对方说了一句关键信息你没听清。你有三种选择:

  1. 让他整句重说一遍——你已经听清的部分也被迫重听,很浪费;
  2. 事先约好用“慢速清晰模式”说话——比如逐字拼读,很可靠,但哪怕环境安静他也这么慢吞吞地讲,效率极低;
  3. 最聪明的做法:让他用正常语速再说一遍,然后你在脑子里把两遍“模糊的印象”叠加起来——第一遍听清了前半句,第二遍听清了后半句,拼在一起就复原了整句话。而且叠加时,两遍都模糊的部分因为“两次印象互相印证”,置信度也上去了。

第三种做法,就是本文的主角 HARQ(Hybrid Automatic Repeat reQuest,混合自动重传)。

它是现代移动通信(HSPA、LTE、5G NR)中物理层与 MAC 层之间最重要的纠错机制,直接决定了你在弱信号环境下“网速掉不掉底”“视频卡不卡”。理解了 HARQ,你就理解了无线链路自适应体系的最后一道、也是最经济的一道防线。

二、为什么单靠 ARQ 或 FEC 都不够?

要理解 HARQ 为什么是"Hybrid(混合)",得先看它的两个父辈各自的缺陷。

ARQ(自动重传请求):接收端用 CRC 校验数据,错了就扔掉这个数据块,请求重发。

FEC(前向纠错):发送端加入大量冗余校验位(Turbo/LDPC 码),接收端直接纠错,不用重传。

无线信道恰恰是时变的:手机在基站旁边时 SNR 可能是 30dB,走到电梯里瞬间掉到 0dB。按最差信道做 FEC,好信道时吞吐量被冤枉地砍半;只做 ARQ,差信道时重传一次错一次,永远传不过去。

HARQ 的设计哲学:让两者各干各擅长的事——

flowchart LR
    subgraph ARQ方式
        A1[发送数据块] --> A2[接收+CRC校验]
        A2 -->|错| A3[丢弃信号<br/>请求重发]
        A3 --> A1
    end
    subgraph FEC方式
        B1[发送前加入大量冗余位] --> B2[接收端直接译码纠错]
        B2 -->|超过纠错能力| B3[失败<br/>仍需上层重传]
    end
    subgraph HARQ方式
        C1[发送适度编码的数据块] --> C2[接收+译码+CRC]
        C2 -->|错| C3[信号存入软缓存<br/>反馈NACK]
        C3 --> C4[重传与新接收合并后再译码]
        C4 --> C2
        C2 -->|对| C5[成功交付]
    end

一句话总结:ARQ 花几个百分点换可靠性,FEC 花一半容量换可靠性,HARQ 只在需要时才花 FEC 的钱。

三、HARQ 的三种形态:Type I、II、III

按“重传内容里有没有新信息”划分,HARQ 有三种经典形态:

类型 重传内容 接收端处理 信道好时开销 典型应用
Type I 每次都是完整独立的编码块(含全部纠错冗余) 各次独立译码,失败可丢弃或简单合并 较高(每次都带满配 FEC) Wi-Fi 类简单系统、ITU-T G.hn
Type II 首传只带 CRC 检错,重传才补发不同的校验位 两次传输可组合纠错 极低(好信道时≈纯 ARQ) HSDPA、LTE、NR 的基本思想
Type III(部分增量冗余) 每次重传都包含系统位,自可解码 每次都能单独译码,合并后更强 中等 各系统的鲁棒模式

Type II 的精髓在于:第一传就是“赌”信道好——如果一次成功,FEC 校验位根本不用上信道,吞吐量等同纯 ARQ;只有信道“打脸”了,才追加校验位。这就是 Wikipedia 中"good signal conditions 时 Type II 与标准 ARQ 容量相同,poor signal conditions 时与标准 FEC 灵敏度相同"的含义。

四、软合并的数学本质:LLR 证据叠加

HARQ 最反直觉、也最漂亮的一步是:为什么两次“半错”的接收叠在一起就“全对”了?

答案是软判决译码中的 LLR(对数似然比)。接收端解调后,对每一个比特 $b$,得到的不是一个硬判的 0 或 1,而是一个“证据值”:

$$ LLR(b) = \ln\frac{P(b=1 \mid y)}{P(b=0 \mid y)} $$

其中 $y$ 是接收到的复数符号。对于 BPSK 调制、加性高斯白噪声(方差 $\sigma^2$)信道,可以推导出:

$$ LLR(b) \approx \frac{2y}{\sigma^2} $$

关键性质:LLR 是可加的。 同一个比特经过两次独立传输,接收到的两个 LLR 直接相加:

$$ LLR_{merged} = LLR_1 + LLR_2 $$

这在概率论上就是贝叶斯证据叠加:两个相互独立的“证人”对同一事实的证词,对数域直接累加。第一次接收时这个比特“疑似是 1”(LLR=+3),第二次接收“更疑似是 1”(LLR=+5),合并后 LLR=+8,置信度大幅提高。如果第二次证据方向相反(LLR=-2),合并后只剩 +3——噪声互相抵消,也不会被误导。

对 Chase 合并来说,这个加法还有一个物理直觉:两次传输的能量相加,等效于把接收信噪比 $E_b/N_0$ 提高了约 3dB(两次等能量传输时),这正是最大比合并(MRC)的思想——信号能量线性累加,噪声功率因为不相关只按平方和增长。

flowchart TD
    R[收到重传数据] --> D[解调得到软比特 LLR]
    D --> Q{软缓存中有<br/>历史失败接收?}
    Q -->|无| DD[直接送入译码器]
    Q -->|有| M[按比特位置对齐<br/>LLR逐位相加合并]
    M --> DD
    DD --> E[信道译码 Turbo/LDPC]
    E --> F{CRC校验通过?}
    F -->|是| OK[清空软缓存<br/>上报ACK]
    F -->|否| N[本次LLR写入软缓存<br/>上报NACK等待重传]

工程注脚:存储 LLR 而非硬判比特,就是“软缓存(soft buffer)”名字的由来。每个 LLR 需要若干比特量化存储,所以终端的软缓存大小是一项重要的终端能力——缓存越大,能支撑的合并次数和码率范围越大。这也是为什么弱信号用户的吞吐量极限,有时不是信道决定的,而是终端软缓存决定的。

五、Chase 合并 vs 增量冗余:两种软合并流派

HARQ 软合并有两大流派:

维度 Chase 合并(CC) 增量冗余(IR)
重传内容 与首传完全相同的比特序列 不同的校验位组合(打孔图案不同)
接收端操作 最大比合并,LLR 加权叠加 把新比特填入此前缺失的位置,逐步降低有效码率
信息增量 无新信息,只是能量叠加 每次重传都带来新的校验信息
译码码率变化 不变(等效 $E_b/N_0$ 提升) 首传高码率 → 合并后逐渐逼近母码码率
缓存要求 低 高(需存多次不同比特)
实现复杂度 低 高(需要速率匹配与软缓存管理)
性能 弱信号下增益有限 几乎总是优于 CC(Frenger 等人在 VTC 2001 用 HSDPA 验证)

Wikipedia 的结论很明确:尽管 HSDPA 标准同时支持两种方式,增量冗余几乎总是性能更好,代价是复杂度增加。所以现代系统(HSPA/LTE/NR)全部以 IR 为主。

用一个考试类比理解两者的差别:

六、增量冗余怎么实现:环形缓冲区与冗余版本(RV)

IR 的工程实现依赖速率兼容打孔(rate-compatible puncturing):编码器(如 1/3 码率的 Turbo/LDPC 母码)输出系统位 + 两路校验位,但不全部发送,而是写入一个环形缓冲区,由一个读指针从不同起点循环读出固定数量的比特上信道。

这些不同起点,就是 RV(Redundancy Version,冗余版本)。LTE/NR 中 PDSCH 定义了 RV0~RV3 四个取值:

flowchart TD
    subgraph 编码侧
        K[信息位 K] --> E2[1/3母码编码<br/>K + 2K 校验位]
        E2 --> CB[写入环形缓冲区]
        CB -->|RV0 从头读| T1[第一次发送<br/>高码率 自含系统位]
        CB -->|RV2 换起点| T2[第一次重传<br/>送出新的校验位]
        CB -->|RV3 再换起点| T3[第二次重传<br/>再送新的校验位]
    end
    subgraph 接收侧软缓存
        T1 --> SB[软缓存]
        T2 --> SB
        T3 --> SB
        SB --> DEC[有效码率逐步降低<br/>合并后联合译码]
    end

随着重传次数增加,接收端“攒齐”的编码比特越来越多,有效码率从首传的高码率(如 3/4)一路滑向母码的 1/3。理论上,如果信道持续恶劣,IR 最终等价于用完整的 1/3 码率译码——这就是弱信号下“传三四次总能对”的数学保证。

七、停等协议的尴尬与多进程流水线

有了软合并,还差一个工程问题:反馈期间信道干什么?

最简单的 ARQ 协议是停等(Stop-and-Wait):发一块 → 停下来等 ACK → 收到 ACK 再发下一块。实现简单到极致,但代价是信道空转。无线信道的传播时延 + 处理时延,意味着“等”的时间是毫秒级——对一个每毫秒发一帧的系统,纯停等会让一半以上的吞吐量白白蒸发。

解决方案优雅而简单:并行运行多个停等进程。当 1 号进程在等 ACK 时,信道立刻分配给 2 号进程发新数据;2 号等的时候,1 号的 ACK 也该回来了。Wikipedia 对此的表述是:"multiple stop-and-wait HARQ processes are often done in parallel in practice"。

LTE FDD 把这套流水线做到了教科书级的规整(以下为 Dahlman《3G Evolution》等经典教材中的标准时序):

sequenceDiagram
    participant BS as 基站
    participant UE as 终端
    Note over BS,UE: FDD LTE:8进程流水线,HARQ RTT = 8ms
    BS->>UE: 子帧0:进程#1 发送新数据
    BS->>UE: 子帧1:进程#2 发送新数据
    BS->>UE: 子帧2:进程#3 发送新数据
    BS->>UE: 子帧3:进程#4 发送新数据
    BS->>UE: 子帧4:进程#5 发送新数据
    BS->>UE: 子帧5:进程#6 发送新数据
    BS->>UE: 子帧6:进程#7 发送新数据
    BS->>UE: 子帧7:进程#8 发送新数据
    UE-->>BS: 子帧4:#1 的ACK/NACK(PUCCH)
    UE-->>BS: 子帧5:#2 的ACK/NACK
    Note over BS,UE: 收到NACK的进程最早在n+8重传,<br/>期间信道始终有活干,零空转

为什么是 8 个进程而不是 16 个或 4 个? 进程数 = RTT 内能填满信道的帧数。少了一个,流水线出现气泡;多一个也没用,因为没有空子帧可分配。这是典型的“时延决定并行度”的设计。

八、LTE 到 NR:HARQ 的设计取舍演进

5G NR 对 HARQ 做了一轮“松绑”改造,核心动机是适配灵活的numerology(子载波间隔)和更低的时延目标:

维度 LTE 5G NR
同步性 下行异步、上行同步(重传时刻固定) 上下行全异步
重传调度 隐式:按固定时序自动重传 显式:由 PDCCH/DCI 重新调度,可换 MCS、换资源
ACK 时序 固定(FDD 下 n+4) 灵活:DCI 中 K1 参数动态指示 PDSCH 与 ACK 的时隙间隔
HARQ 进程数 FDD 固定 8 个 可配置,最多 16 个
上行反馈信道 PHICH(专用物理信道) 取消专用信道,统一由 PDCCH 承载重传调度
反馈/重传粒度 传输块 / 码字 传输块之外还支持 CBG(码块组) 级重传

几个“为什么”值得展开:

为什么 NR 全面异步化? LTE 上行同步 HARQ 把重传时刻写死,好处是终端省电、无需重新调度;坏处是重传必须用和首传相同的资源与 MCS。如果干扰突然增大,原样重传大概率还是错。NR 改为:重传也走完整的 DCI 调度,基站可以给这次重传换一个更稳的 MCS、换一段更干净的频谱——把“重传”变成“重新排兵布阵”。代价是终端必须持续监听 PDCCH,复杂度和功耗上升。

为什么有 K0/K1/K2 这样的显式时序参数? NR 支持 15/30/60/120kHz 多种子载波间隔,时隙长度相差 16 倍,固定的“n+4”时序无法适配所有场景。于是把每一跳的时延都变成 DCI 里的字段:K0(调度命令→PDSCH)、K1(PDSCH→ACK)、K2(调度命令→PUSCH)。这本质上是把 LTE 的“协议写死”改成 NR 的“基站可调”,为超低时延(调小 K 值)和大容量(调大 K 值换取调度灵活性)留出旋钮。

为什么引入 CBG 重传? NR 大带宽下传输块可能包含几十个码块。整块重传太浪费——也许只有 2 个码块错了。把码块分组,NACK 里指出哪一组错了,只重传那一组。这是在“反馈精度”与“反馈开销”之间又做了一次权衡。

九、HARQ 不是孤军奋战:与 RLC ARQ 的分工

一次完整的数据可靠交付,实际由两层重传构成,它们的时延尺度和分工完全不同:

flowchart TD
    TX[数据流] --> MAC[HARQ:MAC层重传]
    MAC -->|NACK 超限或DTX| RLC[RLC AM:ARQ重传]
    RLC -->|RLC重传仍失败| PDCP[PDCP/上层<br/>应用层超时]
    MAC -.->|时延尺度 ~8ms级| T1[快 重传次数有限<br/>反馈可能丢失]
    RLC -.->|时延尺度 数十ms级| T2[慢 有状态报告机制<br/>可靠兜底]

这套分层的合理性在于概率分工:HARQ 用软合并把单次误块率从百分之几十压到 10% 以下(LTE/NR 的初传 BLER 运营目标通常取 10%),RLC 再把这 10% 压到接近零。每一层只处理自己性价比最高的那部分错误。

十、现网实战:工程师哪里用得上这些原理

1. 看 HARQ 重传率定位覆盖问题,但先分清 NACK 和 DTX。 网管统计中“HARQ 重传次数/初传次数”高,有两种截然不同的可能:终端收到了调度但译码失败(NACK),或终端根本没收到调度、反馈缺失(DTX)。前者查覆盖/MCS 是否虚高,后者查 PDCCH 聚合级别、上行功控。把 DTX 当 NACK 优化 MCS,方向就全错了——这是新手最常见的调试陷阱。

2. CQI 上报与 BLER 目标共同决定初传 MCS。 链路自适应选 MCS 的逻辑是“让初传 BLER 落在 10% 左右”,刻意留出 HARQ 的用武之地。若现网初传 BLER 长期接近 0,说明 MCS 保守,吞吐量被浪费;长期 20% 以上,HARQ 重传吃掉的带宽会拖垮调度其他用户。BLER 逼近 10% 反而是“健康”状态——这与直觉相反。

3. 弱信号用户看软缓存与重传次数上限。 边缘用户重传 3 次后仍失败,数据被丢给 RLC,端到端时延陡增、TCP 超时重传雪崩。此时调大 HARQ 最大重传次数(利用 IR 继续降码率)往往比单纯加大功率更有效。

4. NR 参数优化绕不开 K 值。 URLLC 场景调小 K1(ACK 快回)压缩时延;大流量场景适当放宽 K 值,换取基站更从容的调度缓冲。读懂 DCI 里的 K0/K1/K2,是分析 NR 调度时延的第一步。

十一、常见误解与陷阱

常见问题

Q: HARQ 和普通 ARQ 的本质区别是什么? A: 普通 ARQ 译码失败就把接收信号扔掉,重传只是“再来一次”;HARQ 把失败的软信息(LLR)存在软缓存里与新重传合并,重传是“信息叠加”。前者每次成功概率独立,后者成功率随重传单调上升——这是吞吐量差异的根源。

Q: Chase 合并和增量冗余该怎么选? A: 研究结论(Frenger 等人,VTC 2001)是增量冗余几乎总是更好,现代蜂窝系统全部以 IR 为主。CC 只在硬件极简、缓存受限的场景(一些 Wi-Fi/IoT 系统、G.hn 类标准)保留,换取实现简单。

Q: 为什么 LTE FDD 是 8 个 HARQ 进程、5G NR 最多 16 个? A: 进程数由“RTT 内能塞满多少帧”决定:LTE FDD 的固定时序推导出 8ms RTT、每毫秒一帧,正好 8 个进程。NR 时隙更短且时序可变,为在大子载波间隔(时隙仅零点几毫秒)下仍能填满流水线,进程池扩到 16 个,由高层信令配置。

Q: HARQ 重传和 TCP 重传是什么关系?会冲突吗? A: 三层嵌套:HARQ(毫秒级)兜 RLC(几十毫秒级),RLC 兜 TCP(秒级)。层级越低重传越快、成本越低。设计目标就是让 99.9% 的错误终结在 HARQ/RLC,永远惊动不了 TCP——否则 TCP 会误判网络拥塞而降窗,吞吐量断崖式下跌。

Q: 终端漏检了调度指令(DTX),会发生什么? A: 终端既不收数据也不发反馈。基站等待超时后把这次传输按“失败”处理(取决于实现,可能直接重传)。由于 DTX 和 NACK 在反馈信道上不可靠区分,基站侧的稳健做法是结合 NDI 与 RLC 状态报告做二次确认,这也是为什么 PDCCH 漏检率(聚合级别配置)是弱场优化的重点。

参考来源

  1. Erik Dahlman 等《3G Evolution — HSPA and LTE for Mobile Broadband》(Academic Press, ISBN 978-0-12-374538-5) — LTE 多进程停等时序、8ms HARQ RTT 等系统设计的经典教材出处(据该教材,经 Wikipedia 引用确认)
  2. HARQ HSDPA tutorial — Electronics Notes — HSDPA 中 HARQ 的工程实现与教学视角
  3. Frenger, Parkvall, Dahlman, "Performance comparison of HARQ with Chase combining and incremental redundancy for HSDPA", IEEE VTC 2001 Fall, doi:10.1109/VTC.2001.956516 — 增量冗余优于 Chase 合并的原始仿真研究(经 Wikipedia 引用确认)
  4. ShareTechnote: HARQ (LTE) — LTE HARQ 时序与 RV 的工程师视角笔记(抓取时网络异常未能全文核对,细节以教材为准)

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