流量限制--令牌桶和漏桶算法(流量整形算法)

流量整形

流量整形(traffic shaping)典型作用是限制流出某一網絡的某一連接的流量與突發,使這類報文以比較均勻的速度向外發送。流量整形通常使用緩衝區和令牌桶來完成,當報文的發送速度過快時,首先在緩衝區進行緩存,在令牌桶的控制下再均勻地發送這些被緩衝的文。

流量整形的核心算法有以下兩種,具體採用的技術爲GTS(Generic Traffic Shaping),通用流量整形:

漏桶算法(Leaky Bucket)

漏桶算法是網絡世界中流量整形(Traffic Shaping)或速率限制(Rate Limiting)時經常使用的一種算法,它的主要目的是控制數據注入到網絡的速率,平滑網絡上的突發流量。漏桶算法提供了一種機制,通過它,突發流量可以被整形以便爲網絡提供一個穩定的流量。

令牌桶算法(Token Bucket)

1.令牌以一定的速率放入桶中。
   2.每個令牌允許源發送一定數量的比特。
   3.發送一個包,流量調節器就要從桶中刪除與包大小相等的令牌數。
   4.如果沒有足夠的令牌發送包,這個包就會等待直到有足夠的令牌(在整形器的情況下)或者包被丟棄,也有可能被標記更低的DSCP(在策略者的情況下)。
    5.桶有特定的容量,如果桶已經滿了,新加入的令牌就會被丟棄。因此,在任何時候,源發送到網絡上的最大突發數據量與桶的大小成比例。令牌桶允許突發,但是不能超過限制。

有時人們將漏桶算法與令牌桶算法錯誤地混淆在一起。而實際上,這兩種算法具有截然不同的特性並且爲截然不同的目的而使用。它們之間最主要的差別在於:漏桶算法能夠強行限制數據的傳輸速率,而令牌桶算法能夠在限制數據的平均傳輸速率的同時還允許某種程度的突發傳輸。

在某些情況下,漏桶算法不能夠有效地使用網絡資源。因爲漏桶的漏出速率是固定的參數,所以即使網絡中不存在資源衝突(沒有發生擁塞),漏桶算法也不能使某一個單獨的流突發到端口速率。因此,漏桶算法對於存在突發特性的流量來說缺乏效率。而令牌桶算法則能夠滿足這些具有突發特性的流量。通常,漏桶算法與令牌桶算法可以結合起來爲網絡流量提供更大的控制。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章