Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicao: processos
distribudos em comunicao aplicao
transporte
Protocolo da camada de
aplicao
aplicao
uma parte da aplicao aplicao
transporte
transporte
rede
rede
define as mensagens trocadas e
enlace
enlace fsica
fsica
as aes executadas
usa servios providos por
protocolos da camada de
transporte (TCP, UDP)
2: Camada de Aplicao 2
Aplicaes de rede: alguns jarges
2: Camada de Aplicao 4
Arquiteturas de aplicao de rede
2: Camada de Aplicao 5
Arquitetura cliente-servidor
Cliente:
Aplicao tpica tem duas
Inicia contato com o servidor
partes: Cliente e Servidor
(fala primeiro)
Tipicamente solicita servio do aplicao
servidor transporte
rede
Servidor:
Prov ao cliente o servio resposta
requisitado
aplicao
Host servidor est sempre em transporte
rede
funcionamento enlace
fsica
Ex.: servidor Web envia pgina
solicitada pelo cliente
2: Camada de Aplicao 6
Arquitetura P2P
No h um servidor sempre
funcionando
Pares arbitrrios de hosts,
denominados peers, se comunicam
diretamente
Nenhum dos hosts participantes
precisa estar sempre em
funcionamento
Caractersticas:
altamente escalvel
cada novo peer gera demanda
mas tb acrescenta capacidade
difcil gerenciamento das
aplicaes P2P
altamente distribuda e
descentralizada
peers mudam com frequncia
seus endereos IP
2: Camada de Aplicao 7
2: Camada de Aplicao 8
Comunicao entre processos
2: Camada de Aplicao 13
Servios providos pelos protocolos de
transporte da Internet
Servios do TCP: Servios do UDP:
Servio orientado conexo: setup Servio de transferncia de
requerido entre cliente e servidor dados no confivel: no h
para troca de informaes de garantia de que a mensagem
controle alcanar a porta receptora
Servio de transporte confivel: No prov: setup da conexo,
TCP garante a entrega dos dados transferncia confivel, controle
enviados sem erros, perdas e na de fluxo, controle de
ordem correta congestionamento, garantias de
atraso limitado e de taxa binria
Controle de fluxo: evita que o
de entrega no destino
transmissor inunde o receptor
Controle de congestionamento: P: Qual o interesse em se ter o
limita a capacidade de transmisso UDP?
de um processo quando a rede est
congestionada
No prov: garantias de atraso fim-
a-fim limitado e de taxa binria de
entrega no destino (vazo) mnima
2: Camada de Aplicao 14
Aplicaes da Internet: seus protocolos de
camada de aplicao e seus protocolos de
transporte subjacentes
2: Camada de Aplicao 15
World Wide Web e HTTP: alguns jarges
Pgina Web (documento): Agente usurio (Cliente Web)
constituda de objetos para Web ou browser :
um objeto pode ser um arquivo MS Internet Explorer
HTML, uma imagem JPEG, uma Netscape Communicator
imagem GIF, ...
Servidores Web:
A maioria das pginas Web Apache (domnio pblico)
constituda de um arquivo-base MS Internet Information
HTML e vrios objetos Server (IIS)
relacionados Nginx
O arquivo-base HTML relaciona GWS
os outros objetos da pgina com
seus URLs
componentes do URL:
nome de host Protocol
nome do caminho do objeto
ex.:
http://www.someSchool.edu/someDepartment/picture.gif
2: Camada de Aplicao 16
HTTP: viso geral
HTTP: Hypertext Transfer
Protocol
Define:
como clientes requisitam
pginas Web aos servidores
PC executando
a estrutura de mensagens Explorer
trocadas entre cliente e
servidor Web
Modelo cliente/servidor
cliente: browser faz pedido, Host
recebe, visualiza objetos executando
Web software
servidor
servidor: servidor Web envia
Web
objetos em resposta a
Apache
pedidos Mac executando
Navigator
HTTP/1.0: RFC 1945
2: Camada de Aplicao 18
Exemplo: transferncia de uma pgina Web
Supondo que o usurio digite o URL:
http://www.algumaUniv.br/algumDepartamento/inicial.index
(pgina Web: arquivo_base HTML e 10 imagens jpeg no mesmo servidor)
2: Camada de Aplicao 20
Conexes no persistentes e conexes persistentes
No persistentes: Persistentes:
No mximo um objeto Na mesma conexo TCP, o
transferido sobre uma cliente envia pedidos para
conexo TCP todos objetos referenciados
assim que recebe o arquivo-
2 RTTs para trazer cada base HTML
objeto (RTT = round trip
time) Menos RTTs e menos
partida lenta
A transferncia de cada
objeto sofre partida lenta Verses de conexes
(TCP slow-start phase) persistentes:
sem paralelismo
HTTP/1.0 usa conexes no
com paralelismo
persistentes
a maioria dos browsers 1.0 Persistente c/ paralelismo:
usa conexes TCP paralelas modo default do HTTP/1.1
2: Camada de Aplicao 21
RTT: Round-Trip Time
Definio de RTT (ou tempo de
viagem de ida e volta): tempo
gasto por um pacote para
viajar do host cliente ao host
inicia
servidor e voltar ao host conexo
cliente TCP
RTT
um RTT gasto para
pede
estabelecer a conexo TCP arquivo
tempo de
um RTT gasto para o envio RTT transmisso
do pedido HTTP e o recebe
do arquivo
recebimento da resposta arquivo
HTTP
2: Camada de Aplicao 22
Formato de mensagem HTTP: pedido
Tipos de mensagem HTTP:
Pedido Solicita um documento ao
Resposta
servidor
Exemplo:
servidor
linha de pedido
(comandos GET,
POST, HEAD) GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
linhas de Connection: close
cabealho User-agent: Mozilla/4.0
Accept-language:fr
indicam fim
(carriage return (CR), line feed (LF) adicionais)
de mensagem
2: Camada de Aplicao 23
Mensagem de pedido HTTP: formato geral
2: Camada de Aplicao 24
Formato de mensagem HTTP: resposta
linha de status
(protocolo,
cdigo e
frase de status) HTTP/1.1 200 OK
Connection: close
Date: Thu, 07 Jul 2007 12:00:15 GMT
linhas de Server: Apache/1.3.0 (Unix)
cabealho Last-Modified: Sun, 06 May 2007 ...
Content-Length: 6821
Content-Type: text/html
2: Camada de Aplicao 26
Cdigos de status da resposta HTTP
Na primeira linha da mensagem de resposta servidor -> cliente.
200 OK
sucesso, objeto pedido entregue com a resposta
301 Moved Permanently
objeto pedido foi removido permanentemente, novo URL especificado
na linha de cabealho Location: da mensagem de resposta
400 Bad Request
cdigo genrico de erro mostrando que o pedido no pode ser
atendido pelo servidor
404 Not Found
documento pedido no existe no servidor
505 HTTP Version Not Supported
verso do protocolo HTTP requisitada no suportada pelo servidor
2: Camada de Aplicao 27
Interao usurio-servidor: autenticao
Meta da autenticao:
controle de acesso aos cliente servidor
documentos armazenados no
servidor Web
msg de pedido http comum
Autenticao: tipicamente
requer nome de usurio e senha 401: authorization req.
WWW authenticate:
stateless: cliente deve enviar
a cada pedido
Authorization: linha de msg de pedido http comum
cabealho na msg de pedido + Authorization:
com nome de usurio e senha
se no for apresentada, o msg de resposta http comum
servidor nega acesso e
coloca no cabealho da msg
de resposta
WWW-authenticate: msg de pedido http comum
+ Authorization:
tempo
Browser guarda nome de usurio e msg de resposta http comum
senha para evitar que sejam pedidos
ao usurio a cada novo acesso. 2: Camada de Aplicao 28
Interao usurio-servidor: cookies (RFC 6265)
Mecanismo alternativo para
identificar um usurio
servidor envia cookie ao
cliente servidor
cliente na mensagem de msg de pedido http comum
resposta. Ex.:
Set-cookie: 1678453 resposta http comum +
Set-cookie: #
cliente apresenta cookie
nas mensagens de pedido ao
posteriores. Ex.: msg de pedido http comum
especfica
Cookie: 1678453 cookie: #
do cookie
servidor compara cookie msg de resposta http comum
apresentado pelo cliente
com a informao guardada
no servidor. Permite: msg de pedido http comum ao
especfica
identificao simples de cookie: #
um usurio do cookie
msg de resposta http comum
ao servidor lembrar
preferncias de um
usurio 2: Camada de Aplicao 29
Web Cache (Servidor Proxy)
Meta: atender pedido HTTP em nome do servidor Web de origem
Usurio configura browser
para acessos Web via Servidor Web
servidor proxy de origem
Cliente Web
Cliente Web envia todos os Servidor
pedidos HTTP ao servidor Proxy
proxy
se o objeto est no servidor
proxy, este o encaminha
imediatamente na msg de
resposta HTTP
seno, solicita o objeto ao
servidor de origem e, em
seguida, encaminha-o ao Cliente Web
cliente Web numa msg de Servidor Web
resposta HTTP de origem
2: Camada de Aplicao 30
Motivos para o uso de servidor proxy
Reduo da intensidade de
trfego no enlace de acesso enlace de acesso
a 15 Mbps
muitas vezes, o enlace que
liga a rede da instituio ou rede da
instituio
ISP Internet comporta-se LAN 100 Mbps
como um enlace gargalo
servidor
proxy
2: Camada de Aplicao 31
Web cache: exemplo
Consideraes:
servidores
tamanho mdio dos objetos =
de origem
1 Mbits/objeto
taxa mdia dos pedidos de Internet
objetos = 15 pedidos/s pblica
atraso da Internet = 2 s
2: Camada de Aplicao 32
Web cache: exemplo (cont.)
Soluo possvel:
servidores
aumentar a largura de banda de origem
do enlace de acesso para,
digamos, 100 Mbps Internet
pblica
Consequncias:
intensidade de trfego na
LAN = 0,15 enlace de acesso
a 100 Mbps
intensidade de trfego no
rede da
enlace de acesso = 0,15
instituio LAN 100 Mbps
atraso total = atraso na
Internet + atraso no enlace de
acesso + atraso na LAN 2 s
custo muito elevado
2: Camada de Aplicao 33
Web cache: exemplo (cont.)
Instalando um servidor proxy:
supondo taxa de resposta
local = 0,4 servidores
de origem
Consequncias: Internet
40% dos pedidos sero pblica
satisfeitos rapidamente
60% dos pedidos sero
satisfeitos pelos servidores enlace de acesso
de origem a 15 Mbps
a utilizao do enlace de rede da
acesso reduzida para 60%, instituio LAN 100 Mbps
resultando em atrasos muito
reduzidos (~ 10 ms)
atraso total mdio = atraso na
Internet + atraso no enlace de servidor
acesso + atraso na LAN = proxy
0,6*2 s + 0,6*0,01 s +
0,4*0,01 s 1,2 s
2: Camada de Aplicao 34
GET condicional
cliente servidor
Meta: permitir que um cache
verifique se seus objetos msg de pedido http
objeto
esto atualizados If-modified-since:
<date> no
cliente: mensagem de pedido modificado
msg de resposta http
GET condicional especifica a HTTP/1.1
data da cpia disponvel no 304 Not Modified
cache local, usando a linha de
cabealho:
If-modified-since:
<date> msg de pedido http
If-modified-since: objeto
servidor: a mensagem de <date>
modificado
resposta no contm objeto msg de resposta http
se a cpia no cache atual HTTP/1.1 200 OK
HTTP/1.0 304 Not
Modified <data>
2: Camada de Aplicao 35
Transferncia de arquivos: FTP
transferncia
Interface cliente do arquivo servidor
de usurio FTP
FTP
FTP
usurio
no host sistema de sistema de
arquivos arquivos
local remoto
Modelo cliente/servidor
cliente: lado que inicia transferncia (pode ser de ou para o
sistema remoto) aps estabelecer a conexo TCP
servidor: host remoto
2: Camada de Aplicao 36
FTP: conexes separadas p/ controle e dados
2: Camada de Aplicao 37
FTP: conexes separadas p/ controle e dados
Cliente FTP contacta servidor FTP na
porta 21, utilizando TCP como
protocolo de transporte
conexo de controle
So estabelecidas duas conexes TCP porta 21
paralelas:
controle: troca comandos e
respostas entre cliente e servidor conexo de dados
(controle fora da banda) cliente porta 20 servidor
dados: dados de arquivo de/para
FTP FTP
servidor
2: Camada de Aplicao 39
Correio Eletrnico fila de
mensagens
saintes
Principais componentes: caixa de
correio do usurio
agente
agentes de usurio de
usurio
servidor agente
servidores de correio
de correio de
usurio
SMTP (Simple Mail Transfer
SMTP
Protocol ) servidor
de correio agente
SMTP de
Agente de Usurio usurio
leitor de correio
SMTP
agente
usado para: compor, editar, ler servidor de
de correio usurio
mensagens de correio
ex.: Eudora, Outlook, Netscape agente
Messenger de
usurio
mensagens saintes e entrantes agente
de
so armazenadas no servidor usurio
2: Camada de Aplicao 40
Correio Eletrnico: servidor de correio
Servidor de correio
agente
de
caixa de correio: contm usurio
mensagens entrantes (ainda servidor agente
de
no lidas pelo usurio) de correio
usurio
Fases da transferncia:
handshaking
transferncia de mensagens
encerramento
Interao comando/resposta
comandos: texto ASCII
resposta: cdigo e frase de status
1 mail
mail
server user
user server
2 agent
agent 3 6
4 5
2: Camada de Aplicao 43
Interao SMTP tpica
2: Camada de Aplicao 44
SMTP: ltimas palavras
SMTP usa conexes persistentes Comparao com HTTP:
SMTP requer que a mensagem de HTTP: pull (puxar)
correio (cabealho e corpo) seja
e-mail: push (empurrar)
em ASCII de 7 bits
2: Camada de Aplicao 46
Formato de uma mensagem de correio
2: Camada de Aplicao 47
A extenso MIME para dados que no seguem
o padro ASCII
MIME: Multipurpose Internet Mail Extensions
RFCs 2045 e 2046
2: Camada de Aplicao 48
A extenso MIME para dados que no seguem o
padro ASCII
From: ana@consumidor.br
verso MIME To: ronaldo@doces.br
Subject: Imagem de uma bela torta
mtodo usado MIME-Version: 1.1
p/ codificar dados Content-Transfer-Encoding: base64
Content-Type: image/jpeg
tipo, subtipo de
dados multimdia, base64 encoded data .....
parmetros .........................
......base64 encoded data
dados codificados
(corpo do e-mail)
2: Camada de Aplicao 49
Tipos MIME
Content-Type: tipo/subtipo; parmetros
text audio
exemplos de subtipos: html, exemplos de subtipos: basic
plain (codificao em 8 bits e lei A),
exemplos de parmetros: 32kadpcm (codificao ADPCM
charset=ISO-8859-1, de 32 Kbps)
ascii
application
image outros dados que precisam ser
exemplos de subtipos: jpeg, processados por um leitor de
gif email para serem visualizados
exemplos de subtipos: msword,
video octet-stream
exemplos de subtipos: mpeg,
quicktime
2: Camada de Aplicao 50
Tipo Multipart
From: ana@consumidor.br
To: ronaldo@doces.br
Subject: Imagem de uma bela torta
MIME-Version: 1.0
Content-Type: multipart/mixed; Boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Caro Ronaldo,
Em anexo envio a imagem de uma torta deliciosa.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
2: Camada de Aplicao 51
Protocolos de acesso ao correio
agente SMTP SMTP Protocolo agente
de
usurio de acesso de
usurio
2: Camada de Aplicao 54