# Traffic Shaping

```
Шейпинг ограничивает скорость путём буферизации лишнего трафика.  

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

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

![](https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LIgRTPaaN7wUujKIWEz%2F-LIz5dNgPvh71je6SA3Y%2F-LIzL5-oE2pmzEEzNyiE%2Fimage.png?alt=media\&token=5ba4b201-d51d-4613-8866-84ca0883299c)

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

Шейпер обычно применяется к исходящему трафику.  

Так выглядит профиль после шейпера.
```

![](https://3903873742-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LIgRTPaaN7wUujKIWEz%2F-LIz5dNgPvh71je6SA3Y%2F-LIzLADBXreVQw9ys50C%2Fimage.png?alt=media\&token=4369b304-99a7-4403-95dc-1f9e1a8a25f8)

```
Название «Shaping» говорит о том, что инструмент придаёт профилю трафика форму, сглаживая его.  

Главное достоинство такого подхода — оптимальное использование имеющейся полосы — вместо дропа чрезмерного трафика, мы его откладываем.
```

Главный недостаток — непредсказуемая задержка — при заполнении буфера, пакеты будут томиться в нём долго. Поэтому не для всех типов трафика шейпинг хорошо подходит.\
Shaping использует механизм [Leaky Bucket](broken-reference).
