Skip to content

说说对 HTTP3 的了解

Posted on:2024年8月10日 at 17:06

HTTP/3的来源

由于TCP和UDP两者在运输层存在一定差异,TCP的传递效率与UDP相比有天然劣势,于是Google基于UDP开发出了新的协议QUIC(Quick UDP Internet Connections),希望取代TCP提高传输效率,后经过协商将QUIC协议更名为HTTP/3。

QUIC概述

TCP、UDP是我们所熟悉的传输层协议,UDP比TCP相比效率更高但并不具备传输可靠性。而QUIC便是看中UDP传输效率这一特性,并结合了TCP、TLS、HTTP/2的优势,加以优化。

于是在QUIC上层的应用层所运行的HTTP协议也就被称为HTTP/3。

HTTP over QUIC is HTTP/3

HTTP/3新特性

1. 零RTT建立连接

如下图,传统HTTP/2(所有HTTP/2的浏览器均基于HTTPS)传输数据前需要三次RTT,即使将第一次TLS握手的对称秘钥缓存也需要两次RTT才能传递数据。

对于HTTP/3而言,仅仅需要一次RTT即可传递数据,如果将其缓存,就可将RTT减少至零。

其核心就是DH秘钥交换算法。

至此即可完成一次RTT对连接的建立,当缓存Server Config后零RTT即可进行数据传递。

2. 连接迁移

传统连接通过源IP、源端口、目的IP、目的端口进行连接,当网络发生更换后连接再次建立时延较长。

HTTP/3使用Connection ID对连接保持,只要Connection ID不改变,连接仍可维持。

3. 队头阻塞/多路复用

4. 拥塞控制

5. 流量控制

TCP使用滑动窗口的方式对发送方的流量进行控制。而对接收方并无限制。在QUIC中便补齐了这一短板。

QUIC中接收方从单挑Stream和整条连接两个角度动态调整接受的窗口大小。

原文转自:https://fe.ecool.fun/topic/9eebcbe5-2c34-482e-9198-36f750aa3555