Was ist der Token-Bucket-Algorithmus?

26. Juni 2025

Der Token-Bucket-Algorithmus ist ein Mechanismus zur Verkehrsformung und Ratenbegrenzung, der in Computernetzwerken zur Steuerung des Datenflusses verwendet wird.

Was ist der Token-Bucket-Algorithmus?

Was ist der Token-Bucket-Algorithmus?

Der Token-Bucket-Algorithmus ist eine Technik zur Verwaltung des Netzwerkverkehrs, die die Menge und Geschwindigkeit von รผbertragene Daten รผber ein Netzwerk. Es funktioniert, indem Token mit einer festen Rate generiert und in einem logischen Container, einem sogenannten Bucket, abgelegt werden. Jedes Token stellt die Berechtigung zum Senden einer bestimmten Datenmenge dar, typischerweise ein Paket oder eine festgelegte Anzahl von Bytes.

Wenn Daten รผbertragen werden mรผssen, werden Token entsprechend der GrรถรŸe der gesendeten Daten aus dem Bucket entfernt. Sind genรผgend Token verfรผgbar, werden die Daten sofort รผbertragen. Andernfalls wird die รœbertragung verzรถgert, bis genรผgend Token vorhanden sind.

Der Bucket verfรผgt รผber eine maximale Kapazitรคt, die kurze Verkehrsspitzen ermรถglicht, wenn der Bucket รผberzรคhlige Token enthรคlt, aber langfristige Ratenbegrenzungen erzwingt, um anhaltende รœberlastungen zu vermeiden. Dieser Ansatz macht den Token-Bucket-Algorithmus gut geeignet fรผr Szenarien, die sowohl kontrollierte Bandbreite Nutzung und flexFรคhigkeit zur Handhabung variabler Verkehrsmuster.

Wie funktioniert der Token-Bucket-Algorithmus?

Der Token-Bucket-Algorithmus generiert Token mit einer konstanten, vordefinierten Rate und platziert sie in einem logischen Bucket mit einer festen maximalen Kapazitรคt. Jedes Token reprรคsentiert typischerweise die Berechtigung zum Senden einer bestimmten Datenmenge, z. B. eines Bytes oder eines Pakets. Wenn ein Gerรคt oder Anwendung Daten รผbertragen mรถchte, muss es Token aus dem Bucket verbrauchen, die der GrรถรŸe der Daten entsprechen.

Sind genรผgend Token verfรผgbar, werden die Daten sofort gesendet. Dies ermรถglicht eine reibungslose รœbertragung und unterstรผtzt kurze Datenverkehrsspitzen. Sind nicht genรผgend Token vorhanden, stellt das System die Daten entweder in eine Warteschlange oder wartet, bis weitere Token vorhanden sind. Dadurch wird die konfigurierte Ratenbegrenzung eingehalten.

Der Bucket kann ungenutzte Token bis zu seiner maximalen Kapazitรคt speichern, wodurch die Algorithmus um plรถtzliche Verkehrsspitzen zu bewรคltigen, ohne die durchschnittliche รœbertragungsrate zu beeintrรคchtigen. Dieser Mechanismus gewรคhrleistet einen kontrollierten, effizienten Datenfluss und bietet gleichzeitig flexMรถglichkeit fรผr vorรผbergehende Verkehrsspitzen.

Parameter des Token Bucket-Algorithmus

Hier ist eine Tabelle, die die wichtigsten Parameter des Token-Bucket-Algorithmus erklรคrt:

ParameterBeschreibung
Token-Generierungsrate (r)Die Rate, mit der Token zum Bucket hinzugefรผgt werden, wird normalerweise in Token pro Sekunde angegeben. Sie definiert die durchschnittlich zulรคssige Datenรผbertragungsrate.
Schaufelinhalt (B)Die maximale Anzahl an Token, die der Bucket enthalten kann. Dadurch wird bestimmt, wie groรŸ ein Datenvolumen sein kann, das auf einmal รผbertragen werden kann.
TokengrรถรŸeDie durch jedes Token dargestellte Datenmenge, oft ein Byte oder ein Paket. Definiert die Granularitรคt der Steuerung.
Aktuelle TokenanzahlDie Anzahl der aktuell im Bucket verfรผgbaren Token. Sie erhรถht sich, wenn Token generiert werden, und verringert sich, wenn Daten gesendet werden.
GrรถรŸe des Datenverkehrs-BurstsDie maximale Datenmenge, die in einem Burst gesendet werden kann, ist durch die Bucket-Kapazitรคt begrenzt.
KonformitรคtGibt an, ob der Datenverkehr innerhalb der zulรคssigen Grenzen liegt (basierend auf der Token-Verfรผgbarkeit). Nicht konformer Datenverkehr wird je nach Implementierung verzรถgert oder verworfen.

