User Datagram Protocol - UDP


O UDP (User Datagram Protocol) permite a transferência rápida de dados sem a necessidade de estabelecer uma conexão entre os dispositivos.

Diferente do TCP, o UDP não implementa mecanismos de verificação de erros ou retransmissão. Ele simplesmente envia os pacotes ao destinatário e não verifica se foram entregues corretamente.

  • Se um pacote for perdido na rede, ele não será retransmitido automaticamente.
  • O receptor não envia confirmações (ACKs) para o transmissor.
  • Caso a rede esteja congestionada, alguns pacotes podem ser descartados para evitar sobrecarga.

O UDP não possui um mecanismo de controle de fluxo, o que significa que o transmissor pode enviar pacotes em alta velocidade sem se preocupar se o receptor consegue processá-los. Isso pode levar a:

  • Sobrecarga no receptor, caso ele não consiga lidar com o volume de dados recebido.
  • Perda de pacotes se a rede estiver congestionada e não puder armazená-los temporariamente.

Note

Por esse motivo, protocolos de aplicação que usam UDP geralmente implementam seu próprio controle de fluxo, caso necessário.

O TCP reduz a taxa de transmissão quando detecta congestionamento na rede, mas o UDP não faz esse controle. Ele continua enviando pacotes na mesma velocidade, mesmo que a rede esteja sobrecarregada. Isso pode causar:

  • Perda massiva de pacotes, especialmente em redes instáveis.
  • Atrasos imprevisíveis devido ao congestionamento da rede.

Porém, essa característica também faz com que o UDP seja muito eficiente para transmissões em tempo real, pois os dados são enviados sem interrupções.

Casos de uso do protocolo UDP

Apesar de sua falta de confiabilidade, o UDP é amplamente utilizado em aplicações que precisam de baixa latência e podem tolerar alguma perda de pacotes:

  • Streaming de vídeo e áudio (Netflix, YouTube Live, chamadas VoIP).
  • Jogos online, onde a velocidade é mais importante do que a entrega garantida dos pacotes.
  • DNS (Domain Name System), pois as requisições são pequenas e podem ser reenviadas rapidamente se houver falha.
  • Protocolos de tempo, como NTP (Network Time Protocol), que enviam pacotes pequenos para sincronizar relógios.

Referências


Aula 1 - Introdução a Redes