Você está na página 1de 23

Camada de Aplicação

Nossos objetivos: Outros objetivos do capítulo


• conceitual, aspectos de • protocolos específicos:
implementação de – http
protocolos de aplicação – ftp
para redes – smtp
– paradigma cliente- – pop
servidor – dns
– modelos de serviço • programação de aplicações
• aprender sobre protocolos de rede
examinando algumas – socket API
aplicações populares
Aplicações e Protocolo de Aplicação
Aplicação: processos distribuídos em aplicação
transporte
comunicação rede
enlace
física
– rodam nos computadores
usuários da rede como
programas de usuário
– trocam mensagens para
realização da aplicação
– e.x., email, ftp, Web
Protocolos de aplicação aplicação
transporte
aplicação
transporte
rede
rede
– fazem parte das aplicações enlace
enlace
física
física
– definem mensagens trocadas e
as ações tomadas
– usam serviços de comunicação
das camadas inferiores
Aplicações de Rede

Processo: programa executando • agente usuário: software que


interfaceia com o usuário de um
num host. lado e com a rede de outro.
• dentro do mesmo host: – implementa protocolo da
interprocess communication camada de aplicação
(definido pelo OS). – Web: browser
• processos executando em – E-mail: leitor de correio
diferentes hosts se – streaming audio/video:
media player
comunicam com um protocolo
da camada de aplicação
Paradigma Cliente-Servidor
Aplicações de rede típicas têm aplicação
duas partes: cliente e servidor transporte
rede
enlace
física

Cliente: pedido
• inicia comunicação com o servidor
(“fala primeiro”)
• tipicamente solicita serviços do resposta
servidor,
• Web: cliente implementado no browser;
e-mail: leitor de correio aplicação
transporte
rede
Servidor: enlace
física
• fornece os serviços solicitados ao cliente
• e.x., Web server envia a página Web solicitada,
servidor de e-mail envia as mensagens, etc.
Interfaces de Programação
API: application programming Q: Como um processo “identifica” o
interface outro processo com o qual ele quer
se comunicar?
• define a interface entre a
– IP address do computador no qual o
camada de aplicação e de processo remoto executa
transporte – “port number” - permite ao
computador receptor determinar o
• socket: Internet API
processo local para o qual a
– dois processos se comunicam mensagem deve ser entregue.
enviando dados para o socket
e lendo dados de dentro do
socket
Serviços de Transporte
Perda de dados Banda Passante
• algumas aplicações (e.x., aúdio) • algumas aplicações (e.x.,
podem tolerar alguma perda multimedia) exigem uma
• outras aplicações (e.x., banda mínima para serem
transferência de arquivos, telnet) utilizáveis
exigem transferência de dados
100% confiável • outras aplicações (“aplicações
elasticas”) melhoram quando
Temporização a banda disponível aumenta
• algumas aplicações (e.x.,
telefonia Internet, jogos
interativos) exigem baixos
atrasos para operarem
Requisitos de Transporte de Aplicações Comuns

Applicação Perdas Banda Sensível ao Atraso

file transfer sem perdas elástica não


e-mail sem perdas elástica não
Web documents tolerante elástica não
real-time audio/video tolerante aúdio: 5Kb-1Mb sim, 100’s msec
vídeo:10Kb-5Mb
stored audio/video tolerante igual à anterior sim, segundos
jogos interativos tolerante Kbps sim, 100’s msec
e-business sem perda elástica sim
Serviços de Transporte da Internet

serviço TCP: serviço UDP:


• orientado á conexão: conexão • transferência de dados não
requerida entre cliente e servidor confiável entre os processos
transmissor e receptor
• transporte confiável dados
perdidos na transmissão são • não oferece: estabelecimento de
recuperados conexão, confiabilidade, controle
de fluxo e de congestionamento,
• controle de fluxo:
garantia de temporização e de
compatibilização de velocidade
banda mínima.
entre o transmissor e o receptor
• controle de congestionamento :
protege a rede do excesso de
tráfego
• não oferece: garantias de
temporização e de banda mínima
Aplicações e Protocolos de Transporte da Internet

Protocolo de Protocolo de
Aplicação Aplicação Transporte

e-mail smtp [RFC 821] TCP


acesso de terminais remotos telnet [RFC 854] TCP
Web http [RFC 2068] TCP
transferência de arquivos ftp [RFC 959] TCP
streaming multimedia RTP ou proprietario TCP ou UDP
(e.g. RealNetworks)
servidor de arquivos remoto NSF TCP ou UDP
telefonia Internet RTP ou proprietary tipicamente UDP
(e.g., Vocaltec)
Protocolo HTTP

http: hypertext transfer htt


pr
equ
protocol PC rodando htt est
pr
Explorer esp
• protocolo da camada de ons
e
aplicação da Web
• modelo cliente/servidor st
ue
– cliente: browser que p req se Servidor
tt on
solicita, recebe e apresenta h
resp rodando
p NCSA Web
objetos da Web htt
server
– server: envia objetos em
resposta a pedidos Mac rodando
• http1.0: RFC 1945 Navigator
• http1.1: RFC 2068
Protocolo HTTP
http: protocolo de transporte http é “stateless”
TCP: • o servidor não mantém
• cliente inicia conexão TCP (cria informação sobre os
socket) para o servidor na porta pedidos passados pelos
80 clientes
• servidor aceita uma conexão
TCP do cliente
• mensagens http (mensagens do Protocolos que mantém informações
protocolo de camada de de estado são complexos!
aplicação) são trocadas entre o • necessidade de organizar
browser (cliente http) e o informações passadas
servidor Web (servidor http) • se ocorrer um crash as
• A conexão TCP é fechada informações podem ser perdidas
ou gerar inconsistências entre o
cliente e o servidor
Exemplo de Operação
Usuário entra com a URL: (contém referência a
www.someSchool.edu/someDepartment/home.index 10 imagens jpeg)

