En redes informáticas , la limitación de velocidad se utiliza para controlar la frecuencia de las solicitudes enviadas o recibidas por un controlador de interfaz de red . Puede utilizarse 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 ] las tasas legítimas son mucho menores.
La limitación de velocidad debe utilizarse junto con el patrón de estrangulamiento para minimizar el número de errores de estrangulamiento. [ 4 ]
Electrodomésticos
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 marcado con ECN recibido y también por el planificador 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 .
La inspección profunda de paquetes se puede utilizar para filtrar en la capa de sesión, pero desactiva eficazmente los protocolos de cifrado como TLS y SSL entre el dispositivo y el servidor de protocolo (es decir, el servidor web).
Servidores de protocolo
Los servidores de protocolo que utilizan un modelo de solicitud/respuesta, como los servidores FTP o los servidores web, suelen emplear una base de datos centralizada en memoria de clave-valor , como Redis o Aerospike , para la gestión de sesiones. Se utiliza un algoritmo de limitación de velocidad para determinar si la sesión del usuario (o la dirección IP) debe limitarse en función de la información almacenada en la caché de sesiones.
En caso de que un cliente realice 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 (por ejemplo, en servidores web), el algoritmo de gestión de sesiones y limitación de velocidad debería estar integrado en la aplicación (utilizada para contenido dinámico) que se ejecuta en el servidor web, en lugar de en el propio servidor web.
Cuando un servidor de protocolo o un dispositivo de red detecta que se ha alcanzado el límite de solicitudes configurado, descarga las nuevas solicitudes y no las responde. En ocasiones, se pueden añadir a una cola para procesarlas una vez que la tasa de entrada alcance un nivel aceptable, pero en momentos de máxima demanda, la tasa de solicitudes puede incluso superar la capacidad de dichas colas y las solicitudes deben descartarse.
Centros de datos
Los centros de datos utilizan ampliamente la limitación de velocidad para controlar la distribución de recursos entre los distintos usuarios y aplicaciones, de acuerdo con sus acuerdos de nivel de servicio. [ 5 ] En los centros de datos se aplican diversas técnicas de limitación de velocidad mediante software y hardware. Los centros de datos virtualizados también pueden aplicar la limitación de velocidad en la capa del hipervisor. Dos métricas de rendimiento importantes de los limitadores de velocidad en los centros de datos son el consumo de recursos (memoria y uso de CPU), que determina la escalabilidad, y la precisión. Generalmente existe una compensación: se puede lograr una mayor precisión dedicando más recursos a los limitadores de velocidad. Existe un considerable volumen de investigación centrado en mejorar el rendimiento de la limitación de velocidad en los centros de datos. [ 5 ] [ 6 ]
Véase también
- Algoritmos
- Cubo de tokens [ 7 ]
- Cubo con fugas
- Contador de ventanas fijo [ 7 ]
- Registro de ventana deslizante [ 7 ]
- Contador de ventana deslizante [ 7 ]
- Bibliotecas
- Limitador de velocidad de la API web ASP.NET
- Middleware de limitación de velocidad de ASP.NET Core
- Limitación de velocidad para .NET (biblioteca PCL)
- Limitación de velocidad para Node.js
Referencias
- ↑ Richard A. Deal (22 de septiembre de 2004). "Seguridad del firewall del router Cisco: protección contra ataques DoS" . Cisco Press . Consultado el 16 de abril de 2017 .
- ↑ Greenberg, Andy (12 de enero de 2021). "Un error absurdamente básico permitió a cualquiera apoderarse de todos los datos de Parler" . Wired . Archivado del original el 12 de enero de 2021. Consultado el 12 de enero de 2021 .
- ↑ Jinghe Jin; Nazarov Nodir; Chaetae Im; Seung Yeob Nam (7 de noviembre de 2014). "Mitigación de ataques de inundación HTTP GET mediante un enrutador de referencia NetFPGA modificado" . pág. 1. Archivado del original el 6 de marzo de 2023. Recuperado el 19 de diciembre de 2021 a través de ResearchGate.
- ↑ Cloud Native: Uso de contenedores, funciones y datos para crear aplicaciones de próxima generación . O'Reilly Media. 2019. ISBN 9781492053798.
- 1 2 Noormohammadpour, M.; Raghavendra, CS (mayo de 2018). "Control de tráfico en centros de datos: comprensión de técnicas y compensaciones" . IEEE Communications Surveys & Tutorials . 20 (2): 1. arXiv : 1712.03530 . doi : 10.1109/COMST.2017.2782753 . Archivado del original el 16 de enero de 2024, vía ResearchGate.
- ↑ Bentley, Kady (16 de diciembre de 2025). "Cómo los investigadores impulsan los avances en los centros de datos" . Centro de noticias del Laboratorio Berkeley . Consultado el 16 de julio de 2026 .
- 1 2 3 4 Nikrad Mahdi (12 de abril de 2017). "Un enfoque alternativo para la limitación de velocidad" . Medium . Recuperado el 16 de abril de 2017 .
- Rendimiento de la red