Sistemas Distribuídos
Sumário
•   Definição;
•   História;
•   Características;
•   Utilização;
•   Arquitetura de Redes P2P;
•   Exemplos de P2P;
•   Integridade e Proteção;
•   Código da Aplicação.
Definição
• Um tipo de rede de computadores onde cada
  estação possui capacidades e responsabilidades
  equivalentes. Isto difere da arquitetura
  cliente/servidor, no qual alguns computadores são
  dedicados a servirem dados a outros
História
• O surgimento do P2P vem da tendência natural da
  evolução dos sistemas que vem criando redes
  cada vez maiores
• Os primeiros trabalhos que podem ser relacionados
  ao P2P vem do final da década de 70, início da
  década de 80
• No final dos anos 90 se tornou mundialmente
  popular graças ao Napster
Características
• Auto-organização: não há um coordenador do
  grupo; toda a coordenação é distribuída
• Adaptabilidade: rede se ajusta ao ambiente,
  mesmo que ocorram falhas
• Escalabilidade: rede cresce em escala facilmente;
  não há ponto de estrangulamento
• Comunicação direta entre os pares: se opõe ao
  tradicional modelo cliente-servidor, já que cada nó
  pode fornecer ou obter recursos
Utilização
• Compartilhamento de arquivos, imagens, músicas,
  vídeos, etc.
• Atualização de sistemas operacionais e de
  software aplicativo
• Gerenciamento de redes e sistemas
• Processamento distribuído
• Sincronização de bancos de dados
• Difusão de informações
• etc.
ARQUITETURA DE
    REDES
Arquitetura Centralizada (1)
Arquitetura Centralizada (2)

• Um servidor central controla as entradas e saídas
  de peers da rede

• Os peers registram no servidor central os recursos
  que compartilharão na rede
Arquitetura Centralizada (3)

• Pesquisas por recursos disponíveis nos peers são
  efetuadas pelo servidor central

• O acesso aos recursos é feito diretamente entre
  peers
Arquitetura Centralizada (4)
Arquitetura
Descentralizada (1)
Arquitetura
       Descentralizada (2)

• Não há um elemento central

• Todos os nós possuem papel equivalente

• As pesquisas por recursos compartilhados são feitas
  por inundação (flooding)
Arquitetura
      Descentralizada (3)

• Gera um alto tráfego na rede

• Desempenho das pesquisas é ruim devido à
  necessidade de se comunicar a muitos nós e
  aguardar a resposta
Arquitetura
Descentralizada (4)
Arquitetura Híbrida (1)
Arquitetura Híbrida (2)

• Supernós permitem o ingresso dos nós na rede,
  podendo também exercer atividades de
  coordenação do funcionamento da rede, indexar
  os recursos compartilhados pelos nós e permitir a
  busca por estes recursos
Arquitetura Híbrida (3)

• Após localizado, um recurso pode ser obtido a
  partir da interação direta entre nós

• Falha de um supernó pode ser tolerada elegendo
  dinamicamente outro supernó.
Arquitetura Híbrida (4)
EXEMPLOS DE REDES
Napster
• Lançado 1999
• Compartilhamento de músicas
• Utilizava servidor central (replicado) para efetuar a
  procura de arquivos na rede
• Servidores centrais dedicados
   - Mecanismo de autenticação
  - Localizador de arquivos
• Transferência de arquivos era feita diretamente
  entre os (peers)clientes
Gnutella
• Primeira aplicação P2P descentralizada
• Requisição é realizada, todos os nós são
  consultados
• Somente o nó detentor da informação retorna a
  consulta
• Cada nó atua como :
   - Cliente – quando faz requisições de arquivos
   - Servidor – quando fornece arquivos
   - Roteador – quando reenvia consultas e
     respostas.
Kazaa
• Utilizada arquitetura hierárquica
• Nós comuns (NC) e Super nós (SN)
• Rede composta por diversos (SN) que atua como
  “Mini-Servidores” utilizados para armazenar
  informações sobre arquivos compartilhados pelos
  NC
• SN mantém conexões com outros SN
BitTorrent
• Cliente BitTorrent é qualquer aplicação que
  implementa Protocolo BitTorrent
• Arquivo compartilhado é dividido em partes iguais
  e pequenas ( 64Kb 4 Mb)
• Protocolo engloba mecanismos para:
   -   Controlar integridade das partes dos arquivos
   -   Recompensar quem compartilha arquivos, e penalizar quem não
       colabora

• Para compartilhar, um nó cria o arquivo.torrent
• Neste arquivo .torrent contém :
       - Contém metadados do arquivo que descreve o arquivo e permite ver
       sua integridade
       - Indica servidores (tracker)
BitTorrent
• Servidores (trackers):
   -   Coordena distribuição de arquivos
   -   Indicam nós para download
   -   Controlam a velocidade do download
   -   Se o nó não colabora, perde banda

