O protocolo de datagramas do usuário (UDP) opera sobre o protocolo da Internet (IP) para transmitir datagramas em uma rede. O UDP não exige que a origem e o destino estabeleçam um handshake triplo antes que a transmissão ocorra. Além disso, não há necessidade de uma conexão de ponta a ponta.

Em contraste, o UDP é considerado um protocolo sem conexão porque não exige que um circuito virtual seja estabelecido antes que qualquer transferência de dados ocorra. O protocolo de comunicação apenas envia os pacotes, o que significa que ele tem muito menos sobrecarga de largura de banda e latência. Com ele, os pacotes podem seguir caminhos diferentes entre o emissor e o receptor e, como resultado, alguns pacotes podem ser perdidos ou recebidos fora de ordem.

O UDP fornece dois serviços não fornecidos pela camada IP. Ele fornece números de porta para ajudar a distinguir diferentes solicitações de usuários e, opcionalmente, um recurso de soma de verificação para verificar se os dados chegaram intactos.

Recursos do protocolo de datagrama do usuário

  • O protocolo de datagrama do usuário possui atributos que o tornam vantajoso para uso com aplicativos que podem tolerar a perda de dados. Por exemplo: Ele permite que os pacotes sejam descartados e recebidos em uma ordem diferente daquela em que foram transmitidos, tornando-o adequado para aplicativos em tempo real onde a latência pode ser uma preocupação.
  • Ele pode ser usado para protocolos baseados em transações, como DNS ou Network Time Protocol ( NTP ).
  • Ele pode ser usado onde um grande número de clientes está conectado e onde a correção de erros em tempo real não é necessária, como jogos, conferência de voz ou vídeo e mídia de streaming.

Vamos entender mais a seguir:

O que é o protocolo UDP e como funciona?

Exemplificação de como funciona UDP

Como todos os protocolos de rede, o UDP é um método padronizado para transferir dados entre dois computadores em uma rede. Comparado a 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 primeiro uma conexão, indicando a ordem dos referidos pacotes ou verificando se eles chegaram como pretendido — Os pacotes UDP são chamados de ‘datagramas’.

Para que o UDP é usado? Quais serviços dependem do UDP?

O UDP é comumente usado em comunicações sensíveis ao tempo, em que, ocasionalmente, descartar pacotes é melhor do que esperar. O tráfego de voz e vídeo é enviado usando este protocolo porque ambos são sensíveis ao tempo e projetados para lidar com algum nível de perda. Por exemplo, VOIP (voz sobre IP), que é usado por muitos serviços telefônicos baseados na Internet, opera sobre UDP. Isso ocorre porque uma conversa telefônica estática é preferível a uma que seja nítida, mas muito atrasada.

Isso também o torna o protocolo ideal para jogos online. Da mesma forma, como os servidores DNS precisam ser rápidos e eficientes, eles também operam por meio do UDP.

Antes de prosseguir, aproveite e faça o download do Guia Hacker. Aprenda a automatizar tarefas, criar atalhos, melhorar sua segurança online e a descobrir como evitar spam no seu email.

banner para download de ebook sobre hacker imagem como botão escrito "baixar"

Entenda a estrutura de cabeçalho UDP!

UDP envolve datagramas com um cabeçalho UDP, que contém quatro campos totalizando oito bytes.

Os campos em um cabeçalho UDP são:

  • Porta de origem  – a porta do dispositivo que envia os dados. Este campo pode ser definido como zero se o computador de destino não precisar responder ao remetente.
  • Porta de destino  – a porta do dispositivo que recebe os dados. Os números da porta UDP podem estar entre 0 e 65.535.
  • Comprimento  – especifica o número de bytes compreendendo o cabeçalho UDP e os dados de carga útil UDP. O limite para o campo de comprimento UDP é determinado pelo protocolo IP subjacente usado para transmitir os dados.
  • Checksum  – O checksum permite que o dispositivo receptor verifique a integridade do cabeçalho do pacote e da carga útil. É opcional no IPv4, mas tornou-se obrigatório no IPv6.
Cabeçalhos UDP

Vulnerabilidades: como o UDP é usado em ataques DDoS? 

Ataques DDoS

Os riscos do UDP, como a perda de pacotes, não são um problema sério na maioria dos casos de uso. No entanto, ele pode ser explorado para fins maliciosos. Como o UDP não exige um handshake, os invasores podem “inundar” um servidor direcionado com tráfego UDP sem primeiro obter a permissão desse servidor para iniciar a comunicação.

