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



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

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

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

Introdução ao Modelos de Duas Camadas Cliente Servidor

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

Redes de Computadores

PEER DATA MANAGEMENT SYSTEM

Sistemas Distribuídos

Sistemas Distribuídos

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

SISTEMAS DISTRIBUÍDOS

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

AULA Redes de Computadores e a Internet

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

Redes P2P. Alexandre Alves Bruno Valério. 19 de junho de 2015

SISTEMAS DISTRIBUÍDOS

GT Computação Colaborativa (P2P)

Redes de computadores. Redes para Internet

Internet - A rede Mundial

MODELO CLIENTE SERVIDOR

Redes de Computadores e a Internet

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

SISTEMAS DISTRIBUIDOS

Rede Peer-To-Peer. Conteúdo

Redes de Computadores

Universidade de Brasília

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

26/2/2014. Numero de Web Sites no mundo Agosto/2002

Redes de Computadores e a Internet

Computação Colaborativa na Internet

Redes de Computadores Aula 3

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

TECNOLOGIA WEB INTERNET PROTOCOLOS



Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Firewall. Alunos: Hélio Cândido Andersson Sales

Arquitetura dos Sistemas de Informação Distribuídos

Capítulo 8 - Aplicações em Redes

REDES DE COMPUTADORES

Curso de Aprendizado Industrial Desenvolvedor WEB

Compartilhamento de Arquivos através de Redes Peer-to-Peer

PARANÁ GOVERNO DO ESTADO

Cap 03 - Camada de Aplicação Internet (Kurose)

Projeto de sistemas O novo projeto do Mercado Internet

SISTEMAS DISTRIBUÍDOS

REDE DE COMPUTADORES

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

PROJETO E IMPLANTAÇÃO DE INTRANETS

RC e a Internet: noções gerais. Prof. Eduardo

Roteamento em Redes de Computadores

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Camada de Aplicação. DNS Domain Name System. Redes de Computadores Prof. Leandro C. Pykosz

Revisão. Karine Peralta

Rede de Computadores

Camadas de Serviço de Hardware e Software em Sistemas Distribuídos. Introdução. Um Serviço Provido por Múltiplos Servidores

Sistemas de Nomes Planos

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

10/07/2013. Camadas. Principais Aplicações da Internet. Camada de Aplicação. World Wide Web. World Wide Web NOÇÕES DE REDE: CAMADA DE APLICAÇÃO

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

Redes de Computadores

Gerência de Segurança

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

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

3 Trabalhos Relacionados

Data Autor Descrição Revisão Configuração HX600 via Rede Ethernet 1.0

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

Jan Tarik Martins Nazorek DESENVOLVIMENTO DE UM SOFTWARE DE BACKUP DESCENTRALIZADO, UTILIZANDO A PLATAFORMA JXTA

Prof. Samuel Henrique Bucke Brito

Características de Firewalls

Programação Distribuída

Desenvolvimento em Ambiente Web. Prof. André Y. Kusumoto

Unidade 1. Conceitos Básicos

Ataques DoS e DDoS. Alessandro Santos Germer Rafael Ambiel Faccioli Roberto Röseling Badô. 1. Introdução

Segurança de Redes & Internet

Permite o acesso remoto a um computador;

Ciência de Computadores Sistemas Distribuídos e Móveis

Como medir a velocidade da Internet?

Disciplina de Banco de Dados Introdução

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

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

Sistemas Peer-to-Peer

Redes de Computadores

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

Professor: Gládston Duarte

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO

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

Peer to Peer. Sandro, Eluan. 8 de Novembro de Universidade Estácio de Sá

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Capítulo 7 CAMADA DE TRANSPORTE

Programação de Sistemas

Programação de Sistemas

Servidor de Gerenciamento de Chaves de Encriptação Aérea OTAR

Transcrição:

Aplicações P2P André Lucio e Gabriel Argolo

Tópicos Internet Peer-to-Peer (Introdução) Modelos (Classificação) Napster Gnutella DHT KaZaA

Razões para o Sucesso da Internet Capacidade de interligar várias redes Características: Aberta Pública De alcance mundial O que faz aplicações para a Internet darem certo (pegarem)? Resolver problemas

Modelo de interação entre computadores na Internet Cliente/Servidor Dependente de Servidores bem configurados em com informação acessível Não explora o potencial de computação distribuída proveniente da Rede A existência de um ou milhares de computadores é indiferente na interação de um usuário típico com a rede

O que são Sistemas P2P? Sistemas distribuídos sem controle centralizado ou organização hierárquica Software executado em cada elemento (ponto) é equivalente em funcionalidade Têm recebido grande atenção: Usuários Empresas Meios acadêmicos

Definição P2P é uma classe de aplicações que leva vantagem de recursos disponíveis nas bordas da Internet Quais recursos? Armazenamento Tempo de CPU Conteúdo Presença humana

