2. Sumário
• Definição;
• História;
• Características;
• Utilização;
• Arquitetura de Redes P2P;
• Exemplos de P2P;
• Integridade e Proteção;
• Código da Aplicação.
3. Definição
• Um tipo de rede de computadores onde cada
estação possui capacidades e responsabilidades
equivalentes. Isto difere da arquitetura
cliente/servidor, no qual alguns computadores são
dedicados a servirem dados a outros
4. História
• O surgimento do P2P vem da tendência natural da
evolução dos sistemas que vem criando redes
cada vez maiores
• Os primeiros trabalhos que podem ser relacionados
ao P2P vem do final da década de 70, início da
década de 80
• No final dos anos 90 se tornou mundialmente
popular graças ao Napster
5. Características
• Auto-organização: não há um coordenador do
grupo; toda a coordenação é distribuída
• Adaptabilidade: rede se ajusta ao ambiente,
mesmo que ocorram falhas
• Escalabilidade: rede cresce em escala facilmente;
não há ponto de estrangulamento
• Comunicação direta entre os pares: se opõe ao
tradicional modelo cliente-servidor, já que cada nó
pode fornecer ou obter recursos
6. Utilização
• Compartilhamento de arquivos, imagens, músicas,
vídeos, etc.
• Atualização de sistemas operacionais e de
software aplicativo
• Gerenciamento de redes e sistemas
• Processamento distribuído
• Sincronização de bancos de dados
• Difusão de informações
• etc.
9. Arquitetura Centralizada (2)
• Um servidor central controla as entradas e saídas
de peers da rede
• Os peers registram no servidor central os recursos
que compartilharão na rede
10. Arquitetura Centralizada (3)
• Pesquisas por recursos disponíveis nos peers são
efetuadas pelo servidor central
• O acesso aos recursos é feito diretamente entre
peers
13. Arquitetura
Descentralizada (2)
• Não há um elemento central
• Todos os nós possuem papel equivalente
• As pesquisas por recursos compartilhados são feitas
por inundação (flooding)
14. Arquitetura
Descentralizada (3)
• Gera um alto tráfego na rede
• Desempenho das pesquisas é ruim devido à
necessidade de se comunicar a muitos nós e
aguardar a resposta
17. Arquitetura Híbrida (2)
• Supernós permitem o ingresso dos nós na rede,
podendo também exercer atividades de
coordenação do funcionamento da rede, indexar
os recursos compartilhados pelos nós e permitir a
busca por estes recursos
18. Arquitetura Híbrida (3)
• Após localizado, um recurso pode ser obtido a
partir da interação direta entre nós
• Falha de um supernó pode ser tolerada elegendo
dinamicamente outro supernó.
21. Napster
• Lançado 1999
• Compartilhamento de músicas
• Utilizava servidor central (replicado) para efetuar a
procura de arquivos na rede
• Servidores centrais dedicados
- Mecanismo de autenticação
- Localizador de arquivos
• Transferência de arquivos era feita diretamente
entre os (peers)clientes
22. Gnutella
• Primeira aplicação P2P descentralizada
• Requisição é realizada, todos os nós são
consultados
• Somente o nó detentor da informação retorna a
consulta
• Cada nó atua como :
- Cliente – quando faz requisições de arquivos
- Servidor – quando fornece arquivos
- Roteador – quando reenvia consultas e
respostas.
23. Kazaa
• Utilizada arquitetura hierárquica
• Nós comuns (NC) e Super nós (SN)
• Rede composta por diversos (SN) que atua como
“Mini-Servidores” utilizados para armazenar
informações sobre arquivos compartilhados pelos
NC
• SN mantém conexões com outros SN
24. BitTorrent
• Cliente BitTorrent é qualquer aplicação que
implementa Protocolo BitTorrent
• Arquivo compartilhado é dividido em partes iguais
e pequenas ( 64Kb 4 Mb)
• Protocolo engloba mecanismos para:
- Controlar integridade das partes dos arquivos
- Recompensar quem compartilha arquivos, e penalizar quem não
colabora
• Para compartilhar, um nó cria o arquivo.torrent
• Neste arquivo .torrent contém :
- Contém metadados do arquivo que descreve o arquivo e permite ver
sua integridade
- Indica servidores (tracker)
25. BitTorrent
• Servidores (trackers):
- Coordena distribuição de arquivos
- Indicam nós para download
- Controlam a velocidade do download
- Se o nó não colabora, perde banda
• Quando um nó quer fazer o download do arquivo
- Obtem-se o arquivo.torrent
- Conecta-se ao servidor (tracker) específico
- Este servidor irá fornecer as informações
necessárias para fazer o download de cada
parte do arquivo.
26. JXTA
• Utilizada na implementação deste trabalho
• Cria grupos de pares com interesses comuns
• Mensagens JXTA são codificadas em XML
• JXTA padroniza a forma como os pares
- Descobrem uns aos outros
- Organizam os grupos
- Divulgam e descobrem os serviços disponíveis
- Monitoram uns aos outros
• JXTA faz consultas envolvendo pares conhecidos,
que mandam as seus conhecidos.
27. JXTA
• JXTA – Comunicação
- Cria Pipes – canais de comunicação
unidirecionais, formando um rede parcialmente
conectada
- Protocolo HTTP é usado para permitir que as
consultas atravessem firewalls.
29. Integridade e Segurança
• A segurança é um componente essencial para
qualquer sistema de computação.
• Navegar pelas redes P2P pode ser não muito
seguro, pois existem várias ameaças e
preocupações dentro da rede.
30. Ameaças e Preocupações
• Downloads interrompidos;
• Nós maliciosos enviam dados corrompidos, vírus,
etc;
• Arquivos falsos na rede;
• Propagação de arquivos infectados sem
conhecimento disso (Backdoors);
o Permite fácil acesso.
• Bugs e/ou Softwares mal configurados;
• Exposição a sofrer recursos legais ao compartilhar
arquivos protegidos por direitos autorais.
31. Soluções
• Validação da integridade do arquivo;
o eMule faz a verificação antes do download (hash);
o Kazaa perde nesse quesito (Perda de usuário, desuso).
• Validação do usuário na rede;
o Maioria possui sistemas de criptografia para proteção.
• Fator de confiança à identificação do usuário;
o Tempo de compartilhamento;
o Evita direcionar downloads para usuário com baixa reputação.
32. Protocolos da Rede P2P
• Secure Sockets Layer (SSL);
o Garante que um arquivo e eventos enviados cheguem intactos;
o Ambos os lados automaticamente provam quem eles são para cada um
antes de transferirem qualquer informação.
• Tecnologia IPSec;
o Um túnel IPSec basicamente age como uma camada de rede que
protege todos os pacotes de dados que passa por ela.
• Infra-Estrutura de chave pública (PKI);
o Evita que crackers interceptem ou adulterem as comunicações
realizadas.
o É possível saber quem foi o autor de uma transação ou mensagem;
o Dados confidenciais são protegidos contra a leitura por pessoas não
autorizadas.