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。发送窗口通常取二者较小值。
专题路径
上一篇
TCP 三次握手与四次挥手
下一篇
IP、ARP、ICMP、DNS