Алгоритм аддитивного увеличения/мультипликативного уменьшения ( AIMD ) — это алгоритм управления с обратной связью, наиболее известный по его использованию в управлении перегрузкой TCP . AIMD сочетает линейный рост окна перегрузки при отсутствии перегрузки с экспоненциальным уменьшением при обнаружении перегрузки. Несколько потоков, использующих управление перегрузкой AIMD, в конечном итоге сойдутся к равному использованию общего канала. [1] Связанные схемы мультипликативного увеличения/мультипликативного уменьшения (MIMD) и аддитивного увеличения/аддитивного уменьшения (AIAD) не достигают устойчивости .
Применяемый подход заключается в увеличении скорости передачи (размера окна), зондировании используемой полосы пропускания до тех пор, пока не произойдет потеря. Политика аддитивного увеличения может, например, увеличивать окно перегрузки на фиксированную величину каждый раз, когда происходит круговая передача . При обнаружении перегрузки передатчик уменьшает скорость передачи на мультипликативный коэффициент; например, сокращает окно перегрузки вдвое после потери. Результатом является пилообразное поведение, которое представляет собой процесс зондирования полосы пропускания.
AIMD требует двоичного сигнала перегрузки. Чаще всего сигналом служит потеря пакета; мультипликативное уменьшение запускается, когда тайм-аут или сообщение подтверждения указывают на потерю пакета. Также возможно, чтобы внутрисетевые коммутаторы/маршрутизаторы отмечали перегрузку (без отбрасывания пакетов), как в явном уведомлении о перегрузке (ECN).
Пусть — размер окна перегрузки , указывающий объем данных, передаваемых в течение временного интервала , ( ) — параметр аддитивного увеличения, а ( ) — коэффициент мультипликативного уменьшения.
В TCP после медленного старта параметр аддитивного увеличения обычно составляет один MSS ( максимальный размер сегмента ) за время приема-передачи , а коэффициент мультипликативного уменьшения обычно составляет 1/2.
Предотвращение перегрузок AIMD используется или использовалось в:
Было обнаружено, что AIMD используется различными биологическими системами , включая поддержание гомеостаза размера клеток , а также для синаптического обучения и адаптации в нейронных цепях . [3]