L'algoritmo leaky bucket è un metodo per memorizzare temporaneamente un numero variabile di richieste e organizzarle in un output a velocità fissa di pacchetti in una rete ATM (asynchronous transfer mode).
Il bucket leaky viene utilizzato per implementare il controllo del traffico e il traffic shaping in Ethernet e reti di dati cellulari. L'algoritmo può anche essere utilizzato per controllare le connessioni Internet a larghezza di banda misurata per evitare di superare la larghezza di banda assegnata per un mese, evitando così costi aggiuntivi.
L'algoritmo funziona in modo simile al modo in cui un secchio che perde contiene l'acqua: il secchio che perde prende i dati e li raccoglie fino a una capacità massima. I dati nel bucket vengono rilasciati dal bucket solo a una velocità e dimensione del pacchetto prestabilite. Quando il bucket esaurisce i dati, la perdita si interrompe. Se i dati in arrivo riempiono eccessivamente il bucket, il pacchetto viene considerato non conforme e non viene aggiunto al bucket. I dati vengono aggiunti al bucket non appena lo spazio diventa disponibile per i pacchetti conformi.
L'algoritmo leaky bucket può anche rilevare sia l'aumento graduale che il notevole aumento degli errori di memoria confrontando il modo in cui le velocità di dati medie e di picco superano le quantità di sfondo accettabili stabilite.
In un contesto più ampio, il leaky bucket è un'analogia per descrivere il funzionamento di input e output in un'ampia varietà di sistemi aziendali e tecnologici.
Guarda un video dimostrativo del bucket che perde nel traffic shaping: