Sie sind auf Seite 1von 45

Disciplina: Sistemas para

Internet e Software Livre


Curso: Tecnologia de Informação

Prof. Michel Bernardo


1
Agenda

• Introdução

• Arquitetura Cliente/Servidor

• Arquitetura Peer to Peer (P2P)


Introdução

Conceitos – (Revisão)

Protocolos
Conjunto de regras que determinam como os dispositivos em uma rede
trocam informação. É um acordo entre as partes que se comunicam.

(As leis de trânsito também formam um protocolo)

Quando a comunicação é complexa, talvez seja preciso dividir a tarefa em


diferentes camadas, o que torna necessário o uso de um protocolo em cada
camada, ou um protocolo em camadas.
Introdução
Modelo de Redes TCP/IP
(utilizado na Internet)

Serviços de Rede para


Aplicações

Confiabilidade de conexão Fim


a Fim

Endereçamento e o melhor
trajeto

Acesso ao Meio

Transmissão Binária
• Fios, conectores, voltagem,
taxas de dados

4
Introdução

A camada de aplicação provê


serviços para o usuário. A
comunicação é fornecida por uma
conexão lógica, o que significa que
as duas camadas de aplicação
consideram a existência de uma
conexão direta imaginária por
meio da qual podem enviar e
receber mensagens.
Introdução
Fornecer serviços (1 de 2)
A Internet foi originalmente concebida para fornecer o serviço para
usuários ao redor do mundo. Como a camada de aplicação é a
única que fornece serviços para os usuários da Internet, ela
permite que novos protocolos de aplicação sejam adicionados à
Internet, o que vem ocorrendo desde sua criação. Quando a
Internet surgiu, havia poucos protocolos de aplicação disponíveis
aos usuários; hoje, somos incapazes de enumerar esses
protocolos porque novas soluções são constantemente
adicionadas.
Introdução
Fornecer serviços (2 de 2)
❑ Protocolos padronizados e não padronizados
❖ Protocolos padronizados da camada de aplicação
❖ Protocolos não padronizados da camada de aplicação
Introdução
Paradigmas da camada de aplicação (1 de 2)
Deve-se ficar claro que, para usar a Internet, precisamos de dois
programas que interagem entre si: cada um sendo executado em
um computador em algum lugar do mundo. Os dois programas
precisam enviar mensagens um ao outro por meio da infraestrutura
da Internet. No entanto, não discutimos qual relação deve existir
entre esses programas. Ambos os aplicativos devem ser capazes
de solicitar e prestar serviços ou cada um deve desempenhar
apenas uma dessas funções?
Introdução
Paradigmas da camada de aplicação (2 de 2)
❑ Paradigma tradicional: cliente-servidor
❑ Novo paradigma: peer-to-peer
❑ Paradigma misto
Introdução
Exemplo do paradigma cliente-servidor.
Introdução
Exemplo do paradigma peer-to-peer.
Arquitetura Cliente/Servidor

Em um paradigma, a comunicação na camada de aplicação se dá


entre dois aplicativos em execução denominados processos: um
cliente e um servidor. Um cliente é um programa em execução que
inicia a comunicação enviando um pedido (ou solicitação); um
servidor é outro programa que aguarda pedidos de clientes.
Arquitetura Cliente/Servidor

Interface de programação de aplicativos (1 de 2)


Uma linguagem de programação tem um conjunto de instruções
para operações matemáticas, outro para a manipulação de cadeias
de caracteres, mais um para acesso a dispositivos de
entrada/saída, e assim por diante. Se precisamos que um processo
seja capaz de se comunicar com outro, usaremos um novo conjunto
de instruções para dizer às quatro camadas mais baixas da pilha de
protocolos TCP/IP que abram a conexão, enviem os dados à outra
estação, recebam os dados dela e fechem a conexão. Um conjunto
de instruções desse tipo é normalmente chamado Interface de
Programação de Aplicativos (API – Application Programming
Interface).
Arquitetura Cliente/Servidor

Interface de programação de aplicativos (2 de 2)


❑ Sockets
❑ Endereços de socket
❑ Descobrindo endereços de socket
❖ Lado do servidor
❖ Lado do cliente
Arquitetura Cliente/Servidor

Posição da interface socket.


