SPONSORED

トークンバケット(とーけんばけっと)

最終更新:2026/4/27

トークンバケットは、ネットワークトラフィックの速度制御やAPIレート制限などに用いられる、トラフィックシェーピングのアルゴリズムである。

別名・同義語 レートリミッタートラフィックシェーピング

ポイント

トークンバケットは、一定の速度でトークンを蓄積し、パケット送信時にトークンを消費する仕組みで、トラフィックの平滑化に貢献する。

トークンバケットとは

トークンバケットは、ネットワークにおけるトラフィック制御や、APIにおけるレート制限などで広く利用されているアルゴリズムです。一定の速度で「トークン」と呼ばれる単位をバケットに蓄積し、データパケットを送信する際にトークンを消費することで、送信レートを制御します。

トークンバケットの仕組み

トークンバケットの基本的な仕組みは以下の通りです。

  1. トークンの蓄積: バケットには、一定の速度(トークンレート)でトークンが追加されます。
  2. トークンの消費: データパケットを送信する際に、パケットサイズに応じた数のトークンをバケットから消費します。
  3. バケットの容量: バケットには最大容量が設定されており、トークンが溢れることはありません。トークンが満杯の場合は、新しいトークンは破棄されます。

もし、送信時に必要なトークン数がバケットに不足している場合、パケットは送信されず、遅延または破棄されます。

トークンバケットの利点

  • トラフィックの平滑化: バースト的なトラフィックを抑制し、ネットワークの安定性を向上させます。
  • 柔軟なレート制限: トークンレートとバケット容量を調整することで、様々なレート制限を実現できます。
  • 実装の容易さ: 比較的シンプルなアルゴリズムであり、実装が容易です。

トークンバケットの応用例

  • ネットワークトラフィック制御: QoS(Quality of Service)を実現するために、特定のトラフィックに優先度を与えるために利用されます。
  • APIレート制限: APIの過剰な利用を防ぎ、サーバーの負荷を軽減するために利用されます。
  • 帯域制御: 特定のアプリケーションやユーザーの帯域幅を制限するために利用されます。

SPONSORED