Protocolo

UDP

UDP funciona como um envelope de datagrama: preserva a mensagem enviada, mas não cria conexão, não confirma entrega e não ordena. A base é RFC 768, de 1980, atualizada em 2025 pela RFC 9868 para opções de transporte. Seu cabeçalho clássico tem 8 bytes e portas de 16 bits. É usado por DNS, mDNS, NTP, RTP e QUIC. A baixa sobrecarga favorece descoberta e mídia, mas a aplicação precisa lidar com perda, duplicação, tamanho, congestionamento e segurança.

↗ Wikidata · Q11163
📖Definição aprofundada

UDP é um protocolo de transporte sem conexão que entrega datagramas entre portas de origem e destino. Cada envio preserva seu limite. Um datagrama de 100 bytes chega como uma unidade de 100 bytes ou não chega; a API pode sinalizar truncamento se o buffer for menor. Diferente de TCP, UDP não realiza handshake, não mantém estado de conexão na especificação básica, não retransmite, não ordena, não controla fluxo e não oferece congestion control. O cabeçalho clássico possui quatro campos de 16 bits: porta de origem, porta de destino, comprimento e checksum, totalizando 8 bytes. A RFC 768 foi publicada em agosto de 1980. Em 2025, a RFC 9868 atualizou a arquitetura para indicar opções de transporte UDP em uma área excedente após os dados, sem remover a simplicidade do datagrama básico. Em IPv4, o checksum UDP historicamente pode ser zero em condições definidas; em IPv6 ele é normalmente obrigatório, com exceções estritas em outros documentos. O checksum detecta erro acidental e cobre pseudo-header IP, mas não autentica. Um atacante pode forjar. Aplicações usam UDP quando o dado atrasado vale menos que o novo, quando multicast é necessário ou quando querem construir confiabilidade própria. DNS usa UDP para muitas consultas. mDNS usa multicast UDP 5353. NTP usa UDP 123. RTP usa UDP para áudio e vídeo. DHCP usa UDP. QUIC roda sobre UDP e implementa conexão, criptografia, streams, confiabilidade e congestionamento na camada de aplicação/transporte usuário. HTTP/3 usa QUIC. Assim, “UDP é não confiável” não significa que todo protocolo sobre UDP seja não confiável. QUIC adiciona. CoAP pode usar confirmações. Matter usa UDP para algumas comunicações e TCP em casos específicos. A aplicação define. Em casa inteligente, multicast UDP é vital para descoberta, mas redes Wi‑Fi e VLANs tratam multicast com limitações. mDNS não atravessa roteadores por padrão. Reflectors podem repetir entre VLANs, com risco de exposição. Datagramas grandes fragmentam no IP. Fragmentação aumenta perda: se um fragmento falta, o datagrama inteiro é descartado. Aplicações devem manter tamanho abaixo do Path MTU ou usar mecanismos de descoberta. Em Ethernet com MTU 1500, payload UDP IPv4 típico máximo sem fragmentação é 1472 bytes; IPv6, 1452, antes de encapsulamentos, mas o caminho pode ser menor. Protocolos de Internet usam tamanhos conservadores. UDP permite spoofing mais fácil porque não há handshake. Serviços expostos podem ser usados em reflexão e amplificação. DNS, NTP e SSDP foram explorados. O servidor deve validar, limitar resposta, atualizar e não expor desnecessariamente. Firewall stateful cria pseudoestado e expira rápido. NAT mappings podem durar dezenas de segundos. Heartbeats mantêm. UDP não cifra. DTLS fornece segurança para datagramas. QUIC incorpora TLS 1.3. SRTP protege RTP. O protocolo é simples; a responsabilidade sobe para a aplicação e a rede.

