Meu roteador possui dois protocolos (e uma opção "ambos") que 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?
46
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:
TCP: orientado a
conexão UDP: sem conexão
TCP: a ordem de recebimento da mensagem é garantida
UDP: a ordem não é garantida
TCP: pesado, por causa da sobrecarga de conexão / pedido
UDP: leve, com muito pouca sobrecarga
TCP: streaming, os dados são lidos como um "stream", sem distinguir onde um pacote termina e o outro começa. Pode haver vários pacotes por chamada de leitura.
UDP: datagramas, um pacote por chamada de leitura.
Quadro estrutural
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 do quadro TCP:
E essa é a estrutura de quadros UDP, muito mais simples:
Os protocolos típicos que usam TCP são HTTP, FTP e SMTP. Exemplos de protocolos usando UDP são DNS e DHCP.
fonte
E a explicação no nível do CEO:
fonte
TCP e UDP são ambos protocolos executados em cima do IP. O TCP tem entrega garantida e o UDP não. Você selecionaria um ou outro para encaminhamento de porta, dependendo do serviço que está tentando encaminhar. HTTP, por exemplo, é TCP. Se você não sabe qual protocolo o serviço que está tentando encaminhar, é quase certamente o TCP.
fonte
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 encaminhe os dois.
Tudo depende do protocolo e do programa que você está usando.
fonte
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 aguarde a permissão para enviar mais dados. O tamanho da janela pode ser alterado pelo receptor à medida que a conversa prossegue. Isso permite que um receptor 'acelere' a taxa de dados provenientes de um remetente: o UDP não permite isso e tudo o que um receptor pode fazer é jogar fora os dados que não podem ser armazenados em buffer ou processar na chegada.
algumas instalações mais técnicas, como reconhecimento não-contíguo (usa reconhecimentos seletivos para permitir ao remetente retransmitir apenas um quadro ausente, em vez do quadro ausente e subsequentes que o receptor já possui, mas não pôde reconhecer da maneira usual), manipulação de congestionamentos e retransmissão adaptativa (ajustando o temporizador que decide quanto tempo 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.
fonte
O TCP faz um esforço para garantir que os dados cheguem ao destinatário; UDP não.
fonte
Não importa todas as respostas que explicam uma contra a outra. Para propósitos de configurar um encaminhamento de porta, as regras são bem simples: você precisa escolher o TCP, a menos que os documentos para o protocolo / aplicativo que você está usando digam para usar UDP. Geralmente, aqueles que usam UDP estão relacionados a streaming, ou coisas muito simples que favorecem protocolos leves / velocidade sobre confiabilidade (particularmente DNS e NTP). Observe que também existem outros protocolos além do TCP e UDP - ICMP, protocolos de encapsulamento etc.
fonte
Quanto mais conhecido é um protocolo, mais roteadores no caminho interferem no protocolo. Envie pacotes tcp, e há uma grande probabilidade de os pacotes recebidos serem altamente mutilados. O UDP geralmente não é tão confundido, e os outros 254 protocolos de paylod IP geralmente são completamente intocados.
fonte
Protocolo de datagrama de usuário (UDP)
Faz parte dos protocolos base do Internet Protocol Suite. Programas em computadores em rede podem enviar mensagens curtas, às vezes chamadas de datagramas. O UDP não garante 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. O UDP encontra seus usos em tais situações:
Aplicativos sensíveis ao tempo. Os problemas devido 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 multicasting (transmite a todos os assinantes).
Protocolo de controle de transmissão (TCP)
É freqüentemente chamado de TCP / IP devido à importância desse protocolo no Internet Protocol Suite. O TCP opera em um nível superior, preocupado apenas com os dois sistemas finais (por exemplo, entre um navegador da web e um servidor da web). O TCP fornece entrega seqüencial e confiável de um fluxo de dados de um programa em um computador para outro programa em outro computador. Os usos comuns do TCP reagrupam suporte por email, 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 nível inferior de computador para computador como uma mensagem transferida pela Internet.
fonte
Bem, ambos são protocolos de rede criados sobre algo chamado IP ou Internet Protocol. O Protocolo da Internet é o principal protocolo da Internet e é, por exemplo, o que nos permite navegar na web. É por isso que você frequentemente vê esses protocolos escritos como TCP / IP ou UDP / IP. Na verdade, eles são protocolos principais da internet.
Nos dois casos, seus dados são divididos em blocos chamados pacotes. O TCP garante que esses pacotes cheguem ao seu destino, na ordem correta e sem erros.
O UDP, por outro lado, não garante que um pacote de dados chegue. Apenas garantirá que, se chegar, será sem erros.
Normalmente, outros protocolos são executados sobre TCP e UDP e são conhecidos como protocolos de aplicativos porque operam dentro de um aplicativo e não dentro do sistema operacional. Sua navegação na web usa o protocolo HTTP, que utilizará o protocolo TCP.
Pesquisas de nome de domínio ou consultas DNS geralmente usam UDP, mas também podem usar TCP. Vários serviços de streaming usam UDP sob outros protocolos de aplicativos.
Espero que responda sua pergunta em inglês mais simples.
fonte