Skip to content

TCP vs. UDP

6 de maio de 2021

Neste artigo

O Transmission Control Protocol e o User Datagram Protocol são dois protocolos da camada de transporte amplamente usados ​​com o Internet Protocol. Um protocolo é um conjunto de procedimentos e regras que dois computadores seguem para se entender e trocar dados. Embora o TCP seja o protocolo mais comumente usado dos dois, o UDP é mais útil em algumas situações.

Descobertas Gerais

TCP

  • Garante que os dados cheguem conforme enviados.
  • Erro-verifica fluxos de dados.
  • Um cabeçalho de 20 bytes permite 40 bytes opcionais de dados de função.
  • Mais lento que UDP.
  • Melhor para aplicativos que exigem confiabilidade.

UDP

  • Nenhuma garantia de que os dados chegarão.
  • Nenhuma verificação de erro fornecida.
  • Um cabeçalho de 8 bytes permite apenas dados de função obrigatórios.
  • Mais rápido que o TCP.
  • Melhor para aplicativos que exigem velocidade.

Ambos os protocolos enviam dados pela Internet em pacotes. Dos dois, o TCP é orientado à conexão. Depois que uma conexão é feita, os dados viajam bidirecionalmente. UDP é um protocolo mais simples sem conexão. O TCP é mais robusto do que o UDP. Ele fornece funções de correção de erros e alta confiabilidade. O UDP é mais rápido que o TCP, principalmente porque não fornece correção de erros. Além disso, o TCP lida com o controle de fluxo, enquanto o UDP não tem uma opção para controle de fluxo.

Melhor para confiabilidade: TCP

TCP

  • Entrega garantida de dados.
  • Rastreia pacotes de dados.
  • Verifica os pacotes em busca de erros.
  • Controle de fluxo.
  • Cabeçalhos de 20 bytes com opção para mais.

UDP

  • Sem garantia de entrega.
  • Os pacotes podem ser perdidos.
  • Sem controle de fluxo.
  • Os cabeçalhos são limitados a 8 bytes.

O TCP garante a entrega de dados ao receptor. Se algum dado for perdido, o TCP tomará medidas para recuperar os dados perdidos e reenviá-los. Para fazer isso, o TCP rastreia pacotes de dados e verifica se há erros nos pacotes. UDP não garante a entrega de dados. Além disso, os pacotes UDP podem ser perdidos em trânsito ou corrompidos. Tanto o TCP quanto o UDP usam cabeçalhos como parte do empacotamento dos dados da mensagem para transferência por conexões de rede. Como o TCP é o mais robusto dos dois protocolos, seu cabeçalho é maior em 20 bytes com uma opção para dados adicionais, enquanto os cabeçalhos UDP são limitados a 8 bytes de tamanho.

Melhor para velocidade: UDP

TCP

  • Lento porque executa muitas funções.

UDP

  • Rápido porque oferece funções limitadas.

Embora o TCP seja confiável, é mais lento que o UDP, principalmente porque executa mais funções. Os usuários finais que exigem a velocidade mais rápida possível, como jogadores e pessoas que trabalham com vídeo, se beneficiam do UDP.

Melhor para uso: depende do uso

TCP

  • Melhor para web, transferência de arquivos, e-mail e shell seguro.

UDP

  • Melhor para VPNs, streaming de vídeo, VoIP, transmissões ao vivo e jogos online.

Como o TCP é confiável, ele é melhor em situações que exigem alta confiabilidade, mas não exigem velocidade, como na web, e-mail e FTP. A velocidade do UDP o torna mais adequado para jogos online, transmissões ao vivo, tunelamento VPN e streaming de vídeos.

Formato de cabeçalho TCP

Cada cabeçalho TCP possui 10 campos obrigatórios, totalizando 20 bytes (160 bits) de tamanho. Ele pode incluir opcionalmente um campo de dados adicional de até 40 bytes de tamanho.

Lifewire
8 bits equivalem a 1 byte. Os cabeçalhos TCP aparecem na seguinte sequência, começando com os pontos de extremidade de comunicação de origem e destino:

  • Número da porta TCP de origem (2 bytes ou 16 bits): O número da porta TCP de origem representa o dispositivo de envio.
  • Número da porta TCP de destino (2 bytes ou 16 bits): O número da porta TCP de destino é o ponto de extremidade de comunicação do dispositivo receptor.
  • Número sequencial (4 bytes ou 32 bits): Os remetentes de mensagens usam números de sequência para marcar a ordem de um grupo de mensagens.
  • Número de confirmação (4 bytes ou 32 bits): remetentes e receptores usam a confirmação campo de números para comunicar os números de sequência das mensagens que foram recentemente recebidas ou que se espera que sejam enviadas.
  • Deslocamento de dados TCP (4 bits): O campo de deslocamento de dados armazena o tamanho total de um cabeçalho TCP em múltiplos de quatro bytes. Um cabeçalho que não usa o campo opcional TCP tem um deslocamento de dados de 5 (representando 20 bytes), enquanto um cabeçalho que usa o campo opcional de tamanho máximo tem um deslocamento de dados de 15 (representando 60 bytes).
  • Dados reservados (3 bits): Os dados reservados nos cabeçalhos TCP sempre têm um valor zero. Este campo alinha o tamanho total do cabeçalho como um múltiplo de quatro bytes, o que é importante para a eficiência do processamento de dados do computador.
  • Sinalizadores de controle (até 9 bits): o TCP usa um conjunto de seis sinalizadores de controle padrão e três estendidos – cada um um bit individual representando On ou Off – para gerenciar o fluxo de dados em situações específicas.
  • Tamanho da janela (2 bytes ou 16 bits): os remetentes TCP usam um número, chamado tamanho da janela, para regular a quantidade de dados que eles enviam a um receptor antes de exigir uma confirmação em retorno. Se o tamanho da janela for muito pequeno, a transferência de dados de rede é desnecessariamente lenta. Se o tamanho da janela for muito grande, o link de rede pode ficar saturado ou o receptor pode não ser capaz de processar os dados de entrada com rapidez suficiente, resultando em desempenho lento. Algoritmos de janela integrados ao protocolo calculam dinamicamente os valores de tamanho e usam esse campo de cabeçalhos TCP para coordenar as alterações entre remetentes e destinatários.
  • Checksum TCP (2 bytes ou 16 bits): O valor da soma de verificação dentro de um cabeçalho TCP é gerado pelo remetente do protocolo como uma técnica matemática para ajudar o receptor a detectar mensagens corrompidas ou adulteradas.
  • Ponteiro urgente (2 bytes ou 16 bits): O campo de ponteiro urgente geralmente é definido como zero e ignorado, mas em conjunto com um dos sinalizadores de controle, ele pode ser usado como um deslocamento de dados para marcar um subconjunto de uma mensagem como requerendo processamento prioritário.
  • Dados opcionais de TCP (0 a 40 bytes): Os usos de dados TCP opcionais incluem suporte para confirmação especial e algoritmos de escala de janela.

Formato de cabeçalho UDP

Como o UDP é limitado em capacidade em comparação ao TCP, seus cabeçalhos são menores. Um cabeçalho UDP contém 8 bytes, divididos nos quatro campos obrigatórios a seguir:

  • Número da porta UDP de origem (2 bytes): O número da porta UDP de origem representa o dispositivo de envio.
  • Número da porta UDP de destino (2 bytes): O número da porta UDP de destino é o ponto de extremidade de comunicação para o dispositivo receptor.
  • Comprimento dos dados (2 bytes): O campo de comprimento em UDP representa o tamanho total de cada datagrama, incluindo o cabeçalho e os dados. Este campo varia em valor de um mínimo de 8 bytes – o tamanho do cabeçalho obrigatório – a tamanhos acima de 65.000 bytes.
  • UDP checksum (2 bytes): Semelhante ao TCP, uma soma de verificação UDP permite que os receptores verifiquem os dados de entrada para quaisquer bits corrompidos da mensagem.

Veredicto Final

Há uma razão pela qual o TCP é o protocolo mais comumente usado. É robusto e confiável e garante que os dados sejam recebidos exatamente como foram enviados. Seu fluxo de informações verificado por erros pode desacelerá-lo um pouco, mas na maioria dos casos, o atraso não é um obstáculo. O momento em que o UDP brilha mais que o TCP é quando a velocidade é extremamente importante, como no streaming de vídeos, VPNs ou jogos online.