22
PEER-TO-PEER SYSTEMS Léo Françoso Dal Piccol Sotto Victor De Cia Costa

Peer-to-peer

Embed Size (px)

Citation preview

Page 1: Peer-to-peer

PEER-TO-PEER SYSTEMS

Léo Françoso Dal Piccol Sotto

Victor De Cia Costa

Page 2: Peer-to-peer

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.

Page 3: Peer-to-peer

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.

Page 4: Peer-to-peer

Uma rede P2P em que nós interligados

(pares) compartilham recursos entre si,

sem o uso de um sistema administrativo

centralizado.

Uma rede com base no modelo cliente-

servidor, onde os clientes individuais

solicitam serviços e recursos a partir de

servidores centralizados.

Definição (continuação)

Page 5: Peer-to-peer

Definiçã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

(continuação)

Page 6: Peer-to-peer

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

Page 7: Peer-to-peer

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.

Page 8: Peer-to-peer

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).

Page 9: Peer-to-peer

Arquiteturas – Estruturação

● Não estruturadas● Estruturadas

Page 10: Peer-to-peer

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

Page 11: Peer-to-peer

Categorias

● Existem diferentes categorias de sistemas peer-to-peer.

● Compartilhamento de arquivos (BitTorrent, Napster, Gnutella)

● Multimedia (Peercasting, Skype, Spotfy)● Compartilhamento de processamento● ...

Page 12: Peer-to-peer

Arquitetura Híbrida (não-estruturada)

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

arquivos na rede.

Page 13: Peer-to-peer

● Simples● Busca eficiente

● Ponto Único de Falha● Menos escalabilidade

● Exemplos: Napster, Publius

Arquitetura Híbrida (não-estruturada)

Page 14: Peer-to-peer

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

Page 15: Peer-to-peer

Arquitetura Puramente Descentralizada

Page 16: Peer-to-peer

● 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 Parcialmente Centralizada

Page 17: Peer-to-peer

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)

Page 18: Peer-to-peer

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)

Page 19: Peer-to-peer

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).

Page 20: Peer-to-peer

CAN

Page 21: Peer-to-peer

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.

Page 22: Peer-to-peer

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