トラフィック シェーピングでは、トークン バケット メタファーを使用してトラフィックを調整します。トークン バケットは、転送レートの正式な定義です。バースト サイズ、平均レート、時間間隔(Tc)という 3 つの構成要素があります。通常は中間レートがビット/秒の単位で表されますが、次に示す関係式によって、2
つの値が残る 3 つめの値から導き出される場合もあります。
mean rate = burst size / time interval
これらの用語の定義は次のとおりです。
-
平均レート:認定情報レート(CIR)とも呼ばれ、単位時間に送信または転送できるデータ量の平均値を指定します。
-
バースト サイズ:認定バースト(Bc)サイズとも呼ばれ、スケジューリングの問題を発生させることなく単位時間内に送信できるトラフィックの量を、バーストあたりのビット数(またはバイト数)で指定します。(トラフィック シェーパーの場合は、バースト当たりのビット数を意味します)。
-
時間間隔:測定間隔とも呼ばれ、バーストあたりの時間量を秒単位で指定します。
定義では、間隔が整数倍の場合は、インターフェイスのビット レートは中間レートを超えません。ただし、ビット レートは間隔内で任意に早くなる場合があります。
トークン バケットは、フロー内のデータを規制するデバイスの管理に使用されます。たとえば、トラフィック シェーパーがこのような調整デバイスとして使用されている場合があります。トークン バケット自体には、廃棄ポリシーまたはプライオリティ ポリシーはありません。むしろ、トークン
バケットは、フローによって規制機能が過剰に働く場合に、トークンを廃棄し、送信キューの管理の問題はフローに任せます。
トークン バケットのたとえで言えば、トークンは特定のレートでバケットに入れられます。バケット自体には指定された容量があります。バケットがいっぱいになると、新しく到着するトークンは廃棄されます。各トークンは、送信元が一定の数のビットをネットワークに送信するための権限です。パケットを送信するため、規制機能はパケット
サイズに等しい数のトークンをバケットから削除する必要があります。
パケットを送信するために必要なトークンがバケット内に存在しない場合は、パケットは、バケットに十分な量のトークンが蓄積されるまで送信待ちの状態になります。バケットがすでにトークンで満たされている場合、着信トークンはオーバーフローし、以降のパケットには使用できません。したがって、いつでも、送信元がネットワークに送信できる最大のバーストは、バケットのサイズにほぼ比例します。
トラフィック シェーピングに使用されるトークン バケット メカニズムは、トークン バケットとデータ バッファ、またはキューの両方を持つことに注意してください。データ バッファを持たない場合は、トラフィック ポリサーである可能性があります。トラフィック
シェーピングの場合、到着したパケットですぐに送信できないものは、データ バッファで遅延されます。
トラフィック シェーピングでは、トークン バケットはバースト性を許可する一方で、それを抑制します。トークン バケットは、(トークン バケットの容量)+(トークンをバケット内に配置するための設定レート x 時間間隔)よりも速くフローが送信されないようにバースト性が制限されることを保証します。また、長期転送レートが、トークンをバケット内に配置するための設定レートを超えないことを保証します。