Аддитивное увеличение/мультипликативное уменьшение

Алгоритм управления с обратной связью, используемый при контроле перегрузки

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

Алгоритм

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

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

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

Пусть — размер окна перегрузки , указывающий объем данных, передаваемых в течение временного интервала , ( ) — параметр аддитивного увеличения, а ( ) — коэффициент мультипликативного уменьшения. ж ( т ) {\displaystyle w(т)} т {\displaystyle т} а {\displaystyle а} а > 0 {\displaystyle а>0} б {\displaystyle б} 0 < б < 1 {\displaystyle 0<b<1}

ж ( т + 1 ) = { ж ( т ) + а  если затор не обнаружен ж ( т ) × б  если обнаружена перегрузка {\displaystyle w(t+1)={\begin{cases}w(t)+a&{\text{ если перегрузка не обнаружена}}\\w(t)\times b&{\text{ если перегрузка обнаружена}}\end{cases}}}

В TCP после медленного старта параметр аддитивного увеличения обычно составляет один MSS ( максимальный размер сегмента ) за время приема-передачи , а коэффициент мультипликативного уменьшения обычно составляет 1/2. а {\displaystyle а} б {\displaystyle б}

Протоколы

Предотвращение перегрузок AIMD используется или использовалось в:

В природе

Было обнаружено, что AIMD используется различными биологическими системами , включая поддержание гомеостаза размера клеток , а также для синаптического обучения и адаптации в нейронных цепях . [3]

Ссылки

  1. ^ abc Chiu, Dah-Ming; Raj Jain (1989). «Анализ алгоритмов увеличения и уменьшения для предотвращения перегрузки в компьютерных сетях». Компьютерные сети и системы ISDN . 17 : 1– 14. doi :10.1016/0169-7552(89)90019-6.
  2. ^ Флойд; Колер (март 2006 г.). Профиль для протокола управления перегрузкой датаграмм (DCCP) Идентификатор управления перегрузкой 2: управление перегрузкой по типу TCP. doi : 10.17487/RFC4341 . RFC 4341.
  3. ^ Suen, Jonathan Y.; Navlakha, Saket (2022). «Принцип управления с обратной связью, общий для нескольких биологических и инженерных систем». Journal of the Royal Society Interface . 19 (188): 20210711. doi : 10.1098/rsif.2021.0711. PMC 8889180. PMID  35232277. 
Получено с "https://en.wikipedia.org/w/index.php?title=Добавочное_увеличение/мультипликативное_уменьшение&oldid=1259604343"