TCP的拥塞控制是如何实现的

10 分钟阅读 1011 字 + 694 词
TCP拥塞控制 可以 在网络出现拥塞时动态调整数据传输的速率 ,防止网络过载
主要有四个机制:
首先是== 慢启动 ==,初始阶段的时候, TCP发送方会以较小的发送窗口开始传输数据。 每次 成功收到确认之后, 会通过 指数增长 的方式来增加发送窗口的大小。
一旦达到一定的阈值之后,TCP发送方就会进入== 拥塞避免 ==的阶段,在这个阶段发送方是以 线性增加 的方式来增加发送窗口的大小。
如果 发送方连续收到相同的确认 ,它会认为 发生了数据包的丢失 ,这个时候会**==快速重传==没有确认的数据包**, 不必等待超时
发生快重传后 ,TCP会进入== 快恢复 ==阶段,将 慢启动阈值设置为当前窗口的一半 ,并 重新调整拥塞窗口的大小
image-20241016144347470
参考答案:
  1. TCP 拥塞控制 可以在 网络出现拥塞时动态地调整数据传输的速率 ,以 防止网络过载 。TCP拥塞控制的主要机制包括以下几个方面:
    1. 慢启动(Slow Start): 初始阶段,TCP发送方会以 较小的发送窗口开始传输数据 。随着每次成功收到确认的数据,发送方 逐渐增加发送窗口的大小,实现指数级的增长,这称为慢启动 。这 有助于在网络刚开始传输时谨慎地逐步增加速率,以避免引发拥塞。
    2. 拥塞避免(Congestion Avoidance): 一旦达到一定的阈值(通常是慢启动阈值),TCP发送方就会进入拥塞避免阶段。在拥塞避免阶段,发送方以线性增加的方式增加发送窗口的大小,而不再是指数级的增长。这有助于控制发送速率,以避免引起网络拥塞。
    3. 快速重传(Fast Retransmit): 如果发送方连续收到相同的确认,它会认为发生了数据包的丢失,并会快速重传未确认的数据包,而不必等待超时。这有助于更快地恢复由于拥塞引起的数据包丢失。
    4. 快速恢复(Fast Recovery): 在发生快速重传后,TCP进入快速恢复阶段。在这个阶段,发送方不会回到慢启动阶段,而是将慢启动阈值设置为当前窗口的一半,并将拥塞窗口大小设置为慢启动阈值加上已确认但未被快速重传的数据块的数量。这有助于更快地从拥塞中恢复。
总结
初始 阶段,TCP发送方会以 较小的发送窗口 开始传输数据。随着每次成功收到确认的数据,发送方会 通过指数增加的方式逐渐增加发送窗口的大小 ,这叫做 慢启动 。这有助于 在网络刚开始传输时谨慎地逐步增加速率,以避免引发拥塞 。一旦 达到了一定阈值 ,TCP发送方就会进入到 拥塞避免 阶段。在这个阶段,发送方以 线性增加的方式增加发送窗口的大小 。这也有助于 控制发送速率,以避免引起网络拥塞 。如果发送方 连续收到相同的确认 ,它会认为 发生了数据包的丢失 ,并 会快速重传未确认的数据包,而不必等待超时 。这有助于更快地恢复由于拥塞引起的数据包丢失。在发生快重传后,TCP 会进入快恢复阶段 。在这个阶段,发送方不会回到慢启动阶段,而是将 慢启动阈值设置为当前窗口的一半 ,并将拥塞窗口大小设置为 慢启动阈值加上 已确认但未被快重传的数据块的数量。这有助于更快地从拥塞中恢复。