UDP: User Datagram Protocol

03/08/2025

O User Datagram Protocol (UDP) é um protocolo da camada de transporte definido na RFC‑768 que faz parte do conjunto de protocolos Internet. Enquanto o Transmission Control Protocol (TCP) estabelece conexões e garante entrega ordenada, o UDP foi projetado para velocidade e simplicidade. Ele é orientado a mensagens, não mantém estado entre datagramas e, por isso, é frequentemente chamado de protocolo de datagramas "não confiável". Essa abordagem torna o UDP ideal para aplicações em tempo real em que atrasos são piores que pequenas perdas de pacotes 

Como o UDP funciona

Protocolo sem conexão

O UDP é connectionless, ou seja, não realiza handshake nem estabelece sessões persistentes. Cada datagrama é transmitido de forma independente; o remetente encapsula dados em um pacote e o envia para o destino sem confirmar se há um receptor pronto. Isso elimina a sobrecarga de criação e gerenciamento de conexões, reduz a latência e permite que o protocolo seja utilizado por um grande número de clientes. A aplicação, no entanto, é responsável por lidar com reordenação, retransmissão ou detecção de erros.

Multiplexação por portas

Para distinguir processos, o UDP utiliza portas de 16 bits. O par endereço IP + porta define um ponto de comunicação. Os números de porta vão de 0 a 65535, sendo a porta 0 reservada, mas permitida como origem quando não há expectativa de resposta. A IANA divide as portas em três faixas: 0–1023 para serviços bem conhecidos, 1024–49151 para portas registradas e 49152–65535 para portas dinâmicas ou efêmeras.

Estrutura do datagrama

O datagrama UDP contém um cabeçalho fixo de 8 bytes seguido pelos dados da aplicação. Esse cabeçalho possui quatro campos de 16 bits:

  • Porta de origem: identifica a porta do remetente; pode ser um valor efêmero quando o cliente envia dados.

  • Porta de destino: identifica a porta do receptor; normalmente é uma porta bem conhecida quando se envia para um serviço.

  • Comprimento: especifica o tamanho total do datagrama (cabeçalho + dados) em octetos; o mínimo é 8 bytes.

  • Checksum: fornece verificação de integridade do cabeçalho e dos dados. No IPv4 esse campo é opcional, mas no IPv6 é obrigatório.

O cálculo do checksum utiliza a soma de complemento de um do pseudo‑cabeçalho (que contém endereços IP e protocolo), do cabeçalho UDP e dos dados. Se o valor calculado resultar em zero, o campo deve ser enviado como todos os bits em 1.

Fiabilidade, controle de congestão e segurança

Por não manter estado nem enviar confirmações de recebimento, o UDP não garante entrega, ordem ou exclusividade. Pacotes podem se perder, chegar duplicados ou fora de ordem. Aplicações que necessitam de confiabilidade devem implementar mecanismos de confirmação e retransmissão na camada de aplicação ou optar por protocolos como o TCP. Em aplicações de voz, vídeo e jogos online, a perda de alguns pacotes é aceitável, enquanto atrasos causados por retransmissões prejudicariam a experiência.

O UDP também não possui controle de congestionamento, o que significa que pode transmitir dados em um ritmo que cause sobrecarga de rede. Isso torna o protocolo vulnerável a ataques de negação de serviço (DDoS) por inundação de pacotes. Ferramentas de mitigação incluem limitação da taxa de pacotes, inspeção profunda e uso de firewalls. Ataques de inundação exploram o fato de que o servidor, ao receber datagramas sem aplicativo ouvindo na porta, retorna mensagens ICMP de "destino inalcançável", consumindo recursos.

Vantagens e desvantagens

Vantagens

  • Baixa latência e alta velocidade: a ausência de handshake e retransmissões torna o UDP mais rápido que o TCP.

  • Simplicidade: o cabeçalho fixo de 8 bytes e a ausência de estado facilitam a implementação e reduzem a sobrecarga.

  • Suporte a broadcast e multicast: a capacidade de enviar um único datagrama para múltiplos destinatários é útil em serviços de descoberta e streaming.

  • Menor ocupação de banda: pacotes menores e sem mensagens de controle diminuem a utilização de rede.

Desvantagens

  • Sem confiabilidade: não há garantias de entrega ou ordem; cabe à aplicação tratar perdas ou duplicações.

  • Sem controle de congestionamento: a taxa de envio pode saturar a rede e causar perda de pacotes.

  • Vulnerabilidade a ataques: ataques de inundação (UDP flood) exploram a ausência de handshake para sobrecarregar servidores.

  • Uso limitado: não é adequado para aplicações que exigem confiabilidade, como transferência de arquivos ou e‑mail.

Comparação entre UDP e TCP

O quadro abaixo resume as diferenças fundamentais entre o UDP e o TCP, destacando características em poucas palavras.

Aplicações típicas

O conjunto de características do UDP o torna ideal para aplicações que exigem baixa latência e tolerância a perdas. Exemplos incluem:

  • Serviços de streaming e conferências de vídeo: protocolos como RTP sobre UDP mantêm a reprodução fluida mesmo com pequenas perdas de pacotes.

  • Jogos online: a redução de atraso é crucial para a jogabilidade; pacotes fora de ordem são descartados sem afetar a experiência.

  • Consultas DNS e serviços de diretório: a resolução de nomes usa UDP para obter respostas rápidas

  • Protocolos de configuração e horário: DHCP e NTP utilizam UDP por serem mensagens simples e de pequeno volume.

  • Aplicações IoT e dispositivos de baixo consumo: o overhead reduzido torna o UDP adequado para dispositivos com recursos limitados.

Considerações finais

O UDP é um componente essencial da pilha de protocolos Internet. Sua concepção sem conexão e orientada a mensagens sacrifica a confiabilidade em benefício de velocidade e simplicidade. Essa troca é ideal para aplicações interativas em tempo real, como voz, vídeo e jogos, bem como para serviços de descoberta e controle de rede. Por outro lado, o uso do UDP requer que desenvolvedores e administradores implementem mecanismos de verificação e segurança adicionais para lidar com perdas de dados e ataques de negação de serviço. Ao conhecer as características e limitações do UDP, é possível selecionar o protocolo adequado para cada cenário e construir aplicações eficientes e resilientes.

Referências

  1. Wikipedia – User Datagram Protocol 

  2. Wikipedia – Estrutura do datagrama e checksum

  3. Wikipedia – Fiabilidade e aplicações

  4. GeeksforGeeks – User Datagram Protocol (UDP).

  5. GeeksforGeeks – Vantagens, desvantagens e ataques

  6. JumpCloud – What Is the User Datagram Protocol (UDP)?

  7. JumpCloud – Características, uso e segurança