← 返回
408

TCP 可靠传输、流量控制、拥塞控制

首发 2026/05/28 阅读 0 评论 0 更新 2026/05/28

TCP 可靠传输、流量控制、拥塞控制

1. 一句话总结

TCP 可靠传输依赖序列号、ACK、重传和窗口;流量控制保护接收方,拥塞控制保护网络。

2. 通俗解释

流量控制像对方说杯子快满了,少倒点;拥塞控制像路上堵车,所有车都要慢下来。一个关注接收端,一个关注网络整体。

3. 核心概念

  • 序列号:标识字节流位置。
  • ACK:确认已收到哪些数据。
  • 超时重传:长时间未确认则重发。
  • 快速重传:多个重复 ACK 后提前重发。
  • 滑动窗口:允许连续发送未确认数据。
  • 流量控制:根据接收窗口限制发送。
  • 拥塞控制:根据网络状况调整拥塞窗口。

4. 底层原理

  • 序列号解决乱序和去重,ACK 确认接收进度。
  • 滑动窗口提高吞吐,不必发一个等一个。
  • rwnd 由接收方通告,防止接收缓冲区溢出。
  • cwnd 由发送方根据网络状况维护。
  • 发送窗口通常取 min(rwnd, cwnd)。

5. 面试标准回答

TCP 的可靠性不是单一机制,而是多个机制组合。序列号标识数据在字节流中的位置,ACK 确认已收到的数据,超时重传和快速重传处理丢包,滑动窗口允许发送方连续发送多个未确认报文以提高吞吐。流量控制关注接收方处理能力,接收方通过接收窗口告诉发送方还能接收多少数据。拥塞控制关注网络承载能力,发送方通过慢启动、拥塞避免、快速重传和快速恢复调整拥塞窗口。实际可发送数据量受接收窗口和拥塞窗口共同限制。

6. 高频追问

追问 1:TCP 可靠传输、流量控制、拥塞控制面试第一句话怎么答?

先给结论:序列号:标识字节流位置。 再补充它解决的问题和使用场景,避免一上来背长定义。

追问 2:它为什么需要底层机制支撑?

序列号解决乱序和去重,ACK 确认接收进度。 面试官追问时要把“现象”落到“机制”和“代价”。

追问 3:常见误区是什么?

不要把平均情况说成绝对结论,也不要忽略边界条件、退化情况和工程成本。

追问 4:如果继续追问怎么展开?

可以沿着“定义 → 原理 → 对比 → 场景 → 缺点 → 优化”展开,重点说清:滑动窗口提高吞吐,不必发一个等一个。

追问 5:实际开发中怎么体现?

接口延迟抖动可能和丢包重传有关。 这类联系能把基础知识从“背概念”变成“解释工程选择”。

追问 6:回答时怎么收尾?

最后用一句话总结适用条件和代价,说明什么时候该用、什么时候不该用。

7. 易混淆点

易混点 正确理解 面试提醒
流量控制 接收方能力 rwnd
拥塞控制 网络承载能力 cwnd
超时重传 等超时再发 较保守
快速重传 重复 ACK 触发 更快发现丢包
滑动窗口 提高吞吐 允许多个未确认包

8. 实际开发联系

  • 接口延迟抖动可能和丢包重传有关。
  • 大文件传输吞吐受窗口、RTT、丢包率影响。
  • 限流和拥塞控制思想类似,都是避免系统被打满。

9. 背诵速记

TCP 可靠靠序列号、ACK、重传和滑动窗口。流量控制看接收方,用 rwnd;拥塞控制看网络,用 cwnd。发送窗口通常取二者较小值。

专题路径

相关文章