Conceitos Básicos

Internet

Aplicações
- Freenet
- Gnutella
- Napster

Tecnologias de base

MANET

Conclusões

Referências

Links

FAQs

Contatos
William Roger wroger90@ig.com.br


Introdução às Redes Peer-to-Peer (P2P)

Autor: William Roger Salabert da Silva
Programa de Engenharia Elétrica COPPE-UFRJ
wroger90@ig.com.br

Publicado em 11 de junho de 2003
Última revisão em 11 de junho de 2003

Resumo

O presente trabalho tem por objetivo trazer uma clara definição dos conceitos por trás da arquitetura de rede de pares "peer-to-peer" (P2P) e exemplificar sua atual aplicabilidade tecnológica. Ele inicia definindo os conceitos de rede P2P pura, cliente-servidor e P2P híbrida que serão utilizados nas páginas seguintes.
Trata das condições da internet que favoreceram o sucesso das primeiras aplicações de larga escala. Classifica analisa e compara algumas das aplicações mais populares de P2P ( Freenet, Gnutella e Napster).
Faz um estudo das tecnologias disponíveis para o desenvolvimento em P2P com detalhamento da arquitetura justaposta "JXTA".
Terminando por descrever o uso de P2P em redes móveis "Ad Hoc" com um levantamento dos principais problemas encontrados e diferenças em relação às redes P2P na Internet.


Conceitos Básicos

Para melhor tratarmos o assunto antes de mais nada é necessário defini-lo. Um problema básico encontrado em publicações e discussões sobre o tema é a situação confusa criada pelo uso, muitas vezes ambíguo, da expressão ''Peer-to-Peer" para classificar rede de pares, doravante denominada P2P.

O principal objetivo dessa seção é deixar claras as diferenças entre os conceitos de arquitetura de rede P2P, com suas diferentes facetas, e cliente-servidor . Para tal seguiremos as definições propostas em [Rudi02] que além das arquiteturas P2P e cliente-servidor "puras" considera também a possibilidade de uma arquitetura ' P2P híbrida ' como forma de classificar arquiteturas que mesmo consideradas P2P não se enquadram como puras.

De forma geral a principal diferença entre as arquiteturas P2P e cliente-servidor é o conceito de entidades atuando como Serventes ou "Servents" um neologismo derivado das palavras servidor e cliente. Os Servents - como soa melhor - representam a capacidade dos nós da rede de atuarem "ao mesmo tempo" como servidores e clientes. O que é diferente das arquiteturas cliente-servidor onde os nós podem atuar como clientes ou como servidores mas não podem conjugar ambas capacidades.

Esses conceitos são consolidados na seguinte definição elaborada em [Kell98]

" Uma arquitetura de rede distribuída pode ser chamada Peer-to-Peer (P-to-P, P2P, ...) se os participantes compartilharem parte de seus próprios recursos de hardware ( poder de processamento, capacidade de armazenamento, banda de rede, impressoras, ...) . Esses recursos são necessários para prover os serviços e conteúdo oferecidos pela rede (ex. compartilhamento de arquivos ou espaços de trabalho para colaboração mútua). Os serviços e recursos são acessíveis por todos os pares sem necessidade de passar por nenhuma entidade intermediária. Os participantes dessa rede são tanto provedores de recursos ( serviços e conteúdo ) como demandadores desses mesmos recursos (conceito de Servent). "

Entretanto dentro deste conceito de arquitetura P2P ainda existe uma clara subdivisão entre arquiteturas com, no caso do Napster, e sem uma entidade central, tipo Freenet . Estas a serem consideradas "puras" e aquelas "híbridas". Essas idéias foram consolidadas em [Rudi02] nas seguintes definições:

" Uma arquitetura de rede distribuída pode ser classificada como P2P 'pura', se em primeiro lugar for P2P conforme a definição anterior e em segundo lugar se qualquer entidade terminal da rede puder ser individualmente removida sem que a rede sofra qualquer perda em termos de 'serviço'. "

O conceito de arquitetura P2P híbrida se diferencia pela existência de uma entidade central, conforme a definição a seguir [Rudi02]

" Uma arquitetura de rede distribuída deve ser classificada como P2P 'híbrida' se em primeiro lugar for P2P conforme a primeira definição e em segundo lugar tiver a necessidade de uma entidade central para prover parte dos serviços da rede. "

Em oposição ao conceito de cliente-servidor:

" Uma rede cliente-servidor possui uma arquitetura distribuída com um sistema de alta performace , o servidor, e vários clientes , de menor performace . O servidor é uma unidade central de registro e também o único provedor de serviço e conteúdo. Um cliente somente faz requisições de conteúdo ou execução de serviços ao servidor, sem compartilhar nenhum de seus próprios recursos."

Fica claro que a principal diferença entre as arquiteturas P2P híbrida e cliente-servidor está no papel dos clientes que no primeiro caso compartilham entre si seus recursos de hardware bem como podem prover conteúdo e serviços à rede.

Consideramos importante introduzir o tema deixando claro o significado dos conceitos por traz do modelo P2P, uma vez que após a leitura de vários artigos sobre o tema ficou evidente que o principal problema nas discussões e publicações são as diferentes opiniões muitas vezes contraditórias sobre o que é P2P.

Tendo em mente esses conceitos nas seções a seguir desenvolveremos a descrição dos principais usos tendências de P2P.

Topo -- Próxima >>