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.

 

Sobre Fábio dos Reis (1298 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


*