2026 年 10 月 21 日,海鸥加速器 3.4.0 版本把默认传输协议从 TCP 443 切换为基于 UDP 的 QUIC。客户端与服务端之间的握手耗时从 2.1 秒降到 0.3 秒,在 30% 丢包的模拟弱网下,断线后的重连成功率从 61% 提升到 92%。四端客户端同步更新,旧版本仍可使用 TCP 回退通道。

这次改动的出发点是地铁与酒店网络。后台统计显示,移动网络用户平均每次会话发生 2.7 次短时断连,每次断连后客户端需要重新完成 TCP 三次握手与一次加密协商,整个过程在弱网下会拖到 2 秒以上。用户感知到的不是“断线”,而是点击链接后页面空白两秒。把重连压到 0.3 秒,是让这类断连变得几乎无感。

沈亦(传输协议工程师):“QUIC 把传输握手与加密握手合并,首次连接只需一次往返,断线重连时用连接 ID 恢复上下文,不用重新协商。地铁里信号闪断一次,用户往往只看到页面顿一下。”

握手流程改了什么

旧流程是 TCP 三次握手加 TLS 1.3 协商,理想网络下合计 2 个往返,实测 0.4 秒;弱网下重传会把耗时推到 2 秒以上。新流程走 UDP 443,QUIC 的 1-RTT 握手把传输与加密合并,首次连接 0.3 秒即可开始传输数据,重连时使用 0-RTT 恢复,耗时为 0.1 秒以内。

连接迁移是另一个收益。旧方案下切换 Wi-Fi 与移动网络会触发 IP 变化,连接必须重建;QUIC 用连接 ID 标识会话,IP 变化后仍可延续原连接。测试中,从 Wi-Fi 切到 4G 的平均中断时长从 3.4 秒降到 0.4 秒,视频通话只出现一次轻微卡顿。

服务端侧,12 组线路全部启用了 QUIC 监听,单线路维持 1200 个并发连接。为避免 UDP 被部分网络屏蔽,服务端同时保留 TCP 443 监听,两条通道共用同一份账号与会话状态,切换协议不需要重新登录。

表 1:三种网络条件下的握手与重连耗时
网络条件TCP 握手QUIC 握手重连成功率
家庭宽带 0% 丢包0.4 秒0.2 秒99.8%
地铁 4G 8% 丢包0.9 秒0.3 秒96.4%
酒店 Wi-Fi 30% 丢包2.1 秒0.3 秒92.1%

弱网环境的重连数据

测试在 10 月 12 日至 10 月 18 日进行,覆盖 3 类网络、每组 300 次断连重连。模拟方式为在客户端侧用网络损伤工具注入丢包与延迟,丢包率分别为 0%、8%、30%,延迟固定在 40ms。每次断连后记录从断开到首个业务数据包发出之间的耗时,取 95 分位值。

海鸥加速器传输协议测试用的网络设备与调试终端
弱网测试通过损伤工具注入丢包与延迟,每种条件采样 300 次后取 95 分位。

30% 丢包条件下,TCP 的握手 95 分位耗时 2.1 秒,其中 17% 的样本超过 3 秒;QUIC 的 95 分位为 0.3 秒,最长样本 0.6 秒。重连成功率方面,TCP 为 61.3%,QUIC 为 92.1%。失败的样本多集中在丢包连续出现 3 次以上的瞬间,客户端会在 1.5 秒后重试一次。

带宽利用率的改善有限但可测。同一线路、同一时段,QUIC 的晚高峰下行均值为 118Mbps,TCP 为 112Mbps,差距约 5%。原因在于 QUIC 的拥塞控制对丢包的退避更温和,不需要像 TCP 那样把窗口砍半。对普通网页浏览,这个差距几乎感知不到;对大文件传输,5% 意味着 10GB 文件少等约 40 秒。

TCP 回退与其他更新

并非所有网络都允许 UDP 443 出站。客户端在 3 次 QUIC 握手失败后会回退到 TCP 443,并在节点列表标注“TCP 回退中”。回退过程不需要用户操作,切换后握手耗时回到 0.4 秒至 2 秒区间。3.4.0 上线首周,回退请求占全部连接尝试的 4.7%,主要集中在部分企业网络与老旧路由器环境。

协议选择在客户端内可手动锁定,设置项提供“自动 / 仅 QUIC / 仅 TCP”三档。手动锁定仅在排障时建议使用,日常保持自动即可。切换协议会重建一次隧道,客户端会提示当前连接将中断约 1 秒。

苏澜(运营负责人):“上线第一周,弱网相关的工单从每天 46 条降到 11 条。回退用户里有一半是企业网络,客服侧正在准备基于 TCP 443 的备用通道说明文档。”

同版本还调整了两处细节。一是客户端启动时不再预加载全部节点,改为按最近使用的三个地区分批加载,冷启动时间从 2.8 秒缩短到 1.6 秒。二是断线重连提示从弹窗改为状态栏文字,避免在地铁里反复弹窗打断操作。

下一阶段的目标是把 0-RTT 恢复的失败率从当前的 7.9% 降到 5% 以内,并评估在悉尼与圣保罗线路上启用多路径传输。相关数据会继续公布。想体验握手速度的变化,可以下载 3.4.0 客户端,在设置里确认协议为“自动”,连上后断开再连,状态栏会显示本次握手耗时。

上一篇晚高峰延迟从 96ms 降至 41ms