O que é UDP (User Datagram Protocol)?
UDP refere-se ao User Datagram Protocol, um protocolo de comunicação para aplicações sensíveis ao tempo, como jogos, streaming de vídeo e consultas ao Domain Name System (DNS). Como o UDP não exige uma conexão estável com o dispositivo de destino antes da transmissão, ele pode aumentar significativamente a velocidade de comunicação. O UDP acelera a transferência de dados ao eliminar o processo demorado de estabelecimento de conexão dos protocolos tradicionais.
No entanto, a vantagem de velocidade do UDP vem com alguns riscos potenciais. O UDP pode causar perda de pacotes à medida que os dados são transmitidos da origem ao destino. Além disso, devido à sua natureza sem conexão, o UDP é um alvo fácil para hackers lançarem ataques distribuídos de negação de serviço (DDoS).
Em geral, protocolos como o Transmission Control Protocol (TCP) exigem que o receptor não apenas receba os dados, mas também confirme que está pronto para recebê-los antes do início da transmissão de dados. O UDP, no entanto, não espera por essa confirmação antes de iniciar a transmissão, o que pode causar problemas de transmissão de dados e criar oportunidades para invasores de DDoS.
Como funciona o UDP?
Comparado a outros protocolos de rede, o UDP é muito mais simples. Ele simplesmente encontra o computador de destino e envia a ele um pacote de dados (também conhecido como "datagrama.") O UDP não garante que os pacotes chegarão em ordem, nem confirma que eles chegaram ao destino.
Embora o UDP use somas de verificação para garantir a integridade dos dados e números de porta para distinguir o uso dos dados na origem e no destino, essa simplicidade apresenta alguns problemas devido à falta de um mecanismo obrigatório de handshake. Programas que usam UDP estão sujeitos à instabilidade da rede subjacente.
Como resultado, os dados podem ser transmitidos com sucesso ou perdidos. Além disso, como não há controle sobre a ordem em que os pacotes chegam, os dados podem aparecer irregulares, fora de ordem ou em branco quando exibidos no destino final.
No entanto, esses problemas geralmente são menores se a detecção e a correção de erros não forem necessárias. Esse é um dos motivos pelos quais o UDP é frequentemente usado em aplicações de vídeo. Mesmo com a perda ou erro ocasional de dados, levar prontamente o sinal de vídeo ao seu destino ainda é uma prioridade máxima.
A diferença entre UDP vs. TCP
Quando os dados são transmitidos de um lugar para outro, um cabeçalho informa ao dispositivo o que fazer com os dados. O cabeçalho do UDP é simples, com 8 bytes fixos, enquanto o cabeçalho do TCP é muito mais complexo, variando de 20 a 60 bytes de comprimento. O cabeçalho do UDP contém um número de porta de origem de 16 bits, um número de porta de destino de 16 bits, um comprimento de 16 bits e uma soma de verificação de 16 bits, que orientam o datagrama até seu destino. O cabeçalho inclui um número de porta de origem de 16 bits, um número de porta de destino de 16 bits, um comprimento de 16 bits e uma soma de verificação de 16 bits, que orientam o datagrama até seu destino. Nenhuma autenticação da conexão entre as portas de origem e destino é necessária ao enviar dados.
Em contraste, o TCP exige um handshake antes que os dados sejam enviados, um processo que torna o TCP mais confiável que o UDP. Na comunicação TCP, os dados só podem ser transmitidos depois que uma conexão formal tiver sido estabelecida entre o destino e a origem. Por outro lado, como nenhuma conexão precisa ser estabelecida com o UDP, os dados podem ser enviados imediatamente.
Outra diferença é que o TCP confirma a ordem dos pacotes antes da transmissão e garante que os pacotes cheguem a tempo. Se um pacote não chegar, o TCP solicita automaticamente que ele seja reenviado. Por outro lado, o UDP não realiza nenhum reconhecimento, verificação ou retransmissão.
Se uma aplicação optar por usar UDP, o usuário aceita o risco de que erros possam ocorrer, os dados possam não chegar ou os dados possam ser reenviados. A compensação por essa escolha são velocidades de transmissão mais rápidas. UDP não é necessariamente o culpado pela perda de dados. Suas informações de cabeçalho são suficientes para permitir que os dados cheguem ao local especificado, e a ordem em que os datagramas são enviados pode permanecer essencialmente correta.
No entanto, a maioria dos roteadores de rede não consegue confirmar a chegada dos pacotes nem sequenciá-los, o que pode resultar em pacotes perdidos ou duplicados. O TCP compensa isso garantindo que os dados cheguem ao destino na ordem correta.

A aplicação do UDP
O UDP é normalmente usado em cenários de comunicação nos quais a velocidade é essencial, mas uma pequena quantidade de perda de dados é tolerada. Transmissões de mídia em streaming em tempo real, como voz e vídeo, são aplicações típicas porque exigem pontualidade em vez de 100% de precisão. Por exemplo, muitos serviços de Voz sobre Protocolo de Internet (VoIP) usam UDP porque ele reduz a latência e torna as chamadas mais fluidas, mesmo que alguma qualidade de som às vezes seja sacrificada.
Da mesma forma, o UDP é amplamente usado em jogos online. Para os gamers, uma resposta rápida é mais crítica do que perder alguns dados ocasionalmente. Além disso, os servidores DNS também dependem do UDP para a velocidade e a eficiência de suas consultas, já que esses serviços exigem respostas rápidas para operar de forma eficaz.
Como o UDP é usado em ataques DDoS?
Embora o UDP (User Datagram Protocol) se destaque quando é necessária uma transferência de dados rápida e em tempo real, ele torna o receptor mais vulnerável a ataques DDoS.
Em um ataque DDoS, o site-alvo é inundado com pacotes. Sempre que ocorre um problema, o servidor-alvo deve enviar um pacote ICMP em resposta. Como o servidor não consegue lidar com tantas solicitações, ele acabará ficando sobrecarregado, como um esgoto entupido. Como resultado, solicitações legítimas não conseguem passar, e usuários e clientes genuínos não conseguem acessar o site adequadamente.
A natureza sem conexão do UDP o torna particularmente vulnerável a ataques DDoS. Como nenhuma conexão de handshake precisa ser estabelecida entre a origem e o alvo, um invasor pode enviar muitos pacotes para o servidor-alvo sem impedimentos.
No entanto, as organizações podem mitigar esse risco de ataque limitando a taxa de resposta dos pacotes ICMP. Utilizar a rede do data center para tráfego UDP pode impedir que solicitações falsificadas sobrecarreguem servidores individuais.





