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”