Respostas:
O TCP é apoiado por acks e novas tentativas para garantir que os dados cheguem aonde estão indo. O UDP é sem conexão e "dispara e esquece". O UDP é usado principalmente para aplicativos do tipo streaming, onde se você perder alguns dados, não precisará enviá-los novamente.
Qual deles você usa depende do aplicativo. Por exemplo, um servidor web usa TCP.
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:
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.
E a explicação no nível do CEO:
UDP é quando você joga seu papel na direção geral da lixeira.
Quando o TCP falha, você lança cópias exatas do mesmo papel repetidamente até que caia na lixeira. Haveria desperdício de papel e até pacotes TCP reenviados resultariam em desperdício de recursos de rede ou sistema.
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.
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.
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.
O TCP faz um esforço para garantir que os dados cheguem ao destinatário; UDP não.
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.
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.
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.
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.