Sistemas Peer-to-Peer



Documentos relacionados
Sistemas Distribuídos e Paralelos

Aplicações P2P. André Lucio e Gabriel Argolo

PEER DATA MANAGEMENT SYSTEM

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

SISTEMAS DISTRIBUÍDOS

Resumo. Introdução História Caracteristicas Exemplos Arquitetura Distribuição Vertical vs Distribuição Horizontal Segurança Conclusão

Sistemas Distribuídos. Nomeação. Nazareno Andrade. Universidade Federal de Campina Grande 02/2008

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2014

Definição São sistemas distribuídos compostos de nós interconectados, aptos a se auto-organizar em topologias de rede, com o intuito de compartilhar

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Redes de Computadores

Arquitetura de Rede de Computadores

SISTEMAS DISTRIBUIDOS

Arquitetura dos Sistemas de Informação Distribuídos

Sistemas de Nomes Planos


SISTEMAS DISTRIBUÍDOS

Arquitetura TCP/IP. Parte IV Mapeamento de endereços IP em endereços físicos (ARP) Fabrízzio Alphonsus A. M. N. Soares

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Laboratório - Visualização das tabelas de roteamento do host

Consulte a exposição. Qual declaração descreve corretamente como R1 irá determinar o melhor caminho para R2?

Sistemas Distribuídos

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Introdução ao Modelos de Duas Camadas Cliente Servidor

Fundamentos de Banco de Dados

Rede de Computadores

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Peer-to-Peer. Introdução. Motivação. Definição. Definição. Definição. Everton Flávio Rufino Seára Murilo R. de Lima

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Capítulo 11: NAT para IPv4

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Redes de Computadores

Trabalho de Sistemas Distribuídos

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

FTIN Formação Técnica em Informática Módulo Sistema Proprietário Windows AULA 04. Prof. André Lucio

Capítulo 9 - Conjunto de Protocolos TCP/IP e Endereçamento. Associação dos Instrutores NetAcademy - Julho de Página

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

A camada de rede. A camada de rede. A camada de rede. 4.1 Introdução. 4.2 O que há dentro de um roteador

Sistemas Distribuídos: Conceitos e Projeto Arquiteturas Ponto a Ponto

TRBOnet MDC Console. Manual de Operação

João Rocha Marco Antônio Domingues. Eduardo Souto Guthemberg Silvestre Carlos Kamienski Djamel Sadok

Tabela de roteamento

Redes de Computadores

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

Introdução. Definição de um Sistema Distribuído (1) Definição de um Sistema Distribuído(2) Metas de Sistemas Distribuídos (2)

ESTUDOS REALIZADOS. Camada Física. Redes de Computadores AULA 13 CAMADA DE REDE. Camada Física Camada de Enlace Subcamada de Acesso ao Meio AGORA:

Equipamentos de rede. Repetidores. Repetidores. Prof. Leandro Pykosz

WebZine Manager. Documento de Projeto Lógico de Rede

OS endereços IP v.4 consistem em 4 octetos separados por pontos. Estes endereços foram separados

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

Prefixo a ser comparado Interface Senão 3

Gerência de Redes. Arquitetura de Gerenciamento.

Redes de Computadores e a Internet

CONHECIMENTOS ESPECÍFICOS TÉCNICO DE LABORATÓRIO / ÁREA INFORMÁTICA

Informática UFRGS. Programação Concorrente (C. Geyer) P2P 1

Encaminhamento em redes instáveis. Localização de nós em redes Peer-to-Peer Napster Gnutella Chord

Redes de Computadores Aula 3

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

AULA 6: SERVIDOR DNS EM WINDOWS SERVER

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

BC-0506: Comunicação e Redes Aula 04: Roteamento

Conceitos de relação de confiança

Redes de Computadores

Tecnologia de Redes de Computadores - aula 5

Introdução ao Active Directory AD

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Projeto de Arquitetura

Existem muitos assuntos relacionados com o Skype. Logo, esta apresentação focar-seá essencialmente nos aspectos mais importantes sobre a arquitectura

SISTEMAS OPERACIONAIS LIVRES GERENCIAMENTO DE SERVIÇOS NO WINDOWS. Professor Carlos Muniz

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

BC-0506: Comunicação e Redes Internet e Web como redes complexas

Redes de Computadores

Redes de Computadores

Veja abaixo um exemplo de um endereço IP de 32 bits:

