Введение

Алгоритм управления с обратной связью, используемый в управлении перегрузками
Алгоритм аддитивного увеличения/мультипликативного уменьшения (AIMD) — это алгоритм управления с обратной связью, наиболее известный своим применением в управлении перегрузками TCP. AIMD сочетает в себе линейное увеличение окна перегрузки при отсутствии перегрузок и экспоненциальное уменьшение при обнаружении перегрузок. Множественные потоки, использующие управление перегрузками AIMD, в конечном итоге приходят к равному использованию общего канала связи. Связанные схемы мультипликативного увеличения/мультипликативного уменьшения (MIMD) и аддитивного увеличения/аддитивного уменьшения (AIAD) не достигают стабильности.

Алгоритм

Принимаемый подход заключается в увеличении скорости передачи (размер окна), поиске доступной полосы пропускания до возникновения потерь. Политика аддитивного увеличения может, например, увеличивать окно перегрузки на фиксированную величину с каждым временем кругового обхода. При обнаружении перегрузки передатчик уменьшает скорость передачи на мультипликативный коэффициент; например, уменьшает окно перегрузки вдвое после потери. В результате получается поведение, напоминающее пилу, отражающее процесс исследования полосы пропускания. AIMD требует бинарного сигнала о перегрузке. Чаще всего в качестве сигнала выступает потеря пакетов; мультипликативное уменьшение инициируется при истечении времени ожидания или когда сообщение подтверждения указывает на потерю пакета. Также сетевые коммутаторы и маршрутизаторы могут сигнализировать о перегрузке (без отбрасывания пакетов), как, например, в механизме явного уведомления о перегрузке (ECN).

Математическая формула

Пусть `w` – размер окна перегрузки, указывающий объем данных в процессе передачи в течение временного слота `t`, `α` – параметр аддитивного увеличения, а `β` – коэффициент мультипликативного уменьшения. В TCP после медленного старта параметр аддитивного увеличения `α` обычно равен одному MSS (максимальному размеру сегмента) за время кругового обхода, а коэффициент мультипликативного уменьшения `β` обычно равен 1/2.