QUIC 基础问答
-
QUIC 是什么?
基于 UDP 的传输协议,集成 TLS 1.3 加密、0-RTT/1-RTT 握手、多路复用、可靠传输与拥塞控制,主要用于 HTTP/3。 -
QUIC 握手与 TCP+TLS 有何差异?
将传输握手与 TLS 1.3 合并,首次连接通常 1-RTT 完成密钥协商,恢复连接可 0-RTT 发送早期数据;相比 TCP+TLS(1.5~2 RTT),首包延迟更低。 -
为什么 QUIC 能避免 TCP 队头阻塞?
逻辑流在单连接中独立确认和重传,某一流的丢包不阻塞其他流;而 TCP 的序列号全局有序,任一段丢失会阻塞后续字节上交,放大丢包对多路复用的影响。 -
QUIC 的可靠性和拥塞控制如何做?
在用户态实现可靠传输(包编号、ACK、重传)与拥塞控制(通常使用 CUBIC/BBR 变体),并结合 ACK 延迟、PN 空间分层等机制;可更快迭代算法,不受内核升级限制。 -
QUIC 的连接标识如何设计?
使用 Connection ID(CID)标识连接,可在 NAT 变更或网络切换时复用同一连接,避免五元组改变导致的断连;同时便于服务器做无状态转发/迁移。 -
QUIC 适合哪些场景?
移动网络频繁切换、对首包延迟敏感的业务(浏览器、APP API)、需要多路复用且避免队头阻塞的场景(HTTP/3)。若环境对 UDP 不友好或有严格中间盒,落地需验证。 -
QUIC 与 TCP 的兼容性如何?
基于 UDP,可能被部分防火墙/NAT/运营商限速或丢弃;需配合回退策略(如 HTTP/3 回落到 HTTP/2),并监控路径可达性。服务器端需支持 UDP 报文放大防护。