Protocolos TCP vs UDP
Tanto o TCP quanto o UDP se encaixam na quarta camada do modelo OSI, que é a camada de transporte logo acima da camada IP. O TCP e o UDP suportam a transmissão de dados de duas maneiras diferentes, o TCP é orientado para conexão e o UDP é sem conexão.
No transporte de pacotes, existem duas restrições principais, uma é a confiabilidade e a outra é a latência. A confiabilidade é a entrega garantida do pacote e a latência é a entrega oportuna do pacote. Ambos não podem ser alcançados para atingir o pico ao mesmo tempo, mas podem ser otimizados.
Para iniciar uma comunicação de dados entre dois nós, o remetente deve saber o IP do receptor, bem como o número da porta. O endereço IP deve rotear o pacote e o número da porta deve entregar o pacote à pessoa correta. Explicando mais detalhadamente esse cenário em um exemplo do mundo real, pense em um ambiente de complexo de compras múltiplas e alguém o direcionou para a loja 30 (que é um barbeiro), Golden Plaza, nº 21 Park Ave, para chegar a este lugar você precisa saber apenas Não 21 park avenue, mas para obter o serviço do salão, você precisa saber o número da loja, que é 30. Você pode assumir o número 21 como endereço IP e a loja 30 como porta no.
Da mesma forma que na comunicação de dados e no modelo de serviços de aplicativo, os aplicativos TCP ouvem os números das portas para aceitar conexões TCP. Da mesma forma que os aplicativos UDP, também ouvem os números das portas para fornecer serviços UDP.
TCP:
Definido em RFC 793
O TCP é um protocolo confiável de ponta a ponta orientado à conexão para oferecer suporte à transmissão de dados garantida. Do próprio estabelecimento da conexão, o TCP garante a confiabilidade. Alguns dos principais recursos do TCP são handshake de 3 vias (SYN, SYN-ACK, ACK), detecção de erros, início lento, controle de fluxo e controle de congestionamento.
O TCP é um mecanismo de transporte confiável, portanto, será usado onde a entrega de pacotes for obrigatória, mesmo em congestionamentos. Exemplos típicos de aplicativos TCP e números de porta são dados FTP (20), FTP Control (21), SSH (222), Telnet (23), Mail (25), DNS (53), HTTP (80), POP3 (110), SNMP (161) e HTTPS (443). Esses são aplicativos TCP bem conhecidos.
UDP:
Definido em RFC 768
UDP (User Datagram Protocol) é um protocolo de transmissão simples que fornece um serviço não confiável. Isso não significa que o UDP não entregará os dados, mas não há mecanismos para monitorar o controle de congestionamento ou a perda de pacotes, etc. Por ser simples, ele evita o processamento de overhead na interface de rede. Os aplicativos em tempo real usam principalmente UDP porque é preferível descartar pacotes do que pacotes atrasados. Um exemplo típico são os fluxos de mídia de voz sobre IP.
Resumo:
(1) TCP é orientado por conexão e confiável, enquanto UDP é menos conexão e não confiável.
(2) O TCP precisa de mais processamento no nível da interface de rede, ao contrário do UDP.
(3) TCP usa handshake de 3 vias, controle de congestionamento, controle de fluxo e outros mecanismos para garantir a transmissão confiável.
(4) O UDP é usado principalmente nos casos em que o atraso do pacote é mais sério do que a perda de pacote. (Aplicativos em tempo real)