UDP (User Datagram Protocol) é um protocolo de camada de transporte no conjunto TCP/IP que fornece um mecanismo de comunicação sem conexão e não confiável. É comumente usado para aplicações que priorizam a transmissão de dados de baixa latência e em tempo real em detrimento da confiabilidade e dos mecanismos de recuperação de erros fornecidos pelo TCP (Transmission Control Protocol).
Três protocolos que comumente usam UDP incluem:
- DNS (Domain Name System): O DNS usa UDP para consultas onde uma pequena quantidade de dados é enviada e uma resposta rápida é desejada. A natureza sem conexão do UDP é adequada para consultas DNS, onde a eficiência e a velocidade na resolução de nomes de domínio para endereços IP são cruciais.
- DHCP (Protocolo de Configuração Dinâmica de Host): O DHCP usa UDP para alugar endereços IP para dispositivos em uma rede. O UDP permite que os servidores DHCP aloquem e gerenciem rapidamente endereços IP e parâmetros de configuração de rede sem a sobrecarga de estabelecer uma conexão.
- VoIP (Voice over IP): Muitos aplicativos e serviços de voz sobre IP, como o Skype, utilizam UDP para transmitir pacotes de dados de voz e vídeo. A baixa sobrecarga e a latência reduzida do UDP o tornam adequado para aplicações de comunicação em tempo real, onde manter um atraso baixo é fundamental.
O UDP oferece suporte a vários protocolos de camada de aplicação que exigem transmissão de dados leve e rápida, dispensando os recursos de confiabilidade fornecidos pelo TCP. Os exemplos incluem SNMP (Simple Network Management Protocol), TFTP (Trivial File Transfer Protocol) e RTP (Real-time Transport Protocol), usados em aplicativos de streaming multimídia.
Alguns protocolos usam UDP e TCP dependendo dos requisitos específicos da aplicação. Por exemplo, HTTP (Hypertext Transfer Protocol) pode usar UDP (HTTP/3 com QUIC) ou TCP (HTTP/1.1 e HTTP/2 tradicionais) como protocolo de transporte subjacente. A escolha entre UDP e TCP geralmente depende de fatores como necessidade de confiabilidade, integridade de dados e características de desempenho específicas do caso de uso do aplicativo.
Exemplos de aplicativos e serviços que usam predominantemente UDP incluem jogos on-line (para atualizações de jogo em tempo real), mídia de streaming (para entrega contínua de dados) e dispositivos IoT (Internet das Coisas) (para comunicação leve entre sensores e gateways). O design do UDP favorece a velocidade e a eficiência em cenários onde perdas ocasionais de pacotes ou entrega fora de ordem podem ser toleradas sem afetar o desempenho geral.