計算機網路中的令牌桶演算法是什麼?
令牌桶演算法是擁塞控制演算法的一種技術。當網路中存在過多的資料包時,會導致資料包延遲和資料包丟失,從而降低系統性能。這種情況稱為擁塞。
網路層和傳輸層共同負責處理擁塞。控制擁塞的最有效方法之一是嘗試減少傳輸層對網路的負載。為了維護網路,網路層和傳輸層必須協同工作。
令牌桶演算法的示意圖如下所示:

流量過大時,效能會急劇下降。
令牌桶演算法
漏桶演算法以平均速率強制執行輸出模式,無論流量有多繁忙。因此,為了處理更多流量,我們需要一個靈活的演算法,以便資料不會丟失。令牌桶演算法就是其中一種方法。
讓我們逐步瞭解此演算法,如下所示:
**步驟 1** - 定期將令牌投入桶 f 中。
**步驟 2** - 桶具有最大容量 f。
**步驟 3** - 如果資料包已準備就緒,則從桶中取出一個令牌,併發送資料包。
**步驟 4** - 假設如果桶中沒有令牌,則無法傳送資料包。
示例
讓我們透過一個示例來了解令牌桶演算法:

在圖 (a) 中,桶包含兩個令牌,並且三個資料包正在等待從介面傳送出去。
在圖 (b) 中,透過消耗兩個令牌傳送了兩個資料包,還有一個數據包仍然存在。
與漏桶相比,令牌桶演算法限制較少,這意味著它允許更多流量。繁忙的限制受特定時間點桶中可用令牌數量的限制。
令牌桶演算法的實現很簡單:使用一個變數來計數令牌。每隔 t 秒,計數器就會遞增,然後在每次傳送資料包時遞減。當計數器達到零時,將不再發送任何其他資料包。
這在下面的圖中顯示:

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP