Baixe o app para aproveitar ainda mais
Prévia do material em texto
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?
Compartilhar