计算机网络(十一):传输层之TCP(下)

计算机网络(十一):传输层之TCP(下)

一、TCP窗口与流量控制
流量控制的目的是让发送方控制发送速率,使之不超过接收方的接收速率,防止接收方由于来不及接收送达的字节流而出现报文丢失现象。

  1. 流量控制过程
    接收方从缓存中读取速度大于等于字节到达速度,接收方在每个确认中发出一个非零窗口通告
    如果发送方发送速度比接收方读取速度快,将造成缓冲区被全部占用,之后到达的字节因缓冲区溢出而丢失。此时,接收方必须发出一个“零窗口”的通告。告知发送方停止发送(直到接收“非零窗口”通告为止)。
    接收方需要接收能力给出一个合适的接收窗口,并将它写入TCP报头中通知发送方。
    在这里插入图片描述
  2. 坚持定时器
    接收方发出“零窗口”通告之后,发送方停止发送,直到接收方再发出“非零窗口”通告为止。
    在这里插入图片描述
    问题:如果“非零窗口”通告丢失,发送方将无止境地等待接收方通知,才能继续发送报文段,造成死锁
    解决:设置“坚持定时器”。发送方接收到“零窗口”通告为0的确认时,启动“坚持定时器”。坚持定时器时间到时,发送方发送探测报文(提示接收方的TCP,确认已丢失,必须重传)

二、TCP拥塞窗口与拥塞控制

  1. 拥塞控制的基本概念
    拥塞控制用于防止由于过多的报文进入网络而造成路由器与链路过载情况的发生。流量控制的重点放在点-点链路的通信量的局部控制上,而拥塞控制重点放在进入网络报文总量的全局控制上。
    网络出现拥塞的条件是:
    ∑对网络资源的需求 > 网络可用资源
    拥塞控制的作用示意图如下所示。
    在这里插入图片描述
    拥塞控制的前提是:网络能够承受现有的网络负荷。拥塞控制算法通过动态地调节用户对网络资源的需求来保证网络系统的稳定运行。
    TCP拥塞控制方法分为:慢开始(slow-start)、拥塞避免(congestion avoidance)、快重传(fast retrasmit)以及快恢复(fast recovery)。
  2. 拥塞窗口的概念
    TCP滑动窗口是实现拥塞控制最基本的手段。发送方在发送数据时,既要考虑接受能力,又要避免网络发生拥塞。所以发送方的发送窗口计算方法:
    发送窗口 = Min(通知窗口,拥塞窗口)
    通知窗口(接受窗口)rwnd:接收方允许接收的能力,来自接收方流量控制。
    拥塞窗口cwnd:发送方根据网络拥塞情况得到的窗口值,来自发送方的流量控制。
    未发生拥塞情况下,接收方“通知窗口”和“拥塞窗口”是一致的。

三、慢开始与拥塞避免算法的基本思想

  1. 慢开始的过程
    开始发送数据时,用试探方法,由小到大逐步增大cwnd值,并以二进制指数方式慢速增长(2n)。
    慢开始阈值SST:为了避免拥塞窗口增长过快引起网络拥塞。
     当cwnd<SST时,使用慢开始算法
     当cwnd>SST时,停止使用慢开始算法,使用拥塞避免算法
     当cwnd=SST时,既可以使用慢开始算法,也可以使用拥塞避免算法
    慢开始阶段,若出现超时,则发送方将SST值设置为cwnd/2
  2. 拥塞避免算法
    cwnd>SST时,停止使用慢开始算法,转而使用拥塞避免算法。该算法采取每增加一个往返就将拥塞窗口值cwnd+1,拥塞窗口呈线性增加规律缓慢增长。
    和慢开始阶段一样,只要发现接收方没有按时返回确认就认为出现网络拥塞,将慢开始阈值(SST)设置为发生拥塞时拥塞窗口值的一半,并将重新进入下一轮的慢开始过程。
    如下为一个TCP慢开始和拥塞避免的拥塞控制过程示意图。
    在这里插入图片描述

四、快重传与快恢复
在慢开始与拥塞避免的基础上,又提出了快重传与快恢复的拥塞算法,如图为快重传与快恢复的过程示意图。
在这里插入图片描述
基于慢开始、拥塞避免的AIMD算法针对的问题是:发送方在超时之后就判断网络出现拥塞,将拥塞窗口cwnd置1,并执行慢开始策略,同时将阈值SST减小一半,以延缓拥塞的出现。
在这里插入图片描述
问题在于:如上图的情况下,不能简单的根据超时来判断网络出现了拥塞。在这种情况下,需要采用快重传与快恢复拥塞控制算法。
快重传算法规定:接收方应及时向发送方连续3次发送对M2的“重复确认”,要求尽早重传未被确认的报文。
在这里插入图片描述
与快重传算法配合的是快恢复算法,其规定:
当发送方接收到对M2的“重复确认”时,发送方立即将拥塞窗口cwnd设置为最大拥塞窗口的1/2。执行“拥塞避免”算法,拥塞窗口按线性方式增长。

参考资料:《计算机网络与下一代互联网》

猜你喜欢

转载自blog.csdn.net/weixin_38196407/article/details/88777872