TL;DR
TCP 是面向连接的可靠字节流协议;UDP 是无连接、不保证送达的数据报协议。选谁取决于应用要「可靠但稍慢」还是「快且能容忍丢包」。
对比表
| 维度 | TCP | UDP |
|---|---|---|
| 连接 | 三次握手建立连接 | 无连接 |
| 可靠性 | 确认、重传、去重 | 不保证 |
| 顺序 | 保证有序 | 不保证 |
| 流量/拥塞控制 | 有(窗口、慢启动) | 无 |
| 头部 | 20–60 字节 | 8 字节 |
| 传输模式 | 字节流 | 数据报 |
典型场景
- TCP:HTTP/HTTPS、文件传输、邮件、数据库;
- UDP:DNS、VoIP、视频会议、在线游戏、实时直播;
- 中间态:QUIC(HTTP/3)基于 UDP 实现可靠传输,兼顾低延迟与可靠性。
来源
- RFC 793(TCP)、RFC 768(UDP)
- Wikipedia: Transmission Control Protocol / User Datagram Protocol
- IETF QUIC(RFC 9000)