Sendo um protocolo de comunicação na camada de transporte, o UDP é um protocolo muito comum utilizado para o tráfego de voz e vídeo.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
HTTP
TCP/IP
Firewall de aplicativos web (WAF)
Ataque de inundação de Ping (ICMP)
Ataque de inundação de protocolo UDP
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
O User Datagram Protocol, ou UDP, é um protocolo de comunicação utilizado em toda a internet para transmissões especialmente sensíveis ao tempo, tais como reproduções de vídeo ou pesquisas de DNS. Ele acelera as comunicações ao não estabelecer formalmente uma conexão antes que os dados sejam transferidos. Isso permite que os dados sejam transferidos muito rapidamente, mas também pode fazer com que pacotes se percam em trânsito, além de criar oportunidades de exploração na forma de ataques DDoS.
Como todos os protocolos de rede, o UDP é um método padronizado de transferência de dados entre dois computadores de uma rede. Em comparação com outros protocolos, o UDP realiza este processo de forma simples: envia pacotes (unidades de transmissão de dados) diretamente para um computador de destino, sem estabelecer uma conexão antes, indicando a ordem desses pacotes ou verificando se eles chegaram como previsto. (Os pacotes UDP são denominados "datagramas").
O UDP é mais rápido, mas menos confiável que o TCP, outro protocolo de transporte comum. Em uma comunicação TCP, os dois computadores começam estabelecendo uma conexão por meio de um processo automatizado chamado "handshake". Somente depois que esse handshake for concluído, um computador realmente transferirá pacotes de dados para o outro.
As comunicações UDP não passam por esse processo. Em vez disso, um computador pode simplesmente começar a enviar dados para o outro:
Além disso, as comunicações TCP indicam a ordem em que os pacotes de dados devem ser recebidos e confirmam se os pacotes chegaram como previsto. Se um pacote não chegar, devido, por exemplo, a um congestionamento nas redes intermediárias, o TCP exige que ele seja reenviado. As comunicações UDP não incluem nenhuma dessas funcionalidades.
Essas diferenças criam algumas vantagens. Como o UDP não exige um "handshake" ou que se verifique se os dados chegaram corretamente, ele é capaz de transferir dados muito mais rapidamente do que o TCP.
No entanto, essa velocidade cria alguns dilemas. Se um datagrama UDP se perder em trânsito, ele não será reenviado. Como resultado, os aplicativos que utilizam UDP devem ser capazes de tolerar erros, perdas e duplicações.
(Tecnicamente, essa perda de pacotes é menos uma falha do UDP do que uma consequência de como a internet é construída. A maioria dos roteadores de rede não realiza a ordenação de pacotes e a confirmação de chegada por design, porque isso exigiria uma quantidade inviável de memória adicional. O TCP é uma forma de preencher essa lacuna quando um aplicativo o exige.)
O UDP é comumente usado em comunicações sensíveis ao tempo, onde ocasionalmente descartar pacotes é melhor do que esperar. O tráfego de voz e vídeo geralmente é enviado usando esse protocolo porque ambos são sensíveis ao tempo e projetados para lidar com algum nível de perda. Por exemplo, o VoIP (voz sobre IP), que é usado por muitos serviços telefônicos baseados na internet, geralmente opera em UDP. Isso ocorre porque uma conversa telefônica estática é preferível a uma que seja cristalina, mas muito atrasada.
Isso também faz do UDP o protocolo ideal para jogos on-line. Da mesma forma, como os servidores de DNS precisam ser rápidos e eficientes, eles também operam por meio do UDP.
Os "riscos" do UDP, como a perda de pacotes, não são um problema sério na maioria dos casos de uso. Entretanto, o UDP pode ser explorado para fins maliciosos. Como o UDP não exige um handshake, os invasores podem "inundar" um servidor alvo com tráfego UDP sem antes obter a permissão desse servidor para iniciar a comunicação.
Um ataque de inundação de UDP típico envia um grande número de datagramas UDP para portas aleatórias em seu computador-alvo. Isso força o alvo a responder com um número igualmente grande de pacotes ICMP , que indicam que essas portas não podem ser acessadas. Os recursos de computação necessários para responder a cada datagrama fraudulento podem esgotar o alvo, resultando em uma negação de serviço para o tráfego legítimo. (Para saber mais, leia nosso artigo sobre ataques de inundação de UDP.)
As organizações podem se defender contra ataques de inundação de UDP com vários métodos. Um deles é limitar a taxa de resposta dos pacotes ICMP, embora essa abordagem também possa filtrar pacotes legítimos. Outro método é receber e responder ao tráfego UDP por meio de uma rede intermediária de muitos data centers distribuídos, evitando que um único servidor de origem seja sobrecarregado com solicitações fraudulentas. Saiba mais sobre como a Cloudflare usa essa estratégia para ajudar as organizações a mitigar os ataques DDoS.