O que é UDP e TCP? Entenda quais as diferenças e como funciona cada Protocolo

Yan Orestes
Yan Orestes

Compartilhe

Você já parou para pensar como, durante uma chamada de vídeo, a imagem pode pixelar por um segundo e depois voltar ao normal, mas o áudio continua fluindo? 

Ou por que, ao baixar um arquivo, ele nunca vem corrompido, mesmo que sua internet oscile? Essa dualidade é um dos problemas centrais da comunicação na internet.

Por trás desses comportamentos estão dois protocolos centrais da camada de transporte: TCP e UDP.

Recentemente, passei por isso na prática ao desenvolver uma aplicação simples de bate-papo online e enviar para um amigo testar. As mensagens não faziam sentido para nenhum dos dois.

Ao trocar prints, percebemos que a ordem das mensagens estava diferente para cada um, mesmo com a internet boa. Depois de pesquisar, descobri o culpado: o protocolo que escolhi na Camada de Transporte.

Eu havia usado o UDP. Este é um cenário clássico que todo desenvolvedor, seja de back-end, jogos ou redes, precisa entender. A sua aplicação precisa de confiabilidade ou de velocidade? A resposta define se você deve usar TCP ou UDP.

Neste artigo, vamos mergulhar fundo nesses dois pilares da internet, entender a diferença entre TCP e UDP, o que são portas TCP e UDP, e como o cabeçalho TCP e UDP define o comportamento de cada um.

O que é a Camada de Transporte?

Antes de falarmos de TCP ou UDP, precisamos entender onde eles vivem. A comunicação na internet é descrita por modelos de camadas, sendo o mais comum o TCP/IP (de 5 camadas) e o mais teórico o OSI (de 7 camadas).

Em ambos, existe a Camada de Transporte.

Pense assim: a Camada de Rede (onde mora o IP) é como o serviço de correio que sabe entregar uma carta no endereço de um prédio. O trabalho dela é levar o pacote de máquina para máquina.

Mas e quando o pacote chega no prédio? Quem deve recebê-lo? O apartamento 101 (Netflix), o 202 (seu jogo online) ou o 303 (seu navegador web)?

A Camada de Transporte é a "portaria" do prédio. Ela é responsável pela comunicação processo-a-processo, ou seja, de aplicação-para-aplicação

Ela usa um conceito chamado portas para saber exatamente qual programa deve receber quais dados.

O que são Portas TCP e UDP?

Uma porta é simplesmente um número (de 0 a 65535) que identifica um serviço ou aplicação específica em uma máquina.

  • Portas Conhecidas (0-1023): São reservadas para serviços padrão. Por exemplo, HTTPS (web segura) quase sempre usa a porta 443/TCP, e o DNS (sistema de nomes) usa a 53/UDP.
  • Portas Registradas (1024-49151): Usadas por aplicações específicas (ex: um banco de dados).
  • Portas Dinâmicas/Privadas (49152-65535): Usadas pelo seu sistema operacional para conexões de saída (ex: quando seu navegador abre uma conexão).

Quando dizemos "porta 443/TCP", estamos especificando não só o "apartamento" (443), mas também o tipo de entrega (TCP). É aqui que a nossa diferença entre TCP e UDP começa.

Banner da Alura anunciando o Último Deploy do Ano com até 40% de desconto nos cursos. A imagem convida quem ainda tem metas para o fim do ano a transformar esse momento em uma oportunidade de fazer upgrade na carreira em tecnologia. Há destaque para a oferta por tempo limitado e um botão com a chamada “Matricule-se com desconto”. Promoção da Alura para estudar programação, dados, design e tecnologia com desconto especial.

O que é TCP (Transmission Control Protocol)?

O TCP é o protocolo de transporte mais utilizado na web. Sua característica principal é uma só: confiabilidade.

O TCP é um protocolo orientado à conexão. Pense nele como uma chamada telefônica.

  1. Você disca (SYN).
  2. A outra pessoa atende e diz "Alô?" (SYN-ACK).
  3. Você diz "Oi, é o Fabrício!" (ACK).
  4. Agora, e somente agora, a conversa começa.

Vocês dois sabem que a linha está aberta e que o outro está ouvindo. Se você disser algo e a outra pessoa não ouvir ("O que você disse?"), você repete. As frases são ouvidas na ordem em que são ditas. No final, vocês se despedem ("Tchau", "Tchau") e desligam (FIN).

Como funciona o Protocolo TCP?

