Active Queue Management

Active Queue Management (англ. Active Queue Management, AQM) — это политика преднамеренного отбрасывания пакетов в буфере, связанном с сетевым интерфейсным контроллером (NIC), до того как буфер полностью заполнится. Основная цель этой политики — снижение сетевой перегрузки или улучшение сквозной задержки сети. Эта задача выполняется сетевым планировщиком, который для этих целей использует различные алгоритмы, такие как случайное раннее обнаружение (RED), явное оповещение о перегрузке (ECN) или контролируемая задержка (CoDel). RFC 7567 рекомендует активное управление очередями в качестве наилучшей практики[1].

Общее описание

Обычно интернет-маршрутизатор содержит набор очередей, по одной или несколько на каждый интерфейс, которые хранят пакеты, ожидающие отправки через данный интерфейс. Исторически такие очереди управлялись дисциплиной «drop-tail»: если очередь короче своего максимального размера (по количеству пакетов или по объёму байт), пакет помещается в очередь, иначе — отбрасывается.

Алгоритмы активного управления очередями отбрасывают или маркируют пакеты до того, как очередь полностью заполнена. Обычно они поддерживают одну или несколько вероятностей отброса/маркировки и периодически отбрасывают или маркируют пакеты согласно этим вероятностям до достижения полного заполнения очереди.

Преимущества

Очереди типа drop-tail склонны штрафовать передающие данные всплесками потоки и вызывать явление глобальной синхронизации между потоками TCP. Отбрасывая пакеты с некоторой вероятностью, алгоритмы активного управления очередями обычно избегают обеих этих проблем[2].

Благодаря тому что конечные точки получают сигнал о перегрузке до полного заполнения очереди, такие алгоритмы позволяют поддерживать длину очереди меньше, чем у drop-tail, что помогает борьбе с эффектиом bufferbloat и снижает сетевую задержку.

Недостатки

Ранние дисциплины активного управления очередями (например, RED и SRED) требуют тщательной настройки параметров для достижения хорошей производительности. С точки зрения теории управления, эти системы не всегда ведут себя оптимально[3]. Современные алгоритмы (ARED, Blue, PI, CoDel, CAKE) самонастраиваемы и обычно работают эффективно с параметрами по умолчанию.

Инженеры исторически были обучены избегать потери пакетов, поэтому иногда критически относились к системам, которые намеренно отбрасывают пакеты: «Зачем отбрасывать исправные пакеты, если в буфере ещё есть место?»[4].

Моделирование

Существует экспериментальная платформа для моделирования активного управления очередями и атак типа «отказ в обслуживании» (AQM&DoS), реализованная на основе исходного кода симулятора NS-2 для алгоритма RRED. На этой платформе можно имитировать различные виды DoS-атак (распределённые DoS, спуфинговые DoS, малочастотные DoS и др.) и алгоритмы активного управления очередями (RED, RRED, SFB и др.). Платформа автоматически рассчитывает и фиксирует среднюю пропускную способность обычных TCP-потоков до и после DoS-атак для облегчения анализа влияния таких атак на поведение нормальных потоков и работу алгоритмов управления очередями[5].

Алгоритмы активного управления очередями

  • Blue и стохастический справедливый Blue (SFB)
  • Common Applications Kept Enhanced (CAKE)
  • Контролируемая задержка (CoDel)
  • FQ-CoDel
  • Модифицированный REM (M-REM) [6]
  • PI-контроллер
  • Случайное раннее обнаружение (RED)
  • Случайное экспоненциальное маркирование (REM) [7]
  • RED с приоритетным отбрасыванием (RED-PD) [8]
  • Устойчивый RED (RRED) (RRED) [9]
  • RSFB: устойчивый стохастический справедливый Blue против спуфинговых DDoS-атак [10]
  • Smart Queue Management (SQM) — объединение AQM с механизмами качества обслуживания (QoS) и другими технологиями [11][12]

См. также

Примечания

  1. IETF RFC 7567: Guidelines for Queue Management and Congestion Avoidance in the Internet (англ.). IETF (май 2015). Дата обращения: 23 июня 2024.
  2. Floyd, Sally; Jacobson, Van (август 1993). “Random Early Detection (RED) gateways for Congestion Avoidance”. IEEE/ACM Transactions on Networking [англ.]. 1 (4): 397—413. DOI:10.1109/90.251892. Дата обращения 2008-03-16. Проверьте дату в |date= (справка на английском)
  3. Analysis and Design of Controllers for AQM Routers Supporting TCP Flows (англ.). Columbia University. Дата обращения: 23 июня 2024.
  4. The criminal mastermind: bufferbloat! (англ.). jg's Ramblings. Gettys.wordpress.com (3 декабря 2010). Дата обращения: 23 января 2014.
  5. AQM&DoS Simulation Platform - Changwang Zhang (англ.). Дата обращения: 23 июня 2024.
  6. Imer, Orhan; Basar, Tamer (декабрь 2005). “A Global Stability Result in Utility-Based Congestion Control” (PDF). Proceedings of the 44th IEEE Conference on Decision and Control, and the European Control Conference 2005 [англ.]: 6740—6743. Проверьте дату в |date= (справка на английском)
  7. Athuraliya, S. (июнь 2001). “REM: Active Queue Management”. IEEE Transactions on Networking [англ.]. 15 (3): 48—53. Проверьте дату в |date= (справка на английском)
  8. Mahajan, Ratul Controlling high-bandwidth flows at the congested router (англ.). ICNP 2001. Дата обращения: 23 июня 2024.
  9. Zhang, Changwang RRED: Robust RED Algorithm to Counter Low-rate Denial-of-Service Attacks (англ.). IEEE Communications Letters 489–491 (2010). Дата обращения: 23 июня 2024.
  10. Zhang, Changwang RSFB: a Resilient Stochastic Fair Blue algorithm against spoofing DDoS attacks (англ.). ISCIT 2009. Дата обращения: 23 июня 2024.
  11. Smart Queue Management (англ.). bufferbloat.net. Дата обращения: 3 октября 2020.
  12. OpenWrt·Traffic Shaping·SQM (англ.). OpenWrt.org. OpenWrt Project (2 января 2017). Дата обращения: 3 октября 2020.