TCP vs UDP
TCP vs UDP: handshake, garantia de entrega, latencia e casos de uso reais. Comparativo com QUIC e HTTP/3 e exemplos de jogos, streaming e DNS.
TCP e UDP são os dois protocolos de transporte que movem praticamente todo o tráfego da internet. TCP garante que os dados cheguem completos e na ordem certa. UDP envia e não olha para trás. Essa diferença fundamental determina se um aplicativo prioriza confiabilidade ou velocidade, e entendê-la explica por que jogos online e videochamadas se comportam de forma diferente de downloads de arquivos e navegação web. Também explica por que o QUIC e o HTTP/3 existem: uma tentativa de ter as duas coisas ao mesmo tempo.
Neste artigo
- Como TCP funciona: handshake e garantia de entrega
- Como UDP funciona: velocidade sem garantia
- Tabela comparativa: 12 dimensões
- Qual usar: casos de uso reais
- QUIC e HTTP/3: o protocolo que mistura os dois
- TCP vs UDP em jogos online no Brasil
- Como identificar qual protocolo seu aplicativo usa
- Perguntas frequentes
Como TCP funciona: handshake e garantia de entrega
TCP (Transmission Control Protocol) foi definido na RFC 793 em 1981 e atualizado mais recentemente pela RFC 9293 (2022). Opera na Camada 4 do modelo OSI e é orientado a conexão: antes de trocar um único byte de dado, os dois lados precisam completar o handshake de três vias.
O handshake de três vias (SYN-SYN/ACK-ACK)
Cliente envia SYN (synchronize) com um número de sequência inicial aleatório. Servidor responde com SYN/ACK, confirmando o SYN do cliente e enviando seu próprio número de sequência. Cliente responde com ACK, confirmando o SYN do servidor. Só então a conexão está estabelecida e dados podem fluir.
Esse handshake custa pelo menos um RTT (Round-Trip Time) antes de qualquer dado. Para uma conexão com 50ms de RTT, o overhead inicial é de 50ms só para estabelecer a sessão.
Garantia de entrega e controle de sequência
Cada segmento TCP carrega um número de sequência. O receptor confirma com ACK (acknowledgment) o que recebeu. Se o ACK não chega dentro do tempo de retransmissão (RTO), o emissor reenvia o segmento. Isso garante que os dados cheguem, mas introduz latência variável quando há perda.
TCP também reordena segmentos que chegam fora de ordem: se o pacote 3 chega antes do pacote 2, o receptor aguarda o 2 antes de entregar os dados à aplicação. Isso é o head-of-line blocking. Num único fluxo faz sentido. Em múltiplos fluxos multiplexados na mesma conexão TCP (como no HTTP/2), a perda de um pacote de um fluxo congela todos os outros.
Controle de congestionamento
TCP reduz automaticamente a taxa de envio quando detecta congestionamento. Os algoritmos principais usados em 2026 são CUBIC (padrão no Linux desde kernel 2.6.19) e BBR (Bottleneck Bandwidth and Round-trip propagation time), desenvolvido pelo Google. BBR mede o bandwidth e o RTT diretamente em vez de inferir congestionamento por perda, o que melhora o desempenho em enlaces com perda não relacionada ao congestionamento, como fibras com ruído ou conexões via satélite.
Como UDP funciona: velocidade sem garantia
UDP (User Datagram Protocol) está definido na RFC 768 em apenas três páginas. É deliberadamente simples: envia datagramas sem estabelecimento de conexão, sem confirmação de recebimento, sem reordenação e sem controle de fluxo.
O cabeçalho UDP tem exatos 8 bytes: porta de origem (2 bytes), porta de destino (2 bytes), comprimento (2 bytes) e checksum (2 bytes). Para comparação, o cabeçalho TCP mínimo tem 20 bytes e pode chegar a 60 bytes com opções. Menos overhead por pacote significa mais espaço para dados e menos processamento por datagrama.
O que "sem garantia" significa na prática
UDP entrega ou não entrega. Se um datagrama se perde no caminho, o UDP não sabe e não tenta recuperar. A aplicação que usa UDP precisa decidir o que fazer com pacotes perdidos, reordenados ou duplicados. Alguns ignoram. Outros implementam sua própria camada de confiabilidade acima do UDP, como o QUIC faz.
Tabela comparativa: 12 dimensões
| Dimensão | TCP | UDP |
|---|---|---|
| RFC de referência | RFC 9293 (atualização 2022) | RFC 768 (1980) |
| Orientado a conexão | Sim (handshake 3 vias obrigatório) | Não (connectionless) |
| Garantia de entrega | Sim (ACK + retransmissão) | Não (best-effort) |
| Ordenação de pacotes | Sim (números de sequência) | Não (chega na ordem que chegar) |
| Tamanho do cabeçalho | 20 bytes mínimo (até 60 com opções) | 8 bytes fixos |
| Latência de estabelecimento | Mínimo 1 RTT (handshake) | Zero (envia imediatamente) |
| Controle de congestionamento | Sim (CUBIC, BBR, Reno) | Não (a aplicação decide) |
| Head-of-line blocking | Sim (na mesma conexão) | Não |
| Velocidade de transmissão | Controlada pelo congestionamento | Limitada só pela banda disponível |
| Uso típico | HTTP/1.1, HTTP/2, SMTP, FTP, SSH | DNS, jogos, VoIP, streaming, QUIC |
| Suporte nativo a multicast | Não | Sim |
| Complexidade de implementação | Alta (stack de estado completo) | Baixa (sem estado de conexão) |
Qual usar: casos de uso reais
Use TCP quando
Transferência de arquivos via FTP, SFTP ou SCP: cada byte precisa chegar exatamente uma vez, na ordem certa. Um arquivo corrompido por pacote perdido é inútil. HTTP e HTTPS (navegação web clássica com HTTP/1.1 e HTTP/2): páginas web são conjuntos de recursos que precisam chegar completos. E-mail (SMTP, IMAP, POP3): a mensagem precisa chegar inteira. SSH (acesso remoto): comandos executados em sequência dependem de entrega garantida e ordenada.
Use UDP quando
DNS em consultas normais: a pergunta e a resposta cabem em um único datagrama de 512 bytes ou menos. A latência importa mais que garantia. VoIP (chamadas de voz): codecs como Opus (RFC 6716) têm correção de erro embutida e preferem descartar pacotes antigos a esperar retransmissão. Streaming ao vivo (RTMP sobre UDP, SRT): manter o ritmo do vídeo é prioritário. Jogos online em tempo real: posição de jogadores, tiros, eventos de colisão chegam dezenas de vezes por segundo e precisam ser atuais, não antigos.
DNS usa TCP ou UDP?
Ambos, dependendo do tamanho da resposta. Consultas normais usam UDP na porta 53. Se a resposta excede 512 bytes (comum com DNSSEC, que assina registros criptograficamente), o resolvedor tenta novamente via TCP. Transferências de zona DNS (AXFR), que copiam todo o banco de dados de um servidor para outro, sempre usam TCP. Com EDNS0 (RFC 6891), o limite de UDP foi estendido para até 4096 bytes, reduzindo a necessidade de fallback para TCP.
QUIC e HTTP/3: o protocolo que mistura os dois
QUIC foi padronizado pela IETF na RFC 9000 em 2021. Desenvolvido originalmente pelo Google (onde era chamado de gQUIC), o QUIC roda sobre UDP e reimplementa do zero as funções que faltam no UDP: controle de fluxo, multiplexação de streams sem head-of-line blocking, retransmissão seletiva e criptografia TLS 1.3 embutida.
HTTP/3 usa QUIC como transporte. A mudança em relação ao HTTP/2 sobre TCP é fundamental: no HTTP/2, múltiplos streams compartilham uma conexão TCP, e a perda de um pacote bloqueia todos os streams. No HTTP/3 sobre QUIC, cada stream é independente. Um pacote perdido de um stream não impacta os outros.
Vantagens do QUIC em 2026
Conexão mais rápida: 0-RTT (zero round-trip time) em reconexões, onde o cliente armazena parâmetros da sessão anterior e os reutiliza sem novo handshake. Migração de conexão: se o IP muda durante a sessão (comum em celulares alternando entre Wi-Fi e 4G), a conexão QUIC não precisa ser reestabelecida porque usa um identificador de conexão que não depende do IP. TLS 1.3 embutido: sem negociação separada de TLS e TCP, o que reduz a latência de estabelecimento.
Onde HTTP/3 já está ativo
Google, YouTube, Meta (Facebook, Instagram, WhatsApp), Cloudflare e a maioria dos CDNs grandes já negociam HTTP/3 quando o cliente suporta. Para verificar se seu navegador está usando HTTP/3, abra as ferramentas do desenvolvedor (F12), aba Rede, e observe a coluna Protocolo. "h3" indica HTTP/3 sobre QUIC.
TCP vs UDP em jogos online no Brasil
Jogos competitivos operam com servidores dedicados na América do Sul, geralmente em São Paulo (principal hub da IX.br) ou Fortaleza (próximo aos cabos submarinos). Os protocolos de transporte para dados de jogo são quase universalmente UDP.
League of Legends no servidor BR1 usa UDP para pacotes de gameplay (posição, habilidades, dano) e TCP para lobby, chat e dados do perfil. A latência média esperada de São Paulo é 10-30ms. Do interior de Minas Gerais ou Nordeste, 30-80ms dependendo do roteamento do ISP local até o IX.br.
Valorant usa UDP com pacotes criptografados para o protocolo de gameplay e TCP para o cliente Riot. O servidor SA fica em São Paulo (riot.com/servers). Counter-Strike 2 usa o protocolo Source Engine sobre UDP, com tick rate de 64 Hz em servidores públicos e 128 Hz em competitivo.
| Dado transmitido | Protocolo | Motivo |
|---|---|---|
| Posição e ações dos jogadores | UDP | Dado desatualizado tem menos valor que novo dado atual |
| Chat, lobby, perfil | TCP | Mensagens precisam chegar completas e na ordem |
| Atualizações e patches | TCP (HTTP/HTTPS) | Integridade de arquivo é crítica |
| Voz em jogo (VoIP) | UDP | Latência importa mais que qualidade |
| Eventos de jogo (kills, pontos) | UDP com confirmação customizada | Rápido com proteção contra perda crítica |
Como identificar qual protocolo seu aplicativo usa
No Windows, o comando netstat -an no Prompt de Comando lista todas as conexões ativas com protocolo (TCP ou UDP), endereço local, endereço remoto e estado. Para filtrar apenas conexões de um processo específico, use netstat -b (requer executar como administrador).
No Linux e macOS, ss -tunap lista sockets TCP e UDP ativos com o processo associado. Para captura de pacotes e análise detalhada, o Wireshark filtra por protocolo: tcp ou udp no campo de filtro mostram apenas as conexões relevantes.
Para verificar HTTP/3 no navegador: Chrome e Edge mostram o protocolo na coluna "Protocol" na aba Network do DevTools (F12). "h3" é HTTP/3 sobre QUIC, "h2" é HTTP/2 sobre TCP, "http/1.1" é HTTP/1.1. Firefox mostra informações similares na aba Rede.
Perguntas frequentes sobre TCP e UDP
Qual a diferença principal entre TCP e UDP?
TCP garante que os dados cheguem completos, na ordem certa, sem perda. Para isso usa handshake de três vias, números de sequência e retransmissão automática de pacotes perdidos. UDP não faz nenhuma dessas garantias: envia o datagrama e não verifica se chegou. O custo do TCP é latência adicional pelo handshake e pela retransmissão. A vantagem do UDP é velocidade e simplicidade para aplicações que preferem dado atual a dado garantido.
Jogos online usam TCP ou UDP?
A parte de gameplay (posição de jogadores, tiros, eventos em tempo real) usa UDP. Chat, lobby e atualizações usam TCP. Jogos competitivos com tick rate alto (CS2 128 Hz, Valorant 128 Hz) precisam enviar dezenas de pacotes por segundo, e esperar retransmissão TCP tornaria o jogo injogável com qualquer perda de pacote. UDP permite que o cliente descarte informação antiga e continue com o estado atual do jogo.
O que é o handshake de três vias do TCP?
São três mensagens trocadas antes de qualquer dado: o cliente envia SYN com um número de sequência inicial, o servidor responde com SYN/ACK confirmando e iniciando sua própria sequência, o cliente confirma com ACK. Só após esse handshake a conexão está pronta para dados. O handshake custa pelo menos um RTT completo, o que em conexões com 50ms de latência significa 50ms de espera antes de o primeiro byte de dado ser enviado.
QUIC substitui TCP ou UDP?
QUIC (RFC 9000) roda sobre UDP mas reimplementa no nível da aplicação as garantias que o UDP não oferece: controle de fluxo, retransmissão seletiva e multiplexação de streams independentes. HTTP/3 usa QUIC. A vantagem sobre TCP é eliminar o head-of-line blocking (perda em um stream não bloqueia outros) e suportar migração de conexão sem rehandshake quando o IP muda. QUIC não substitui UDP, ele usa UDP como transporte.
DNS usa TCP ou UDP?
Por padrão, UDP na porta 53 para consultas normais. Quando a resposta excede 512 bytes (comum com DNSSEC ou registros TXT longos), o resolvedor automaticamente tenta novamente via TCP na porta 53. Transferências completas de zona (AXFR) sempre usam TCP. Com EDNS0 (RFC 6891), o limite UDP foi estendido para até 4096 bytes, o que reduziu os fallbacks para TCP em consultas normais.
Qual porta o TCP e UDP usam?
Portas são independentes do protocolo de transporte: tanto TCP quanto UDP usam portas de 0 a 65535. A IANA mantém o registro oficial de portas bem conhecidas: HTTP é TCP 80, HTTPS é TCP 443, DNS é UDP/TCP 53, QUIC usa UDP 443, SSH é TCP 22, VoIP SIP é UDP 5060. Uma porta pode ter serviços diferentes em TCP e UDP: a porta 53/UDP é DNS, a porta 53/TCP também é DNS (para respostas grandes), mas com comportamentos distintos.
VoIP usa TCP ou UDP?
UDP para o áudio em tempo real (fluxo RTP), TCP para sinalização de chamada (SIP em alguns casos) ou UDP para sinalização também (SIP sobre UDP). O áudio vai por UDP porque fragmentos de voz atrasados não têm utilidade: é melhor ter uma pequena lacuna no áudio do que congelar a conversa esperando a retransmissão de um pacote TCP perdido. Codecs como Opus (RFC 6716) têm correção de erro de forward error correction embutida para compensar perdas pequenas.
O que acontece com pacotes UDP perdidos?
Dependendo da aplicação. DNS descarta a consulta e o resolvedor tenta novamente após um timeout. Em jogos, o cliente usa interpolação: assume a posição mais provável do jogador com base nos últimos pacotes recebidos, e corrige quando o próximo chega. Em VoIP, o codec preenche a lacuna com ruído de conforto ou silêncio curto. Protocolo UDP simplesmente não sabe que o pacote se perdeu. Toda a lógica de recuperação fica na camada de aplicação.
Artigos relacionados
TCP e UDP não são concorrentes. São ferramentas para casos distintos. TCP carrega a web, o e-mail e qualquer transferência onde perda é inaceitável. UDP carrega os jogos, as chamadas de voz e o streaming ao vivo onde latência baixa vale mais que entrega perfeita. O QUIC está redefinindo essa divisão para navegação web, mas o princípio fundamental permanece. Use a ferramenta Ping e Traceroute para medir latência e perda na sua conexão.
Teste de Ping
Leituras Relacionadas
- O que e ping — O que e ping: ICMP Echo, latencia, RTT, criado por Mike Muuss em 1983, como usar para diagnostico de rede e valores normais de ping no Brasil.
- Jitter explicado — Jitter explicado de forma clara: o que e variacao de latencia, como afeta VoIP e jogos online, valor ideal abaixo de 30 ms e como medir na sua conexao.
- Perda de pacotes causas — Perda de pacotes causas: congestionamento, hardware defeituoso, interferencia Wi-Fi, ISPs regionais BR. Fluxograma de diagnostico passo a passo com ping e traceroute.