Académique Documents
Professionnel Documents
Culture Documents
Camada de Aplicação
2 edition.
that you mention their source (after all, we’d like people to use our book!) nd
q If you post any slides in substantially unaltered form on a www site, that
you note that they are adapted from (or perhaps identical to) our slides, and Jim Kurose, Keith Ross
Addison-Wesley, July
note our copyright of this material.
Access Protocol)
❍ paradigma cliente-
DNS (Domain Name System
servidor
❍
protocol)
❍ paradigma par-par
❒ Programação de aplicações de
(peer-to-peer)
rede
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
correio
comunicam através de
de aplicação
Camada de Aplicação 2-4
Aplicações e protocolos de camada de aplicação
em comunicação
Ex: email, FTP, Web
!"!#$
❍ %& '( )*
❍ executada em sistemas
de utilizador (user
user-space)
space
implementar a aplicação
Protocolos da camada de
aplicação
+,.- ( ) +/0 *
uma parte da aplicação
+ ,.- ( ) +/0 * 12 +3 ' , * 21
4
❍ 12 +3 ' , * 214 24564
2454
define as mensagens trocadas
❍ - ( 7 8 5 + 5 *'
- ( 7 8 5 + 5 *' %& '( )*
entre as aplicações e as acções
%& '( )*
a executar
❍ utiliza os serviços de
a mensagens
Camada de Aplicação 2-6
O paradigma Cliente-Servidor
Servidor pedido
browser;
programa de correio
resposta
Servidor:
9:.; < =
9>?@
AB 9CD:@ BA
E
❒ fornece os serviços requisitados BEFE
; < G H F 9 F @D
pelos Clientes IJ D< =@
❒ os processos
cliente ou cliente ou
enviam/recebem mensagens servidor servidor
para/do seu socket
controlado pelo
❒ socket análogo a uma porta programador da
processo aplicação processo
❍ o processo que envia empurra
recebe
❒ Q: o endereço IP da de portos:
na mesma máquina
aplicação necessita?
conseguirem obter
Timing
❍ ex: aplicações elásticas
❒ Algumas aplicações
requerem um atraso
adequadamente
❍ Jogos interactivos
aplicações comuns
Internet
Servidor receptor
transporte
Capítulo 2: Sumário
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
❒ Exemplo de URL:
www.someschool.edu/someDept/pic.gif
path name
nome da máquina
HTTP: HyperText
Transfer Protocol pe
di
do
H
T
❒ Protocolo de nível de PC a executar re T
P
sp
o st
aplicação da Web Internet Explorer a
H
T
T
P
❒ Modelo cliente-servidor
Servidor Web
envia objectos em
Apache
resposta a pedidos
Mac a executar
informação sobre os
❒ Cliente inicia a ligação TCP
pedidos anteriores dos
(cria um socket) para o
Clientes
Servidor, porto 80
à parte
❒ Servidor aceita a ligação TCP Protocolos que mantêm o
do Cliente
estado são complexos !
conciliada
Ligações HTTP
persistentes por
omissão
mensagem de pedido
constrói a mensagem de resposta
❍ ❍
(contendo o URL) indica que
contendo o objecto pedido
o cliente quer o objecto
❍ envia a mensagem para o socket.
someDepartment/home.index
tempo
da ligação TCP
voltar (2.Tpropagação).
iniciar a
ligação TCP
Tempo de Resposta: RTT
tempo de transmissão do
❒ tempo tempo
ficheiro
total = 2.RTT+tempo de
Camada de Aplicação 2-21
transmissão
HTTP persistente
pipelining
❒ 2 RTTs por objecto
linha do pedido
fim do cabeçalho
Sistema Terminal
Host: www.someschool.edu
Tipo de browser
Connection: close
Não utilizar
Accept-language:fr
método POST:
❒ é frequente as páginas
de dados em formulários
do pedido:
www.somesite.com/animalsearch?monkeys&banana
HTTP/1.0 HTTP/1.1
❒ POST ❒ PUT
do pedido para o
❍ pede ao servidor para
caminho especificado no
não incluir o objecto na
campo URL
resposta
❒ DELETE
❍ apaga o ficheiro
especificado no campo
URL
linha de estado
(protocolo,
ficheiro
HTML pedido
objecto
Content-Type: text/html
Nº de Bytes do objecto
200 OK
❍ pedido teve sucesso, objecto pedido mais tarde nesta
mensagem
em www.eurecom.fr
servidor HTTP
Internet sempre do
Quatro componentes:
mesmo PC
1) linha de cabeçalho cookie
❍ Ela visita um servidor
na mensagem de resposta
de comércio electrónico
HTTP
pela primeira vez
2) linha de cabeçalho cookie
❍ Quando o primeiro
na mensagem de pedido
pedido HTTP chega ao
HTTP
servidor, o servidor cria
3) ficheiro de cookies
um identificador (ID)
mantido na máquina do
único e cria uma entrada
utilizador e gerido pelo
na sua base de dados
browser do utilizador
para o ID
cliente servidor
ficheiro de
Cookies pedido HTTP normal
❒ empresas de publicidade
obtêm informação de
vários servidores
cliente servidor
❒ Objectivo: não enviar os
actualizada: modificado
HTTP/1.0 200 OK
<dados>
Camada de Aplicação 2-36
Capítulo 2: Sumário
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
interface transferência
cliente servidor
utilizador do ficheiro
FTP FTP
FTP
Utilizador num
sistema sistema
Sistema Terminal
ficheiros ficheiros
local remoto
❒ modelo cliente-servidor
remoto)
❒ HELP [comando]
Camada de Aplicação 2-40
Capítulo 2: Sumário
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
agente
Três componentes utiliz.
fundamentais:
servidor
agente
❒ agentes de utilizador correio
utiliz.
servidores de correio
SMTP
❒
servidor
❒ Simple Mail Transfer
correio agente
Protocol: SMTP
SMTP
utiliz.
Agente de Utilizador
SMTP
❒ a.k.a. programa de correio servidor
agente
utiliz.
❒ Compor, editar e ler correio
mensagens de correio
agente
fila de
❒ e.g., Eudora, Outlook, elm,
utiliz.
espera de saída
Netscape Messenger
agente
agente
Servidores de Correio utiliz.
lidas) SMTP
servidor
enviadas)
SMTP
agente
❒ protocolo SMTP entre servidor
utiliz.
servidores de correio para correio
enviar as mensagens
agente
❍ cliente: envia correio fila de
utiliz.
espera de saída
para o servidor
agente
recepção de correio
25.
de recepção
❍ handshaking (apresentação)
❍ transferência de mensagens
❍ fecho
❒ Interacção comando-resposta
1
servidor
servidor
agente
correio
agente correio
utiliz.
utiliz. 2
3 6
4
5
em ASCII de 7 bits
❒ Ambos têm interacção
(cabeçalho e corpo)
comando/resposta em
❒ Servidor SMTP usa ASCII, códigos de estado
CRLF.CRLF para
mensagem de resposta
❒ Alguns caracteres não são
To:
Corpo
❍
❍ From:
❍ Subject:
❒ Corpo
❍ a mensagem, apenas os
caracteres ASCII
conteúdo MIME
From: alice@crepes.fr
Versão MIME
To: bruno@hamburger.edu
Subject: Imagem de saboroso doce.
Método usado para
MIME-Version: 1.0
codificar os dados Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Tipo de dados multimédia,
subtipo,
dados codificados em base64 .....
declaração de parâmetros ..................................
...... dados codificados em base64
Dados codificados
Exemplo de subtipos:
Outros dados que têm de
❒ ❒
ser processados pelo leitor
jpeg, gif
antes de serem visíveis
msword, octet-stream
❒ Exemplo de subtipos :
mu-law), 32kadpcm
(codificação de 32 kbps)
Tipo Multipart
From: alice@crepes.fr
To: bruno@hamburger.edu
Subject: Imagem de saboroso doce.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=StartOfNextPart
--StartOfNextPart
Caro Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados codificados em base64 .....
.................................
......dados codificados em base64
--StartOfNextPart
Queres a receita?
--StartOfNextPart
Caro Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados codificados em base64 .....
.................................
......dados codificados em base64
--StartOfNextPart
Queres a receita?
--StartOfNextPart
Caro Bruno, junto envio imagem de um doce.
--StartOfNextPart
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados codificados em base64 .....
.................................
......dados codificados em base64
--StartOfNextPart
Queres a receita?
Message-Id: <20020508205018.006D611E620@smtp.brturbo.com>
Date: Wed, 8 May 2002 17:50:18 -0300 (BRT)
Assunto supostamente apelativo
Utilizador infectado
electrónico
--AHdz7JR6BD7Tk7N1IvZU9l1q90A5tX90j3
Content-Type: text/html; HTML com suposto som para
música de fundo
Content-Transfer-Encoding: quoted-printable
--AHdz7JR6BD7Tk7N1IvZU9l1q90A5tX90j3
Programa executável com o vírus
Content-Type: audio/x-midi;
name=kitty.pif
Content-Transfer-Encoding: base64
Content-ID: <Rh5Y20734J>
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g
(…)
--AHdz7JR6BD7Tk7N1IvZU9l1q90A5tX90j3--
corre o vírus!
Moral da História
❒ Programadores:
❒ Administradores:
❒ Utilizadores
SMTP SMTP
protocolo
agente
agente
servidor do servidor do
emissor receptor
do correio do correio
receptor
password
❍ pass: C: list
S: 1 498
❒ Servidor responde
S: 2 912
❍ +OK S: .
❍ -ERR C: retr 1
Fase de transacção, cliente:
S: <message 1 contents>
S: .
❒ list: lista nº das mensagens
C: dele 1
❒ retr: obtém mensagens C: retr 2
através no nº S: <message 1 contents>
❒ dele: apaga S: .
termina
❒ quit:
C: dele 2
C: quit
S: +OK POP3 server signing off
Camada de Aplicação 2-59
de pasta
cópias de mensagens em
componentes específicos da
❒ O POP3 não mantém
mensagem
estado entre sessões Camada de Aplicação 2-60
Capítulo 2: Sumário
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
datagramas endereço/nome)
rede
❒ volume de tráfego
❍ sistemas terminais interrogam
Local
centralizada distante
IP
sistema terminal
nome para endereço IP Camada de Aplicação 2-63
nomes
mapeamento do nome
❍ obtém mapeamento
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
13 servidores de
nomes raiz no
mundo
b USC-ISI Marina del Rey, CA
l ICANN Marina del Rey, CA
a máquina surf.eurecom.fr
pretende o endereço IP de 2 4
gaia.cs.umass.edu 5 3
1. Contacta o seu servidor DNS
local,
dns.eurecom.fr
2. dns.eurecom.fr contacta o
local oficial
necessário
dns.eurecom.fr dns.umass.edu
3. o servidor de nomes raiz 1 6
contacta o servidor de nomes
oficial, dns.umass.edu, se
necessário
máquina
gaia.cs.umass.edu
que pergunta
surf.eurecom.fr
servidor de
Servidor de nomes 6
2
raiz: 7 3
❒ Pode não conhecer o
servidor oficial
❒ Pode conhecer
local
intermédios: quem
dns.umass.edu
contactar para descobrir
dns.eurecom.fr 4 5
1 8
o servidor de nomes
oficial
servidor de nomes oficial
dns.cs.umass.edu
máquina
que pergunta
surf.eurecom.fr
gaia.cs.umass.edu
nomes raiz
iterativas
servidor contactado
7
❒ carga elevada ? servidor de nomes servidor de nomes intermédio
local dns.umass.edu
Perguntas iterativas: dns.eurecom.fr 5 6
1 8
❒ o servidor contactado
que pergunta
❒ não conheço este
surf.eurecom.fr
nome, mas pergunta a
gaia.cs.umass.edu
este servidor !!
no IETF
❍ RFC 2136
❍ http://www.ietf.org/html.charters/dnsext-charter.html
❒ Tipo=A ❒ Tipo=CNAME
www.ibm.com é realmente
servereast.backup2.ibm.com
foo.com) ❒ Tipo=MX
cabeçalho de msg
❒ identificação:
mesmo #
❒ flags:
❍ pedido ou resposta
❍ recursividade desejada
❍ recursividade disponível
❍ resposta é oficial
para um pedido
RRs em resposta
ao pedido
registos para
servidores oficiais
informação adicional
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
Programação em Sockets
❒ introduzida no UNIX
uma interface (uma
BSD4.1, 1981
porta) local à maquina,
❍ fiável, transmissão de
ou TCP)
controlado pelo
controlado pelo
processo programador da
programador da processo
aplicação
aplicação socket
socket
TCP com controlado
controlado TCP com
buffers, pelo sistema
pelo sistema buffers,
internet operativo
variáveis
operativo variáveis
cliente ou
cliente ou
servidor
servidor
Se rvido r
cria socket socket ( )
associa porto
bind ( )
de escuta
dados(resposta)
envia resposta write ( )
read ( ) lê resposta
Capítulo 2: Sumário
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
cliente e servidor
❒ sem handshaking
emissor
de ordem, ou perdidos
Se rvido r
cria socket socket ( )
associa porto
bind ( )
de escuta
Clie nte
lê pedido recvfrom ( ) socket ( ) cria socket
resposta HTTP:
❍ linhas de cabeçalho +
ficheiro
http://manic.cs.umass.edu/~amldemo/courseware/intro .html
Mini-curso de Java:
http://java.sun.com/docs/books/tutorial/networking/
sockets/
http://www.javaworld.com/javaworld/jw-12-1996/ jw-12-
sockets.html
requisitos das
2.8 Construindo um
❍
❒
aplicações
servidor Web
❒ 2.2 Web e HTTP
❒ 2.9 Distribuição de
❒ 2.3 FTP
conteúdos
servidor
cliente
Camada de Aplicação 2-84
Mais sobre caches Web
(universidade, empresa,
ISP residencial)
servidores
Condições
de origem
❒ tamanho médio de objecto =
Internet
100 000 bits
pública
Ligação de acesso
❒ atraso do router institucional
1.5 Mbps
para qualquer servidor de origem
rede
e regresso ao router = 2 seg
institucional
LAN a 10 Mbps
Consequências
servidores
Solução Possível
de origem
❒ aumentar a linha de acesso para,
Internet
digamos, 10 Mbps
pública
Consequências
de origem
❒ supondo taxa de acerto de 0.4
Consequências Internet
pública
❒ 40% dos pedidos são satisfeitos
quase imediatamente
atraso na LAN
cache institucional
= 0.6*2 seg + 0.6*0.010 segs +
na América do Norte
❒ Os clientes das CDNs são os
fornecedores de conteúdos.
Replicação de Conteúdos
pela Internet
utilizadores
servidores
1 servidor de origem
oficial da CDNs
3
❒ www.foo.com ❒ cdn.com
substitui:
usa o servidor de DNS
❒ ❒
oficial para encaminhar
http://www.foo.com/sports/ruth.gif
por
pedidos redireccionados
http://www.cdn.com/www.foo.com/sports/ruth.gif
pedidos
❒ fluxos de áudio/vídeo
indicando as distâncias
❒ fluxos de áudio/vídeo
dos ISPs aos nós da CDN
em tempo real
sobreposta
❍ servidor determina qual o
pedido
determinar o melhor
servidor da CDN
Bruno.
Exemplo
❒ o ficheiro é copiado do PC do
❒ A Alice corre a aplicação
Bruno para o portátil da
cliente P2P no seu
Alice: HTTP
computador portátil
❒ enquanto a Alice descarrega
❒ liga-se à Internet
o ficheiro, outros
temporariamente; obtém
utilizadores descarregam
um endereço IP para
ficheiros da Alice.
cada ligação
❒ o programa da Alice é
❒ pede por Hey Jude
simultaneamente cliente Web
a aplicação mostra
e servidor Web temporário.
❒
outros pares que têm
Todos os pares são servidores =
uma cópia de Hey Jude.
escala muito!
Camada de Aplicação 2-92
P2P: Directório Centralizado
Bruno
desenho original do
servidor de
Napster directório
centralizado 1
informa o servidor 1
central:
3
1
❍ endereço IP
2
❍ conteúdo 1
Jude
Bruno
Alice
L estrangulamento de ficheiros é
localização de conteúdos
L infracção de direitos
é altamente centralizada
de autor
grupo, ou associado a
um líder de grupo.
❒ o líder de grupo
conhece o conteúdo de
de grupo; o líder de
a outros líderes de
par normal
grupo.
par líder de grupo
relações de vizinhança
na rede sobreposta (rede lógica)
líder
Camada de Aplicação 2-96
P2P: inundação de pedidos
pedido
join
associação
Prós Contras
responsabilidades excessivo
❒ requisitos do serviço
❒ protocolos específicos:
de aplicação:
❍ HTTP
❍ fiabilidade, ritmo,
❍ FTP
atraso
❍ SMTP, POP, IMAP
❒ paradigma cliente-
❍ DNS
servidor
❒ programação em sockets
❒ modelo de serviço de
❒ distribuição de conteúdos
transporte na Internet
❍ caches, CDNs
❍ Serviço orientado à
❍ P2P
ligação, fiável: TCP
UDP
Capítulo 2: Sumário
comunicada rede
❒ segurança: autenticação