Случайное раннее обнаружение ( RED ), также известное как случайное раннее отбрасывание или случайное раннее удаление , — это дисциплина организации очередей для сетевого планировщика , предназначенная для предотвращения перегрузок . [1]
В традиционном алгоритме отбрасывания хвоста маршрутизатор или другой сетевой компонент буферизует столько пакетов, сколько может, и просто отбрасывает те, которые он не может буферизовать. Если буферы постоянно заполнены, сеть перегружена . Отбрасывание хвоста несправедливо распределяет буферное пространство между потоками трафика. Отбрасывание хвоста также может привести к глобальной синхронизации TCP, поскольку все TCP- соединения одновременно «сдерживаются», а затем одновременно переходят вперед. Сети становятся недостаточно загруженными и переполняются – поочередно, волнообразно.
RED решает эти проблемы, упреждающе отбрасывая пакеты до того, как буфер полностью заполнится. Он использует прогнозные модели, чтобы решить, какие пакеты следует отбрасывать. Его изобрели в начале 1990-х годов Салли Флойд и Ван Джейкобсон . [2]
RED отслеживает средний размер очереди и отбрасывает (или маркирует при использовании совместно с ECN ) пакеты на основе статистических вероятностей . Если буфер почти пуст, то принимаются все входящие пакеты. По мере роста очереди растет и вероятность отбросить входящий пакет. Когда буфер заполнен, вероятность достигает 1 и все входящие пакеты отбрасываются.
RED более справедлив, чем хвостовое отбрасывание, в том смысле, что он не имеет предвзятости против пульсирующего трафика, который использует лишь небольшую часть полосы пропускания. Чем больше хост передает, тем больше вероятность того, что его пакеты будут отброшены, поскольку вероятность того, что пакет хоста будет отброшен, пропорциональна объему данных, находящихся в очереди. Раннее обнаружение помогает избежать глобальной синхронизации TCP.
По словам Ван Джейкобсона, «в классической RED не одна, а две ошибки». [3] Были разработаны улучшения алгоритма и подготовлен проект документа [4] , но документ так и не был опубликован, а улучшения не получили широкого распространения и реализации. Была проделана определенная работа по завершению исследования и исправлению ошибок. [3]
Pure RED не обеспечивает дифференциацию качества обслуживания (QoS). Взвешенный RED (WRED) и RED с входом и выходом (RIO) [5] обеспечивают раннее обнаружение с учетом качества обслуживания.
В взвешенном RED вы можете иметь разные вероятности для разных приоритетов ( приоритет IP , DSCP ) и/или очередей. [6]
Алгоритм адаптивного RED или активного RED (ARED) [7] делает вывод о том, следует ли сделать RED более или менее агрессивным, на основе наблюдения за средней длиной очереди. Если средняя длина очереди колеблется около минимального порога, то раннее обнаружение слишком агрессивно. С другой стороны, если средняя длина очереди колеблется около максимального порога, то раннее обнаружение является слишком консервативным. Алгоритм изменяет вероятность в зависимости от того, насколько агрессивно он воспринимает отбрасывание трафика.
См. Шрикант [8] для более подробного описания этих методов и их анализа.
Надежный алгоритм случайного раннего обнаружения (RRED) был предложен для повышения пропускной способности TCP против атак типа «отказ в обслуживании» (DoS), особенно атак типа «отказ в обслуживании» с низкой скоростью (LDoS). Эксперименты подтвердили, что существующие алгоритмы, подобные RED, особенно уязвимы для атак типа «отказ в обслуживании» с низкой скоростью (LDoS) из-за колеблющегося размера очереди TCP, вызванного атаками. [9] Алгоритм RRED может значительно улучшить производительность TCP при низкочастотных атаках типа «отказ в обслуживании». [9]
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь ){{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )