原理
1.令牌以一定的速率放入桶中。
2.每個令牌允許源發送一定數量的比特。
3.發送一個包,流量調節器就要從桶中删除與包大小相等的令牌數。
4.如果沒有足夠的令牌發送包,這個包就會等待直到有足夠的令牌(在整形器的情況下)或者包被丢棄,也有可能被标記更低的DSCP(在策略者的情況下)。
5.桶有特定的容量,如果桶已經滿了,新加入的令牌就會被丢棄。因此,在任何時候,源發送到網絡上的最大突發數據量與桶的大小成比例。令牌桶允許突發,但是不能超過限制。
詳細解釋
令牌桶算法的原理是系統會以一個恒定的速度往桶裡放入令牌,而如果請求需要被處理,則需要先從桶裡獲取一個令牌,當桶裡沒有令牌可取時,則拒絕服務。從原理上看,令牌桶算法和漏桶算法是相反的,一個“進水”,一個是“漏水”。