Serviços de transporte providos pela Internet

Até aqui, consideramos serviços de transportes que uma rede de computadores poderia oferecer em geral. Vamos agora nos aprofundar mais no assunto e analisar o tipo de suporte de aplicação provido pela Internet. A Internet (e, em um amplo sentido, as redes TCP/IP) disponibiliza dois protocolos de transporte para aplicações, o UDP e o TCP. Quando você (como um criador de aplicação) cria uma nova aplicação de rede para a Internet, uma das primeiras decisões a ser tomada é usar o UDP ou o TCP. Cada um desses protocolos oferece um conjunto diferente de serviços para as aplicações solicitantes. A Figura 2.4 mostra os requisitos do serviço para algumas aplicações selecionadas.

Serviços do TCP

O modelo de serviço TCP inclui um serviço orientado para conexão e um serviço confiável de transferência de dados. Quando uma aplicação solicita o TCP como seu protocolo de transporte, recebe dele ambos os serviços.

Serviço orientado para conexão: o TCP faz com que o cliente e o servidor troquem informações de controle de camada de transporte antes que as mensagens de camada de aplicação comecem a fluir. Esse procedimento de apresentação, por assim dizer, alerta o cliente e o servidor, permitindo que eles se preparem para uma enxurrada de pacotes. Após a fase de apresentação, dizemos que existe uma conexão TCP entre os sockets dos dois processos. A conexão é full-duplex (simultânea), visto que os dois processos podem enviar mensagens um ao outro pela conexão ao mesmo tempo. Quando termina de enviar mensagens, a aplicação deve interromper a conexão. Esse serviço é chamado de serviço “orientado para conexão”, e não serviço “de conexão”, porque os dois processos estão conectados de um modo muito solto. No Capítulo 3, discutiremos detalhadamente serviço orientado para conexão e examinaremos como ele é implementado.

Serviço confiável de transporte: os processos comunicantes podem confiar no TCP para a entrega de todos os dados enviados sem erro e na ordem correta. Quando um lado da aplicação passa uma cadeia de bytes para dentro de um socket, pode contar com o TCP para entregar a mesma cadeia de dados ao socket receptor, sem falta de bytes nem bytes duplicados.


O TCP também inclui um mecanismo de controle de congestionamento, um serviço voltado ao bem-estar geral da Internet e não ao benefício direto dos processos comunicantes. O mecanismo de controle de congestionamento do TCP limita a capacidade de transmissão de um processo (cliente ou servidor) quando a rede está congestionada entre cliente e servidor. Em particular, como veremos no Capítulo 3, o controle de congestionamento do TCP tenta limitar cada conexão do TCP à sua justa porção de largura de banda de rede. A limitação da velocidade de transmissão pode ter um efeito muito prejudicial sobre aplicações de áudio e vídeo em tempo real que imponham uma limitação de largura de banda mínima. Além disso, aplicações em tempo real são tolerantes à perda e não necessitam de um serviço de transporte totalmente confiável. Por essas razões, desenvolvedores de aplicações em tempo real usualmente executam suas aplicações em UDP, e não em TCP.

Serviços do UDP

O UDP é um protocolo de transporte simplificado, leve, com um modelo de serviço minimalista. É um serviço não orientado para conexão; portanto, não há apresentação antes que os dois processos comecem a se comunicar. O UDP provê um serviço não confiável de transferência de dados — isto é, quando um processo envia uma mensagem para dentro de um socket UDP, o protocolo não oferece nenhuma garantia de que a mensagem chegará ao processo receptor. Além do mais, mensagens que realmente chegam ao processo receptor podem chegar fora de ordem.

O UDP não inclui um mecanismo de controle de congestionamento; portanto, um processo originador pode bombear dados para dentro de uma camada abaixo (a camada de rede) à taxa que quiser. (Observe, entretanto, que a vazão fim a fim pode ser menor do que essa taxa devido à largura de banda limitada de enlaces intervenientes ou ao congestionamento). Como aplicações em tempo real usualmente podem tolerar uma certa perda de dados, mas exigem uma taxa mínima, desenvolvedores desse tipo de aplicações frequentemente preferem executá-las por UDP, evitando, assim, o controle de congestionamento e os cabeçalhos de pacotes do TCP. Por outro lado, como muitos firewalls estão configurados para bloquear (a maioria dos tipos de) tráfego UDP, os projetistas têm escolhido, cada vez mais, executar aplicações multimídia e em tempo real por meio do TCP [Sripanidkulchai, 2004].

Comentários

Postagens mais visitadas deste blog

Wi-Fi: LANs sem fio 802.11

Caches Web

Acesso celular à Internet