QUIC 时 HTTP 客户端连接池是否仍然有效,HTTP/3 是预期的 major/all 流量?

Is HTTP client side connection pooling still valid when QUIC, HTTP/3 is the major/all traffic expected?

作为现代系统,尤其是微服务,HTTP客户端的连接池是经常部署的。但是对于 QUIC + TLS1.3,在我看来连接池将毫无用处,因为 QUIC 中支持 0-RTT。

是否有任何 QUIC 专家可以就此主题分享更多信息?

它仍然有效,因为:

  • 0-RTT 请求在客户端和服务器端的计算成本都比重新使用连接要高,因为所有私钥加密操作和证书检查仍然适用
  • 0-RTT 请求 可以 引入安全问题,因为它提供了重播攻击的机会(参见 https://datatracker.ietf.org/doc/html/draft-ietf-quic-tls-34#section-9.2)。如果不使用 0-RTT 功能,QUIC 握手仍然需要 1-RTT。

然而,由于 QUIC 已经在流上提供多路复用多个请求,因此不应要求客户端保持完整的连接池。只要服务器宣传能够支持足够多的流,单个连接通常就足够了。