Token Bucket Filter (TBF) — простая бесклассовая дисциплина, пропускающая поступающие пакеты со скоростью, не превышающей заданной. Эта дисциплина относится весьма бережливо к ресурсам системы, поэтому в случае, если надо просто ограничить скорость исходящего трафика — это лучший выбор.
Смысл работы данной дисциплины заключается в следующем. Поступающие для передачи пакеты записываются в буфер дисциплины, откуда они с заданной скоростью поступают на исходящий интерфейс. Возможно три ситуации:
Пакеты поступают со скоростью, равной скорости передачи их на исходящий интерфейс. В этом случае пакеты проходят через интерфейс без задержек.
Пакеты поступают со скоростью, меньшей скорости передачи их на исходящий интерфейс. В этом случае при кратковременном возрастании скорости входящего трафика — он будет накоплен во входящей очереди и передан с заданной скоростью.
Пакеты поступают со скоростью, превышающей скорость передачи их на исходящий интерфейс. В этом случае через некоторое время пакеты начнут сбрасываться.
Дисциплина имеет несколько параметров, позволяющих управлять её работой:
Rate — скорость, с которой поступающий трафик передается на исходящий интерфейс.
Token Buffer — число байт, передаваемых в момент времени на исходящий интерфейс.
Limit — размер буфера в байтах, в который записываются поступающие пакеты, если скорость их поступления превышает скорость их передачи на исходящий интерфейс. При превышении этого параметра пакеты будут сбрасываться.
Latency — время, которое пакет может находиться, ожидая передачи на исходящий интерфейс. По истечении этого времени, пакет будет сброшен.
Одновременно можно выставлять либо Limit, либо Latency.