0-RTT 的代价是重放面
省掉一次往返换来更快的连接建立,但重放风险必须由服务端限制。我们的做法是只允许握手与路由协商走 0-RTT。
业务数据等 1-RTT 确认
2026 年 10 月 15 日,快连为 QUIC 通道启用 0-RTT 恢复与连接迁移。移动网络下的握手耗时从 0.68 秒降到 0.21 秒,基站切换导致的断流时长从 2.4 秒缩到 0.6 秒。这两项能力都有代价,我们在策略层做了限制。
完整 QUIC 握手需要一个往返确认密钥,1-RTT 在跨区链路上大约 60 到 110ms。0-RTT 的做法是复用上次会话的预共享密钥,在第一个包里就带上加密的应用数据,把这次往返省掉。
省掉的代价是重放风险:攻击者可以截获并重放 0-RTT 数据包。QUIC 规范要求服务端对 0-RTT 数据只接受幂等请求,快连的做法是在隧道建立阶段只允许握手与路由协商走 0-RTT,业务数据必须等 1-RTT 确认后才放行。
这个限制让 0-RTT 的收益集中在「连接建立快」而不是「首字节快」。实测下来,移动网络下从点击连接到状态灯转绿的中位耗时从 0.68 秒降到 0.21 秒,用户感知明显。
手机从 Wi-Fi 切到蜂窝时,IP 地址变了,传统 TCP 连接必须重建。QUIC 用连接 ID 标识连接而不是用四元组,地址变化后只要连接 ID 不变就能继续用原连接。
快连在 0.6 秒内完成路径验证并继续传输。实测地铁场景(每 2 到 4 分钟切换一次基站)下,切换导致的断流从 2.4 秒缩到 0.6 秒,视频播放的缓冲次数从每小时 4.1 次降到 1.2 次。
需要注意的是,连接迁移只在客户端与服务端都支持时生效。部分老旧路由器上的 QUIC 实现不完整,会出现迁移后连接卡死。这也是我们建议在这些环境切回 WireGuard 的原因。
WireGuard 的握手是 1-RTT,但没有 0-RTT 恢复能力;它的优势是开销低、实现简单、在有线环境下吞吐最高。QUIC 的优势是移动性与弱网重传,代价是封装开销带来约 22% 的吞吐损失。
| 场景 | 推荐协议 | 握手耗时 | 相对吞吐 |
|---|---|---|---|
| 有线办公与长连接 | WireGuard | 0.42s | 100 |
| 移动网络频繁切换 | QUIC 0-RTT | 0.21s | 78 |
| 限制 UDP 的网络 | UDP 伪装 | 0.68s | 61 |
| 仅放行 443 出站 | TCP 443 | 0.94s | 46 |
客户端的默认策略是「有线优先 WireGuard,检测到移动网络或网络切换频繁时自动切 QUIC」。这个判断依据是过去 10 分钟内的网络切换次数与丢包率,切换过程不需要用户干预,重连耗时在 0.3 秒以内。
对安全要求高的企业,可以在策略文件里关闭 0-RTT,只保留连接迁移。关闭后握手耗时回到 0.68 秒左右,但彻底消除重放面。
对移动办公为主的企业,建议开启 0-RTT 但把业务数据放行门槛设为 1-RTT 确认后——这是默认行为,不需要额外配置。
如果企业网络里有中间设备对 QUIC 做拦截或降级,建议直接禁用 QUIC,统一用 WireGuard,避免出现「有时快有时慢」的不可预测表现。

协议优化没有免费午餐,每一项收益都对应一个具体的代价,需要按场景权衡。
省掉一次往返换来更快的连接建立,但重放风险必须由服务端限制。我们的做法是只允许握手与路由协商走 0-RTT。
业务数据等 1-RTT 确认用连接 ID 替代四元组带来切换不断流,但部分老旧路由器的 QUIC 实现不完整,会出现迁移后卡死。
18 款路由器中 3 款复现QUIC 相对吞吐为 WireGuard 的 78,约 22% 的损失来自封装与用户态处理。移动场景下这个代价通常值得付。
相对吞吐 78把三项代价并列看,就能理解为什么客户端不把 QUIC 设为默认。有线环境里 WireGuard 的吞吐优势明显,QUIC 的价值集中在移动网络与弱网重传。默认策略做成「有线优先 WireGuard、检测到移动网络或频繁切换时自动切 QUIC」,本质上是把这项权衡交给客户端自动判断,而不是让用户自己选。