La elección de UDP frente a TCP depende de su caso de uso y del tipo de DDos. Para los DDos simples que consumen ancho de banda, no importa mucho porque si el ataque usa todo el ancho de banda, no habrá más tráfico para su aplicación, sin importar si se basa en UDP o TCP. UDP puede tener una ligera ventaja en este caso porque UDP por sí solo no necesita varios paquetes para el establecimiento de una conexión (pero su protocolo de aplicación puede necesitarlo).
Si le preocupa más los ataques que consumen recursos en el sistema (como la inundación SYN o simplemente mantener abiertas muchas conexiones), el UDP puede verse mejor al principio, ya que no usa tantos recursos en el sistema como TCP. Pero si su aplicación necesita una idea de conexión, confiabilidad y transferencia de datos ordenada, terminará implementando todas las cosas buenas que TCP ya tiene dentro de su aplicación. Y allí probablemente ocuparán más recursos que las implementaciones optimizadas dentro del kernel del sistema operativo, lo que significa que terminará siendo más afectado por DDos que si simplemente usara TCP.
Además, al usar tecnologías establecidas en lugar de hacer su propio manejo de red a nivel de aplicación, puede usar las soluciones Anti-DDos existentes. Con su propio protocolo especial, en su lugar, también tendría que inventar su propia solución especial Anti-DDos.
Estoy creando un servicio que puedo implementar igualmente bien con TCP o UDP.
Si puede implementar el mismo servicio con la misma confiabilidad en UDP y TCP y su implementación UDP usaría menos recursos del sistema que la implementación TCP (es decir, los recursos de espacio de usuario y kernel combinados), entonces podría opte por UDP porque usar menos recursos es una buena idea cuando se enfrenta a DDos.