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:
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:
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:
Escreva um comentário