Перегрузка сети - Network congestion

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

Сетевые протоколы, которые используют агрессивные повторные передачи для компенсации потери пакетов из-за перегрузки, могут увеличивать перегрузку даже после того, как начальная нагрузка была снижена до уровня, который обычно не вызывает перегрузки сети. Такие сети демонстрируют два стабильных состояния при одинаковом уровне нагрузки. Стабильное состояние с низкой пропускной способностью известно как застойный коллапс .

Сети используют управления перегрузкой и предотвращения перегрузки методов , чтобы попытаться избежать коллапса. К ним относятся: экспоненциальный откат в таких протоколах, как CSMA / CA в 802.11 и аналогичный CSMA / CD в исходном Ethernet , уменьшение окна в TCP и справедливое формирование очередей в таких устройствах, как маршрутизаторы и сетевые коммутаторы . Другие методы, которые решают проблему перегрузки, включают схемы приоритета, которые передают одни пакеты с более высоким приоритетом перед другими, и явное выделение сетевых ресурсов конкретным потокам посредством использования управления допуском .

Емкость сети

Сетевые ресурсы ограничены, включая время обработки маршрутизатора и пропускную способность канала . Конфликт за ресурсы может происходить в сетях при ряде общих обстоятельств. Беспроводная локальная сеть легко заполняются один персональным компьютером. Даже в быстрых компьютерных сетях магистраль может быть легко перегружена несколькими серверами и клиентскими ПК. Атаки типа «отказ в обслуживании» со стороны ботнетов способны заполнять даже самые большие магистральные сетевые каналы Интернета, создавая масштабную перегрузку сети. В телефонных сетях массовые вызовы могут привести к перегрузке цифровых телефонных сетей .

Застойный коллапс

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

К 1984 году застойный коллапс был идентифицирован как возможная проблема. Впервые он был замечен в раннем Интернете в октябре 1986 года, когда магистраль фазы I NSFnet упала на три порядка с ее пропускной способности 32 кбит / с до 40 бит / с, что продолжалось до тех пор, пока конечные узлы не начали внедрять контроль перегрузки Ван Якобсона и Салли Флойд в период с 1987 по 1988 год. Когда было отправлено больше пакетов, чем могло быть обработано промежуточными маршрутизаторами, промежуточные маршрутизаторы отбрасывали множество пакетов, ожидая, что конечные точки сети повторно передадут их. Информация. Однако ранние реализации TCP имели плохое поведение при повторной передаче. Когда произошла эта потеря пакета, конечные точки отправили дополнительные пакеты, которые повторяли потерянную информацию, удваивая входящую скорость.

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

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

Теория контроля перегрузки

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

Пусть будет скорость потока , будет пропускная способность канала и будет 1, если поток использует ссылку, и 0 в противном случае. Позвольте , и быть соответствующими векторами и матрицей. Пусть будет возрастающей, строго вогнутой функцией , называемой полезностью , которая измеряет, сколько пользы получает пользователь, передавая со скоростью . Тогда оптимальное распределение ставок удовлетворяет

такой, что

Лагранж двойного этой проблема разъединяет, так что каждый поток устанавливает свой курс, основанный только на цене сигнализируется сетью. Каждая емкость ссылки накладывает ограничение, что приводит к множителю Лагранжа , . Сумма этих множителей и есть цена, на которую реагирует поток.

Тогда контроль перегрузки становится распределенным алгоритмом оптимизации. Многие современные алгоритмы управления перегрузкой могут быть смоделированы в этой структуре, используя либо вероятность потери, либо задержку в очереди на канале связи . Основным недостатком является то, что он назначает одну и ту же цену для всех потоков, в то время как управление потоком со скользящим окном вызывает скачкообразие, которое заставляет разные потоки наблюдать разные потери или задержки в данном канале.

Классификация алгоритмов управления перегрузками

К способам классификации алгоритмов управления перегрузками относятся:

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

Смягчение

Были изобретены механизмы для предотвращения перегрузки сети или борьбы с ее коллапсом:

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

Общие механизмы предотвращения перегрузки маршрутизатора включают справедливую организацию очередей и другие алгоритмы планирования , а также случайное раннее обнаружение (RED), при котором пакеты случайно отбрасываются при обнаружении перегрузки. Это превентивно запускает конечные точки для замедления передачи до того, как произойдет коллапс перегрузки.

Некоторые сквозные протоколы разработаны и хорошо работают в условиях перегруженности; TCP - хорошо известный пример. Первые реализации TCP для обработки перегрузки были описаны в 1984 году, но включение Ван Якобсоном решения с открытым исходным кодом в стандартный дистрибутив Berkeley UNIX ( BSD ) в 1988 году впервые обеспечило хорошее поведение.

UDP не контролирует перегрузку. Протоколы, построенные на основе UDP, должны обрабатывать перегрузки независимо. Протоколы, которые передают с фиксированной скоростью, независимо от перегрузки, могут быть проблематичными. Этим свойством обладают протоколы потоковой передачи в реальном времени, включая многие протоколы передачи голоса по IP . Таким образом, необходимо принимать специальные меры, такие как качество обслуживания, чтобы пакеты не отбрасывались при перегрузке.

Практическое предотвращение перегрузки сети

