9 月 26 日,快喵传输协议完成一次底层更换:客户端与边缘节点之间由 TCP 为主改为 QUIC 优先、TCP 回退的双栈结构。在丢包 3%、往返 120ms 的弱网条件下,首包时间从 1.8 秒降到 0.4 秒;Wi-Fi 与蜂窝网络之间切换时,会话不再重建,跨网切换的重连成功率从 76.2% 提升到 98.7%。截至本周,QUIC 已承载全量流量的 63%,其余仍走 TCP。
协议更换是所有改动里最不讨巧的一种:用户看不到新按钮,出问题时却人人有感。因此这次上线走的是双栈并行、逐批放量的路线,任何一条连接都可以在 200 毫秒内回落到 TCP。
为什么值得换:三个无法在 TCP 上解决的问题
第一个是队头阻塞。TCP 是严格有序的字节流,一个包丢了,后面所有已到达的数据都要等它重传。QUIC 在传输层就把流拆开,不同流之间互不阻塞。对加速场景来说,这意味着一个视频分片的重传不会拖住同一条连接上的网页请求。压测中,2% 丢包下 QUIC 的页面完整加载时间比 TCP 快 21.6%。
第二个是握手次数。TCP 加 TLS 需要三次握手再加两次 TLS 往返,首次连接至少 2 个 RTT;QUIC 把传输与加密握手合并,首次 1 个 RTT,会话恢复时可做到 0-RTT,直接携带应用数据。这正是弱网首包时间从 1.8 秒降到 0.4 秒的主要来源。
第三个是连接迁移。TCP 连接由四元组标识,手机从 Wi-Fi 切到 4G,源地址一变,连接就废了。QUIC 用连接 ID 标识会话,地址变化只影响路径,不影响会话。对地铁通勤、边走边开会这类场景,收益非常直接:视频不黑屏,下载不断点。
| 指标(弱网 3% 丢包 / 120ms) | TCP 栈 | QUIC 栈 | 变化 |
|---|---|---|---|
| 首包时间 | 1.8s | 0.4s | -77.8% |
| 页面完整加载 | 4.7s | 3.7s | -21.3% |
| 跨网切换重连成功率 | 76.2% | 98.7% | +22.5 个百分点 |
| 单连接 CPU 占用(1Gbps) | 基准 | +8.4% | 成本上升 |
双栈灰度:三批放量与两次回滚
灰度从 8 月 18 日开始,按 10%、30%、60%、100% 四批放量,每批观察 5 天。前两批顺利,第三批遇到了第一个问题:部分企业内网会拦截 UDP 443,导致客户端在尝试 QUIC 时长时间等待。修复方式是把“QUIC 探测”的超时从 3 秒收紧到 800 毫秒,探测失败立即走 TCP,并把结果缓存 24 小时,避免每次连接都重试。
第二个问题更隐蔽:某省运营商对 UDP 做了限速,QUIC 连接能建立,但吞吐只有 8Mbps,而同一路径的 TCP 能跑到 90Mbps。团队在客户端加入带宽探测,连接建立后 2 秒内比较实际吞吐,低于阈值就静默回落。这次改动上线后,该省份的投诉量在两天内归零。
“协议层的改动没法靠灰度百分比保证安全,必须保证任何一条连接都能瞬间退回去。”快喵网络架构负责人郑其琛说,“我们给每一次 QUIC 尝试都配了 TCP 备胎,两条路径同时完成握手,谁先可用用谁。代价是多花一点 CPU,换来的是永远不会卡在‘正在连接’。”
兼容性、开销与用户侧的变化
兼容性是这次升级最花时间的地方。客户端需要覆盖 Windows 7 以上的五个系统版本,其中 Windows 7 与部分老款 Android 设备的内核不支持必要的 UDP 特性,这些设备会直接停留在 TCP 栈,功能不受影响,只是享受不到 0-RTT 与连接迁移。目前约有 4.1% 的活跃设备处于这一状态。
开销方面,QUIC 在用户态实现,加解密与拥塞控制都吃 CPU。实测 1Gbps 吞吐下单核占用比 TCP 高 8.4%,为此边缘节点统一换用支持 AES-NI 与 AVX2 的机型,并把 GSO/GRO 打开,实际占用回落到 3% 以内。移动端的耗电增加约 2.7%,在一天重度使用下大约多消耗 4% 电量,这个数字在测试阶段被反复确认,属于可接受范围。
“用户不会知道什么叫队头阻塞,但他们知道视频不再转圈。”快喵客户端研发负责人苏航在评审时说,“所以我们在客户端只暴露一个开关:‘兼容模式’,给那些遇到问题的用户一个一键退回 TCP 的出口。默认是关的,绝大多数人永远不需要点它。”
下一阶段,团队会把 QUIC 的拥塞控制从默认算法换成自研的混合方案,针对跨境长肥管道做窗口调整,并在路由器端固件中启用 QUIC 卸载。想了解当前线路的协议支持情况,可在客户端的“连接详情”中查看;安装包统一在下载中心获取,节点状态可在首页节点与速度查看。



用户评论
地铁上看视频终于不断了,之前每次过隧道都要缓冲十几秒,现在最多卡一下。
公司网络好像拦 UDP,第一天连不上,第二天更新完就正常了,应该是探测超时改短了。
想知道兼容模式具体影响什么?关掉和打开除了速度还有别的区别吗。
笔记本续航确实感觉掉得快了一点,看到文中说 2.7%,那还算能接受。