ScholarGate
助手

拥塞控制原理

拥塞控制调节发送方将数据注入共享网络的速率,使总需求保持在接近容量的水平,从而避免当提供的负载超过网络传输能力时发生的拥塞崩溃。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

拥塞控制是一系列机制,通过这些机制,发送方根据网络拥塞信号调整其传输速率,从而使总负载保持在接近网络容量的水平,同时在竞争流之间公平共享。

Scope

本主题涵盖拥塞控制的原理和实践:与流量控制的区别、拥塞的原因和代价、端到端与网络辅助方法、加性增加/乘性减少(AIMD)动态及其公平性和稳定性特性,以及TCP的具体算法——慢启动、拥塞避免、快速恢复——以及显式拥塞通知的作用和替代算法的存在。它不包括每连接的可靠性机制,这些机制处理丢失恢复而非网络过载。

Core questions

  • 拥塞控制与流量控制有何不同?
  • 什么导致拥塞,什么是拥塞崩溃?
  • 什么是AIMD动态,为什么它能带来公平性和稳定性?
  • TCP的慢启动、拥塞避免和快速恢复阶段是如何工作的?
  • 端到端(基于丢包/延迟)信号与ECN等网络辅助信号相比如何?

Key concepts

  • 拥塞与流量控制
  • 拥塞崩溃
  • 加性增加/乘性减少(AIMD)
  • 慢启动
  • 拥塞避免
  • 快速重传和快速恢复
  • 拥塞窗口
  • 显式拥塞通知(ECN)
  • 公平性和效率

Key theories

加性增加,乘性减少(AIMD)
在没有拥塞时线性增加发送窗口,并在收到拥塞信号时将其减半,这促使竞争流趋向于对容量的平等、有效共享;分析表明AIMD收敛于公平性和效率,这也是TCP采用它的原因。
TCP拥塞控制阶段
TCP通过指数慢启动探测带宽,在接近估计容量时切换到线性拥塞避免,并使用快速重传/快速恢复来应对孤立的丢包而无需重新开始,主要通过丢包推断拥塞。
避免拥塞崩溃
如果没有速率控制,过载期间的重传可能导致网络进入拥塞崩溃,吞吐量急剧下降;20世纪80年代末引入拥塞避免机制使互联网免于反复崩溃。

Clinical relevance

拥塞控制是使共享互联网在重负载下保持可用的关键:自20世纪80年代末以来,它一直防止系统性崩溃,并持续平衡数十亿流量的吞吐量、延迟和公平性。其设计直接影响下载速度、视频流质量和数据中心性能,而对CUBIC和BBR等算法以及低延迟队列管理的主动研究仍在不断完善这种平衡。

History

在1986-1987年早期互联网发生一系列拥塞崩溃之后,Van Jacobson在1988年的工作引入了慢启动和拥塞避免,建立了现代TCP拥塞控制。Chiu和Jain在1989年的分析解释了为什么AIMD能产生公平性和效率。随后的几十年产生了Reno、NewReno、CUBIC和基于模型的BBR等变体,以及RED和ECN等路由器端机制。

Debates

基于丢包与基于延迟和模型的拥塞控制
基于丢包的TCP仅在缓冲区溢出时才做出反应,这可能导致高延迟(缓冲区膨胀)并低效利用快速长距离链路,从而促使基于延迟和基于模型的方案(如BBR)的出现;争论的焦点在于当这些方案与传统的基于丢包的流量共存时的公平性问题。

Key figures

  • Van Jacobson
  • Dah-Ming Chiu
  • Raj Jain
  • Sally Floyd

Related topics

Seminal works

  • jacobson1988
  • chiu1989
  • kurose2021

Frequently asked questions

流量控制和拥塞控制有什么区别?
流量控制保护接收方:它阻止快速发送方使慢速接收方的缓冲区溢出。拥塞控制保护网络:它阻止发送方集体压垮路由器和它们之间的链路。TCP两者兼顾,使用接收窗口进行流量控制,使用拥塞窗口进行拥塞控制。
为什么TCP在检测到丢包时会减速?
丢包是TCP判断网络拥塞的主要信号。通过在丢包时急剧降低发送速率,并在其他情况下逐渐增加,TCP在网络过载时退避,在网络未过载时探测备用容量,这使得总流量接近容量并大致公平地共享带宽。

Methods for this concept

Related concepts