• Quando um nó quer fazer o download do arquivo
  - Obtem-se o arquivo.torrent
  - Conecta-se ao servidor (tracker) específico
  - Este servidor irá fornecer as informações
    necessárias para fazer o download de cada
    parte do arquivo.
JXTA
•   Utilizada na implementação deste trabalho
•   Cria grupos de pares com interesses comuns
•   Mensagens JXTA são codificadas em XML
•   JXTA padroniza a forma como os pares
    -   Descobrem uns aos outros
    -   Organizam os grupos
    -   Divulgam e descobrem os serviços disponíveis
    -   Monitoram uns aos outros



• JXTA faz consultas envolvendo pares conhecidos,
  que mandam as seus conhecidos.
JXTA
• JXTA – Comunicação
  - Cria Pipes – canais de comunicação
  unidirecionais, formando um rede parcialmente
  conectada
  - Protocolo HTTP é usado para permitir que as
  consultas atravessem firewalls.
INTEGRIDADE E
  SEGURANÇA
Integridade e Segurança
• A segurança é um componente essencial para
  qualquer sistema de computação.

• Navegar pelas redes P2P pode ser não muito
  seguro, pois existem várias ameaças e
  preocupações dentro da rede.
Ameaças e Preocupações
• Downloads interrompidos;
• Nós maliciosos enviam dados corrompidos, vírus,
  etc;
• Arquivos falsos na rede;
• Propagação de arquivos infectados sem
  conhecimento disso (Backdoors);
   o Permite fácil acesso.

• Bugs e/ou Softwares mal configurados;
• Exposição a sofrer recursos legais ao compartilhar
  arquivos protegidos por direitos autorais.
Soluções
• Validação da integridade do arquivo;
   o eMule faz a verificação antes do download (hash);
   o Kazaa perde nesse quesito (Perda de usuário, desuso).

• Validação do usuário na rede;
   o Maioria possui sistemas de criptografia para proteção.

• Fator de confiança à identificação do usuário;
   o Tempo de compartilhamento;
   o Evita direcionar downloads para usuário com baixa reputação.
Protocolos da Rede P2P
• Secure Sockets Layer (SSL);
   o Garante que um arquivo e eventos enviados cheguem intactos;
   o Ambos os lados automaticamente provam quem eles são para cada um
     antes de transferirem qualquer informação.

• Tecnologia IPSec;
   o Um túnel IPSec basicamente age como uma camada de rede que
     protege todos os pacotes de dados que passa por ela.

• Infra-Estrutura de chave pública (PKI);
   o Evita que crackers interceptem ou adulterem as comunicações
     realizadas.
   o É possível saber quem foi o autor de uma transação ou mensagem;
   o Dados confidenciais são protegidos contra a leitura por pessoas não
     autorizadas.
Código da Aplicação
Dúvidas?

