TCP的拥塞避免

  • A+
所属分类:思科教程

大家都听过国王与象棋的故事吧,国王想要奖励象棋的发明者,发明家说我要填满象棋棋盘,第一个格放一粒米,第二个格放2粒米,第三个放4粒,以此类推。开始还好,最后国库都放空了。可以看出,指数增长很恐怖的。

而慢启动就是使用指数增长,所以终会有一个点,超过网络负载能力,这时会发生什么呢?

通过下面图片,我们简单说下慢启动的算法。

为防止拥塞窗口cwnd增长过大引起网络拥塞,还需要设置一个慢速开始门限ssthresh状态变量。

之前的文章已经介绍了,慢启动以指数增长,在收到接收端的确认后,下次传输两倍的数据量。

如果发送之后,并没有收到接收端确认,发送端会判断当前网络处于拥塞状态。

下图中拥塞阈值在24处,发送端发送16个报文时,可以收到接收端的确认,它会发送32个报文。但是当前网络只能承载24个,所以说会有8个报文收不到确认。

如果发送方设置超时计时器时限已到但还没有收到确认,那么很可能是网络出现拥塞,致使报文段在网络中某处被丢弃。这时,TCP马上把拥塞窗口减小到1,并执行慢开始算法,同时把慢开始门限值ssthresh减半。

当发送端判断网络拥塞之后,会将门限ssthresh减为之前的一半,之前是32,新值就是16个。

然后重新开始慢速启动。第一次1,第二次2,第三次4,第四次8,第五次16,第五次达到了新门限ssthresh。

TCP的拥塞避免

接下来还是执行拥塞避免的算法,第六次发送17个包,第七次18,每次加一,线性增长。

当达到24个时,实际上网络可以承载的,但加到25个时,会有一个包收不到确认,这时,最终数值为24。

  • 我的微博
  • 这是微博的扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:57   其中:访客  56   博主  1

    • avatar louxinghao 3

      签到成功!签到时间:今日的上午10:28:01,每日打卡,生活更精彩哦!

      • avatar 融略桓炒姿招抡糠瓷友炼痔嫌突棠辖媳偈 9

        签到成功!签到时间:今日的上午7:28:21,每日打卡,生活更精彩哦!

        • avatar 游佑准偌欧埔睬皆扯眯锻型炭傩毁纶馗干 9

          签到成功!签到时间:今日的上午7:00:51,每日打卡,生活更精彩哦!

          • avatar 评段彼怯饺用严诵月牡秦韧温及街说露幢 9

            签到成功!签到时间:今日的上午6:44:46,每日打卡,生活更精彩哦!

            • avatar 犊何偻聊热岛授吮槐醚拔治壕守呈讶欠仓 9

              签到成功!签到时间:今日的上午6:23:09,每日打卡,生活更精彩哦!

              • avatar 站特珊的诮显仄讯排孜透凹誓朔卫曝运麓 9

                签到成功!签到时间:今日的上午4:26:18,每日打卡,生活更精彩哦!