Qu'est-ce que l'algorithme Token Bucket ?

Le 26 juin 2025

L'algorithme de jeton bucket est un mécanisme de mise en forme du trafic et de limitation du débit utilisé dans les réseaux informatiques pour contrôler le flux de données.

qu'est-ce que l'algorithme du jeton bucket

Qu'est-ce que l'algorithme Token Bucket ?

L'algorithme de jeton bucket est une technique de gestion du trafic réseau qui contrôle la quantité et le débit de données transmises sur un réseau. Il fonctionne en générant des jetons à un taux fixe et en les plaçant dans un conteneur logique appelé « seau ». Chaque jeton représente l'autorisation d'envoyer une certaine quantité de données, généralement un paquet ou un nombre défini de octets.

Lorsque des données doivent être transmises, les jetons sont retirés du compartiment à un rythme correspondant à la taille des données envoyées. Si le nombre de jetons disponibles est suffisant, les données sont transmises immédiatement ; sinon, la transmission est retardée jusqu'à ce que le nombre de jetons soit suffisant.

Le bucket a une capacité maximale, ce qui autorise de brèves périodes de trafic en cas de surplus de jetons, mais impose des limites de débit à long terme pour éviter une congestion prolongée. Cette approche rend l'algorithme de bucket de jetons particulièrement adapté aux scénarios nécessitant un contrôle. bande passante utilisation et flexcapacité à gérer des modèles de trafic variables.

Comment fonctionne l'algorithme Token Bucket ?

L'algorithme de seau à jetons fonctionne en générant des jetons à un taux constant et prédéfini, puis en les plaçant dans un seau logique d'une capacité maximale fixe. Chaque jeton représente généralement l'autorisation d'envoyer une quantité spécifique de données, par exemple un octet ou un paquet. Lorsqu'un appareil ou application veut transmettre des données, il doit consommer des jetons du bucket égaux à la taille des données.

Si le nombre de jetons disponibles est suffisant, les données sont envoyées immédiatement, ce qui permet une transmission fluide et la prise en charge de courtes périodes de trafic. En cas d'insuffisance de jetons, le système place les données en file d'attente ou attend que davantage de jetons s'accumulent, appliquant ainsi la limite de débit configurée.

Le bucket peut stocker les jetons inutilisés jusqu'à sa capacité maximale, ce qui permet algorithme gérer les pics de trafic soudains sans dépasser le débit moyen. Ce mécanisme assure un flux de données contrôlé et efficace tout en fournissant flexPossibilité de pics de trafic temporaires.

Paramètres de l'algorithme Token Bucket

Voici un tableau expliquant les paramètres clés de l'algorithme du token bucket :

ParamètreDescription
Taux de génération de jetons (r)Le débit auquel les jetons sont ajoutés au bucket, généralement exprimé en jetons par seconde. Il définit le débit moyen de transmission de données autorisé.
Capacité du godet (B)Nombre maximal de jetons que le bucket peut contenir. Il détermine l'ampleur du trafic pouvant être transmis simultanément.
Taille du jetonQuantité de données représentée par chaque jeton, souvent un octet ou un paquet. Définit la granularité du contrôle.
Nombre actuel de jetonsNombre de jetons actuellement disponibles dans le bucket. Il augmente à mesure que des jetons sont générés et diminue lorsque des données sont envoyées.
Taille de la rafale de traficLa quantité maximale de données pouvant être envoyée en rafale, limitée par la capacité du bucket.
ConformitéIndique si le trafic respecte les limites autorisées, en fonction de la disponibilité des jetons. Le trafic non conforme est retardé ou rejeté selon l'implémentation.

À quoi sert l'algorithme Token Bucket ?

L'algorithme de seau de jetons est utilisé pour la régulation du trafic, la limitation du débit et la gestion de la bande passante dans les réseaux informatiques. Il garantit que la transmission de données reste dans les limites spécifiées tout en autorisant de courtes périodes de trafic en cas de capacité excédentaire.

Les cas d’utilisation courants incluent le contrôle du trafic sortant depuis servers, gestion de l'allocation de bande passante sur les interfaces réseau, application accords de niveau de service (SLA), et prévient la congestion du réseau. Cet algorithme est largement implémenté dans routeurs, commutateurs, pare-feu et qualité de service (QoS) mécanismes permettant d’assurer des performances réseau prévisibles et de maintenir l’équité entre les utilisateurs ou les applications.

Comment implémenter l'algorithme Token Bucket ?

comment implémenter l'algorithme de jeton bucket

Pour implémenter l'algorithme de jeton bucket, suivez ces étapes générales, applicables à la fois dans les logiciels et matérielsystèmes basés sur :

  1. Initialiser le bucketDéfinissez la capacité maximale du bucket (B), qui représente le nombre de jetons qu'il peut contenir. Définissez le taux de génération de jetons (r), qui détermine le nombre de jetons ajoutés par unité de temps.
  2. Générer des jetons au fil du tempsAjoutez continuellement des jetons au bucket au rythme défini. Si le bucket atteint sa capacité maximale, les jetons supplémentaires sont supprimés pour éviter de dépasser la limite de taille d'éclatement.
  3. Gérer les demandes de transmission de donnéesChaque fois qu'un paquet ou une unité de données doit être envoyé, vérifiez la disponibilité des jetons dans le bucket. Le nombre de jetons requis dépend de la taille des données (par exemple, un jeton par octet ou par paquet).
  4. Autoriser ou retarder le traficSi le nombre de jetons disponibles est suffisant, retirez-les du bucket et autorisez la transmission immédiate. Si le nombre de jetons est insuffisant, retardez la transmission jusqu'à l'accumulation de jetons ou supprimez le trafic, selon la politique d'implémentation.
  5. Répétez le processus. Réapprovisionnez en continu les jetons et gérez les demandes de trafic, en veillant à ce que l'utilisation moyenne de la bande passante reste dans les limites configurées tout en prenant en charge les pics temporaires.

