リーキーバケット
アルゴリズムを概念的に説明すると、次のようになる。
底に穴のあるバケツがあるとする。
バケツの容量は、そこに溜め込めるデータの量を示している。
バケツの大きさが b {\displaystyle b} バイトだとすると、空の状態で b {\displaystyle b} バイトまで溜め込めることを意味する。
空き容量より大きなパケットが到着した場合、捨てるかキューイングされる。空き容量より小さいパケットの場合はそのままバケツに入れる。
バケツの穴からは一定レートのデータ、例えば r {\displaystyle r} バイト毎秒のデータが出て行く。
ATMネットワークのトラフィックシェーピングで使っている Generic Cell Rate Algorithm (GCRA) はリーキーバケット・アルゴリズムと等価である。
道路交通でたとえると、リーキーバケットは4車線の道路を1車線に収束させる場合に相当する。1車線への進入間隔を制御することでトラフィックが全体として動けるようになる。この手法の利点は、主要幹線(ネットワーク)へ流入する交通量が予測でき制御できる点である。この際の問題点は、バケット容量を遥かに超える交通量があるとき、進入間隔との関係でバケット容量を超えるトラフィックを捨てることになる点である。