§ 3.3 · Sub-chapter

UDP 篇

User Datagram Protocol

UDP 是 TCP 的"反面"——不保证到达、不保证顺序、不建立连接,但快得飞起。视频通话、直播、在线游戏、语音聊天,这些"要快不要全"的场景,全是 UDP 的地盘。

生活场景
📢 大喇叭广播 vs 打电话

TCP 像打电话——先确认对方在,再说事,说完确认对方听清了。
UDP 像大喇叭广播——你站在村口喊一嗓子"开会了!",听到的人来,没听到的就算了。
你不确认每个人是否听到,也不重喊——快,但可能有人没听到
视频通话就是这样——画面偶尔卡一下、花一下,没关系,重要的是"现在"的画面能实时传过去。

UDP 的特点

特点TCPUDP
连接要先建立连接(三次握手)不用连接,直接发
可靠性保证到达、按序、不重不保证——可能丢、可能乱序
速度慢(确认、重传、排序都要时间)快(发完就不管)
头部开销20 字节8 字节
流量控制有(滑动窗口、拥塞控制)没有——想发多快发多快
适用场景网页、文件、邮件视频、语音、游戏、直播

UDP 为什么快

UDP 快的原因就三个字:不操心

Analogy · 泼水 vs 递水杯

TCP 像递水杯——一杯一杯递,每杯都确认对方接住了,没接住就再递一次。
UDP 像泼水——你拿盆一泼,水洒出去,接到多少算多少。
泼水当然快——但地上会湿(丢包)。

UDP 在你生活中的样子

应用为什么用 UDP
微信视频通话画面偶尔卡一下你能忍,但"现在"的画面必须实时到
抖音直播观众容忍花屏 0.5 秒,不能容忍延迟 3 秒
王者荣耀英雄位置必须实时同步,偶尔丢一帧无所谓
语音消息声音流必须连续,偶尔爆音没关系
DNS 查询一次问答搞定,不用建立连接
在线会议(Zoom/腾讯会议)多人实时视频,延迟敏感

UDP 的"伪可靠性"

UDP 本身不保证可靠,但应用层可以自己加——很多基于 UDP 的协议,在 UDP 之上自己实现了"确认、重传、排序":

什么时候绝对不能用 UDP

01

文件下载

文件必须 100% 完整——少一个字节都打不开。必须用 TCP。

02

网页浏览

HTML 错一个字可能整页乱码。必须用 TCP(或基于 UDP 但带可靠性的 QUIC)。

03

银行转账

数据必须准确无误,还要防篡改。必须用 TCP + TLS。

Recap · 收束

UDP = "泼出去的水"——快、简单、不保证。适合"实时但容错"的场景:视频、语音、游戏、直播。
TCP 和 UDP 不是"谁好谁坏"——是不同场景的不同选择。理解它们的取舍,你就理解了网络设计的核心思想:没有银弹,只有权衡

☰ 主页
Xue Hai Wu Ya · Network · § 3.3 · UDP