Protocolos UDP

Revisão de 01h00min de 31 de outubro de 2017 por Adelson (discussão | contribs) (Criou página com '== Conceito Geral == O protocolo UDP (User Datagram Protocol) é um dos protocolos básicos usados ​​na Internet. Um nome alternativo para o protocolo é o Universal Datag...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Conceito Geral

O protocolo UDP (User Datagram Protocol) é um dos protocolos básicos usados ​​na Internet. Um nome alternativo para o protocolo é o Universal Datagram Protocol. Vários programas usam o protocolo UDP para enviar mensagens curtas (também conhecidas como datagramas) de um computador para outro dentro de uma rede de computadores.

Uma das principais características do UDP é que ele não garante uma comunicação confiável. Os pacotes UDP enviados a partir de um computador podem chegar ao destinatário na ordem errada, dobrar ou não, se a rede tiver uma carga pesada. É usado quando a entrega "rápida" de pacotes é mais importante do que a entrega "cara", como transmissão de voz e vídeo. Em contraste, a TCP possui todos os mecanismos de controle e confiabilidade necessários e, portanto, pode garantir comunicação confiável entre computadores. A falta desses mecanismos pelo protocolo UDP torna bastante rápido e eficiente, pelo menos para as aplicações que não exigem comunicação confiável.

Aplicativos de transmissão de áudio e vídeo estão usando pacotes UDP por muito tempo. Para esses aplicativos, é muito importante que os pacotes sejam entregues ao destinatário em pouco tempo para que não haja interrupção no fluxo de áudio ou vídeo. Portanto, o protocolo UDP é preferido porque é rápido o suficiente, embora exista a possibilidade de que alguns pacotes UDP possam ser perdidos. No caso de perda de um pacote, esses aplicativos possuem mecanismos especiais de correção e interpolação para que o usuário final não perceba nenhuma alteração ou interrupção no fluxo de áudio e vídeo devido ao pacote perdido. Ao contrário do TCP, o UDP suporta a transmissão, o envio de um pacote para todos os computadores em uma rede e o multicast, enviando um pacote para computadores específicos em uma rede. O último recurso é usado muitas vezes em aplicativos de transmissão de áudio e vídeo, de modo que um fluxo de transmissões de áudio ou vídeo seja transmitido simultaneamente para vários assinantes.

Alguns aplicativos importantes que usam pacotes UDP são: Sistema de Nome de Domínio (DNS), IPTV, Voz sobre IP (VoIP), Trivial File Transfer Protocol (TFTP) e jogos reproduzidos ao vivo na Internet.

Estrutura do pacote UDP

A estrutura de um pacote UDP é descrita detalhadamente no correspondente padrão IETF RFC 768. No Internet Protocol Suite, o UDP está localizado entre a camada de rede e a camada de sessão ou camada de aplicativos.

Cada pacote UDP possui um cabeçalho que lista seus atributos. O cabeçalho inclui apenas quatro campos, que são muito poucos se comparados a outros protocolos, como o TCP. Campos opcionais aparecem em itálico.


+ Bits 0 - 15 16 - 31
0 Source Port Destination Port
32 Comprimento Checksum
64

Dados 



Abaixo está uma breve explicação dos campos:

  • Source Port: A source port da qual veio o pacote. Se o destinatário deseja enviar uma resposta, eles devem enviá-lo para essa porta. Este campo não é obrigatório, e nos casos em que não é usado, ele deve ser zero.
  • Destination Port: A destination port para a qual o pacote será entregue.
  • Comprimento: Este campo tem tamanho de 16 bits e inclui tamanho de pacote em bytes. O menor tamanho possível é de 8 bytes, já que o próprio cabeçalho ocupa muito espaço. Em teoria, o tamanho do pacote UDP não pode exceder 65,527 bytes, mas praticamente o limite é reduzido para 65,507 bytes devido a várias restrições introduzidas pelo IPv4 no nível da rede.
  • Checksum: Um campo de 16 bits que é usado para verificar a integridade do pacote como um todo, ou seja, o cabeçalho e os dados.

Em seguida, o pacote UDP vai ao nível da rede, que se compromete em transmiti-lo à rede informática. Esse nível coloca outro cabeçalho no pacote, que varia dependendo da versão do protocolo usada na camada de rede (IPv4 ou IPv6).

Para IPv4 , o pacote leva o seguinte formato:


+ Bits 0 - 7 8-15 16 - 23 24 - 31
0 Endereço de origem
32 Endereço de destino
64 Zero Protocolo Comprimento UDP
96 Source Port Porto de Destino
128 Comprimento Checksum
160

Dados 


  • Endereço de origem, endereço de destino: Os endereços IP do remetente e do destinatário, respectivamente.
  • Zero: Uma sequência de zeros, que não desempenha nenhum papel na transmissão do pacote.
  • Protocolo: Um número de recurso correspondente ao protocolo utilizado. Para UDP, o valor que esse campo requer é 17.
  • Comprimento UDP: O tamanho total do pacote UDP.

Para o IPv6 , o pacote apresenta a seguinte forma:

t

+ Bits 0 - 7 8-15 16 - 23 24 - 31
0 Endereço de origem
32
64
96
128 Endereço de destino
160
192
256
288 Comprimento UDP
320 Zero Próximo cabeçalho
352 Source Port Porto de Destino
384 Comprimento Checksum
416

Dados 


  • Endereço de origem, endereço de destino: Os endereços IP do remetente e do destinatário, respectivamente, mas que são de tipo IPv6, ou seja, muito maiores (IPv4 - 32bit, IPv6 - 128bit).
  • Comprimento UDP: O tamanho total do pacote UDP, como antes.
  • Zero: Uma sequência de zeros, que não desempenha nenhum papel na transmissão do pacote.
  • Próximo cabeçalho: Este campo obtém um valor típico do protocolo que está sendo usado. No caso do UDP, esse valor é 17.

No caso do IPv6, o campo checksum do pacote UDP não é mais opcional, mas deve ser completado.

Aplicações

Como mencionado anteriormente, os aplicativos habilitados para UDP devem ser capazes de aceitar perda de pacotes ou erros nos pacotes enviados. Algumas aplicações, como o Trivial File Transfer Protocol (TFTP), implementam seus próprios mecanismos para garantir a confiabilidade da comunicação. No entanto, a maioria das aplicações que usam o UDP não impõe mecanismos de confiabilidade adicionais, porque eles serão prejudicados por eles e agravando seu desempenho. Um exemplo clássico de tais programas são aplicações em tempo real (por exemplo, transmissão de mídia, jogos na internet, VoIP, etc.). No entanto, se um aplicativo precisa de transmissão de dados confiável, ou seja, a maioria dos aplicativos da Internet, preferiria usar TCP em vez de UDP.


Em uma rede de computadores típica, o tráfego resultante da transmissão de pacotes UDP equivale a uma porcentagem bastante pequena. No entanto, este protocolo utiliza aplicações muito importantes, cuja operação correta é baseada na Internet. Tais aplicativos são, por exemplo: Sistema de Nome de Domínio ( DNS ), Protocolo de Gerenciamento de Rede Simples ( SNMP ), Protocolo de Configuração de Host Dinâmico ( DHCP ) e RIP (Routing Information Protocol)

Diferenças entre TCP e UDP

O protocolo TCP funciona estabelecendo links entre o remetente e o destinatário dos pacotes. Uma vez que uma conexão é estabelecida com sucesso, todos os dados são enviados de um computador para o outro na forma de pacotes usando essa conexão. As principais características do TCP são:

  • Confiabilidade: O TCP usa vários mecanismos para garantir que os pacotes transmitidos pelo remetente certamente alcançarão o destinatário e na ordem correta. Esses mecanismos incluem a confirmação de receber um pacote do destinatário, o reencaminhamento de pacotes perdidos e a configuração de um período mínimo dentro do qual cada pacote carregado deve ser omitido (tempo limite). Se um pacote for perdido, o remetente tentará reenviá-lo novamente. Além disso, se o destinatário verificar que um pacote não chegou, ele pedirá ao remetente que o reenvie.
  • Packet Series - Se dois pacotes são enviados em uma conexão um após o outro, o protocolo TCP garante que eles alcançarão o destinatário na mesma ordem em que foram enviados. Se um pacote estiver faltando e os pacotes vierem no futuro, eles são mantidos no buffer até o pacote faltante chegar. Em seguida, eles são reorganizados e exibidos na ordem correta para o destinatário.
  • Gravidade: TCP é considerado particularmente pesado, dado que requer pelo menos 3 pacotes para estabelecer a conexão antes de qualquer pacote de dados ser transmitido. Além disso, os mecanismos de confiabilidade que o implementam tornam ainda mais pesado, o que naturalmente tem um impacto significativo na velocidade de transmissão de dados.

O UDP é um protocolo mais simples e fácil, no qual não existe um conceito de conexão. Cada pacote UDP atravessa a rede como uma unidade independente separada e não como uma série de pacotes em uma conexão, como TCP. As principais características do UDP são:

  • Não confiável: Ao enviar um pacote, o remetente não consegue saber se o pacote atingirá seu destino corretamente ou será perdido na rede. Não há provisão para confirmação de receber um pacote do destinatário, nem para a retransmissão de um pacote perdido.
  • Não há ordem: os pacotes UDP, ao contrário do TCP, não são numerados e, portanto, não há uma ordem específica na qual eles devem chegar ao destinatário.
  • Leve: Este protocolo é muito leve em comparação com o TCP porque não implementa todos os mecanismos de comunicação confiáveis ​​no segundo. Isso tem o efeito de ser muito mais rápido.
  • Datagramas: Cada pacote UDP também é chamado de "datagrama" e é considerado como uma entidade única que deve ser transmitida como um todo. Consequentemente, não há conceito de salto de pacote dentro de um canal/conexão.

Referências

http://www.rfc-editor.org/rfc/rfc768.txt

https://www.google.com/patents/US7151754

https://www.tecmundo.com.br/internet/57947-internet-diferenca-entre-protocolos-udp-tcp.htm

http://www.hardware.com.br/termos/udp

https://pt.stackoverflow.com/questions/221860/o-que-é-tcp-e-udp-qual-a-diferença-entre-os-dois-protocolos

http://knoow.net/ciencinformtelec/informatica/udp-user-datagram-protocol/

https://pt.wikiversity.org/wiki/Introdução_às_Redes_de_Computadores/Protocolo_UDP