滑动窗口与拥塞控制

流量控制

1、 流量控制的目标是接收端:怕接收端来不及处理数据
2、 流量控制的机制是丢包
3、 接收端抑制发送端的机制:接收端缓冲区的大小

滑动窗口

滑动窗口是用来告诉发送端可以发送数据的大小
在这里插入图片描述

窗口大小
接收端向发送端主机通知自己可以接受数据的大小,这个大小限制即为窗口大小(通过TCP首部中的2个字节)
最大窗口大小为64k,在早期是够用的。
窗口字段指出了现在允许对方发送的数据量,窗口值是动态变化的。

窗口扩大因子
用来扩大窗口,相当于窗口的最大值增大到了2^(16+14)-1 = 2 ^ 30 -1。

机理
1、 接收端将自己可以接收的缓冲区大小放入TCP首部的“窗口大小”字段,通过第二次握手的ack响应通知给发送端;
2、 接收端一旦发现自己的缓冲区快满了,就会设置一个更小的“窗口大小”的值发送给发送端,发送端会根据这个值来减慢发送速度;
3、 若接收端缓冲区满了,就会将窗口置为0,此时发送端不再发送数据,但是会定期发送一个窗口探测数据段,让接收端把窗口大小告诉发送端;

拥塞控制

慢启动+拥塞避免

在这里插入图片描述
1、 慢启动:
刚开始时不知道网络的负荷情况,先定义拥塞窗口cwnd的大小为1,按照指数规律增大拥塞窗口的大小,当cwnd的大小达到一个门限值ssthresh,改用拥塞避免算法。
2、 拥塞避免:
让拥塞窗口缓慢地增大,即cwnd+1
3、 无论在慢开始阶段还是在拥塞避免阶段,只要发送方没有收到确认,就认为这时候拥塞了,就要把慢开始门限ssthresh设置为此时发送方窗口值的一半(上例中是把发送方窗口值24修改为12)。然后把拥塞窗口cwnd重新设置为1,执行慢开始算法(重新慢启动)。

快重传和快回复

快重传:指发送端收到三个以上的重复ack,不需要等重传定时器溢出就会重新传递。

在慢启动和拥塞避免中,一旦出现超时重传,TCP会把慢启动的门限sshresh的值设置为cwnd的一半,同时cwnd设置;

但快速恢复中
一旦出现超时重传,或者收到三个重复的ack(快重传),TCP会将慢启动的门限sshresh设置为cwnd的一半,同时cwnd = ssthresh,转入拥塞避免算法。
在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值