Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - P2P Redes de Computadores I – Prof. Mateus Raeder Cliente-servidor • A Web é utilizada muito comumente utilizando o paradigma cliente-servidor • Servidores centralizados executam serviços pedidos pelos clientes distribuídos – Maioria usa o que a minoria tem Redes de Computadores I – Prof. Mateus Raeder Cliente-servidor • Maioria das aplicações da Internet – – – – Correio eletrônico Transferência de arquivos Servidor de nomes Etc... • Crescimento do número de clientes – Carga e largura de banda do servidor aumenta – Cliente não precisa muito poder computacional • Cliente tem papel passivo Redes de Computadores I – Prof. Mateus Raeder P2P • Se todos os hosts (máquinas da rede) fizessem o papel de servidor e de cliente, evoluiríamos para uma arquitetura peer-to-peer (P2P) – Máquinas individuais podem fornecer serviços a outras • Não depende de servidor central – Elimina problemas de falha de serviço Redes de Computadores I – Prof. Mateus Raeder P2P • Então: o que são sistemas P2P? – Sistemas distribuídos sem uma organização hierárquica e tampouco centralizado • Cada usuário (cada cliente, máquina) participa em troca de fornecer acesso a recursos que ele dispõe Redes de Computadores I – Prof. Mateus Raeder O que é Definição • P2P é um termo amplo: não há consenso sobre sua definição – Uma é: “sistema totalmente descentralizado onde pares são iguais entre si”, mas isso exclui alguns esquemas P2P, como aqueles baseados em super-peer – Outra é: “classe de aplicações que aproveita recursos nas bordas da Internet”, mas isso inclui esquemas que não são realmente considerados P2P, como SETI@home Redes de Computadores I – Prof. Mateus Raeder O que é Características • Uma tecnologia que permite a qualquer dispositivo com acesso a uma rede prover recursos a outros dispositivos da mesma rede. • Um peer em uma rede P2P age como um cliente e como um servidor de uma arquitetura cliente/servidor tradicional. Redes de Computadores I – Prof. Mateus Raeder O que é Recursos compartilháveis • Informações • Recursos computacionais – Espaço em disco – Processamento • Recursos de rede Redes de Computadores I – Prof. Mateus Raeder P2P • Algumas características: – – – – – Não tem coordenação central Banco de dados (?) Sem gargalos Dados acessíveis por todos os componentes da rede Cooperação é possível sem custos adicionais de hardware para adição de servidores para coordenação • São redes virtuais que funcionam na Internet com o objetivo de permitir o compartilhamento de recursos entre os participantes Redes de Computadores I – Prof. Mateus Raeder P2P • Principais classes de aplicações P2P – Mensagem instantânea • Possibilidade de poder enviar uma mensagem em tempo real pela internet (IM – Instant Messaging) – Compartilhamento de arquivo • Transferir arquivos entre os hosts – Computação distribuída • Utilização de recursos computacionais ociosos – Trabalhos colaborativos • Melhorar a produtividade de grupos que possuem interesses em comum Redes de Computadores I – Prof. Mateus Raeder P2P • Exemplos de aplicações – Mensagens instantâneas: • • • • • • • • • ICQ MSN Skype K-Lite Pichat Pidgin Usenet P2P Messenger SOULSEEK • UfaSoft P2P Instant Messenger Redes de Computadores I – Prof. Mateus Raeder P2P • Exemplos de aplicações – Compartilhamento de arquivos • • • • • • • • • LimeWire Emule BearShare Kazaa Pichat Gnutella Deluge qBittorrent BitComet • Azureus • Utorrent • Ares Galaxy • Kademlia • SOULSEEK • YaCy • FastTrack • BitTorrent Redes de Computadores I – Prof. Mateus Raeder P2P • Exemplos de aplicações – Computação distribuída • • • • • SETI@Home (Search for Extraterrestrial Intelligence) Folding@home World Community Grid OurGrid DNS Redes de Computadores I – Prof. Mateus Raeder P2P • Aplicação de trabalho colaborativo – Aplicações deste gênero são conhecidas como groupware application – É um software que suporta diversos pontos, tais como: • • • • • • • Comunicação e coordenação de usuários E-mail Calendário Espaço de trabalho Listas de discussão Gerência de documentos Vídeo conferência Redes de Computadores I – Prof. Mateus Raeder P2P • Exemplos de aplicações – Trabalho colaborativo • Lotus Notes • Microsoft NetMeeting • Groove • Ikimbo • Consilient Redes de Computadores I – Prof. Mateus Raeder Popularidade Redes de Computadores I – Prof. Mateus Raeder Por que usar Redes de Computadores I – Prof. Mateus Raeder Por que usar Objetivos • • • • • • Diminuir o custo de compartilhamento Agregação de recursos (melhor eficiência) Escalabilidade e confiabilidade maior Aumento na autonomia Dinamismo Colaboração Redes de Computadores I – Prof. Mateus Raeder Por que usar Vantagens • Eliminar o gargalo de fonte única, usando o P2P para distribuir dados e fazer o balanceamento de pedidos na rede; • Eliminar o risco de um único ponto de falha. Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais Peer • Um peer é o nodo em um sistema P2P. É a unidade fundamental de qualquer solução P2P; • Cada peer possui um ID único; • Cada peer pertence a um ou mais grupos (PeerGroups); • Cada peer pode se comunicar com outros peers de seus grupos e também de outros grupos. Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais Tipos de Peers • Peer Simples – É designado a servir um único usuário final, permitindo a este prover e consumir serviços da rede. • Peer Rendezvous – Fornece as localizações na rede para a descoberta de outros peers e de seus recursos disponíveis. • Peer Router – Fornece um mecanismo para que os peers se comuniquem através de firewalls ou NATs. Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais PeerGroup • Um grupo de peers com um conjunto de interesses ou objetivos comuns. • Peer groups podem fornecer aos seus membros serviços que não estão diretamente acessíveis aos outros peers da rede. Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais Serviços • Fornecem a funcionalidade que os peers podem utilizar para executar uma tarefa em um peer remoto: – – – – Transferência de arquivos; Fornecimento de informações de estado; Execuções de algoritmos; Basicamente qualquer coisa que um peer de uma rede P2P seja capaz de fazer. Redes de Computadores I – Prof. Mateus Raeder Elementos Fundamentais Protocolos • Precisam fazer: – – – – – – – Procurar por peers da rede; Procurar por serviços que um peer oferece; Obter informações de estado de um peer; Invocar serviços de um peer; Criar, entrar e sair de peergroups; Criar conexões entre peers; Encaminhar mensagens a outros peers (roteamento) Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Cliente/Servidor • O termo centralizado tem sido usado para descrever um sistema em que um único computador, o servidor, disponibiliza os serviços à rede. • Em algum momento, o servidor poderá ser replicado a fim de tratar todo o volume de tráfego de todos os clientes. Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Cliente/Servidor Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Cliente/Servidor • Responsabilidades do cliente: – Enviar pedidos de um serviço qualquer; – Receber as respostas de um pedido feito a um serviço • Responsabilidades do Servidor: – Receber pedidos de serviço; – Processar os pedidos e executar o serviço requerido; – Enviar a resposta com os resultados do serviço requerido Redes de Computadores I – Prof. Mateus Raeder Arquiteturas • Modelos de arquitetura – Descentralizada: • Não há um ponto central, cada nó tem o mesmo nível • Todos os nós compartilham e gerenciam os recursos e tráfego – Semicentralizada (ou parcialmente centralizados): • Há um nó central para informações de controle (normalmente para controle de tráfego) • Ou um conjunto de super-nós que fazem esta função (a queda de um destes super-nós afeta somente os inferiores diretamente ligados a eles • Os demais nós são autônomos e equivalentes Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Descentralizado • Não existe uma autoridade central, apenas computadores individuais que são capazes de se conectar e se comunicar entre si Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Descentralizado • Responsabilidades do peer, como cliente: – Enviar pedidos de serviço a outros peers; – Receber as respostas de pedidos de serviço feitos a outros peers; • Responsabilidades do peer, como servidor: – – – – Receber pedidos de serviço de outros peers; Processar os pedidos e executar o serviço requerido; Enviar a resposta com os resultados do serviço requerido; Propagar os pedidos de serviço a outros peers Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P – Parcialmente Centralizado • Alguns peers possuem funções mais importantes que os demais (SuperPeers). Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P – Parcialmente Centralizado Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P – Parcialmente Centralizado • Responsabilidades dos peers “normais” – Enviar pedidos de serviço aos SuperPeers; – Receber as respostas de pedidos de serviço feitas aos SuperPeers e encaminhadas aos peers de nível mais baixo; – Enviar a resposta com os resultados do serviço requerido; Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P – Parcialmente Centralizado • Responsabilidades dos SuperPeers – Receber pedidos de serviço dos peers “normais”; – Encaminhar os pedidos de serviço aos peers que possuem o recurso; – Manter um controle dos peers e recursos presentes no sistema. Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Híbridos • Os computadores são considerados clientes quando eles precisam de informação; • O cliente que precisa de informação irá contatar um servidor central para obter uma referência a um outro cliente onde a informação necessária está guardada; • O cliente que quer acessar a informação irá então contatar diretamente o computador que possui a informação. Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Híbridos Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Híbridos • Responsabilidades do Cliente: – Registrar no servidor seus serviços disponíveis; – Enviar ao servidor pedidos de busca por serviços e receber respostas contendo listas de peers com os serviços desejados; – Enviar a outros peers pedidos de serviço e receber as respostas desses pedidos; – Receber de outros peers pedidos de serviço, processar e executar o serviço requerido e enviar repostas a quem fez o pedido. Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Sistemas P2P - Híbridos • Responsabilidades do Servidor: – Registrar serviços disponíveis nos peers; – Receber pedidos de busca por serviços disponíveis, buscar por esses serviços e enviar respostas com as localizações dos serviços desejados. Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso • Duas funções a serem desempenhadas por um sistema P2P: – Busca de recursos ou serviços compartilhados – pode ter problemas de escalabilidade – Acesso a esses recursos ou serviços – a comunicação direta entre os peers faz o acesso aos recursos inerentemente escalável Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Inundação (Flooding) • Outra classificação utilizada é quanto a busca: centralizada, inundação e hash distribuída: – Busca centralizada • Na rede, existe um ponto central de buscas. Os nós, então, “perguntam” a este centralizador onde existe a informação desejada. Após esta busca, o centralizador informa o local, e a comunicação peer to peer é realizada. – Por ser centralizado, é passível de falhas – Desempenho baixo, devido a diversas consultas realizadas a um mesmo servidor – É de fácil implementação Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Diretório Central • • • Os peers se conectam à um servidor central onde publicam informações sobre o que estão disponibilizando O servidor central faz uma busca em seus registros pelo melhor peer que pode responder à requisição Problemas de escalabilidade Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Inundação (Flooding) • Outra classificação utilizada é quanto a busca: centralizada, inundação e hash distribuída: – Inundação • Os nós são totalmente independentes. A busca, então, é realizada somente com os nós vizinhos. • Mas por que inundação? – Pois os nós que não possuem os dados da busca, realizam outra busca nos seus nós vizinhos, e assim sucessivamente – Assim, traz a idéia de uma inundação de buscas pelos peers – Quando a informação for encontrada, o local desta informação é repassado ao originador da busca – Possui controle de TTL (time to live) da busca Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Inundação (Flooding) Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Inundação (Flooding) • • • • Não ocorre publicação dos recursos compartilhados Cada requisição é inundada (flooded) para os peers conectados diretamente Problema: Consome muita banda, escalabilidade SuperPeers podem ser usados para melhorar a eficiência Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Funções Hash • Outra classificação utilizada é quanto a busca: centralizada, inundação e hash distribuída: – Tabela Hash Distribuída (DHT) • Identificadores são atribuídos de acordo com uma determinada função hash. A idéia é mapear de maneira única todos os objetos e os nós. O hash é distribuído entre os peers. • As tabelas hash são utilizadas para separar o espaço de buscas. • Assim, quando uma consulta é realizada, a chave é consultada e a busca é repassada para o nós responsável, que saberá o caminho para o local da informação Redes de Computadores I – Prof. Mateus Raeder Arquiteturas Busca X Acesso – Funções Hash • • • Cada peer possui um ID aleatório único e conhece alguns outros peers Cada recurso é representado por um ID, calculado a partir de uma função Hash Cada peer busca pelo documento nos peers com IDs mais próximos aos do recurso compartilhado Redes de Computadores I – Prof. Mateus Raeder Problemas Redes de Computadores I – Prof. Mateus Raeder Problemas • Problemas que ainda não foram resolvidos no uso desse tipo de arquitetura: – Propriedade Intelectual – Custos de Banda de Rede – Segurança Redes de Computadores I – Prof. Mateus Raeder Problemas Propriedade Intelectual • A internet permite que os usuários distribuam material com direitos autorais de forma inapropriada, de forma rápida e em grande proporção. • Como o P2P ganhou fama? – Distribuição ilegal de arquivos Redes de Computadores I – Prof. Mateus Raeder Problemas Custos de Banda de Rede • Aplicações P2P normalmente consomem uma grande quantidade de banda da rede. • Muitos pacotes de broadcast poderiam influenciar na estabilidade da infraestrutura do provedor. Redes de Computadores I – Prof. Mateus Raeder Problemas Segurança • Aplicações Internet são bastante suscetíveis a falhas de segurança Redes de Computadores I – Prof. Mateus Raeder Aplicações Redes de Computadores I – Prof. Mateus Raeder Aplicações SETI@home (Search for Extraterrestrial Intelligence) • Possui como objetivo procurar por emissões de rádio de civilizações extraterrestres; • Computação Distribuída (processamento); • Os componentes principais são o servidor de dados e o próprio cliente; • Descentralização e Escalabilidade; • Performance; Redes de Computadores I – Prof. Mateus Raeder Aplicações SETI@home (Search for Extraterrestrial Intelligence) • Utiliza ciclos ociosos dos computadores para realizar suas computações • São computadores não-dedicados e dispersos mundialmente Redes de Computadores I – Prof. Mateus Raeder Aplicações Napster • Primeiro programa de compartilhamento de arquivos que usou P2P; • Pai dos atuais programas de compartilhamento de arquivos; • Arquitetura Híbrida; • Início dos problemas judiciais. Redes de Computadores I – Prof. Mateus Raeder Aplicações Napster – Funcionamento (1) • Lista de arquivos é enviada para o servidor Redes de Computadores I – Prof. Mateus Raeder Aplicações Napster – Funcionamento (2) • Cliente faz uma busca que é enviada ao servidor Redes de Computadores I – Prof. Mateus Raeder Aplicações Napster – Funcionamento (3) • Cliente dispara pings para os outros peers que aparentemente possuem o arquivo • Procura pela melhor taxa de transferência Redes de Computadores I – Prof. Mateus Raeder Aplicações Napster – Funcionamento (4) • Cliente recupera o arquivo Redes de Computadores I – Prof. Mateus Raeder Aplicações Gnutella • Primeiro programa de compartilhamento de arquivos completamente distribuído; • Busca realizada por flooding: – Requisição é enviada a todos os vizinhos; – Os vizinhos propagam a requisição; – Caso a máquina alcançada pela requisição possua o arquivo, pode responder diretamente ao solicitante; Redes de Computadores I – Prof. Mateus Raeder Aplicações Gnutella “Hino do grêmio.mp3” Redes de Computadores I – Prof. Mateus Raeder Aplicações Skype • • • • Programa de VoIP parcialmente centralizado Mesmos criadores do Kazaa; Recentemente comprado pelo Ebay; Capacidade de transpor Firewalls e NATs; Redes de Computadores I – Prof. Mateus Raeder Exercícios • Qual a diferença entre aplicações cliente/servidor e aplicações P2P? • Se existisse uma, qual seria a característica mais importante de um sistema P2P, aquela que o define. Por que tal característica é importante. Redes de Computadores I – Prof. Mateus Raeder