Qual é a diferença entre UDP e TCP?

44

Meu roteador tem dois protocolos (e uma opção "ambos") que eu posso selecionar ao configurar o encaminhamento de porta: UDP e TCP. Qual é a diferença entre esses dois protocolos e quando você selecionaria um sobre o outro no encaminhamento de porta?

    
por Guy 16.05.2009 / 22:25

11 respostas

51

TCP é respaldado por "acks" e "retries" para garantir que os dados cheguem aonde estão indo. UDP é sem conexão e "acionar e esquecer". O UDP é usado principalmente para aplicativos do tipo streaming, em que, se você perder alguns dados, não precisará tentar enviá-los novamente.

Qual deles você usa depende do aplicativo. Por exemplo, um servidor da Web usa TCP.

    
por 16.05.2009 / 22:30
71

Você pode encontrar um bom resumo aqui:

Qual é a diferença entre os protocolos de internet UDP e TCP?

O TCP e o UDP funcionam no modelo TCP / IP da camada de transporte, mas têm um uso muito diferente.

As diferenças mais importantes são:

  • Confiabilidade :
    TCP: orientado a conexões
    UDP: sem conexão
  • Encomendado :
    TCP: pedido de recibo de mensagem é garantido | UDP: o pedido não está garantido
  • Peso do protocolo :
    TCP: peso pesado, devido à sobrecarga de conexão / pedido
    UDP: leve, muito pouca sobrecarga
  • Pacotes :
    TCP: streaming, os dados são lidos como um "fluxo", com nada que distinga onde um pacote termina e outro começa. Pode haver vários pacotes por chamada de leitura.
    UDP: datagramas, um pacote por chamada de leitura.

Estrutura de quadros

Quando os dados são enviados pela rede, eles precisam ser encapsulados nos chamados "quadros". Existem vários métodos de encapsulamento, dependendo do protocolo e da topologia que estão sendo usados. As imagens a seguir mostram como as estruturas de quadros TCP e UDP diferem.

Esta é a estrutura de quadros do TCP:

IssoéaestruturadoquadroUDP,muitomaissimples:

Protocolos típicos que usam TCP são HTTP, FTP e SMTP. Exemplos de protocolos usando UDP são DNS e DHCP.

    
por 16.05.2009 / 22:38
42

E a explicação do nível de CEO:

UDP is when you throw your paper in the general direction of the bin.

TCP is when it misses, you throw exact copies of the same paper again and again until it falls into the bin. There would be paper wastage, even resent TCP packets result in wastage of network or system resources.

    
por 02.06.2009 / 18:20
7

TCP e UDP são ambos protocolos que são executados em cima do IP. O TCP tem entrega garantida e o UDP não. Você selecionaria um ou outro para o encaminhamento de porta, dependendo de qual serviço você está tentando encaminhar. HTTP, por exemplo, é TCP. Se você não sabe qual protocolo o serviço está tentando encaminhar, é quase certamente TCP.

    
por 16.05.2009 / 22:34
3

Para responder a outra parte da sua pergunta, você precisa encaminhar o que seu aplicativo usa. Para encaminhar o tráfego HTTP, selecione TCP. Para encaminhar o tráfego TFTP, selecione UDP. Os programas p2p usam principalmente tcp e udp, então encaminhem os dois.

Tudo depende do protocolo e do programa que você está usando.

    
por 16.05.2009 / 23:12
2

Além das diferenças mencionadas até agora, o TCP também fornece

controle de fluxo. Usando um mecanismo de janela, o destinatário limita quantos octetos (bytes) deseja receber do remetente antes que o remetente precise aguardar permissão para enviar mais dados. O tamanho da janela pode ser alterado pelo receptor conforme a conversa prossegue. Isso permite que um receptor "estrangule" a taxa de dados provenientes de um remetente: o UDP não permite isso e tudo o que um receptor pode fazer é descartar dados que não podem armazenar ou processar na chegada.

alguns recursos mais técnicos, como reconhecimento não contíguo (usa reconhecimentos seletivos para permitir que o remetente retransmiti apenas um quadro ausente em vez do quadro ausente e subsequentes que o receptor já tem, mas não pôde reconhecer da maneira usual), manuseio de congestionamento e retransmissão adaptativa (ajustando o cronômetro que decide com que rapidez reenviar um quadro transmitido quando uma confirmação não é recebida). Eles não são relevantes para o UDP, mas ajudam o TCP a fornecer serviços extras sobre o UDP sem aumentar muito a carga da rede para o mesmo volume de carga útil.

    
por 20.06.2009 / 15:00
2

