UDP: User Datagram Protocol
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.