Citrix ADC

HTTP3 通过 QUIC 协议

通过 TCP 的 HTTP/2 是通过单个连接发送多个 HTTP 请求流的首选标准。但是,在 TCP 传输机制中,访问网站和 Web 应用程序存在一定的限制和延迟问题。当您通过同一连接对多个请求进行多次复用时,它们受到同一连接的可靠性的影响。如果一个请求的数据包丢失,则所有其他多路复用请求都会延迟,直到检测到丢失的数据包并重新传输为止。这会导致线路阻塞延迟和延迟问题。

对于连接和传输延迟,HTTP/3 使用 QUIC 而不是 TCP 协议。QUIC 是一种新兴的协议,它使用 UDP 而不是 TCP 作为基础传输。 在 HTTP-OverQuic 中,您可以在不依赖于单个 TCP 连接的情况下对几个独立的请求进行多路复用。QUIC 实现了可靠的连接,您可以在此连接上流式传输多个 HTTP 请求。QUIC 还将 TLS 作为集成组件,而不是像 HTTP/1.1 或 HTTP/2 那样作为额外的层。

使用HTTP/3协议的优势

下面给出了使用 QUIC 协议进行 HTTP/3 数据传输的一些重要优势:

• 流式传输多路复用 • 流和连接级别的流量控制 • 低延迟连接建立 • 连接迁移和对 NAT 重新绑定的弹性 • 经过身份验证和加密的标头和

HTTP 协议中的传输堆栈

下图显示了 HTTP/1.1、HTTP/2 和 HTTP/3 协议中的传输堆栈。

HTTP 协议中的传输堆栈

QUIC 和 HTTP/3 连接管理在 Citrix ADC 中的工作原理

下图显示了 Citrix ADC 设备中的 QUIC 和 HTTP/3 连接管理方式以及组件之间的交互方式。

QUIC 和 HTTP/3 连接管理的工作原理

步骤 1:客户端 HTTP/3 通过 QUIC 协议向 Citrix ADC 设备发出请求。 步骤 2:Citrix ADC 作为 HTTP/1.1 或 HTTP/2 转发的请求,具体取决于后端服务器支持。 步骤 3:通过 HTTP/2 或 HTTP/1.1 从后端服务器响应 Citrix ADC。 步骤 4:ADC 将响应作为 HTTP/3 响应转发给客户端。

HTTP/3 协议的工作原理

在 HTTP/3 中,当客户端知道某个端点上存在 HTTP/3 服务器时,它会打开 QUIC 连接。QUIC 协议提供多路复用和流量控制。在每个流中,HTTP/3 通信的基本单元是帧。每种帧类型都有不同的用途。例如,HEADS 和 DATA 帧构成了 HTTP 请求和响应的基础。

请求的多路复用是使用 QUIC 流抽象来执行的。每个请求-响应对都占用一个 QUIC 流。流互相独立,因此一个被阻止或遭受数据包丢失的流不会阻止其他流上的进展。服务器推送是 HTTP/2 中引入的一种交互模式,它允许服务器在客户端发出指定请求之前向客户端推送请求-响应交换。这将网络使用量与潜在的延迟增益相抵消。几个 HTTP/3 帧用于管理服务器推送,例如 PUSH_PROMISE、MAX_PUSH_ID 和 CANCEL_PUSH。与 HTTP/2 一样,请求和响应字段被压缩以进行传输。由于 HPACK 依赖于按顺序传输压缩字段(QUIC 不提供的保证),因此 HTTP/3 用 QPACK 取代 HPACK。QPACK 使用独立的单向流来修改和跟踪字段表状态,而编码字段部分在不修改表的情况下引用表的状态。

HTTP/3 协议的工作原理

HTTP3 通过 QUIC 协议