Wofรผr wird der Token-Bucket-Algorithmus verwendet?

Der Token-Bucket-Algorithmus wird zur Verkehrsformung, Ratenbegrenzung und Bandbreitenverwaltung in Computernetzwerken verwendet. Er stellt sicher, dass die Datenรผbertragung innerhalb festgelegter Grenzen bleibt, lรคsst aber gleichzeitig kurze Verkehrsspitzen zu, wenn รผberschรผssige Kapazitรคt verfรผgbar ist.

Zu den รผblichen Anwendungsfรคllen gehรถrt die Steuerung des ausgehenden Datenverkehrs von servers, Verwaltung der Bandbreitenzuweisung auf Netzwerkschnittstellen, Durchsetzung Service-Level-Agreements (SLAs)und verhindert Netzwerkรผberlastungen. Der Algorithmus ist weit verbreitet in Router, Switches, Firewallsund Dienstqualitรคt (QoS) Mechanismen zur Bereitstellung einer vorhersehbaren Netzwerkleistung und zur Wahrung der Fairness zwischen Benutzern oder Anwendungen.

Wie implementiert man den Token-Bucket-Algorithmus?

So implementieren Sie den Token-Bucket-Algorithmus

Um den Token-Bucket-Algorithmus zu implementieren, folgen Sie diesen allgemeinen Schritten, die sowohl in der Software als auch in Hardware-basierte Systeme:

  1. Initialisieren des Buckets. Definieren Sie die maximale Bucket-Kapazitรคt (B), die die Anzahl der Token darstellt, die der Bucket aufnehmen kann. Legen Sie die Token-Generierungsrate (r) fest, die bestimmt, wie viele Token pro Zeiteinheit hinzugefรผgt werden.
  2. Generieren Sie im Laufe der Zeit Token. Fรผgen Sie dem Bucket kontinuierlich Token mit der definierten Rate hinzu. Wenn der Bucket seine maximale Kapazitรคt erreicht, werden zusรคtzliche Token verworfen, um ein รœberschreiten der Burst-GrรถรŸenbeschrรคnkung zu verhindern.
  3. Bearbeiten von Datenรผbertragungsanforderungen. รœberprรผfen Sie jedes Mal, wenn ein Paket oder eine Dateneinheit gesendet werden muss, den Bucket auf verfรผgbare Token. Die Anzahl der benรถtigten Token hรคngt von der DatengrรถรŸe ab (z. B. ein Token pro Byte oder pro Paket).
  4. Verkehr zulassen oder verzรถgern. Wenn genรผgend Token verfรผgbar sind, entfernen Sie die benรถtigten Token aus dem Bucket und ermรถglichen Sie die sofortige รœbertragung. Wenn nicht genรผgend Token vorhanden sind, verzรถgern Sie die รœbertragung, bis sich weitere Token angesammelt haben, oder verwerfen Sie den Datenverkehr, je nach Implementierungsrichtlinie.
  5. Wiederholen Sie den Vorgang. Fรผllen Sie Token kontinuierlich auf und verwalten Sie Verkehrsanforderungen. Stellen Sie dabei sicher, dass die durchschnittliche Bandbreitennutzung innerhalb der konfigurierten Grenzen bleibt, wรคhrend temporรคre Spitzen unterstรผtzt werden.

Was sind die Vorteile des Token-Bucket-Algorithmus?

Der Token-Bucket-Algorithmus bietet mehrere Vorteile fรผr das Netzwerkverkehrsmanagement:

  • Ermรถglicht Verkehrsspitzen. Im Gegensatz zu strengen Algorithmen zur Ratenbegrenzung erlaubt es kurze Datenรผbertragungsschรผbe, solange sich Token angesammelt haben, und bietet flexEignung fรผr variable Verkehrsmuster.
  • Sanfte Durchschnittsratenkontrolle. Es erzwingt eine langfristige durchschnittliche รœbertragungsrate und stellt sicher, dass die Gesamtbandbreitennutzung innerhalb definierter Grenzen bleibt, ohne dass die Leistung in Zeiten mit geringem Datenverkehr beeintrรคchtigt wird.
  • Effiziente Bandbreitennutzung. Durch das Zulassen vorรผbergehender Bursts und die Kontrolle der Durchschnittsrate wird die Nutzung der Netzwerkressourcen maximiert, ohne eine stรคndige รœberlastung zu verursachen.
  • Einfachheit und geringer Aufwand. Der Algorithmus lรคsst sich mit minimalem Rechenaufwand relativ einfach implementieren und ist daher fรผr Hardware- und Softwaresysteme geeignet.
  • Verhindert Staus. Durch die Verzรถgerung oder Sperrung von รผberschรผssigem Datenverkehr, wenn keine Token verfรผgbar sind, werden Netzwerkรผberlastungen vermieden und die Servicequalitรคt aufrechterhalten.
  • Unterstรผtzt die Servicequalitรคt. Es lรคsst sich gut in QoS-Frameworks integrieren und ermรถglicht eine faire Bandbreitenverteilung und Priorisierung des Datenverkehrs.

