UDP (User Datagram Protocol)
O protocolo de datagramas de utilizador (UDP) é um protocolo simples da camada de transporte que permite uma comunicação sem conexão. Ele é descrito na RFC 768 e permite que a aplicação escreva um datagrama encapsulado num pacote IPv4 ou IPv6, e então enviado ao destino. Mas não há qualquer tipo de garantia que o pacote irá chegar ou não. Os pacotes que cheguem corrompidos são simplesmente descartados, sem que o emissor sequer saiba do problema. A idéia é justamente transmitir dados com o maior desempenho possível, eliminando dos pacotes quase tudo que não sejam dados em si.
Cada datagrama UDP tem um tamanho e pode ser considerado como um registro indivisível, diferentemente do TCP, que é um protocolo orientado a fluxos de bytes sem início e sem fim.
Histórico
O trabalho original de Vint Cerf e Bob Kahn sobre a Internet descreveu o protocolo TCP, que provia todo o transporte e serviços de encaminhamento na Internet. Kahn queria que o protocolo suportasse uma série de serviços de transporte, desde a entrega seqüenciada de dados totalmente confiável até o serviço de datagrama, onde a aplicação fazia uso direto do serviço básico de rede, o que poderia implicar em pacotes ocasionalmente perdidos, corrompidos ou reordenados. O modelo funcionou bem para transferência de arquivos e aplicações de logins remotos, mas alguns dos trabalhos em aplicações avançadas como pacotes de voz mostraram que, em alguns casos, a perda de pacotes deveria ser corrigida pela aplicação e não pelo protocolo TCP. Isso levou a uma reorganização do TCP original em dois protocolos: o simples IP que provia apenas o endereçamento e o roteamento dos pacotes individuais e o TCP em separado, que se preocupava com o controle do fluxo e a recuperação de pacotes perdidos. Para as aplicações que não queriam os serviços de TCP, uma alternativa chamada UDP (User Datagram Protocol) foi adicionada para prover acesso direto ao serviço básico de IP.
Funcionamento
O UDP dá às aplicações acesso direto ao serviço de entrega de datagramas, como o serviço de entrega que o IP dá. O UDP é pouco confiável, sendo um protocolo não orientado para conexão. Não existem técnicas no protocolo para confirmar que os dados chegaram ao destino corretamente. O UDP usa número de porta de origem e de destino de 16 bits. O UDP faz a entrega de mensagens independentes, designadas por datagramas, entre aplicações ou processos, em sistemas host. A entrega pode ser feita fora de ordem e datagramas podem ser perdidos. A integridade dos dados pode ser conferida por um "checksum" (um campo no cabeçalho de checagem por soma) baseado em complemento de um, de 16 bits.
Os pontos de acesso do UDP são geralmente designados por "Portas de protocolo" ou "portas" ou até "portos", em que cada unidade de transmissão de dados UDP identifica o endereço IP e o número de porta do destino e da fonte da mensagem, os números podendo ser diferentes em ambos os casos. A diferença básica entre o UDP e o TCP é o fato de que o TCP é um protocolo orientado à conexão e, portanto, inclui vários mecanismos para iniciar, manter e encerrar a comunicação, negociar tamanhos de pacotes, detectar e corrigir erros, evitar congestionamento do fluxo e permitir a retransmissão de pacotes corrompidos, independente da qualidade do meio físico.
No UDP, por sua vez, é feito para transmitir dados pouco sensíveis, como fluxos de áudio e vídeo, ou para comunicação sem conexão como é o caso da negociação DHCP ou tradução de endereços por DNS. No UDP não existem checagens e nem confirmação alguma. Os dados são transmitidos apenas uma vez, incluindo apenas um frágil, e opcional, sistema de CRC de 16 bits. Os pacotes que chegam corrompidos são simplesmente descartados, sem que o emissor sequer saiba do problema. Por outro lado, a ausência de estruturas de controle complexas garante ao UDP alta eficiência, já que cada pacote é composto praticamente somente por dados.
Cabeçalho
O cabeçalho UDP é extremamente simples, contendo apenas os números de porta, comprimento da mensagem e o checksum. O cabeçalho dos datagramas UDP é colocado a seguir ao cabeçalho IP.
Os campos em laranja são opcionais. A porta de origem geralmente especifica a porta desejada de resposta, mas pode ser omitida. Isso tipicamente ocorre em comunicações broadcast ou mensagens de pânico, que notificam sobre a queda de um equipamento.
Seleção do número de portas no UDP
Os computadores que pretendem estabelecer uma comunicação devem definir um número de porta. Para o servidor (Processo), e aguarda pela chegada de mensagens, datagramas, o cliente seleciona uma porta local, para recebimento de datagramas e envia datagramas para a porta selecionada para o processo do servidor. Muitos serviços conhecidos usam números de portas reservados, por exemplo: 161 para o Protocolo SNMP.
Vantagens do uso do UDP
• O UDP é uma escolha adequada para fluxos de dados em tempo real, especialmente aqueles que admitem perda ou corrompimento de parte de seu conteúdo, tais como vídeos ou voz;
• O UDP não perde tempo com criação ou destruição de conexões. Durante uma conexão, o UDP troca apenas 2 pacotes, enquanto no TCP esse número é superior a 10. Por isso, aplicações que encaixam num modelo de pergunta-resposta também são fortes candidatas a usar UDP. Significado dos diferentes campos.
• Porta Fonte : trata-se do número de porta que corresponde à aplicação emissora do segmento UDP. Este campo representa um endereço de resposta para o destinatário. Assim, este campo é opcional, isto significa que se não se precisar a porta fonte, as 16 bits deste campo serão postas a zero, neste caso o destinatário não poderá responder (isto não é necessariamente necessário, nomeadamente para mensagens unidireccionais.
• Porta Destino : Este campo contém a porta que corresponde à aplicação da máquina destinatário à qual nos dirigimos.
• Comprimento : Este campo precisa o comprimento total do segmento, incluindo o cabeçalho, ora o cabeçalho tem um comprimento de 4 x 16 bits (são 8 x 8 bits), então o campo comprimento é necessariamente superior ou igual a 8 bytes.
• Soma de controlo : Trata-se de uma soma de controlo realizada de maneira a poder controlar a integridade do segmento.
Download
Segue em anexo o texto acima: