¿Qué es el algoritmo Token Bucket?

26 de junio de 2025

El algoritmo de token bucket es un mecanismo de modelado de tráfico y limitación de velocidad utilizado en redes informáticas para controlar el flujo de datos.

¿Qué es el algoritmo Token Bucket?

¿Qué es el algoritmo Token Bucket?

El algoritmo de token bucket es una técnica de gestión del tráfico de red que controla la cantidad y la velocidad de datos transmitidos a través de una red. Funciona generando tokens a una tasa fija y colocándolos en un contenedor lógico llamado contenedor. Cada token representa el permiso para enviar una cierta cantidad de datos, generalmente un paquete o un número determinado de... bytes.

Cuando es necesario transmitir datos, se extraen tokens del contenedor a una velocidad que corresponde al tamaño de los datos enviados. Si hay suficientes tokens disponibles, los datos se transmiten inmediatamente; de ​​lo contrario, la transmisión se retrasa hasta que se acumulan suficientes tokens.

El contenedor tiene una capacidad máxima, lo que permite breves ráfagas de tráfico cuando contiene tokens excedentes, pero impone límites de velocidad a largo plazo para evitar una congestión sostenida. Este enfoque hace que el algoritmo del contenedor de tokens sea ideal para escenarios que requieren tanto control como... ancho de banda uso y flexCapacidad para gestionar patrones de tráfico variables.

¿Cómo funciona el algoritmo Token Bucket?

El algoritmo de depósito de tokens funciona generando tokens a una tasa constante y predefinida y colocándolos en un depósito lógico con una capacidad máxima fija. Cada token suele representar el permiso para enviar una cantidad específica de datos, como un byte o un paquete. Cuando un dispositivo o Práctica desea transmitir datos, debe consumir tokens del bucket iguales al tamaño de los datos.

Si hay suficientes tokens disponibles, los datos se envían inmediatamente, lo que permite una transmisión fluida y admite breves ráfagas de tráfico. Si no hay suficientes tokens, el sistema pone los datos en cola o espera hasta que se acumulen más, cumpliendo así el límite de velocidad configurado.

El depósito puede almacenar tokens no utilizados hasta su capacidad máxima, lo que permite algoritmo Para gestionar picos repentinos de tráfico sin afectar la velocidad de transmisión promedio. Este mecanismo garantiza un flujo de datos controlado y eficiente, a la vez que proporciona... flexbilidad para ráfagas de tráfico temporales.

Parámetros del algoritmo Token Bucket

A continuación se muestra una tabla que explica los parámetros clave del algoritmo del token bucket:

ParámetroDescripción
Tasa de generación de tokens (r)La velocidad a la que se añaden tokens al depósito, generalmente expresada en tokens por segundo. Define la velocidad promedio de transmisión de datos permitida.
Capacidad del cucharón (B)El número máximo de tokens que puede contener el bucket. Esto determina el tamaño de la ráfaga de tráfico que se puede transmitir simultáneamente.
Tamaño del tokenLa cantidad de datos que representa cada token, generalmente un byte o un paquete, define la granularidad del control.
Recuento actual de tokensLa cantidad de tokens disponibles actualmente en el bucket. Aumenta a medida que se generan tokens y disminuye al enviar datos.
Tamaño de la ráfaga de tráficoLa cantidad máxima de datos que se pueden enviar en una ráfaga, limitada por la capacidad del depósito.
ConformidadIndica si el tráfico se encuentra dentro de los límites permitidos, según la disponibilidad del token. El tráfico no conforme se retrasa o se descarta según la implementación.

¿Para qué se utiliza el algoritmo Token Bucket?

El algoritmo de token bucket se utiliza para la modelación del tráfico, la limitación de velocidad y la gestión del ancho de banda en redes informáticas. Garantiza que la transmisión de datos se mantenga dentro de los límites especificados, permitiendo breves ráfagas de tráfico cuando hay exceso de capacidad.

Los casos de uso comunes incluyen el control del tráfico saliente desde servers, gestionar la asignación de ancho de banda en las interfaces de red, hacer cumplir acuerdos de nivel de servicio (SLA)y prevenir la congestión de la red. El algoritmo está ampliamente implementado en routers, interruptores, cortafuegos y calidad de servicio (QoS) mecanismos para proporcionar un rendimiento de red predecible y mantener la equidad entre usuarios o aplicaciones.

¿Cómo implementar el algoritmo Token Bucket?

Cómo implementar el algoritmo de depósito de tokens

Para implementar el algoritmo del token bucket, siga estos pasos generales, aplicables tanto en software como en hardware-sistemas basados ​​en:

  1. Inicializar el bucketDefine la capacidad máxima del contenedor (B), que representa la cantidad de tokens que puede contener. Define la tasa de generación de tokens (r), que determina cuántos tokens se agregan por unidad de tiempo.
  2. Generar tokens a lo largo del tiempoAñade tokens continuamente al depósito al ritmo definido. Si el depósito alcanza su capacidad máxima, se descartan los tokens adicionales para evitar superar el límite de tamaño de ráfaga.
  3. Gestionar solicitudes de transmisión de datosCada vez que se necesite enviar un paquete o una unidad de datos, se revisa el contenedor para ver si hay tokens disponibles. La cantidad de tokens necesarios depende del tamaño de los datos (p. ej., un token por byte o por paquete).
  4. Permitir o retrasar el tráficoSi hay suficientes tokens disponibles, retire los tokens necesarios del contenedor y permita la transmisión inmediata. Si no hay suficientes tokens, retrase la transmisión hasta que se acumulen más o descarte el tráfico, según la política de implementación.
  5. Repite el procesoReabastecer tokens continuamente y administrar solicitudes de tráfico, garantizando que el uso promedio del ancho de banda se mantenga dentro de los límites configurados y al mismo tiempo admitiendo ráfagas temporales.

