Traffic shaping: как работает замедление трафика
Token bucket, CAR и очередь: математика ограничения скорости
Traffic shaping (формовка трафика) — это управление скоростью передачи пакетов с целью выровнять или ограничить пропускную способность. В отличие от policing (моментального отбрасывания пакетов), shaping ставит лишние пакеты в очередь и отдаёт их позже.
Token bucket: главный алгоритм
Модель «ведро с токенами» проста:
- В ведро с фиксированной скоростью
rпадают токены. Ведро переполняется доbтокенов. - Чтобы отправить пакет размера
Lбайт, нужно забратьLтокенов. - Нет токенов — пакет ждёт (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 странах, без логов.
Посмотреть тарифы