TCP 与 UDP 十大核心区别
| 对比维度 | TCP (传输控制协议) | UDP (用户数据报协议) |
|---|---|---|
| 1. 连接模式 | ✅ 面向连接 需三次握手建立连接 | ❌ 无连接 直接发送数据包 |
| 2. 可靠性 | ✅ 高可靠 确认应答+重传+校验和 | ❌ 尽力交付 不保证数据可达 |
| 3. 数据顺序 | ✅ 严格保序 序列号重组乱序数据 | ❌ 不保序 应用层处理乱序 |
| 4. 流量控制 | ✅ 滑动窗口机制 动态匹配接收方能力 | ❌ 无控制 可能淹没接收方 |
| 5. 拥塞控制 | ✅ 慢启动/AIMD 公平减少网络拥塞 | ❌ 无控制 可能加剧网络拥塞 |
| 6. 头部开销 | ⚠️ 大 (20-60字节) 含序列号/ACK等字段 | ✅ 极小 (8字节) 仅源/目标端口+长度+校验和 |
| 7. 传输速度 | ⚠️ 较慢 握手/重传/拥塞控制引入延迟 | ✅ 极快 无控制机制,直接发送 |
| 8. 数据边界 | ❌ 字节流模式 无消息边界(粘包问题) | ✅ 数据报模式 保留发送消息边界 |
| 9. 多播支持 | ❌ 仅支持单播 | ✅ 支持多播/广播 一对多高效传输 |
| 10. 适用场景 | 要求可靠交付的应用: - HTTP/Web - 文件传输 (FTP) - 邮件 (SMTP) | 追求实时性的应用: - 视频/语音通话 - DNS 查询 - 在线游戏 |
关键机制对比详解
1. 连接建立方式

2. 可靠性实现(TCP 核心机制)
-
确认应答(ACK):接收方返回已收到数据的序列号
-
超时重传:未收到 ACK 时重新发送数据包
-
校验和:检测数据在传输过程中是否损坏
3. 头部结构差异
# TCP 头 (最小20字节) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset| Res |N|C|E|U|A|P|R|S|F| Window Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options (可选) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # UDP 头 (固定8字节) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
性能与场景实测对比
| 指标 | TCP | UDP |
|---|---|---|
| 传输 1GB 文件 | 120秒 (可靠但慢) | 可能失败 (快速但不可靠) |
| 视频通话延迟 | 300ms+ (卡顿明显) | 80ms (流畅) |
| DNS 查询耗时 | 100ms (需建连) | 30ms (直接发送) |
| 最大理论吞吐量 | 受拥塞窗口限制 | 接近物理带宽 |
选型决策树

总结:本质区别一句话
-
TCP:像寄挂号信——必须签收、保证送达、顺序正确,但速度慢成本高。
-
UDP:像发传单——批量撒网、不管接收、可能丢失,但速度快成本低。
📌 黄金准则: 要可靠 → TCP,要速度 → UDP,既要可靠又要速度 → QUIC (基于UDP)

1061

被折叠的 条评论
为什么被折叠?



