它不握手、不确认、不保证送达,但正因如此, 它极快、极简、极低延迟—— 视频通话、在线游戏、DNS 查询,都离不开它。
从明信片比喻出发,理解无连接、不可靠、数据报。
8 字节首部,简单到令人发指。
为什么视频和游戏爱用它。
端口号如何区分不同应用。
QUIC · DTLS · RTP · HTTP/3
一句话记住 UDP。
你写一张明信片扔进邮筒,不挂号、不追踪、不确认:
① 不知道对方收没收到;
② 不知道有没有丢;
③ 不保证顺序,先寄的可能后到;
④ 但极快、极轻、零开销。
端口号区分同一主机上的不同应用进程,实现多路复用。
长度 = 首部 + 数据的总字节数。最小值 8(仅首部)。
校验和可选,检测传输差错。IPv4 中可为 0(不校验)。
对比 TCP
TCP 首部 20–60 字节,UDP 只有 8 字节,开销仅为 TCP 的 1/3。
TCP 需要 1.5 RTT 建立连接,UDP 直接发送。 对于 DNS 这种"一问一答"的场景,握手开销比数据本身还大。
TCP 需要维护发送缓冲区、接收缓冲区、拥塞窗口、序列号状态机…… UDP 内核什么都不记,收到应用层的数据,加个首部直接扔给 IP。
首部仅 8 字节,TCP 是它的 3–8 倍。
无需握手,第一个包就是数据。
无连接状态,无缓冲区,无重传队列。
UDP 用 源端口 + 目的端口 实现多路复用: 同一台机器上,浏览器、游戏、视频通话可以同时走 UDP, 互不干扰。
校验和覆盖伪首部 + UDP 首部 + 数据,但不纠错—— 发现错误直接丢弃,不通知发送方。
在 IPv4 中,UDP 校验和甚至是可选的(设为 0 表示不校验)。 某些对延迟极度敏感的场景(如视频)会故意关闭校验和。
Google 开发,在 UDP 上实现可靠传输 + 加密 + 多路复用。
为 UDP 数据报提供 TLS 级别的安全加密。
音视频实时传输协议,WebRTC 的核心。
新一代 VPN 协议,基于 UDP 实现极简加密隧道。
首部小到可以忽略,处理速度极快,内核开销极低。
应用层可按需定制可靠性、拥塞控制、加密策略。
没有握手延迟,第一个包就是数据,适合实时场景。
下一代互联网默认基于 QUIC/UDP,TCP 正在退居二线。