TCP 和 UDP 对比如何?

5 阅读4分钟

TCP 和 UDP 对比

一、前言

TCP 和 UDP 是计算机网络中最核心的两个传输层协议。我们日常上网、聊天、玩游戏、看视频,全都离不开它们。

很多人一直分不清:TCP 到底好在哪?UDP 快在哪?什么时候用哪个?

这篇文章一次性讲透。


二、TCP 和 UDP 到底是什么

  • TCP:Transmission Control Protocol传输控制协议,可靠、面向连接
  • UDP:User Datagram Protocol用户数据报协议,不可靠、无连接

一句话总结:TCP 可靠但慢,UDP 快但不可靠。


三、TCP 和 UDP 核心区别

1. 是否需要连接

  • TCP:面向连接必须先建立连接(三次握手),才能传输数据。
  • UDP:无连接想发就发,不需要提前建立连接。

2. 可靠性

  • TCP:可靠传输不丢包、不错乱、不重复。
  • UDP:不可靠不保证一定到达,可能丢包。

3. 通信方式

  • TCP:全双工,但是字节流像水管,数据是连续流。
  • UDP:数据报模式发一条是一条,有边界。

4. 拥塞控制 & 流量控制

  • TCP:有网络差时会自动减速。
  • UDP:没有不管网络拥塞,疯狂发。

5. 速度 & 开销

  • TCP:慢,开销大
  • UDP:快,开销极小

6. 头部大小

  • TCP:最少 20 字节
  • UDP:固定 8 字节

7. 应用场景

  • TCP:要求数据绝对不能错网页、文件、接口、邮件、登录。
  • UDP:要求速度快、能容忍少量丢包游戏、直播、语音视频、DNS、实时消息。

四、详细展开:TCP 特点

1. 三次握手建立连接

  1. 客户端 → SYN
  2. 服务端 → SYN+ACK
  3. 客户端 → ACK

确保双方收发都正常

2. 四次挥手断开连接

保证数据传输完再断开。

3. 可靠传输机制

  • 序列号 + 确认应答
  • 超时重传
  • 去重
  • 按序到达
  • 流量控制、拥塞控制

优点

  • 超可靠
  • 数据绝对安全完整

缺点

  • 连接成本高
  • 队头阻塞

五、详细展开:UDP 特点

1. 不建立连接

发就完了,不管对方在不在。

2. 不保证送达

发出去就不管了,丢了就丢了。

3. 数据报有边界

发 1 次 = 1 个数据报,不会粘包。

4. 速度极快

没有握手、没有重传、没有拥塞控制。

优点

  • 延迟极低
  • 高并发
  • 简单轻巧

缺点

  • 可能丢包
  • 可能乱序
  • 不负责可靠性

六、最经典的生活化比喻

TCP 就像:打电话

  • 先拨号连通
  • 对方接听,才能说话
  • 一句一句确认
  • 不会漏、不会乱
  • 可靠,但麻烦、慢

UDP 就像:寄信 / 广播

  • 直接扔邮筒
  • 不管对方收没收到
  • 可能丢信
  • 极快、简单
  • 不保证到达

七、应用场景对应

使用 TCP 的场景

  • HTTP/HTTPS
  • 文件传输(FTP)
  • 邮件(SMTP/POP3)
  • 接口请求
  • 登录、支付、表单提交

只要数据不能丢,就用 TCP。


使用 UDP 的场景

  • 游戏(王者荣耀、吃鸡)
  • 直播、短视频
  • 语音通话、视频会议
  • DNS 查询
  • 实时监控、IoT
  • HTTP/3(底层就是 UDP)

只要速度优先、丢一点包没事,就用 UDP。


八、TCP vs UDP 总结表格

对比项TCPUDP
连接面向连接无连接
可靠性可靠不可靠
传输形式字节流数据报
头部大小20 字节 +固定 8 字节
速度较慢极快
拥塞 / 流量控制
丢包处理重传不处理
典型用途网页、文件、接口、支付游戏、直播、语音、DNS、HTTP/3

九、高频问题

  1. TCP 和 UDP 最大区别是什么?TCP 可靠、面向连接;UDP 不可靠、无连接、速度快。
  2. TCP 为什么可靠?序列号、确认应答、超时重传、流量控制、拥塞控制。
  3. 直播、游戏为什么用 UDP?要求低延迟,偶尔丢一两帧画面不影响体验。
  4. UDP 有没有办法变可靠?可以在应用层自己实现:重传、序号、确认。比如 QUIC(HTTP/3)、WebRTC

十、总结

  • TCP = 可靠、稳定、有序,适合数据不能出错的场景。
  • UDP = 快、简单、无连接,适合实时性要求高的场景。
  • 没有谁绝对更好,根据业务场景选择才是最优