什么是拥塞控制算法?
拥塞会导致通信介质的阻塞。当过多的数据包在一个子网的方法中显示时,子网的性能会下降。因此,如果数据包正在遍历路径并主要在路径的传播延迟上经历延迟,则网络的通信通道被称为拥塞。
有两种拥塞控制算法,如下所示
漏桶算法
漏桶算法在网络流量整形或速率限制的上下文中得到了应用。该算法允许控制将记录注入网络的速率,并管理数据速率中的突发性。
漏桶执行和令牌桶执行主要用于流量整形算法。该算法用于控制发送到网络的流量速率,并将突发流量整形为稳定的流量流。
该图显示了漏桶算法。
在这种算法中,考虑一个容量为 b 字节且底部有一个孔的桶。如果桶为空,则表示有 b 字节可用作存储。大小小于 b 字节的数据包到达桶并将其转发。如果数据包的大小增加超过 b 字节,则它将被丢弃或排队。还认为桶以每秒 r 字节的恒定速率通过底部的孔泄漏。
当桶中有任何数据包时,流出被认为是恒定的,当桶为空时,流出为零。这定义了如果数据流入桶的速度快于数据流出孔的速度,则桶会溢出。
与漏桶算法相比,缺点是可用网络资源的利用效率低。泄漏率是一个固定参数。在流量不足的情况下,大量的网络资源(如带宽)没有得到有效利用。漏桶算法不允许单个流突发到端口速度,以有效地消耗网络资源,而网络中不存在资源争用。
令牌桶算法
漏桶算法在平均速率下具有刚性的输出设计,独立于突发流量。在某些应用中,当出现大量突发时,允许输出加速。这需要一个更灵活的算法,最好是一个永远不会丢失信息的算法。因此,令牌桶算法在网络流量整形或速率限制中得到了应用。
它是一个控制算法,指示何时应发送流量。此命令基于桶中令牌的显示。桶包含令牌。每个令牌定义一个预定大小的数据包。桶中的令牌被删除以共享数据包的能力。
当显示令牌时,传输流量的流出现在令牌的显示中。没有令牌意味着没有流发送其数据包。因此,一个流传输流量直到其在桶中良好的令牌的峰值突发速率。
因此,令牌桶算法每 1 / r 秒向桶中添加一个令牌。桶的容量为 b 个令牌。当令牌出现并且桶已满时,该令牌将被丢弃。如果出现 n 字节的数据包并且从桶中删除了 n 个令牌,则将该数据包转发到网络。
当出现 n 字节的数据包但可用令牌少于 n 个时。在这种情况下,不会从桶中删除任何令牌,并且数据包被认为是非合规的。非合规数据包可以被丢弃或排队以供后续传输,直到桶中积累了足够的令牌。
它们也可以被传输,但标记为非合规。可能性是,如果网络过载,它们可能会随后被丢弃。