UDP / USER DATAGRAM PROTOCOL
RFC 768 · 1980
互联网协议导览 · 第 02 讲

UDP 是
互联网的
快枪手

它不握手、不确认、不保证送达,但正因如此, 它极快、极简、极低延迟—— 视频通话、在线游戏、DNS 查询,都离不开它。

UDP 8 bytes
按 → 或 空格 翻页
EP.02 · UDP FUNDAMENTALS
TABLE OF CONTENTS
02 / 13
本次讲解

我们要聊什么?

01
基础

什么是 UDP?

从明信片比喻出发,理解无连接、不可靠、数据报。

P.03–04
02
报文

数据报结构

8 字节首部,简单到令人发指。

P.05
03

使用场景
与优势

为什么视频和游戏爱用它。

P.06–08
04
端口与复用

多路复用与分用

端口号如何区分不同应用。

P.09–10
05
现代应用

UDP 之上的新世界

QUIC · DTLS · RTP · HTTP/3

P.11–12
06

总结

一句话记住 UDP。

P.13
共 13 页 · 约 20 分钟
USE ARROWS TO NAVIGATE
WHAT IS UDP
03 / 13
用一个比喻

UDP 像一张
明信片

你写一张明信片扔进邮筒,不挂号、不追踪、不确认
不知道对方收没收到
不知道有没有丢
不保证顺序,先寄的可能后到;
④ 但极快、极轻、零开销

无连接 不可靠 数据报 低延迟
SENDER RECEIVER #1 #2 #3 扔了就跑 · 不确认 · 不保证顺序
OSI 第 4 层 · 传输层
UDP IS A FAST DATAGRAM
UDP vs TCP
04 / 13
同一层的两个极端

如果 UDP 是明信片
TCP 就是挂号信

UDP

明信片

01
  • ✓ 无连接 · 扔了就跑
  • ✓ 首部仅 8 字节
  • ✓ 延迟极低
  • ✓ 支持一对一、一对多、多对多
  • ✗ 不保证可靠送达
  • ✗ 不保证按序到达
  • ✗ 无拥塞控制
DNS · QUIC · 视频通话 · 在线游戏 · DHCP · SNMP
TCP

挂号信

02
  • ✓ 三次握手建立连接
  • ✓ 保证可靠送达
  • ✓ 保证按序到达
  • ✓ 拥塞 / 流量控制
  • ✗ 首部较大(20–60 字节)
  • ✗ 延迟较高
  • ✗ 连接状态开销
HTTP · HTTPS · SSH · FTP · SMTP · MySQL
选择哪个?看你怕慢还是怕丢
RFC 768 vs RFC 793
DATAGRAM STRUCTURE
05 / 13
拆开数据报看看

8 字节首部
简单到令人发指

0 15 16 31 BITS 源端口 Source Port (16 bit) 目的端口 Destination Port (16 bit) 长度 Length (16 bit) 校验和 Checksum (16 bit) 数据 Data ↓ 可变长 · 最大 65507 字节(IPv4)
PORT

端口号区分同一主机上的不同应用进程,实现多路复用。

LENGTH

长度 = 首部 + 数据的总字节数。最小值 8(仅首部)。

CHECKSUM

校验和可选,检测传输差错。IPv4 中可为 0(不校验)。

对比 TCP

TCP 首部 20–60 字节,UDP 只有 8 字节,开销仅为 TCP 的 1/3。

8 字节首部 + 可变长数据
RFC 768 · 1980
USE CASES
06 / 13
谁在用 UDP

这些场景 · 快比稳更重要

视频通话 Zoom · FaceTime · 腾讯会议 宁可丢帧,不能卡顿 在线游戏 FPS · MOBA · 大逃杀 50ms 延迟 = 生死之差 DNS 查询 域名解析 一个请求一个包,极简 流媒体直播 Twitch · YouTube Live 实时性 > 完整性 共同特征:实时性 > 可靠性
UDP 不是"差",而是"为特定场景优化"
REAL-TIME APPLICATIONS
WHY SO FAST
07 / 13
速度的秘密

为什么 UDP
这么快?

无连接 零握手

没有握手,就没有等待

TCP 需要 1.5 RTT 建立连接,UDP 直接发送。 对于 DNS 这种"一问一答"的场景,握手开销比数据本身还大。

DNS 查询:UDP 1 RTT vs TCP 2.5 RTT
无状态 无维护

不维护连接状态

