Redes de Computadores - UFJF€¦ · P2P vs Cliente-Servidor Teoria Redes Complexas ......

Post on 23-Jun-2020

6 views 0 download

Transcript of Redes de Computadores - UFJF€¦ · P2P vs Cliente-Servidor Teoria Redes Complexas ......

Redes de Computadores

Camada de Aplicação

Camada de Aplicação:Objetivos

● Aspectos conceituais ● Arquiteturas● Comunicação● Alguns protocolos

● Modelos● P2P vs Cliente-Servidor ● Teoria Redes Complexas

● Email, Redes Sociais

Aplicação de Rede

● Executadas em sistemas finais● Processos no SO usando

infra-estrutura de comunicação● Comunicação através da rede

– Ex: software do servidor web que

se comunica com o browser

● Dispositivos do núcleo da rede

não executam

aplicações de ‘usuários’ Fonte: Kurose e Ross, Computer Networking: A Top-Down Approach

Arquitetura das Aplicações

● Cliente-Servidor

● Peer-to-peer

cscie12.dce.harvard.edu

indyarocks.com

Cliente-Servidor● Cliente

● iniciativa da comunicação

com servidor● pode se conectar

intermitentemente● pode ter endereço dinâmico● sem comunicação direta

com outros clientes Fonte: Kurose e Ross, Computer Networking: A Top-Down Approach

Cliente-Servidor● Servidor

● sempre ativo aguardando

conexões● fornece serviços solicitados

pelo cliente● endereço permanente● conjunto de servidores:

● Server farm Fonte: Kurose e Ross, Computer Networking: A Top-Down Approach

Comunicação entre processos

● Processo: programas em execução● Comunicação entre dois processos

no mesmo sistema final:● comunicação interprocessos

(definido pelo SO)● em diferentes sistemas finais:

troca de mensagens via redeFoco Foco do do

cursocurso

Comunicação entre processos

Processo Cliente: processo que inicia a comunicaçãoProcesso Servidor: processo que espera para ser contactado

Cliente-Servidor P2P

Aplicações processo cliente + processo servidor

Comunicação entre processos● Tanto cliente quanto servidor precisam

falar a mesma “linguagem”● Protocolo de aplicação: conjunto de regras

sintáticas e semânticas que governam a troca de mensagens

● domínio público● definidos por RFCs para interoperabilidade

exs: HTTP, SMTP, FTP, ...● proprietátios

● exs: skype, KaZaA

(Protocolos Proprietários)● Como entender?

● Impacto na rede!● Engenharia reversa!

Dario Bonfiglio, Marco Mellia, Michela Meo, Dario Rossi, Paolo Tofanelli, Revealing skype traffic: when randomness plays with you, ACM SIGCOMM, Kyoto, JP, ISBN: 978-1-59593-71, 27 August 2007

Delia Ciullo, Marco Mellia, Michela Meo, Emilio Leonardi, Understanding P2P-TV Systems Through Real Measurements, IEEE GLOBECOM 2008, New Orleans, FL, ISBN: 978-1-4244-2324-8, 30 November 2008

Dario Bonfiglio, Marco Mellia, Michela Meo, Dario Rossi, Detailed Analysis of Skype Traffic, IEEE Transactions on Multimedia "1", Vol.11, No.1, pp.117-127, ISSN: 1520-9210, January 2009

Delia Ciullo, Antonieta Garcia da Rocha Neta, Akos Horvath, Emilio Leonardi, Marco Mellia, Dario Rossi, Miklos Telek, Paolo Veglia, Network Awareness of P2P Live Streaming Applications: a Measurement Study, IEEE Transanctions on Multimedia, Vol.12, No.1, pp.54-63, January 2010

Sockets

Processo envia / recebe mensagens para / de seu socket

Fonte: Kurose e Ross, Computer Networking: A Top-Down Approach

Socket como uma “porta” entre camada de aplicação e transporteAPI: escolha do protocolo de transporte e passagem de parâmetros

Endereçamento de processos● Para troca de mensagens, processo deve

estar associado a um identificador● Endereço (IP) do hospedeiro não basta?● Além do endereço IP do hospedeiro,

número da porta associadaao processo no hospedeiro

Portas● Portas “bem conhecidas” (well-known ports)

convencionalmente associadas a serviços comuns - IANA● Servidor http: 80● Servidor smtp: 25● ...

● Solicitadas pelos processos, atribuídas pelo SO

De que serviços uma aplicação necessita?

● Depende da natureza da aplicação!● Tempo real?

● Confidencialidade?

● ???

contextoseo.com

veraoverdeorg.blogspot.com

De que serviços uma aplicação necessita?

Perda de pacotesAlgumas apl. (e.g., audio) podem tolerar alguma perdaOutras apl. (e.g., ftp, telnet) requerem 100% de transferência confiável dos dados

