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
Download

Slide 1 - Unisinos