¿Cuáles son las ventajas del algoritmo Token Bucket?

El algoritmo de token bucket ofrece varias ventajas para la gestión del tráfico de red:

  • Permite ráfagas de tráfico. A diferencia de los algoritmos de limitación de velocidad estrictos, permite ráfagas cortas de transmisión de datos siempre que se hayan acumulado tokens, lo que proporciona flexbilidad para patrones de tráfico variables.
  • Control suave de la tasa promedio. Aplica una tasa de transmisión promedio a largo plazo, lo que garantiza que el uso general del ancho de banda se mantenga dentro de límites definidos sin sacrificar el rendimiento durante períodos de bajo tráfico.
  • Utilización eficiente del ancho de banda. Al permitir ráfagas temporales y controlar la tasa promedio, maximiza el uso de los recursos de la red sin causar congestión constante.
  • Simplicidad y bajos costos operativos. El algoritmo es relativamente sencillo de implementar con una sobrecarga computacional mínima, lo que lo hace adecuado para sistemas de hardware y software.
  • Previene la congestión. Al retrasar o eliminar el exceso de tráfico cuando los tokens no están disponibles, ayuda a evitar la congestión de la red y mantiene la calidad del servicio.
  • Apoya la calidad del servicio. Se integra bien con los marcos QoS, lo que permite una distribución justa del ancho de banda y la priorización del tráfico.

¿Cuáles son las desventajas del algoritmo Token Bucket?

El algoritmo del token bucket tiene varias desventajas a pesar de su flexibilidad:

  • No garantiza una tasa de salida constante. Si bien controla la tasa de transmisión promedio, permite ráfagas que pueden causar picos de tráfico a corto plazo que pueden saturar los dispositivos posteriores si no se gestionan adecuadamente.
  • Requiere una gestión precisa del tiempo. La generación precisa de tokens a lo largo del tiempo es fundamental para un funcionamiento correcto. Una sincronización inconsistente debido a retrasos del sistema o desviaciones del reloj puede afectar la aplicación de la tasa.
  • Control de tamaño de ráfaga limitado. El tamaño de las ráfagas permitidas depende de la capacidad del depósito, pero ajustar este parámetro puede ser complicado. Un depósito demasiado pequeño reduce la ráfaga. flexbilidad; demasiado grande puede causar picos de tráfico excesivos.
  • Gastos generales de mantenimiento del estado. El algoritmo requiere un seguimiento continuo de los recuentos de tokens y los intervalos de tiempo, lo que agrega complejidad a la gestión del estado, especialmente en redes de alta velocidad o de gran escala.
  • Ineficaz por sí solo para el control del tráfico. Si bien da forma al tráfico y permite ráfagas, es posible que deba combinarse con otros mecanismos (por ejemplo, contenedores con fugas o vigilancia estricta) para garantizar un cumplimiento estricto de los límites de ancho de banda en entornos sensibles.

Algoritmo de Token Bucket vs. Algoritmo de Leaky Bucket

A continuación se muestra una tabla de comparación clara entre el algoritmo de depósito de tokens y el de depósito con fugas:

Aspecto Algoritmo de depósito de tokensAlgoritmo del cubo con fugas
Propósito primarioModelado de tráfico con margen para ráfagas.Modelado de tráfico con una tasa de salida estricta y constante.
Manejo de ráfagasPermite ráfagas cortas si hay suficientes fichas disponibles.No permite ráfagas; emite a una velocidad fija y constante.
MecanismoLos tokens se acumulan a una tasa fija; el envío requiere tokens.Los paquetes se ponen en cola y salen del contenedor a un ritmo constante.
Control de clasificaciónAplica una tarifa promedio al tiempo que permite picos de tráfico temporales.Aplica estrictamente la tasa de salida promedio y máxima.
Traffic flexibilidadMás flexible; se adapta a patrones de tráfico variables.Menos flexible; suaviza el tráfico pero restringe las ráfagas.
Manejo de desbordamientosLos tokens sobrantes se descartan si el depósito está lleno.Los paquetes en exceso se descartan o se ponen en cola si el depósito se desborda.
Más adecuado paraAplicaciones que necesitan tanto control de velocidad como tolerancia a ráfagas.Entornos que requieren un flujo de tráfico fluido, predecible y constante.
Complejidad de implementaciónModerado, requiere seguimiento y sincronización de tokens.Simple, basado en el comportamiento de la cola y la programación de salida constante.

Anastasia
Spasojevic
Anastazija es una escritora de contenido experimentada con conocimiento y pasión por cloud informática, tecnología de la información y seguridad en línea. En phoenixNAP, se centra en responder preguntas candentes sobre cómo garantizar la solidez y seguridad de los datos para todos los participantes en el panorama digital.