# RED — Random Early Detection

А что если взять и дропы размазать по некоторой части буфера?

Условно говоря, начинать отбрасывать случайные пакеты, когда очередь заполняется на 80%, заставляя некоторые TCP-сессии уменьшить окно и соответственно, скорость.\
А если очередь заполнена на 90%, начинаем отбрасывать случайным образом 50% пакетов.\
90% — вероятность растёт вплоть до Tail Drop (100% новых пакетов отбрасывается).

Именно так и работает **RED** — более продвинутый алгоритм AQM.

**Early Detection** — фиксируем потенциальную перегрузку;\
**Random** — отбрасываем пакеты в случайном порядке.\
Иногда расшифровывают RED (на мой взгляд семантически более корректно), как Random Early Discard.

Графически это выглядит так:

![](/files/-LMaZMWIAgvRFcEkFPYS)

![](/files/-LMaZMWNc7_4ostTYXxU)

До заполнение буфера на 80% пакеты не отбрасываются совсем — вероятность 0%.

От 80 до 100 пакеты начинают отбрасываться, и тем больше, чем выше заполнение очереди.\
Так процент растёт от 0 до 30.

Побочным эффектом RED является и то, что агрессивные TCP-сессии скорее начнут притормаживать, просто потому что их пакетов много и они с бо́льшей вероятностью будут отброшены.\
Неэффективность использования полосы RED решает тем, что притупляет гораздо меньшую часть сессий, не вызывая такую серьёзную просадку между зубьями.

Ровно по этой же причине UDP не может оккупировать всё.


---

# 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/5.-predotvrashenie-peregruzok-congestion-avoidance/1-red-random-early-detection.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.