O TCP garante a confiabilidade através de três mecanismos principais:

  1. O Handshake de Três Vias (Three-Way Handshake):
    É o processo de "discar e atender" que descrevemos.
    • SYN (Synchronize): O Cliente envia um pacote SYN ao Servidor, dizendo "Quero iniciar uma conexão".
    • SYN-ACK (Synchronize-Acknowledgment): O Servidor responde com SYN-ACK, dizendo "Eu recebi seu pedido e também quero me conectar a você".
    • ACK (Acknowledgment): O Cliente responde com ACK, dizendo "Recebido! A conexão está estabelecida".
      A partir daqui, os dados podem ser enviados.
  2. Números de Sequência e Confirmação (ACKs):
    O TCP quebra dados grandes em pacotes menores, chamados segmentos. Cada segmento recebe um "número de sequência". O receptor usa esses números para:
    • Remontar os pacotes na ordem correta (mesmo que cheguem fora de ordem pela internet).
    • Confirmar o recebimento. Para cada pacote (ou grupo de pacotes) recebido, o receptor envia um ACK de volta, dizendo "Recebi até o pacote X".
    • Solicitar retransmissão: Se o transmissor não receber um ACK para um pacote após um certo tempo, ele assume que o pacote se perdeu e o reenvia.
  3. Controle de Fluxo:
    O TCP também gerencia a velocidade da conexão para não sobrecarregar o receptor. Se o receptor estiver lento, ele pode dizer ao transmissor: "Ei, vá mais devagar!", e o transmissor reduz a taxa de envio.

O Cabeçalho TCP: Como funciona a confiabilidade?

O cabeçalho TCP e UDP é a "etiqueta de envio" de cada pacote, e o do TCP é complexo. É o preço da confiabilidade.

A estrutura do Cabeçalho TCP, mostrando campos cruciais para a infraestrutura de redes, como Portas, Números de Sequência e Flags.

Sem nos aprofundarmos demais, as partes cruciais do cabeçalho TCP são:

  • Porta de Origem e Porta de Destino: Define quais aplicações estão conversando.
  • Número de Sequência: Diz a posição desse pacote na "frase" geral.
  • Número de Confirmação (ACK Number): Diz qual o próximo pacote que o receptor espera receber.
  • Flags (Sinalizadores): Bits que controlam a conexão (ex: SYN, ACK, FIN - para finalizar).
  • Janela de Recepção: Usada para o Controle de Fluxo.

Quando usar o TCP?

Use o TCP sempre que cada bit de dados for crucial e a ordem for fundamental. A pequena latência (atraso) causada pelo handshake e pelos ACKs é um preço aceitável a se pagar pela integridade.

  • Navegação na Web (HTTP/HTTPS): Você não pode receber o HTML do seu site com partes faltando ou imagens pela metade.
  • Envio de E-mail (SMTP, IMAP): Uma letra faltando pode mudar o sentido de uma frase.
  • Transferência de Arquivos (FTP, SSH): Um bit errado pode corromper um arquivo .zip ou um executável.
  • Aplicações de Chat (como a minha!): A ordem das mensagens é essencial para uma conversa fazer sentido.

O que é UDP (User Datagram Protocol)?

O UDP é o oposto do TCP. Sua característica principal é a velocidade, alcançada ao custo da confiabilidade.

O UDP é um protocolo não orientado à conexão. Pense nele como enviar um cartão-postal (ou um anúncio em alto-falante).

  1. Você escreve o endereço e a mensagem.
  2. Você joga na caixa de correio.
  3. Pronto.

Você não sabe se o cartão chegou. Você não sabe quando ele chegou. 

E se você enviar 10 cartões, eles podem chegar fora de ordem, ou alguns podem se perder no caminho. Você não recebe confirmação. Isso é o que chamamos de "fire and forget" (atire e esqueça).

Como funciona o Protocolo UDP?

O UDP é simples. Ele não faz nada do que o TCP faz.

  • Sem Handshake: Uma aplicação pode simplesmente começar a disparar pacotes UDP (chamados datagramas) para um destino. Não há "alô" inicial.
  • Sem Confirmação (ACKs): O receptor não envia confirmação de recebimento.
  • Sem Ordem de Sequência: Os pacotes não são numerados. Se chegarem fora de ordem, a aplicação receptora que se vire para lidar com isso (ou não).
  • Sem Controle de Fluxo: O UDP envia os dados na velocidade que a aplicação manda, sem se preocupar se o receptor está conseguindo processar.

Foi por isso que minha aplicação de chat falhou: eu escolhi o UDP. As mensagens (datagramas) chegavam rápido, mas algumas se perdiam e outras chegavam fora de ordem, tornando a conversa ininteligível.

O cabeçalho UDP: foco em velocidade

Se o cabeçalho TCP é complexo, o do UDP é minimalista. É por isso que ele é tão rápido.

O Cabeçalho UDP é muito mais simples, contendo basicamente portas, tamanho e um checksum opcional.

Ele contém apenas 4 campos:

  • Porta de Origem e Porta de Destino: (Igual ao TCP).
  • Tamanho: O tamanho do datagrama.
  • Checksum (Soma de Verificação): Um cálculo simples para verificar (mas não corrigir) se o pacote foi corrompido no caminho. No UDP, este campo é opcional.

Quando usar o UDP?