Quels sont les avantages de l’algorithme Token Bucket ?

L'algorithme de jeton bucket offre plusieurs avantages pour la gestion du trafic réseau :

  • Permet des pics de trafic. Contrairement aux algorithmes de limitation de débit stricts, il permet de courtes rafales de transmission de données tant que les jetons se sont accumulés, fournissant flexabilité aux modèles de trafic variables.
  • Contrôle du taux moyen en douceur. Il applique un débit de transmission moyen à long terme, garantissant que l'utilisation globale de la bande passante reste dans des limites définies sans sacrifier les performances pendant les périodes de faible trafic.
  • Utilisation efficace de la bande passante. En autorisant des rafales temporaires et en contrôlant le débit moyen, il maximise l'utilisation des ressources du réseau sans provoquer de congestion constante.
  • Simplicité et faibles frais généraux. L'algorithme est relativement simple à mettre en œuvre avec une surcharge de calcul minimale, ce qui le rend adapté aux systèmes matériels et logiciels.
  • Prévient la congestion. En retardant ou en abandonnant le trafic excédentaire lorsque les jetons ne sont pas disponibles, cela permet d'éviter la congestion du réseau et de maintenir la qualité du service.
  • Soutient la qualité du service. Il s'intègre bien aux cadres QoS, permettant une distribution équitable de la bande passante et une priorisation du trafic.

Quels sont les inconvénients de l’algorithme Token Bucket ?

L'algorithme du jeton bucket présente plusieurs inconvénients malgré son flexabilité :

  • Ne garantit pas un débit de sortie constant. Bien qu'il contrôle le débit de transmission moyen, il autorise des rafales, qui peuvent provoquer des pics de trafic à court terme susceptibles de submerger les périphériques en aval s'ils ne sont pas correctement gérés.
  • Nécessite une gestion précise du temps. La génération précise de jetons au fil du temps est essentielle au bon fonctionnement du système. Des irrégularités temporelles dues à des retards système ou à une dérive d'horloge peuvent perturber le contrôle du débit.
  • Contrôle limité de la taille de l'éclatement. La taille des rafales autorisées dépend de la capacité du bucket, mais le réglage de ce paramètre peut s'avérer complexe. Un bucket trop petit réduit la rafale. flexibilité ; une taille trop grande peut entraîner des pics de trafic excessifs.
  • Frais généraux de maintenance de l'État. L'algorithme nécessite un suivi continu du nombre de jetons et des intervalles de temps, ce qui ajoute une complexité à la gestion de l'état, en particulier dans les réseaux à haut débit ou à grande échelle.
  • Inefficace à lui seul pour la surveillance de la circulation. Bien qu'il façonne le trafic et autorise les rafales, il peut être nécessaire de le combiner avec d'autres mécanismes (par exemple, un bucket qui fuit ou une surveillance stricte) pour garantir une conformité stricte aux limites de bande passante dans les environnements sensibles.

Algorithme Token Bucket vs. Leaky Bucket

Voici un tableau comparatif clair de l'algorithme du seau à jetons par rapport à l'algorithme du seau qui fuit :

AspectAlgorithme de seau de jetonsAlgorithme du seau qui fuit
Objectif principalRégulation du trafic avec prise en compte des rafales.Régulation du trafic avec un débit de sortie strict et constant.
Gestion des explosionsPermet de courtes rafales si suffisamment de jetons sont disponibles.Ne permet pas les rafales ; les sorties se font à un rythme fixe et constant.
MécanismeLes jetons s'accumulent à un rythme fixe ; l'envoi nécessite des jetons.Les paquets sont mis en file d’attente et quittent le bucket à un rythme constant.
Contrôle du débitApplique un tarif moyen tout en autorisant des pics de trafic temporaires.Applique strictement le débit de sortie moyen et maximal.
Traffic flexabilitéAutres flexible; s'adapte à des modèles de trafic variables.Moins flexible; fluidifie le trafic mais limite les rafales.
Gestion des débordementsLes jetons excédentaires sont jetés si le seau est plein.Les paquets excédentaires sont abandonnés ou mis en file d'attente si le bucket déborde.
Idéal pourApplications nécessitant à la fois un contrôle du débit et une tolérance aux rafales.Environnements nécessitant un flux de trafic fluide, prévisible et régulier.
Complexité de mise en œuvreModéré, nécessite un suivi et un timing des jetons.Simple, basé sur le comportement de la file d'attente et la planification de sortie constante.

Anastasie
Spasojevic
Anastazija est une rédactrice de contenu expérimentée avec des connaissances et une passion pour cloud l'informatique, les technologies de l'information et la sécurité en ligne. À phoenixNAP, elle se concentre sur la réponse à des questions brûlantes concernant la garantie de la robustesse et de la sécurité des données pour tous les acteurs du paysage numérique.