参考文章:小林coding(3.7 HTTP/3 强势来袭 | 小林coding)
ChatGPT,仅用于自用复习
1. 基于 QUIC 协议
QUIC 是一种在 UDP 基础上开发的传输协议,具备以下特点:
低延迟:通过 0-RTT 和 1-RTT 快速握手,降低连接延迟。
内置加密:QUIC 强制使用 TLS 1.3,所有数据传输默认加密。
无队头阻塞:TCP 依赖于单条连接的顺序数据传输,丢包会阻塞所有数据。而 QUIC 的每个数据流独立,丢包只影响单个流。
快速恢复机制:QUIC 的拥塞控制算法更高效,适合高延迟或高丢包网络。
2. 多路复用改进
HTTP/3 进一步优化了 HTTP/2 的多路复用机制:
在 HTTP/2 中,尽管支持多路复用,但丢包会导致整个 TCP 连接阻塞。
在 HTTP/3 中,流是完全独立的,丢包仅影响相关流,显著提升了传输效率。
3.更快的连接建立
对于 HTTP/1 和 HTTP/2 协议,TCP 和 TLS 是分层的,分别属于内核实现的传输层、OpenSSL 库实现的表示层,因此它们难以合并在一起,需要分批次来握手,先 TCP 握手,再 TLS 握手。
而 QUIC 内部包含了 TLS,它在自己的帧会携带 TLS 里的“记录”,再加上 QUIC 使用的是 TLS 1.3,因此仅需 1 个 RTT 就可以「同时」完成建立连接与密钥协商,甚至在第二次连接的时候,应用数据包可以和 QUIC 握手信息(连接信息 + TLS 信息)一起发送,达到 0-RTT 的效果。
4. 连接迁移
基于 TCP 传输协议的 HTTP 协议,由于是通过四元组(源 IP、源端口、目的 IP、目的端口)确定一条 TCP 连接。基于 TCP 传输协议的 HTTP 协议,由于是通
过四元组(源 IP、源端口、目的 IP、目的端口)确定一条 TCP 连接。因此连接的迁移成本是很高的。而 QUIC 协议没有用四元组的方式来“绑定”连接,而是通过连接 ID 来标记通信的两个端点,客户端和服务器可以各自选择一组 ID 来标记自己,因此即使移动设备的网络变化后,导致 IP 地址变化了,只要仍保有上下文信息(比如连接 ID、TLS 密钥等),就可以“无缝”地复用原连接,消除重连的成本,达到了连接迁移的功能。
505

被折叠的 条评论
为什么被折叠?



