Desvendando as redes peer-to-peer

Compartilhe!

Como funcionam as redes peer-to-peer ou p2p





A rede peer-to-peer ou P2P é um tipo de rede descentralizada - distribuída -  onde cada nó recebe o nome de peer e funciona, simultaneamente,  como servidor e consumidor de recursos. Isso a difere das redes tradicionais centralizadas, onde um servidor central provê recursos aos nós clientes que os requisitam.


Nesse tipo de rede as tarefas de busca por arquivos ou streaming de áudio e vídeo são compartilhadas entre múltiplos nós conectados, cada qual executando uma parte da tarefa, sem a necessitade de um mecanismo centralizado e coordenado.

As redes P2P implementam uma camada adicional por cima da rede física, onde os nós formam um subconjunto de nós da rede física. Os dados ainda continuam sendo trocados pelo protocolo TCP/IP, mas na camada de aplicação os nós são capazes de se comunicarem entre si diretamente, através dos links da camada lógica (cada um correspondente a um caminho através da rede física). As camadas são usadas para indexar e descobrir os peers e tornam o sistema P2P independente da topologia da camada física da rede. Dependendo da forma como os nós são interligados dentro da camada de rede e da forma como os recursos são indexados e localizados, as redes podem ser classificadas como não-estruturadas, estruturadas ou híbridas (uma combinação das duas formas).

As redes não-estruturadas P2P não impõem uma estrutura específica à camada de rede, mas são formadas por nós que aleatoriamente formam conexões entre si. São exemplos de protocolos P2P não estruturados: Gnutella, Gossip e Kazaa.

Se um peer deseja procurar um determinado dado na rede, sua busca deve ser espalhada pela rede à procura da maior quantidade de peers que compartilham esse dado. Essa busca por toda rede,  chamada inundação ou flooding, provoca um tráfego intenso de sinalização  e não garante que a busca será bem sucedida. Conteúdos populares são mais prováveis de estarem disponíveis em vários peers.

Não existe uma correlação entre um peer e o conteúdo que ele gerencia. Por outro lado, como não existe uma estrutura rígida para as redes não-estruturadas, elas são fáceis de serem construídas e permitem otimizações em regiões diferentes das camadas. Outro fato bastante interessante é que o papel de cada peer na rede é o mesmo. Isso permite redes não-estruturadas bastante robustas, diante das altas taxas de churn, que ocorrem quando um grande número de peers se juntam frequentemente e abandanonam a rede.

As formas estruturadas possuem uma camada de rede organizada numa topologia específica e o protocolo assegura que cada nó pode, eficientemente, procurar um arquivo ou recurso pela rede, mesmo que o dado a ser buscado seja extremamente raro.

O tipo mais comum de P2P estruturado implementa uma tabela hash distribuída (DHT), na qual uma variante de um hashing consistente é utilizado para atribuir a propriedade de cada arquivo a um determinado peer. Isso faz com que os peers possam procurar pelos recursos  usando uma tabela hash: ou seja, um par chave-valor, armazenado na DHT, e cada nó participante pode recuperar de forma eficiente  o valor associado a uma determinada chave.

Entretanto, para rotear eficientemente o tráfego através da rede, os nós numa camada estruturada devem manter listas de vizinhos que satisfazem a determinado critério. Isso faz com que este tipo de rede seja menos robusto diante de altas taxas de churn. Uma avaliação mais recente das soluções de descoberta numa rede P2P sob carga real de trabalho  apontou várias desvantagens no modelo estruturado baseado em DHT tais como alto custo de anúncio e descoberta de recursos, bem como desequilíbrios estático e dinâmico.

As redes mais conhecidas que utilizam DHT incluem BitTorrents, Kad, Storm botnet, YaCy e a Coral Content Distribution. Outros exemplos são Chord Project, Kademlia, PAST, P-Grid, CoopNet.

Uma das aplicações das redes estruturadas é a descoberta eficiente de recurso em sistemas de computação em grade (grid computing), devido à melhor coordenação entre o gerenciamento dos recursos e o escalonamento de aplicações desse modelo.



Compartilhe »

Gostou? Comente!


Participe da nossa comunidade de discussões!
Deixe-nos um comentário!

    DISQUS
    Comentários Facebook


0 comentários:


Postar um comentário