Citrix ADC

基于QUIC协议的HTTP3

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

对于连接和传输延迟,HTTP/3使用QUIC代替TCP协议。QUIC是一种新兴的协议,它使用UDP代替TCP作为基本传输。在HTTP-over-QUIC中,您可以在不依赖于单个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:通过QUIC协议向Citrix ADC设备发送客户端HTTP/3请求。步骤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通信的基本单元是帧。每种框架类型都有不同的用途。例如,报头和数据帧构成了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协议如何工作

基于QUIC协议的HTTP3