Протоколы , ориентированные на установление соединения , такие как широко используемый протокол TCP , отслеживают потерю пакетов или задержку в очереди для регулировки скорости передачи. Различные процессы предотвращения перегрузки сети поддерживают разные компромиссы.

Избежание перегрузки TCP / IP

Алгоритм предотвращения перегрузки TCP является первичной основой для управления перегрузкой в сети Интернет.

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

Активное управление очередью

Активное управление очередью (AQM) - это переупорядочивание или отбрасывание сетевых пакетов внутри буфера передачи, связанного с контроллером сетевого интерфейса (NIC). Эту задачу выполняет сетевой планировщик .

Случайное раннее обнаружение

Одним из решений является использование случайного раннего обнаружения (RED) в выходной очереди сетевого оборудования. На сетевых аппаратных портах с более чем одной исходящей очередью можно использовать взвешенное случайное раннее обнаружение (WRED).

RED косвенно сигнализирует TCP отправителю и получателю, отбрасывая некоторые пакеты, например, когда средняя длина очереди превышает пороговое значение (например, 50%), и удаляет линейно или кубически больше пакетов, например, до 100%, по мере дальнейшего заполнения очереди.

Надежное раннее случайное обнаружение

Надежный случайное раннее обнаружение алгоритма (RRED) было предложено , чтобы улучшить пропускную способность TCP против отказа в обслуживании (DoS) атак, в частности низкоскоростных (ЛПС) атак отказа в обслуживании. Эксперименты подтвердили, что алгоритмы, подобные RED, были уязвимы для LDoS-атак из-за колеблющегося размера очереди TCP, вызванного атаками.

WRED на основе потока

Некоторое сетевое оборудование оснащено портами, которые могут отслеживать и измерять каждый поток и, таким образом, могут сигнализировать о потоке с слишком большой полосой пропускания в соответствии с некоторой политикой качества обслуживания. Затем политика может разделить полосу пропускания между всеми потоками по некоторым критериям.

Явное уведомление о перегрузке

Другой подход - использовать явное уведомление о перегрузке (ECN). ECN используется только тогда, когда два хоста сигнализируют о своем желании его использовать. В этом методе бит протокола используется для сигнализации явной перегрузки. Это лучше, чем косвенное уведомление о перегрузке, о котором сигнализирует потеря пакета алгоритмами RED / WRED, но для этого требуется поддержка обоих хостов.

Когда маршрутизатор получает пакет, помеченный как поддерживающий ECN, и маршрутизатор ожидает перегрузки, он устанавливает флаг ECN, уведомляя отправителя о перегрузке. Отправитель должен ответить уменьшением полосы пропускания передачи, например, уменьшением скорости передачи путем уменьшения размера окна TCP или другими способами.

Формирование окна TCP

Избежать перегрузок можно эффективно за счет уменьшения трафика. Когда приложение запрашивает большой файл, графику или веб-страницу, оно обычно объявляет окно размером от 32 до 64 КБ. Это приводит к тому, что сервер отправляет полное окно данных (при условии, что файл больше окна). Когда несколько приложений одновременно запрашивают загрузки, эти данные могут создать точку перегрузки у вышестоящего провайдера. За счет уменьшения количества оконной рекламы удаленные серверы отправляют меньше данных, что снижает перегрузку.

Обратный ECN

Обратный ECN (BECN) - еще один предлагаемый механизм уведомления о перегрузке. Он использует сообщения подавления источника ICMP в качестве механизма сигнализации IP для реализации базового механизма ECN для IP-сетей, сохраняя уведомления о перегрузке на уровне IP и не требуя согласования между конечными точками сети. Уведомления о перегрузке могут быть распространены на протоколы транспортного уровня, такие как TCP и UDP, для соответствующих корректировок.

Побочные эффекты предотвращения застойного коллапса

Радио ссылки

Протоколы, которые избегают застойного коллапса, обычно предполагают, что потеря данных вызвана перегрузкой. В проводных сетях ошибки при передаче встречаются редко. Wi-Fi , 3G и другие сети с уровнем радиосвязи подвержены потере данных из-за помех и в некоторых случаях могут иметь низкую пропускную способность. TCP-соединения, работающие на физическом уровне на основе радио, обнаруживают потерю данных и склонны ошибочно полагать, что происходит перегрузка.

Кратковременные связи

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

Входной контроль

Контроль доступа - это любая система, которая требует, чтобы устройства получали разрешение перед установкой новых сетевых подключений. Если новое соединение рискует создать перегрузку, в разрешении может быть отказано. Примеры включают возможности бесконфликтной передачи (CFTXOP) в стандарте ITU-T G.hn для домашних сетей по устаревшей проводке, протокол резервирования ресурсов для IP-сетей и протокол резервирования потоков для Ethernet .

Смотрите также

использованная литература

  • Джон Эванс; Кларенс Филсфилс (2007). Развертывание IP и MPLS QoS для мультисервисных сетей: теория и практика . Морган Кауфманн. ISBN 0-12-370549-5.
  • Салли Флойд (сентябрь 2000 г.). Принципы контроля перегрузки . RFC  2914 .
  • Джон Нэгл (6 января 1984 г.). Контроль перегрузки в IP / TCP . RFC  896 .
  • Ван Якобсон; Майкл Дж. Карелс (ноябрь 1988 г.). «Предотвращение перегрузки и контроль» (PDF) . Цитировать журнал требует |journal=( помощь )

внешние ссылки