跳到主要内容

QUIC 起初是 Google 的一项实验,后经 IETF 完善,如今已是标准的传输协议,承载着大型网站的大部分网页流量。只要你用的是较新的浏览器,打开的网页中很大一部分已经通过 QUIC 到达,通常以 HTTP/3 的形式。所以人们自然会问:打开 VPN 以后,QUIC 还能用吗?会变慢吗?隧道自己的传输方式选择有影响吗?

本文回答关于 QUIC 与 VPN 的实际问题。它不假设你要去配置什么,而是把各个环节讲清楚,这样遇到页面变慢、视频通话失败或奇怪的报错时,你能明白原因。关于隧道协议的基础概念,请看 VPN 协议是什么。

两分钟看懂 QUIC

传统网页流量使用 TCP:先建立连接,给每个字节编号,丢了就重发。加密(TLS)则作为单独一步叠加在上面,数据开始传输前要多花几次往返。QUIC 在 UDP 之上把这些工作合并在一起。

与本文相关的特性有:

  • 加密内置。 QUIC 在自己的握手里使用 TLS 1.3,所以连接从第一次交换起就是安全的,不存在不加密的 QUIC。
  • 往返更少。 新连接一次往返后即可就绪,回访的客户端有时可以立刻发送数据(称为 0-RTT)。
  • 独立的数据流。 丢失一个包只会拖住它所属的那条流。而在 TCP 中,丢一个包可能卡住排在后面的所有数据,这就是队头阻塞。
  • 连接 ID。 QUIC 用 ID 而不是发送方的 IP 和端口来识别连接,所以能在 Wi-Fi 切换到移动数据时存活。
  • 运行在用户空间。 QUIC 在应用里实现,而不是在操作系统内核里,改进随浏览器更新而发布。

完整规范列在参考资料里,不过读下去并不需要它。

你使用 QUIC 时,VPN 看到的是什么

VPN 隧道工作在比 QUIC 更低的层面。你的设备把发出的数据包,无论里面是什么,都封装进隧道自己的加密包里。对隧道来说,QUIC 包就是某个大小的 UDP 包,进入隧道的方式与 TCP 包完全一样。

由此产生几个结果。

  1. QUIC 照常工作。 浏览器通过隧道与网站协商 HTTP/3,就像没有隧道时一样。
  2. 有两层加密。 QUIC 加密网页会话,隧道加密承载它的数据包。第二层让本地网络看不到你访问了哪些网站。
  3. 隧道读不到 QUIC 会话。 页面内容仍由 QUIC(或 HTTPS)端到端保护。两者关系详见 HTTPS 与 VPN 的对比。
  4. 外层路径依然重要。 隧道对拥塞和丢包的处理方式,会影响里面的 QUIC 连接。

为什么隧道的传输方式很重要

这是最有用的一课。大多数 VPN 隧道运行在 UDP 上,有些还提供 TCP 模式。把 TCP 流量放进 TCP 隧道时,两套可靠性机制会互相较劲。网络丢了一个包,内外两条连接都会尝试重发并同时降速,结果速度可能大幅下跌,常被称为 TCP 崩溃。这也是我们在 OpenVPN 的 TCP 与 UDP 中把 UDP 作为合理默认值的原因之一。

QUIC 让情况略有不同。QUIC 本身就是 UDP,UDP 隧道不会把可靠性叠在可靠性上:里层的 QUIC 连接自己处理丢包恢复,隧道只管搬运数据包。而用 TCP 隧道承载 QUIC 流量,则等于把不可靠的数据报流包进可靠的字节流里,使 QUIC 本想判定为丢失并自行重发的包反而被拖延。

组合 内层流量 隧道传输 一般表现
TCP 放进 UDP 隧道 TCP 上的 HTTPS UDP 通常没问题,内层连接自己恢复丢包
QUIC 放进 UDP 隧道 QUIC 上的 HTTP/3 UDP 通常没问题,主要成本是隧道开销
TCP 放进 TCP 隧道 TCP 上的 HTTPS TCP 在丢包多的链路上可能严重变差
QUIC 放进 TCP 隧道 QUIC 上的 HTTP/3 TCP 能用,但数据包被延迟并成批到达

只有在网络别无选择时才用 TCP 隧道,并把它视为一种折中。

现实场景

宿舍 Wi-Fi 上的学生。 小蓓连上宿舍楼的 Wi-Fi,打开 VPN,访问视频网站,播放流畅,但游戏启动器很慢。她的情况是游戏更新程序使用普通 TCP,拥挤的 Wi-Fi 才是瓶颈,而不是 QUIC。换一个更近的 VPN 位置、靠近无线接入点,比任何协议调整都管用。为什么使用 VPN 后网速会变化 一文讲了这种思路。

视频通话中的远程办公者。 马库斯通过 VPN 加入会议。许多会议工具偏好用 UDP 传音视频,UDP 被阻断时才回退到 TCP。如果 VPN 连接是 UDP 隧道,通话能保持低延迟;如果酒店屏蔽 UDP,隧道只能用 TCP,他可能会听到断断续续的声音。看看 VPN 会降低 ping 吗,就明白为什么增加的距离对通话的影响比对下载更大。

机场 Wi-Fi 上的旅行者。 爱子的浏览器平时使用 HTTP/3。在机场网络上,QUIC 连接卡住了,因为网络限制了 UDP。浏览器短暂等待后悄悄回退到 TCP,网页能加载,但每个网站的首次访问都觉得慢。开启 VPN 后,机场只看到一条隧道,浏览器可能重新用上 QUIC,也可能因为 UDP 被彻底阻断而无法连上隧道。换一个网络或换一种隧道模式,是合理的下一步。

QUIC 与隧道同时遇到网络切换

两个处理网络变化的机制可能叠加,要知道到底是谁在起作用。QUIC 的连接 ID 让网页会话在设备地址变化后仍能存活。但 VPN 隧道有自己的会话,手机从 Wi-Fi 切换到移动数据时,隧道必须先重新建立到网关的路径。在此之前,没有数据包离开设备,里面的 QUIC 连接只会看到一小段丢包。

如果隧道一两秒内恢复,QUIC 继续工作,你可能只察觉到一次停顿。如果隧道需要完全重连,QUIC 会话可能超时,浏览器会开始新的会话。由此得到一个实用习惯:网络发生大变化后,等几秒钟,待 VPN 应用显示连接稳定后,再开始大文件上传或通话。顽固情况的详细步骤见 提升 VPN 连接稳定性。

关于 0-RTT 与重放

QUIC 的零往返特性允许回访的客户端把第一个请求随握手一起发出。这让重复访问更快,但这样发送的数据理论上可能被攻击者重放,所以服务器只接受可以安全重复的请求,比如获取页面。VPN 不改变这条规则,也不需要改变。之所以提到,是因为有人读到 0-RTT 后以为隧道会让它变得不安全,其实不是:隧道只是搬运数据包。

按用途选择配置

  • 主要是浏览和看视频: UDP 隧道自然合适,QUIC 通常无需关注就能工作。
  • 经常通话和玩游戏: 延迟最重要,选择较近的位置和 UDP 隧道,避免 TCP 模式。
  • 限制严格的网络,如某些办公室或酒店: TCP 回退可能是唯一能连上的方式。接受较低的速度,离开后再切回来。
  • 大文件下载: 距离和拥塞起决定作用。隧道内是 QUIC 还是 TCP,很少是决定因素。

数据包大小与额外开销

每一层都会增加头部。VPN 隧道通常给每个包增加几十字节,而 QUIC 包由发送方按假设来确定大小,即路径能承载大约 1,200 字节以上而不必拆分。如果隧道使包超出了网络能承载的大小,包会被丢弃或分片。QUIC 会发现丢失并恢复,但你感受到的是一次卡顿。

这与导致有些网站卡住、另一些却能正常加载的问题同属一类。两件事可以减轻它:合理的隧道包大小,以及能随网络允许情况调整的路径发现。如果怀疑是这个原因,请读 VPN 的 MTU 问题,只有在 VPN 应用提供该设置时才尝试更小的值。

QUIC 流量变慢时检查什么

按顺序逐项排查。

  1. 与关闭 VPN 时对比。 两种状态下分别测速并打开视频网站。没有基准,就只是在猜。
  2. 换一个网络。 试试移动数据或另一个 Wi-Fi,把网络问题与隧道问题分开。
  3. 选更近的位置。 距离越远延迟越高,会影响 QUIC 的连接建立和交互类流量。
  4. 看隧道模式。 如果应用同时提供 UDP 和 TCP,除非网络不允许,否则用 UDP。
  5. 重启应用。 网络变化后连接停滞很常见。参见 VPN 断开后如何重新连接。
  6. 在浏览器里关闭 QUIC 测试。 这只是诊断手段。如果页面变快,说明网络可能在限制 UDP。
  7. 更新浏览器和 VPN 应用。 两者都更新得很频繁。

