You are on page 1of 22

PEER-TO-PEER SYSTEMS

Léo Françoso Dal Piccol Sotto


Victor De Cia Costa
Introdução
● Sistemas peer-to-peer têm como objetivo apoiar serviços
distribuídos e aplicações úteis usando dados e recursos de
computação disponíveis nos computadores que estão
presentes na rede.

● É uma arquitetura de computação distribuída onde os nós


participantes alternam entre clientes e servidores. Em teoria,
cada nó é idempodente, compartilhando recursos, sem um
servidor central.
Definição

Algumas características de sistemas peer-to-peer:

● Seu projeto garante que cada usuário contribui com recursos


para o sistema.

● Embora possam diferir nos recursos que contribuem, todos os


nós em um sistema de peer-to-peer têm as mesmas
capacidades e responsabilidades funcionais.

● Sua operação correta não depende da existência de qualquer


sistemas administrados centralmente.
Definição (continuação)

Uma rede P2P em que nós interligados Uma rede com base no modelo cliente-
(pares) compartilham recursos entre si, servidor, onde os clientes individuais
sem o uso de um sistema administrativo solicitam serviços e recursos a partir de
centralizado. servidores centralizados.
Definição (continuação)

● Os nós em um sistema peer-to-peer formam uma Overlay


Network.

● Uma questão fundamental para o seu funcionamento eficiente


é a escolha de um algoritmo para a colocação de dados em
hosts, e o subsequente acesso a eles → Roteamento
Vantagens

● Como não há servidor central, não há ponto único de falha.

● Escalabilidade para suportar novos nós (um nó que entra


contribui para a rede).

● Capacidade de auto-adaptação dos nós.

● Dados em mais nós → Maior acessibilidade


Desvantagens

● Contúdos pouco populares podem ser mais difíceis de serem


encontrados, pois é fornecido por menos nós.

● Complexidade. Algumas arquiteturas de Overlay podem exigir


protocolos e algoritmos mais complexos, quando comparado a
sistemas cliente-servidor.
Arquiteturas - Centralização

● Puramente Descentralizadas
● Parcialmente Centralizadas
● Híbridas

● Na prática, muitas aplicações usam algum tipo de centralização


para tarefas como inicialização (lista com nós atuais, por
exemplo, Gnutella).
Arquiteturas – Estruturação

● Não estruturadas
● Estruturadas
Segurança
● Existência de vulnerabilidade em sistemas
peer-to-peer
● Possíveis ataques:
● Incorrect Lookup Routing
● Incorrect Routing Updates
● Incorrect Routing Network Partition
● Envio de dados corrompidos
● Envio de malwares
Categorias
● Existem diferentes categorias de sistemas peer-
to-peer.

● Compartilhamento de arquivos (BitTorrent,


Napster, Gnutella)
● Multimedia (Peercasting, Skype, Spotfy)
● Compartilhamento de processamento
● ...
Arquitetura Híbrida (não-estruturada)

Um servidor de diretório central mantém um índice de metadados para todos os


arquivos na rede.
Arquitetura Híbrida (não-estruturada)

● Simples
● Busca eficiente

● Ponto Único de Falha


● Menos escalabilidade

● Exemplos: Napster, Publius


Arquitetura Puramente Descentralizada

Não há coordenação central das atividades da rede. Os usuários


se conectam diretamente uns aos outros através de uma aplicação
de software que funciona tanto como um cliente e um servidor
(usuários são referidos como um servents).

Mensagens

Ping, Pong, Query, Query Hit


Arquitetura Puramente Descentralizada
Arquitetura Parcialmente Centralizada

● Supernós – Nós responsáveis por uma parte da rede

● Queries são mandadas para os supernós apenas

● Eleição automática de supernós em caso de falha

● Exemplo: Kazaa
Arquitetura Estruturada

A Overlay é organizada em uma topologia específica, e o protocolo garante que qualquer


nó pode eficientemente procurar na rede um arquivo / recurso, mesmo se o recurso é
extremamente raro. (Utilizando uma DHT para localizar e identificar os nós)
Chord
● Chord é um protocolo para sistemas peer-to-peer, que usa Tabelas
Hash Distribuídas (DHT).

● Os nós possuem uma tabela de encaminhamento distribuído sob a


forma de um círculo identificador no qual todos os nós estão
mapeados, e uma finger table associada.

● Busca log(n)
CAN
● Protocolo que também usa DHT

● CAN – Content Adressable Network

● Usa um espaço Cartesiano de coordenadas n-dimensional para


implementar a tabela de localização e de encaminhamento distribuído,
em que cada nó é responsável por uma zona no espaço de
coordenadas.

● Função mapeia chave K para ponto P.

● Nós guardam chaves (chave K, valor V).


CAN
CAN
● Quando um novo nó entra, uma zona é dividida.

● O novo nó manda um JOIN para um nó em determinada zona, e eles


dividem essa zona.

● As tabelas de roteamento devem ser atualizadas.

● Cada nó envia mensagens de update aos vizinhos.


Referências
● http://en.wikipedia.org/wiki/Peer-to-peer

● Stephanos Androutsellis-Theotokis, Diomidis Spinellis, A Survey of


Peer-to-Peer Content Distribution Technologies, disponível em
http://www.spinellis.gr/pubs/jrnl/2004-ACMCS-p2p/html/AS04.html

You might also like