几种常见拥塞控制算法

目录

一、背景      

二、什么是阻塞?

三、TCP的4种阻塞控制算法

1.慢启动

2.拥塞避免

(1).此时将更新ssthresh的值为当前拥塞窗口的一半,上图中是更新为24的一半即12

(2).更新cwnd的值为1

(3).然后继续执行慢启动—拥塞避免,如上图所示

(1).重传丢失的分组

(2).执行快恢复算法

 3.快重传

(1).要求接收方不要等待自己发送数据时才捎带确认,而是要立即发送确认

(2).即使是失序的报文段,也要立即发送对已收到的报文段的重复确认

(3).发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等待该报文的重传计时器超时再重传

 4.快恢复

四、一个糅合了4种拥塞控制算法的例子 

(1).最初cwnd=1,ssthresh=16,执行慢开始算法,cwnd大小指数增长

(2).cwnd到达慢开始门限ssthresh后,转而执行拥塞避免算法,cwnd线性加一增长

(3).随着发送速率的增加,若发生超时重传,则将慢开始门限ssthresh减小为当前拥塞窗口的一半、再将拥塞窗口cwnd设置为1,然后执行慢开始-–拥塞避免,重复1、2

(4).若发送方收到3个重复确认,则表示分组丢失,发送方立刻重传相应分组;然后执行快恢复算法

(5).将慢开始门限ssthresh和拥塞窗口cwnd重新设置为当前拥塞窗口的一半,然后执行拥塞避免算法

五、几种著名拥塞控制算法

1. GCC (Google Congestion Control):

2. BBR (Bottleneck Bandwidth and Round-trip propagation time):

3. TCP Reno and TCP Cubic: 

六、应用领域

1. GCC (Google Congestion Control):

2. BBR (Bottleneck Bandwidth and Round-trip propagation time):

七、工作原理及优缺点

1、BBR算法工作原理

2、GCC算法工作原理


一、背景      

       在网络工程中,拥塞控制算法是用来调节网络流量,以防止过量的数据流导致网络拥堵和性能下降。这些算法在实现上可以非常复杂,旨在平衡数据传输的速率和网络的承载能力,以维持网络的稳定性和效率。下面是一些著名的网络拥塞控制算法,包括GCC和BBR,及其工作原理的简要介绍:

二、什么是阻塞?

         随着网络中的主机增加其发送速率并使网络变得十分拥挤,此时会经常发生丢包现象,导致网络的传输效率急剧降低。分组的超时重传通常被作为网络拥塞的标志。

        如果不对网络拥塞进行控制,整个网络的吞吐量将随着输入负荷的增大而下降,降低网络的传输效率,如下图:

三、TCP的4种阻塞控制算法

        慢启动、拥塞避免、快重传、快恢复是TCP的4种阻塞控制算法。

1.慢启动

  • 传输轮次:指把发送窗口内可以发送的数据全部发送并接收到最后一个TCP报文的确认报文这样一个来回
  • 通常在一条TCP连接开始时,cwnd被设置为1个MSS(最大报文段),也即cwnd=1
  • 该阶段,每当TCP发送方将发送窗口的数据发送完,并顺利接收到所有的确认后,就会将拥塞窗口大小翻倍,也即慢启动阶段,cwnd以指数形式增长,如上图所示;注意这里忽略了接收窗口的影响,上文也提到了。
  • 拥塞窗口会一直增长直到到达慢开始门限ssthresh,开始执行拥塞避免算法

2.拥塞避免

  • 该阶段的拥塞窗口变为线性增长,每次cwnd+1,也即每次增加一个MSS
  • 随着拥塞窗口的增加,发送速率不断提高,当TCP遇到分组超时重传时,即认为发生了网络拥塞

(1).此时将更新ssthresh的值为当前拥塞窗口的一半,上图中是更新为24的一半即12

(2).更新cwnd的值为1

(3).然后继续执行慢启动—拥塞避免,如上图所示

  • 如果TCP发送方接收到连续的3个重复确认,则认为是正常的网络包丢失,而不是网络拥塞造成的(这正是快重传算法的功劳)

