Por que tem aplicações que utilizam TCP como protocolo da camada de transporte e outras que utilizam UDP?

Hoje veremos os exemplos da vida real de TCP e UDP em redes de computadores

Antes de examinar os exemplos da vida real de TCP e UDP, vamos ver 

O que é rede de computadores?

Uma rede de computadores é um conjunto de dispositivos (nós) que são conectados entre si por links de comunicação para compartilhar informações digitais.
Os links de comunicação podem ser meio sem fio ou meio com fio. Nos tempos atuais, é impossível imaginar um mundo sem uma rede de computadores. Desde conversar com um amigo até fazer videochamadas, tudo é possível graças à presença de uma rede informática

A rede de computadores é amplamente dividida em 3 tipos. 

Eles são os seguintes:

  • Rede de área local (LAN) -
    é uma rede privada, que geralmente inclui escritório, edifício ou campus. A velocidade varia de 100 - 1000 Mbps
  • Wide Area Network (WAN) -
    Envolve a transmissão de dados em grandes áreas geográficas como o país, o continente ou até mesmo o mundo inteiro.
  • Metropolitan Area Network (MAN) -
    Envolve a transmissão de dados dentro e ao redor de uma cidade ou vila, daí o nome Metropolitan Area Network. Seu tamanho varia entre LAN e WAN.

Modelo de rede:

  • Uma rede é um amálgama de Hardware e Software.
  • A parte de hardware da rede consiste em dispositivos físicos, como switch, hub e roteador, que são responsáveis ​​pela transmissão de sinais de dados de uma rede para outra
  • A parte do software consiste em protocolos (regras) que são necessários para o bom funcionamento da rede
  • Portanto, com base nos pontos acima, o modelo de rede é dividido em dois tipos
    1. Modelo de referência OSI
    2. Modelo de referência TCP / IP

Modelo de Referência OSI:  
O modelo de Interconexão de Sistemas Abertos (Modelo OSI) foi introduzido pela primeira vez no final dos anos 1970. É um modelo de referência para projetar uma arquitetura de rede robusta e flexível. É um modelo universalmente aceito que descreve a comunicação de vários aplicativos pela Internet.

O modelo OSI é dividido em 7 camadas:

  • Para reduzir a complexidade do projeto, as redes são organizadas como pilhas de camadas e níveis.
  • Cada camada tem seu próprio conjunto de funções que auxiliam no sucesso da transferência de dados
  • Cada camada passa os dados para a camada imediatamente abaixo ou acima dela.

As camadas são as seguintes: 

  1. Camada de aplicação -
    consiste em um protocolo de camada de aplicação que permite que os aplicativos de rede funcionem corretamente na rede
     
  2. Camada de apresentação -
    Recebe os dados da camada de aplicação e é responsável pela tradução, compactação de dados e criptografia / descriptografia dos dados
     
  3. Camada de sessão -
    é responsável por configurar e gerenciar conexões. Suas funções incluem autenticação, autorização e restauração de sessão.
     
  4. Camada de Transporte -
    Recebe os dados da Camada de Sessão. É responsável pela entrega de uma mensagem de um processo a outro. Ele controla a confiabilidade da comunicação por meio do controle de fluxo, controle de erros e segmentação. Possui dois protocolos: TCP e UDP.
     
  5. Camada de Rede -
    É responsável pela transmissão dos segmentos de dados de um computador para outro localizado em diferentes redes 
     
  6. Camada de link de dados -
    Responsável por mover frames de um salto para outro.
     
  7. Camada física -
    é responsável por converter os bits binários em sinais e transmiti-los pela mídia local

Modelo de referência TCP / IP:
As camadas no conjunto de protocolos TCP / IP não correspondem exatamente às do modelo OSI. O conjunto de protocolos TCP / IP original foi definido como tendo quatro camadas de host para transporte e aplicativo de rede da Internet. O Modelo de Referência TCP / IP é a implementação prática do Modelo OSI teórico

Camada de transporte: 
a camada abaixo da camada de sessão é chamada de camada de transporte. Os dados nesta camada são chamados de segmento. É responsável pela entrega de uma mensagem de um processo a outro. Ele também é responsável pela comunicação confiável por meio do controle de fluxo, controle de erros e segmentação. Alguns dos protocolos mais importantes são o TCP (Transmission Control Protocol) e o UDP (User Datagram Protocol). Ele faz dois tipos de transmissão, isto é, transmissão orientada a conexão e transmissão sem conexão que são realizadas por TCP e UDP, respectivamente.

