Skip to content

UDP 与 QUIC

UDP 特性、应用场景、QUIC 与 HTTP/3。

Updated View as Markdown
For humans

UDP 与 QUIC

UDP 常被误解为“不可靠所以没用”。面试主线:UDP 的真实定位、QUIC 为什么在 UDP 上重建 TCP。

UDP 特性

维度 UDP TCP
连接 无连接(发就完了) 三次握手
可靠性 不保证(可能丢、乱序) 可靠传输
开销 头部 8 字节 头部 20+ 字节 + 状态
拥塞控制
适用 实时性优先 可靠性优先

UDP 的价值:把可靠性决策交给应用。需要低延迟、可容忍丢失的场景,TCP 的重传和拥塞控制反而是负担。

UDP 应用场景

场景 为什么用 UDP
视频/语音通话 丢几帧无所谓,延迟不能忍(TCP 重传反而更卡)
游戏 状态同步,旧包没意义
DNS 查询 一问一答,快;大响应自动切 TCP
日志上报 可丢,别阻塞
QUIC 见下

QUIC:UDP 上的“TCP 重做”

QUIC: 在 UDP 上重做 TCP + TLS + 多路复用

QUIC 解决的三个 TCP 老大难:

问题 QUIC 方案
队头阻塞(TCP 层) 多流独立:一个流丢包不影响其他流
握手慢(TCP+TLS 两次往返) TLS 1.3 内置,1-RTT/0-RTT
移动网络切换断连 连接 ID 不依赖 IP,换网不断

HTTP/3 = QUIC + HTTP 语义:传输层换 QUIC,应用层还是 HTTP。

面试话术:QUIC 不是推翻 TCP,而是绕开 TCP 的内核实现限制,把可靠性、加密、多路复用合到用户态一个协议里,能快速迭代。

面试追问

  1. UDP 什么时候用? 实时性优先、可容忍丢失:音视频、游戏、日志。可靠性应用自己管
  2. QUIC 解决什么? TCP 三痛点:传输层队头阻塞、握手慢、连接迁移难
  3. QUIC 怎么做到多流? 流级独立:丢包只重传该流,其他流不受影响(TCP 是整个连接一起堵)
  4. HTTP/3 和 QUIC 的关系? HTTP/3 是跑在 QUIC 上的 HTTP。QUIC 是传输层,HTTP 语义不变
  5. QUIC 为什么不基于 TCP? TCP 实现在内核,迭代慢。UDP 之上用户态实现,快速演进
Navigation

Type to search…

↑↓ navigate↵ selectEsc close