(1).重传丢失的分组

(2).执行快恢复算法

 3.快重传

  • 所谓的快重传算法,就是让发送方尽快重传,而不是等待超时重传计时器超时再重传

(1).要求接收方不要等待自己发送数据时才捎带确认,而是要立即发送确认

(2).即使是失序的报文段,也要立即发送对已收到的报文段的重复确认

(3).发送方一旦收到3个连续的重复确认,就将相应的报文段立即重传,而不是等待该报文的重传计时器超时再重传

  • 如下图所示:

 4.快恢复

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学习 RDMA(Remote Direct Memory Access)可以通过以下方法进行: 1. 学习基本概念:了解 RDMA 的基本概念和工作原理,包括 RDMA 网络架构、RDMA 传输协议(如 InfiniBand、RoCE 等)、RDMA 操作模型和数据传输过程等。 2. 阅读文档和规范:查阅相关的 RDMA 文档和规范,包括官方文档、标准规范和协议说明。这些文档可以提供关于 RDMA 的详细信息和技术细节。 3. 参考教材和教程:有一些专门的书籍和教程介绍了 RDMA 技术,包括 RDMA 的原理、设计和实现。可以通过阅读这些教材来深入了解 RDMA。 4. 参加培训和课程:参加相关的培训课程或在线学习平台上的课程,了解 RDMA 的基本原理和应用实践。这些课程通常会提供理论讲解、案例分析和实验演示等。 关于 RDMA 的拥塞算法现状及演进方向,以下是一些常见的拥塞算法和发展趋势: 1. 基于随机早期检测(Random Early Detection, RED)的拥塞控制算法:RED 算法是一种基于随机策略的拥塞控制算法,通过在网络节点上监测队列长度,并根据队列长度的阈值来丢弃或标记数据包,以减少网络拥塞。RED 算法可以应用于 RDMA 网络中,以实现拥塞控制。 2. 基于传输控制协议(Transmission Control Protocol, TCP)的拥塞控制算法:TCP 是一种常见的传输层协议,具有强大的拥塞控制机制。在 RDMA 网络中,可以借鉴 TCP 的拥塞控制算法,如 TCP Vegas、TCP New Reno 等。 3. 基于反馈和控制论的拥塞控制算法:近年来,一些研究提出了基于反馈和控制论的拥塞控制算法,如 Proportional Integral (PI) 控制器、Model Predictive Control (MPC) 等。这些算法可以根据网络状态和性能指标进行动态调整,以实现更精确和高效的拥塞控制。 4. 数据中心拥塞控制算法:随着数据中心规模的增大和应用负载的复杂化,数据中心网络的拥塞控制成为一个重要问题。一些新的拥塞控制算法针对数据中心网络特点进行优化,如 DCTCP、Homa 等。这些算法通过优化拥塞信号传输和调度策略,以提高数据中心网络的性能和吞吐量。 未来 RDMA 拥塞算法的发展方向可能包括以下几个方面: 1. 更精确和动态的拥塞控制:研究人员正在探索更精确和动态的拥塞控制算法,以适应不同网络环境和负载的变化。 2. 机器学习和人工智能在拥塞控制中的应用:机器学习和人工智能技术的发展为拥塞控制提供了新的思路和方法。未来可能会有更多基于机器学习的拥塞控制算法被提出和应用。 3. 跨层次优化:拥塞控制不仅仅局限于传输层,还需要考虑与其他网络层次(如网络拓扑、路由选择等)的协同优化,以实现更高效的拥塞控制。 4. 针对特定应用场景的优化:不同应用场景对网络性能和延迟要求不同,可能需要定制化的拥塞控制算法来满足特定需求。 为了更深入了解 RDMA 的拥塞算法现状和演进方向,建议阅读相关的学术论文、专业期刊和会议论文,以及参考相关的研究报告和技术博客。同时,参与学术会议和研讨会也是了解最新研究动态和交流学习的好途径。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大王算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值