Traffic shaping: как работает замедление трафика

Token bucket, CAR и очередь: математика ограничения скорости

28 марта 2026 2 мин чтения TooTimes Team

Traffic shaping (формовка трафика) — это управление скоростью передачи пакетов с целью выровнять или ограничить пропускную способность. В отличие от policing (моментального отбрасывания пакетов), shaping ставит лишние пакеты в очередь и отдаёт их позже.

Token bucket: главный алгоритм

Модель «ведро с токенами» проста:

  1. В ведро с фиксированной скоростью r падают токены. Ведро переполняется до b токенов.
  2. Чтобы отправить пакет размера L байт, нужно забрать L токенов.
  3. Нет токенов — пакет ждёт (shaping) или отбрасывается (policing).

Пара параметров (r, b) описывает политику «средняя скорость — всплеск».

Leaky bucket

Альтернативная модель: пакеты капают из ведра всегда с фиксированной скоростью. Если приток больше — ведро переполняется, лишнее отбрасывается. Подходит для жёсткого ограничения пиковой скорости.

QoS и классы трафика

На операторском оборудовании shaping работает в связке с DiffServ (DSCP). Трафик помечается в поле IP-заголовка: EF для голоса, AF для видео, BE (best effort) для всего остального. На магистральных узлах разные классы обслуживаются разными очередями с разными параметрами token bucket.

Где shaping применяется

  • Провайдеры — соблюдение договорной скорости тарифа.
  • Мобильные сети — LTE/5G имеют свои QoS-classes (QCI).
  • DDoS-защита — ограничение всплесков к конкретному хосту.
  • Регуляторные ограничения — выборочное замедление отдельных протоколов.

Как увидеть shaping из клиента

Характерные признаки:

  • Пропускная способность постоянно упирается в одно и то же значение (например, 300 кбит/с), тогда как RTT не меняется.
  • Рост RTT только при насыщении канала (так называемый bufferbloat).
  • Быстрый первый пакет, далее — равномерная пониженная скорость.

Инструменты для диагностики: iperf3, mtr, tcpdump, Cloudflare Speed Test.

Инструменты на стороне сервера

На Linux shaping делается через tc (traffic control). Простой пример: ограничить исходящую скорость интерфейса до 10 Мбит/с:

tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms

На сетевом оборудовании — команды class-map и policy-map у Cisco, firewall-filter у Juniper.

Итого

Shaping — фундаментальный инструмент сетевой инженерии. Он встречается везде: от домашнего роутера до магистральных узлов. Понимание token bucket и QoS-классов помогает диагностировать проблемы с производительностью и отличать реальные сбои от сознательного ограничения.

Нужен стабильный защищённый доступ к интернету?

TooTimes — зашифрованный туннель до серверов в 9 странах, без логов.

Посмотреть тарифы
✎ Панель блога