局限与务实的预期

  • VPN 不可能让 QUIC 比你自己的网络更快。 隧道增加开销并拉长路径,所以通过 VPN 的最佳速度通常略低于不用时的最佳速度。
  • QUIC 不会取代 VPN 的作用。 它加密网页会话,但不对本地网络隐藏你访问的网站名称,也不覆盖其他应用。
  • 换一种传输方式并不是隐私保证。 VPN 运营方能看到什么,仍取决于其政策。
  • 不是每个网络都能很好地处理 UDP。 有的会过滤,有的给予较低优先级。
  • 结果因设备和软件版本而异。 唯一可靠的测试,是在你自己的网络上做。

总结

QUIC 是现代的、加密的、基于 UDP 的传输协议,多数浏览器用它来跑 HTTP/3。VPN 像对待其他数据一样搬运 QUIC 包,增加自身开销和更长的路径,但网页会话仍受到端到端的保护。隧道自己的传输方式很重要:UDP 隧道避免了两层可靠性叠加,TCP 隧道则是限制严格的网络上的退路。速度下降时,先与关闭 VPN 对比,再换网络或位置、检查隧道模式并更新软件。

如果想用简单的预付方式在自己的设备上试一试,下载页面 提供免费应用,价格页面 说明了通行证的运作方式。

常见问题

QUIC 能通过 VPN 使用吗?

可以。对隧道来说,QUIC 只是普通的 UDP 流量,会像其他数据一样在隧道里传输。浏览器仍可通过 VPN 使用 HTTP/3;如果路径屏蔽 UDP,会回退到 TCP。

QUIC 已经加密了,还需要 VPN 吗?

QUIC 像 HTTPS 一样加密设备与网站之间的连接。VPN 增加的是另一层:对本地网络隐藏你访问了哪些网站,并把所有流量而不只是网页包进加密隧道。

为什么 VPN 对有些网站更慢?

到 VPN 网关的距离、拥塞、隧道自身的开销,以及网站服务器如何对待你的新地址,都会有影响。限制 UDP 速率的网络也可能让 QUIC 流量受到不同对待。

VPN 隧道该选 TCP 还是 UDP?

UDP 通常是更好的默认值,因为它避免了两层可靠性机制叠加。TCP 隧道主要用于不允许 UDP 的网络,在网络状况差时可能更慢。

可以在浏览器里关闭 QUIC 吗?

许多浏览器有设置或开关可以关闭,网站就会改用 TCP。只应在排查问题时这样做,因为 QUIC 本来就是更快的路径。

关于作者

Bob Kanokphon Thongdee,XPASS VPN 创始人

Bob Kanokphon Thongdee

  • XPASS VPN 创始人
  • eSIMonline.asia 联合创始人
  • 7 年以上网络营销经验
  • Cojourney Visa 与 Cojourney Travel 创始人

短途出行或忙碌的一个月,需要 VPN?

XPASS 提供按天数计算的预付通行证。一次付款,不会自动续费。

查看通行证

继续阅读

VPN 基础

什么是 VPN 协议?

VPN 协议规定了你的设备与 VPN 服务器如何连接并保护流量。本文用通俗的语言讲清楚它的含义和主要取舍。

阅读约 9 分钟

VPN 安全

OpenVPN 的 TCP 与 UDP 有什么区别?

OpenVPN 可以通过 UDP 或 TCP 传输隧道数据。本文说明两者的区别、默认用 UDP 的原因、什么时候该用 TCP,以及怎样自己动手测试。

阅读约 9 分钟

VPN 基础

为什么使用 VPN 后网速会变化

使用 VPN 会给网络路径增加距离、加密和另一段网络,所以速度常常会变化。本文解释原因、正确的测量方法,以及感觉变慢时可以尝试的做法。

阅读约 9 分钟

VPN 基础

VPN 能降低延迟(Ping)吗?延迟、抖动与丢包详解

VPN 会在路径上多加一站,所以 Ping 通常会略微升高。本文说明原因、何时可能改善,以及如何在自己的网络上测量。

阅读约 9 分钟

故障排除

VPN 的 MTU 问题:症状与解决办法

VPN 会给每个数据包再包一层,路径承载不了更大的包时,有的页面正常,有的就卡住。本文教你辨认并测试这个问题。

阅读约 9 分钟