Контроль перегрузки TCP_Основные знания_Четыре метода управления перегрузкой
Контроль перегрузки TCP_Основные знания_Четыре метода управления перегрузкой

Контроль перегрузки TCP

1. Основные понятия контроля перегрузок

  • в определенное время,нравитьсяСпрос на ресурс в сети превышает доступную часть этого ресурса.,Производительность сети ухудшится,Эта ситуация называетсяскопление 。 - компьютерная Пропускная способность канала (пропускная способность) в сети, кэш и процессор в узле коммутации и т. д. — все это сетевые ресурсы.
  • Если перегрузка возникает без контроля, пропускная способность всей сети будет снижаться по мере увеличения входной нагрузки.

2. Основные методы борьбы с перегрузками

Во-первых, давайте сравним управление потоком и управление перегрузкой.

контроль потока:кПриемная способность приемникаконтрольотправитель(исходная точка)Скорость отправки указана только для связи с конкретными одноранговыми узлами.отправительсвязанный с трафиком между получателями

скоплениеконтроль:Происхождение зависит от различных факторов,в соответствии сскоплениеконтрольалгоритмКонтролируйте скорость отправки самостоятельноглобальные проблемы,Вовлекает все хосты, маршрутизаторы и т. д. в сети.

Краткое описание: Управление потоком означает, что получатель ограничивает поток отправителя, в то время как контроль перегрузки устанавливает окно перегрузки и ограничивает отправку в зависимости от глобальной ситуации.


С точки зрения кибернетики его можно разделить на разомкнутое и замкнутое управление.

Управление с разомкнутым контуром:

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

Управление по замкнутому контуру:

  • Метод управления с обратной связью включает в себя следующие три части: - Отслеживайте, когда и где происходит перегрузка сети. - Передача информации о возникновении перегрузок туда, где можно принять меры. - Корректируйте сетевые операции для решения проблем перегрузки.

Управление с обратной связью подходит, когда характеристики трафика сети невозможно точно описать или когда сеть не обеспечивает резервирование ресурсов. Интернет использует метод управления с обратной связью.



В соответствии с формой обратной связи информации о перегрузке алгоритмы управления перегрузкой с обратной связью можно разделить на алгоритмы явной обратной связи и алгоритмы неявной обратной связи.

алгоритм отображения обратной связи:отскоплениеузел(то есть маршрутизатор)Кисходная точкаПредоставить информацию о сетископление Явная обратная связь о статусе。

алгоритм неявной обратной связи:сам источникПутем наблюдения за поведением сети(Например, чрезмерная повторная передача или время туда и обратно.RTT)чтобы сделать вывод, произошла ли сетьскопление。TCP использует алгоритм неявной обратной связи.

Контроль перегрузок — это не только проблема транспортного уровня. Алгоритмы явной обратной связи должны задействовать сетевой уровень. Хотя некоторые сетевые архитектуры (например, сети ATM) в основном реализуют контроль перегрузки на сетевом уровне, Интернет в основном использует неявную обратную связь для достижения контроля перегрузки на транспортном уровне.

3. Четыре метода управления перегрузкой TCP

Медленный старт, предотвращение перегрузок, быстрая повторная передача, быстрое восстановление

Чтобы сосредоточиться на основных принципах алгоритмов контроля перегрузок, предположим следующие условия:

1. Данные передаются в одну сторону, а в другую передается только подтверждение.

2. Получатель всегда имеет достаточно большой буфер приема, поэтому размер окна отправки отправителя определяется только степенью перегрузки сети, то есть управление потоком отправителя со стороны получателя не учитывается.

3. В качестве единицы обсуждения используйте максимальное количество сегментов сообщения TCP MSS (то есть часть полезных данных сегмента сообщения TCP), а не байты (хотя TCP предназначен для нулевого регулирования).


Для начала давайте разберемся в понятиях swnd, cwnd, rwnd.

Иллюстрация:

Размер окна отправки определяется окном приема и окном перегрузки.

Добавить порог медленного старта

(1) Алгоритм медленного старта и алгоритм предотвращения перегрузок.

