Спрос на ресурс в сети превышает доступную часть этого ресурса.,Производительность сети ухудшится
,Эта ситуация называетсяскопление
。
- компьютерная Пропускная способность канала (пропускная способность) в сети, кэш и процессор в узле коммутации и т. д. — все это сетевые ресурсы.Во-первых, давайте сравним управление потоком и управление перегрузкой.
контроль потока:к
Приемная способность приемника
контрольотправитель(исходная точка)Скорость отправки указана только для связи с конкретными одноранговыми узлами.отправительсвязанный с трафиком между получателямископлениеконтроль:
Происхождение зависит от различных факторов
,в соответствии сскоплениеконтрольалгоритмКонтролируйте скорость отправки самостоятельно
глобальные проблемы,Вовлекает все хосты, маршрутизаторы и т. д. в сети.Краткое описание: Управление потоком означает, что получатель ограничивает поток отправителя, в то время как контроль перегрузки устанавливает окно перегрузки и ограничивает отправку в зависимости от глобальной ситуации.
С точки зрения кибернетики его можно разделить на разомкнутое и замкнутое управление.
Управление с разомкнутым контуром:
Управление по замкнутому контуру:
Управление с обратной связью подходит, когда характеристики трафика сети невозможно точно описать или когда сеть не обеспечивает резервирование ресурсов. Интернет использует метод управления с обратной связью.
В соответствии с формой обратной связи информации о перегрузке алгоритмы управления перегрузкой с обратной связью можно разделить на алгоритмы явной обратной связи и алгоритмы неявной обратной связи.
алгоритм отображения обратной связи:отскоплениеузел(то есть маршрутизатор)Кисходная точка
Предоставить информацию о сетископление Явная обратная связь о статусе。
алгоритм неявной обратной связи:сам источник
Путем наблюдения за поведением сети(Например, чрезмерная повторная передача или время туда и обратно.RTT)чтобы сделать вывод, произошла ли сетьскопление。TCP использует алгоритм неявной обратной связи.
。
Контроль перегрузок — это не только проблема транспортного уровня. Алгоритмы явной обратной связи должны задействовать сетевой уровень. Хотя некоторые сетевые архитектуры (например, сети ATM) в основном реализуют контроль перегрузки на сетевом уровне, Интернет в основном использует неявную обратную связь для достижения контроля перегрузки на транспортном уровне.
Медленный старт, предотвращение перегрузок, быстрая повторная передача, быстрое восстановление
Чтобы сосредоточиться на основных принципах алгоритмов контроля перегрузок, предположим следующие условия:
1. Данные передаются в одну сторону, а в другую передается только подтверждение.
2. Получатель всегда имеет достаточно большой буфер приема, поэтому размер окна отправки отправителя определяется только степенью перегрузки сети, то есть управление потоком отправителя со стороны получателя не учитывается.
3. В качестве единицы обсуждения используйте максимальное количество сегментов сообщения TCP MSS (то есть часть полезных данных сегмента сообщения TCP), а не байты (хотя TCP предназначен для нулевого регулирования).
Для начала давайте разберемся в понятиях swnd, cwnd, rwnd.
Иллюстрация:
Размер окна отправки определяется окном приема и окном перегрузки. |
---|
Добавить порог медленного старта
Начальное окно перегрузки имеет значение cwnd=1, чтобы первоначальный объем передачи данных не был слишком большим и не вызывал перегрузку.
Предположим, что пороговое значение медленного старта ssthresh=16, то есть после того, как cwnd увеличивается до 16, алгоритм переключения является алгоритмом предотвращения перегрузки.
Процесс в начале алгоритма медленного старта: экспоненциальный рост, конец раунда передачи, то есть окончание времени RTT, cwnd меняется с 1 на 2, с 2 на 4, с 4 на 8...
Начальный процесс алгоритма предотвращения перегрузок: линейный рост, который отличается от экспоненциального роста алгоритма медленного старта. Каждый раз предотвращение перегрузок увеличивается только на +1.
Если некоторые сегменты потеряны и таймер повторной передачи истекает, окно перегрузки становится равным 1, и алгоритм медленного запуска перезапускается с порогом медленного запуска/2.
Резюме: Интуитивная диаграмма выглядит следующим образом:
Иллюстрация:
«Медленный старт» означает, что вначале в сеть вводится небольшое количество сегментов сообщений, а не то, что значение окна перегрузки cwnd увеличивается медленно. «Предотвращение перегрузки» не означает, что перегрузки можно полностью избежать, а то, что значение cwnd контролируется так, чтобы линейно расти на этапе предотвращения перегрузки, что делает сеть менее склонной к перегрузке.
В чем заключается использование алгоритма быстрой повторной передачи?
Указывает отправителю выполнить повторную передачу как можно скорее (как можно раньше) вместо того, чтобы ждать истечения таймера повторной передачи перед повторной передачей.
。
- Это требуетПолучатель не
Вам придется дождаться отправки данных, прежде чем выполнять дополнительное подтверждение.,идаЧтобы отправить подтверждение немедленно
,Несмотря на тоПолучен нестандартный сегмент.
такженемедленно
Отправить ответ на полученный сегментПовторить подтверждение
。
- отправитель
一旦收到3непрерывный Повторить подтверждение
,соответствующий сегмент сообщенияПовторить передачу сейчас
,Вместо ожидания истечения таймера повторной передачи сегмента перед его повторной передачей.Иллюстрация:
Для отдельных потерянных сегментов сообщения отправитель не будет выполнять тайм-аут и повторную передачу, поэтому он не будет ошибочно думать, что произошла перегрузка, и ошибочно не уменьшит значение окна перегрузки cwnd до 1. Практика доказала, что использование быстрой ретрансляции позволяет увеличить пропускную способность всей сети примерно на 20%. |
---|
Для чего нужен алгоритм быстрого восстановления?
收到3индивидуальный Повторить подтверждение
,Я знаю, что сейчас теряются только отдельные сегменты сообщений.,Так что не запускайте алгоритм медленного старта,идаВыполнить алгоритм быстрого восстановления
。
- Отправитель корректирует значение порога медленного запуска ssthresh и значение окна перегрузки cwnd до половины текущего значения cwnd и начинает выполнение алгоритма предотвращения перегрузки.
- Некоторые реализации быстрого восстановления увеличивают значение cwnd в начале быстрого восстановления, то есть cwnd=new ssthresh+3.
- Поскольку отправитель получил три дублированных подтверждения, это указывает на то, что три сегмента данных покинули сеть.
- Эти три сегмента сообщения больше не потребляют сетевые ресурсы, а остаются в приемном буфере получателя.
- Видно, что вместо накопления сегментов сообщений в сети осталось на 3 сегмента сообщений меньше, поэтому значение cwnd можно соответствующим образом увеличить.Резюме: Интуитивная диаграмма выглядит следующим образом: