什麼是擁塞控制演算法?


當網路中存在過多資料包時,會導致資料包延遲和資料包丟失,從而降低系統性能。這種情況稱為擁塞。

網路層和傳輸層共同負責處理擁塞。控制擁塞最有效的方法之一是嘗試減少傳輸層對網路的負載。為維護這一點,網路層和傳輸層必須協同工作。

流量過大時,效能會急劇下降。

擁塞控制演算法型別

下面解釋了兩種擁塞控制演算法:

漏桶演算法

它主要控制傳送到網路的流量的總量和速率。

步驟 1 − 讓我們想象一個底部有一個小孔的桶,向桶中倒水的速度並不恆定,可能會變化,但它以恆定的速度從桶中漏出。

步驟 2 − 因此(只要桶中有水),水的洩漏速度不取決於向桶中輸入水的速度。

步驟 3 − 如果桶滿了,額外進入桶中的水會溢位並丟失。

步驟 4 − 因此,同樣的概念也適用於網路中的資料包。假設資料以可變速度從源發出。假設一個源以 10 Mbps 的速度傳送資料 4 秒。然後 3 秒內沒有資料。該源再次以 8 Mbps 的速度傳輸資料 2 秒。因此,在 8 秒的時間內,已傳輸 68 Mb 資料。

這就是為什麼使用漏桶演算法。資料流將是 8 Mbps 持續 9 秒。因此,保持恆定的流量。

令牌桶演算法

令牌桶演算法用於克服使用漏桶演算法時遇到的問題。漏桶演算法的主要問題是它無法控制突發資料,因為它只允許平均速率,即恆定的資料流速率,並且它也沒有考慮主機的空閒時間。

步驟 1 − 例如,如果主機空閒了 12 秒,現在它願意以非常高的速度傳送資料另外 12 秒,則總資料傳輸將被分成 24 秒,並將保持平均資料速率。

步驟 2 − 主機無法利用空閒 12 秒的優勢。因此,我們採用了令牌桶演算法。

步驟 3 − 因此,令牌桶演算法是對漏桶演算法的修改,其中漏桶包含令牌。

步驟 4 − 在此,每當時鐘滴答時都會生成一個或多個令牌。對於要傳輸的每個資料包,系統必須從桶中移除一個或多個令牌。因此,令牌桶演算法允許空閒主機以令牌的形式為將來積累信用。

例如,如果系統在一個時鐘滴答中生成 10 個令牌,而主機空閒了 10 個滴答。桶將包含 100 個令牌。現在,假設主機想要傳送突發資料,它會一次性消耗所有 100 個令牌來發送 100 個單元或位元組。因此,只要桶不為空,主機就能傳送突發資料。

更新於:2021年9月11日

2K+ 瀏覽量

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.