← Todos os guias

Guia · Redes

TCP e UDP: quem cuida da entrega dos dados?

TCP oferece um fluxo ordenado e confiável de bytes. UDP entrega um serviço de datagramas sem essas garantias. A aplicação precisa escolher ou acrescentar mecanismos conforme sua tarefa; a diferença não se resume a lento contra rápido.

Escrito pela equipe Compuzilla

Publicado em . Atualizado em .

Nesta leitura
Compuzilla sorrindo ao lado de um diagrama: TCP e UDP: quem cuida da entrega dos dados.

TCP e UDP: quem cuida da entrega dos dados

  1. Necessidade da aplicação
  2. Serviço de transporte
  3. Tratamento de perda e ordem
O transporte oferece um conjunto de propriedades; a aplicação organiza o restante do comportamento. Ilustração: equipe Compuzilla.

Duas interfaces para aplicações

Com TCP, o aplicativo trabalha com uma sequência de bytes. O protocolo usa mecanismos para lidar com perdas e apresentar os dados em ordem. Com UDP, trabalha com datagramas; os limites de cada mensagem são mantidos, mas recuperação e ordem não são garantidas pelo serviço.

Ambos participam da comunicação sobre IP. O que o usuário percebe depende também dos mecanismos da aplicação.

Um arquivo precisa chegar completo

Imagine transferir um documento. Receber metade dos bytes não basta para reconstruir o original. TCP pode ajudar a oferecer o fluxo completo e ordenado enquanto a conexão funciona. A aplicação ainda precisa saber onde o documento termina e como tratar interrupções.

TCP não preserva os limites de cada escrita do programa. Se o aplicativo envia tamanho e conteúdo, o receptor precisa interpretar esse formato, mesmo que uma leitura não corresponda a uma escrita.

Atualizações podem envelhecer

Agora imagine uma aplicação que envia posições sucessivas de um objeto. Uma atualização muito atrasada pode ter menos utilidade que uma nova. A aplicação pode usar datagramas e decidir quando descartar, ordenar ou repetir informações.

Esse exemplo explica uma necessidade; não determina que toda comunicação desse tipo use UDP nem que UDP sempre seja melhor. A aplicação pode acrescentar controles de confiabilidade e proteção sobre esse transporte.

Custos e garantias precisam de contexto

Retransmissões e esperas alteram tempo de entrega. No UDP, os mecanismos adicionais do aplicativo também têm custo. O cabeçalho menor não garante menor duração para uma tarefa completa.

Também é preciso separar transporte de criptografia. Nenhum desses protocolos, sozinho, certifica a identidade de um serviço ou a veracidade do conteúdo. Protocolos e componentes adicionais podem fornecer propriedades específicas.

Próxima leitura

Leia protocolo para entender como funções de diferentes camadas se combinam.

Continue aprendendo

  • Verbete TCP — TCP é um protocolo de transporte que oferece aos aplicativos um fluxo confiável e ordenado de bytes entre dois pontos. Usa números de sequência, confirmações e retransmissões, além de mecanismos para controlar o envio de dados.
  • Verbete UDP — UDP é um protocolo de transporte que envia datagramas entre aplicações. Preserva os limites das mensagens enviadas, mas não acrescenta garantia de entrega, ordem ou retransmissão. A aplicação decide como lidar com perda e outras necessidades.
  • Verbete IP — IP é uma família de protocolos que define endereçamento e transporte de datagramas entre redes. IPv4 e IPv6 são versões dessa família. IP ajuda a encaminhar dados ao destino, mas não garante sozinho entrega, ordem ou retransmissão.
  • Verbete Pacote de rede — Pacote de rede é uma unidade de dados transmitida segundo as regras de um protocolo. Em IP, o datagrama combina cabeçalho e conteúdo transportado. Uma comunicação pode usar muitas dessas unidades, cada uma com informações para seu tratamento.

Fontes para aprofundar