DTLS (Datagram Transport Layer Security) es una adaptación del protocolo TLS (Transport Layer Security) diseñada específicamente para operar sobre protocolos de transporte basados en datagramas, como UDP (User Datagram Protocol). A diferencia de TLS, que asume un transporte fiable y ordenado (como TCP), DTLS aborda los desafíos inherentes a los datagramas: pérdida de paquetes, reordenamiento y duplicación. Para ello, DTLS incorpora mecanismos de retransmisión, detección de duplicados y manejo de reordenamiento a nivel de aplicación, asegurando la seguridad de la comunicación sin introducir la sobrecarga de fiabilidad de un protocolo como TCP. Su objetivo es proporcionar confidencialidad, integridad y autenticación para aplicaciones que requieren baja latencia y son tolerantes a cierta pérdida de datos.

En el mundo real, DTLS es fundamental para sistemas que operan con comunicación en tiempo real y baja latencia sobre UDP. Un ejemplo prominente es WebRTC, que lo utiliza para asegurar los canales de datos y los flujos de medios (audio/video) entre pares en navegadores web. También es ampliamente adoptado en el ámbito de IoT (Internet of Things), especialmente en dispositivos con recursos limitados que utilizan CoAP (Constrained Application Protocol) sobre UDP, donde la sobrecarga de TCP/TLS sería prohibitiva. Otro caso de uso es en VPNs basadas en UDP, como OpenVPN en su modo UDP, para establecer túneles seguros y eficientes. Además, algunos sistemas de VoIP (Voice over IP) y juegos en línea pueden emplear DTLS para proteger sus flujos de datos.

Para un arquitecto de sistemas, DTLS es crucial al diseñar soluciones que requieren seguridad de extremo a extremo sobre transportes no fiables, priorizando la baja latencia y la eficiencia sobre la fiabilidad estricta a nivel de transporte. La decisión de usar DTLS implica un trade-off: se obtiene la seguridad de TLS sin la sobrecarga de TCP, pero se debe considerar cómo la aplicación manejará la pérdida de paquetes o el reordenamiento que DTLS no oculta completamente. Es ideal para escenarios donde la fiabilidad puede ser gestionada a un nivel superior o donde la pérdida ocasional de datos es aceptable (ej. streaming de video, voz). Un arquitecto debe evaluar si los beneficios de rendimiento y latencia superan la complejidad adicional de gestionar la naturaleza no fiable del transporte subyacente, y si la aplicación puede tolerar las características de un transporte de datagramas seguro.