O User Datagram Protocol (UDP) é um protocolo da camada de transporte do Internet Protocol Suite. Ele fornece um serviço de comunicação simples e sem conexão entre hosts em uma rede. O UDP envia pacotes de dados, chamados datagramas, sem estabelecer uma conexão ou garantir a confirmação da entrega, tornando-o um protocolo leve e eficiente para transmissão de dados onde a velocidade e a sobrecarga mínima são priorizadas em detrimento da confiabilidade.
UDP é um protocolo que permite que aplicações enviem mensagens curtas, conhecidas como datagramas, para outros hosts em uma rede IP sem a necessidade de comunicação prévia para configurar canais de transmissão ou caminhos de dados especiais.
Um exemplo de uso de UDP está em consultas DNS (Domain Name System). Quando seu computador precisa resolver um nome de domínio (como www.example.com) em um endereço IP, ele envia uma consulta UDP a um servidor DNS. O servidor responde com um pacote UDP contendo o endereço IP correspondente. Este processo é rápido e eficiente, ideal para resolução de DNS onde a velocidade é crucial e a perda ocasional de pacotes é aceitável.
O UDP possui vários recursos principais:
- Connectionless: O UDP não estabelece conexão antes de enviar dados e não garante a entrega ou ordem dos pacotes.
- Baixa sobrecarga: Possui sobrecarga mínima de cabeçalho em comparação ao TCP, tornando-o mais rápido e eficiente para transmitir pequenas quantidades de dados.
- Sem controle de congestionamento: o UDP não realiza controle de congestionamento, o que pode levar a um potencial congestionamento da rede em alguns cenários.
- Não confiável: não garante entrega, confirmação ou recuperação de erros. Os aplicativos que usam UDP devem lidar com esses aspectos na camada de aplicativo, se necessário.
O número do protocolo UDP no cabeçalho IPv4 é 17 e no IPv6 é o mesmo. Este número identifica o UDP dentro do cabeçalho do pacote IP e é usado pelo host receptor para determinar para qual protocolo entregar os dados recebidos após a camada IP processá-los.