python面试题复习 11 TCP 与 UDP 在网络协议中的哪一层,他们之间有什么区别?

Source

这是计算机网络里非常基础但很容易被问深的题目。
回答要有:分层 + 核心区别 + 使用场景 + 本质理解


一、TCP 和 UDP 属于哪一层?

👉 都属于 传输层(Transport Layer)

在 OSI 七层模型中:

  1. 物理层
  2. 数据链路层
  3. 网络层(IP)
  4. 传输层(TCP / UDP)
  5. 会话层
  6. 表示层
  7. 应用层

在 TCP/IP 四层模型中:

  • 应用层
  • 传输层(TCP / UDP)
  • 网络层(IP)
  • 网络接口层

📌 面试一定要先说:

TCP 和 UDP 都工作在传输层,基于 IP 协议提供端到端通信。


二、TCP 与 UDP 的核心区别

1️⃣ 是否面向连接

  • TCP:面向连接(三次握手)
  • UDP:无连接

👉 TCP 先建立连接再通信,UDP 直接发数据。


2️⃣ 是否可靠

  • TCP:可靠传输
  • UDP:不保证可靠

TCP 通过:

  • 序列号
  • ACK 确认
  • 重传机制
  • 流量控制
  • 拥塞控制

保证数据不丢、不乱序。

UDP:

  • 不保证顺序