TCP拥塞控制(慢开始、拥塞避免、快重传、快恢复)

拥塞控制:防止过多的数据注入网络中,这样可以使网络中的路由器或链路不至于过载。

  1. 什么是拥塞窗⼝?和发送窗⼝有什么关系呢?

    • 拥塞窗⼝ cwnd是发送⽅维护的⼀个的状态变量,它由网络的拥塞状态决定。
    • 发送窗口swnd与接收窗口rwnd用于进行流量控制,引入拥塞窗口后,发送窗口的值为拥塞窗口与接收窗口中的最小值。
  2. 拥塞控制的算法:慢开始、拥塞避免、快重传、快恢复

    1. 慢开始算法的思路是:由于刚开始发送数据时对于网络的负荷情况并不清楚,如果立即把大量数据传入网络可能会引起拥塞,经验证明,较好的方法是从小到大增加发送窗口。因此使用慢开始算法后,每经过一个传输轮次,拥塞窗口值就加倍。
    2. 为防止拥塞窗口增长过大引起网络拥塞,需要设置一个慢开始门限,当拥塞窗口大于门限值后启动拥塞避免算法。此时拥塞窗口开始线性增长,也就是每轮加 1 。
      • 这个过程中存在一些问题,当网络中出现超时,发送方会判断为网络拥塞,于是门限值减半,同时设置拥塞窗口为1,进入慢开始阶段。但是有时只是个别报文段丢失,实际上网络并没有拥塞,发送方迟迟收不到确认导致超时,就会导致发送方认为网络发生拥塞,因而影响传输效率。
    3. 因此需要采用快重传算法让发送方尽可能早的知道发生了个别报文段的丢失。它要求接收方不要等待自己发送数据时才进行捎带确认,而是要立即发送确认,即使收到了失序的报文段也要立即对已收到的报文段进行确认。比如接收方收到了数据包1、2,但是3号包在传输中丢失,直接收到了4号包,按照快重传算法接收方必须立即发送对2号包的确认,紧接着接收方收到567号包时也都发送对2号包的确认,快重传算法规定,发送方收到3个重复确认,就知道接收方没有收到3号报文,因此立即重传,这样就防止发送方误认为出现网络拥塞。使用快重传可以使网络的吞吐量增加约20%。
    4. 启动了快重传算法后,发送方知道现在只是丢失了个别报文,于是不启动慢开始,而是执行快恢复算法,发送方调整门限值为拥塞窗口的一半,同时设置拥塞窗口等于门限值(也就是原来的一半),并执行拥塞避免算法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
启动(Slow Start)是TCP拥塞控制算法中的一种机制,用于在连接刚开始时逐渐增加发送窗口大小。它通过指数增加拥塞窗口(cwnd)的大小来增加发送数据的速率。具体来说,启动算法将初始的cwnd设置为一个较小的值(通常为1个MSS),然后每当收到一个确认ACK时,cwnd就会加倍。这样,发送方可以逐渐增加发送的数据量,直到达到网络拥塞点。 拥塞避免(Congestion Avoidance)是TCP拥塞控制算法中的另一种机制,用于在网络出现拥塞时减少发送窗口的大小,以避免进一步加剧网络拥塞拥塞避免算法通过线性增加拥塞窗口的大小来增加发送数据的速率。具体来说,拥塞避免算法将cwnd的大小按线性增加的方式递增,而不是指数增加。这样,发送方可以逐渐增加发送的数据量,但增长速度较,以避免导致网络拥塞重传(Fast Retransmit)是TCP拥塞控制算法中的一种机制,用于速重新发送丢失的数据段,以提高数据传输的效率。当发送方连续收到3个重复的ACK时,就会触发重传机制。发送方会立即重新发送丢失的数据段,而不必等待超时定时器的触发。这样可以减少等待时间,提高数据传输的速度。 恢复(Fast Recovery)是TCP拥塞控制算法中的一种机制,用于在发生拥塞恢复发送窗口的大小。当发送方收到3个重复的ACK时,就会进入恢复状态。在恢复状态下,发送方将cwnd的大小减半,并将开始门限(ssthresh)设置为当前cwnd的一半。然后,发送方继续执行拥塞避免算法,逐渐增加cwnd的大小,以恢复数据传输的速率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值