1. 程式人生 > 實用技巧 >[計算機網路]流量整形:漏桶和令牌桶演算法

[計算機網路]流量整形:漏桶和令牌桶演算法

什麼是流量整形

  • 資料網路中的流量是突發性的,通常包的傳送時非均勻的。流量整形是指調節進入網路的資料流的平均速率和突發性所採用的技術。它的目標是允許應用程式傳送適合它們需求的各種各樣的流量,包括帶有某種程度的突發。為了做到流量整形,首先要向網路描述可能的流量模式(流量的形狀)。當一個流在建立時,客戶和網路提供者就該流的流量模式達成一致的協議。
  • 流量整形是客戶和網路提供者之間達成某種協議,客戶按照協議規定的(流量模式)傳送資料包,網路提供者承諾按時將資料送到目的地,而流量整形可以減少擁塞,幫助網路提供者兌現承諾,還能判斷使用者是否遵守它們之間的協議,以及處理使用者不遵守協議的情況。
  • 流量整形還可以運用於作業系統對主機接入的網路的流量進行整型,比如有很多個應用程式需要傳送資料(先寫到socket對應的緩衝區,再由流量整形演算法控制將緩衝區的資料傳送到網路當中),此時也需要用到流量整形技術。

漏桶和令牌桶演算法

現在我們來看兩種流量整形的方法:漏桶和令牌桶演算法。

漏桶

在這裡插入圖片描述

令牌桶

在這裡插入圖片描述

將網路介面想象成一個桶,正在往其中注水,水龍頭的速率為R,水桶容量為B。桶內只能累積固定容量的令牌,即B,以均勻的速度來生產令牌。如果需要傳送資料包,就從桶內申請令牌,如果桶內沒有令牌,則必須等待更多的令牌到達才能傳送資料包,或者直接被丟棄。

假設某個計算機的突發速率為M,那麼令牌桶所允許的突發長度S的計算公式為:B + RS = MS