拥塞控制算法是什么意思?

当网络中存在太多数据包时,会导致数据包延迟和数据包丢失,从而降低系统性能。这种情况称为拥塞。

网络层和传输层共同负责处理拥塞。控制拥塞的最有效方法之一是尝试减少传输层对网络施加的负载。为了保持这一点,网络和传输层必须一起工作。

流量过多,性能急剧下降。

拥塞控制算法的类型

有两种类型的拥塞控制算法,如下所述 -

漏桶算法

它主要控制发送到网络的流量的总量和速率。

第 1 步- 让我们想象一个底部有一个小孔的水桶,水倒入水桶的速度不是恒定的,可以变化,但它以恒定的速度从水桶中泄漏。

第 2 步- 因此(直到水桶中存在水),漏水的速度不取决于水进入水桶的速度。

第 3 步- 如果水桶已满,则进入水桶的额外水会溢出并丢失。

Step 4 - 因此,相同的概念适用于网络中的数据包。考虑到数据以可变速度来自源。假设源以 10 Mbps 的速度发送数据 4 秒。然后3秒没有数据。源再次以 8 Mbps 的速率传输数据 2 秒。因此,在 8 秒的时间跨度内,已经传输了 68 Mb 的数据。

这就是使用漏桶算法的原因。数据流为 8 Mbps,持续 9 秒。因此,保持恒定的流量。

令牌桶算法

令牌桶算法用于克服我们使用漏桶算法面临的问题。漏桶算法的主要问题是它不能控制突发数据,因为它只允许平均速率,即数据流的恒定速率,而且它没有考虑主机的空闲时间。

Step 1 - 例如,如果主机空闲 12 秒,现在它愿意以非常高的速度再发送 12 秒数据,则总数据传输将分为 24 秒,并保持平均数据速率。

第 2 步- 主机没有闲置 12 秒的优势。因此,我们采用了令牌桶算法。

Step 3 - 因此,令牌桶算法是对漏桶的修改,其中漏桶包含令牌。

Step 4 - 在此 atoken(s)在每个时钟滴答处生成。对于要传输的每个数据包,系统必须token(s)从存储桶中删除。因此,令牌桶算法允许空闲主机以令牌的形式为未来积累信用。

例如,如果系统在一个时钟周期内生成 10 个令牌,而主机空闲 10 个周期。存储桶将包含 10, 00 个令牌。现在,假设主机想要发送突发数据,它一次消耗所有 10, 00 个令牌以发送 10, 00 个信元或字节。因此,只要桶不为空,主机就可以发送突发数据。