Roteamento Estático (2)

JXTA. Alessandro Vasconcelos Ferreira de Lima.

Arquitetura TCP/IP. Parte III Endereçamento IP e roteamento. Fabrízzio Alphonsus A. M. N. Soares

Curso: Sistemas de Informação Disciplina: Redes de Computadores Prof. Sergio Estrela Martins

Considerações no Projeto de Sistemas Cliente/Servidor

Noções de. Microsoft SQL Server. Microsoft SQL Server

Padrões Arquiteturais e de Integração - Parte 1

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

ADMINISTRAÇÃO DOS RECURSOS DE DADOS

DNS - Domain Name System

Sistemas Operacionais

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

O que são DNS, SMTP e SNM

Endereçamento IP. Figura 1 Estrutura hierárquica do endereço IP

O Protocolo IP (2) Prof. José Gonçalves Pereira Filho Departamento de Informática

Comunicando através da rede

Transcrição:

Sistemas Peer-to-Peer Prof. Bruno Crestani Calegaro Curso de Ciência da Computação ELC1018 - Sistemas Distribuídos 1

Sistemas Peer-to-Peer (P2P) Prevêem a colaboração de muitos hosts usando dados e recursos disponíveis em computadores pessoais e servidores Principal problema de projeto: Distribuição de muitos objetos em muitos hosts com subsequente acesso/localização eficiente. Middlewares exploram: Técnicas de atribuição de resolução de nomes Roteamento Replicação de dados Técnicas de segurança Usos mais frequentes de aplicativos P2P Compartilhamento de arquivos Distribuição de informações 2

Principais características Usuário contribui com recursos para o sistema Todos os nós tem as mesmas capacidades e responsabilidades Seu funcionamento não depende de um coordenador/centralizador Pode explorar anonimato para provedores e usuários Uso de algoritmo eficiente para distribuir e recuperar dados com equilíbrio da carga de trabalho Proprietários dos recursos não garantem sua disponibilidade 3

As 3 gerações do P2P Napter para troca de música Aplicativos de compartilhamento de arquivos com escalabilidade, TF, e anonimato Freenet, Gnutella, Kazaa, BitTorrent Middlewares P2P Pastry, Tapestry, CAN, Chord e Kademlia 4

Napster Serviço de armazenamento e recuperação de informações Compartilhamento de músicas Objetivo: download de arquivos de música digital Usuários fornecem arquivos Usa índices centralizados e replicados Índices mantém endereços de rede dos hosts Consistência entre réplicas não é garantida Projeto considera caráter local da rede número de passos entre cliente e servidor Gargalos: descoberta e endereçamento de objetos 5

Napster: compartilhamento de arquivo P2P com um index centralizado e replicado 6

Características especiais Aplicação: Arquivos de música nunca são atualizados Não é exigida garantia de disponibilidade Segurança: Mecanismos de comunicação favorecem anonimato Arquivos cifrados podem conter informações sigilosas ou proibidas e provedor pode alegar desconhecimento Roteamento de requisições e resposta pode ocultar a fonte (caminho tortuoso) Conteúdo de arquivos podem ser distribuídos em vários nós dispersando responsabilidades 7

Middleware P2P Desafios gerais: Garantir acesso rápido à recursos Garantir acesso seguro a recursos (disponibilidade) Segunda geração de sistemas P2P: Índices particionados e distribuídos Algoritmos de manipulação de índices específicos por sistema Questão principal: como localizar os objetos de forma rápida? 8

Middleware P2P Requisitos Permitir que clientes localizem e se comuniquem com recursos individuais, independente da distribuição Capacidade de adicionar e remover hosts e recursos à vontade Oferecer uma interface de programação amigável/simples Escalabilidade global Balanceamento de carga Posicionamento aleatório de recursos Réplicas dos recursos muito utilizados Otimização das iterações locais entre peers Acomodar a disponibilidade dinâmica de hosts Segurança dos dados em um ambiente com confiança heterogênea Anonimato, capacidade de negação e resistência a censura 9

Distribuição de informação num roteamento sobreposto (overlay) Região de roteamento a partir de A Região de roteamento a partir de D C A D Object: B Node: Roteamento a partir de B OBS: Para rotear, cada nó mantém informações sobre localização de nós e objetos (replicação) Região de roteamento a partir de C 10