P2P - Sistemas Distribuídos

  • 1.
  • 2.
    Sumário • Definição; • História; • Características; • Utilização; • Arquitetura de Redes P2P; • Exemplos de P2P; • Integridade e Proteção; • Código da Aplicação.
  • 3.
    Definição • Um tipode rede de computadores onde cada estação possui capacidades e responsabilidades equivalentes. Isto difere da arquitetura cliente/servidor, no qual alguns computadores são dedicados a servirem dados a outros
  • 4.
    História • O surgimentodo P2P vem da tendência natural da evolução dos sistemas que vem criando redes cada vez maiores • Os primeiros trabalhos que podem ser relacionados ao P2P vem do final da década de 70, início da década de 80 • No final dos anos 90 se tornou mundialmente popular graças ao Napster
  • 5.
    Características • Auto-organização: nãohá um coordenador do grupo; toda a coordenação é distribuída • Adaptabilidade: rede se ajusta ao ambiente, mesmo que ocorram falhas • Escalabilidade: rede cresce em escala facilmente; não há ponto de estrangulamento • Comunicação direta entre os pares: se opõe ao tradicional modelo cliente-servidor, já que cada nó pode fornecer ou obter recursos
  • 6.
    Utilização • Compartilhamento dearquivos, imagens, músicas, vídeos, etc. • Atualização de sistemas operacionais e de software aplicativo • Gerenciamento de redes e sistemas • Processamento distribuído • Sincronização de bancos de dados • Difusão de informações • etc.
  • 7.
  • 8.
  • 9.
    Arquitetura Centralizada (2) •Um servidor central controla as entradas e saídas de peers da rede • Os peers registram no servidor central os recursos que compartilharão na rede
  • 10.
    Arquitetura Centralizada (3) •Pesquisas por recursos disponíveis nos peers são efetuadas pelo servidor central • O acesso aos recursos é feito diretamente entre peers
  • 11.
  • 12.
  • 13.
    Arquitetura Descentralizada (2) • Não há um elemento central • Todos os nós possuem papel equivalente • As pesquisas por recursos compartilhados são feitas por inundação (flooding)
  • 14.
    Arquitetura Descentralizada (3) • Gera um alto tráfego na rede • Desempenho das pesquisas é ruim devido à necessidade de se comunicar a muitos nós e aguardar a resposta
  • 15.
  • 16.
  • 17.
    Arquitetura Híbrida (2) •Supernós permitem o ingresso dos nós na rede, podendo também exercer atividades de coordenação do funcionamento da rede, indexar os recursos compartilhados pelos nós e permitir a busca por estes recursos
  • 18.
    Arquitetura Híbrida (3) •Após localizado, um recurso pode ser obtido a partir da interação direta entre nós • Falha de um supernó pode ser tolerada elegendo dinamicamente outro supernó.
  • 19.
  • 20.
  • 21.
    Napster • Lançado 1999 •Compartilhamento de músicas • Utilizava servidor central (replicado) para efetuar a procura de arquivos na rede • Servidores centrais dedicados - Mecanismo de autenticação - Localizador de arquivos • Transferência de arquivos era feita diretamente entre os (peers)clientes
  • 22.
    Gnutella • Primeira aplicaçãoP2P descentralizada • Requisição é realizada, todos os nós são consultados • Somente o nó detentor da informação retorna a consulta • Cada nó atua como : - Cliente – quando faz requisições de arquivos - Servidor – quando fornece arquivos - Roteador – quando reenvia consultas e respostas.
  • 23.
    Kazaa • Utilizada arquiteturahierárquica • Nós comuns (NC) e Super nós (SN) • Rede composta por diversos (SN) que atua como “Mini-Servidores” utilizados para armazenar informações sobre arquivos compartilhados pelos NC • SN mantém conexões com outros SN
  • 24.
    BitTorrent • Cliente BitTorrenté qualquer aplicação que implementa Protocolo BitTorrent • Arquivo compartilhado é dividido em partes iguais e pequenas ( 64Kb 4 Mb) • Protocolo engloba mecanismos para: - Controlar integridade das partes dos arquivos - Recompensar quem compartilha arquivos, e penalizar quem não colabora • Para compartilhar, um nó cria o arquivo.torrent • Neste arquivo .torrent contém : - Contém metadados do arquivo que descreve o arquivo e permite ver sua integridade - Indica servidores (tracker)
  • 25.
    BitTorrent • Servidores (trackers): - Coordena distribuição de arquivos - Indicam nós para download - Controlam a velocidade do download - Se o nó não colabora, perde banda • Quando um nó quer fazer o download do arquivo - Obtem-se o arquivo.torrent - Conecta-se ao servidor (tracker) específico - Este servidor irá fornecer as informações necessárias para fazer o download de cada parte do arquivo.
  • 26.
    JXTA • Utilizada na implementação deste trabalho • Cria grupos de pares com interesses comuns • Mensagens JXTA são codificadas em XML • JXTA padroniza a forma como os pares - Descobrem uns aos outros - Organizam os grupos - Divulgam e descobrem os serviços disponíveis - Monitoram uns aos outros • JXTA faz consultas envolvendo pares conhecidos, que mandam as seus conhecidos.
  • 27.
    JXTA • JXTA –Comunicação - Cria Pipes – canais de comunicação unidirecionais, formando um rede parcialmente conectada - Protocolo HTTP é usado para permitir que as consultas atravessem firewalls.
  • 28.
    INTEGRIDADE E SEGURANÇA
  • 29.
    Integridade e Segurança •A segurança é um componente essencial para qualquer sistema de computação. • Navegar pelas redes P2P pode ser não muito seguro, pois existem várias ameaças e preocupações dentro da rede.
  • 30.
    Ameaças e Preocupações •Downloads interrompidos; • Nós maliciosos enviam dados corrompidos, vírus, etc; • Arquivos falsos na rede; • Propagação de arquivos infectados sem conhecimento disso (Backdoors); o Permite fácil acesso. • Bugs e/ou Softwares mal configurados; • Exposição a sofrer recursos legais ao compartilhar arquivos protegidos por direitos autorais.
  • 31.
    Soluções • Validação daintegridade do arquivo; o eMule faz a verificação antes do download (hash); o Kazaa perde nesse quesito (Perda de usuário, desuso). • Validação do usuário na rede; o Maioria possui sistemas de criptografia para proteção. • Fator de confiança à identificação do usuário; o Tempo de compartilhamento; o Evita direcionar downloads para usuário com baixa reputação.
  • 32.
    Protocolos da RedeP2P • Secure Sockets Layer (SSL); o Garante que um arquivo e eventos enviados cheguem intactos; o Ambos os lados automaticamente provam quem eles são para cada um antes de transferirem qualquer informação. • Tecnologia IPSec; o Um túnel IPSec basicamente age como uma camada de rede que protege todos os pacotes de dados que passa por ela. • Infra-Estrutura de chave pública (PKI); o Evita que crackers interceptem ou adulterem as comunicações realizadas. o É possível saber quem foi o autor de uma transação ou mensagem; o Dados confidenciais são protegidos contra a leitura por pessoas não autorizadas.
  • 33.
  • 34.