Curso de Redes – Protocolo UDP (User Datagram Protocol)

Protocolo UDP (User Datagram Protocol)

O Protocolo UDP, que pertence à camada de transporte juntamente com o protocolo TCP, é um protocolo simples, orientado a datagrama. Ele não fornece confiabilidade na transmissão, pois envia os datagramas requisitados pela aplicação sem nenhuma garanta de que eles chegarão ao seu destino.

O UDP não estabelece conexões antes de enviar dados. Apenas os empacota em datagramas e os envia. Além disso, não fornece confirmação da entrega desses dados. Portanto, o UDP não fornece nenhuma garantia de que as mensagens serão entregues, e não consegue detectar mensagens perdidas, tampouco retransmiti-las.
Além disso, não garante que as mensagens serão recebidas na mesma ordem em que foram enviadas, e não possui mecanismos para gerenciamento do fluxo de dados entre os dispositivos.

Basicamente, o UDP é apenas um sistema de endereçamento de portas para o protocolo IP.

É muito comum pensar que, por conta dessas características específicas, nós deveríamos sempre usar o protocolo TCP para enviar dados em rede; porém, diversas aplicações se beneficiam desse modelo de envio, sem confiabilidade, por conta de sua performance. O UDP é um protocolo simples, porém rápido.

O UDP encontra aplicações, por exemplo, em sistemas onde a performance da transmissão de dados é mais importante do que a plenitude da entrega de todos os datagramas. Como exemplo podemos citar aplicações multimídia. Se você estiver assistindo a um vídeo em streaming pela Internet (como os vídeos do canal da Bóson no YouTube), o mais importante é que o fluxo de transmissão seja rápido e uniforme, sem “travamentos” ou “saltos” durante a exibição do vídeo. Se alguns datagramas forem perdidos ou descartados durante a transmissão, muito provavelmente nada será notado pelo usuário.

Aplicações do Protocolo UDP

O protocolo UDP encontra inúmeras aplicações em comunicação de redes, sendo que algumas das mais comuns estão compiladas na tabela a seguir:

Porta Protocolo Aplicação
53 DNS Sistema de resolução de nomes de domínio
67 e 68 DHCP Protocolo de configuração de hosts dinâmico
161 e 162 SNMP Protocolo para gerenciamento de redes, que utiliza mensagens curtas
520 e 521 RIP Protocolo de roteamento que não requer conexões

Alguns protocolos usam, na verdade, tanto o protocolo TCP quanto o UDP para transmissão de suas mensagens. O exemplo típico é o protocolo DNS, que também usa TCP para funções que requerem confiabilidade, como transferências de zonas.

O UDP encontra uso em streaming de áudio e vídeo, VoIP, gaming, mecanismos de broadcast e conexões VPN (OpenVPN, por exemplo), entre outras.

Cabeçalho UDP

Um segmento UDP é encapsulado em um datagrama IP, conforme podemos ver na figura a seguir:

Encapsulamento de um segmento UDP - Protocolos

E na figura a seguir podemos ver o formato completo de um cabeçalho UDP, cujo tamanho é de 8 bytes, conforme mostrado na ilustração anterior:

Formato do Cabeçalho UDP

O uso dos campos “Checksum” e “Número de Porta de Origem” é opcional em IPv4; já em IPv6 apenas o campo “Número de Porta de Origem” é opcional.

Segue uma descrição sucinta de cada um dos campos no cabeçalho UDP

  • Número de Porta de Origem: número que identifica a aplicação (processo) que envia os dados
  • Número de Porta de Destino: número que identifica a aplicação (processo) que deve receber os dados
  • Comprimento: Este é um campo que especifica o comprimento em bytes do cabeçalho UDP mais os dados carregados. O tamanho mínimo é de 8 bytes devido ao comprimento do cabeçalho. O tamanho máximo possível para um datagrama UDP é de 65.507 bytes (65.535 − 8 bytes do cabeçalho UDP − 20 bytes do cabeçalho IP), devido ao protocolo IPv4. Em IPv6 é possível termos pacotes de tamanho maior do que 65.535.
  • Checksum: Pode ser usado para verificação de erros do cabeçalho e dos dados transmitidos. É opcional em IPv4 e mandatório em IPv6. Se não for usado, deverá ser preenchido com zeros.

Note que ambos os protocolos, TCP e UDP, utilizam números de portas para identificar os processos que estão se comunicando, mas esses números são independentes- as portas TCP não tem relação com as portas UDP, e vice-versa.

Comparando os protocolos TCP e UDP

Se compararmos o protocolo UDP com o protocolo TCP, vamos notar as seguintes diferenças:

  • O UDP não é confiável – as mensagens enviadas podem não alcançar o destino. O TCP trata disso tentando garantir a entrega da mensagem ao destino.
  • O UDP não ordena os datagramas enviados – se chegarem fora de ordem, não serão reordenados. O TCP os reordena no destino, caso cheguem desordenados.
  • O UDP é um protocolo mais leve, pois não realiza handshake para estabelecer e finalizar conexões nem tampouco mantém registro das conexões ativas. O TCP realiza estas tarefas.
  • Como o UDP não é orientado à conexão, ele pode enviar pacotes em broadcast ou multicast tranquilamente. O TCP é projetado para trabalhar em comunicação unicast.

Quer aprender tudo sobre Redes de Computadores? Minha dica é o livro Redes de Computadores – 2ª Edição, de Gabriel Torres, que você pode adquirir em formato digital com preço promocional clicando na capa do livro a seguir:Curso de Redes de Computadores - Gabriel Torres

 

Sobre Fábio dos Reis (1364 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*