TCP拥塞控制:加性增-乘性减与慢启动解析

需积分: 0 1 下载量 103 浏览量 更新于2024-08-05 收藏 443KB PDF 举报
"TCP拥塞控制是计算机网络中的一个重要概念,由主讲人聂兰顺在‘计算机网络之探赜索隐’课程中讲解。课程主要介绍了TCP拥塞控制的基本原理、加性增—乘性减(AIMD)算法以及慢启动(SS)策略。" TCP拥塞控制是TCP/IP协议栈中用于防止过多的数据同时充斥在网络中,避免网络拥塞并确保网络的稳定运行的关键机制。发送方通过限制发送速率来适应网络的承载能力,这主要通过一个名为拥塞窗口(CongWin)的变量来实现。拥塞窗口的大小决定了允许发送但还未被确认的数据量,它的动态调整直接影响了发送速率。 当发生数据丢失,比如超时重传或连续收到三个重复的ACK,TCP认为网络可能存在拥塞。在这种情况下,TCP会执行乘性减策略,即把拥塞窗口减半,以降低发送速率。然而,仅仅降低速率并不足以找到网络的最佳承载能力,因此TCP采用了加性增—乘性减(AIMD)策略。 AIMD策略结合了线性增长和指数递减两种方式。在没有发生数据丢失的情况下,每经过一个往返时间(RTT),拥塞窗口增加一个固定量(如一个最大段大小MSS),这是加性增的过程,旨在逐步探索网络的可用带宽。而一旦检测到拥塞事件,就会执行乘性减,大幅降低发送速率,以更谨慎地探测网络状态。 此外,TCP在连接建立初期采用慢启动(SS)策略。初始时,拥塞窗口设置为1,每次接收到ACK,拥塞窗口数值加1,直到达到一个预先设定的阈值或者发生拥塞事件。在慢启动阶段,拥塞窗口以指数方式增长,使得连接可以在短时间内快速提升传输速率,充分利用网络带宽。 阈值变量在TCP拥塞控制中扮演了重要角色,它定义了从慢启动阶段过渡到拥塞避免阶段的界限。当拥塞窗口达到阈值的一半时,TCP从指数增长转变为线性增长,进入拥塞避免阶段,以更平滑的方式增加发送速率,减少因过快增长导致的频繁拥塞。 TCP拥塞控制通过AIMD算法和慢启动策略,有效地在提高网络效率和防止拥塞之间找到了平衡。这些机制确保了数据在网络中的可靠传输,同时减少了拥塞的发生,优化了整体的网络性能。