Начальное окно перегрузки имеет значение cwnd=1, чтобы первоначальный объем передачи данных не был слишком большим и не вызывал перегрузку.

Предположим, что пороговое значение медленного старта ssthresh=16, то есть после того, как cwnd увеличивается до 16, алгоритм переключения является алгоритмом предотвращения перегрузки.

Процесс в начале алгоритма медленного старта: экспоненциальный рост, конец раунда передачи, то есть окончание времени RTT, cwnd меняется с 1 на 2, с 2 на 4, с 4 на 8...

Начальный процесс алгоритма предотвращения перегрузок: линейный рост, который отличается от экспоненциального роста алгоритма медленного старта. Каждый раз предотвращение перегрузок увеличивается только на +1.

Если некоторые сегменты потеряны и таймер повторной передачи истекает, окно перегрузки становится равным 1, и алгоритм медленного запуска перезапускается с порогом медленного запуска/2.

Резюме: Интуитивная диаграмма выглядит следующим образом:

Иллюстрация:

«Медленный старт» означает, что вначале в сеть вводится небольшое количество сегментов сообщений, а не то, что значение окна перегрузки cwnd увеличивается медленно. «Предотвращение перегрузки» не означает, что перегрузки можно полностью избежать, а то, что значение cwnd контролируется так, чтобы линейно расти на этапе предотвращения перегрузки, что делает сеть менее склонной к перегрузке.


(2) Алгоритм быстрой повторной передачи и алгоритм быстрого восстановления (улучшенная производительность TCP)

В чем заключается использование алгоритма быстрой повторной передачи?

  • Использование алгоритма быстрой повторной передачи позволяет отправителю как можно раньше узнать, что произошла потеря отдельных TCP-сегментов.
  • “Быстрая повторная передача”даУказывает отправителю выполнить повторную передачу как можно скорее (как можно раньше) вместо того, чтобы ждать истечения таймера повторной передачи перед повторной передачей.。 - Это требуетПолучатель неВам придется дождаться отправки данных, прежде чем выполнять дополнительное подтверждение.,идаЧтобы отправить подтверждение немедленно,Несмотря на тоПолучен нестандартный сегмент.такженемедленноОтправить ответ на полученный сегментПовторить подтверждение。 - отправитель一旦收到3непрерывный Повторить подтверждение,соответствующий сегмент сообщенияПовторить передачу сейчас,Вместо ожидания истечения таймера повторной передачи сегмента перед его повторной передачей.

Иллюстрация:

Для отдельных потерянных сегментов сообщения отправитель не будет выполнять тайм-аут и повторную передачу, поэтому он не будет ошибочно думать, что произошла перегрузка, и ошибочно не уменьшит значение окна перегрузки cwnd до 1. Практика доказала, что использование быстрой ретрансляции позволяет увеличить пропускную способность всей сети примерно на 20%.


Для чего нужен алгоритм быстрого восстановления?

  • В сочетании с алгоритмом быстрой повторной передачи используется алгоритм быстрого восстановления.,отправитель一旦收到3индивидуальный Повторить подтверждение,Я знаю, что сейчас теряются только отдельные сегменты сообщений.,Так что не запускайте алгоритм медленного старта,идаВыполнить алгоритм быстрого восстановления。 - Отправитель корректирует значение порога медленного запуска ssthresh и значение окна перегрузки cwnd до половины текущего значения cwnd и начинает выполнение алгоритма предотвращения перегрузки. - Некоторые реализации быстрого восстановления увеличивают значение cwnd в начале быстрого восстановления, то есть cwnd=new ssthresh+3. - Поскольку отправитель получил три дублированных подтверждения, это указывает на то, что три сегмента данных покинули сеть. - Эти три сегмента сообщения больше не потребляют сетевые ресурсы, а остаются в приемном буфере получателя. - Видно, что вместо накопления сегментов сообщений в сети осталось на 3 сегмента сообщений меньше, поэтому значение cwnd можно соответствующим образом увеличить.

Резюме: Интуитивная диаграмма выглядит следующим образом:

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose