トークンバケット(とーけんばけっと)
最終更新:2026/4/27
トークンバケットは、ネットワークトラフィックの速度制御やAPIレート制限などに用いられる、トラフィックシェーピングのアルゴリズムである。
別名・同義語 レートリミッタートラフィックシェーピング
ポイント
トークンバケットは、一定の速度でトークンを蓄積し、パケット送信時にトークンを消費する仕組みで、トラフィックの平滑化に貢献する。
トークンバケットとは
トークンバケットは、ネットワークにおけるトラフィック制御や、APIにおけるレート制限などで広く利用されているアルゴリズムです。一定の速度で「トークン」と呼ばれる単位をバケットに蓄積し、データパケットを送信する際にトークンを消費することで、送信レートを制御します。
トークンバケットの仕組み
トークンバケットの基本的な仕組みは以下の通りです。
- トークンの蓄積: バケットには、一定の速度(トークンレート)でトークンが追加されます。
- トークンの消費: データパケットを送信する際に、パケットサイズに応じた数のトークンをバケットから消費します。
- バケットの容量: バケットには最大容量が設定されており、トークンが溢れることはありません。トークンが満杯の場合は、新しいトークンは破棄されます。
もし、送信時に必要なトークン数がバケットに不足している場合、パケットは送信されず、遅延または破棄されます。
トークンバケットの利点
- トラフィックの平滑化: バースト的なトラフィックを抑制し、ネットワークの安定性を向上させます。
- 柔軟なレート制限: トークンレートとバケット容量を調整することで、様々なレート制限を実現できます。
- 実装の容易さ: 比較的シンプルなアルゴリズムであり、実装が容易です。