TCP的拥塞控制

 TCP的拥塞控制

拥塞:在网络中对某一个资源的需求量超过了该资源所能提供的最大部分

解决拥塞的四种算法

1、相关参数说明

1.1发送方会维护一个叫拥塞窗口cwnd的状态变量,其值取决于网络的拥塞成都程度,并且动态变化。

1.2拥塞窗口的维护原则:只要网络没有出现拥塞,则拥塞窗口的值就可以在大些,反之就减小一些

1.3判断网络拥塞的依据:没有收到应当到达的确认数据报文段序号(发生了超时重传)

1.4发送方把拥塞窗口作为发送数据的窗口,即swnd==cwnd

1.5维护一个慢开始的门限变量 ssthresh:

当cwnd < ssthresh时,使用慢开始算法

当cwnd>ssthresh时,停止使用慢开始算法,改为使用拥塞避免算法

当cwnd ==ssthresh时,慢开始算法和拥塞避免算法都可以使用

慢开始算法

是指向网络中注入的数据报文段少,并不是指拥塞窗口的增长速率。

实现过程:刚开始发送方会发送一个字节的数据报文段给接收方,接收方成功接受并且给发收方发送了确认报文段,接下来拥塞窗口(=发送窗口)就行按照指数增长,并按照窗口值大小发送相应大小的数据报文段给接收方,接收方收到后发给送确认报文段给发送方,按照指数一直增长直到拥塞窗口值到达了慢开始的门限值,即ssthresh时,之后执行拥塞避免算法。

拥塞避免算法

拥塞避免算法不是指能够完全避免拥塞,而是在该阶段拥塞窗口的值按照线性增长的形式,这样使网络不容易出现拥塞。

实现过程:慢开始算法结束后执行拥塞避免算法,在该阶段拥塞窗口值按照线性增长的形式进行,当拥塞窗口的值到达一定的数值时,发送方发送的数据发生了超时重传,此时判断网络出现了拥塞,接下来下执行两步操作,第一、拥塞窗口的门限值更新为发生拥塞时的窗口值的一半。第二、把拥塞窗口值减小到1,重新执行慢开始算法。

快重传算法

让发送尽快知道丢失的数据报文段,并且尽快进行重传该数据报文段,而不是等超时计时器超时后在进行重传。

使用目的:在网络中,有时个别数据报文段会丢失,但是网络并没有发生拥塞,这就会导致发送方超时重传,而误认为网络发生了拥塞。进而进行把拥塞窗口值减小到1,重新开始了慢开始算法,这样就大大的降低了传输数据的效率,而使用快重传就会解决这个问题。

实现过程:接收方收到发送方发送的数据报文段后要立即确认 ,当接收方收到了乱序的数据报文段时,也要对丢失数据报文段的前一个数据报文段进行重复确认,在发送方一旦收到三个连续的重复确认,就会把相应的数据报文段进行重传

快恢复算法

就是在快重传结束之后,此时的门限值减半,但是并没有执行慢开始算法,而是直接进行快恢复算法,即就是把拥塞窗口改为执行快重传时拥塞窗口的一半,然后执行拥塞避免算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值