Arquitetura Cliente/Servidor
Sockets usados da mesma forma que outras entidades de entrada e
saída.
Arquitetura Cliente/Servidor

Uso de sockets na comunicação processo a processo.


Arquitetura Cliente/Servidor

APLICAÇÕES CLIENTE-SERVIDOR PADRONIZADAS


Desde a criação da Internet, vários programas foram desenvolvidos.
Para cada aplicação, também precisamos saber as opções
disponíveis. O estudo dessas aplicações e das formas como elas
fornecem diferentes serviços pode ajudar a criar aplicações
personalizadas no futuro.
Exemplos:
• www (http://)
• E-mail
• FTP (Protocolo de tranferência de arquivos)
• DNS (servidor de domínio de nome)
Arquitetura Cliente/Servidor

World Wide Web e HTTP (1 de 3)


Nesta seção, primeiramente apresentaremos a World Wide Web
(abreviada como WWW ou Web). Discutiremos, então, o Protocolo
de Transferência de Hipertexto (HTTP – HyperText Transfer
Protocol), o programa cliente-servidor da camada de aplicação de
modo geral usado no contexto da Web.
Arquitetura Cliente/Servidor

World Wide Web e HTTP (2 de 3)


❑ World Wide Web
❖ Arquitetura
❖ Localizador Uniforme de Recursos (URL)
❖ Documentos Web
❑ Protocolo de Transferência de Hipertexto (HTTP)
❖ Conexões não persistentes versus persistentes
❖ Formatos de mensagens
❖ Pedido condicional
❖ Cookies
Arquitetura Cliente/Servidor

World Wide Web e HTTP (3 de 3)


❑ Armazenamento temporário na Web: servidor proxy
❖ Localização do servidor proxy
❖ Atualização de cache
❑ Segurança do HTTP
Arquitetura Cliente/Servidor
Esquema para o recebimento de um arquivo e uma imagem de um
servidor
Arquitetura Cliente/Servidor

Elementos para o Serviço de e-mail


Arquitetura Cliente/Servidor

Servidores do Google

• Google foi fundada pela dupla Larry Page e Sergey Brin em 1998.

• Produtos criados: Gmail, o Google Search, o YouTube, o Google Chrome, o


Blogger, o Orkut (descontinuado), o Google Maps, o Google Tradutor, a linha
de dispositivos Nexus, o Google+ e o sistema operacional Android.

• Em 2010, existiam mais de 3 milhões de servidores do Google que eram


capazes de processar – naquela época – mais de 1 bilhão de solicitadores de
pesquisa e 20 petabytes de dados gerados por usuários todos os dias

Fonte: https://www.tecmundo.com.br/google/104430-conheca-estrutura-monstruosa-
utilizada-google-servidores.htm ;
https://www.google.com/about/datacenters/gallery/#/all
Acessados em 15/08/2018.

24
Arquitetura Cliente/Servidor
Fotos do Google

Dentro da sala de rede do campus, roteadores e switches permitem que


nossos centros de dados se comuniquem. Aqui, os cabos de fibra óptica
(bandejas amarelas próximas ao teto) ligam nossas unidades
funcionando em velocidades que podem ser 200 mil vezes mais rápidas
que uma conexão de Internet residencial comum.
25
Arquitetura Cliente/Servidor
Fotos do Google

Nosso data center em Council Bluffs (EUA) oferece 10.684 metros


quadrados de espaço. Aproveitamos ao máximo cada centímetro para
que você possa usar serviços como o YouTube e a Pesquisa da maneira
mais eficiente possível.
26
Arquitetura Cliente/Servidor
Limitações da arquitetura cliente/servidor
Arquitetura cliente/servidor: cara de criar e manter
• Custo estimado do centro de dados da Google: $600 MM
• $2,4 Bi em 2007 em novos centros de dados
• Cada centro usa de 50 a 100 MW de potência
Arquitetura Cliente/Servidor
Limitações da rede cliente/servidor

28
Arquitetura P2P (Par a Par)

Redes P2P (Par a Par)

Usuários da Internet que queiram compartilhar os seus recursos


se tornam peers e formam uma rede. Quando um peer na rede
tem um arquivo para compartilhar, ele o deixa disponível para o
restante dos peers. Um peer interessado pode se conectar ao
computador no qual o arquivo está armazenado e fazer o
download. Depois de um peer obter um arquivo, ele pode deixá-lo
disponível para outros peers para download. À medida que os
peers se juntam à rede e obtêm o arquivo, mais cópias passam a
ficar disponíveis para o grupo.
Arquitetura P2P (Par a Par)

30
Arquitetura P2P (Par a Par)

Características
• Rede de nós com capacidades/responsabilidades
simétricas
- Nós se comunicam diretamente
- Nós são tanto servidores como clientes: são “serventes”

• Intrinsecamente escalável
- Sistemas finais arbitrários fornecem e usam recursos
- Nenhum nó precisa ficar ligado o tempo todo

• Porém, administração pode ser complexa


- Nós entram e saem o tempo todo da rede
- Necessidade de localizar uns aos outros e o recursos distribuídos
pela rede

31
Arquitetura P2P (Par a Par)

Objetivos

32
Arquitetura P2P (Par a Par)

33
Arquitetura P2P (Par a Par)

Redes P2P: Classificação


❑ Redes centralizadas
❑ Redes descentralizadas
❖ Redes não estruturadas (ou puramente descentralizado)
❖ Redes estruturadas (ou parcialmente centralizado)

Tipo de busca: Classificação de redes P2P:


• Busca estruturada
• Busca não estruturada
• Busca fracamente estruturada
Arquitetura P2P (Par a Par)
Redes centralizadas.
Arquitetura P2P (Par a Par)

36
Arquitetura P2P (Par a Par)

37
Arquitetura P2P (Par a Par)

38
Arquitetura P2P (Par a Par)

39
Arquitetura P2P (Par a Par)

40
Arquitetura P2P (Par a Par)

Tabela de Hash Distribuída (1 de 2)


Uma Tabela de Hash Distribuída (DHT – Distributed Hash Table)
distribui dados (ou referências a dados) entre um conjunto de nós
de acordo com algumas regras predefinidas. Cada peer em uma
rede baseada em DHT se torna responsável por uma série de
dados. Para evitar a sobrecarga causada pelas inundações que
discutimos no caso das redes P2P não estruturadas, redes
baseadas em DHT permitem que cada peer tenha conhecimento
parcial sobre a rede toda. Este conhecimento pode ser utilizado
para rotear as consultas por itens até os nós responsáveis por
eles, usando procedimentos eficazes e escaláveis.
Arquitetura P2P (Par a Par)

Tabela de Hash Distribuída (2 de 2)


❑ Espaço de endereços:
❖ Calcular o hash do identificador do peer;
❖ Calcular o hash do identificador do objeto;
❖ Armazenar o objeto;
❖ Roteamento;
❖ Chegada e saída de nós.

Espaço de
endereços.
Arquitetura P2P (Par a Par)
Protocolos P2P
Chord
Existem vários protocolos que implementam sistemas de DHT.
Nesta seção, apresentaremos o protocolo Chord por sua
simplicidade e sua abordagem elegante para o roteamento de
consultas.
O Chord foi publicado por Stoica et al., em 2001
Pastry
Outro protocolo popular que segue o paradigma P2P é o Pastry,
concebido por Rowstron e Druschel. O Pastry utiliza uma DHT,
mas existem algumas diferenças fundamentais entre o Pastry e o
Chord no que diz respeito ao espaço de identificadores e ao
processo de roteamento.
Arquitetura P2P (Par a Par)
Protocolos P2P

BitTorrent

O BitTorrent é um protocolo P2P projetado por Bram Cohen para


compartilhar arquivos grandes entre grupos de peers. No entanto, o termo
compartilhar nesse contexto é diferente daquele usado em outros
protocolos de compartilhamento de arquivos. Em vez de um peer permitir
que outro peer faça o download do arquivo completo, um grupo de peers
participa do processo para propiciar a todos os peers do grupo uma cópia
do arquivo. O compartilhamento de arquivos é feito por meio de um
processo colaborativo chamado torrent.

❑ BitTorrent com um tracker

❑ BitTorrent sem tracker


44
Arquitetura P2P (Par a Par)

Exemplo de um Torrent

45

Das könnte Ihnen auch gefallen