Принципы управления перегрузками
Управление перегрузками регулирует скорость, с которой отправители вводят данные в общую сеть, так что совокупный спрос остается близким к пропускной способности, избегая коллапса перегрузки, который происходит, когда предлагаемая нагрузка превышает способность сети доставлять ее.
Definition
Управление перегрузками — это набор механизмов, с помощью которых отправители регулируют свои скорости передачи в ответ на сигналы перегрузки сети, чтобы поддерживать совокупную нагрузку близкой к пропускной способности сети, справедливо распределяя ее между конкурирующими потоками.
Scope
Эта тема охватывает принципы и практику управления перегрузками: различие между управлением перегрузками и управлением потоком, причины и издержки перегрузки, подходы «от конца к концу» (end-to-end) по сравнению с подходами с сетевой поддержкой, динамика аддитивного увеличения/мультипликативного уменьшения (AIMD) и ее свойства справедливости и стабильности, а также конкретные алгоритмы TCP — медленный старт, предотвращение перегрузок, быстрое восстановление — вместе с ролью явного уведомления о перегрузке и существованием альтернативных алгоритмов. Исключаются механизмы надежности для каждого соединения, которые касаются восстановления потерь, а не перегрузки сети.
Core questions
- Чем управление перегрузками отличается от управления потоком?
- Что вызывает перегрузку и что такое коллапс перегрузки?
- Что такое динамика AIMD и почему она приводит к справедливости и стабильности?
- Как работают фазы медленного старта, предотвращения перегрузок и быстрого восстановления TCP?
- Как сигналы «от конца к концу» (потери/задержки) соотносятся с сигналами с сетевой поддержкой, такими как ECN?
Key concepts
- управление перегрузками против управления потоком
- коллапс перегрузки
- аддитивное увеличение/мультипликативное уменьшение (AIMD)
- медленный старт
- предотвращение перегрузок
- быстрая повторная передача и быстрое восстановление
- окно перегрузки
- явное уведомление о перегрузке (ECN)
- справедливость и эффективность
Key theories
- Аддитивное увеличение, мультипликативное уменьшение (AIMD)
- Линейное увеличение окна отправки при отсутствии перегрузки и его уменьшение вдвое при сигнале перегрузки приводит конкурирующие потоки к равному, эффективному распределению пропускной способности; анализ показывает, что AIMD сходится к справедливости и эффективности, поэтому TCP его использует.
- Фазы управления перегрузками TCP
- TCP исследует пропускную способность с экспоненциальным медленным стартом, переключается на линейное предотвращение перегрузок вблизи расчетной пропускной способности и использует быструю повторную передачу/быстрое восстановление для реакции на изолированные потери без перезапуска, выводя о перегрузке в основном по потере пакетов.
- Предотвращение коллапса перегрузки
- Без контроля скорости повторные передачи во время перегрузки могут привести сеть к коллапсу перегрузки, при котором пропускная способность резко падает; введение предотвращения перегрузок в конце 1980-х годов спасло Интернет от повторяющихся коллапсов.
Clinical relevance
Управление перегрузками обеспечивает работоспособность общего Интернета при высокой нагрузке: оно предотвращает системный коллапс с конца 1980-х годов и постоянно балансирует пропускную способность, задержку и справедливость для миллиардов потоков. Его дизайн напрямую влияет на скорость загрузки, качество потокового видео и производительность центров обработки данных, а активные исследования алгоритмов, таких как CUBIC и BBR, а также управление очередями с низкой задержкой продолжают совершенствовать этот баланс.
History
После серии коллапсов перегрузки в раннем Интернете в 1986-1987 годах работа Вана Джейкобсона 1988 года представила медленный старт и предотвращение перегрузок, заложив основы современного управления перегрузками TCP. Анализ Чиу и Джейна 1989 года объяснил, почему AIMD обеспечивает справедливость и эффективность. Последующие десятилетия привели к появлению вариантов, таких как Reno, NewReno, CUBIC и модель-ориентированный BBR, а также механизмов на стороне маршрутизатора, таких как RED и ECN.
Debates
- Управление перегрузками на основе потерь против управления на основе задержек и моделей
- TCP на основе потерь реагирует только при переполнении буферов, что может вызывать высокую задержку (bufferbloat) и недостаточное использование быстрых дальних каналов, что мотивирует схемы на основе задержек и моделей, такие как BBR; дебаты сосредоточены на справедливости, когда они сосуществуют с традиционными потоками на основе потерь.
Key figures
- Van Jacobson
- Dah-Ming Chiu
- Raj Jain
- Sally Floyd
Related topics
Seminal works
- jacobson1988
- chiu1989
- kurose2021
Frequently asked questions
- В чем разница между управлением потоком и управлением перегрузками?
- Управление потоком защищает получателя: оно не позволяет быстрому отправителю переполнить буфер медленного получателя. Управление перегрузками защищает сеть: оно не позволяет отправителям коллективно перегружать маршрутизаторы и каналы между ними. TCP выполняет обе функции, используя окно приема для управления потоком и окно перегрузки для управления перегрузками.
- Почему TCP замедляется при обнаружении потери пакетов?
- Потеря является основным сигналом TCP о том, что сеть перегружена. Резко уменьшая скорость отправки при потере и постепенно увеличивая ее в противном случае, TCP отступает, когда сеть перегружена, и исследует свободную пропускную способность, когда она не перегружена, что поддерживает совокупный трафик близким к пропускной способности и примерно справедливо распределяет полосу пропускания.