¿Por qué una inundación de UDP del lado de la LAN toma los recursos de CPU del objetivo y lo hace lento?
Esto depende de una serie de factores, uno de los principales es qué acción se está llevando a cabo en el sistema que recibe la inundación de UDP. Echemos un vistazo a los conceptos básicos del proceso.
Para empezar, el host recibe el tráfico UDP. Todo el tráfico recibido debe ser procesado hasta cierto punto. Como mínimo, el puerto de destino del tráfico UDP debe ser determinado. Esto significa que los encabezados Ethernet e IP se eliminan a medida que se mueven a través de la pila de red y se entregan para ser procesados como un segmento UDP. También puede haber reglas de firewall para procesar también.
Se comprueba el puerto de destino para ver si hay una aplicación escuchando en ese puerto UDP (ya sea un servicio vinculado al puerto o un puerto utilizado por el tráfico saliente que puede estar esperando un tráfico de respuesta).
Si hay una aplicación escuchando en el puerto UDP, las cabeceras UDP se eliminan y pasan a la aplicación. Entonces, la aplicación debe procesar los datos de la manera que esté configurada para hacerlo.
Si no lo hay, el host puede responder de una de las dos formas siguientes: silenciosamente suelte los datos o rechace los datos. El rechazo de los datos generalmente se considera más "amigable" y facilita en gran medida la depuración, ya que un aviso de que el tráfico se rechaza se envía de nuevo a la fuente del tráfico mediante ICMP. Esto es bueno cuando el tráfico se envía accidentalmente al host o puerto incorrecto y puede hacer que el tráfico no deseado se detenga (si el host / la aplicación de envío reconoce que el tráfico no es deseado).
Por lo tanto, tenemos un proceso. Ahora, en ese proceso, la mayoría de lo anterior se puede hacer en hardware si el adaptador de red (y el controlador, el sistema operativo, etc.) lo admiten. Lo que no se hace en hardware se hace en software ejecutándose en la CPU.
¿De dónde puede venir el uso de la CPU? En gran parte de las siguientes cuatro posibilidades:
- Procesando el tráfico recibido (Ethernet - > IP - > UDP), incluidas las reglas de firewall
- Comprobación de aplicaciones que escuchan en el puerto UDP
- Datos de procesamiento de la aplicación recibidos en un puerto de escucha
- Generar tráfico de retorno (mensajes de error de ICMP)
Por qué un host específico se vuelve lento sería el resultado de realizar uno o más de los anteriores en software (es decir, CPU).
Si un host procesa el tráfico (incluidas las reglas del cortafuegos) y descarta el tráfico no deseado (o procesa el rechazo) todo en hardware, no debería haber ningún impacto en la CPU como resultado de una inundación de UDP en los puertos UDP a los que tiene ninguna aplicación está escuchando.
La forma en que una aplicación específica se ve afectada por la recepción de tráfico no deseado a un puerto en el que está escuchando dependerá completamente de la aplicación.