# 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).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://linkmeup.gitbook.io/sdsm/15.-qos/7.-ogranichenie-skorosti/1-traffic-shaping.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
