服务状态:62 条线路在线 · 平均可用率 99.4% 更新日志 · 帮助中心 · 站点地图

启航加速器为什么把 QUIC 放在主通道:一次握手省下 240 毫秒的账

QUIC 连接建立路径示意
QUIC 连接建立路径示意

在 120 毫秒的跨境链路上,TCP+TLS 1.2 建立连接需要 470 毫秒,QUIC 0-RTT 只需 96 毫秒。这 374 毫秒的差距,是启航加速器把 QUIC 设为主通道的直接原因。

加速器的宣传里常见“专线”“高速通道”这类词,但真正决定第一秒体感的,往往是连接建立阶段的往返次数。跨境链路的单次往返就要一百多毫秒,多一个 RTT,用户就多等一次。

握手次数:从三次往返到零次

TCP + TLS 1.2 的组合需要三次往返:TCP 三次握手一次、TLS 协商两次。换到 TLS 1.3 可以压到两次。QUIC 把传输层握手与 TLS 1.3 合并进同一个握手流程,首次连接只需一次往返;如果客户端持有有效的会话票据,可以在第一个包里直接带上加密的应用数据,这就是 0-RTT。

QUIC 连接建立路径示意图:TLS1.3 0-RTT、QUIC握手、多路复用、BBR v3拥塞控制、连接迁移
QUIC 的五个关键环节,虚线箭头为可省略的往返

我们在一台上海家宽机器上,对同一个香港出口做了四组对照,链路 RTT 120 毫秒,每组 500 次取中位数。结果如下:TCP+TLS1.2 为 470 毫秒,TCP+TLS1.3 为 358 毫秒,QUIC 1-RTT 为 232 毫秒,QUIC 0-RTT 为 96 毫秒。差距主要落在往返次数上,而不是加密算法的开销。

QUIC 与 TCP+TLS 握手耗时对比柱状图:470ms、358ms、232ms、96ms
四种握手方式在同一链路上的中位耗时
表 14 握手方式与往返次数、耗时对照(链路 RTT 120ms,500 次中位数)
方式往返次数握手耗时相对节省
TCP + TLS 1.23470ms基准
TCP + TLS 1.32358ms112ms
QUIC 1-RTT1232ms238ms
QUIC 0-RTT0(复用票据)96ms374ms

队头阻塞:一条流卡住,别的不该陪等

TCP 把所有数据放在一条有序字节流里,中间丢一个包,后面的数据即使到了也要等重传补齐,这就是队头阻塞。QUIC 在 UDP 之上实现了独立的流,流与流之间互不阻塞。启航加速器 3.1 版把并发流上限提到 48,就是为了让会议音频、页面请求、文件下载各走各的流。

效果可以量化。模拟 1% 随机丢包的条件下,单条 TCP 连接加载 20 个资源的总耗时是 3.8 秒,QUIC 多路复用是 2.1 秒。丢包率升到 3% 时,差距拉大到 7.4 秒对 2.9 秒——丢包越严重,队头阻塞的代价越高。

表 15 不同丢包率下 20 个资源的加载总耗时(秒)
丢包率单条 TCP 连接6 条并行 TCPQUIC 多路复用
0%1.61.41.3
1%3.82.92.1
3%7.45.12.9
5%12.68.33.6

连接迁移:换个网络不用重建会话

TCP 用四元组(源 IP、源端口、目的 IP、目的端口)标识连接,手机从 WiFi 切到 4G,源 IP 变了,连接就废了,只能重建。QUIC 用连接 ID 标识会话,地址变了只要客户端发一个迁移帧,服务端校验路径后继续用原来的会话。启航加速器在地铁场景做的 200 次切换测试里,3.0 版平均重连 6.4 秒,3.1 版 1.1 秒,差别主要来自这里。

“QUIC 不是银弹,它对 UDP 的依赖在某些企业网络里就是硬伤。”传输协议组在技术评审会上说,“所以我们保留 TCP 备用通道,判断逻辑是连续两轮探测无回包才切,切换本身对用户透明。”

代价:CPU、UDP 限制与实现复杂度

QUIC 在用户态实现,缺少内核旁路卸载,高吞吐时 CPU 占用高于 TCP。实测 1Gbps 单流下,QUIC 的 CPU 占用约 22%,TCP 约 9%。启航加速器在客户端做了分片与批量发送,把开销摊到多个核心,实测降到 14%。另一个问题仍是 UDP 可达性:部分校园网与企业在防火墙层面直接丢弃 UDP 443,这时只能退回 TCP 备用通道,首包延迟从 86 毫秒抬到 140 毫秒。

还有一个容易被忽略的点:0-RTT 的早期数据存在重放风险。我们的处理是把会话分两类,浏览类流量允许 0-RTT,涉及登录态与支付的连接强制 1-RTT,并在服务端加时间窗口去重。这类细节不会出现在界面里,但决定了能不能放心用。

结论

回到开头那 374 毫秒。它不是靠更贵的线路换来的,而是靠少走几次往返。对跨境访问这种 RTT 天然偏高的场景,协议层的优化收益比堆带宽更直接。想自己看效果,客户端日志里会打印握手方式与耗时,装一份就能对照。

上一篇启航加速器 Android 配置教程:保活、省电与 6 小时待机耗电 2.1% 的实测下一篇启航加速器延迟探测机制:20 秒一轮,4 条并发流,为什么还要剔除 P95

← 返回新闻列表

用户评论(6)

协
协议研究员

0-RTT 强制 1-RTT 处理支付这点很关键,很多教程都不提重放风险。

赞 3 · 回复
R
Rex

丢包 3% 那组数据差距太大了,队头阻塞确实是 TCP 的老毛病。

赞 36 · 回复
小
小满

CPU 22% 对 9% 这个开销能接受,毕竟家用场景跑不满千兆。

赞 36 · 回复
n
net_test

校园网确实封 UDP,一直是 TCP 备用,速度也够用。

赞 31 · 回复
阿
阿布

看完了,第一次知道 CID 可以迁移会话,涨知识。

赞 28 · 回复
齐
齐木

希望出一期讲 BBR v3 在不同运营商下的表现。

赞 28 · 回复
相关阅读

另外三篇值得看