
MédiaInicianteDevOps
Qual é a principal diferença entre os protocolos TCP e UDP?
Resposta curta
O TCP é um protocolo confiável e orientado à conexão que garante entrega, pedido,
e verificação de erros ao custo de despesas gerais. UDP é um protocolo simples sem conexão
sem garantia de entrega ou pedido, mas é mais rápido e leve.
TCP e UDP são os dois principais protocolos da camada de transporte executados sobre IP. A principal distinção: o TCP é orientado à conexão e confiável, enquanto o UDP não tem conexão e funciona do tipo “disparar e esquecer”.
TCP (RFC 9293)
- Orientado à conexão. Antes de enviar dados, os endpoints realizam um handshake de três vias (3WHS): SYN → SYN-ACK → ACK, sincronizando os números de sequência iniciais.
- Confiável e ordenado. Cada byte recebe um número de sequência; o receptor envia confirmações (ACKs), os segmentos perdidos são retransmitidos e os dados são remontados na ordem original. A integridade é verificada com uma soma de verificação. A RFC 9293 afirma que o TCP "fornece um serviço confiável e em ordem de fluxo de bytes".
- Fluxo de bytes, sem limites de mensagens. O TCP entrega um fluxo de bytes não estruturado: os limites das mensagens não são preservados (o aplicativo deve enquadrar suas próprias mensagens). O UDP, por outro lado, é orientado a mensagens – cada datagrama é entregue como uma unidade discreta e completa ou não é entregue (um sendto = um recvfrom).
- Controle de fluxo e congestionamento. O TCP acelera sua taxa de envio para não sobrecarregar nem o receptor nem a rede.
- Compensação: mais sobrecarga e latência e um cabeçalho maior — 20–60 bytes (20 sem opções, extensíveis por meio de opções como MSS, dimensionamento de janela, SACK).
UDP (RFC 768)
- Sem conexão. Não há aperto de mão; cada datagrama é independente.
- Sem garantias. A RFC diz explicitamente que "a entrega e a proteção duplicada não são garantidas" — o UDP não recupera pacotes perdidos, duplicados ou fora de ordem.
- Corrigido cabeçalho de 8 bytes com apenas quatro campos: Porta de origem, Porta de destino, Comprimento, Soma de verificação.
- Benefícios: baixa latência e sobrecarga, além de suporte para transmissão/multicast.
Quando usar qual
- TCP: web (HTTP/HTTPS sobre TCP), e-mail, transferência de arquivos, SSH — em qualquer lugar que a integridade dos dados seja importante.
- UDP: pesquisas de DNS, jogos on-line, VoIP, streaming de vídeo ao vivo — onde a velocidade é mais importante do que um único pacote perdido.
Pontos de acompanhamento comuns
- O UDP em si não ordena dados, mas um aplicativo pode colocar sua própria lógica em camadas (o QUIC faz isso através do UDP).
- HTTP/3 é executado em QUIC sobre UDP, enquanto HTTP/1.1 e HTTP/2 são executados em TCP.
- A soma de verificação UDP é tecnicamente opcional em IPv4 (um valor zero significa “não computado”), mas obrigatória em IPv6.
