【学习笔记】0-RTT
文章目录
- 1. 0-RRT(Zero Round-Trip Time)
- 2. 实现
- 3. 优势与风险
1. 0-RRT(Zero Round-Trip Time)
该技术主要出现在 TLS 1.3 和 QUIC/HTTP 3 中。
核心思想: 传统的加密握手,需要一次或两次往返(RTT)才能完成密钥协商,而 0-RTT 则允许客户端在第 0 次往返就发送 早期数据,大幅缩短首次请求的启动时间。
2. 实现
-
缓存密钥材料: 在首次完整握手成功后,客户端会保存与服务器协商出的 早期数据密钥。
-
快速重连: 当客户端再次与同一服务器建立连接时,可利用保存的密钥和参数,跳过大部分握手步骤, 在发送首个加密数据包的同时完成握手。
-
早期数据: 客户端在第一个包里就把应用数据(如 HTTP 请求)直接发送给服务器;服务器一旦验证密钥成功,就可立即解密并处理。
3. 优势与风险
优势 | 风险/限制 |
---|---|
降低延迟 | 重放攻击: 早期数据可能被中间人或重放,必须只能处理幂等操作(如 GET),不能用来进行有副作用的事务。 |
快速恢复连接: 适合短连接场景,如微服务请求、API 调用。 | 服务端需要明确允许哪些早期数据,且通常对 0-RTT 请求做严格幂等校验或限流。 |