Se ha aceptado una respuesta aquí, y hace algunos puntos válidos, pero no mencionó los ataques de amplificación reflejados; con tcp solo se intercambian pequeñas cantidades de datos (y se deben intercambiar entre el atacante y la víctima) antes de poder procesar, la memoria y los recursos de io pueden consumirse. Un ataque de tipo slowloris como lo describe Elias explota un número limitado de recursos de conexión. Sin embargo, hay una serie de diferencias con udp.
Primero, la solicitud del cliente para hacer algo puede estar en el primer paquete enviado por el cliente.
Una consecuencia de esto es que el atacante puede falsificar la dirección 'desde' en el paquete, lo que dificulta la detección de un ataque, no importa el bloqueo.
Hay algunos protocolos udp en los que una sola solicitud pequeña puede generar una respuesta mucho mayor, tal comportamiento estaba presente en los protocolos DNS y NTP. Esto se explota en un ataque de amplificación: el atacante envía una solicitud a un servidor de un tercero vulnerable con la dirección 'desde' de la víctima. El tercero envía varios paquetes a la víctima. La escala de esto a múltiples terceros significa que un atacante solo necesita usar un poco de ancho de banda para llenar una conexión de red grande en la víctima.
No sé dónde leíste que udp fue "más rápido". Sus características de rendimiento son muy diferentes de tcp (que es parte de la razón por la que existen como protocolos diferentes), pero la velocidad de una conexión IP no es simplemente una cuestión del ancho de banda en los saltos de red entre el cliente y el servidor. Si intenta enviar grandes volúmenes de paquetes udp a través de Internet, es probable que termine de DOSIFICAR su enrutador de enlace ascendente.