TCP 需要维护发送缓冲区、接收缓冲区、拥塞窗口、序列号状态机…… UDP 内核什么都不记,收到应用层的数据,加个首部直接扔给 IP。

服务端可同时处理百万级 UDP 连接
HEADER
8 B

首部仅 8 字节,TCP 是它的 3–8 倍。

RTT
0

无需握手,第一个包就是数据。

STATE

无连接状态,无缓冲区,无重传队列。

快不是因为功能多,而是因为"什么都不做"
LESS IS MORE · RFC 768
UNRELIABLE & SOLUTIONS
08 / 13
不可靠怎么办

UDP 不可靠?
应用层自己解决

UDP 层 应用层 ① 丢包了?UDP 不管 ② QUIC:我自己做加密 + 重传 ③ 视频:丢帧就丢帧,插值补上 ④ 游戏:状态同步,丢包等下一帧
UDP 提供"裸传输",可靠性由应用层按需构建
QUIC = UDP + TLS + 自定义可靠性
PORTS & MULTIPLEXING
09 / 13
多路复用

端口号 · 区分不同应用

PORT NUMBER

16 位端口号

UDP 用 源端口 + 目的端口 实现多路复用: 同一台机器上,浏览器、游戏、视频通话可以同时走 UDP, 互不干扰。

EXAMPLE
DNS 服务器监听 :53, 客户端随机端口 :49152
WELL-KNOWN PORTS

常见 UDP 端口

53 DNS 域名系统
67/68 DHCP 动态主机配置
123 NTP 网络时间协议
161 SNMP 简单网络管理
443 QUIC / HTTP/3
端口号让 UDP 知道把数据交给谁
0–1023: 知名端口 · 1024–49151: 注册端口 · 49152–65535: 动态端口
CHECKSUM & ERROR DETECTION
10 / 13
差错检测

校验和 · UDP 唯一的防线

CHECKSUM

16 位校验和

可选(IPv4)
伪首部
IP 源地址 + IP 目的地址 + 协议 + UDP 长度
UDP 首部
8 字节
数据
填充到 16 位边界
↓ 计算
二进制反码求和 → 取反 = 校验和

校验和覆盖伪首部 + UDP 首部 + 数据,但不纠错—— 发现错误直接丢弃,不通知发送方。

VS TCP

UDP 的"佛系"差错处理

TCP 校验和错误 → 重传
UDP 校验和错误 → 静默丢弃

在 IPv4 中,UDP 校验和甚至是可选的(设为 0 表示不校验)。 某些对延迟极度敏感的场景(如视频)会故意关闭校验和。

IPv6 中校验和强制为 0(由上层负责)
UDP 的差错检测是"尽力而为",不是"保证修复"
RFC 768 · SECTION 2
PROTOCOLS ON UDP
11 / 13
现代协议栈

UDP 之上 · 长出了新世界

STACK

基于 UDP 的协议家族

UDP 是地基
QUIC HTTP/3 基础

Google 开发,在 UDP 上实现可靠传输 + 加密 + 多路复用。

DTLS TLS over UDP

为 UDP 数据报提供 TLS 级别的安全加密。

RTP / RTCP 实时传输

音视频实时传输协议,WebRTC 的核心。

WireGuard VPN

新一代 VPN 协议,基于 UDP 实现极简加密隧道。

UDP 不是终点,而是现代协议的起点
QUIC → RFC 9000 · HTTP/3 → RFC 9114
MODERN INTERNET
12 / 13
角色定位

UDP 的哲学 · 少即是多

01
SIMPLICITY

极简

8 B

首部小到可以忽略,处理速度极快,内核开销极低。

无状态 · 无连接
02
FLEXIBILITY

灵活

应用层可按需定制可靠性、拥塞控制、加密策略。

QUIC · DTLS · 自定义
03
SPEED

极速

0 RTT

没有握手延迟,第一个包就是数据,适合实时场景。

游戏 · 视频 · DNS
04
FUTURE

未来

HTTP/3

下一代互联网默认基于 QUIC/UDP,TCP 正在退居二线。

RFC 9114
UDP 是"裸机",应用层是"操作系统"
THE FUTURE OF THE INTERNET IS BUILT ON UDP
RECAP
13 / 13
一句话记住

UDP 用极简换取速度,
无连接消除延迟,
应用层补齐可靠,
端口号实现复用。

SPEED

0 RTT

SIZE

8 字节首部

FLEXIBLE

应用层可控

FUTURE

HTTP/3 基础

UDP · 互联网协议导览 第 02 讲
THANK YOU · ANY QUESTIONS?
01 / 13