TCP vs UDP

Out 19, 2023

O que é o protocolo?

Quando os computadores se comunicam com dispositivos de rede, assim como as pessoas se comunicam entre si, eles precisam usar a mesma linguagem para garantir uma comunicação suave.

Regras como como iniciar a comunicação, que idioma usar e como encerrar a comunicação devem ser determinadas antecipadamente. Além disso, esses métodos de comunicação precisam seguir uma regra chamada protocolo.

TCP/IP é o nome geral de vários protocolos relacionados à Internet, como TCP, UDP, IP, FTP, HTTP e ICMP.

TCP/IP foi inventado na década de 1970. TCP/IP originalmente propôs o conceito de estratificação, dividindo a comunicação de rede complexa em várias camadas, cada uma com diferentes responsabilidades, de modo que quando um problema ocorre em uma camada, apenas o problema nessa camada precisa ser resolvido, em vez de mudar tudo.

Melhore significativamente a gestão e manutenção do ambiente de comunicação em rede. O protocolo possui quatro camadas, cada uma das quais é inter-relacionada, cada uma das quais precisa do suporte da camada inferior e suporta a camada superior.

Na época, havia muitos outros protocolos de rede. O modelo de referência OSI (Open System Interconnection) é um modelo de protocolo hierárquico de rede mais unificado. O OSI referenciou vários protocolos, como TCP/IP, no início de seu design, tornando relativamente fácil implementar a correspondência.

O modelo OSI tem sete camadas, algumas das quais são muito semelhantes ao TCP/IP:

the osi model

Na camada de transporte, dois protocolos, nomeadamente TCP e UDP, não podem ser ignorados. Quais são as diferenças entre eles e como devemos escolher?

Como funciona o TCP?

Como mencionamos anteriormente, o objetivo principal da estratificação de protocolos é dividir as responsabilidades de cada camada. Por exemplo, o TCP (Protocolo de Controle de Transmissão) é um protocolo de camada de transporte que permite a transmissão de dados de um dispositivo digital para outro. A principal tarefa do TCP é coletar dados da camada de aplicação. Em seguida, ele divide os dados em pacotes, atribui um número a cada pacote e os envia para o destino.

TCP é um protocolo confiável. O receptor sempre envia ao remetente uma mensagem de confirmação sobre o pacote de dados. Enquanto isso, o remetente sempre sabe se o pacote chegou ao outro lado. A solicitação é retornada se houver falha na transferência de informações durante o processo de transferência.

Ele reagrupa os pacotes antes de enviá-los para a camada de aplicação. Como o TCP é um protocolo orientado à conexão, a conexão é mantida até que o remetente e o destinatário tenham concluído a transmissão de dados.

Como funciona o UDP?

UDP (protocolo de datagrama do usuário) é considerado um protocolo de transporte não confiável em comparação com o protocolo confiável do TCP. Ainda assim, ele fornece um dos melhores métodos de entrega usando os serviços IP para realizar seu trabalho.

Em UDP, o receptor não gera um reconhecimento do pacote, e o remetente não espera pela divulgação do pacote. É essa falha que torna o protocolo não confiável, mas viável.

Se o reconhecimento dos dados recebidos não for tão importante, neste caso, usamos UDP. É adequado para uma situação de fluxo de dados unidirecional e é mais adequado para comunicação baseada em consulta.

UDP não garante que os pacotes sejam enviados sequencialmente. É sem estado e não fornece nenhum mecanismo de controle de congestionamento.

Quais são as diferenças entre TCP e UDP?

Podemos ver as diferenças entre TCP/UDP a partir destes aspectos:

Conectividade

TCP é um protocolo orientado à conexão. Como usamos este protocolo em conjunto com o protocolo IP, geralmente é chamado de TCP/IP.

Enviar e receber dados deve estabelecer uma conexão confiável entre as duas partes. 3 “apertos de mão” para estabelecer o relacionamento, 4 “ondas” para desconectar a conexão, estabelecendo uma base confiável para a transmissão de dados.

Uma boa conexão foi estabelecida antes do início da transmissão de dados, e o receptor aceitará os pacotes de dados de forma ordenada para garantir a precisão dos dados.

UDP é um protocolo sem conexão. Antes da transmissão de dados, o remetente e o destinatário não estabelecem uma conexão. Em vez disso, o remetente transmite os dados para a rede mais rapidamente, e o destinatário lê os segmentos de mensagem da fila de mensagens. Como o remetente e o destinatário não têm uma boa conexão, o destinatário recebe pacotes fora de ordem.

Confiabilidade

TCP fornece serviços de transporte confiáveis, garantindo a confiabilidade e a ordem da recepção de dados. Muitos métodos são usados no processo de transmissão para garantir serviços de transmissão confiáveis na conexão, como numeração e reconhecimento, controle de fluxo, temporizadores, etc., para garantir que os dados não tenham erros, sejam perdidos, repetidos e cheguem em sequência. Se a transmissão falhar, será solicitada uma retransmissão.

UDP não garante entrega confiável durante a entrega. Em vez disso, depende de protocolos de camada superior para garantir confiabilidade. Métodos de transmissão desordenados e não precisos são mais adequados para alguns requisitos que não exigem alta corrupção de dados.

Como escolher entre TCP e UDP?

Devido às vantagens e desvantagens dos protocolos TCP e UDP, podemos escolher o protocolo mais adequado para atender a diferentes necessidades.

tcp vs udp

O protocolo TCP é confiável, adicionando mecanismos complexos como checksum, identificação de número de série, janela deslizante, resposta de confirmação, controle de congestionamento, etc., estabelecendo um processo de handshake tedioso e aumentando o consumo de recursos do sistema pelo TCP. Portanto, há um efeito de atraso particular na transmissão de dados, reduzindo a eficiência da transmissão.

TCP é adequado para aplicações típicas que requerem baixa eficiência de transmissão, mas alta precisão, como o HTTPS (Hypertext Transfer Protocol Secure), HTTP (Hypertext Transfer Protocol), SMTP (Simple Mail Transfer Protocol) e FTP (File Transfer Protocol), etc.

UDP é sem conexão, tem transmissão não confiável, entrega de dados o mais rápido possível, protocolo simples, requisitos de recursos menores, velocidade de transmissão rápida e alta performance em tempo real. Portanto, é adequado para aplicações típicas que exigem alta eficiência de transmissão, mas baixa precisão. É usado para streaming de vídeo, videochamadas, serviços de voz sobre IP (chamadas pela Internet), DNS (Sistema de Nomes de Domínio), etc.