Um ataque de inundação UDP típico envia um grande número de datagramas UDP para portas aleatórias em seu computador de destino. Isso força o destino a responder com um número igualmente grande de pacotes ICMP, o que indica que essas portas estavam inacessíveis. 

Os recursos de computação necessários para responder a cada datagrama fraudulento podem exaurir o alvo, resultando em uma negação de serviço para o tráfego legítimo. 

As organizações podem se defender contra ataques de inundação UDP com uma variedade de métodos. Uma é 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.

TCP vs UDP: quais as principais diferenças entre esses protocolos?

O UDP é mais rápido, mas menos confiável do 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 denominado ‘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 chegam conforme o planejado. Se um pacote não chegar — por exemplo, devido a congestionamento em 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 requer um ‘aperto de mão’ ou verifica se os dados chegam corretamente, ele é capaz de transferir dados muito mais rápido do que o TCP.

No entanto, essa velocidade cria compensações. Se um datagrama UDP for perdido em trânsito, ele não será reenviado. Como resultado, os aplicativos que usam UDP devem ser capazes de tolerar erros, perdas e duplicações.

Exemplificação de como funciona TCP
Exemplificação de como funciona UDP

 Assim, o TCP é um protocolo orientado à conexão, enquanto o UDP é um protocolo sem conexão. A principal diferença entre TCP e UDP é a velocidade, já que o TCP é comparativamente mais lento que o UDP. No geral, o UDP é um protocolo muito mais rápido, simples e eficiente; no entanto, a retransmissão de pacotes de dados perdidos só é possível com TCP. 

O TCP é um protocolo mais comumente usado do que o UDP

Quando você abre uma página da web em seu navegador, o dispositivo envia pacotes TCP para o endereço do servidor. É uma solicitação ao servidor para enviar os dados e informações para o site. O servidor web responde enviando um curso de pacotes TCP. Esses pacotes são agrupados pelo navegador para exibir uma página da web em sua tela .

Quando você clica em um link fornecido nessa página, ou vai para um site diferente, o navegador novamente envia pacotes TCP para o servidor e o servidor responde enviando de volta mais pacotes de dados TCP.

Em essência, o TCP não é uma comunicação unilateral. Esses pacotes são enviados pelo seu navegador para o servidor e do servidor para o navegador .

A diferença é que o navegador envia pacotes de solicitação e o servidor responde enviando pacotes de dados que são agrupados da maneira certa para formar uma página da web totalmente funcional.

O TCP enumera os pacotes para que o destinatário possa colocá-los em ordem . Quando o destinatário recebe um pacote, ele envia uma confirmação ao remetente. Se o remetente não obtiver a confirmação, ele assumirá que o pacote não foi recebido e, por isso, o reenviará.

O TCP leva a confiabilidade a sério. Os pacotes são verificados quanto a erros para garantir que a solicitação seja atendida corretamente. Os pacotes TCP são rastreados para garantir que nenhum dado seja perdido entre eles . Os pacotes também são verificados quanto a corrupção. É por isso que, quando você baixa arquivos usando TCP, eles são recebidos perfeitamente, mesmo que haja problemas de rede entre os dois.

Porém, se o outro lado estiver totalmente offline, eventualmente seu sistema desistirá de tentar e mostrará uma mensagem de erro informando que não foi possível configurar o canal de comunicação com o host remoto.

Agora, falando sobre o UDP…

Conforme discutido anteriormente, o UDP funciona de maneira semelhante ao TCP no sentido de que transmite pacotes de dados. No entanto, ele não faz nenhum tipo de verificação de erros. Para torná-lo leve e fácil, esse protocolo deixa de lado o fator de confiabilidade.

Colocar pacotes em sequência, enviar confirmações e solicitar reenvios leva muito tempo e torna as coisas mais lentas. O UDP torna as coisas mais rápidas, removendo todas as etapas de overhead .

Com o UDP, o remetente envia os pacotes ao destinatário. O remetente não se importa se o destinatário os recebeu ou não. Ele continuará enviando os pacotes de dados. Como receptor, se você perdeu alguns pacotes UDP entre eles, não poderá solicitá-los novamente.

Você recebeu todos os pacotes? Não há como saber. E você também não pode recuperar nenhum pacote ausente. 

Como você deve ter adivinhado, o UDP não é usado em conexões em que a confiabilidade é uma grande preocupação. É usado apenas quando as velocidades são mais importantes do que alguns pacotes perdidos. Por exemplo, se você deseja uma rede para jogos online, videoconferência ou transmissões, o UDP será melhor do que o TCP.