Características Cada participante age como cliente e servidor ao mesmo tempo Cada cliente paga a sua participação fornecendo acesso a (alguns de) seus recursos Exceções são comuns: freeloaders ou vampiros Gnutella: 50% dos arquivos são fornecidos por 1% dos participantes

Características Sem coordenação central Sem banco de dados central Sem local único de falha ou gargalo Nenhum ponto (peer) tem visão global do sistema Comportamento global definido por interações locais Todos os dados e serviços são acessíveis de qualquer ponto Pontos são autônomos Pontos e conexões não são confiáveis

Origem de P2P A Internet era P2P no início Qualquer computador funcionava como cliente e servidor Aplicações principais: TELNET e FTP A cooperação era o principal objetivo e o valor da rede

Aplicações Inovadoras Mensagens instantâneas Compartilhamento de arquivos Busca distribuída Processamento distribuído Trabalho colaborativo (groupware) Jogos Compartilhamento de capacidade de armazenamento Novas formas de distribuição de conteúdo (Web- Semântica )

Sistemas P2P: Requisitos Descoberta de recursos/serviços Baseada em: nome, endereço, rota, métrica, etc. Roteamento Roteamento de aplicação: conteúdo, interesse, etc. Roteamento entre super-nós: Kazaa, Morpheus Roteamento baseado em capacidade (bandwidth) Robustez e tolerância a falhas (nó e enlace) Armazenamento distribuído e atualizações Escalabilidade Confiança nos pares (autenticação, etc) Monitoramento de vizinhos

P2P e Redes de Cobertura Overlay (Overlay) Rede virtual: rede em cima de outra rede (IP) Os enlaces são conexões entre nós da rede P2P freqüentemente utilizada para criar overlays Oferecendo serviços que poderiam ser implementados na camada IP Estratégia muito útil para implantação

Modelos de Sistemas P2P Modelo Centralizado (Classificação 1) Índice global mantido por um autoridade central Contato direto entre clientes e provedores Exemplo: Napster Modelo Descentralizado Sem índice global (sem coordenação global) Exemplos: Gnutella, Freenet Modelo Hierárquico Introdução dos super-nós (super-nodes ou super-peers) Mistura dos modelos centralizado e descentralizado Exemplos: KaZaA, Morpheus

Modelos de Sistemas P2P (Classificação 2) Centralized Service Location (CSL ou CIA) Busca centralizada Exemplo: Napster Flooding-based Service Location (FSL ou DIFA) Busca baseada em inundação Exemplo: Gnutella Distributed Hash Table-based Service Location (DHT ou DIHA) Busca baseada em tabela de hash distribuída Exemplos: CAN, Pastry, Tapestry, Chord

Modelos de Sistemas P2P (Classificação 3)

Modelos de Sistemas P2P (Classificação 4)

Busca Centralizada (CSL)

Napster 05/99: Shawn Fanning funda o Napster Online music service 12/99: primeiro processo na justiça 07/01: Juiz manda fechar Napster Outras redes P2P começam a crescer 07/01: usuários simultâneos Morpheus: 300K, Napster: 160K, Gnutella: 40K

Napster: funcionamento 1. Cliente se conecta com servidor e envia a sua lista de arquivos compartilhados 2. Cliente envia palavras-chave para fazer busca na lista completa 3. Cliente testa taxa de transmissão dos pares que têm o arquivo solicitado (ping) 4. O arquivo é transferido entre os pares

Napster: funcionamento (1)

Napster: funcionamento (2)

Napster: funcionamento (3)

Napster: funcionamento (4)

Napster - Comentários Servidor centralizado Ponto único de falhas Sujeito a congestionamentos Controle totalmente com o Napster Apenas ilusão de liberdade Nenhuma segurança Senhas enviadas sem criptografia Sem anonimidade (identidade revelada)

Busca por Inundação (FSL)

Busca por Inundação (FSL)

Gnutella Sistema de busca totalmente distribuído Busca baseada em inundação História: 14/03/2000: Disponibilizado sob licença pública GNU no servidor web da Nullsoft (pertencente à AOL) Retirado apenas algumas horas depois Tarde demais: muitos usuários fizeram download Outros clientes foram disponibilizados e Gnutella começou a se popularizar

Gnutella Sua principal característica é a Busca Distribuída Problema Tráfego gerado: Escalabilidade Despertou grande interesse na comunidade acadêmica Não depende de servidor central Problema inicial: descobrir algum nó que está na rede.

Protocolo Gnutella Aplicação de compartilhamento de arquivos sobre uma rede de overlay Nós mantêm conexões TCP Mensagens são difundidas (inundadas) ou então propagadas de volta Protocolo: Inundação Propagação de volta Nó a nó Participação PING PONG Consulta QUERY QUERY HIT Transferência de arquivos GET, PUSH

Gnutella: Mecanismo de busca 1 A 4 7 Passos: 1. Nó 2 inicia busca do arquivo A 2 3 6 5