Arquitetura e Funcionamento
Datagramas e limites de mensagem
Cada chamada de envio cria um datagrama. Isso simplifica protocolos com mensagens independentes. O receptor usa um buffer. Se menor, parte pode ser descartada. Não existe stream para ler depois. A aplicação precisa limitar. Um datagrama pode chegar duplicado, fora de ordem ou não chegar. Em LAN, perdas são baixas, mas Wi‑Fi, fila e multicast causam. Mensagens precisam de ID, sequência e timestamp quando relevante. Um sensor que envia temperatura a cada 10 s pode tolerar perder uma amostra. Um comando de destravar não. Para comando, use confirmação e idempotência ou transporte confiável. UDP não impede a aplicação de enviar ACK. CoAP Confirmable faz. TFTP usa ACK e retransmissão. QUIC constrói streams. O desenho não deve assumir que “LAN não perde”. O socket UDP pode receber de vários remetentes na mesma porta. Validar endereço, identidade e conteúdo. Limitar tamanho antes de alocar.
Multicast, broadcast e descoberta
UDP suporta envio para multicast e broadcast IP. mDNS usa 224.0.0.251 e FF02::FB na porta 5353. SSDP usa 239.255.255.250:1900. Dispositivos anunciam e procuram. Isso evita configurar servidor. O custo é tráfego para vários nós e dificuldade entre VLANs. Wi‑Fi transmite multicast em taxa básica baixa, consumindo airtime. Access points podem converter multicast em unicast ou usar snooping. IGMP e MLD controlam grupos. Broadcast IPv4 não existe em IPv6, que usa multicast. Firewalls normalmente bloqueiam entre sub-redes. Um relay ou proxy específico é mais seguro que abrir tudo. O integrador deve permitir apenas serviços necessários. mDNS expõe nomes e tipos de serviço, criando privacidade. Em rede de convidados, desative. Descoberta deve ser separada da autenticação: encontrar uma lâmpada não autoriza controlá-la.
Tamanho, MTU e fragmentação
O campo de comprimento UDP é 16 bits no formato clássico, mas o tamanho prático depende do IP e do caminho. Em Ethernet MTU 1500, 20 bytes de IPv4 mais 8 de UDP deixam 1472; IPv6 usa 40, deixando 1452. VLAN não reduz MTU quando a rede suporta quadro maior, mas túneis, PPPoE, VPN e 6LoWPAN podem reduzir. Fragmentação é frágil e frequentemente filtrada. Um fragmento perdido elimina tudo. Aplicações devem usar Path MTU Discovery ou tamanhos seguros. DNS implementa EDNS e fallback TCP. QUIC evita fragmentação IP. RTP usa pacotes ajustados. Câmeras não devem enviar frames inteiros num único datagrama; dividem em pacotes. Em IoT de IEEE 802.15.4, 6LoWPAN fragmenta abaixo de 127 bytes de frame, com custo. O gateway e o protocolo precisam considerar. Payload compacto ajuda. CBOR pode ser menor que JSON.
Segurança, spoofing e amplificação
Sem handshake, o servidor pode responder a um endereço de origem falsificado. Se a resposta é muito maior que o pedido, vira amplificador DDoS. NTP `monlist` antigo, SSDP e DNS foram usados. Desabilitar funções antigas, limitar taxa, exigir autenticação e bloquear spoofing na borda. Não expor SSDP 1900 ou mDNS à Internet. Firewalls bloqueiam. Checksum não é segurança. DTLS autentica e cifra datagramas, mas exige handshake e gestão. QUIC usa TLS 1.3. Protocolos de descoberta podem enviar dados mínimos e depois negociar canal seguro. A aplicação deve usar nonce, contador e replay protection quando comandos. Um pacote “ON” sem autenticação pode ser forjado na LAN. Redes segmentadas reduzem, mas dispositivo comprometido na mesma VLAN permanece. Logs de UDP são mais difíceis porque não há conexão. Registrar origem, tipo e taxa. Não registrar segredos. Rate limiting por IP pode ser contornado por spoofing. Cookies stateless ou challenge ajudam.
Análise Técnica
✓ Vantagens
  • Cabeçalho de 8 bytes e ausência de handshake reduzem overhead e latência para mensagens pequenas e independentes.
  • Preserva limites de mensagem, simplificando discovery, telemetria, áudio e protocolos de request/response compactos.
  • Suporta multicast e broadcast, fundamentais para mDNS, SSDP, descoberta local e algumas arquiteturas de casa inteligente.
  • Permite que protocolos como QUIC implementem confiabilidade e segurança no espaço de usuário, evoluindo mais rápido que o kernel.
  • É adequado a mídia em tempo real, em que descartar pacote atrasado pode ser melhor que bloquear esperando retransmissão.
✗ Desvantagens
  • Não garante entrega, ordem nem ausência de duplicatas; a aplicação precisa decidir confirmação, sequência e retry.
  • Não possui controle de fluxo ou congestionamento; implementações ingênuas podem saturar rede e prejudicar outros tráfegos.
  • Origem pode ser falsificada com mais facilidade, permitindo reflexão e amplificação quando serviços respondem sem validação.
  • Datagramas grandes fragmentam e ficam mais frágeis; o protocolo não descobre automaticamente o tamanho ideal do caminho.
  • NAT e firewalls expiram mapeamentos rapidamente, e multicast não atravessa sub-redes sem proxy ou configuração específica.
💡 Cenário Prático: UDP em descoberta, tempo e mídia da casa inteligente
A rede local permite mDNS e SSDP apenas dentro da VLAN IoT ou por proxy seletivo para o controlador. O firewall bloqueia UDP 1900 e 5353 na WAN. O Home Assistant usa mDNS para descobrir dispositivos, mas o controle posterior é autenticado por HTTP, Matter ou protocolo específico. NTP sai para servidores autorizados na porta 123; dispositivos não funcionam como servidores abertos. Câmeras usam RTP sobre UDP quando baixa latência é desejada e podem alternar para TCP se perdas. O Wi‑Fi é configurado com multicast eficiente, sem taxa básica excessivamente baixa. Payloads proprietários usam ID, sequência, timestamp, HMAC ou DTLS. Comandos críticos não são enviados como datagrama sem confirmação. O gateway limita tamanhos abaixo do MTU e não depende de fragmentação. Capturas com tcpdump verificam perda, jitter e multicast. Um mDNS reflector entre VLANs possui regras por interface e serviço. A rede de convidados não recebe anúncios de câmeras ou impressoras. O roteador aplica ingress filtering e rate limit. Assim, a simplicidade do UDP é aproveitada sem transformá-lo em canal aberto.