TCP协议的拥塞控制

前言

        在TCP协议中,为了防止当传输数据量过多从而造成网络拥堵的情况,因从,采用拥塞控制、流量控制等方法来避免出现这种情况。

流量控制:流量控制是TCP协议特有的功能,TCP协议规定接收方与发送方都有一块固定的缓冲空间,而发送的数据量大小由接收方所控制,当接收方来不及处理发送方的数据时,就会通知发送方降低发送效率,以此来达到流量控制的目的。

拥塞控制:拥塞控制也是TCP协议特有的功能,拥塞控制重要是通过慢开始、拥塞避免、快重传、快恢复这四个算法来避免产生拥塞。

解决方向:流量控制是为了让接收方能及时接受数据,而拥塞避免是为了降低整个网络的拥塞程度。 

控制的四个算法

        我们知道TCP主要通过慢开始、拥塞避免、快重传、快恢复这四个算法来避免产生拥塞的。那么他究竟是如何控制的呢?由下两幅图可以清楚的看出:

d9bf6705918646f3819be83b9c70936b.png

729f0cc2199d40cb870139e16f7f7593.png

        发送方维护了一个叫做拥塞窗口(cwnd)的状态变量,当TCP建立连接后,首先会执行慢开始

慢开始

        慢开始是令cwnd=1,意思是第一次发送一个报文段,当收到接收方的确认后,cwnd加倍,每次成倍发送报文段。但这种增长是呈指数增长的,后期增长的速录极快。为了防止增长过快,引入了慢门限(ssthresh)的概念。当cwnd增长超过了慢门限(ssthresh)就会开始执行拥塞避免算法。

拥塞避免

        拥塞避免是当收到接受方的确认后,cwnd每次加1,一旦出现网络拥塞超时的情况,慢门限就会减半,然后会执行快恢复。

快重传

        快重传是在接受方要求每次收到确认报文都是对应最后一次已收到的有序报文,当接受方连续收到三个相同的确认报文,就会认为该段报文已经丢失,即刻重新发送该报文段。

快恢复

        慢门限减半之后,重新令cwnd等于慢门限值,然后再次进入“拥塞避免”状态。

扩充:

为什么要用快恢复?

        从图中可以看到,当发生网络拥塞超时后,从原本的慢开始优化为快恢复,这样做目的是防止一出现网络拥塞超时就立刻将传输速率降到最低,而是仍然保证一定的传输速率

 

  • 26
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾远望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值