计算机网络——TCP拥塞控制算法

  1. 早期是Tahoe算法,包括慢启动,拥塞避免,快重传
  • 慢启动:TCP连接开始时,设置拥塞窗口cwnd为 1 个最大报文段长度(Maximum Segment Size, MSS),没接收到一个ACK,cwnd + 1。
  • 拥塞避免:当拥塞窗口cwnd = 慢启动阈值ssthresh ,结束慢启动状态变为拥塞避免,每个传输轮次(RTT),拥塞窗口cwnd + 1。
  • 快重传:如果发送方收到三个冗余的ACK,则立马重传,不需要等到超时(RTO,超时重传),并将慢启动阈值设置为拥塞窗口的一半,拥塞窗口cwnd = 1,执行慢启动。
  1. 在Reno算法中,新增了一个快恢复。
  • Reno算法(包括Cubic算法)都是基于丢包的拥塞控制。
  • 在发生快重传时,执行快恢复。
  • 快恢复就是,在丢包后不在执行慢启动,还是直接进入拥塞避免状态,即拥塞窗口和慢启动阈值都变为拥塞窗口的一半。
  1. 此外还有New Reno算法
    Reno快速恢复算法中,发送方只要收到一个新的ACK就会退出快速恢复状态而进入拥塞避免阶段,Neweno算法中,只有当所有丢失的包都重传并收到确认后才退出。
    在NewReno中,添加了恢复应答判断功能,使得TCP终端可以区分一次拥塞丢失多个包还是发生了多次拥塞。

  2. BBR算法
    BBR 是基于链路容量的拥塞控制算法,目前已经集成到 Linux 4.9 以上版本的内核中

BBR 算法周期性地探测网络的容量,交替测量一段时间内的带宽极大值和时延极小值,将其乘积作为作为拥塞窗口大小(交替测量的原因是极大带宽和极小时延不可能同时得到,带宽极大时网络被填满造成排队,时延必然极大,时延极小时需要数据包不被排队直接转发,带宽必然极小),使得拥塞窗口始的值始终与网络的容量保持一致。

在高延时、高丢包率的环境下,BBR 相对于 Cubic 算法在传输速度上有较大的提升

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值