Middleware: Roteamento sobreposto Principal tarefa: Servidor de localização, ou seja, dado uma requisição e um GUID o roteamento sobreposto deve encontrar o nó que contém o objeto e entregar a requisição. Outras tarefas: Um nó deve poder calcular um GUID e anunciá-lo a camada de roteamento sobreposto. Clientes devem poder solicitar a remoção de objetos. Nós devem poder entrar e sair do serviço. Serviço deve buscar réplica mais próxima. 11

Middleware: Roteamento sobreposto Um GUID é um hash de todo ou parte do objeto (identificador exclusivo). Para alcançar disponibilidade o middleware distribui o dado ou tuplas <GUID,dado> Também conhecido como Pastry: Distributed Hash Table (DHT) Dado armazenado em r hosts com número próximo ao GUID Tapestry: Distributed Object Location and Routing (DOLR) Dado armazenado no host onde cliente deseja publicá-lo. 12

Pastry: Interface de Programação Básica para uma Distributed Hash Table (DHT) put(guid, data) Submete dados ao middleware. Dados são distribuídos (replicados). A DHT é atualizada para garantir localização. remove(guid) Exclui todas as referências para o GUID e para os dados associados. value = get(guid) Os dados associados ao GUID são recuperados de um dos nós responsáveis por eles (que contém uma réplica). 13

Tapestry: Interface de Programação Básica para um Dist. Object Location and Routing (DOLR) publish(guid) Publica objeto correspondente ao GUID. unpublish(guid) Torna objeto correspondente ao GUID inacessível. sendtoobj(msg, GUID, [n]) Seguindo o paradigma OO envia uma mensagem ao objeto (requisição). O parâmetro opcional [n] indica o número de réplicas do objeto que se deseja alcançar. 14

Roteamento baseado em prefixo Usado no Pastry e Tapestry Determina rotas para distribuição de mensagens com base nos valores dos GUIDs Restringe busca do próximo nó na rota aplicando máscara binária. A cada hop, mascara seleciona número cada vez maior de dígitos hexadecimais do GUID. Clientes consultam serviços de indexação para obter GUIDs a partir de nomes comuns. 15

Pastry Infra-estrutura de roteamento de mensagens Utilizado no: PAST, um sistema de arquivos Squirrel, um serviço P2P para uso de cache web Usa GUIDs de 128 bits Usa função de resumo segura SHA-1 Usa um esquema de roteamento circular 16

Roteamento Circular Simples (ineficiente) 65A1FC 0 FFFFF...F (2 128-1) D471F1 D467C4 D46A1C D13DA3 Os pontos representam nós ativos. O espaço é circular. O diagrama ilustra o roteamento de uma mensagem do nó 65A1FC para o nó D46A1C usando apenas informações do conjunto de folhas de tamanho 8 (l = 4). Tipo não escalável de roteamento Não usado na prática. 17

Primeiras 4 linhas de uma tabela de roteamento do Pastry 18

Algoritmo de roteamento do Pastry Para manipular uma mensagem M endereçada para um nó D (onde R[p,i] é o elemento na coluna i, linha p da tabela de roteamento): 1. Se (L -l < D < L l ) { // destino dentro do conjunto de folhas ou é o nó corrente 2. Encaminha D para L i com GUID mas próximo a D ou ao nó corrente A 3. } senão { // usa tabela de roteamento para enviar M para GUID mais próximo 1. Localiza linha p, o comprimento do prefixo comum mais longo de D e A 2. Localiza coluna i, o (p+1) iésimo dígito hexadecimal de D 3. Se (R[p,i] null) { 4. encaminha M para R[p,i] // nó com um prefixo comum mais longo 5. } senão { // não existe nenhuma entrada na tabela de roteamento 6. encaminha M para qualquer nó em L, ou R, com um prefixo comum de comprimento p, mas com um GUID numericamente mais próximo. 1. } 11.} 19

Exemplo de roteamento no Pastry 0 FFFFF...F (2 128-1) D471F1 D467C4 D46A1C D462BA D4213F D13DA3 Roteamento de uma mensagem do nó 65A1FC para D46A1C. Com uma tabela adequadamente preenchida a mensagem pode ser enviada em ~ log 16 (N) hops. 65A1FC 20

Integração de Hosts Protocolo de associação Cada novo nó X calcula GUID (hash do nome) X envia join para vizinho A (vizinho próximo - rtt) A envia join(x) via Pastry para Z, onde Z é numericamente mais próximo de X Todos os nós A B... Z enviam parte relevante da tabela de roteamento para X X monta sua tabela com base no que recebe X0=A0; X1=B1;...; Xn=Zn X envia seus conteúdos para todos os nós folha (as mesmos nós folha de Z) para que incluam X 21

Falha ou saída de host Um nó falho quebra a rota Para detectar falhas, Pastry envia periodicamente mensagens de pulsação (heartbeat) Para garantir TF, nós podem enviar mensagens com semântica pelo menos uma vez. Reenviam mensagens várias vezes até receberem ack. 22

Tapestry Implementa tabela de resumo distribuída Como Pastry, usa roteamento baseado em prefixo Proprietário do recurso mantém recursos publicados Tapestry cria réplicas com o mesmo GUID 23

Roteamento do Tapestry Rotas Tapestry para 4377 4377 Raiz para 4378) Caminho do publish 4228 43FE 437A Mapeamento de localização para 4378 Rotas realmente Feitas pelos send(4378) 4378 Phil s books E791 4664 4B4F 4361 57EC 4A6D AA93 4378 Phil s books Replicas do arquivo Phis s books (G=7378), publicadas nos nodos 4228 e 4378. O nodo 4377 é o raiz do documento 4378. 24

