QUIC 在 UDP 上实现加密、可靠传输、拥塞控制和多路复用,是 HTTP/3 的传输基础。UDP 只负责发送数据报;确认、重传、流控、拥塞控制和 TLS 1.3 握手都由 QUIC 协议实现。把连接状态放在用户态让协议演进更快,但也要求实现方认真处理定时器、内存和丢包恢复。
多路复用减少的是哪一种阻塞
TCP 的有序字节流在一个报文丢失后会阻塞后续字节交付,哪怕它们属于不同 HTTP 请求。QUIC 将应用数据放进独立 stream,因此一个 stream 缺失数据时,其他 stream 仍可交付已完整的数据。丢失的 QUIC 包仍然会消耗带宽和恢复时间,所以它不是“网络丢包没有影响”,而是把影响限制在相关流和拥塞窗口内。
连接快不等于每个请求都快
TLS 1.3 与 QUIC 紧密集成,能减少握手轮次;0-RTT 等机制还要考虑重放和幂等性。性能调试应同时观察握手、首字节时间、stream 排队、ACK 延迟和拥塞窗口,而不是只看 UDP 包数量。对服务器实现来说,连接状态、加密 CPU 开销和放大攻击限制也都是容量的一部分。
参考:QUIC 可靠传输协议