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.