1. Introdução

Contextualização

A experiência do usuário, nos últimos anos, associou-se fortemente ao consumo de arquivos de mídia como músicas e vídeos. Este fator está ligado à difusão da banda larga e ao aumento das velocidades de conexão à Internet, que permitiram que tal conteúdo fosse baixado tão rápido quanto se pode assisti-lo. Surgiu, então, o problema da distribuição: como fazer com que estes arquivos possam ser recebidos de forma rápida, barata e eficiente?

Modelo cliente-servidor

No modelo tradicional cliente-servidor, os arquivos são obtidos (“baixados”) de servidores, normalmente através dos protocolos HTTP (Hypertext Transfer Protocol) e FTP (File Transfer Protocol).

Quando a conexão à Internet do servidor é rápida e a quantidade de usuários fazendo download é pequena, a velocidade de download se mantém alta e constante durante toda a transferência. Um servidor pode, entretanto, ser sobrecarregado rapidamente caso o número de requisições seja elevado, e os envios podem diminuir de velocidade ou mesmo serem interrompidos.

A solução clássica para este problema se dá pela distribuição dos downloads através de vários servidores (mirrors), mas esta é uma medida cara e pouco escalável.

Figura 1: Um envio de arquivos centralizado.
Figura 1: Um envio de arquivos centralizado.

Modelo par-a-par

O modelo par-a-par (peer-to-peer ou P2P) resolve esta questão aproveitando a banda de envio (upload) dos usuários, que normalmente não é usada, para transmitir os arquivos (ou parte deles) já obtidos para outros usuários. Esta é uma solução mais barata e que propicia um melhor uso da rede como um todo.

Neste modelo, os computadores deixam de ser apenas receptores passivos, e cada nó da rede passa a colaborar no envio, mandando para os outros computadores dados que eles possuem.

Este sistema pode ser assistido por servidores ou não, e estes podem ser centrais (únicos) ou descentralizados (independentes e espalhados). Além disso, os servidores normalmente não desempenham o mesmo papel que no modelo cliente-servidor, ou seja, eles não enviam os arquivos propriamente ditos: em geral, eles desempenham papéis auxiliares, como a busca de arquivos ou a facilitação das conexões.

Figura 2: Um envio de arquivo pelo modelo par-a-par.
Figura 2: Um envio de arquivo pelo modelo par-a-par.