SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
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.
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)
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)
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.
● Simples
● Busca eficiente
● Ponto Único de Falha
● Menos escalabilidade
● Exemplos: Napster, Publius
Arquitetura Híbrida (não-estruturada)
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 Puramente Descentralizada
● 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
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

Mais conteúdo relacionado

Mais procurados

Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídosEduardo de Lucena Falcão
 
Camada de aplicação modelo osi
Camada de aplicação modelo osiCamada de aplicação modelo osi
Camada de aplicação modelo osiAna Antoniello
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosGustavo Monteiro
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresWellington Oliveira
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVAMoises Omena
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadoresDaniel Moura
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema OperacionalCláudia Costa
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Desenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterDesenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterPaulo Henrique
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem Cprofjr
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaFelipe Pedroso
 

Mais procurados (20)

Aula 2 introdução a sistemas distribuídos
Aula 2   introdução a sistemas distribuídosAula 2   introdução a sistemas distribuídos
Aula 2 introdução a sistemas distribuídos
 
Camada de aplicação modelo osi
Camada de aplicação modelo osiCamada de aplicação modelo osi
Camada de aplicação modelo osi
 
P2P - Sistemas Distribuídos
P2P - Sistemas DistribuídosP2P - Sistemas Distribuídos
P2P - Sistemas Distribuídos
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Introdução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de ComputadoresIntrodução - Arquitetura e Organização de Computadores
Introdução - Arquitetura e Organização de Computadores
 
Arquitetura de Redes de Computadores
 Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores
Arquitetura de Redes de Computadores
 
Aula de Introdução - JAVA
Aula de Introdução  - JAVAAula de Introdução  - JAVA
Aula de Introdução - JAVA
 
Camadas osi redes
Camadas osi   redesCamadas osi   redes
Camadas osi redes
 
Aula 04 arquitetura de computadores
Aula 04   arquitetura de computadoresAula 04   arquitetura de computadores
Aula 04 arquitetura de computadores
 
Rede de computadores
Rede de computadoresRede de computadores
Rede de computadores
 
ApresentaçãO2 Sistema Operacional
ApresentaçãO2  Sistema OperacionalApresentaçãO2  Sistema Operacional
ApresentaçãO2 Sistema Operacional
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Topologia de Redes
Topologia de RedesTopologia de Redes
Topologia de Redes
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Uml
UmlUml
Uml
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Computação em nuvem
Computação em nuvemComputação em nuvem
Computação em nuvem
 
Desenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com FlutterDesenvolvendo Apps Nativos com Flutter
Desenvolvendo Apps Nativos com Flutter
 
Aula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem CAula sobre matrizes - Linguagem C
Aula sobre matrizes - Linguagem C
 
Aprendendo Kotlin na Prática
Aprendendo Kotlin na PráticaAprendendo Kotlin na Prática
Aprendendo Kotlin na Prática
 

Semelhante a Peer-to-peer

Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Isac Moura
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadoresFelipe Silva
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Messias Batista
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdfRoberto Aragy
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfMarcondesTiburcio
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Dalton Martins
 
Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Duílio Andrade
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da redeH P
 
Aula Teste Fatec - Projeto de Redes de Computadores
Aula Teste Fatec - Projeto de Redes de ComputadoresAula Teste Fatec - Projeto de Redes de Computadores
Aula Teste Fatec - Projeto de Redes de ComputadoresDalton Martins
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresCarol Pereira
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Configurando o xp em rede
Configurando o xp em redeConfigurando o xp em rede
Configurando o xp em redeFabio Roberto
 

Semelhante a Peer-to-peer (20)

Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)
 
Componentes de uma Rede de computadores
Componentes de uma Rede de computadoresComponentes de uma Rede de computadores
Componentes de uma Rede de computadores
 
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
Aula07 - Sistemas Distribuídos - Aula de Revisão da NP1
 
SI - Arquiteturas
SI - ArquiteturasSI - Arquiteturas
SI - Arquiteturas
 
Aula 1 - Introducao.pdf
Aula 1 - Introducao.pdfAula 1 - Introducao.pdf
Aula 1 - Introducao.pdf
 
Introdução ao P2P
Introdução ao P2PIntrodução ao P2P
Introdução ao P2P
 
Aula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdfAula - Redes peer to peer.pdf
Aula - Redes peer to peer.pdf
 
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
Aula 06 - Caracterizando fluxo de tráfego e Projeto de Topologia - Parte I - ...
 
Hadoop
HadoopHadoop
Hadoop
 
Sistema Computacao Revisao 1
Sistema Computacao Revisao 1Sistema Computacao Revisao 1
Sistema Computacao Revisao 1
 
Rede Definida Por Software - SDN
Rede Definida Por Software - SDNRede Definida Por Software - SDN
Rede Definida Por Software - SDN
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Desenho da rede
Desenho da redeDesenho da rede
Desenho da rede
 
Trabalho de rede.
Trabalho de rede.Trabalho de rede.
Trabalho de rede.
 
Aula Teste Fatec - Projeto de Redes de Computadores
Aula Teste Fatec - Projeto de Redes de ComputadoresAula Teste Fatec - Projeto de Redes de Computadores
Aula Teste Fatec - Projeto de Redes de Computadores
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Configurando o xp em rede
Configurando o xp em redeConfigurando o xp em rede
Configurando o xp em rede
 
Redes 1
Redes 1Redes 1
Redes 1
 

Peer-to-peer

  • 1. PEER-TO-PEER SYSTEMS Léo Françoso Dal Piccol Sotto Victor De Cia Costa
  • 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).
  • 9. Arquiteturas – Estruturação ● Não estruturadas ● Estruturadas
  • 10. 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
  • 11. Categorias ● Existem diferentes categorias de sistemas peer- to-peer. ● Compartilhamento de arquivos (BitTorrent, Napster, Gnutella) ● Multimedia (Peercasting, Skype, Spotfy) ● Compartilhamento de processamento ● ...
  • 12. Arquitetura Híbrida (não-estruturada) Um servidor de diretório central mantém um índice de metadados para todos os arquivos na rede.
  • 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).
  • 20. CAN
  • 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.
  • 22. 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