Algumas das responsabilidades da camada de transporte são as seguintes:

  • Entrega de ponta a ponta
  • Confiabilidade
  • Controle de Erro
  • Controle de fluxo
  • Multiplexação e Demultiplexação

Transmission Control Protocol (TCP):
é um protocolo orientado a conexão usado para a transferência confiável de dados de um processo para outro. É necessária a ajuda dos números das portas para a transmissão. Ele usa mecanismos de controle de fluxo e controle de erros no nível de transporte. Existem três fases nas quais o TCP transmite os dados entre o remetente e o receptor, que é a seguinte:

  • Estabelecimento de conexão - 
    É necessário a ajuda de um mecanismo de handshaking de 3 vias para o estabelecimento de conexão, que envolve a troca de SYN, ACK e tamanho da janela
  • Transferência de dados - 
    nesta etapa, ocorre a transmissão de dados
  • Término da conexão - 
    aqui, a transmissão de dados é encerrada com o envio de um pacote FIN ao receptor.

Os serviços oferecidos pelo TCP são os seguintes:

  • Processo para processar ou comunicação ponta a ponta usando números de porta
  • Transmite os dados como um fluxo de bytes da origem ao destino
  • Ele agrupa os dados que vêm do aplicativo em pacotes chamados Segmentos. Ele também adiciona um cabeçalho a cada segmento de dados e o envia para a camada de rede
  • Oferece comunicações Full Duplex
  • Serviço confiável: o TCP usa um mecanismo de confirmação que o torna confiável
  • Ele oferece controle de fluxo, controle de erro e controle de congestionamento também.

Vantagens:

  • Controle de fluxo
  • Controle de Erro
  • Controle de congestão
  • Processo para Processo de Comunicação
  • Entrega em ordem de segmentos de dados

Desvantagens:

  • Os segmentos de dados não são transmitidos imediatamente
  • Mais sobrecarga (20-60Bytes)
  • Ele tem um grande cabeçalho TCP

User Datagram Protocol (UDP):
É um protocolo da camada de transporte. É um protocolo não confiável e sem conexão. É muito mais rápido, simples e eficiente que o TCP. No entanto, ele não verifica os erros devido aos quais a largura de banda é salva. É amplamente utilizado em serviços de tempo real como videogame, voz ou comunicação de vídeo.
Os pacotes enviados pelo UDP são chamados de datagramas de usuário.

Os serviços oferecidos pelo TCP são os seguintes:

  • Processo para processar porta para porta de transmissão de segmentos
  • Protocolo de sobrecarga mínima e sem conexão
  • Transmissão rápida e simples
  • Sem controle de fluxo e erro, os aplicativos que usam serviços UDP são responsáveis ​​por fornecê-los
  • UDP encapsula e desencapsula as mensagens.

Vantagens:
 

  • O pacote criado pelo UDP é relativamente menor que o do TCP (UDP Header: 8 bytes)
  • Transmissão sem conexão
  • É mais rápido, simples e eficiente

Desvantagens: 

  • Não há garantia de que o remetente receberá os dados
  • Falta de mecanismos de verificação de erro adequados
  • Os pacotes perdidos não serão retransmitidos
  • Existe a possibilidade de receber pacotes fora de ordem

Exemplos da vida real de TCP:

  1. Comunicação por Texto -
    Todos nós sabemos da importância da Comunicação por Texto na atualidade. Qualquer discrepância nas mensagens de texto entre o remetente e o destinatário não pode ser tolerada. Conseqüentemente, o TCP é usado na comunicação de texto devido à sua transmissão confiável, controle de erros e na ordem de recebimento dos dados. 
    Exemplo: Whatsapp, Instagram, Google Chat, iMessage.
  2. Transferência de arquivos ou FTP -
    TCP é usado na transferência de arquivos quando não podemos tolerar a perda de dados e o recebimento dos dados em ordem incorreta é de extrema importância. O FTP usa duas conexões TCP, ou seja, a conexão de controle e a conexão de dados. 
    Conexão de controle: FTP envia informações como identificação do usuário e senhas.
    Conexão de dados: Nesta conexão, os arquivos são enviados pela rede.
    Ex: cliente e servidor FileZilla
     
  3. HyperText Transfer Protocol (HTTP) -
    É usado para acessar os dados presentes na rede mundial de computadores. Utiliza o protocolo TCP para acessar as páginas web presentes na internet devido ao fato do TCP fornecer dados inorder, controle de erros e controle de fluxo, e retransmissão de segmentos de dados.
     
  4. Protocolo de transferência de correio simples (SMTP)
    É um protocolo de camada de aplicativo usado para enviar e-mails de um sistema para outro. O SMTP usa os serviços do TCP para iniciar uma conexão com o servidor SMTP. Depois que o servidor SMTP aceita a solicitação de conexão, ele permite que o remetente envie os e-mails.
    Ex: Yahoo, Gmail, Outlook, etc