Gnutella: : Mecanismo de busca 1 A 2 A 4 7 Passos: 1. Nó 2 inicia busca do arquivo A 2. Envia mensagens a vizinhos 3 A 6 5

Gnutella: : Mecanismo de busca 1 A 2 4 A 7 Passos: 1. Nó 2 inicia busca do arquivo A 2. Envia mensagens a vizinhos 3. Vizinhos encaminham mensagem 3 6 A A 5

Gnutella: : Mecanismo de busca 1 2 3 4 A:7 7 A 6 A Passos: 1. Nó 2 inicia busca arquivo A 2. Envia mensagens a vizinhos 3. Vizinhos encaminham mensagem 4. Nós com arquivo A enviam mensagem de resposta A:5 5 A

Gnutella: : Mecanismo de busca 1 2 3 A:5 4 A:7 A 5 A 7 6 Passos: 1. Nó 2 inicia busca arquivo A 2. Envia mensagens a vizinhos 3. Vizinhos encaminham mensagem 4. Nós com arquivo A enviam mensagem de resposta 5. Mensagem de resposta propagada de volta

Gnutella: : Mecanismo de busca 1 2 3 A:7 A:5 4 5 7 6 Passos: 1. Nó 2 inicia busca arquivo A 2. Envia mensagens a vizinhos 3. Vizinhos encaminham mensagem 4. Nós com arquivo A enviam mensagem de resposta 5. Mensagem de resposta propagada de volta

Gnutella: : Mecanismo de busca 1 2 3 download A 4 5 7 6 Passos: 1. Nó 2 inicia busca arquivo A 2. Envia mensagens a vizinhos 3. Vizinhos encaminham mensagem 4. Nós com arquivo A enviam mensagem de resposta 5. Mensagem de resposta propagada de volta 6. Arquivo A é transferido

Busca por tabela de Hash Hash Distribuída (DHT) Estrutura de dados importantes para desenvolvimento Hash distribuído na escala da Internet Importante para sistemas distribuídos grandes Sistemas P2P Chord, CAN, Tapestry, Pastry,... Sistemas muito grandes de gerenciamento de armazenamento de dados OceanStore, CFS, Publius,...

DHT: Funcionamento Função de hash mapeia objeto a identificador único Ex: h( Aquarela do Brasil ) -> 8045 Faixa de resultados da função de hash é distribuída pela rede

DHT: Funcionamento Cada nó deve conhecer pelo menos uma cópia do objeto que foi colocado na sua faixa de hash Localização dos objetos Nós armazenam apontadores para os objetos na sua faixa de hash

DHT: Roteamento Para cada objeto, o nó (os nós) cuja faixa cobre o objeto deve ser alcançável por um caminho curto De qualquer outro nó As diferentes abordagens (Chord, CAN, Pastry, Tapestry) diferem primariamente na escolha do algoritmo de roteamento Em geral, qualquer função aleatória de hash boa é suficiente

Roteamento DHT: Desafios O diâmetro de busca deve ser escalável (log N) O número de vizinhos por nó deve ser escalável O roteamento deve ser distribuído (sem gargalo ou ponto de falha centralizado) Mecanismo de entrar / sair da rede Precisa re-dividir as faixas pelos nós existentes Precisa reorganizar o conjunto de vizinhos de cada nó Precisa de um mecanismo de entrada (bootstrap) na rede, para conectar novos nós na infra-estrutura DHT

API DHT Cada objeto (arquivo ou apontador) tem uma chave na faixa de hash de algum nó Software DHT oferece uma API para cada nó: A aplicação passa uma chave k para a API A API retorna o endereço IP do nó responsável por k A API é implementada com a rede de cobertura (overlay) do DHT e os seus algoritmos distribuídos

DHT: Idéia Básica

DHT: Idéia Básica

DHT: Idéia Básica

DHT: Idéia Básica

DHT: Idéia Básica

KaZaA Usuários são pacientes Fazem os pedidos e não ficam esperando as respostas na frente do computador Objetos pequenos (até 10MB) 30% dos pedidos: +/- 1 hora para terminar 10% dos pedidos: +/- 1 dia para terminar Objetos grandes (mais de 100MB) 10%: 1 hora 50%: mais do que um dia

KaZaA

KaZaA : utilização Usuários novos fazem mais buscas e consomem a maioria dos recursos no Kazaa Usuário antigos consomem menos bytes

KaZaA: : Dinâmica dos objetos Maioria (91%) dos pedidos para objetos pequenos Maioria (65%) dos bytes transferidos de objetos grandes A popularidade dos objetos dura pouco Os objetos mais populares tendem a ser muito novos (introduzidos na rede) O sucesso de uma rede P2P como o Kazaa depende imensamente da introdução de novos objetos e entrada de novos usuários

Monitoração REDES SECRETAS, PRIVADAS e PEQUENAS com acesso restrito a pessoas conhecidas previamente impede a RIAA de as monitorizar. Programas baseados no KaZaA implementam bloqueio de monitorização da RIAA.