Use o UDP sempre que a velocidade e a baixa latência forem mais importantes do que a perda ocasional de um pacote. É ideal para dados em tempo real, onde um pacote antigo é inútil.

  • Jogos Online: Em um jogo de tiro (FPS), é mais importante receber a posição atual do oponente agora do que receber a posição dele de 3 segundos atrás (que o TCP teria retransmitido). Se um pacote se perder, o jogo simplesmente ignora e usa o próximo.
  • Streaming de Vídeo e Áudio (Livestreams, VoIP): Em uma chamada de Zoom ou Netflix, se um pequeno pacote de vídeo se perder, você vê um "pixelado" por uma fração de segundo. É melhor "pular" esse pacote perdido do que pausar o stream inteiro para esperar a retransmissão (como o TCP faria).
  • Serviços de DNS (Domain Name System): Quando seu computador pergunta "Qual o IP de alura.com.br?", ele envia uma pequena pergunta via UDP. É uma troca tão rápida que é mais eficiente enviar via UDP. Se a resposta se perder, o sistema operacional simplesmente pergunta de novo.

TCP vs UDP: a diferença chave entre cada um

A melhor forma de entender a diferença entre TCP e UDP é colocá-los lado a lado. Não existe um "melhor" ou "pior"; existe o protocolo TCP e UDP certo para o trabalho certo.

CaracterísticaTCP (Transmission Control Protocol)UDP (User Datagram Protocol)
ConfiabilidadeAlta. Garante a entrega.Baixa. "Melhor esforço", sem garantia.
ConexãoOrientado à Conexão (Handshake).Não Orientado à Conexão.
Ordem dos PacotesGarantida.Não garantida.
Controle de ErroExtensivo (ACKs, Retransmissão).Básico (Checksum opcional).
Controle de FluxoSim. Gerencia a velocidade.Não.
VelocidadeMais lento (devido ao overhead).Muito rápido.
Overhead (Cabeçalho)Pesado (20 bytes ou mais).Leve (Apenas 8 bytes).
Quando usarWeb (HTTPS), E-mail, Arquivos, Chat.Jogos, Streaming (Vídeo/Áudio), VoIP, DNS.

Escolher o protocolo certo é questão de estratégia

Entender o protocolo TCP e UDP é sair do "apenas funciona" para o "eu sei por que funciona". 

Como vimos no meu exemplo do chat, escolher o protocolo errado pode arruinar uma aplicação. Escolher o certo é o que permite que jogos tenham baixa latência e que seu banco opere com segurança.

Essa decisão é uma das responsabilidades fundamentais do profissional de tecnologia. Não é um conhecimento restrito a Administradores de Rede. Um desenvolvedor Back-end precisa saber disso ao desenhar uma API de alta performance.

Um engenheiro DevOps precisa configurar firewalls e balanceadores de carga baseado em portas TCP e UDP. Até mesmo um desenvolvedor de Front-end se beneficia ao entender por que certos recursos da página carregam de formas diferentes.

Carreiras e fonte de estudo

Para construir essa base sólida, que vai dos fundamentos de redes até a construção de aplicações complexas na nuvem, a Alura é sua principal aliada. 

Nossas Carreiras em Back-end e DevOps são desenhadas para te dar o conhecimento prático e teórico que o mercado exige, permitindo que você construa sistemas mais rápidos, resilientes e eficientes.

E para quem já está na trilha de gestão e busca o salto estratégico, a escolha entre TCP e UDP tem impactos financeiros e de performance gigantescos. 

Liderar o design de uma arquitetura de streaming global ou de um sistema financeiro de alta frequência exige uma imersão profunda. 

Para isso, os MBAs e pós-graduações da FIAP são o caminho reconhecido pelo mercado para quem quer se tornar o C-Level ou Arquiteto de Soluções que define a estratégia de tecnologia da empresa.

Perguntas Frequentes (FAQ) sobre Protocolos de Transporte

1. O que são "portas TCP e UDP"? Elas são diferentes?

As portas são as mesmas (números de 0 a 65535). A diferença é qual protocolo está "ouvindo" naquela porta. Um servidor pode, por exemplo, rodar um serviço na porta 80/TCP (para web) e um serviço completamente diferente na porta 80/UDP. Pense como se fossem "docas" de entrega diferentes no mesmo "apartamento".

2. O UDP é "pior" ou menos seguro que o TCP?

Não. "Menos confiável" não significa "pior". Para um jogo online, o TCP seria péssimo, causando "lag" e travamentos. A segurança (criptografia) não é responsabilidade direta do TCP ou UDP, mas de camadas superiores (como o TLS, que roda sobre o TCP para criar o HTTPS).

3. Por que o streaming (como YouTube) usa TCP?

Essa é uma ótima observação! Enquanto o streaming ao vivo (lives) e chamadas (VoIP) preferem UDP, serviços de streaming sob demanda (YouTube, Netflix) frequentemente usam TCP. Por quê? Porque o vídeo não é em tempo real. Seu player pode "bufferizar" (baixar) vários segundos de vídeo com antecedência. Nesse caso, a confiabilidade do TCP é usada para garantir que o buffer seja preenchido sem corrupção, dando aquela experiência de play sem falhas.

Veja outros artigos sobre DevOps