AtrasoAlgumas apl. (e.g., VoIP, jogos interativos) requerem baixo atraso para serem “eficazes”

VazãoAlgumas apl. (e.g., multimedia) requerem quantidade mínima de vazão para serem “eficazes”Outras apl. (“apl. elásticas”) utilizam a vazão que conseguem

SegurançaIntegridade dos dados

Perda de pacotes

• Congestionamento na rede

• Erros de transmissão

Atraso

• Fatores de atraso

• Atraso de fila

• Atraso de processamento

• Atraso de acesso ao meio

• Atraso de transmissão

• Atraso de propragação

Jitter

• Decorrente da variação do atraso entre pacotes consecutivos

• Afeta sincronia e interatividade

• ex: aúdio e vídeo

Vazão

• Capacidade efetiva de transmissão da aplicação

• “throughput” - vazão de dados

• “goodput” - vazão efetiva de dados (sem retransmissões)

g1.globo.com

Requisições que as aplicações fazem a camada de Transporte

Application

file transfere-mail

Web documentsreal-time audio/video

stored audio/videointeractive gamesinstant messaging

Data loss

no lossno lossno lossloss-tolerant

loss-tolerantloss-tolerantno loss

Throughput

elasticelasticelasticaudio: 5kbps-1Mbpsvideo:10kbps-5Mbpssame as above few kbps upelastic

Time Sensitive

nononoyes, 100’s msec

yes, few secsyes, 100’s msecyes and no

Peer-to-peer (P2P)

Compartilhamento de recursos e serviços

computacionais diretamente entre sistemas

• Software executado em cada elemento (peer) é equivalente em funcionalidade

• Cada participante age como cliente e servidor

ao mesmo tempo (servent)

P2P• Cada participante “paga” a sua participação fornecendo

acesso a (alguns de) seus recursos

• exceções são comuns: freeriders

• como controlar? incentivo / reputação

• Sistemas P2P têm recebido grande atenção:

• usuários

• empresas

• meios acadêmicos

P2P “puro”: Características

• Sem coordenação central

• Sem base de dados central

• Sem ponto único de falha ou gargalo

• Nenhum peer tem visão global do sistema

• Todos os dados e serviços são acessíveis de qualquer peer

• Peers são autônomos

• Peers e conexões não são confiáveis

P2P: Vantagens

Escalabilidade

• Não há gargalo para crescimento

Robustez

• Não há ponto de falha único

Flexibilidade

• Auto-configuração / configuração dinâmica

P2P: Napster

P2P: Gnutella

P2P: Super-nós

Aplicações P2P

• Muitas aplicações recentes

• Compartilhamento de arquivos

• IM

• VoIP

• Video (Internet TV)

• ...

P2P: cenário recente

Fonte: The absolute majority of all Internet traffic is p2p file-sharing, the liquidculture notebook, March

2008

P2P: cenário recente

Fonte: The absolute majority of all Internet traffic is p2p file-sharing, the liquidculture notebook, March 2008

Distribuição de Arquivos: Servidor- Cliente vs P2PQuestão : Quanto tempo é necessário para distribuir um arquivo a partir de um servidor para N peers?

us

u2d1 d2

u1

uN

dN

Server

Network (with abundant bandwidth)

File, size F

us: banda de upload do servidorui: banda de upload do peer idi: banda de download do peer i

Tempo de distribuição de um arquivo: servidor-cliente

us

u2d1 d2u1

uN

dN

Server

Network (with abundant bandwidth)

FServidor envia sequencialmente N cópias:

Tempo NF/us

cliente i leva F/di

para download

Aumenta linearmente com N (para N grande)

= dcs = max { NF/us, F/min(di) }i

Tempo para distribuir o arquivo F para N clientes

usando cliente/servidor

Tempo de distribuição de um arquivo: P2P

us

u2d1 d2u1

uN

dN

Server

Network (with abundant bandwidth)

F

Servidor envia uma cópia: F/us

cliente i demora F/di

para fazer o downloadNF bits devem ser disseminados (agregado)

Taxa de upload mais rápida: us + Σui

dP2P = max { F/us, F/min(di) , NF/(us + Σui) }i

0

0.5

1

1.5

2

2.5

3

3.5

0 5 10 15 20 25 30 35

N

Min

imum

Dis

trib

utio

n T

ime P2P

Client-Server

Servidor-cliente vs. P2P: exemploTaxa de upload do Cliente = u, F/u = 1 hour, us = 10u, dmin ≥ us

Cloud Computing• Uso e acesso a diferentes

recursos computacionais

• Aplicações cliente/servidor

• Usuários acessam os recursos através de computadores, netbooks,smartphones

• Aplicações são gerenciadas pelo “cloud server”

• Todo o processamento e armazenamento é mantido pelo “cloud server”