📄 一句话概括
UDP 不对账、不重发、不握手——发了就算;DNS 查询这类【短、快、丢了无妨】的消息正合适。
📝 本节和前面几节的关系
TCP 全套机制讲完了;本篇认识它的极简兄弟——UDP。
一、UDP 的全部
头部只 8 字节:源端口、目的端口、长度、校验和—— 没有连接、没有序号、没有窗口。
二、取舍的逻辑
TCP 的可靠是用开销换的; 若消息短到一包装下、丢了重查也便宜,开销就是纯浪费。
三、动手 Demo:UDP 和 TCP 怎么选
一张对比表:
for a, b, c in [('TCP','要(序号+ACK+重发)','消息必须完整'),
('UDP','不要,发了就发','短、快、丢了无妨')]:
print('%-4s %-18s %s' % (a, b, c))
实跑输出:
--------------------------------------------------------------------
UDP 和 TCP 怎么选
--------------------------------------------------------------------
一个数说明分工:
协议 要不要对账 适合
--------------------------------------------------
TCP 要(序号+ACK+重发) 消息必须完整
UDP 不要,发了就发 短、快、丢了无妨
--------------------------------------------------
DNS 查询选 UDP:一条消息装得下,重查一次也便宜——
为一次查询铺整套对账机制不划算。
教材点名的场景是 DNS 查询——1.2.4 节那个 UDP 53。
30 秒实验
- 对比 TCP 头(20+ 字节)和 UDP 头(8 字节)。
- 想想 FTP 传文件为什么必须 TCP。
- 数数一次 DNS 查询若用 TCP 要多几次往返。
常见误区
- 以为 UDP 是【劣质 TCP】——它是按需取舍的另一个工具。
- 以为 UDP 完全不可靠到不能用于业务——可自建轻量重传。
自测三问(点开对答案)
1. UDP 头部几个字段? —— 源端口、目的端口、长度、校验和。 2. DNS 查询为什么用 UDP? —— 短、快、丢了重查便宜。 3. UDP 保证送达吗? —— 不保证。- ☐ 下一节(2.6.2 控制用的短数据)
相关笔记
- 只对传输给应用程序的数据进行分发(UDP) — 12 课同款
- 通过解析器向DNS服务器发出查询 — UDP 的第一个用例
- 🔌 网络是怎样连接的 · 索引