sexta-feira, 3 de outubro de 2008

Vantagens do uso do UDP

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. Aplicações sensíveis a atrasos na rede, mas poucos sensíveis a perdas de pacotes, como jogos de computadores, também podem se utilizar do UDP. As garantias de TCP envolvem retransmissão e espera de dados, como consequência, intensificam os efeitos de uma alta latência de rede.
• O UDP também suporta broadcasting e multicasting. Caso esses recursos sejam necessários, o UDP deverá necessariamente ser utilizado. Algum tratamento de erro pode ser adicionado, mas geralmente aplicações multicast também admitem perda de parte dos pacotes ou fazem retransmissões constantes (tal como o ocorre no protocolo DHCP).
• 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. Entretanto, pode ser necessário implementar algoritmos de timeouts, acks e, no mínimo, retransmissão. Nesse caso, vale lembrar que se a troca de mensagens for muito intensa, o protocolo TCP pode voltar a ser vantajoso, já que seu custo de conexão será amortizado.
Embora o processamento dos pacotes UDP seja realmente mais rápido, quando as garantias de confiabilidade e ordenação são necessárias, é pouco provável que uma implementação em UDP obterá resultados melhores do que o uso direto do TCP. Em primeiro lugar, corre-se o risco de que uma implementação ingênua feita em UDP seja menos eficiente do que os algoritmos já testados e otimizados presentes no TCP. Em segundo lugar, boa parte do protocolo TCP, nos principais sistemas operacionais, opera em modo núcleo, tendo portanto uma execução mais privilegiada do que um protocolo de aplicação teria. Finalmente, é válido lembrar que muitas placas de rede já possuem o TCP programado em seu firmware o que permite, por exemplo, o cálculo de checksum por hardware. Por isso, o protocolo UDP não deveria ser utilizado para fluxos de bytes confiáveis, tais como a transferência de arquivos. Como exemplo, podemos citar o protocolo TFTP, exceção a essa regra, que foi feito redes locais, de alta confiabilidade. Na internet, seu desempenho é muito inferior ao sua versão confiável, o protocolo FTP.
O UDP também fornece os serviços de broadcast e multicast, permitindo que um único cliente envie pacotes para vários outros na rede.

Nenhum comentário: