Алгоритм Leaky bucket
Leaky Bucket — это протекающее ведро.
Имеем ведро с отверстием заданного размера внизу. В это ведро сверху сыпятся/льются пакеты. А снизу они вытекают с постоянной битовой скоростью.
Когда ведро заполняется, новые пакеты начинают отбрасываться.
Размер отверстия определяется заданным ограничением скорости, которая для Leaky Bucket измеряется в битах в секунду.
Объём ведра, его наполненность и выходная скорость определяют задержку, вносимую шейпером. Для удобства объём ведра обычно измеряется в мс или мкс.
В плане реализации Leaky Bucket — это обычный буфер на основе SD-RAM.
Даже если явным образом шейпинг не настроен, при наличии всплесков, которые не проходят в интерфейс, пакеты временно складываются в буфер и передаются по мере освобождения интерфейса. Это тоже шейпинг.
Leaky Bucket используется только для шейпинга и не подходит для полисинга.
Copy link