O TCP faz um esforço para garantir que os dados cheguem ao destinatário; UDP não.

    
por 17.06.2009 / 22:24
1

Não importa todas as respostas explicando uma contra a outra. Para fins de configuração de um encaminhamento de porta, as regras são muito simples: você precisa escolher o TCP, a menos que os documentos para o protocolo / aplicativo que você está usando digam para usar o UDP. Normalmente, os que usam UDP estão relacionados ao streaming, ou coisas muito simples que favorecem protocolos leves / velocidade em relação à confiabilidade (particularmente DNS e NTP). Note que existem outros protocolos além do TCP e do UDP - ICMP, protocolos de tunelamento, etc.

    
por 26.04.2010 / 01:37
1

Quanto mais conhecido for um protocolo, mais roteadores no caminho intervêm com o protocolo. Envie pacotes tcp, e há uma grande probabilidade de os pacotes recebidos serem altamente desconfigurados. O UDP geralmente não é tão mutilado, e os outros 254 protocolos de pay-back de IP geralmente são completamente intocados.

    
por 17.11.2010 / 11:30
0

Protocolo de datagrama de usuário (UDP)

Faz parte dos protocolos básicos do Internet Protocol Suite. Programas em computadores em rede podem enviar mensagens curtas às vezes chamadas de datagramas. O UDP não garante nenhuma confiabilidade (acontece que o datagrama pode chegar fora de ordem, duplicado ou ausente sem aviso prévio). O fato de não verificar se todos os pacotes são realmente entregues é feito, o UDP prova ser mais rápido e eficiente, para aplicativos que não precisam de entrega garantida. UDP encontra seus usos em tais situações:

Aplicativos sensíveis ao tempo. Os problemas devidos a pacotes atrasados são evitados

Também é útil para servidores que respondem a pequenas consultas de um grande número de clientes. O UDP suporta transmissão de pacotes (transmite a todos na rede local) e multicast (transmite a todos os assinantes).

Protocolo de Controle de Transmissão (TCP)

É geralmente chamado de TCP / IP devido à importância desse protocolo no Internet Protocol Suite. O TCP opera em um nível mais alto, preocupado apenas com os dois sistemas finais (por exemplo, entre o navegador da web e um servidor da web). O TCP fornece uma entrega confiável e seqüencial de um fluxo de dados de um programa em um computador para outro em outro computador. Usos comuns do TCP reagrupam o suporte a e-mail e a transferência de arquivos e aplicativos da Web. Entre suas tarefas de gerenciamento, o TCP controla o tamanho da mensagem, a taxa na qual as mensagens são trocadas e o congestionamento do tráfego da rede. Quanto ao IP, ele lida com transmissões de baixo nível de computador para computador como uma mensagem transferida pela Internet.

    
por 13.07.2009 / 19:59
0

Bem, ambos são protocolos de rede baseados em algo chamado Internet Protocol ou IP. O Internet Protocol é o principal protocolo da Internet e é, por exemplo, o que nos permite navegar na web. É por isso que você frequentemente verá esses protocolos escritos como TCP / IP ou UDP / IP. Eles são, na verdade, protocolos centrais da internet.

Em ambos os casos, seus dados são divididos em partes chamadas pacotes. O TCP garante que esses pacotes cheguem ao seu destino e na ordem correta e sem erros.

O UDP, por outro lado, não garante que um pacote de dados chegue. Só vai garantir que, se chegar, não haverá erro.

Normalmente, outros protocolos serão executados sobre TCP e UDP e são conhecidos como protocolos de aplicativo porque operam dentro de um aplicativo e não dentro do sistema operacional. Sua navegação na web usa o protocolo HTTP que usará o protocolo TCP.

Pesquisas de nomes de domínio ou consultas DNS geralmente usam UDP, mas também podem usar o TCP. Vários serviços de streaming usam o UDP abaixo de outros protocolos de aplicativos.

Espero que responda à sua pergunta em inglês mais simples.

    
por 07.07.2010 / 03:55