TCP的拥塞控制

网络拥塞:

网络中的输入,超出了某一网络资源(交换节点缓存,处理机,带宽等等都是)所能提供的服务的能力,网络性能就会变差,大量数据分组被丢弃,直观感受是变卡。
如果不对网络拥塞进行控制,整个网络吞吐量会不断的随数据输入而下降。

在这里插入图片描述

四种拥塞控制算法:

在这里插入图片描述拥塞窗口是多少,就能发送几个报文段。

慢开始

即一开始向网络注入的报文少一些,假定这里的ssthresh = 16.

  1. 即刚开始将cwnd值置为1:此时只能发送一个报文,收到B的确认报文后cwnd = cwnd +1
  2. 此时cwnd = 2,给B继续发送2个报文,然后再收到B对这2个报文的确认报文,此时,cwnd = cwnd+2
  3. 此时cwnd = 4,接着可以给B发送4个报文,然后收到B对这4个报文的累计确认报文,此时,cwnd = cwnd+4
  4. 此时cwnd = 8,接着可以给B发送8个报文,然后收到B对这8个报文的累计确认报文,此时,cwnd = cwnd+8
  5. 此时cwnd = 16,cwnd == ssthresh,慢开始算法结束,接下来要开始避免网络拥塞,即开启拥塞避免算法
    在这里插入图片描述

拥塞避免:尽量避免,不容易出现拥塞

此时,拥塞窗口的值cwnd每次发送和确认一回合后,只会线性加1
直到某次发送过程中出现了超时重传(假设此时cwnd=24),就认为网络中可能出现了拥塞了,接下来会做以下处理:

  1. 将ssthresh的值更新为发生超时重传是cwnd的一半,即ssthresh = 12;
  2. 将拥塞窗口cwnd重新置为1,然后重新开始执行慢开始算法。
    在这里插入图片描述

慢开始和拥塞避免算法是1988年TCP版本中的算法,但是存在不好的地方,超时重传的发生很可能不是网络拥塞造成的,导致发送方cwnd窗口减少为1,导致发送效率下降,还有可能是网络介质不稳定等因素,造成数据误码。所以单单凭借超时重传就说网络阻塞,太过于草率,所以,1990,又增加了两个新算法,来改善前两个算法。

快重传

为拥塞避免的不足,快重传要求出现超时重传时:

  • 发送方尽快进行重传,收到某个报文3个连续的重复确认,而不是等超时计时器超时再重传
  • 接收方不要等待自己发送数据才进行捎带的确认收到,而是立即发送确认报文
    在这里插入图片描述

快恢复

发送方一旦能收到3个重复确认,就知道仅仅是个别报文传输过程中出现丢失,于是不会重新开始慢开始算法,而是执行快恢复算法

将发送方慢开始门限ssthresh和cwnd的值调整为当前的一半,开始执行拥塞避免算法(也有一些算法实现是将cwnd的值增大一些)

在这里插入图片描述

本文中出现的图,来自网络公开课,感兴趣的朋友可以搜一下学习一下,我这里只做学习记录和分享,很感谢老师可以将精品课程分享出来供大家学习:https://www.bilibili.com/video/BV1c4411d7jb?p=62&spm_id_from=pageDriver

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值