Os clientes Gnutella

O Napster original tinha um "software cliente", o software que os usuários rodavam em suas máquinas para acessar os servidores do Napster. A Gnutella tem vários clientes disponíveis. Alguns dos clientes populares são:

Como um cliente da Gnutella encontra uma música
Se não há servidor central para armazenar os nomes e localizações de todos os arquivos disponíveis, como o software da Gnutella em sua máquina encontra uma música na de outra pessoa? A teoria é mais ou menos a seguinte:

  • você digita o nome da música ou arquivo que você quer encontrar.
  • sua máquina conhece, no mínimo, uma outra máquina da Gnutella em algum lugar da rede. Ela conhece isso porque você já informou a localização da máquina ao digitar no endereço IP ou porque o software tem um endereço IP para um host pré-programado da Gnutella. Sua máquina envia o nome da música que você digitou para a(s) máquina(s) da Gnutella que conhece.
  • essas máquinas buscam ver se o arquivo requisitado está no disco rígido local. Se estiver, eles enviam de volta o nome do arquivo (e o endereço IP da máquina) para o solicitante.
  • ao mesmo tempo, todas essas máquinas enviam o mesmo pedido para as máquinas que estão conectadas e o processo se repete.
  • um pedido tem um limite de TTL (tempo de vida) estabelecido. Um pedido pode ir a seis ou sete níveis de profundidade antes de parar de se propagar. Se cada máquina na rede da Gnutella conhece só quatro outras, isso significa que seu pedido pode alcançar 8.000 ou mais outras máquinas na rede da Gnutella se ele se propagar em sete níveis de profundidade.
É uma maneira extremamente simples e inteligente de distribuir um pedido a milhares de máquinas muito rápido.

Essa abordagem tem uma grande vantagem: a Gnutella funciona o tempo todo. Contanto que possa conseguir no mínimo uma outra máquina rodando o software da Gnutella, você é capaz de realizar pedidos pela rede. Nenhuma ordem da justiça vai fechar esse sistema, porque não há uma máquina que controla tudo. Entretanto, a Gnutella tem no mínimo três desvantagens:

  • não há garantias de que o arquivo que você quer esteja em uma das 8.000 máquinas que você vasculha.
  • os pedidos de arquivos podem levar algum tempo para obter uma resposta completa. Pode ser um minuto ou mais antes de todas as respostas virem dos sete níveis.
  • sua máquina é parte dessa rede. Ela está respondendo aos pedidos e repassando-os, e na rotina do processo ela dá retorno também. Você usará parte de sua banda larga para lidar com os pedidos de todos os outros usuários.
Naturalmente, essas desvantagens são as menores, porque as pessoas baixam milhões de cópias dos clientes Gnutella.