Tópico 09 · Camada de Transporte

Protocolo UDP

Transporte simples, rápido e sem conexão — RFC 768

Serviços de Redes

O que é o UDP

O User Datagram Protocol oferece o transporte mais enxuto possível: entrega datagramas sem conexão, sem garantias e sem rodeios.

  • Sem conexão: não há handshake; cada datagrama é independente.
  • Não confiável: não confirma, não retransmite, não reordena.
  • Orientado a mensagem: preserva as fronteiras de cada datagrama.
  • Mínimo: apenas 8 bytes de cabeçalho.

Quase só multiplexação

O UDP acrescenta ao IP basicamente portas (para entregar ao processo certo) e um checksum opcional. Tudo o que falta — confiabilidade, ordem, controle — fica a cargo da aplicação, se ela precisar.

Por que abrir mão das garantias?

Baixa latência

Sem handshake nem retransmissão, o dado parte imediatamente — vital para tempo real.

Pouca sobrecarga

Cabeçalho de 8 bytes (contra 20–60 do TCP) e nenhum estado de conexão a manter.

Controle da aplicação

A aplicação decide o que recuperar e como — útil quando dados antigos não valem a pena reenviar.

Filosofia: em mídia ao vivo, um pacote perdido não deve atrasar os seguintes. Reenviar um quadro de áudio já passado é inútil — melhor seguir em frente. É aí que o UDP brilha.

O datagrama UDP (8 bytes)

Toda a simplicidade do UDP cabe em quatro campos de 16 bits. Cada linha = 32 bits:

0 16 31 Porta de Origem (16) Porta de Destino (16) Comprimento (16) Checksum (16) Dados (carga útil da aplicação — variável)

Porta de origem, porta de destino, comprimento (cabeçalho + dados) e checksum. Só isso.

Os campos e o checksum

CampoFunção
Porta de origemProcesso remetente (pode ser 0 se não há resposta esperada).
Porta de destinoIdentifica o processo destinatário.
ComprimentoTamanho total (cabeçalho + dados); mínimo 8 bytes.
ChecksumDetecção de erro sobre pseudo-cabeçalho + cabeçalho + dados.

Checksum: opcional no IPv4, obrigatório no IPv6

No IPv4, o checksum pode ser 0 (desligado). No IPv6 é obrigatório, pois o cabeçalho IPv6 não tem checksum próprio.

Pseudo-cabeçalho: o cálculo inclui os endereços IP de origem/destino, garantindo que o datagrama chegou ao host e protocolo certos.

Tamanho e fragmentação

O campo Comprimento tem 16 bits, mas o limite prático vem do IP:

máx. teórico = 65535 bytes
− 8 (cabeçalho UDP)
− 20 (cabeçalho IPv4)
= 65507 bytes de carga útil

Quem fragmenta é o IP

O UDP não fragmenta. Se o datagrama exceder a MTU, o IP o fragmenta — e a perda de um único fragmento descarta a mensagem inteira. Por isso, na prática, evita-se datagramas grandes.

Sem controle de congestionamento: o UDP não recua diante da rede cheia. Aplicações que enviam muito UDP precisam limitar a taxa por conta própria para não causar congestão.

UDP × TCP

AspectoUDPTCP
ConexãoSem conexãoOrientado a conexão
ConfiabilidadeNão garantidaGarantida (ACK + retransmissão)
OrdemNão preservadaPreservada
Cabeçalho8 bytes20–60 bytes
Controle de fluxo/congestãoNãoSim
Modelo de dadosMensagens (datagramas)Fluxo de bytes
LatênciaMenorMaior (handshake, controle)
Sem head-of-line blocking: no UDP, um datagrama perdido não bloqueia os seguintes — vantagem do TCP justamente invertida para mídia em tempo real.

Onde o UDP é usado

Consultas rápidas

DNS, DHCP, SNMP, NTP: uma pergunta, uma resposta — abrir conexão seria desperdício.

Tempo real

VoIP, videoconferência, streaming e jogos online: latência baixa importa mais que perfeição.

QUIC / HTTP/3

O QUIC roda sobre UDP e reimplementa confiabilidade, multiplexação e cifragem — base do HTTP/3.

Confiabilidade sob medida: protocolos como RTP/RTCP (mídia) e o próprio QUIC adicionam na aplicação apenas as garantias que precisam, sem o peso completo do TCP.

Segurança: reflexão e amplificação

Atacante forja origem Servidor (DNS/NTP) Servidor (open) Servidor (memcached) Vítima inundada consultas pequenas (origem = vítima) respostas enormes → DDoS

Sem handshake, é trivial forjar a origem: a vítima recebe respostas que nunca pediu.

Fator de amplificação: DNS ~28–50×, NTP ~500×, memcached ~50000×. Defesas: anti-spoofing BCP38, rate limiting de respostas e fechar serviços abertos.

Outras ameaças e o panorama

UDP flood

Enxurrada de datagramas a portas aleatórias força o alvo a gerar muitos ICMP "porta inalcançável", esgotando recursos.

Spoofing e injeção

Sem estado de conexão, falsificar a origem e injetar datagramas é mais fácil que no TCP. A defesa real é cifrar/autenticar na aplicação (DTLS, QUIC).

Boa prática: serviços UDP públicos devem validar tamanho de requisição, limitar taxa e, sempre que possível, exigir autenticação — não confiar na origem informada.
Síntese

Em resumo

O UDP é o transporte minimalista: sem conexão, sem garantias e com apenas 8 bytes de cabeçalho (portas, comprimento, checksum). Troca confiabilidade por baixa latência, sendo ideal para DNS, VoIP, streaming, jogos e o moderno QUIC/HTTP/3. Sua simplicidade, porém, abre porta a spoofing e ataques de amplificação — exigindo defesas de rede e segurança na própria aplicação.

Voltar aos Tópicos