Skip to content

TCP和UDP的区别是什么

TCP 和 UDP 区别

  • TCP(Transmission Control Protocol)
  • 面向连接、可靠的传输协议。
  • UDP(User Datagram Protocol)
  • 无连接、不可靠的传输协议。
  • 主要区别
  • 连接性:TCP 需建立连接,UDP 无连接。
  • 可靠性:TCP 保证数据可靠,UDP 不保证。
  • 传输方式:TCP 流式,UDP 数据报。
  • 开销:TCP 复杂,UDP 轻量。

核心点

  • TCP 重可靠,UDP 重效率。

1. 区别详解

(1) 连接性

  • TCP
  • 通信前通过三次握手建立连接,结束后四次挥手释放。
  • 面向连接,确保双方就绪。
  • UDP
  • 无连接,直接发送数据,无需握手。
  • 示例
  • TCP:打电话(先接通)。
  • UDP:发短信(直接发)。

(2) 可靠性

  • TCP
  • 提供可靠传输:
    • 序号:确保数据顺序。
    • 确认(ACK):确认接收。
    • 重传:丢包重发。
    • 流量控制:滑动窗口。
    • 拥塞控制:避免网络过载。
  • UDP
  • 无可靠性机制:
    • 无序,可能丢包、重复。
    • 不重传,依赖应用层处理。
  • 结果
  • TCP:数据完整。
  • UDP:可能丢失。

(3) 传输方式

  • TCP
  • 流式传输,无边界,按字节流处理。
  • 数据大小无限制,分段发送。
  • UDP
  • 数据报传输,每个包独立,有边界。
  • 单包最大 64KB(通常 1500 字节 MTU)。
  • 示例
  • TCP:文件下载。
  • UDP:短消息。

(4) 开销

  • TCP
  • 头部 20 字节(无选项),机制复杂。
  • 握手、确认增加延迟。
  • UDP
  • 头部 8 字节,轻量。
  • 无额外控制,开销小。
  • 性能
  • TCP:可靠但慢。
  • UDP:快但不可靠。

2. 对比表

特性 TCP UDP
连接性 面向连接 无连接
可靠性 可靠(重传、排序) 不可靠
传输方式 流式 数据报
开销 高(头部 + 控制) 低(头部 8 字节)
速度 较慢 较快
头部长度 20-60 字节 8 字节

3. 工作机制

  • TCP 三次握手
  • SYN → SYN+ACK → ACK。
  • UDP 发送
  • 直接封装数据包发送。

图示

TCP: Client --> [SYN] --> Server --> [SYN+ACK] --> Client --> [ACK] --> 数据
UDP: Client --> [数据] --> Server

4. 延伸与面试角度

  • 应用场景
  • TCP:HTTP、FTP、SMTP(网页、文件传输)。
  • UDP:DNS、NTP、视频流(实时性优先)。
  • 与可靠性
  • UDP 可通过应用层(如 QUIC)加可靠机制。
  • 面试点
  • 问“区别”时,提连接和可靠。
  • 问“场景”时,提 HTTP 和 DNS。

总结

TCP 面向连接、可靠但开销大,适合文件传输;UDP 无连接、轻量但不可靠,适合实时应用。区别在连接性、可靠性、传输方式和开销。面试时,可提握手或举例,展示理解深度。