Outras abordagens para restringir buscas no roteamento overlay Chord baseia-se na diferença numérica entre os GUIDs do nó selecionado e do destino. CAN baseia-se na distância de um hiperespaço d-dimencional onde nós estão. Kademlia usa operação XOR dos pares de GUIDs como métrica de distância 25

AGUID Organização de armazenamento dos objetos OceanStore certificate VGUID of current version version i+1 VGUID of version i root block d1 d2 d3 BGUID (copy on write) version i Version i+1 has been updated in blocks d1, d2 and d3. The certif icate and the root blocks include some metadata not shown. All unlabelled arrows are BGUIDs. indirection blocks data blocks VGUID of version i-1 d1 d2 d3 d4 d5 26

Tipos de identificadores usados no OceanStore Name Meaning Description BGUID block GUID Secure hash of a data block VGUID version GUID BGUID of the root block of a version AGUID active GUID Uniquely identifies all the versions of an object 27

Arquitetura do sistema Ivy Iv y node Application Application DHash serv er DHash serv er Iv y serv er DHash serv er DHash serv er Modif led NFS Client module Kernel DHash serv er 28

Diferenças entre roteamento IP e roteamento overlay para P2P Escala Equilíbrio da Carga Dinâmica da Rede (adição/exclusão de objetos/nós) IP O Ipv4 é limitado a 2³² nós endereçáveis. O espaço de nomes Ipv6 é muito mais generoso(2 128 ), mas nas duas versões os endereços são estruturados hierarquicamente e grande parte do espaço é previamente alocado de acordo com os requisitos administrativos As cargas sobre os roteadores são determinadas pela topologia de rede e pelos padrões de tráfegos vigentes As tabelas de roteamento IP são atualizadas de forma assíncrona, com base nos melhores esforços, com constantes de tempo na ordem de uma hora Roteamento em nível de aplicativo Os sistemas peer-to-peer podem endereçar mais objetos. O espaço de nomes do GUID é muito grande e plano (>2 128 ), podendo ser ocupado de forma muito mais completa Os objetos podem se posicionar aleatoriamente e com isso os padrões de tráfego não tem nada a ver com a topologia de rede 29

Diferenças entre roteamento IP e roteamento overlay para P2P Tolerância a falhas Identificação do Destino Segurança e anonimato IP A redundância é projetada na rede IP por seus gerentes, garantindo tolerância da falha de conectividade de um único roteador ou cabo. A replicação com fator de multiplicação n é dispendiosa Cada endereço IP é mapeado em exatamente um nó destino O endereçamento só é seguro quando todos os nós são confiáveis. O anonimato dos proprietários de endereços não pode ser obtido Roteamento em nível de aplicativo Rotas e referências de objeto podem ser replicados por um fator n, garantindo a tolerância de n falhas de nós ou conexões As mensagens podem ser direcionadas para a réplica mais próxima de um objeto destino A segurança pode ser obtida, mesmo em ambientes de confiança limitada. Um grau limitado de anonimato pode ser fornecido 30

Referencias Bibliográficas COULOURIS, G. AT AL. Sistemas Distribuídos Conceito e Projeto. Bookman, 2007. 4º Ed. Capítulo 10 31