计网协议 | TCP(3-拥塞控制)

1 何为拥塞?

套用下百度百科:
网络拥塞(network congestion) 是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。

网络拥塞是一种持续过载的网络状态,此时用户对网络资源(包括链路带宽、存储空间和处理器处理能力等)的需求超过了固有的处理能力和容量。在Internet的体系结构中,拥塞的发生是其固有的属性。

总结来说就是:对资源需求的总结>可用资源

  1. 网络中有许多资源同时呈现供应不足

    ↓ (导致)
  2. 网络性能变坏

    ↓ (导致)
  3. 网络吞吐量将随输入负荷增大而下降

此时出现了拥塞控制,为了防止更多的数据注入到网络中,这是一个很严肃的全局性问题


2 拥塞控制和流量控制的区别?

拥塞控制和流量控制都是让发送方减慢自己的发送速率,那么这二者有什么区别呢?

2.1 拥塞控制

拥塞控制是一个发送方对多个接收方的情况,不同接收方返回的需要减少发送数据量的请求是不一致的,这是一个全局性的问题
在这里插入图片描述

2.2 流量控制

流量控制的话就是发送方和接收方一对一关系,只是端到端的问题,如果接收方来不及接受,他立马就知道反馈给哪个接收方
在这里插入图片描述


3 拥塞控制的四种算法

讲算法之前先做几个假定:

  1. 数据单方向传送,而另一个方向只传送确认
  2. 接收方总是有足够大的缓存空间,因而发送窗口大小取决于拥塞程度
  • 发送窗口=Min{接收窗口rwnd,拥塞窗口cwnd}

再确定两个概念:

  1. 接收窗口接收方根据接受缓存设置的值,并告知给发送方,反映接收方容量。
  2. 拥塞窗口: 发送方根据自己估算的网络拥塞程度而设置的窗口值,反映网络当前容量。

3.1 慢开始 + 拥塞避免

可以先大概看一下图:
ZuG,size_20,color_FFFFFF,t_70,g_se,x_16)
这里面出现的概念:

  1. 传播轮次: 发送了一批报文段并收到它们的确认的时间。其实也就是往返时延RTT。
  2. 慢开始: 拥塞窗口的大小随着传播轮次的增加而增加,从1开始,每次*2,呈指数增长,直到ssthresh初始值,也就是慢开始门限值的时候。
    在这里插入图片描述
  3. 拥塞避免算法: 此时拥塞窗口cwnd值的增长由*2变为+1,变成线性增长,直到阈值(出现了网络拥塞)
    在这里插入图片描述
  4. 再次慢开始: 当出现拥塞后,cwnd立刻减为1,再执行之前重复过的慢开始算法,但是,此时的慢开始门限ssthresh值变为上一次产生拥塞的窗口值的一般也就是24/2=12
    在这里插入图片描述
    这就是慢开始+拥塞避免算法的过程,如此反复~

3.2 快重传 + 快恢复

在这里插入图片描述

  1. 快重传: 如果数据发生丢失,比如发送方给接收方按序发送A,B,C,D,E。然后A发送成功,B丢失,C,D,E发送成成功,但是在返回对CDE的确认的时候,接收方只会返回自己需要的B的报文,当该确认重复三次(冗余ACK)时,发生快重传。

  2. 快恢复: 当发生拥塞时,不会直接回到慢开始,而是直接将窗口大小cwnd设置为出现三次重复确认时窗口大小的二分之一,然后执行拥塞避免算法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值