Cursos / Redes de Computadores / Redes de Computadores I / Aula

arrow_back Aula 14 - Protocolo UDP

Escolhendo qual protocolo utilizar: TCP ou UDP

O fato de o protocolo UDP ser muito mais simples do que o TCP não significa que ele é pior. É verdade que se você utilizar UDP e precisar de alguma característica que ele não fornece, como numeração dos pacotes, por exemplo, seu programa é que terá que implementar essa função. Mas isso lhe permite ter uma solução (protocolo de transporte + sua aplicação) que tenha apenas as características necessárias. Além disso, o UDP é muito mais leve e rápido do que o TCP, pois seu cabeçalho é menor e ele precisa realizar menos operações. Podemos citar alguns pontos importantes a serem considerados no UDP:

  • Perda de pacotes – Algumas aplicações suportam a perda de pacotes, como é o caso de aplicações que transmitem voz sobre o IP. Quando usamos TCP, se algum pacote é perdido os demais pacotes recebidos não podem ser passados para a aplicação, até que o pacote perdido seja retransmitido e chegue com sucesso. Isso implica que se você está transmitindo um áudio pela rede e reproduzindo na máquina de destino e um pacote se perde, o destino irá para a reprodução do áudio até receber o pacote perdido, gerando aquele conhecido efeito de “corte” quando ouvimos músicas pela internet. Talvez fosse melhor ignorar o pacote perdido e continuar a reprodução do áudio com os pacotes que já chegaram, pois o ouvido humano provavelmente não perceberia a perda.
  • Multicast e Broadcast – O UDP suporta multicast e broadcast que são formas de transmissão para várias máquinas simultaneamente. O TCP não suporta esse recurso, exigindo uma conexão individual para cada máquina. Naturalmente, isso pode acarretar um maior tráfego na rede, para enviar as mesmas informações.
  • Número de pacotes transmitidos – Para aplicações que usam TCP e transmitem um grande número de pacotes, os pacotes trocados para abertura e encerramento da conexão não farão muita diferença. Entretanto, existem aplicações que transmitem apenas uma pequena quantidade de informação, por exemplo, um pacote com a solicitação e recebem a resposta em outro pacote. Nesses casos, gastar três pacotes para abrir a conexão e quatro para o encerramento da conexão significa uma grande sobrecarga. Ou seja, ao invés serem transmitidos apenas dois pacotes (1 + 1) entre as duas máquinas, são necessários aproximadamente nove (3 + 2 + 4).

Podemos dizer que não existe um protocolo melhor ou pior, existe o mais adequado às necessidades de cada aplicação. Se sua aplicação, por exemplo, transmite pequenas quantidades de informação de cada vez ou pode lidar com a perda de pacotes, considere a possibilidade de usar UDP. Caso sua aplicação precise de confiabilidade na entrega dos pacotes, ou seja, que eles cheguem à ordem correta e que os pacotes perdidos sejam retransmitidos, use TCP. Além disso, o mecanismo de controle de fluxo do TCP é muito importante quando as aplicações se comunicando estão em máquinas situadas em diferentes redes na internet. A verdade é que a maioria das aplicações precisa de confiabilidade e, portanto, utilizam TCP.

Como exemplos de protocolos da camada de aplicação que utilizam UDP, podemos citar: DNS (tradução de nomes para endereços IP), DHCP (configuração automática do TCP/IP) e SNMP (gerência). Como exemplos de protocolos que utilizam TCP, podemos citar: SMTP (e-mail), POP3 (e-mail), IMAP (e-mail), HTTP (web), FTP (transferência de arquivo), LDAP (autenticação, entre outros), SMB (compartilhamento de arquivos) e SSH (terminal remoto).

Versão 5.3 - Todos os Direitos reservados