0-RTT(Zero Round Trip Time,零往返时间)是一种优化网络连接的技术,允许客户端在未完成完整握手的情况下直接向服务器发送应用数据,从而消除握手阶段带来的往返延迟。该技术最早由 TLS 1.3 引入,后被 QUIC 协议继承并增强。以下从原理、实现、优缺点、安全性等维度进行系统剖析。
一、为什么需要 0-RTT?
网络连接建立通常需要多次往返(RTT),每次往返都增加延迟:
| 协议组合 | 首次连接 | 恢复连接 | 说明 |
|---|---|---|---|
| TCP + TLS 1.2 | 3 RTT | 3 RTT | TCP 1 RTT + TLS 2 RTT |
| TCP + TLS 1.3 | 2 RTT | 1 RTT | TCP 1 RTT + TLS 1 RTT(恢复仍需要 1 RTT) |
| QUIC(TLS 1.3) | 1 RTT | 0 RTT |