Exemplos da vida real de UDP:

  1. Jogos Online -
    A maioria dos jogos online que jogamos usa os serviços do User Datagram Protocol. Uma vez que qualquer quantidade de atraso não pode ser tolerada em jogos online, o UDP é amplamente usado sobre o TCP, que é bem mais lento. O UDP não retransmite os dados perdidos e é um protocolo sem conexão devido ao qual é muito mais rápido.
    Ex: todos os jogos online
     
  2. Videoconferência -
    Os aplicativos de videoconferência como Skype, Gmeet, Zoom, todos utilizam os serviços do UDP por serem aplicativos em tempo real e não tolerar atrasos no recebimento dos dados.
    Ex: Skype, Google Meet, zoom e Facetime.
     
  3. Voz sobre IP (VoIP) -
    é semelhante à videoconferência, onde aplicativos como Viber, Whatsapp, Google Hangouts usam UDP para converter nossa voz em dados digitais e transmiti-los pela rede, daí o nome VoIP.
    Ex: Viber, chamadas de voz no Whatsapp, chamadas por Wi-Fi.
     
  4. Sistema de Nomes de Domínio (DNS) -
    é um serviço usado para mapear nomes de domínio para seus endereços IP correspondentes. Ele é usado pela camada de aplicativo. Ele também pode ser visto como um DataBase distribuído que possui um servidor de nomes hierárquico. O DNS usa UDP para buscar o endereço IP correspondente pelos seguintes motivos:

    a) UDP é muito mais rápido que TCP. Afinal, a velocidade é muito importante ao carregar uma página da Web. 
    B) As requests de DNS são normalmente pequenas requests e podem ser acomodadas em segmentos UDP (cabeçalho).
    c) Mesmo que UDP não seja confiável, ele pode ser alcançado na camada de aplicação também

Portanto, esses foram os exemplos da vida real de TCP e UDP.

Por que o DNS usa UDP e não TCP?

Aprenda todos os conceitos do GATE CS com aulas gratuitas ao vivo em nosso canal do youtube.

Por que tem aplicações que utilizam TCP como protocolo da camada de transporte e outras que utilizam UDP explique e dê exemplos?

Por um lado, o TCP é um protocolo orientado à conexão e fornece a comunicação confiável com vários recursos. Por outro, o UDP é um protocolo de transporte em tempo real sem conexão, que oferece um processo de comunicação mais rápido, mas com pouca confiabilidade.

Por que para aplicações em tempo real o protocolo UDP é mais indicado que o TCP?

O protocolo UDP é a solução para aplicações que precisam de velocidade e podem abrir mão da confiabilidade do TCP. O UDP abre mão dessa confiabilidade, e isso o faz ser muito mais rápido do que o TCP. Ele envia os pacotes sem verificar se eles foram enviados corretamente.

Por que o HTTP utiliza TCP e o DNS utiliza UDP?

O DNS usa TCP para transferência de zona e UDP para nome e consultas regulares (primárias) ou inversas. O UDP pode ser usado para trocar pequenas informações, enquanto o TCP deve ser usado para trocar informações maiores que 512 bytes.

Por que os aplicativos de transmissão de áudio e vídeo usam UDP em vez de TCP?

Por que o UDP é mais rápido que o TCP? Quando falamos em velocidade de dados o protocolo que mais se destaca é o UDP, já que não existe um processo de verificação do processo, seja ele de erro ou de confirmação para saber se o pacote chegou ou não ao seu destino.