Firefox 预计将在 3 月底推出 HTTP/XNUMX 支持。

Mozilla 已宣布打算在 Firefox 3 发布时开始逐步采用 HTTP/88 和 QUIC,计划于 19 月 20 日发布(原定于 3 月 3 日发布,但从时间表来看,将推迟一天)。 最初将只为一小部分用户启用 HTTP/XNUMX 支持,除非出现任何意外问题,否则将在 XNUMX 月底向所有人推出。 在夜间构建和 Beta 版本中,HTTP/XNUMX 在 XNUMX 月底默认启用。

让我们回想一下,Firefox 中 HTTP/3 的实现是基于 Mozilla 开发的 neqo 项目,该项目为 QUIC 协议提供了客户端和服务器实现。 HTTP/3 和 QUIC 支持的组件代码是用 Rust 编写的。 为了控制是否启用 HTTP/3,about:config 提供了“network.http.http3.enabled”选项。 从客户端软件来看,Chrome 和curl 也添加了对HTTP/3 的实验性支持,对于服务器,它可以在nginx 中使用,也可以以nginx 模块和来自Cloudflare 的测试服务器的形式使用。 在网站方面,Google 和 Facebook 服务器已经提供了 HTTP/3 支持。

HTTP/3 协议仍处于规范草案阶段,尚未由 IETF 完全标准化。 HTTP/3 要求客户端和服务器支持相同版本的 QUIC 草案标准和 HTTP/3,这在 Alt-Svc 标头中指定(Firefox 支持规范草案 27 到 32)。

HTTP/3 定义了使用 QUIC 协议作为 HTTP/2 的传输。 QUIC(快速 UDP 互联网连接)协议由 Google 自 2013 年起开发,作为 Web 的 TCP+TLS 组合的替代方案,解决了 TCP 连接建立和协商时间长的问题,并消除了数据传输过程中数据包丢失时的延迟。转移。 QUIC是UDP协议的扩展,支持多个连接的复用,并提供相当于TLS/SSL的加密方法。 在 IETF 标准的开发过程中,对协议进行了更改,从而导致了两个并行分支的出现,一个用于 HTTP/3,另一个由 Google 支持(Chrome 支持这两个选项)。

QUIC 的主要特点:

  • 类似于 TLS 的高安全性(本质上 QUIC 提供了通过 UDP 使用 TLS 的能力);
  • 流量完整性控制,防止丢包;
  • 能够立即建立连接(0-RTT,在大约 75% 的情况下,可以在发送连接建立数据包后立即传输数据)并在发送请求和接收响应之间提供最小的延迟(RTT,往返时间);
  • 重传数据包时使用不同的序列号,这可以避免识别接收到的数据包时出现歧义并消除超时;
  • 数据包丢失仅影响与其关联的流的传送,并且不会停止通过当前连接传输的并行流中数据的传送;
  • 纠错功能可最大限度地减少因重传丢失数据包而导致的延迟。 在数据包级别使用特殊的纠错码可以减少需要重传丢失的数据包数据的情况。
  • 密码块边界与QUIC数据包边界对齐,减少丢包对后续数据包内容解码的影响;
  • 不存在TCP队列阻塞的问题;
  • 支持连接标识符,减少移动客户端重新建立连接的时间;
  • 连接高级连接拥塞控制机制的可能性;
  • 采用单向吞吐量预测技术,确保数据包以最佳速率发送,防止数据包拥塞而导致丢包;
  • 与 TCP 相比,性能和吞吐量显着提高。 对于 YouTube 等视频服务,QUIC 已被证明可以将观看视频时的重新缓冲操作减少 30%。
  • 来源: opennet.ru

添加评论