Redes Peer-
Peer-to
to--Peer
Arquitetura de Redes P2P
Exemplos de Redes P2P
Indexação e Busca
Integridade e Proteção
1
Redes Peer-
Peer-to
to--Peer
Redes Peer-
Peer-to-
to-Peer (P2P)
São sistemas distribuídos nos quais os membros
da rede são equivalentes em funcionalidade
Permitem que os pares compartilhem recursos
diretamente, sem envolver intermediários
2
Redes Peer-
Peer-to
to--Peer
Definição
“São sistemas distribuídos compostos de nós
interconectados, aptos a se auto-organizar em
topologias de rede, com o intuito de compartilhar
recursos, como conteúdo, ciclos de CPU, largura
de banda e armazenamento, com a capacidade
de adaptação a faltas e acomodação a um
número variável de nós, ao mesmo tempo que
mantém a conectividade e o desempenho em
níveis aceitáveis, sem a necessidade de suporte
ou intermediação de um servidor centralizado.”
(Adroutsellis-Theotokis & Spinellis, 2004)
3
Redes Peer-
Peer-to
to--Peer
Características:
Auto-organização: não há um coordenador do
Auto-
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-
cliente-servidor, já que
cada nó pode fornecer ou obter recursos
4
Redes Peer-
Peer-to
to--Peer
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.
5
Arquitetura de Redes P2P
Classificação da Arquitetura de Redes P2P
Arquitetura Centralizada: utiliza um servidor
central para controle de acesso à rede e para
publicação e pesquisa de conteúdo
Arquitetura Descentralizada: todos os peers
possuem funcionalidade equivalente
Arquitetura Híbrida: alguns peers especiais,
chamados supernós, possuem um papel
diferenciado na rede
6
Arquitetura de Redes P2P
Arquitetura Centralizada
Um servidor central controla as entradas e
saídas de peers da rede
Os peers registram no servidor central os
recursos que comparilharão na rede
Pesquisas por recursos disponíveis nos peers
são efetuadas pelo servidor central
O acesso aos recursos é feito diretamente
entre peers
Exemplos: Napster; eMule
7
Arquitetura de Redes P2P
Arquitetura Híbrida
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
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ó
Exemplos: Kazzaa; Skype
8
Arquitetura de Redes P2P
Arquitetura Descentralizada
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)
Gera um alto tráfego na rede
Desempenho das pesquisas é ruim devido à
necessidade de contactar muitos nós e
aguardar a resposta
Exemplos: Gnutella e JXTA
9
Exemplos de Redes P2P
Napster
Criado em 1999
Utilizava um servidor central (replicado) para
efetuar a procura de arquivos na rede
Transferência de arquivos era feita
diretamente entre os peers
Sem o servidor central, que foi fechado por
ordem judicial, a rede deixou de funcionar
10
Exemplos de Redes P2P
Napster – Funcionamento:
peers
Napster server Napster server
Index 1. File location Index
request
3. File request
2. List of peers
offering the file
5. Index update
4. File delivered
© Coulouris, Dollimore & Kindberg11
Exemplos de Redes P2P
eMule
Utiliza vários servidores “centrais”, que fazem
a indexação de arquivos compartilhados
As bases de dados usadas pelos servidores
para indexação são independentes
Os peers podem se conectar a um ou mais
servidores para efetuar buscas
Os downloads são feitos diretamente entre
peers, sendo possível baixar partes de um
arquivo a partir de diferentes peers
12
Exemplos de Redes P2P
Gnutella
Um nó entra na rede se conectando a qualquer
outro nó já existente
Cada nó faz o papel de cliente para realizar
buscas e baixar arquivos e de servidor para
responder buscas e pedidos de download
O protocolo define as mensagens que podem
ser trocadas entre nós para fazer pesquisas de
arquivos e para baixá-
baixá-los
Foi aperfeiçoado para tornar-
tornar-se mais escalável,
deixando de ser totalmente descentralizado
(Ultrapeers e QRP – Query Routing Protocol) 13
Exemplos de Redes P2P
JXTA
Proposto pela Sun
Provê uma infra-
infra-estrutura simples de rede P2P
sobre a qual podem ser criadas aplicações que
empregam este paradigma de comunicação
Cria grupos de pares com interesses comuns
Mensagens JXTA são codificadas em XML
Permite estabelecimento de conexões seguras
Possui uma implementação padrão em Java
14
Exemplos de Redes P2P
© Sun Microsystems
15
Exemplos de Redes P2P
JXTA padroniza a forma como os pares:
Descobrem uns aos outros
Se organizam em grupos
Divulgam e descobrem os serviços disponíveis
na rede
Se comunicam
Monitoram uns aos outros
16
Exemplos de Redes P2P
JXTA – Comunicação:
São criados pipes – canais de comunicação
unidirecionais – ligando os peers que fazem
parte da rede, formando uma rede
parcialmente conectada
O protocolo HTTP é usado para permitir que
consultas atravessem firewalls, desde que haja
um peer de cada lado do firewall (relay peer)
17
Exemplos de Redes P2P
JXTA faz consultas envolvendo os pares
conhecidos, que por sua vez as enviam a
seus conhecidos, e assim por diante
© Sun Microsystems
18
Exemplos de Redes P2P
JXTA – Protocolos:
Peer Endpoint Routing Protocol : permite a
descoberta de rotas entre peers
Peer Resolver Protocol : usado para efetuar
consultas nos peers
Peer Discovery Protocol : usado para
descoberta de peers na rede
Pipe Binding Protocol : conecta peers
utilizando pipes
Peer Information Protocol : permite obter
informação de status dos peers
Peer Rendezvous Protocol : permite enviar
mensagens para grupos de peers 19
Exemplos de Redes P2P
JXTA – Protocolos:
© Sun Microsystems
20
Exemplos de Redes P2P
Kazaa
Utiliza supernós para
acesso à rede e para
busca e indexação de
conteúdo
Skype
Permite comunicação
por áudio ou vídeo
entre usuários
Utiliza supernós e um
servidor de login
21
Exemplos de Redes P2P
BitTorrent
Protocolo P2P para download de arquivos
Há vários aplicativos clientes compatíveis
O arquivo compartilhado é dividido em vários
pedaços, que são baixados simultaneamente
Pedaços recebidos já são compartilhados
O protocolo engloba mecanismos para:
Controlar a integridade dos pedaços de
arquivos baixados
Recompensar quem compartilha arquivos, e
penalizar quem tira proveito e não colabora
22
Exemplos de Redes P2P
BitTorrent (cont.)
Arquivo .torrent
Criado por nó seed, que compartilha arquivo
Contém metadados que descrevem o
arquivo e permitem verificar sua integridade
Indica servidores tracker
Servidores tracker
Coordenam a distribuição de arquivos
Indicam os nós para download
Controlam a velocidade do download
Se o nó não colabora (leech), perde banda 23
Exemplos de Redes P2P
BitTorrent (cont.)
24
Indexação e Busca
Arquitetura Centralizada
Indexação no servidor central, utilizando
técnicas tradicionais para indexação e busca
Problemas:
Escalabilidade limitada (gargalo)
Ponto único de falha
Problemas jurídicos devido ao tráfego de
conteúdos protegidos por direitos autorais
Possível solução: uso de servidores replicados,
independentes ou sincronizados
25
Indexação e Busca
Arquitetura Distribuída
É necessário utilizar mensagens de inundação
Otimizações permitem fazer inundação
seletiva de rotas (ex: QRP do Gnutella
Gnutella))
Uso de campo TTL permite limitar a inundação
Resposta pode ser enviada pelo caminho de
recebimento da busca (mais tráfego;
privacidade) ou diretamente para quem fez a
busca (menos tráfego, sem privacidade)
26
Indexação e Busca
Arquitetura Híbrida
Em geral, supernós mantém uma DHT (Tabela
de Hash Distribuída / Distributed Hash Table)
A DHT contém os hashes dos nomes ou de
metadados dos arquivos compartilhados, e a
identidade dos peers que os contém
Cada supernó mantém uma parte da tabela
Supernós são organizados em um anel lógico,
pelo qual a consulta é propagada
27
Indexação e Busca
DHT – Particionamento da Tabela:
Hash Nó Hash Nó
000101... PA 010110... PB
00... ... 01... ...
S1 S2
S4 S3
Hash Nó Hash Nó
110101... PA 100101... PC
11... ... 10... ...
28
Indexação e Busca
DHT – Funcionamento:
5. Acessa Arquivo
11010
10101
01101
1. Compartilha 3. Busca
PA S1 S2 PB
11010
10101
01101
4. Responde
S4 S3
2. Registra
Hash Nó
110101... PA
... ...
29
Indexação e Busca
DHT – Considerações:
Supernós podem desconectar ou falhar
Fragmentos da tabela devem ser replicados
nos vizinhos para evitar perda de informação
Supernós devem detectar falhas/desconexão
e recompor o anel lógico dinamicamente
Ideal para registrar nomes e metadados
Qualquer variação gera um hash diferente
(ou seja, não encontra o arquivo/recurso)
Buscas compostas podem resultar em
respostas de dois ou mais supernós junção e
classificação dos resultados 30
Integridade e Proteção
Problemas em Redes P2P
Downloads interrompidos resultam em muitos
arquivos corrompidos compartilhados na rede
Nós maliciosos registram dados erroneamente
e enviam dados corrompidos / vírus / etc.
Nos downloads de várias fontes, basta uma
fonte maliciosa para corromper o dado
Soluções Adotadas
Verificação de integridade dos dados
Uso de mecanismos de proteção
31
Integridade e Proteção
Verificação de Integridade dos Dados
Consiste em efetuar comparações com base
no hash do conteúdo compartilhado
Downloads de várias fontes só acontecem se o
conteúdo tiver o mesmo hash
Ao final do download, pode ser feita uma
verificação do hash do arquivo obtido, para
verificar se ele não foi corrompido
Não impede que nós maliciosos informem o
hash errado
32
Integridade e Proteção
Mecanismos de Proteção
Baseados na associação de índices de
reputação a cada nó da rede
Um nó constrói sua reputação fornecendo
conteúdos íntegros; caso forneça conteúdos
inválidos ou corrompidos, sua reputação cai
Evita--se direcionar downloads para nós com
Evita
baixa reputação
Nós cuja reputação mudou rapidamente
também são evitados – podem ter sido
hackeados ou estavam construindo uma boa
reputação para depois atacar a rede 33