Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
RC - SL02 - Camada de Aplicacao
1. Universidade Federal da Paraíba
Centro de Ciências Aplicadas e Educação
Departamento de Ciências Exatas
Redes de Computadores:
Camada de Aplicação
Prof. Rafael Marrocos Magalhães
rafael@dce.ufpb.br
28 de Fevereiro de 2012 UFPB - CCAE - DCE
Esta apresentação contém partes, ou mesmo slides inteiros, da apresentação original disponibilizada por J.F Kurose e K.W. Ross, com permissão para
utilização como material de apoio instrucional. E, conforme solicitação do original, incluí aqui a nota de direito autoral.
sexta-feira, 2 de março de 12 1
2. Motivação
Como usamos a Internet?
sexta-feira, 2 de março de 12 2
3. Sumário
Aplicações
Princípios de aplicações em redes
A Web e o Protocolo HTTP
FTP - transferência de arquivos
Correio Eletrônico (STMP, POP3, IMAP)
DNS - Nomes X IPs
Aplicações P2P
sexta-feira, 2 de março de 12 3
5. Algumas aplicações
Outras aplicações
de rede
! e-mail ! redes sociais
! web ! voice over IP
! mensagem instantânea ! vídeoconferência em
! login remoto tempo real
! compartilhamento de ! computação em grade
arquivos P2P
! jogos em rede
multiusuários
! clipes de vídeo
armazenados em fluxo
contínuo
sexta-feira, 2 de março de 12 5
6. Objetivos
Aspectos conceituais sobre protocolos de
aplicação
modelos de serviço de transporte
paradigma cliente-servidor
paradigma peer-to-peer
Exemplos na prática
HTTP, FTP, STMP/POP3/IMAP, DNS, etc...
sexta-feira, 2 de março de 12 6
7. Criar Aplicações!?
Criando uma aplicação
Criando uma aplicação de rede
Escreva programas que
aplicação
de rede
transporte
rede
" executem em (diferentes) enlace
física
sistemas finais
" se comuniquem pela rede
aplicação
Escreva programas que " p. e., software de servidor Web
se comunica com software de
transport
rede
" executem em é(diferentes)navegador Web
Não preciso escrever software
enlace
física
sistemas finais dispositivos do núcleo da
para aplicação
rede transporte
se comuniquemdispositivos do núcleo da rede
pela rede
rede
enlace
" " física
não executam aplicações do application
p. e., software usuárioservidor Web
de
transport
" network
data link
" as aplicações nos sistemas finais
physical
se comunica com software de
permitem rápido
navegador Web desenvolvimento e propagação
Não é preciso escrever software
para dispositivos do núcleo da aplicação
rede transporte
rede
enlace
" dispositivos do núcleo da rede
sexta-feira, 2 de março de 12 física 7
8. Escreva programas que transporte
rede
" executem em (diferentes) enlace
Criar Aplicações!?
física
sistemas finais
" se comuniquem pela rede
Criando uma aplicação
" p. e., software de servidor Web
de rede
se comunica comprogramas que de
Escreva
software aplicação
transporte
navegador Web " executem em (diferentes)
rede
enlace
física
sistemas finais
Não é preciso escrever software
" se comuniquem pela rede
para dispositivos do núcleo da
" p. e., software de servidor Web
se comunica com software de aplicação
rede navegador Web transporte
rede
Não é preciso escrever software enlace
" dispositivos do núcleo da rede da
para dispositivos do núcleo aplicação física
rede transporte
não executam" aplicaçõesnúcleo da rede
dispositivos do
do rede
enlace
física
usuário não executam aplicações do application
transport
usuário network
as aplicações " as aplicações nos sistemas finais
nos sistemas finais
data link
" physical
permitem rápido permitem rápido
desenvolvimento e propagação
desenvolvimento e propagação
sexta-feira, 2 de março de 12 8
9. Arquitetura de
Aplicações
Cliente-servidor
Incluindo centros de dados/cloud
computing
Peer-to-peer (P2P)
Híbrida cliente-servidor/p2p
sexta-feira, 2 de março de 12 9
10. Arquitetura cliente-ser
cliente-servidor
ser
rvidor
servidor:
rvidor:
" hospedeiro sempre ligado
" endereço IP permanente
clie
" server farms por expansão
entes:
" comunicam-se com o servidor cliente/servidor
" podem estar conectados
intermitentemente
" podem ter endereços IP
dinâmicos
" não se comunicam diretamente
entre si
sexta-feira, 2 de março de 12 10
11. ervidor
Arquitetura cliente-se
cliente-servidor
ervidor:
" hospedeiro sempre ligado
se
" endereço IP permanente
" server farms por expansão
ientes:cliente:
comunicam-se com o servidor
"
cl
" podem estar conectados
intermitentemente
" podem ter endereços IP cliente/servidor
dinâmicos
" não se comunicam diretamente
entre si
sexta-feira, 2 de março de 12 11
12. Centros de dados da Google
! custo estimado do centro de dados: $600M
! Google gastou $2,4B em 2007 em novos centros de
dados
! cada centro de dados usa de 50 a 100 megawatts
de potência
sexta-feira, 2 de março de 12 12
13. rquitetura P2P pura
Arquitetura P2P pura
P2P pura
enhum servidor sempre
! nenhum servidor sempre
gado ligado
stemas finais arbitrários
! sistemas finais arbitrários
e comunicam diretamente
se comunicam diretamente
! pares são conectados
ares são conectados
termitentemente e e
intermitentemente
mudam endereços IP
udam endereços IP peer-peer
peer-peer
altamente escalonável,
altamente escalável, mas
mente escalável, mas
mas difícil de administrar
difícil de administrar
fícil de administrar
sexta-feira, 2 de março de 12 13
14. Híbrido de cliente-servidor
Híbrido: cliente-servidor-P2P
Híbrido de cliente-servidor
e P2P
e P2P
Skype
" aplicação P2P voice-over-IP P2P
Skype
" aplicação centralizado: achando endereço da parte
" servidor P2P voice-over-IP P2P
remota:
" servidor centralizado: achando endereço da parte
" remota: cliente-cliente: direta (não através de
conexão
servidor)
" conexão cliente-cliente: direta (não através de
Mensagem instantânea
servidor)
Mensagem instantâneadois usuários é P2P
" bate-papo entre
serviço centralizado: detecção/localização da
" bate-papo entre dois usuários é P2P
presença do cliente
" serviço centralizado: detecção/localização da
presença do cliente seu endereço IP com servidor
• usuário registra
central quando entra on-line
• usuário registra seu endereço IP com servidor
• central quando entra on-line
usuário contacta servidor central para descobrir
endereços IP dos parceiros
• usuário contacta servidor central para descobrir
endereços IP dos parceiros
sexta-feira, 2 de março de 12 14
15. Processos e comunicação
Processos se comunicando
ocessos se comunicando
processo: programa
rodando dentro de um
processo cliente:
processo que inicia a
hospedeiro comunicação
nicandomesmo hospedeiro,
! no processo servidor:
processo cliente:
cesso: programa se
dois processos processo que espera
odando dentro de um
comunicam usando a
processo cliente: para ser contactado inicia
processo que a
comunicação entre
ospedeiro (definida pelo
processos que inicia a
processo comunicação
comunicação
o mesmo hospedeiro,
SO). ! Nota: aplicações com
processo servidor:
! processo servidor:
ois processos se
processos em arquiteturas P2P têm
processo que espera
hospedeiros diferentes processos clientes & espera
processo que
omunicam ser contactado
para usando a
se comunicam trocando para ser contactado
processos servidores
omunicação entre
lo
mensagens
rocessos (definida pelo
! Nota: aplicações com
O). arquiteturas P2P têm ! Nota: aplicações com
s processos clientes &
rocessos em servidores
o processos
arquiteturas P2P têm
ospedeiros diferentes processos clientes &
e comunicam trocando processos servidores
sexta-feira, 2 de março de 12 15
16. Sockets
! processo envia/recebe
mensagens de/para seu
Sockets
hospedeiro
ou servidor
hospedeiro
ou servidor
Sockets
socket controlado pelo
! socket semelhante à porta
desenvolvedor
processo da aplicação processo
" processo enviando empurra
! processo envia/recebe
mensagem pela porta
hospedeiro
socket
ou servidor
hospedeiro
socket
ou servidor
mensagens de/para seu
" processo enviando conta com
TCP com
Internet
TCP com
socket
buffers, buffers,
infraestrutura de variáveis controlado pelo variáveis
transporte no outro lado da
! socket que leva a mensagem
porta,
semelhante à porta processo
desenvolvedor
da aplicação processo
" processo enviando empurra
ao socket no processo controlado
socket
socket
mensagem pela porta
receptor pelo OS
TCP com TCP com
" processo enviando conta com
! API: (1) escolha do protocolo de transporte; (2)
buffers, Internet
buffers,
infraestrutura de variáveis
capacidade de consertar alguns parâmetros (muito
transporte no outro lado da
variáveis
mais sobre isso adiante)
porta, que leva a mensagem
ao socket no processo controlado
pelo OS
receptor
! API: (1) escolha do protocolo de transporte; (2)
sexta-feira, 2 de março de 12 16
17. Endereço X Processo
Endereçando processos
Endereçando processos
! para receber mensagens,
" R: Não, muitos processos
processo deve ter
identificador estar rodando no mesmo
para receber mensagens, hospedeiro
! dispositivo hospedeiro tem R: Não, muitos processos podem
"
processo deve ter ! Identificador inclui endereç
endereço IP exclusivo de 32 estar rodando no mesmo
identificador números de porta associados
bits hospedeiro
dispositivo hospedeiro tem processo no hospedeiro.
?
! exercício: use ipconfig Identificador inclui endereço IP e
! do
endereço IP exclusivo de 32
bits comando prompt para obter seu de porta associados ao port
números Exemplos de número de
!
" servidor HTTP: 80
endereço IP (Windows) processo no hospedeiro.
exercício: use ipconfig do
o endereço IP! Exemplos de servidorde porta:
! P: Basta para obter seu do
comando prompt
" número de correio: 25
endereço IP (Windows) que o processo é
hospedeiro em " servidor HTTP: 80
executado para identificar oservidor de correio: 25
P: Basta o endereço IP do "
processo?
hospedeiro em que o processo é
executado para identificar o
sexta-feira, 2 de março de 12 17
18. Definições de protocolo
Definição de Protocolo
da camada de aplicação
Definições de protocolo
da camada de aplicação
! tipos de mensagens
1 protocolos de domínio
trocadas,
! tipos de mensagens público: domínio
protocolos de
" p. e., requisição, resposta
trocadas, ! definidos em RFCs
2 sintaxe da mensagem:
! público:
p. e., requisição, resposta
" ! provê interoperabilidade
" que campos nas mensagens & ! definidos em RFCs
! sintaxe da os campos são
como mensagem: ! p. e., HTTP, SMTP,
! provê interoperabilidade
" que campos nas mensagens &
delineados BitTorrent
como os campos são ! p. e., HTTP, SMTP,
3 semântica da mensagem
!
delineados
protocolos proprietários:
BitTorrent
" significado da informação
! semântica da mensagem ! p. e., Skype, ppstream
protocolos proprietários:
nos campos
" significado da informação
4 regras de quando e como
! ! p. e., Skype, ppstream
nos campos
processos enviam &
! regras de quando e como
respondem a mensagens
processos enviam &
respondem a mensagens
sexta-feira, 2 de março de 12 18
19. Quais requisitos sua aplicação exige?
1. perda de dados?
2. temporização?
3. vazão (banda)?
4. segurança?
sexta-feira, 2 de março de 12 19
20. Características de de transporte
Que serviço transporte
uma aplicação precisa?
perda de dados vazão
! algumas apls. (p. e., áudio) ! algumas
podem tolerar alguma perda multimí
! outras apls. (p. e., mínimo
transferência de arquivos, serem “
telnet) exigem
! outras
transferência de dados
elástica
100% confiável
qualque
temporização receber
! algumas apls. (p. e., segurança
telefonia na Internet
jogos interativos) ! criptog
sexta-feira, 2 de março de 12 de dado
20
21. ! outras apls. (p. e., míni
Características de de arquivos,
transferência transporte sere
telnet) exigem
! outr
transferência de dados
elás
100% confiável
qual
temporização rece
! algumas apls. (p. e., segura
telefonia na Internet
jogos interativos) ! crip
exigem pouco atraso de d
para serem “eficazes”
sexta-feira, 2 de março de 12 21
22. Características de transporte
ço de transporte
ção precisa?
s vazão
s. (p. e., áudio) ! algumas apls. (p. e.,
ar alguma perda multimídia) exigem um
(p. e., mínimo de vazão para
ia de arquivos, serem “eficazes”
em
! outras apls. (“apls.
ia de dados
elásticas”) utilizam
vel
qualquer vazão que
receberem
s. (p. e., segurança
Internet
tivos) ! criptografia, integridade
sexta-feira, 2 de março de 12 22
23. rquivos, serem “eficazes”
! outras apls. (“apls.
dados Características de transporte
elásticas”) utilizam
qualquer vazão que
receberem
, segurança
net
! criptografia, integridade
so de dados,…
zes”
sexta-feira, 2 de março de 12 23
24. Características de transporte
Requisitos de serviço de
transporte das aplicações
comuns
Aplicação Perda de dados Vazão Sensível ao tempo
transf. arquivos sem perda elástica não
e-mail sem perda elástica não
documentos Web sem perda elástica não
áudio/vídeo tolerante a perda áudio: 5 kbps-1 Mbps sim, centenas de ms
tempo real vídeo:10 kbps-5 Mbps
áudio/vídeo tolerante a perda o mesmo que antes sim, alguns seg
armazenado
jogos interativos tolerante a perda poucos kbps ou mais sim, centenas de ms
Mensagem sem perda elástica sim e não
instantânea
sexta-feira, 2 de março de 12 24
25. Dois tipos de serviços
Serviços de protocolos de
Serviços de protocolos de
transporte da Internet
da Internet
transporte
serviço TCP:
serviço TCP:
serviço
serviço UDP: UDP:
serviço TCP: serviço UDP:
! orientado a conexão:
! orientado a conexão: ! ! transferência de dados
transferência de dados
preparação exigida entre
preparação exigida entre não confiável entre
não confiável entre
processos cliente ee servidor
processos cliente servidor processo emissor e e
processo emissor
transporteconfiável entre
confiável entre receptor
receptor
!
! transporte
processo emissor ee receptor ! ! não oferece: preparação
processo emissor receptor não oferece: preparação
! controle de fluxo: emissor não
controle de fluxo: emissor não dada conexão,
conexão,
sobrecarrega receptor
sobrecarrega receptor confiabilidade, controle
confiabilidade, controle
dede fluxo, controle de
fluxo, controle de
! controle de congestionamento:
controle de congestionamento: congest., temporização,
regula emissor quando a a rede
rede congest., temporização,
regula emissor quando garantia de de vazão ou
está sobrecarregada garantia vazão ou
está sobrecarregada segurança
segurança
! não oferece: temporização,
não oferece: temporização,
! P: P: por que se incomodar? Por
por que se incomodar? Por
garantias mínimas de vazão,
garantias mínimas de vazão, que existe umum UDP?
que existe UDP?
segurança
segurança
sexta-feira, 2 de março de 12 25
26. Características de transporte
plicações da Internet: aplicação,
rotocolos de transporte
Protocolo da camada Protocolo de
Aplicação de aplicação transporte básico
e-mail SMTP [RFC 2821] TCP
acesso remoto Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
transf. arquivos FTP [RFC 959] TCP
multimídia com HTTP (p. e., Youtube), TCP ou UDP
fluxo contínuo RTP [RFC 1889]
telefonia da SIP, RTP, proprietário
Internet (p. e., Skype) normalmente UDP
sexta-feira, 2 de março de 12 26
27. A Web e o HTTP
sexta-feira, 2 de março de 12 27
28. Inovação
1870 Telefone
1920 Rádio/TV
1990 WEB
por demanda, não à mercê da
operadora!
várias interfaces
sexta-feira, 2 de março de 12 28
29. Web e HTTP
Conceitos
primeiro, algum jargão
! página Web consiste em objetos
! objeto pode ser arquivo HTML, imagem JPEG,
applet Java, arquivo de áudio,…
! página Web consiste em arquivo HTML básico que
inclui vários objetos referenciados
! cada objeto é endereçável por um URL
! exemplo de URL:
www.someschool.edu/someDept/pic.gif
nome do hospedeiro nome do caminho
sexta-feira, 2 de março de 12 29
30. Funcionamento
Visão geral do HTTP
Visão geral do HTTP
HTTP: HyperText
HTTP: HyperText
Transfer Protocol
Transfer Protocol
! protocolo da camada de PC rodando
! protocolo da da Web de
aplicação camada PC rodando
Explorer
aplicação da Web
! modelo cliente/servidor
Explorer
! modelo cliente: navegador que
" cliente/servidor
requisita, recebe,
" cliente: navegador que Servidor
“exibe” objetos Web rodando
requisita, recebe, Servid
servidor Web
" servidor: servidor Web
“exibe” objetos em
envia objetos Web
Apache rodan
servidor
" servidor: servidor Web
resposta a requisições
Mac rodando Apach
envia objetos em Navigator
resposta a requisições
Mac rodando
Navigator
sexta-feira, 2 de março de 12 30
31. Funcionamento
Usa Conexão TCP!
usa TCP: HTTP é “sem estado”
! servidor não guarda
! cliente inicia conexão TCP informações sobre
(cria socket) com servidor, requisições passadas do
cliente
porta 80
HTTP é “sem estado”
HTTP é “sem estado”
a TCP:
! servidor aceita conexão TCP
aparte
do cliente ! servidor não guarda
Protocolos que mantêm
cliente mensagens HTTP (doTCP
! inicia conexão “estado” são complexos! sobre
informações
(cria socket) com servidor,
protocolo da camada de requisições passadas do
! história passada (estado)
aplicação) trocadas entre cliente
porta 80navegador (cliente HTTP) e
deve ser mantida
! se servidor/cliente falhar,
servidor aceita conexão TCP
servidor Web (servidor
HTTP) suas visões do “estado” aparte
do cliente podem ser incoerentes,
Protocolos que mantêm
! conexão TCP fechada
devem ser reconciliadas
mensagens HTTP (do “estado” são complexos!
protocolo da camada de ! história passada (estado)
aplicação) trocadas entre
sexta-feira, 2 de março de 12 31
32. Tipos de HTTP
Conexões HTTP
HTTP não persistente HTTP persistente
! no máximo um objeto é ! múltiplos objetos
enviado por uma podem ser enviados
conexão TCP. por uma única conexão
TCP entre cliente e
servidor.
sexta-feira, 2 de março de 12 32
33. HTTP não persistente
HTTP não persistente
Suponha que o usuário digite o URL
(contém texto,
www.someSchool.edu/someDepartment/home.index
referências a 10
imagens JPEG)
1a. Cliente HTTP inicia conexão TCP
com servidor HTTP (processo) em
1b. Servidor HTTP no hospedeiro
www.someSchool.edu na porta 80.
www.someSchool.edu
esperando conexão TCP na
porta 80. “aceita” conexão,
notificando cliente
2. Cliente HTTP envia mensagem
de requisição HTTP (contendo
URL) pelo socket de conexão 3. Servidor HTTP recebe mensagem
TCP. Mensagem indica que de requisição, forma mensagem de
cliente deseja o objeto resposta contendo objeto
someDepartment/home.index. requisitado e envia mensagem
para seu socket
tempo
sexta-feira, 2 de março de 12 33
34. HTTP não persistente
4. Servidor HTTP fecha conexão
TCP.
5. Cliente HTTP recebe
mensagem de resposta
contendo arquivo html, exibe
html. Analisando arquivo html,
acha 10 objetos JPEG
referenciados.
tempo 6. Etapas 1-5 repetidas para cada
um dos 10 objetos JPEG.
sexta-feira, 2 de março de 12 34
35. HTTP não persistente
HTTP não persistente:
Tempo de de resposta
tempo resposta
definição de RTT: tempo para
um pequeno pacote trafegar
do cliente ao servidor e
retornar. inicia
conexão TCP
tempo de resposta: RTT
! um RTT para iniciar a conexão requisita
arquivo
TCP tempo para
RTT
transmitir
! um RTT para a requisição arquivo
HTTP e primeiros bytes da arquivo
recebido
resposta HTTP retornarem
! tempo de transmissão de tempo tempo
arquivo
total = 2RTT + tempo de transmissão
sexta-feira, 2 de março de 12 35
36. HTTP persistente
HTTP persistente
problemas do HTTP não HTTP persistente:
persistente: ! servidor deixa a conexão
! requer 2 RTTs por objeto aberta depois de enviar a
! overhead do SO para cada resposta
conexão TCP ! mensagens HTTP seguintes
! navegadores geralmente entre cliente/servidor
abrem conexões TCP enviadas pela conexão aberta
paralelas para buscar ! cliente envia requisições assim
objetos referenciados que encontra um objeto
referenciado
! no mínimo um RTT para todos
os objetos referenciados
sexta-feira, 2 de março de 12 36
37. Mensagem de requisição
Mensagens do HTTP
HTTP
! dois tipos de mensagens HTTP: requisição, resposta
! mensagem de requisição HTTP:
" ASCII (formato de texto legível)
linha de requisição
(comandos GET, GET /somedir/page.html HTTP/1.1
POST, HEAD) Host: www.someschool.edu
User-agent: Mozilla/4.0
linhas de Connection: close
cabeçalho Accept-language:fr
carriage return,
line feed (carriage return, line feed extras)
indica final
da mensagem
sexta-feira, 2 de março de 12 37
38. Mensagem de requisição
Mensagens do HTTP
HTTP: formato geral
Formato geral de mensagem HTTP
sexta-feira, 2 de março de 12 38
39. Upload de entrada (form)
Upload da entrada do
formulário
método POST:
! página Web
geralmente inclui método do URL:
entrada do formulário ! usa o método GET
! entrada é enviada ao ! entrada é enviada no
servidor no corpo da campo de URL da linha
entidade de requisição:
www.umsite.com/buscaanimal?macacos&banana
sexta-feira, 2 de março de 12 39
41. Tipos de métodoTipos de métodos
HTTP/1.0 HTTP/1.1
! GET ! GET, POST, HEAD
! POST ! PUT
! HEAD " envia arquivo no corpo da
" pede ao servidor para entidade ao caminho
deixar objeto especificado no campo de
requisitado fora da URL
resposta ! DELETE
" exclui arquivo especificado
no campo de URL
sexta-feira, 2 de março de 12 41
42. Mensagem de reposta
Mensagem de resposta HTTP
linha de status
(protocolo
código de estado HTTP/1.1 200 OK
frase de estado) Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
linhas de Server: Apache/1.3.0 (Unix)
cabeçalho Last-Modified: Mon, 22 Jun 1998 …...
Content-Length: 6821
Content-Type: text/html
dados, p. e., dados dados dados dados dados ...
arquivo HTML
requisitado
sexta-feira, 2 de março de 12 42
43. Códigos de estado
Códigos de estado da
resposta HTTP
primeira linha da mensagem de resposta servidor->cliente
alguns exemplos de código:
200 OK
" requisição bem-sucedida, objeto requisitado mais adiante
301 Moved Permanently
" objeto requisitado movido, novo local especificado mais
adiante na mensagem (Location:)
400 Bad Request
" mensagem de requisição não entendida pelo servidor
404 Not Found
" documento requisitado não localizado neste servidor
505 HTTP Version Not Supported
sexta-feira, 2 de março de 12 43
45. Estado usuário-servidor: cookies
cookies
Muitos sites importantes Exemplo:
usam cookies
! Susana sempre acessa a
Quatro componentes:
1) linha de cabeçalho de
Internet pelo PC
cookie da mensagem de ! visita um site de comércio
resposta HTTP
eletrônico pela primeira vez
2) linha de cabeçalho de
cookie na mensagem de ! quando as primeiras
requisição HTTP requisições HTTP chegam ao
3) arquivo de cookie na site, este cria:
máquina do usuário,
controlado pelo " ID exclusivo
navegador do usuário " entrada no banco de dados de
4) banco de dados de apoio apoio para o ID
no site Web
sexta-feira, 2 de março de 12 45
46. cookies
cliente
cliente servidor
servidor
ebay 8734
requisição http normal servidor Amazon
arq. de cookie resposta http normal cria ID 1678
Set-cookie: 1678 para usuário cria
entrada
ebay 8734
amazon 1678
requisição http normal
cookie: 1678 ação acessa
específica
uma semana depois: resposta http normal do cookie banco de
dados de
acessa
apoio
ebay 8734 requisição http normal
amazon 1678 cookie: 1678 ação
específica
resposta http normal do cookie
sexta-feira, 2 de março de 12 46
47. cookies
cookies podem ter: ter:
O O que os cookies podem ter:
que os cookies podem aparte
aparte
! autorização Cookies e privacidade:
! autorização
O que os cookies podem ter: Cookies e privacidade:
aparte
! carrinhos de compras ! cookies permitem que
! autorização de compras
! carrinhos Cookies e privacidade: que
os ! cookies permitem
sites descubram
! recomendações
! recomendações
! carrinhos de compras muitoos sites descubram
! cookies permitem que
sobre você
! estado da sessão do muito sobre você
! estado da sessão do
! recomendações Web) ! você sites fornecer
os pode descubram
usuário (e-mail da
muitoe-mail aos sites
! e sobre você
nome você pode fornecer
! estado da sessão do Web)
usuário (e-mail da
Como manter o “estado”:
! você pode fornecer sites
nome e e-mail aos
! usuário (e-mail da Web)
Como manter do“estado”: mantêm
extremidades o protocolo: nome e e-mail aos sites
mantendo o emissor/receptor por
! manter estado:
estado no o “estado”:
Comoextremidades do protocolo: mantêm
múltiplas transações
estado no emissor/receptor por
! extremidades do protocolo: mantêm
cookies: mensagens HTTP
múltiplas transações
! estado no emissor/receptor por
transportam estado
múltiplas transações HTTP
! cookies: mensagens
transportam estado
! cookies: mensagens HTTP
transportam estado
sexta-feira, 2 de março de 12 47
48. cache (web proxy)
Caches Web (servidor proxy)
objetivo: satisfazer a requisição do cliente sem envolver
servidor de origem
! usuário prepara servidor
de origem
navegador: acessos à
Web via cache servidor
! navegador envia todas proxy
cliente
as requisições HTTP
ao cache
" objeto no cache: cache
retorna objeto
" ou cache requisita
objeto do servidor de cliente
servidor
origem, depois retorna de origem
objeto ao cliente
sexta-feira, 2 de março de 12 48
49. chache (web proxy)
Mais sobre caching Web
! cache atua como Por que caching Web?
cliente e servidor ! reduz tempo de resposta à
! normalmente, cache é requisição do cliente
instalado por ISP (da ! reduz tráfego no enlace de
universidade, empresa, acesso de uma instituição
residencial) ! Internet densa com caches:
permite que provedores de
conteúdo “fracos” remetam
conteúdo efetivamente
(mas o mesmo ocorre com
compartilhamento de
arquivos P2P)
sexta-feira, 2 de março de 12 49
50. exemplo caching
Exemplo de caching
suposições servidores
! tamanho médio do objeto = de origem
1.000.000 bits
Internet
! taxa de requisição média dos pública
navegadores da instituição aos
servidores de origem = 15/s
! atraso do roteador institucional a
enlace de
qualquer servidor de origem e de acesso a 15 Mbps
volta ao roteador = 2 s rede
institucional
consequências LAN de 100 Mbps
! utilização na LAN = 15%
! utilização no enlace de acesso = 100%
! atraso total = atraso da Internet + cache
atraso do acesso + atraso da LAN institucional
= 2 s + x minutos + y milissegundos
sexta-feira, 2 de março de 12 50
51. exemplo caching
solução possível servidores
! aumentar largura de banda do de origem
enlace de acesso para, digamos,
100 Mbps Internet
pública
consequência
! utilização na LAN = 15%
! utilização no enlace de acesso = 15% enlace de
acesso a 100 Mbps
! atraso total = atraso da Internet + rede
atraso do acesso + atraso da LAN = institucional
LAN de 100 Mbps
2 s + x ms + y ms
! normalmente, uma atualização
dispendiosa
cache
institucional
sexta-feira, 2 de março de 12 51
52. exemplo caching
servidores
possível solução: instalar cache de origem
! suponha que índice de acerto é
0,4 Internet
consequência pública
! 40% de requisições serão
satisfeitas imediatamente
! 60% de requisições satisfeitas
pelo servidor de origem enlace de
acesso a 15 Mbps
! utilização do enlace de acesso rede
reduzida para 60%, resultando institucional
LAN de 100 Mbps
em atrasos insignificantes
(digamos, 10 ms)
! atraso médio total = atraso da
Internet + atraso de acesso +
atraso da LAN = 0,6*(2,01) s + cache
0,4*milissegundos < 1,4 s institucional
sexta-feira, 2 de março de 12 52
54. FTP: o protocolo de
Transferência de arquivos (FTP)
transferência de arquivos
interface cliente transf. de arquivos
servidor
de usuário FTP
FTP
FTP
usuário no
hospedeiro sistema de
sistema de arquivo remoto
arquivo local
! transfere arquivo de/para hospedeiro remoto
! modelo cliente/servidor
cliente: lado que inicia transferência (de/para remoto)
"
" servidor: hospedeiro remoto
! ftp: RFC 959
! servidor ftp: porta 21
sexta-feira, 2 de março de 12 54
55. FTP: conexões separadas controle
de
FTP - características
para controle e dados remoto enviando comandos por
! cliente navega por diretório
FTP: conexões separadas conexão de controleTCP
conexão de controle
para controleée dados comando de transferência de
! cliente FTP contacta servidor
FTP na porta 21, TCP
porta 21
! quando servidor recebe
protocolo de transporte arquivo, abrecontrole TCP TCP
conexão de 2a conexão
! cliente FTP contactaconexão
! cliente autorizado por servidor (para arquivo) dados cliente
cliente
conexão de 21
porta
com TCPservidor
FTP na porta 21, TCP é porta 20
de controle ! após transferir um arquivo,
FTP FTP
protocolo de transporte
! cliente navega por diretório servidor fecha conexão de
conexão de dados TCP
! cliente autorizado por conexão cliente servidor
dados
remoto enviando comandos por ! servidor abre outra conexão
porta 20
de controle FTP FTP
conexão de controle de dados TCP para transferir
paradas cliente navega por diretório
!
! quando servidor recebe
remoto enviando comandos por ! outro arquivo outra conexão
servidor abre
ados comando dede controle
conexão transferência de ! conexão de controle: “fora da
de dados TCP para transferir
arquivo, abre 2 TCP a conexão TCP
conexão de controle
! quandoporta 21
servidor recebe
dor (para arquivo) com cliente de banda”arquivo
outro
comando de transferência ! conexão de controle: “fora da
arquivo, abre 2 a conexão TCP
! após transferir um arquivo, ! servidor FTP mantém
banda”
“estado”: diretório atual,
servidor arquivo) servidor
exão cliente(para fecha conexão de
conexão de dados com cliente
porta 20
TCP
dados transferir umFTP
FTPapós
! arquivo, servidor FTP mantém
! autenticação anterior
o servidor fecha conexão de “estado”: diretório atual,
por ! servidor abre outra conexão
dados autenticação anterior
de dados TCP para transferir
outro arquivo
de
sexta-feira, 2 de março de 12 55
56. FTP - comandos
Comandos e respostas FTP
exemplos de comandos: exemplos de códigos de
! enviado como texto ASCII retorno
pelo canal de controle ! código e frase de estado
! USER nome-usuário (como no HTTP)
! PASS senha ! 331 Username OK,
! LIST retorna lista de
password required
arquivos no diretório atual ! 125 data connection
already open;
! RETR nome-arquivo transfer starting
recupera (apanha) arquivo
! 425 Can’t open data
! STOR nome-arquivo connection
armazena (coloca) arquivo ! 452 Error writing
no hospedeiro remoto file
sexta-feira, 2 de março de 12 56
59. Email
(SMTP, POP3, IMAP)
sexta-feira, 2 de março de 12 59
60. Conceitos
Correio eletrônico
Correio eletrônico
Três componentes principais: agente
usuário
fila de
msg. de saída
! agentes do usuário
serv. agente caixa de entrada
Três ! servidores de correio
componentes principais: correio
fila de
do usuário
! Simple Mail Transfer Protocol: usuário msg. de saída
! agentes do usuário SMTP
SMTP agente
caixa de entrada
! servidores de correio serv.
correio do usuário
usuário
Agente do usuário
! Simple Mail Transfer Protocol: SMTP mail
SMTPtambém chamado “leitor de
! SMTP server
agenteagente
correio” SMTP usuário
serv. usuário
! redigir, editar, ler mensagens
Agente do usuário SMTP
correio mail
de correio eletrônico
! tambéme., Eudora, Outlook, de
chamado “leitor elm, server
agente
! p. agente
correio”
Mozilla Thunderbird SMTP usuário
usuário
agente
serv.
! redigir, editar, ler mensagens
! mensagens entrando e saindo usuário
correio
agente
armazenadas no servidor
de correio eletrônico usuário
agente
! p. e., Eudora, Outlook, elm,
usuário
Mozilla Thunderbird agente
sexta-feira, 2 de março de 12 60
61. ! agentes do usuário
caixa de entr
Conceitos
! servidores de correio serv.
correio do usuário
! Simple Mail Transfer Protocol:
SMTP Correio eletrônico SMTP age
usu
Três componentes principais: agente fila de
Agente do usuário SMTP usuário msg. de saída
mail
! agentes do usuário
! também chamado correio de
“leitor serv.
server
caixa de entrada
! servidores de agen
correio”
! Simple Mail Transfer Protocol:
correio SMTP do usuário
usuár
serv. SMTP
! redigir, editar, ler mensagens
SMTP agente
correio usuário
de correio eletrônico
Agente do usuário SMTP mail agente
! p. e., Eudora,chamado “leitor de
! também Outlook, elm, server
agente usuário
Mozilla Thunderbird
correio” SMTPagente usuário
serv.
! mensagens entrando
! redigir, editar, ler e saindo
mensagens correio
usuário
de correio eletrônico agente
armazenadas no servidor usuário agente
! p. e., Eudora, Outlook, elm,
usuário
Mozilla Thunderbird agente
! mensagens entrando e saindo usuário
agente
armazenadas no servidor usuário
sexta-feira, 2 de março de 12 61
62. Correio eletrônico:Conceitos
Correio eletrônico
servidores de correio
Três componentes principais: agente
agente
fila de
servidores de usuário
! agentes do
correio usuário
usuário
msg. de saída
! caixa de correio correio
! servidores de
contém serv. caixa de entrada
serv. do usuário
mensagens que chegam para correio
correio
agente
! Simple Mail Transfer Protocol:
o usuário usuário
SMTP SMTP
! fila de mensagens com SMTP serv. usuário agente
mensagens usuário
Agente do de correio a correio agente
serem enviadas SMTP mail
usuário
! também chamado “leitor de SMTP server
agente
! protocolo SMTP entre
correio” SMTP usuário
servidores editar, ler mensagens
! redigir,
de correio para serv. SMTP
enviar mensagens de e-mail correio
serv. agente
de correio eletrônico
" cliente: servidor de envio correio usuário
agente
! p. e., Eudora, Outlook, elm,
de correio
Mozilla Thunderbird
usuário
agente
" “servidor”: servidor de agente
! mensagens entrando e saindo usuário
usuário
recepção de no servidor
armazenadas correio agente
agente
usuário
usuário
sexta-feira, 2 de março de 12 62
63. Correio eletrônico:
Correio eletrônico:
SMTP [RFC 2821]
SMTP [RFC 2821]
usa TCP para transferir de modo con
! usa TCP para transferir de modo confiável a mensagem
!
de e-mail do cliente ao servidor, porta 25
de e-mail do cliente ao servidor, port
! transferência direta: servidor de envio ao servidor de
recepção transferência direta: servidor de env
!
recepção
! três fases da transferência
" handshaking (saudação)
" transferência fases da transferência
! três de mensagens
" handshaking (saudação)
" fechamento
! interação comando/resposta
" transferência de mensagens
" comandos: texto ASCII
" fechamento
" resposta: código e frase de estado
! mensagens devem estar em ASCII de 7 bits
! interação comando/resposta
" comandos: texto ASCII
sexta-feira, 2 de março de 12 63
64. Cenário: Alice envia
Alice envia mensagem a Bob
mensagem a Bob
1) Alice usa AU para redigir
mensagem “para” 4) Cliente SMTP envia
bob@algumaescola.edu mensagem de Alice pela
2) O AU de Alice envia conexão TCP
mensagem ao seu servidor 5) Servidor de correio de Bob
de correio, que é colocada coloca mensagem na caixa
na fila de mensagens de correio de Bob
3) Lado cliente do SMTP abre
6) Bob chama seu agente do
conexão TCP com servidor
de correio de Bob usuário para ler mensagem
1 serv.
serv.
correio agente
agente correio
2 usuário
usuário 3 6
4 5
sexta-feira, 2 de março de 12 64
65. Exemplo de interação SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Você gosta de ketchup?
C: Que tal picles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection
sexta-feira, 2 de março de 12 65
66. SMTP: palavras finais
comentários
! SMTP usa conexões Comparação com HTTP:
persistentes
! HTTP: puxa
! SMTP requer que a
mensagem (cabeçalho e ! SMTP: empurra
corpo) esteja em ASCII de ! ambos têm interação de
7 bits comando/resposta em
! servidor SMTP usa ASCII, códigos de estado
CRLF.CRLF para
determinar fim da ! HTTP: cada objeto
mensagem encapsulado em sua própria
mensagem de resposta
! SMTP: múltiplos objetos
enviados na mensagem
multiparte
sexta-feira, 2 de março de 12 66
67. Formato da mensagem de
correio Exemplo de mensagem
SMTP: protocolo para trocar
mensagens de e-mail cabeçalho
linha
RFC 822: padrão para formato
em
de mensagem de texto:
branco
! linhas de cabeçalho, p. e.,
Para:
"
corpo
" De:
" Assunto:
diferente dos comandos
SMTP!
! corpo
" a “mensagem”, apenas em
caracteres ASCII
sexta-feira, 2 de março de 12 67
68. Protocolos de acesso Como acessar msgs
de correio
SMTP SMTP prot.
agente agente
usuário acesso usuário
servidor de correio servidor de correio
do emissor do receptor
! SMTP: remessa/armazenamento no servidor do receptor
! protocolo de acesso ao correio: recuperação do servidor
" POP: Post Office Protocol [RFC 1939]
• autorização (agente <--> servidor) e download
" IMAP: Internet Mail Access Protocol [RFC 1730]
• mais recursos (mais complexo)
• manipulação de msgs armazenadas no servidor
" HTTP: gmail, Hotmail, Yahoo! Mail etc.
sexta-feira, 2 de março de 12 68
69. Protocolo POP3
fase de autorização
S: +OK POP3 server ready
C: user bob
! comandos do cliente: S: +OK
C: pass hungry
user: declare “username”
" S: +OK usuário logado com sucesso
" pass: senha
C: list
! respostas do servidor S: 1 498
S: 2 912
" +OK
S: .
" -ERR C: retr 1
S: <message 1 contents>
fase de transação, cliente: S: .
! list: lista números de msg. C: dele 1
C: retr 2
! retr: recupera mensagem por S: <message 1 contents>
número S: .
C: dele 2
! dele: exclui C: quit
! quit S: +OK serv. POP3 desconectando
sexta-feira, 2 de março de 12 69
70. POP3 (mais) e IMAP
Mais sobre POP3 IMAP
! Exemplo anterior usa ! Mantém todas as
modo “download e mensagens em um local: o
excluir”
servidor
! Bob não pode reler e-
-mail se mudar o ! Permite que o usuário
cliente organize msgs em pastas
! “Download-e-manter”: ! IMAP mantém estado do
cópias de mensagens usuário entre sessões:
em clientes diferentes " nomes de pastas e
! POP3 é sem estado mapeamento entre IDs de
entre as sessões mensagem e nome de pasta
sexta-feira, 2 de março de 12 70
71. E-mail e HTTP
Hotmail
Gmail
sexta-feira, 2 de março de 12 71
72. DNS
(Domain Name Sytem)
sexta-feira, 2 de março de 12 72
73. Conceitos Domain Name System
DNS: Domain Name System
DNS:
Iniciais
pessoas: muitos Domain Name System:
identificadores: pessoas: ! banco de dados distribuído
muitos Domain N
identificadores:
CPF, nome, passaporte
" implementado na hierarquia
! banco d
muitos servidores deimplem
" CPF, nome, passaporte nome
hospedeiros da Internet, muitos
! protocolo em nível de aplica
hospedeiros da Internet,
roteadores: ! protoco
hospedeiro, roteadores,
roteadores: hosped
" endereço IP (32 bits) –
" endereço IP (32 bits) – nomes servido
servidores de se
usado para endereçar usado para endereçar
comunicam para resolver no
comunic
datagramas (tradução endereço/nome)
datagramas (traduç
" “nome”, p. e., " Nota: função básica Not
" “nome”, p. e., " da
ww.yahoo.com – usado ww.yahoo.com – usado implementada
Internet, Inte
pelos humanos pelos humanos
como protocolo em nívecom
P: Como mapear entre
aplicação apli
P: Como mapear entre
endereço " complexidade na “borda
IP e nome? " com
endereço IP e nome? red
rede
sexta-feira, 2 de março de 12 73
74. main Name System Conceitos Iniciais
itos Domain Name System:
dores: ! banco de dados distribuído
me, passaporte implementado na hierarquia de
muitos servidores de nomes
da Internet,
! protocolo em nível de aplicação
es: hospedeiro, roteadores,
o IP (32 bits) – servidores de nomes se
ara endereçar comunicam para resolver nomes
mas (tradução endereço/nome)
p. e., " Nota: função básica da
o.com – usado Internet, implementada
manos como protocolo em nível de
ear entre aplicação
IP e nome? " complexidade na “borda” da
rede
sexta-feira, 2 de março de 12 74
75. DNS
DNS DNS
Serviços de DNS
Serviços de DNS Por que não centralizar o o
Por que não centralizar
! tradução nome de
! tradução nome de DNS?
DNS?
hospedeiro -> endereço ! ! único ponto de falha
hospedeiro -> endereço único ponto de falha
IP
IP volume de tráfego
! ! volume de tráfego
! apelidos de hospedeiro
! apelidos de hospedeiro ! banco de dados
" nomes canônicos ! banco de dados
" nomes canônicos
centralizado distante
centralizado distante
! apelidos de servidor de
! apelidos de servidor de ! manutenção
correio
correio ! manutenção
! distribuição de carga
! distribuição de carga
" servidores Web Não é escalável!
" servidores Web
replicados: conjunto de Não é escalável!
endereços IPconjunto de
replicados: para um
nome canônico para um
endereços IP
nome canônico
sexta-feira, 2 de março de 12 75
76. Banco de dados distribuído,
hierárquico
Servidores DNS raiz
servs. DNS com servs. DNS org servs. DNS edu
servs. DNS servs. DNS servs. DNS
servs. DNS servs. DNS
pbs.org poly.edu umass.edu
yahoo.com amazon.com
Cliente quer IP para www.amazon.com; 1a aprox:
! cliente consulta serv. raiz para achar servidor DNS com
! cliente consulta serv. DNS com para obter serv. DNS
amazon.com
! cliente consulta serv. DNS amazon.com para obter
endereço IP para www.amazon.com
sexta-feira, 2 de março de 12 76
77. DNS: Servidores de nomes
raiz Servidor raiz
! contactados por servidores de nomes locais que não conseguem traduzir
nome
! servidores de nomes raiz:
" contacta servidor de nomes com autoridade se o mapeamento não for
conhecido
" obtém mapeamento
" retorna mapeamento ao servidor de nomes local
13 servidores de
nomes raiz no mundo
sexta-feira, 2 de março de 12 77
78. TLD e servidores com outros níveis
Servidores DNS
autoridade
! servidores de domínio de alto nível (TLD) :
" responsáveis por com, org, net, edu etc. e todos os
domínios de país de alto nível: br, uk, fr, ca, jp.
" A Network Solutions mantém servidores para TLD
com
" Educause para TLD edu
! servidores DNS com autoridade:
" servidores DNS da organização, provendo nome de
hospedeiro com autoridade a mapeamentos IP para os
servidores da organização (p. e., Web, correio).
" podem ser mantidos pela organização ou provedor de
serviços
sexta-feira, 2 de março de 12 78
79. Servidor DNS local
Servidor de nomes local
! não pertence estritamente à hierarquia
! cada ISP (ISP residencial, empresa,
universidade) tem um.
" também chamado “servidor de nomes default”
! quando hospedeiro faz consulta ao DNS,
consulta é enviada ao seu servidor DNS local
" atua como proxy, encaminha consulta para
hierarquia
sexta-feira, 2 de março de 12 79
80. Funcionamento
Exemplo de resolução
Exemplo de resolução
na nome DNS
prática
de nome DNS
de servidor DNS raiz
servidor DNS raiz
22
! hospedeiro em
! hospedeiro 33 servidor DNS TLD
servidor DNS TLD
cis.poly.edu quer
cis.poly.edu 44
endereço IP para
endereço IP 55
gaia.cs.umass.edu
gaia.cs.umass.edu
serv. DNS local
serv. DNS local
consulta repetida:
consulta repetida: dns.poly.edu
dns.poly.edu
77 66
! servidor contactado
! servidor contactado 11 88
responde com nome
responde com nome
do servidor a
do servidor a serv. DNS com autoridade
serv. DNS com autoridade
contactar
contactar dns.cs.umass.edu
dns.cs.umass.edu
hospedeiro
hospedeiro
! “não conheço esse
! “não conheço esse solicitante
nome, mas pergunte a solicitante
nome, mas pergunte a cis.poly.edu
este servidor” cis.poly.edu gaia.cs.umass.edu
este servidor” gaia.cs.umass.edu
sexta-feira, 2 de março de 12 80
81. Funcionamento
na prática serv. DNS raiz
consulta recursiva:
2 3
! coloca peso da
resolução de nome 6
7
sobre o servidor de
serv. DNS TLD
nomes contactado
! carga pesada?
serv. DNS local
dns.poly.edu 5 4
1 8
serv. DNS com autoridade
dns.cs.umass.edu
hospedeiro
solicitante
cis.poly.edu
gaia.cs.umass.edu
sexta-feira, 2 de março de 12 81