Redes Peer-to-Peer Ana Flávia Godoi e Paulo Nei Sistemas Distribuídos Mestrado UFPR Roteiro • Peer-to-Peer • Motivação, Histórico e Definição • Classificação de Aplicações • Topologia das redes • Caracteristicas não funcionais • O framework JXTA • Virtualização das Redes • ID’S, Credentials, Advertisements • Message Relay • Endpoints • Pipes • Protocolos JXTA • Demonstração de uso do JXTA Motivação Arquiteturas P2P permitem compatilhamento de recursos computacionais com: • Escalabilidade (manter conectividade e performance); • Auto-organização com população transiente de nodos; • Adaptação a falhas de rede e de nodos; • Não-necessidade de um servidor central (sem overhead de sua administração); • Aceleração da comunicação entre processos e diminuição de custos para as instituições; A utilização de sistemas baseados em peer-to- peer tem mostrado o verdadeiro potencial da Internet Histórico
24
Embed
•Virtualização das Redes Redes Peer-to-Peer · específicas: boot, chaves para criptografia, etc. ... • Peer cria advertisement e publica na rede • Perguntas se propagam pela
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Redes Peer-to-Peer
Ana Flávia Godoi e Paulo Nei
Sistemas Distribuídos
Mestrado UFPR
Roteiro• Peer-to-Peer
• Motivação, Histórico e Definição• Classificação de Aplicações• Topologia das redes• Caracteristicas não funcionais
• O framework JXTA•Virtualização das Redes•ID’S, Credentials, Advertisements•Message Relay•Endpoints•Pipes•Protocolos JXTA
• Demonstração de uso do JXTA
MotivaçãoArquiteturas P2P permitem compatilhamento de
recursos computacionais com:
• Escalabilidade (manter conectividade e performance);
• Auto-organização com população transiente de nodos;
• Adaptação a falhas de rede e de nodos;
• Não-necessidade de um servidor central (sem overhead de sua administração);
• Aceleração da comunicação entre processos e diminuição de custos para as instituições;
A utilização de sistemas baseados em peer-to-peer tem mostrado o verdadeiro potencial da
Internet
Histórico
Histórico
• Em 1962, J.C.R.Licklider, do MIT descreveu a “Intergalactic Network”:
– Uma rede de nodos interconectados, que se comunicavam diretamente entre si;
– Deu origem ao Network Control Program(NCP): • primeiro protocolo de rede caracterizado
como “host-host” : Precursor do TCP/IP
Histórico
• A arquitetura cliente-servidor se tornou mais familiar.– Aplicações comerciais que requerem controle de
acesso às informações: utilização de firewalls;– Estrutura das aplicações e serviços, incluindo a
World Wide Web, FTP e outros;
• Nos últimos anos, entretanto, as tecnologias peer-to-peer têm tido profundo efeito na Internet.– Pela forma de distribuição de informações e
compartilhamento de recursos;
Arquitetura cliente-servidor
• Também chamada de arquitetura centralizada, é a mais comum na Internet;
• Os servidores disponibilizam serviços e informações; os clientes requisitam esses serviços, quando necessário;
• Nodos servidores e clientes executam tarefas completamente diferentes;
Arquitetura cliente-servidor
• Exemplo de arquitetura Cliente-Servidor:– as flechas representam o sentido da
comunicação:
Definição das redes Peer-to-Peer
Definições
P2P é definido basicamente pelas características:• Compartilhamento de recursos diretamente
entre nodos:– não necessidade de um servidor central.– um servidor central pode ser utilizado para tarefas
específicas: boot, chaves para criptografia, etc.
• Habilidade para:– tratar conectividade variável e instabilidade;– adaptar-se automaticamente a populações
transientes de nodos e a falhas em componentes;– manter a performance do sistema;
Definições
• peer-to-peer puro se refere a sistemas totalmente distribuídos: nodos são equivalentes em funcionalidades e tarefas;– Falha para compreender sistemas com noção de
supernodos (Kazaa);
• Uma definição largamente aceita é a proposta em [Shyrky 2000]“Peer-to-Peer é uma classe de aplicações que obtém vantagem de recursos – armazenamento, CPU, conteúdo e presença humana - disponível
nos nodos da Internet.”
Definição mais abragente
“Sistemas Peer-to-Peer são sistemas distribuídos que consistem de nodos interconectados, com capacidade de se auto-organizarem em topologias de rede, com o objetivo de compartilhar recursos como ciclos de CPU, armazenamento e bandwidth, capazes de se adaptar a falhas e acomodar populações transientes de nodos, enquanto mantém conectividade e performance aceitáveis, sem depender da intermediação ou suporte de uma autoridade (servidor) central.”
[Theotokis & Spinellis 2004]
Classificação das Aplicações Peer-to-Peer
Classificação das Aplicações
• Comunicação e Colaboração;
• Sistemas de Bancos de Dados;
• Suporte a Serviços de Internet;
• Computação Distribuída;
• Distribuição de Conteúdo;
Classificação das Aplicações
• Comunicação e Colaboração: – Sistemas que provêem infraestrutura para facilitar a
comunicação direta entre peers– chats, instant-messaging aplications;
• Sistemas de Bancos de Dados Distribuídos: – Baseados na infraestrutura de sistemas P2P;– Edutella: open source project que provê infraestrutura
de banco de dados para aplicações peer-to-peer [Nejdl et al 2003];
• Suporte a Serviços de Internet:– Diferentes aplicações para suportar uma variedade
de serviços de Internet;– proteção contra ataques de vírus;
Classificação das Aplicações
• Computação Distribuída: – Objetivo é aproveitar o poder de
processamento subutilizado dos nodos da Internet;
– Essas tarefas exigem coordenação de um nodo central em tarefas como particionar e distribuir tarefas;
– Exemplo: Seti@Home [SetiAtHome 2003];– Grid Computing X Peer-to-Peer: convergência
Peer-to-Peer X Grid Computing
• Ambos são abordagens para computação distribuída, com foco emcompartilhamento de recursos em larga-escala;
• Grid está baseada em infraestrutura de serviços padronizados;
• À medida que cresce, Grid necessita de soluções para prover auto-organizaçao, tolerância a falhas, escalabilidade, etc:– características de sistemas P2P;
Peer-to-Peer X Grid Computing – Sistemas P2P, por outro lado, tem apresentado
soluções que não buscam padrões para protocolos e infra-estrutura, para prover interoperabilidade.
– Com a tendência das tecnologia Peer-to-Peer para aplicações cada vez mais complexas se espera que haverá uma convergência entre Peer-to-Peer e Computação em Grid.
– O resultado será uma nova classe de tecnologias combinando elementos de ambas:
• Escalabilidade, auto-adaptação, recuperação diante de falhas e infra-estrutura persistente e padronizada para interoperabilidade
[Foster & Iamnitchi]
Classificação das Aplicações
• Distribuição de Conteúdo:
– Maioria dos sistemas Peer-to-Peer são de distribuição de conteúdo;
– Envolve sistemas e infraestrutura para troca de dados entre usuários;
• Sistemas se referem a aplicativos para uso para distribuição de conteúdo;
• Infraestrutura: frameworks - provê a base para os aplicativos P2P (fornecem serviços de rede, tolerância a falhas, etc);
Classificação das Aplicações
• Distribuição de Conteúdo:
– Os sistemas de distribuição de conteúdo podem ser:
• relativamente simples;
• Mais sofisticados: criam locais de armazenamento distribuído de informações, para poder manuzeá-las de forma mais segura e eficiente;
• Arquitetura das redes P2P independe da arquitetura física da rede;
• As redes P2P podem ser implementadas criando-se uma “rede overlay” para os aplicativos utilizarem;
• A topologia das redes peer-to-peer se divide em 3 categorias: [Theotokis & Spinellis]– Puramente descentralizado;– Parcialmente centralizado;– Híbrido descentralizado;
Topologia da rede
• Puramente descentralizada:– Todos os nodos da rede podem realizar as
mesmas tarefas;– Não há coordenação centralizada de dessas
tarefas;– Cada nodo é responsável por sua própria
administração e manutenção;– Gnutella [Gnutella 2003]: constrói uma rede
própria e permite que usuários realizem troca de arquivos;
Topologia da rede
–Puramente descentralizada:
Topologia da rede
• Parcialmente centralizada:– Tem a base como puramente centralizado,
mas há a presença de supernodos;– Supernodos: agem como nodo central de
uma subrede. Neles são armazenados índices para consulta pelos peers;
– Quando um supernodo falha, ele é substituído automaticamente e dinamicamente;
– Kazaa, Edutella [Nejdl et al. 2003], Gnutella mais recentemente;
Topologia da rede
• Parcialmente centralizada:
Topologia da rede
• Híbrido descentralizado: – Há um servidor central que mantém índices e
outras informações para facilitar a interação dos peers;
– A troca de arquivos é feita diretamente entre os nodos (peers);
– Apesar disto, este servidor é um ponto que deixa o sistema mais suscetível a falhas em geral e ataques;
– Este tipo de topologia está excedendo o conceito de peer-to-peer: pode não ter escalabilidade
• Napster, que mantém uma lista estática de nodos servidores)
Peer-to-Peer: Propriedades não funcionais
Propriedades não funcionais
• Características não funcionais:– Segurança;– Escalabilidade;– Performance;– Capacidade de gerenciamento de recursos;– Agrupamento semântico de informações;
A topologia da rede, a estrutura de gerenciamento dos dados, e outras propriedades do sistema
afetam as características funcionais.
Propriedades não funcionais
JXTA
O que é JXTA?
• Apesar dos sistemas P2P serem sistemas distribuídos, nem todos os sistemas distribuídos facilitam a computação P2P
• Sistemas P2P têm um conjunto comum de necessidades
• JXTA provê um conjunto de API’s para prover as funcionalidades necessárias
• Em essência, JXTA é uma biblioteca de desenvolvimento P2P
Virtualização das Redes
• Nodo => identidade única (endereço IP)
• Endereço IP estático• Endereço IP
dinâmico
• O endereço IP determina o roteamento para um mensagem
Virtualização das Redes
• Celular envia mensagem para o PDA
• Ambos têm endereço IP dinâmico
• Asserção: “Endereço IP identifica unicamente uma entidade” => falha
Virtualização das Redes
• Solução: construir uma rede virtual, independente da topologia física
Escritório JXTAAvenida Sete de Setembro, 4698Quinto AndarCuritiba
Endpoint Routing Protocol (ERP)• Especifica roteamento de mensagens• Lista de hops da fonte até destino• Relay peer: router peer• Router conhece o caminho: responde com
<Src> identidade da fonte </Src><Dest> identidade do destino </Dest><TTL> time to live </TTL> <Gateway> seqüência ordenada de gateways </Gateway> <...................> <Gateway> seqüência ordenada de gateways </Gateway>
</jxta:EndpointRouter>
Protocolos JXTA
• Cada peer deixa um trace (marca) na mensagem
• Trace ajuda roteadores a lembrar das rotas
• Peer guarda rota na cache
• Útil também para detectar loops e mensagens duplicadas
Protocolos JXTA
• Estrutura de uma mensagem de roteamento
<?xml version="1.0" encoding="UTF-8"?><jxta:EndpointRouterQuery> <Credential> credencial </Credential> <Dest> id do destino </Dest> <Cached>
true: resposta pode ficar na cache false: resposta não pode ficar na cache
<Credential> credencial </Credential> <Dest> id do destino </Dest>
<RoutingPeer> Id do roteador que conhece uma rota </RoutingPeer> <RoutingPeerAdv> Advertisement do roteador </RoutingPeerAdv><Gateway> seqüência ordenada de gateways </Gateway> < ...................><Gateway> seqüência ordenada de gateways </Gateway>
</EndpointRouterAnswer>
Protocolos JXTA
Protocolos JXTA
• ERP garante alto grau de sucesso• Não garante eficiência
• Peers mais inteligentes podem implementar algoritmos especializados, para otimizar a descoberta de rotas
Outros protocolos...
Protocolos JXTA
Peer Discovery Protocol (PDP)• Propicia a descoberta de recursos, por
meio dos advertisements• Mensagem inclui
– Tipo de advertisement– Chave XML– Valor para a chave
Protocolos JXTA
Rendezvous Protocol (RP)• Define como as perguntas se propagam
pela rede rendezvous
• Propagação limitada a um peer group (definido no advertisement do rendezvous)
Protocolos JXTA
Pipe Binding Protocol (PBP)
• Define a construção de um pipe• Pipe tem advertisement, que define seu
tipo, assim como uma ID
Protocolos JXTA
Peer Information Protocol (PIP)• Permite troca de informações em tempo de
execução:– Tempo de disponibilidade do peer (uptime)
– Número de mensagens processadas num período
• Permite software de monitoramento da rede
• Pode ser estendido, adicionando elementos ao XML
Protocolos JXTA
Peer Membership Protocol (PMP)• Particionamento da rede
• Caso físico (segurança, serviços...)
• Grupo define o escopo das perguntas:
• Padrão: pergunta propaga em busca de advertisement no grupo
• Questões de segurança
Protocolos JXTA
• Protocolo define etapas para entrar no grupo:– Fase de pedido
– Fase de junção
• Peer referencia um autenticador
• Autenticação pode ser feita:– Base de dados
– Perguntas para o peer
– Qualquer outra forma
Protocolos JXTAConclusão
Nesta apresentação mostramos algumas definições sobre peer-to-peer, suas aplicações, características e propriedades básicas.
Falamos também sobre o JXTA. Essa biblioteca de programação Peer-to-Peer mostrou a aplicação de alguns conceitos vistos.
Referências Bibliográficas• Bookshier, D., et al. JXTA: Java™ P2P Programming, Sams
Publishing. Mar 2002.
• Flenner, R. et al. Java™ P2P Unleashed. Sams Publishing. Sep 2002. Cap.16.
• Foster, I. 2000. Internet computing and the emerging grid. Nature Web Matters.
• Foster, I., and Iamnitchi, A. 2003. On death, taxes, and the convergence of peer-to-peer and grid computing. In Proceedings of 2nd International Workshop on Peer-to-Peer Systems (IPTS’02). Berkeley, CA.
• Gnutella 2003. Site do projeto Gnutella: http://www.groove.net
• Kazaa 2003. Site do projeto Kazaa. http://www.kazaa.com.
Referências Bibliográficas• Nejdl, W. et al. 2003. Edutella: A p2p networking
infrastructure based on rdf. In Proceedings of the 12th International Conference on Word Wide Web. Budapest, Hungrary
• Oram, A. Peer to Peer: Harnessing the Power of Disruptive Technologies. Primeira Edição. O'Reilly. Mar 2001
• SetiAtHome 2003. Site do projeto seti@home. http://setiathome.ssl.berkeley.edu.
• Shirky, C. 2000. What is p2p... and what isn’t. Na rede, disponível online em http://www.orreillynet.com/pub/a/ p2p/2000/11/24/shirky1-whatisp2p.html. O’Reilly.
• Theotokis, S.A., Spinellis, D. ACM Computing Surveys, Vol. 36, No., December 2004, pp.335-371.