# HTTP/3 QUIC 握手解剖

逐字节解剖 HTTP/3 over QUIC 握手。可视化 1-RTT 全新握手、基于会话票据的恢复，以及 0-RTT 早期数据三种场景，配以时序图、每个数据包的字段布局、Retry 报文，以及与 TCP + TLS 1.3 的逐项对比。适合面试备考、协议学习与性能工程。

> 标准页面: https://elysiatools.com/zh/tools/http-3-quic-handshake-anatomy

- **分类:** Network

- **关键词:** http/3, quic, quic 握手, 0-rtt, tls 1.3, rfc 9000, rfc 9114, 连接迁移, alpn h3, 队头阻塞, 网络协议, 协议学习, tcp vs quic, udp, 会话恢复

## 概述

面向网络工程师、SRE 与学习者的 HTTP/3 over QUIC 握手字节级解剖：

1. 选择场景：全新 1-RTT 连接、基于会话票据的恢复，或 0-RTT 早期数据。
2. 时序图按往返分组展示每个数据流（Initial、Handshake、1-RTT），带方向箭头与数据包/帧徽章。
3. 详细模式为每个 QUIC 数据包补充字节级字段布局：长头部标志、版本、DCID/SCID、长度、包号与 CRYPTO 载荷。
4. Retry 解释涵盖地址验证：服务器签发的 token、完整性标签，以及为什么 Retry 绝不携带应用数据。
5. 对比表从合并握手、首字节时间、队头阻塞、连接迁移与中间盒成熟度等维度对比 QUIC/HTTP-3 与 TCP + TLS 1.3。

离线参考资料：基于 RFC 9000（QUIC）与 RFC 9114（HTTP/3）；不进行实时抓包。

## 输入项

- **握手场景** (select)
- **详尽程度** (select)
- **显示与 TCP + TLS 1.3 对比** (checkbox)
- **显示 QUIC 长头部字节图** (checkbox)

## 适用场景

- 需要深入理解 QUIC 协议中 Initial、Handshake 和 1-RTT 数据包的往返时序与帧结构时。
- 在进行网络性能工程设计，需要对比评估 QUIC 与 TCP + TLS 1.3 在首字节时间（TTFB）和连接迁移上的差异时。
- 分析 QUIC Retry 报文的地址验证机制或研究 0-RTT 早期数据的安全重放风险时。

## 工作原理

- 选择目标握手场景，包括全新 1-RTT 连接、带票据的会话恢复或 0-RTT 早期数据。
- 配置详尽程度（概览或字节级帧布局），并选择是否开启与 TCP + TLS 1.3 的对比及 QUIC 长头部字节图展示。
- 工具基于 RFC 9000 和 RFC 9114 规范，动态生成包含时序图、数据包字段布局和对比表格的交互式 HTML 可视化界面。

## 使用案例

- 教学与协议学习：直观演示 QUIC 握手过程中 Initial 和 Handshake 数据包的往返时序与字段结构。
- 性能工程评估：对比 QUIC 与 TCP + TLS 1.3 在首字节时间（TTFB）和连接迁移上的表现。
- 安全与防御分析：研究 QUIC Retry 令牌校验机制以及 0-RTT 早期数据的防重放设计。

## 常见问题

### 这个工具是进行实时抓包分析吗？

不是。本工具是基于 RFC 规范的离线模拟与解剖工具，不进行实时网络抓包。

### 什么是 0-RTT 早期数据，它有什么风险？

0-RTT 允许客户端在首个数据包中直接发送应用数据以消除握手延迟，但这也带来了被攻击者重放请求的安全风险。

### QUIC 的 Retry 报文有什么作用？

Retry 报文用于服务器对客户端进行地址验证以防止流量放大攻击，且 Retry 报文绝不携带任何应用数据。

### 为什么 QUIC 能解决 TCP 的队头阻塞问题？

因为 QUIC 在 UDP 之上实现了多路复用，每个流（Stream）相互独立，单个流的丢包不会阻塞其他流的数据传输。

### 详细模式（detailed）会展示哪些字段？

会展示长头部标志、版本号、源/目的连接 ID（SCID/DCID）、长度、数据包号以及 CRYPTO 帧载荷等字节级布局。

## 相关工具

- [IP 地理位置可视化](https://elysiatools.com/zh/tools/ip-geolocation): 以富卡片形式可视化展示任意 IP 地址的地理位置、网络（ASN/ISP）、时区与安全画像
- [端口扫描器](https://elysiatools.com/zh/tools/port-scanner): 扫描目标主机或IP地址的开放端口
- [MAC OUI 厂商查询器](https://elysiatools.com/zh/tools/mac-oui-vendor-lookup): 从内置的 IEEE OUI 数据库查询 MAC 地址的厂商，或反向按公司名列出其全部 OUI 段，完全离线运行
- [电容串并联/容抗计算器](https://elysiatools.com/zh/tools/capacitor-calculator): 电容串并联组合、容抗 Xc 与 RC 时间常数，含电路图与容抗曲线
- [信用卡返现计算器](https://elysiatools.com/zh/tools/cash-back-calculator): 信用卡返现计算器：输入各消费类别（名称、月消费额、返现率），计算月度与年度返现额、有效返现率，并与平价卡对比哪个更划算，展示各类别返现占比图。
- [晶体结构浏览器](https://elysiatools.com/zh/tools/crystal-structure-explorer): 浏览 ~25 种教科书常见晶体结构(NaCl 岩盐、金刚石、CsCl、萤石、金红石、钙钛矿…)。显示晶系、空间群、晶胞参数、配位数,并用 Three.js 渲染可拖动旋转的 3D 球棍模型。面向高中/本科固体化学与无机化学教学。
- [折旧计算器](https://elysiatools.com/zh/tools/depreciation-calculator): 对比四种折旧方法：直线法、余额递减法（含倍率如双倍 DDB）、年数总和法（SYD）、产量法（需输入各年用量）。展示各方法的账面净值曲线与逐年折旧表。
- [多普勒效应计算器 (频移)](https://elysiatools.com/zh/tools/doppler-effect-calculator): 计算运动声源/观察者的观测频率与频移，附波前示意图

## 示例

- [QUIC 协议示例](https://elysiatools.com/zh/samples/quic-protocol-samples): 全面的 QUIC 协议示例，涵盖 HTTP/3 实现、UDP 可靠传输、连接迁移和性能优化
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换
- [PCAPNG 抓包样例](https://elysiatools.com/zh/samples/pcapng-samples): 从简单到复杂的可下载 PCAPNG 抓包文件，适合格式验证、解析器测试和网络分析演练

## 相关内容

- [网络地址转换与流量检查工具](https://elysiatools.com/zh/hubs/network-convert): 围绕网络地址转换、抓包检查与请求调试整理的一组工具。
- [网络排障、抓包检查与端点调试工具](https://elysiatools.com/zh/hubs/network-triage-debugging): 在一个网络排查专题中完成抓包分析、Webhook 调试、DNS 与 SSL 端点检查、地址校验和 User-Agent 分析。