UDP é usado para jogos

Se você perder alguns datagramas UDP, poderá sentir que, em vez de andar, seu personagem de repente se teletransportou pelo mapa. Ou se você está jogando um jogo de tiro em primeira pessoa, você dispara duas balas ao mesmo tempo, em vez de uma de cada vez.

Os pacotes perdidos no meio já são inúteis agora. Não adianta solicitá-los novamente. Você vai ignorar essa pequena falha e continuar jogando como antes. Isso é melhor do que o TCP alternativo, onde o jogo travaria.

Nos jogos online, o que importa é o que está acontecendo em tempo real. Você não está preocupado com os pacotes perdidos de qualquer maneira. Se você usar TCP em vez de UDP, não haverá pequenos problemas, mas seu jogo ficará lento, o que é um grande aborrecimento.

UDP ou TCP? Qual usar, afinal?

Tanto o TCP quanto o UDP encaminham os pacotes de dados de seu dispositivo usando portas para roteadores diferentes até que cheguem ao destino final. Eles também são usados ​​para enviar os pacotes ao endereço IP do destinatário. (Um endereço IP é um endereço especial atribuído a cada dispositivo conectado à Internet.)

Tanto o TCP quanto o UDP funcionam sobre o IP (Internet Protocol). É por isso que você pode ouvir termos como TCP / IP ou UDP / IP. No entanto, como TCP / IP e UDP / IP são usados ​​com frequência, eles são chamados apenas de TCP e UDP.

Embora TCP e UDP sejam os protocolos mais comumente usados, eles não são os únicos usados ​​para transferir pacotes de dados . Outro protocolo que pode ser usado é o ICMP (Internet Control Message Protocol). No entanto, como a maioria das conexões depende de TCP ou UDP, vamos nos concentrar nesses dois.

Então, basicamente, vai depender da sua necessidade!

Comparação entre UDP e TCP

Quais as vantagens e desvantagens do UDP?

O UDP tem vários benefícios para diferentes tipos de aplicativos, incluindo:

  • Sem atrasos de retransmissão  — UDP é adequado para aplicativos sensíveis ao tempo que não podem pagar atrasos de retransmissão para pacotes perdidos. Os exemplos incluem Voice over IP (VoIP), jogos online e streaming de mídia.
  • Velocidade  — a velocidade do UDP o torna útil para protocolos de resposta a consultas, como DNS, nos quais os pacotes de dados são pequenos e transacionais.
  • Adequado para broadcasts  — a falta de comunicação ponta a ponta do UDP o torna adequado para broadcasts, em que os pacotes de dados transmitidos são endereçados como recebíveis por todos os dispositivos na Internet. As transmissões UDP podem ser recebidas por um grande número de clientes sem sobrecarga do lado do servidor.

Ao mesmo tempo, a falta de requisitos de conexão e verificação de dados do UDP pode criar uma série de problemas durante a transmissão de pacotes. Esses incluem:

  • Nenhum pedido garantido de pacotes.

Nenhuma verificação da prontidão do computador em receber a mensagem.

  • Sem proteção contra pacotes duplicados.

Não há garantia de que o destino receberá todos os bytes transmitidos. O UDP, entretanto, fornece uma soma de verificação para verificar a integridade do pacote individual.

Desvantagens do protocolo de datagrama do usuário

 1. Sem conexão

UDP é sem conexão, o que significa que não requer necessariamente um circuito virtual antes do processo de transferência de dados. Portanto, sem qualquer preparação ou negociação, o grama de dados pode ser enviado ao receptor. O receptor deve ser capaz de cuidar deles.

2. Não confiável

UDP geralmente não é confiável porque não há nenhum conceito de retransmissão, reconhecimento ou tempo limite aqui. Sempre que um grama de dados é enviado, não é possível garantir que será entregue ao host de destino. Às vezes, o grama de dados pode ser perdido no caminho ou entregue duas vezes. A pior parte é que não há sequer uma indicação disso, a menos que o anfitrião decida mencioná-los. No entanto, esses tipos de taxas de falha são muito baixas em conexões de rede.

3. Pedido incorreto

Além de os dados não serem entregues, também podem estar fora de serviço no UDP. Não é possível garantir que a sequência em que os dados estão sendo enviados esteja na mesma ordem ao chegar ao aplicativo host. Às vezes, os pacotes podem ser ordenados de forma que você receba primeiro um pacote que foi enviado com atraso. Além disso, não há como prever esses pedidos até que sejam recebidos.