1a. cliente http inicia conexão TCP ao


servidor http (processo) em 1b. servidor http no host
www.someSchool.edu. Porta 80 www.someSchool.edu esperando
é a default para o servidor http . pela conexão TCP na porta 80.
“aceita” conexão, notificando o cliente

2. cliente http client envia http request


message (contendo a URL) para o
socket da conexão TCP 3. servidor http recebe mensagem de
pedido, forma response message
contendo o objeto solicitado
(someDepartment/home.index),
envia mensagem para o socket

tempo
Exemplo (cont.)
4. servidor http fecha conexão TCP.

5. cliente http recebe mensagem de


resposta contendo o arquivo html,
apresenta o conteúdo html.
Analisando o arquivo html
tempo encontra 10 objetos jpeg
referenciados

6. Passos 1-5 são repetidos para cada um


dos 10 objetos jpeg.
Conexões persistentes e não-persistentes

Não-persistente Persistente
• http/1.0: servidor analisa pedido, • modo default para htp/1.1
envia resposta e fecha a conexão • na mesma conexão TCP são
TCP trazidos vários objetos
• 2 RTTs para obter um objeto • o cliente envia pedido para todos
– Conexão TCP os objetos referenciados tão logo
– solicitação e transferência do ele recebe a página HTML básica .
objeto • poucos RTTs, menos slow start.
• cada transferência sofre por causa
do mecanismo de slow-start do TCP
• muitos browsers abrem várias
conexões paralelas
Formato das Mensagens
• dois tipos de mensagens HTTP: request, response
• http request message:
– ASCII (formato legível para humanos)

linha de pedido
(comandos GET GET /somedir/page.html HTTP/1.0
, POST,HEAD ) User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
linhas de Accept-language:fr
cabeçalho

(extra carriage return, line feed)


Carriage return,
line feed
indica fim da mensagem
HTTP request: formato geral
formatos HTTP: response
linha de status
(protocolo
código de status HTTP/1.0 200 OK
frase de status) Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
linhas de
Content-Length: 6821
cabeçalho
Content-Type: text/html

data data data data data ...


dados, e.x.,
arquivo html
Códigos de status das respostas

200 OK
– request succeeded, requested object later in this message
301 Moved Permanently
– requested object moved, new location specified later in this
message (Location:)
400 Bad Request
– request message not understood by server
404 Not Found
– requested document not found on this server
505 HTTP Version Not Supported
HTTP Cliente: faça você mesmo!

1. Telnet para um servidor Web:


telnet www.eurecom.fr 80 Abre conexão TCP para a porta 80
(porta default do servidor http) em www.eurecom.fr.
Qualquer coisa digitada é enviada
para a porta 80 em www.eurecom.fr

2. Digite um pedido GET http:


GET /~ross/index.html HTTP/1.0 Digitando isto (tecle carriage
return duas vezes), você envia este
pedido HTTP GET mínimo (mas completo)
ao servidor http

3. Examine a mensagem de resposta enviada pelo servidor


http!
Cookies
cliente servidor
• gerados e lembrados pelo
servidor, usados mais tarde usual http request msg ação
específica
para: usual http response +
Set-cookie: # do cookie
– autenticação
– lembrar preferências usual http request msg
dos usuários ou prévias cookie: # ação
específica
escolhas usual http response msg do cookie
• servidor envia “cookie” ao
cliente na resposta HTTP usual http request msg
ação
Set-cookie: 1678453 cookie: #
específica
• cliente apresenta o cookie usual http response msg do cookie
em pedidos posteriores
cookie: 1678453
Conditional GET: armazenando no cliente
servidor
• Razão: não enviar objeto se acliente
versão que o cliente já possui http request msg
If-modified-since:
está atualizada. <date> objeto
não
• cliente: especifica data da
http response modificado
versão armazenada no pedido
HTTP/1.0
HTTP 304 Not Modified
If-modified-since:
<date>
http request msg
• servidor: resposta não If-modified-since:
<date> objeto
contém objeto se a cópia é modificado
atualizada: http response
HTTP/1.1 200 OK
HTTP/1.0 304 Not
<data>
Modified
Web Caches (proxy server)
Objetivo: atender o cliente sem envolver o servidor Web
originador da informação
servidor
original

• usuário configura o browser: htt


Proxy
acesso Web é feito através de pr
equ server request
um proxy cliente http est
http onse
res p
pon p res
• cliente envia todos os pedidos se htt
uest
http para o web cache
p req se
tt on
esp
– se o objecto existe no web h
p r
htt
cache: web cache retorna o
objecto
– ou o web cache solicita objecto cliente
servidor
do servidor original, então original
envia o objeto ao cliente.
Porque Web Caching?
servidores
• armazenamento está originais
“perto” do cliente (ex., na Internet
mesma rede) pública

• menor tempo de resposta


• reduz o tráfego para
enlace de acesse
servidor distante 1.5 Mbps
– links externos podem ser rede
caros e facilmente institucional
10 Mbps LAN
congestionáveis

cache
institucional

Você também pode gostar