美文网首页
TCP 慢启动、拥塞避免、快重传和快恢复算法

TCP 慢启动、拥塞避免、快重传和快恢复算法

作者: Bejamin | 来源:发表于2017-05-22 09:53 被阅读1083次

为什么使用慢启动算法

当主机开始发送数据时,如果立即将大量数据注入网络,就有可能引起网络拥塞。因此,较好的方法是由小到大逐渐增大发送窗口。
初始时,cwnd=1个最大报文段大小(MSS),每收到一个确认后+1。这样,每过一个传输轮次,cwnd的值变为2,4,8,···,指数型增加。

拥塞避免

当cwnd增大到可能会导致网络拥塞时,需要进行报文重传。引入慢启动阀值ssthresh。

慢启动阀值ssthresh = 当时窗口大小的一半。

重传有两种机制:超时重发机制和高速重发机制。两种机制对应的cwnd的值不同。

cwnd = ssthresh + 3 if 高速重传机制
cwnd = 1 if 超时重发机制

超时重发机制cwnd=1,接着继续执行慢启动算法。当cwnd>=ssthresh时开始线性增加,即为拥塞避免。

快重传

高速重传机制采用的算法为快重传算法。快重传算法没有超时,而是收到3个以上的重复的ACK即开始重传,随后进入快恢复算法。

快恢复

快恢复算法分3个步骤:

  1. 收到第3个重复确认的ACK时,sstresh=当前cwnd的一半,cwnd=ssthresh+3。发送重传数据。
  1. 没有收到新数据的ACK之前,cwnd+1 if 收到重复的ACK;发送一个报文段 if cwnd > 未确认的报文大小。
  2. 收到新数据的ACK,cwnd=ssthresh(重传时cwnd的一半),开始拥塞避免。

相关文章

  • TCP拥塞控制

    本文主要说明TCP拥塞控制的四种主要算法。 组成TCP拥塞控制的四种算法包括:慢开始,拥塞避免,快重传,快恢复, ...

  • TCP的拥塞控制

    原帖:TCP拥塞控制-慢启动、拥塞避免、快重传、快启动 - CSDN博客 拥塞:即对资源的需求超过了可用的资源。若...

  • 百度SRE实习生二面 TCP慢启动

    TCP拥塞控制-慢启动、拥塞避免、快重传、快启动 一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机...

  • TCP 慢启动、拥塞避免、快重传和快恢复算法

    为什么使用慢启动算法 当主机开始发送数据时,如果立即将大量数据注入网络,就有可能引起网络拥塞。因此,较好的方法是由...

  • 基础-TCP拥塞控制

    慢开始、拥塞避免、快重传、快恢复 见TCP可靠传输https://www.jianshu.com/p/a2b8a3...

  • 拥塞控制算法对比

    RENO(经典的tcp拥塞控制): 基于丢包的拥塞控制. 分为 慢启动, 拥塞避免, 快速恢复, 快速重传...

  • TCP拥塞控制-慢启动、拥塞避免、快重传、

    一般原理:发生拥塞控制的原因:资源(带宽、交换节点的缓存、处理机)的需求>可用资源。 作用:拥塞控制就是为了防止过...

  • TCP Tahoe协议

    TCP Tahoe协议是TCP最早的TCP拥塞控制版本,主要包括三个机制用于控制拥塞窗口:慢启动、拥塞避免和快速重...

  • 拥塞控制和流量控制

    滑动窗口的解释: 拥塞控制窗口+慢启动+拥塞控制算法=拥塞控制 TCP特性使得每个TCP连接可以得到均等的带宽。在...

  • TCP 拥塞控制原理及改进

    TCP 的拥塞控制主要是这几个关键字: 慢启动和拥塞避免(拥塞窗口从 1开始指数增加,达到阈值后线性增加) 快速重...

网友评论

      本文标题:TCP 慢启动、拥塞避免、快重传和快恢复算法

      本文链接:https://www.haomeiwen.com/subject/qllbxxtx.html