Ограничение скорости - Rate limiting
В компьютерная сеть, ограничение скорости используется для управления частотой запросов, отправленных или полученных контроллер сетевого интерфейса и используется для предотвращения DoS-атаки.[1]
Аппаратные средства
Аппаратные устройства могут ограничивать скорость запросов на уровне 4 или 5 Модель OSI.
Ограничение скорости может быть вызвано стеком сетевого протокола отправителя из-за полученного ECN -маркированный пакет, а также сетевой планировщик любого роутера по пути.
Хотя аппаратное устройство может ограничивать скорость для заданного диапазона IP-адресов на уровне 4, оно рискует заблокировать сеть со многими пользователями, которые маскируются NAT с одним айпи адрес из Интернет-провайдер.
Глубокая проверка пакетов может использоваться для фильтрации на уровне сеанса, но эффективно обезвреживает протоколы шифрования, такие как TLS и SSL между устройством и веб-сервером.
Веб-серверы
Веб-серверы обычно используют центральный в памяти база данных ключ-значение, подобно Redis или же Aerospike, для управления сеансом. Алгоритм ограничения скорости используется для проверки необходимости ограничения сеанса пользователя (или IP-адреса) на основе информации в кэше сеанса.
Если клиент сделал слишком много запросов в течение заданного периода времени, HTTP серверы могут отвечать кодом состояния 429 .: Слишком много запросов.
Однако алгоритм управления сеансами и ограничения скорости обычно должен быть встроен в приложение, работающее на веб-сервере, а не в сам веб-сервер.
Дата-центры
Центры обработки данных широко используют ограничение скорости для управления долей ресурсов, предоставляемых различным клиентам и приложениям в соответствии с их соглашением об уровне обслуживания.[2] В центрах обработки данных применяются различные методы ограничения скорости с использованием программного и аппаратного обеспечения. Виртуализированные центры обработки данных также могут применять ограничение скорости на уровне гипервизора. Двумя важными показателями производительности ограничителей скорости в центрах обработки данных являются объем ресурсов (использование памяти и ЦП), который определяет масштабируемость и точность. Обычно существует компромисс, то есть более высокая точность может быть достигнута путем выделения большего количества ресурсов на ограничители скорости. Существует значительный объем исследований, направленных на повышение производительности ограничения скорости в центрах обработки данных.[2]
Смотрите также
- Алгоритмы
- Ведро токенов[3]
- Дырявое ведро
- Фиксированный счетчик окон[3]
- Журнал сдвижного окна[3]
- Счетчик раздвижных окон[3]
- Библиотеки
- Ограничитель скорости веб-API ASP.NET
- ПО промежуточного слоя, ограничивающее скорость ASP.NET Core
- Ограничение скорости для .NET (библиотека PCL)
- Ограничение скорости для Node.JS
Рекомендации
- ^ Ричард А. Дил (22 сентября 2004 г.). «Безопасность межсетевого экрана маршрутизатора Cisco: защита от DoS-атак». Получено 16 апреля, 2017.
- ^ а б М. Ноормохаммадпур, К. С. Рагхавендра, «Управление трафиком центра обработки данных: понимание методов и компромиссов», IEEE Communications Surveys & Tutorials, vol. ПП, нет. 99, стр. 1-1.
- ^ а б c d Никрад Махди (12 апреля 2017 г.). «Альтернативный подход к ограничению ставок». Получено 16 апреля, 2017.