Сетевая перегрузка в сетях передачи данных и теории очередей - это снижение качества обслуживания, которое происходит, когда сетевой узел или канал передает больше данных, чем он может обработать. Типичные эффекты включают задержку постановки в очередь , потерю пакетов или блокировку новых соединений. Следствием перегрузки является то, что постепенное увеличение предлагаемой нагрузки приводит либо к небольшому увеличению, либо даже к снижению пропускной способности сети . [1]
Сетевые протоколы, которые используют агрессивные повторные передачи для компенсации потери пакетов из-за перегрузки, могут увеличивать перегрузку даже после того, как начальная нагрузка была снижена до уровня, который обычно не вызывает перегрузки сети. Такие сети демонстрируют два стабильных состояния при одинаковом уровне нагрузки. Стабильное состояние с низкой пропускной способностью известно как застойный коллапс .
Сети используют управления перегрузкой и предотвращения перегрузки методов , чтобы попытаться избежать коллапса. К ним относятся: экспоненциальный откат в таких протоколах, как CSMA / CA в 802.11 и аналогичный CSMA / CD в исходном Ethernet , уменьшение окна в TCP и справедливое формирование очередей в таких устройствах, как маршрутизаторы и сетевые коммутаторы . Другие методы, которые решают проблему перегрузки, включают схемы приоритета, которые передают одни пакеты с более высоким приоритетом перед другими, и явное выделение сетевых ресурсов конкретным потокам посредством использования управления допуском .
Емкость сети
Сетевые ресурсы ограничены, включая время обработки маршрутизатора и пропускную способность канала . Конкуренция за ресурсы может происходить в сетях при ряде общих обстоятельств. Беспроводная локальная сеть легко заполняются один персональным компьютером. [2] Даже в быстрых компьютерных сетях магистраль может быть легко перегружена несколькими серверами и клиентскими ПК. Атаки типа «отказ в обслуживании» со стороны ботнетов способны заполнять даже самые крупные магистральные сетевые каналы Интернета, создавая масштабную перегрузку сети. В телефонных сетях массовые вызовы могут привести к перегрузке цифровых телефонных сетей .
Застойный коллапс
Застойный коллапс (или застойный коллапс) - это состояние, при котором застой препятствует или ограничивает полезное общение. Коллапс перегрузки обычно происходит в узких местах сети, где входящий трафик превышает исходящую пропускную способность. Точки соединения между локальной сетью и глобальной сетью являются общими узкими местами. Когда сеть находится в этом состоянии, она переходит в стабильное состояние, когда потребность в трафике высока, но доступна небольшая полезная пропускная способность, во время которого происходят задержки и потери пакетов, а качество обслуживания крайне низкое.
К 1984 году застойный коллапс был идентифицирован как возможная проблема. [3] Впервые он был замечен в раннем Интернете в октябре 1986 года [4], когда магистральная сеть фазы I NSFnet упала на три порядка с ее пропускной способности 32 кбит / с до 40 бит / с, [ править ] , которые продолжались до тех пор , конечные узлы не приступили к реализации Ван Якобсона и Салли Floyd «ы контроль перегрузки между 1987 и 1988 [5] Когда больше пакетов были отправлены , чем может быть обработано с помощью промежуточных маршрутизаторов, промежуточные маршрутизаторы выкинутые много пакетов, ожидая, что конечные точки сети повторно передадут информацию. Однако ранние реализации TCP имели плохое поведение при повторной передаче. Когда произошла эта потеря пакета, конечные точки отправили дополнительные пакеты, которые повторяли потерянную информацию, удваивая входящую скорость.
Контроль перегрузки
Контроль перегрузки модулирует вход трафика в телекоммуникационную сеть, чтобы избежать перегрузки в результате переподписки. Обычно это достигается за счет уменьшения скорости передачи пакетов. В то время как управление перегрузкой предотвращает перегрузку сети отправителями , управление потоком не позволяет отправителю перегрузить получателя .
Теория контроля перегрузки
Теория управления перегрузками была впервые предложена Фрэнком Келли , который применил микроэкономическую теорию и теорию выпуклой оптимизации, чтобы описать, как люди, контролирующие свои собственные ставки, могут взаимодействовать для достижения оптимального распределения ставок в масштабах сети. Примерами оптимального распределения скорости являются максимальное и минимальное справедливое распределение и предложение Келли о пропорционально справедливом распределении, хотя возможны многие другие.
Позволять быть скоростью потока , быть емкостью ссылки , а также быть 1, если поток использует ссылку и 0 в противном случае. Позволять, а также - соответствующие векторы и матрица. Позволятьбыть возрастающей, строго вогнутой функцией , называемой утилитой , которая измеряет, сколько пользы получает пользователь, передавая со скоростью. Тогда оптимальное распределение ставок удовлетворяет
- такой, что
Лагранж двойного этой проблема разъединяет, так что каждый поток устанавливает свой курс, основанный только на цене сигнализируется сетью. Пропускная способность каждого канала накладывает ограничение, которое приводит к множителю Лагранжа ,. Сумма этих множителей, цена, на которую реагирует поток.
Тогда контроль перегрузки становится распределенным алгоритмом оптимизации. Многие современные алгоритмы управления перегрузкой могут быть смоделированы в этой структуре с вероятность потери или задержка в очереди на ссылке . Основным недостатком является то, что он назначает одну и ту же цену для всех потоков, в то время как управление потоком со скользящим окном вызывает скачкообразие, которое заставляет разные потоки наблюдать разные потери или задержки в данном канале.
Классификация алгоритмов управления перегрузками
К способам классификации алгоритмов управления перегрузками относятся:
- По типу и количеству полученных отзывов от сети: Убыток; задерживать; однобитовые или многобитовые явные сигналы
- За счет инкрементального развертывания: модификация требует только отправителя; отправитель и получатель нуждаются в модификации; доработка требует только роутер; отправитель, получатель и маршрутизаторы нуждаются в модификации.
- По характеристикам: продуктовые сети с высокой пропускной способностью и задержкой; ссылки с потерями; справедливость; преимущество перед короткими потоками; ссылки с переменной ставкой
- По критерию справедливости: Макс-мин честность; пропорционально справедливый; контролируемая задержка
Смягчение
Были изобретены механизмы для предотвращения перегрузки сети или борьбы с ее коллапсом:
- Сетевой планировщик - активное управление очередью, которое переупорядочивает или выборочно отбрасывает сетевые пакеты при наличии перегрузки.
- Явное уведомление о перегрузке - расширение протоколов связи IP и TCP, которое добавляет механизм управления потоком.
- Контроль перегрузки TCP - различные реализации усилий по борьбе с перегрузкой сети
Правильное поведение конечной точки обычно состоит в том, чтобы повторять потерянную информацию, но постепенно снижать частоту повторения. Если все конечные точки делают это, перегрузка снимается, и сеть возобновляет нормальное поведение. [ необходима цитата ] Другие стратегии, такие как медленный старт, гарантируют, что новые соединения не перегружают маршрутизатор до того, как начнется обнаружение перегрузки.
Общие механизмы предотвращения перегрузки маршрутизатора включают справедливую организацию очередей и другие алгоритмы планирования , а также случайное раннее обнаружение (RED), при котором пакеты случайно отбрасываются при обнаружении перегрузки. Это превентивно запускает конечные точки для замедления передачи до того, как произойдет коллапс перегрузки.
Некоторые сквозные протоколы разработаны и хорошо работают в условиях перегруженности; TCP - хорошо известный пример. Первые реализации TCP для обработки перегрузки были описаны в 1984 г. [6], но включение Ван Якобсоном решения с открытым исходным кодом в стандартный дистрибутив Berkeley UNIX (« BSD ») в 1988 г. впервые обеспечило хорошее поведение.
UDP не контролирует перегрузку. Протоколы, построенные на основе UDP, должны обрабатывать перегрузки независимо. Протоколы, которые передают с фиксированной скоростью, независимо от перегрузки, могут быть проблематичными. Этим свойством обладают протоколы потоковой передачи в реальном времени, включая многие протоколы передачи голоса по IP . Таким образом, необходимо принимать специальные меры, такие как качество обслуживания , чтобы пакеты не отбрасывались при перегрузке.
Практическое предотвращение перегрузки сети
Протоколы , ориентированные на установление соединения , такие как широко используемый протокол TCP , отслеживают потерю пакетов или задержку в очереди для регулировки скорости передачи. Различные процессы предотвращения перегрузки сети поддерживают разные компромиссы. [7]
Избежание перегрузки TCP / IP
Алгоритм предотвращения перегрузки TCP является основной базой для управления перегрузками в сети Интернет. [8] [9] [10] [11] [12]
Проблемы возникают, когда параллельные потоки TCP испытывают отбрасывание хвоста , особенно при наличии буферного разряда . Эта отложенная потеря пакетов мешает автоматическому предотвращению перегрузки TCP. Все потоки, которые испытывают эту потерю пакетов, начинают повторное обучение TCP в один и тот же момент - это называется глобальной синхронизацией TCP .
Активное управление очередью
Активное управление очередью (AQM) - это переупорядочивание или отбрасывание сетевых пакетов внутри буфера передачи, связанного с контроллером сетевого интерфейса (NIC). Эту задачу выполняет сетевой планировщик .
Случайное раннее обнаружение
Одним из решений является использование случайного раннего обнаружения (RED) в выходной очереди сетевого оборудования. [13] [14] На сетевых аппаратных портах с более чем одной исходящей очередью можно использовать взвешенное случайное раннее обнаружение (WRED).
КРАСНЫЙ косвенно сигнализирует TCP отправителю и получателю, отбрасывая некоторые пакеты, например, когда средняя длина очереди превышает пороговое значение (например, 50%), и удаляет линейно или кубически больше пакетов, [15] , например, до 100%, по мере того, как очередь заполняется дальше. .
Надежное раннее случайное обнаружение
Надежный случайное раннее обнаружение алгоритма (RRED) было предложено , чтобы улучшить пропускную способность TCP против отказа в обслуживании (DoS) атак, в частности низкоскоростных (ЛПС) атак отказа в обслуживании. Эксперименты подтвердили, что алгоритмы, подобные RED, были уязвимы для LDoS-атак из-за колеблющегося размера очереди TCP, вызванного атаками. [16]
WRED на основе потока
Некоторое сетевое оборудование оснащено портами, которые могут отслеживать и измерять каждый поток и, таким образом, могут сигнализировать о потоке с слишком большой полосой пропускания в соответствии с определенной политикой качества обслуживания. Затем политика может разделить полосу пропускания между всеми потоками по некоторым критериям. [17]
Явное уведомление о перегрузке
Другой подход - использовать явное уведомление о перегрузке (ECN). [18] ECN используется только тогда, когда два хоста сигнализируют о своем желании его использовать. В этом методе бит протокола используется для сигнализации явной перегрузки. Это лучше, чем косвенное уведомление о перегрузке, о котором сигнализирует потеря пакета алгоритмами RED / WRED, но для этого требуется поддержка обоих хостов. [19] [13]
Когда маршрутизатор получает пакет, помеченный как поддерживающий ECN, и маршрутизатор ожидает перегрузки, он устанавливает флаг ECN, уведомляя отправителя о перегрузке. Отправитель должен ответить уменьшением полосы пропускания передачи, например, уменьшением скорости передачи путем уменьшения размера окна TCP или другими способами.
Формирование окна TCP
Избегать перегрузок можно эффективно за счет сокращения трафика. Когда приложение запрашивает большой файл, графику или веб-страницу, оно обычно объявляет окно размером от 32 КБ до 64 КБ. Это приводит к тому, что сервер отправляет полное окно данных (при условии, что файл больше окна). Когда несколько приложений одновременно запрашивают загрузки, эти данные могут создать точку перегрузки у вышестоящего провайдера. За счет уменьшения количества оконной рекламы удаленные серверы отправляют меньше данных, что снижает перегрузку. [20] [21]
Обратный ECN
Обратный ECN (BECN) - еще один предлагаемый механизм уведомления о перегрузке. Он использует сообщения подавления источника ICMP в качестве механизма сигнализации IP для реализации базового механизма ECN для IP-сетей, сохраняя уведомления о перегрузке на уровне IP и не требуя согласования между конечными точками сети. Уведомления о перегрузке могут быть распространены на протоколы транспортного уровня, такие как TCP и UDP, для соответствующих корректировок. [22]
Побочные эффекты предотвращения застойного коллапса
Радио ссылки
Протоколы, которые избегают застойного коллапса, обычно предполагают, что потеря данных вызвана перегрузкой. В проводных сетях ошибки при передаче встречаются редко. Wi-Fi , 3G и другие сети с уровнем радиосвязи подвержены потере данных из-за помех и в некоторых случаях могут иметь низкую пропускную способность. TCP-соединения, работающие на физическом уровне на основе радио, обнаруживают потерю данных и склонны ошибочно полагать, что происходит перегрузка.
Кратковременные связи
Протокол медленного старта плохо работает при коротких соединениях. Старые веб-браузеры создавали много недолговечных соединений и открывали и закрывали соединение для каждого файла. Это оставило большинство соединений в режиме медленного старта. Первоначальная производительность может быть низкой, и многие соединения никогда не выходят из режима медленного запуска, что значительно увеличивает задержку. Чтобы избежать этой проблемы, современные браузеры либо открывают несколько соединений одновременно, либо повторно используют одно соединение для всех файлов, запрашиваемых с определенного сервера.
Входной контроль
Для управления доступом требуется, чтобы устройства получали разрешение перед установкой новых сетевых подключений. Если новое соединение рискует создать перегрузку, в разрешении может быть отказано. Одним из примеров этого является использование возможностей бесконфликтной передачи (CFTXOP) в стандарте ITU-T G.hn , который обеспечивает высокоскоростную (до 1 Гбит / с) локальную сеть по разным проводам (линии электропередач, телефонная связь). линии и коаксиальные кабели).
Смотрите также
- Управление пропускной способностью - процесс измерения и управления связью по сетевому каналу, чтобы избежать переполнения канала или переполнения канала.
- Bufferbloat - перегрузка, вызванная чрезмерной буферизацией пакетов
- Каскадный отказ - системный риск отказа
- Замена дросселя
- Эрланг (единица)
- Макс-мин честность
- Синдром ученика чародея - ошибка сетевого протокола в исходных версиях TFTP.
- Контроль перегрузки TCP - методы повышения производительности сети по протоколу управления передачей
- Инженерия телетрафика
- Разбивка - компьютер постоянно обменивается данными между памятью и хранилищем, оставляя мало возможностей для производительной обработки.
- Формирование трафика - техника управления пропускной способностью
- Надежность (компьютерные сети)
Рекомендации
- ^ (Аль-Бахадили, 2012, с. 282) Аль-Бахадили, Х. (2012). Имитационное моделирование при проектировании и моделировании компьютерных сетей: Использование и анализ . Херши, Пенсильвания: IGI Global.
- ^ den Hartog, F., Raschella, A., Bouhafs, F., Kempker, P., Boltjes, B., & Seyedebrahimi, M. (2017, ноябрь). Путь к разрешению Wi-Fi Tragedy of the Commons в многоквартирных домах . В 2017 году 27-я Международная конференция по телекоммуникационным сетям и приложениям (ITNAC) (стр. 1-6). IEEE.
- ^ RFC 896
- ^ Падение, КР; Стивенс, WR (2011). Иллюстрированный TCP / IP, Том 1: Протоколы (2-е изд.). Pearson Education. п. 739. ISBN 9780132808187.
- ^ Хафнер, Кэти. «Салли Флойд, которая помогала вещам работать гладко в Интернете, умерла в возрасте 69 лет» . Нью-Йорк Таймс . Дата обращения 5 сентября 2019 .
- ^ Винтон Дж. Серф; Роберт Э. Кан (май 1974 г.). «Протокол межсетевого взаимодействия в пакетной сети» (PDF) . Транзакции IEEE по коммуникациям . 22 (5): 637–648. DOI : 10.1109 / tcom.1974.1092259 . Архивировано из оригинального (PDF) 4 марта 2016 года.
- ^ Ли, ВР; Балан, РК; Jacob, L .; Seah, WKG; Ананда, А.Л. (2000), «Туннели TCP: предотвращение коллапса перегрузки», Труды 25-й ежегодной конференции IEEE по локальным компьютерным сетям. LCN 2000 . С. 408-417, DOI : 10,1109 / LCN.2000.891077 , ISBN 0-7695-0912-6, S2CID 34447400
- ^ Ван Якобсон , Майкл Дж. Карелс . Предотвращение перегрузки и контроль (1988). Труды симпозиума Sigcomm '88 , том 18 (4): стр. 314–329. Стэнфорд, Калифорния. Август 1988 г. В этой статье были созданы многие алгоритмы предотвращения перегрузки, используемые в TCP / IP.
- ^ RFC 2001 - Медленный запуск TCP, предотвращение перегрузки, быстрая повторная передача и алгоритмы быстрого восстановления
- ^ RFC 2581 - Контроль перегрузки TCP
- ^ RFC 3390 - TCP, увеличивающее начальное окно TCP
- ^ Избежание перегрузки TCP, объясненное с помощью диаграммы последовательности
- ^ a b Салли Флойд: RED (случайное раннее обнаружение) Управление очередью
- ^ Салли Флойд, Ван Якобсон. Шлюзы случайного раннего обнаружения для предотвращения перегрузки (1993). IEEE / ACM Transactions on Networking , vol.1 (4): pp.397–413. Изобретены шлюзы случайного раннего обнаружения (RED).
- ^ Аналитическая конструкция функции RED, гарантирующая стабильное поведение системы , CiteSeerX 10.1.1.105.5995 ,
... Преимущество этой функции заключается не только в предотвращении сильных колебаний, но и в недопущении недостаточного использования канала при низких нагрузках. Применимость производной функции не зависит от диапазона нагрузки, никакие параметры не подлежат настройке. По сравнению с исходной линейной функцией капель применимость значительно расширилась ... Наш пример с реалистичными параметрами системы дает аппроксимирующую функцию кубического размера очереди ...
- ^ Чжан, Чангван; Инь, Цзяньпин; Цай, Чжипин; Чен, Вэйфэн (2010). «RRED: надежный алгоритм RED для противодействия низкоскоростным атакам типа« отказ в обслуживании »» (PDF) . Письма связи IEEE . IEEE . 14 (5): 489–491. DOI : 10,1109 / LCOMM.2010.05.091407 . S2CID 1121461 .
- ^ «Обзор предотвращения перегрузки» . Cisco Systems . Проверено 7 августа 2020 .
- ^ RFC 3168 - Добавление явного уведомления о перегрузке (ECN) в IP
- ^ Сравнительное исследование RED, ECN и контроля скорости TCP (1999)
- ^ Generalized Window Advertising for TCP CongestionControl (PDF) , получено 13 ноября 2020 г.
- ^ Pop, O .; Moldován, I .; Simon, Cs .; Bíró, J .; Koike, A .; Ишии, Х. (2000), "Окно Рекламируемый- на основе протокола TCP Управление потоком в маршрутизаторах", телекоммуникационная сеть разведки , стр 197-218,. DOI : 10.1007 / 978-0-387-35522-1_12 , ISBN 978-1-4757-6693-6
- ^ Предложение по обратной ECN для интернет-протокола
- «Развертывание IP и MPLS QoS для мультисервисных сетей: теория и практика» Джона Эванса, Кларенса Филсфилса (Морган Кауфманн, 2007 г., стр. ISBN 0-12-370549-5 )
- RFC 2914 - Принципы контроля перегрузки, Салли Флойд, сентябрь 2000 г.
- RFC 896 - «Контроль перегрузки в IP / TCP», Джон Нэгл, 6 января 1984 г.
- Введение в предотвращение и контроль перегрузок , Ван Якобсон и Майкл Дж. Карелс, ноябрь 1988 г.
Библиография
- Джон Эванс; Кларенс Филсфилс (2007). Развертывание IP и MPLS QoS для мультисервисных сетей: теория и практика . Морган Кауфманн. ISBN 978-0-12-370549-5.
Внешние ссылки
- Нэгл, Дж. RFC 896: Контроль перегрузки в объединенных сетях IP / TCP (1984)
- Флойд, С. RFC 2914: Принципы контроля перегрузки (2000)
- Флойд, С. и К. Фолл, Содействие использованию сквозного контроля перегрузки в Интернете (IEEE / ACM Transactions on Networking, август 1999 г.)
- Салли Флойд, « Об эволюции сквозного контроля перегрузки в Интернете: идиосинкразический взгляд» (Семинар IMA по масштабированию явлений в коммуникационных сетях, октябрь 1999 г.) ( формат PDF )
- Ссылочный термин: очередность
- Пьер-Франсуа Кет, Шрирам Челлаппан, Арджан Дуррези, Мукундан Шридхаран, Хитай Озбай, Радж Джайн, «Рекомендации по оптимизации многоуровневой ECN с использованием модели TCP на основе потока жидкости»
- Салли Флойд, Ратул Махаджан, Дэвид Уэтералл: КРАСНЫЙ-ПП: КРАСНЫЙ с преимущественным сбросом
- Универсальный простой симулятор RED для образовательных целей от Мехмета Сузена
- Подходы к контролю перегрузки в пакетных сетях
- Документы по контролю за перегрузкой
- Домашняя страница случайного раннего обнаружения
- Домашняя страница явных уведомлений о перегрузке
- Домашняя страница TFRC
- Домашняя страница AIMD-FC
- [постоянная мертвая связь ] Моделирование управления перегрузкой TCP: быстрое восстановление
- Последние публикации о низкоскоростных атаках типа «отказ в обслуживании» (DoS)