En las redes informáticas , la limitación de velocidad se utiliza para controlar la velocidad de las solicitudes enviadas o recibidas por un controlador de interfaz de red . Se puede utilizar para prevenir ataques DoS [1] y limitar el web scraping . [2]
Las investigaciones indican que las tasas de inundación para una máquina zombie superan las 20 solicitudes HTTP GET por segundo, [3] tasas legítimas mucho menores.
Los dispositivos de hardware pueden limitar la tasa de solicitudes en la capa 4 o 5 del modelo OSI .
La limitación de velocidad puede ser inducida por la pila de protocolos de red del remitente debido a un paquete recibido marcado con ECN y también por el programador de red de cualquier enrutador en el camino.
Si bien un dispositivo de hardware puede limitar la velocidad para un rango determinado de direcciones IP en la capa 4, corre el riesgo de bloquear una red con muchos usuarios que están enmascarados por NAT con una única dirección IP de un ISP .
Se puede utilizar una inspección profunda de paquetes para filtrar en la capa de sesión, pero desarmará efectivamente los protocolos de cifrado como TLS y SSL entre el dispositivo y el servidor de protocolo (es decir, el servidor web).
Los servidores de protocolo que utilizan un modelo de solicitud/respuesta, como los servidores FTP o, normalmente, los servidores web, pueden utilizar una base de datos central de valores clave en memoria , como Redis o Aerospike , para la gestión de sesiones. Se utiliza un algoritmo de limitación de velocidad para comprobar si la sesión del usuario (o dirección IP) debe limitarse en función de la información contenida en la caché de la sesión.
En caso de que un cliente haya realizado demasiadas solicitudes dentro de un período de tiempo determinado, los servidores HTTP pueden responder con el código de estado 429: Demasiadas solicitudes .
Sin embargo, en algunos casos (es decir, servidores web), el algoritmo de gestión de sesión y limitación de velocidad debe integrarse en la aplicación (utilizada para contenido dinámico) que se ejecuta en el servidor web, en lugar del propio servidor web.
Cuando un servidor de protocolo o un dispositivo de red detecta que se alcanza el límite de solicitudes configurado, descargará nuevas solicitudes y no responderá a ellas. A veces se pueden agregar a una cola para procesarlas una vez que la tasa de entrada alcance un nivel aceptable, pero en las horas punta la tasa de solicitudes puede incluso exceder la capacidad de dichas colas y las solicitudes deben desecharse.
Los centros de datos utilizan ampliamente la limitación de tasas para controlar la proporción de recursos otorgados a diferentes inquilinos y aplicaciones de acuerdo con su acuerdo de nivel de servicio. [4] En los centros de datos se aplica una variedad de técnicas de limitación de velocidad utilizando software y hardware. Los centros de datos virtualizados también pueden aplicar limitaciones de velocidad en la capa del hipervisor. Dos métricas de rendimiento importantes de los limitadores de velocidad en los centros de datos son la huella de recursos (uso de memoria y CPU), que determina la escalabilidad y la precisión. Generalmente existe una compensación, es decir, se puede lograr una mayor precisión dedicando más recursos a los limitadores de velocidad. Un conjunto considerable de investigaciones centradas en mejorar el rendimiento de la limitación de velocidad en los centros de datos. [4]