什麼是擁塞控制演算法?


擁塞會導致通訊介質的阻塞。當過多的資料包在一個子網的方法中顯示時,子網的效能會下降。因此,如果資料包正在遍歷路徑並主要在路徑的傳播延遲上經歷延遲,則網路的通訊通道被稱為擁塞。

有兩種擁塞控制演算法,如下所示

漏桶演算法

漏桶演算法在網路流量整形或速率限制的上下文中得到了應用。該演算法允許控制將記錄注入網路的速率,並管理資料速率中的突發性。

漏桶執行和令牌桶執行主要用於流量整形演算法。該演算法用於控制傳送到網路的流量速率,並將突發流量整形為穩定的流量流。

該圖顯示了漏桶演算法。

在這種演算法中,考慮一個容量為 b 位元組且底部有一個孔的桶。如果桶為空,則表示有 b 位元組可用作儲存。大小小於 b 位元組的資料包到達桶並將其轉發。如果資料包的大小增加超過 b 位元組,則它將被丟棄或排隊。還認為桶以每秒 r 位元組的恆定速率透過底部的孔洩漏。

當桶中有任何資料包時,流出被認為是恆定的,當桶為空時,流出為零。這定義瞭如果資料流入桶的速度快於資料流出孔的速度,則桶會溢位。

與漏桶演算法相比,缺點是可用網路資源的利用效率低。洩漏率是一個固定引數。在流量不足的情況下,大量的網路資源(如頻寬)沒有得到有效利用。漏桶演算法不允許單個流突發到埠速度,以有效地消耗網路資源,而網路中不存在資源爭用。

令牌桶演算法

漏桶演算法在平均速率下具有剛性的輸出設計,獨立於突發流量。在某些應用中,當出現大量突發時,允許輸出加速。這需要一個更靈活的演算法,最好是一個永遠不會丟失資訊的演算法。因此,令牌桶演算法在網路流量整形或速率限制中得到了應用。

它是一個控制演算法,指示何時應傳送流量。此命令基於桶中令牌的顯示。桶包含令牌。每個令牌定義一個預定大小的資料包。桶中的令牌被刪除以共享資料包的能力。

當顯示令牌時,傳輸流量的流出現在令牌的顯示中。沒有令牌意味著沒有流傳送其資料包。因此,一個流傳輸流量直到其在桶中良好的令牌的峰值突發速率。

因此,令牌桶演算法每 1 / r 秒向桶中新增一個令牌。桶的容量為 b 個令牌。當令牌出現並且桶已滿時,該令牌將被丟棄。如果出現 n 位元組的資料包並且從桶中刪除了 n 個令牌,則將該資料包轉發到網路。

當出現 n 位元組的資料包但可用令牌少於 n 個時。在這種情況下,不會從桶中刪除任何令牌,並且資料包被認為是非合規的。非合規資料包可以被丟棄或排隊以供後續傳輸,直到桶中積累了足夠的令牌。

它們也可以被傳輸,但標記為非合規。可能性是,如果網路過載,它們可能會隨後被丟棄。

更新於:2023-11-01

50K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告