Serviços de transporte disponíveis para aplicações

Lembre-se de que um socket é a interface entre o processo da aplicação e o protocolo de camada de transporte. A aplicação do lado remetente envia mensagens através do socket. Do outro lado do socket, o protocolo de camada de transporte tem a responsabilidade de levar as mensagens pela rede até a “porta” do socket destinatário. Muitas redes, inclusive a Internet, oferecem mais de um protocolo de camada de transporte. Ao desenvolver uma aplicação, você deve escolher um dos protocolos de camada de transporte disponíveis. Como fazer essa escolha? O mais provável é que você avalie os serviços providos pelos protocolos de camada de transporte disponíveis e escolha o protocolo que melhor atenda às necessidades de sua aplicação. A situação é semelhante a escolher trem ou avião como meio de transporte entre duas cidades. Você tem de escolher um ou outro, e cada modalidade de transporte oferece serviços diferentes. Por exemplo, o trem oferece a facilidade da partida e da chegada no centro da cidade, ao passo que o avião oferece menor tempo de viagem.

Quais são os serviços que um protocolo da camada de transporte pode oferecer às aplicações que o chamem? Podemos classificar, de maneira geral, os possíveis serviços segundo quatro dimensões: transferência confiável de dados, vazão, temporização e segurança.

Transferência confiável de dados

Como discutido no Capítulo 1, os pacotes podem se perder dentro de uma rede de computador. Um pacote pode, por exemplo, exceder um buffer em um roteador, ou ser descartado por um hospedeiro ou um roteador após alguns de seus bits terem sido corrompidos. Para muitas aplicações — como correio eletrônico, transferência de arquivo, acesso remoto, tranferências de documentos da Web e aplicações financeiras — a perda de dados pode ter consequências devastadoras (no último caso, para o banco e para o cliente!). Assim, para suportar essas aplicações, algo deve ser feito para garantir que os dados enviados por uma extremidade da aplicação sejam enviados correta e completamente para a outra extremidade da aplicação. Se um protocolo fornecer um serviço de recebimento de dados garantidos, ele fornecerá uma transferência confiável de dados. Um importante serviço que o protocolo da camada de transporte pode oferecer para uma aplicação é a transferência confiável de dados processo a processo. Quando um protocolo de transporte oferece esse serviço, o processo remetente pode passar seus dados para um socket e saber com absoluta confiança que os dados chegarão sem erro ao processo destinatário.

Quando um protocolo da camada de transporte não oferece uma transferência confiável de dados, os dados enviados pelo processo remetente podem nunca chegar ao processo destinatário. Isso pode ser aceitável para aplicações tolerantes a perda, aplicações de multimídia como áudio/vídeo em tempo real ou áudio/vídeo armazenado, que podem tolerar uma quantidade de perda de dados. Nessas aplicações multimídia, dados perdidos podem resultar em uma pequena falha durante a execução do áudio/vídeo — o que não é um prejuízo crucial.

Vazão

Já  apresentamos o conceito de vazão disponível, que, no contexto de sessão da comunicação entre dois processos ao longo de um caminho de rede, é a taxa à qual o processo remetente pode enviar bits ao processo destinatário. Como outras sessões compartilharão a largura de banda no caminho da rede e estão indo e voltando, a vazão disponível pode oscilar com o tempo. Essas observações levam a outro serviço natural que um protocolo da camada de transporte pode oferecer, ou seja, uma vazão disponível garantida a uma taxa específica. Com tal serviço, a aplicação pode solicitar uma vazão garantida de r bits/s, e o protocolo de transporte garante, então, que a vazão disponível seja sempre r bits/s, pelo menos. Tal serviço de vazão garantida aparece em muitas aplicações. 

Por exemplo, se uma aplicação de telefonia por Internet codifica voz a 32 bits/s, ela precisa enviar dados para a rede e fazer com que sejam entregues na aplicação receptora a essa mesma taxa. Se o protocolo de transporte não puder fornecer essa vazão, a aplicação precisará codificar a uma taxa menor (e receber vazão suficiente para sustentar essa taxa de codificação mais baixa) ou então desistir, já que receber metade da vazão de que precisa de nada adianta para essa aplicação de telefonia por Internet. Aplicações que possuam necessidade de vazão são conhecidas como aplicações sensíveis à largura de banda. Muitas aplicações de multimídia existentes são sensíveis à largura de banda, embora algumas poderão usar técnicas adaptativas de codificação para codificar a uma taxa que corresponda à vazão disponível na ocasião. Embora aplicações sensíveis à largura de banda possuam necessidades específicas de vazão, as aplicações elásticas podem fazer uso de qualquer quantidade mínima ou máxima que por acaso esteja disponível. Correio eletrônico, transferência de arquivos e transferências Web são todas aplicações elásticas. Evidentemente, quanto mais vazão, melhor. Há um ditado que diz que “dinheiro nunca é demais”; nesse caso, podemos dizer que vazão nunca é demais!  

Temporização

Um protocolo da camada de transporte pode também oferecer garantias de temporização. Como na garantia de vazão, as garantias de temporização podem surgir em diversos aspectos e modos. Podemos citar como exemplo o fato de que cada bit que o remetente insere no socket chega ao socket destinatário em menos de 100 milissegundos depois. Esse serviço seria atrativo para aplicações interativas em tempo real, como a telefonia por Internet, ambientes virtuais, teleconferência e jogos multijogadores, que exigem restrições de temporização no envio de dados para garantir eficácia. (Veja Capítulo 7, [Gauthier, 1999; Ramjee, 1994].) Longos atrasos na telefonia por Internet, por exemplo, tendem a resultar em pausas artificiais na conversação; em um jogo multiusuário ou ambiente virtual interativo, um longo atraso entre realizar uma ação e ver a reação do ambiente (por exemplo, a reação de um outro jogador na outra extremidade de uma conexão fim a fim) faz com que a aplicação pareça menos realista. Para aplicações que não são em tempo real, é sempre preferível um atraso menor a um maior, mas não há nenhuma limitação estrita aos atrasos fim a fim.

Segurança

Por fim, um protocolo de transporte pode oferecer uma aplicação com um ou mais serviços de segurança. Por exemplo, no hospedeiro remetente, um protocolo de transporte pode codificar todos os dados transmitidos pelo processo remetente e, no hospedeiro destinatário, o protocolo da camada de transporte pode codificar os dados antes de enviá-los ao processo destinatário. Tal serviço pode oferecer sigilo entre os dois processos, mesmo que os dados sejam, de algum modo, observados entre os processos remetente e destinatário. Um protocolo de transporte pode, além do sigilo, fornecer outros serviços de segurança, incluindo integridade dos dados e autenticação do ponto terminal.

ATIVIDADE DE FIXAÇÃO

  

Comentários

Postagens mais visitadas deste blog

Wi-Fi: LANs sem fio 802.11

Caches Web

Acesso celular à Internet