O documento discute sistemas peer-to-peer, definindo suas características como compartilhamento de recursos entre nós sem servidor central, escalabilidade e auto-adaptação. Aborda também arquiteturas como descentralizada, centralizada e estruturada, citando exemplos como Gnutella, Kazaa e sistemas baseados em DHT como Chord e CAN.
2. 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.
3. 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.
4. 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)
5. 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)
6. 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
7. 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.
8. 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).
13. ● Simples
● Busca eficiente
● Ponto Único de Falha
● Menos escalabilidade
● Exemplos: Napster, Publius
Arquitetura Híbrida (não-estruturada)
14. 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
16. ● 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
17. 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)
18. 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)
19. 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).
21. 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.