> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/15.-qos/7.-ogranichenie-skorosti/1-traffic-shaping.md).

# Traffic Shaping

Шейпинг ограничивает скорость путём буферизации лишнего трафика.\
Весь приходящий трафик проходит через буфер. Шейпер из этого буфера с постоянной скоростью изымает пакеты.

Если скорость поступления пакетов в буфер ниже выходной, они в буфере не задерживаются — пролетают насквозь.\
А если скорость поступления выше выходной, они начинают скапливаться.\
Выходная скорость при этом всегда одинакова.\
Таким образом всплески трафика складываются в буфер и будут отправлены, когда до них дойдёт очередь.\
Поэтому наряду с диспетчеризацией в очередях, шейпинг — второй инструмент, делающий **вклад в совокупную задержку**.

![](/files/-LMaZJH0339J-hqZZ_4F)

На иллюстрации хорошо видно, как пакет, пришедший буфер в момент времени t2, на выходе оказывается в момент t3. t3-t2 — это задержка, вносимая шейпером.\
Шейпер обычно применяется к исходящему трафику.\
Так выглядит профиль после шейпера.

![](/files/-LMaZJH25CeTPq54is2T)

Название «Shaping» говорит о том, что инструмент придаёт профилю трафика форму, сглаживая его.\
Главное достоинство такого подхода — оптимальное использование имеющейся полосы — вместо дропа чрезмерного трафика, мы его откладываем.

Главный недостаток — непредсказуемая задержка — при заполнении буфера, пакеты будут томиться в нём долго. Поэтому не для всех типов трафика шейпинг хорошо подходит.\
Shaping использует механизм [Leaky Bucket](/sdsm/15.-qos/7.-ogranichenie-skorosti/4-mekhanizmy-leaky-bucket-i-token-bucket/0-algoritm-leaky-bucket.md).
