在最近的一份公告中,Pinterest 透露其已成功从 HTTP/2 迁移到 HTTP/3。这标志着其网络基础设施的重大改进。目的是通过利用现代 HTTP/3 协议的功能来增强用户体验并改进关键业务指标。

HTTP/3 之旅

网络性能(例如低延迟和高吞吐量)对于 Pinners 的体验至关重要。

2021 年,Pinterest 的一群客户端网络爱好者开始考虑为 Pinterest 采用 HTTP/3,从流量/CDN 到客户端应用程序。他们在 2022 年全年都在努力实现这一目标,并于 2023 年初实现了目标。

网络性能此处,然后再继续。

HTTP/3 是一种现代 HTTP 协议,与 HTTP/2 相比具有许多优点,包括但不限于:

  • 与 HTTP/2 相比,不存在 TCP 队头阻塞问题。
  • 跨 IP 地址的连接迁移,这非常适合移动用例。
  • 能够更改/调整丢失检测和拥塞控制参数。
  • 减少连接时间(0-RTT,而 HTTP/2 仍需要 TCP 3 次握手)。
  • 对于大负载用例(例如图像下载、视频流等)更加高效。

让我们深入了解这些优势,了解它们的含义以及它们如何帮助 Pinterest。

1。队头阻塞

在 HTTP/2 及更早版本中,可能会出现称为“队头阻塞”的问题。队头阻塞是一种性能下降现象,其中一个 HTTP 请求会阻止其他请求的处理。

Head-of-lineblocking

这意味着,如果一种资源(如图像或脚本)在传输中遇到延迟,它可能会阻止其他资源的传输,即使它们已准备就绪。这可能会影响整个网页加载时间。

例如,让我们考虑这样一个场景:网页由多种资源组成:HTML、CSS、JavaScript 和图像。如果 JavaScript 的大小较大,它会阻塞后续请求的图像,直到 JavaScript 到达。

这可能会影响整个网页加载时间。

为了克服这个问题,HTTP/2 引入了 HTTP Streams。 HTTP 流是一种抽象,允许在同一 TCP 连接上多路复用不同的 HTTP 交换。

HTTP 2

例如,假设用户使用移动设备(例如智能手机或平板电脑)来访问依赖 HTTP/3 进行通信的 Pinterest。用户决定离开家并开始在移动时使用蜂窝数据。此转换涉及从家庭 Wi-Fi 网络切换到蜂窝网络,从而导致设备获取与蜂窝网络关联的新 IP 地址。

HTTP/3 跨 IP 地址迁移连接的能力可确保网络之间切换期间的无缝转换。

3。能够更改/调整丢失检测和拥塞控制

HTTP/3 提供了更改和调整丢失检测和拥塞控制机制的能力。这允许根据特定用例或网络条件进行定制。微调这些方面有助于提高性能和可靠性。

在网络中,“丢失检测”是指通信协议识别数据包何时丢失或未成功传送到预期接收者的能力。

例如,考虑移动设备遇到间歇性连接的场景。在这种情况下,可以调整 HTTP/3 中的丢失检测机制,使其更能容忍短暂的连接丢失,从而最大限度地减少不必要的重传并优化数据传输。

拥塞控制是网络协议的一个基本方面,可确保数据有效传输而不会造成网络拥塞。拥塞控制算法确定发送方如何根据网络状况调整其数据传输速率。 HTTP/3 提供了更改或调整其拥塞控制机制的能力。

拥塞控制

4。 减少连接时间(0-RTT,而 HTTP/2 仍然需要 TCP 3 次握手)

三次握手是 TCP 用于在客户端和服务器之间建立可靠且面向连接的通信通道的过程。由于 HTTP 通常在 TCP 上运行,因此三向握手与为 HTTP 通信建立 TCP 连接的上下文相关。它包括以下步骤:

减少连接时间

1. SYN(同步):客户端通过向服务器发送带有 SYN 标志的 TCP 段来发起连接。这表明客户端建立连接的意图,并且还包括初始序列号。

2. SYN-ACK(同步确认):收到 SYN 段后,服务器会使用同时设置了 SYN 和 ACK 标志的 TCP 段进行响应。确认号设置为比接收到的客户端序列号大1,并且服务器也选择其初始序列号。

3. ACK(确认):最后,客户端发送一个设置了 ACK 标志的 TCP 分段。确认号被设置为比接收到的服务器序列号大1。这样就完成了三次握手,双方现在都知道连接已建立。

4. RTT(往返时间)包括消息从服务器传播到服务器的时间。在网络和 Web 性能方面,RTT 是一个关键指标,因为它会影响应用程序的响应能力。 RTT 值越低,通信越快,延迟越少,这对于实时应用、在线游戏和其他低延迟至关重要的场景来说是理想的选择。

0-RTT是HTTP/3使用的QUIC协议的一个显着特性。

使用 0-RTT,客户端可以在连接的第一条消息中向服务器发送数据,而无需等待往返时间 (RTT)。

这是通过使用先前建立的会话信息或恢复先前的会话来实现的。它允许客户端在初始请求中包含数据,提高连接建立的效率。

在 HTTP/3 中使用 0-RTT 显着减少了初始连接设置所需的时间。客户端可以立即开始发送数据,从而加快网页和资源的加载时间。

这对于最小化延迟至关重要的场景尤其有利,例如快速加载网页或提供实时内容,如 Pinterest 的情况。

5。对于大负载用例(例如图像下载、视频流等)更加高效

HTTP/3 对于涉及大负载的用例(例如下载图像或流视频)更有效。该协议的设计非常适合处理需要传输大量数据的场景,有助于提高富媒体内容环境中的性能。

HTTP/3 具有完善的流量控制机制,可以更好地处理大型负载。流量控制对于防止接收器同时接收过多数据至关重要。

HTTP/3 对于大负载用例的效率源于其高效的多路复用、减少的延迟、改进的流量控制和自适应连接处理。这些功能共同有助于在处理网络上的富媒体内容时提供更好的用户体验。

多路复用、0-RTT、轻松的连接迁移以及改进的流量控制使 HTTP/3 对于大型负载而言非常高效。

Pinterest 的分析表明 HTTP/3 改善了往返延迟和可靠性。改善延迟/吞吐量对于大型媒体功能(例如视频和图像)至关重要。更快、更可靠的网络还能够提高用户参与度指标。

此处的图表显示了在 HTTP/3 之前和之后针对不同负载收集的一周内数据的网络请求往返延迟(以毫秒为单位)。

Apple 网络和 Cronet

总而言之,Pinterest 采用 HTTP/3 是一项战略举措,旨在利用该协议的高级功能并增强平台的整体网络性能。从减少延迟到改进大型有效负载的处理等,这些好处有助于在 Pinterest 平台上提供更加无缝和高效的用户体验。随着业界不断拥抱 HTTP/3,Pinterest 站在创新的前沿,使其网络基础设施与网络协议的最新进展保持一致。

Comments are closed.