拥塞控制 流量控制 区别
对比项 | 拥塞控制 | 流量控制 |
---|---|---|
关注对象 | 整个网络 是否过载 | 接收方主机 是否处理不过来 |
控制目标 | 避免网络路由器、链路拥塞 | 避免发送方发太快,接收方来不及处理 |
发生原因 | 网络中有太多数据包,引起排队、丢包 | 接收方缓存能力有限 |
实现方式 | 基于网络状态动态调整发送速率 | 基于接收方反馈控制发送速率 |
控制范围 | 整个路径(网络层到传输层) | 通信两端 |
🔍 更具体解释
🧭 流量控制(Flow Control)
- 定义:控制发送方的数据发送速度,确保接收方不会被数据淹没。
- 场景:接收方处理能力有限,不能接收太快的数据。
- 机制:TCP 中的 接收窗口(rwnd) 是核心机制。接收方告诉发送方:“我还有多少空间”,发送方据此控制速率。
🧭 拥塞控制(Congestion Control)
-
定义:防止网络中出现“过多数据引起的拥堵”,导致路由器丢包、延迟激增。
-
场景:网络中传输的总流量超过了链路或中间节点的处理能力。
-
机制:TCP 中的 拥塞窗口(cwnd) 控制发送速率,使用算法如:
- 慢启动(Slow Start)
- 拥塞避免(Congestion Avoidance)
- 快速重传与快速恢复(Fast Retransmit & Fast Recovery)
核心结论
流量控制是“接收端限速”,解决两端能力不匹配问题。
拥塞控制是“网络保护”,解决多流竞争资源问题。