4. Sem controle de congestionamento

Ao contrário do TCP, os métodos de controle de congestionamento não estão presentes no UDP. Como não há nenhum método de controle de congestionamento no UDP, um grande número de dados transmitidos via UDP pode causar congestionamentos. Para isso, não há restrições que possam ser impostas.

5. Suporte para roteador

No que diz respeito ao tratamento do UDP, os roteadores são bastante descuidados. Isso ocorre porque sempre que um grama de dados é colidido, ele não os retransmite. Além disso, em um roteador os pacotes UDP serão descartados antes mesmo dos pacotes TCP.

O que é um Socket?

Os soquetes são comumente usados ​​para interação com cliente e servidor. A configuração típica do sistema coloca o servidor em uma máquina e os clientes em outras máquinas. Os clientes se conectam ao servidor, trocam informações e depois se desconectam.

Um soquete possui um fluxo típico de eventos. Em um modelo cliente-servidor orientado para conexão, o soquete no processo do servidor espera por solicitações de um cliente. Para fazer isso, o servidor primeiro estabelece (vincula) um endereço que os clientes podem usar para localizar o servidor. 

Quando o endereço é estabelecido, o servidor espera que os clientes solicitem um serviço. A troca de dados cliente-servidor ocorre quando um cliente se conecta ao servidor por meio de um soquete. O servidor executa a solicitação do cliente e envia a resposta de volta ao cliente.

Dois tipos de soquetes de Internet

O que é isso? Existem dois tipos de tomadas de Internet? 

A verdade é que há mais, mas vamos falar apenas sobre dois tipos aqui. 

Quais são os dois tipos? Um é “Stream Sockets”; o outro é “Datagram Sockets”, que podem ser doravante referidos como ” SOCK_STREAM ” e ” SOCK_DGRAM “, respectivamente. Os soquetes de datagrama são algumas vezes chamados de “soquetes sem conexão”. (Embora eles possam ser conectados se você realmente quiser). 

Os soquetes de fluxo são fluxos de comunicação conectados de duas vias confiáveis. Se você produzir dois itens no soquete na ordem “1, 2”, eles chegarão na ordem “1, 2” na extremidade oposta. Eles também estarão livres de erros. 

Não há regra dizendo “TCP é melhor que UDP” ou vice-versa. Depende do seu caso de uso.

A confiabilidade e as proteções oferecidas pelo TCP o tornam excelente para aplicativos que dependem da capacidade de receber todos os dados enviados por uma rede. Esses aplicativos incluem o carregamento de páginas da web e o envio de e-mail.

O UDP, por outro lado, é o melhor protocolo em termos de velocidade. Para aplicativos que exigem uma conexão consistente, como streaming de vídeo, a velocidade é essencial, e é por isso que o UDP ainda existe, apesar de suas desvantagens.

Agora você tem o conhecimento de que precisa para entender TCP, UDP e as vantagens e desvantagens de cada protocolo, lembrando:

UDP:

➨Ele usa tamanho de pacote pequeno com cabeçalho pequeno (8 bytes). Esse menor número de bytes na sobrecarga faz com que o protocolo UDP precise de menos tempo no processamento do pacote e de menos memória.

➨Não requer conexão para ser estabelecida e mantida.

➨A ausência de campo de confirmação no UDP o torna mais rápido, pois não é necessário esperar pelo ACK ou manter os dados na memória até que sejam ACKed.

➨Ele usa checksum com todos os pacotes para detecção de erros.

➨Pode ser usado em eventos onde um único pacote de dados precisa ser trocado entre os hosts.

TCP: 

➨É um modelo padrão da indústria que pode ser implantado com eficácia em problemas práticos de rede.

➨É interoperável, ou seja, permite comunicações multiplataforma entre redes heterogêneas.

➨É um conjunto de protocolos abertos. Não é propriedade de nenhum instituto em particular e, portanto, pode ser usado por qualquer indivíduo ou organização.

➨É uma arquitetura escalável cliente-servidor. Isso permite que redes sejam adicionadas sem interromper os serviços atuais.

➨Ele atribui um endereço IP a cada computador na rede, fazendo com que cada dispositivo seja identificável na rede. Ele atribui a cada site um nome de domínio. Ele fornece serviços de resolução de nomes e endereços.

O que achou do nosso texto? Conheça agora mais sobre o protocolo HTTPS!

Deixe um comentário
Você também pode gostar