Distribuição de arquivos P2P

Começaremos nossa investida em P2P considerando uma aplicação bastante natural, ou seja, a distribuição de um grande arquivo a partir de um único servidor a um grande número de hospedeiros (chamados pares). O arquivo pode ser uma nova versão do sistema operacional Linux, um patch de software para um sistema operacional ou aplicação existente, um arquivo de música MP3 ou um arquivo de vídeo MPEG. Em uma distribuição de arquivo cliente-servidor, o servidor deve enviar uma cópia do arquivo para cada um dos pares — colocando um enorme fardo sobre o servidor e consumindo uma grande quantidade de banda do servidor. Na distribuição de arquivos P2P, cada par pode redistribuir qualquer parte do arquivo que recebeu para outros pares, auxiliando, assim, o servidor no processo de distribuição. Atualmente (outono [Nos EUA] de 2009), o protocolo de distribuição de arquivos P2P mais popular é o BitTorrent [BitTorrent, 2009]. Originalmente desenvolvido por Bram Cohen (consulte a entrevista com Bram Cohen no final deste capítulo), há atualmente muitos diferentes clientes independentes de BitTorrent conforme o protocolo do BitTorrent, assim como há diversos clientes de navegadores Web conformes ao protocolo HTTP. Nesta subseção, examinaremos primeiro a autoescalabilidade de arquiteturas P2P no contexto de distribuição de arquivos. Então, descreveremos o BitTorrent em um certo nível de detalhes, destacando suas características mais importantes.

Escalabilidade de arquiteturas P2P

Para comparar arquiteturas cliente-servidor com arquiteturas P2P, e ilustrar a inerente autoescalabilidade de P2P, consideraremos um modelo quantitativo simples para a distribuição de um arquivo para um conjunto fixo de pares para ambos os tipos de arquitetura. Conforme demonstrado na Figura 2.24, o servidor e os pares são conectados por enlaces de acesso da Internet. A taxa de upload do enlace de acesso do servidor é denotada por us , e a taxa de upload do enlace de acesso do par i é denotada por ui , e a taxa de download do enlace de acesso do par i é denotada por di . O tamanho do arquivo a ser distribuído (em bits) é denotado por F e o número de pares que querem obter uma cópia do arquivo, por N. O tempo de distribuição é o tempo necessário para que todos os N pares obtenham uma cópia do arquivo. Em nossa análise do tempo de distribuição abaixo, tanto para a arquitetura cliente-servidor como para a arquitetura P2P. fazemos a hipótese simplificada (e geralmente precisa [Akella, 2003]) de que o núcleo da Internet tem largura de banda abundante, o que implica que todos os gargalos encontram-se no acesso à rede. Suponha também que o servidor e os clientes não participam de nenhuma outra aplicação de rede, para que toda sua largura de banda de acesso de upload e download possa ser totalmente devotada à distribuição do arquivo.


 

Determinemos primeiro o tempo de distribuição para a arquitetura cliente-servidor, que denotaremos por Dcs. Na arquitetura cliente-servidor, nenhum dos pares auxilia na distribuição do arquivo. Fazemos as observações abaixo:

O servidor deve transmitir uma cópia do arquivo a cada um dos N pares. Assim, o servidor deve transmitir NF bits. Como a taxa de upload do servidor é de us , o tempo para distribuição do arquivo deve ser de pelo menos NF/us .

ATIVIDADE DE FIXAÇÃO

Comentários

Postagens mais visitadas deste blog

Wi-Fi: LANs sem fio 802.11

Caches Web

Acesso celular à Internet