El UDP, un protocolo de comunicación de la capa de transporte, es un protocolo muy común para el tráfico de voz y vídeo.
Después de leer este artículo podrás:
Contenido relacionado
HTTP
TCP/IP
Firewall de aplicaciones web (WAF)
Ataque de inundación de ping (ICMP)
Ataque de inundación UDP
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
El User Datagram Protocol, o UDP, es un protocolo de comunicación que se utiliza en Internet para transmisiones sujetas a limitaciones temporales, como la reproducción de vídeo o las búsquedas en DNS. Acelera las comunicaciones al no establecer formalmente una conexión antes de transferir los datos. Esto permite que los datos se transfieran muy rápido, pero también puede hacer que los paquetes se pierdan en tránsito — y crear oportunidades para vulnerabilidades en forma de ataques DDoS.
Como todos los protocolos de redes, el UDP es un método estandarizado para transferir datos entre dos ordenadores en una red. Comparado con otros protocolos, el UDP realiza este proceso de forma sencilla: envía paquetes (unidades de transmisión de datos) directamente a un ordenador de destino, sin establecer primero una conexión, ni indicar el orden de dichos paquetes, ni comprobar si han llegado como estaba previsto. (Los paquetes UDP se llaman "datagramas").
El UDP es más rápido pero menos fiable que el TCP, otro protocolo de transporte habitual. En una comunicación TCP, los dos ordenadores comienzan estableciendo una conexión mediante un proceso automatizado llamado "protocolo de enlace". Un ordenador no transferirá realmente paquetes de datos al otro hasta que no se haya completado el protocolo de enlace.
Las comunicaciones UDP no pasan por este proceso. En su lugar, un ordenador simplemente puede empezar a enviar datos al otro:
Además, las comunicaciones TCP indican el orden en que deben recibirse los paquetes de datos, y confirman que los paquetes están llegando según lo previsto. Si un paquete no llega, por la congestión de las redes intermedias, por ejemplo, el TCP exige que se vuelva a enviar. Las comunicaciones UDP no incluyen ninguna de estas funciones.
Estas diferencias generan algunas ventajas. Ya que el UDP no necesita un "protocolo de enlace" ni comprobar si los datos llegan correctamente, puede transferir datos mucho más rápido que el TCP.
Sin embargo, esta velocidad genera desventajas. Si un datagrama del UDP se pierde en tránsito, no se volverá a enviar. Como resultado, las aplicaciones que utilizan UDP deben ser capaces de tolerar errores, pérdidas y duplicaciones.
(Técnicamente, esta pérdida de paquetes no es tanto un defecto del UDP como una consecuencia de cómo se ha diseñado Internet. La mayoría de los enrutadores de red, por su propio diseño, no realizan el ordenamiento de los paquetes y la confirmación de su llegada, porque hacerlo requeriría una cantidad de memoria adicional no viable. El TCP es una forma de llenar este vacío cuando una aplicación lo requiere).
El UDP se suele utilizar en las comunicaciones sujetas a limitación temporal, en las que ocasionalmente es mejor dejar caer los paquetes que esperar. El tráfico de voz y vídeo se envía mediante este protocolo, porque ambos están sujetos a limitación temporal y están diseñados para soportar cierto nivel de pérdida. Por ejemplo, la VOIP (voz sobre IP), que utilizan muchos servicios telefónicos basados en Internet, funciona sobre UDP. Esto es así porque es preferible una conversación telefónica estática a una muy clara, pero con mucho retraso.
Esto también hace que el UDP sea el protocolo ideal para los videojuegos en línea. De forma similar, como los servidores DNS deben ser rápidos y eficientes, funcionan también mediante UDP.
Los "riesgos" de UDP, como la pérdida de paquetes, no son un problema grave en la mayoría de los casos de uso. Sin embargo, se puede aprovechar el UDP con fines maliciosos. Ya que el UDP no necesita un protocolo de enlace, los atacantes pueden "inundar" un servidor objetivo con tráfico UDP sin obtener primero el permiso de ese servidor para iniciar la comunicación.
Un ataque de inundación UDP típico envía un gran número de datagramas UDP a puertos aleatorios en su ordenador objetivo. Esto obliga al objetivo a responder con un número igualmente grande de paquetes ICMP, que indican que esos puertos eran inalcanzables. Los recursos informáticos necesarios para responder a cada datagrama fraudulento pueden abrumar al objetivo, provocando una denegación de servicio al tráfico legítimo. (Para más información, lee nuestro artículo sobre ataques de inundación UDP).
Las organizaciones se pueden defender de los ataques de inundación UDP con una variedad de métodos. Una es limitar la tasa de respuesta de los paquetes ICMP, aunque este enfoque también puede filtrar los paquetes legítimos. Otro método consiste en recibir y responder al tráfico UDP a través de una red intermediaria de muchos centros de datos distribuidos, evitando que un servidor de origen único se vea desbordado por solicitudes fraudulentas. Obtén más información sobre cómo Cloudflare utiliza esta estrategia para ayudar a las organizaciones a mitigar los ataques DDoS.