Введение

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

Исследования показывают, что скорость наводнения с одной машины-зомби превышает 20 HTTP GET запросов в секунду, в то время как легитимные скорости значительно ниже.

Аппаратные приборы

Аппаратные устройства могут ограничивать скорость запросов на 4-м или 5-м уровне модели OSI. Ограничение скорости может быть вызвано сетевым стеком протоколов отправителя при получении пакета с установленным флагом ECN, а также сетевым планировщиком любого маршрутизатора на пути следования пакета. В то время как аппаратное устройство может ограничивать скорость для заданного диапазона IP-адресов на 4-м уровне, существует риск блокировки сети с большим количеством пользователей, скрывающихся за NAT с использованием единого IP-адреса провайдера. Глубокая проверка пакетов может быть использована для фильтрации на сеансовом уровне, но при этом фактически отключатся протоколы шифрования, такие как TLS и SSL, между устройством и сервером протокола (например, веб-сервером).

Протокольные серверы

Протокольные серверы, использующие модель запрос-ответ, такие как FTP-серверы или, как правило, веб-серверы, могут использовать централизованную базу данных типа «ключ-значение» в оперативной памяти, например Redis или Aerospike, для управления сеансами. Алгоритм ограничения скорости используется для проверки, необходимо ли ограничить сеанс пользователя (или IP-адрес) на основе информации в кэше сеансов. Если клиент отправляет слишком много запросов за определенный промежуток времени, HTTP-серверы могут отвечать кодом состояния 429: Too Many Requests (Слишком много запросов). Однако в некоторых случаях (например, для веб-серверов) алгоритм управления сеансами и ограничения скорости следует встраивать в приложение (используемое для динамического контента), работающее на веб-сервере, а не в сам веб-сервер. Когда протокольный сервер или сетевое устройство обнаруживает, что достигнут настроенный лимит запросов, он отклоняет новые запросы и не отвечает на них. Иногда их можно поместить в очередь для обработки, когда скорость входящих запросов снизится до приемлемого уровня, но в периоды пиковой нагрузки скорость запросов может даже превысить пропускную способность таких очередей, и запросы приходится отбрасывать.