Was sind die Nachteile des Token-Bucket-Algorithmus?

Der Token-Bucket-Algorithmus hat trotz seiner flexFรคhigkeit:

  • Garantiert keine konstante Ausgaberate. Wรคhrend es die durchschnittliche รœbertragungsrate steuert, lรคsst es Bursts zu, die zu kurzfristigen Verkehrsspitzen fรผhren kรถnnen, die nachgeschaltete Gerรคte รผberlasten kรถnnen, wenn sie nicht richtig verwaltet werden.
  • Erfordert prรคzises Zeitmanagement. Die prรคzise Token-Generierung ist fรผr einen ordnungsgemรครŸen Betrieb entscheidend. Inkonsistente Zeitablรคufe aufgrund von Systemverzรถgerungen oder Taktabweichungen kรถnnen die Ratendurchsetzung beeintrรคchtigen.
  • Eingeschrรคnkte Kontrolle der Burst-GrรถรŸe. Die GrรถรŸe der zulรคssigen Bursts hรคngt von der Bucket-Kapazitรคt ab, aber die Feinabstimmung dieses Parameters kann eine Herausforderung sein. Ein zu kleiner Bucket reduziert Bursts flexMรถgliche Ursache: Zu groรŸe Werte kรถnnen zu รผbermรครŸigen Verkehrsspitzen fรผhren.
  • Staatlicher Wartungsaufwand. Der Algorithmus erfordert eine kontinuierliche Verfolgung der Token-Anzahl und der Zeitintervalle, was die Komplexitรคt der Zustandsverwaltung erhรถht, insbesondere in Hochgeschwindigkeits- oder GroรŸnetzwerken.
  • Allein fรผr die Verkehrspolizei ist es unwirksam. Wรคhrend es den Verkehr formt und Bursts zulรคsst, muss es mรถglicherweise mit anderen Mechanismen (z. B. Leaky Bucket oder strikter รœberwachung) kombiniert werden, um die strikte Einhaltung der Bandbreitenbeschrรคnkungen in sensiblen Umgebungen sicherzustellen.

Token Bucket vs. Leaky Bucket Algorithmus

Hier ist eine รผbersichtliche Vergleichstabelle des Token-Bucket- und des Leaky-Bucket-Algorithmus:

AspektToken-Bucket-AlgorithmusLeaky-Bucket-Algorithmus
HauptzweckVerkehrsformung mit Berรผcksichtigung von Bursts.Traffic Shaping mit strikter, konstanter Ausgaberate.
Burst-HandlingErmรถglicht kurze StรถรŸe, wenn genรผgend Token verfรผgbar sind.Lรคsst keine Bursts zu; gibt mit einer festen, konstanten Rate aus.
MechanismusToken werden zu einem festen Satz angesammelt; zum Senden sind Token erforderlich.Pakete werden in die Warteschlange gestellt und verlassen den Bucket mit einer konstanten Rate.
RatenkontrolleErzwingt eine Durchschnittsrate und lรคsst gleichzeitig vorรผbergehende Verkehrsspitzen zu.Erzwingt strikt sowohl die durchschnittliche als auch die Spitzenausgaberate.
Traffic flexFรคhigkeitWeitere flexfรคhig; passt sich variablen Verkehrsmustern an.Weniger flexible; glรคttet den Verkehr, beschrรคnkt aber Bursts.
รœberlaufbehandlungรœberschรผssige Token werden verworfen, wenn der Eimer voll ist.รœberschรผssige Pakete werden gelรถscht oder in die Warteschlange gestellt, wenn der Bucket รผberlรคuft.
Am besten geeignet fรผrAnwendungen, die sowohl Ratenkontrolle als auch Burst-Toleranz erfordern.Umgebungen, die einen reibungslosen, vorhersehbaren und stetigen Verkehrsfluss erfordern.
Komplexitรคt der ImplementierungMittelschwer, erfordert Token-Verfolgung und Zeitmessung.Einfach, basierend auf Warteschlangenverhalten und konstanter Ausgabeplanung.

Anastazija
Spasojeviฤ‡
Anastazija ist eine erfahrene Content-Autorin mit Wissen und Leidenschaft fรผr cloud Computer, Informationstechnologie und Online-Sicherheit. Bei phoenixNAP, konzentriert sie sich auf die Beantwortung brennender Fragen zur Gewรคhrleistung der Datenrobustheit und -sicherheit fรผr alle Teilnehmer der digitalen Landschaft.