Вы находитесь на странице: 1из 61

Fundamentos de Redes

Prof. Juliana Fernandes Camapum


juliana@ene.unb.br
www.ene.unb.br/~juliana/cursos/fundamentos

2a: Camada de Aplicao

Captulo 2: Camada de Aplicao


Metas do captulo:
aspectos conceituais e

de implementao de
protocolos de aplicao
em redes

modelos de servio da
camada de transporte
Arquitetura clienteservidor

aprenda sobre protocolos

atravs do estudo de
protocolos populares da
camada de aplicao:

HTTP

FTP

SMTP/ POP3/ IMAP

DNS

Arquitetura peer-to-peer
(P2P)
2a: Camada de Aplicao

Captulo 2: Roteiro
2.1 Princpios dos protocolos da camada de aplicao
2.2 A Web e o HTTP
2.3 Transferncia de Arquivo (File Transfer)

FTP

2.4 Correio Eletrnico

SMTP, POP3, IMAP

2.5 DNS: servio de diretrio da Internet


2.6 Compartilhamento de arquivos P2P

2a: Camada de Aplicao

Algumas aplicaes de rede


E-mail

Voz sobre IP

Web

Vdeo conferncia em

Instant messaging
Login remoto
Compartilhamento de

arquivos P2P
Jogos de rede multiusurios
Vdeo-clipes
armazenados

tempo real
Computao paralela
em larga escala
?
?
?

2a: Camada de Aplicao

Criando uma aplicao de rede


So programas que

Executam em diferentes sistemas


finais
Comunicam-se atravs da rede
Ex., Web: servidor Web (Apache,
Microsoft) envia pgina Web
(documento HTML) requisitada pelo
navegador (browser-Internet
Explorer) atravs de uma troca de
mensagens (HTTP)

aplicao
transporte
rede
enlace
fsica

So programas no relacionados ao ncleo


da rede

Dispositivos do ncleo da rede no


executam aplicaes de usurios

aplicao
transporte
rede
enlace
fsica

aplicao
transporte
rede
enlace
fsica

Aplicaes nos sistemas finais permite


rpido desenvolvimento e disseminao
2a: Camada de Aplicao

Arquiteturas das aplicaes


Cliente-servidor
Peer-to-peer (P2P)
Hbrido de cliente-servidor e P2P

2a: Camada de Aplicao

Arquitetura cliente-servidor
Servidor:
Sempre ligado
Endereo IP permanente
Prov servios pedidos pelo cliente
Escalabilidade com server farms - conjunto
de servidores que formam um servidor
virtual nico infra-estrutura intensa
(Google,Amazon,YouTube, YahooMail)
Cliente:
Comunica-se com o servidor (fala primeiro)
Pede servios ao servidor
Pode estar conectado intermitentemente
Pode ter endereos IP dinmicos
No se comunica diretamente com outros
clientes

2a: Camada de Aplicao

Arquitetura P2P pura


No h servidor sempre ligado
Sistemas finais arbitrrios se

comunicam diretamente
chamados pares (peers)
No passam por servidores
dedicados, so controlados por
usurios
Pares esto conectados
intermitentemente e mudam
endereos IP
Exemplo: BitTorrent (distribuio
arquivos), eMule (compartilhamento
arquivos), Skype (telefonia)

Alta escalabilidade
Porm, difcil de gerenciar
2a: Camada de Aplicao

Hbrido de cliente-servidor e P2P


Napster (extinta)

Transferncia de arquivos P2P


Busca de arquivos centralizada:

Pares registram contedo no servidor central


Pares consultam o mesmo servidor central para
localizar contedo

Mensagem instantnea - Instant messaging


Conversa entre dois usurios P2P
Localizao e deteco de presena
centralizadas:

Usurios registram o seu endereo IP junto ao servidor


central quando ficam online
Usurios consultam o servidor central para encontrar
endereos IP dos outros usurios
2a: Camada de Aplicao

Processos em comunicao
Processo: programa que
executado em um hospedeiro
processos no mesmo
hospedeiro se comunicam
usando comunicao entre
processos definida pelo
sistema operacional (SO)
processos em hospedeiros
distintos se comunicam por
protocolo da camada de
aplicao, trocando mensagens
atravs da rede
Processo servidor: processo
que espera para ser
contactado

Processo cliente: processo

que inicia a comunicao

Faz a interface com o


usurio acima e com a rede
abaixo
implementa protocolos nvel
de aplicao
Ex. Web: browser

Nota: aplicaes com arquiteturas P2P


possuem processos clientes e
processos servidores
2a: Camada de Aplicao

10

Sockets (Portas)
Os processos enviam/

recebem mensagens
para/dos seus sockets
Um socket anlogo a uma
porta

Processo transmissor envia a


mensagem atravs da sua porta
O processo transmissor assume
a existncia da camada de
transporte no outro lado da sua
porta
A camada de transporte faz
com que a mensagem chegue
porta do processo receptor

Cliente

Servidor
controlado pelo
desenvolvedor da
aplicao (Browser)

processo

processo

socket

socket

TCP com
buffers,
variveis

Internet

TCP com
buffers,
variveis

controlado
pelo SO

API Interface de programao de aplicao interface entre a

aplicao e a camada de transporte: (1) escolha do protocolo de


transporte; (2) habilidade para fixar alguns parmetros (ex.
tamanho mximo do buffer e do segmento)

2a: Camada de Aplicao

11

Endereando os processos
Para que um processo receba

mensagens, ele deve possuir


um identificador

host possui um endereo


IP nico de 32 bits

Cada

host no
qual o processo est sendo
executado suficiente para
identificar o processo?

P: o endereo IP do

Resposta: No, muitos

O identificador inclui tanto o

endereo IP quanto os nmeros


das portas associadas com o
processo no host.
Exemplo de nmeros de portas:

Servidor HTTP: porta 80

Servidor de Correio: porta 25

Mais sobre isto

posteriormente.

processos podem estar


executando no mesmo host
2a: Camada de Aplicao

12

Os protocolos da camada de
aplicao definem
Tipos de mensagens

trocadas, ex. mensagens


de pedido e resposta
Sintaxe dos tipos das
mensagens: campos
presentes nas mensagens e
como so identificados
Semntica dos campos,
i.e., significado da
informao nos campos
Regras para quando os
processos enviam e
respondem s mensagens

Protocolos de domnio
pblico:
definidos em RFCs
Permitem a
interoperao
ex, HTTP e SMTP
Protocolos proprietrios:
Ex., KaZaA, Skype

2a: Camada de Aplicao

13

De que servio de transporte uma aplicao


precisa?
Largura de banda

Perda de dados

algumas aplicaes (p.ex.,

algumas aplicaes (p.ex.

udio) podem tolerar algumas


perdas
outras (p.ex., transf. de
arquivos, telnet) requerem
transferncia 100% confivel

multimdia) requerem
quantia mnima de banda
para serem viveis
outras aplicaes (apls
elsticas) conseguem usar
qualquer quantia de banda
disponvel

Segurana

Temporizao

algumas aplicaes (p.ex.,

telefonia Internet, jogos


interativos) requerem baixo
retardo para serem viveis

Criptografar os dados para

garantir confidenciabilidade
Autenticidade
TCP-enhanced with SSL
(Capt. 8)

SSL = Secure Socket Layer

2a: Camada de Aplicao

14

Requisitos do servio de transporte de aplicaes


comuns
Aplicao

Perdas

Banda

Sensibilidade
temporal

transferncia de arqs

sem
perdas

elstica

no

elstica

no

sem
perdas

elstica

no

sem
perdas

udio: 5Kb-1Mb

correio
documentos WWW
udio/vdeo de
tempo real
videoconferncia
udio/vdeo gravado
jogos interativos
Mensagem
instantnea

tolerante
tolerante

vdeo:10Kb-5Mb

sim, 100s mseg

como anterior

sim, alguns segs

> alguns Kbps

sim, 100s mseg

elstica

sim e no

tolerante
A Internet de hoje ainda no
prov garantia de Banda e Sensibilidade Temporal
2a: Camada de Aplicao
15
sem

Servios providos por protocolos de


transporte Internet
Servio TCP:

Orientado conexo:
inicializao requerida entre
cliente e servidor
transporte confivel entre
processos remetente e
receptor
controle de fluxo: remetente
no vai afogar receptor
controle de
congestionamento:
estrangular remetente quando
a rede estiver carregada
no prov: garantias
temporais ou de banda mnima

Servio UDP:
transferncia de dados no

confivel entre processos


remetente e receptor
no prov: estabelecimento
da conexo, confiabilidade,
controle de fluxo, controle
de congestionamento,
garantias temporais ou de
banda mnima
Protocolo leve

P: Qual o interesse em ter um


UDP?
2a: Camada de Aplicao

16

Aplicaes Internet: seus protocolos e seus


protocolos de transporte
Aplicao
correio eletrnico
acesso terminal remoto
Web
transferncia de arquivos
streaming multimdia
telefonia Internet

Protocolo da
camada de apl

Protocolo de
transporte usado

SMTP [RFC 2821]

TCP

telnet [RFC 854]

TCP

HTTP [RFC 2616]

TCP

FTP [RFC 959]

TCP

HTTP(ex. YouTube), TCP ou UDP


RTP
tipicamente UDP
SIP, RTP, ou
Proprietrio (Skype)
2a: Camada de Aplicao

17

Captulo 2: Roteiro
2.1 Princpios dos protocolos da camada de

aplicao

2.2 Web e HTTP


2.3 FTP
2.4 Correio Eletrnico

SMTP, POP3, IMAP

2.5 DNS
2.6 Compartilhamento de arquivos P2P
2a: Camada de Aplicao

18

Web e HTTP
Pginas Web consistem de objetos
Objeto pode ser um arquivo HTML, uma imagem

JPEG, um vdeo clipe, um arquivo de udio,

Pginas Web consistem de um arquivo HTML base

que inclui vrios objetos referenciados

Cada objeto enderevel por uma URL


Exemplo de URL:

www.someschool.edu/someDept/pic.gif
nome do hospedeiro servidor
URL = Uniform Resource Locator

nome do caminho
2a: Camada de Aplicao

19

Protocolo HTTP
HTTP: HyperText Transfer

Protocol protocolo de
transferncia de hipertexto
protocolo da camada de
aplicao da Web
arquitetura cliente/servidor
cliente: browser que pede,
recebe, mostra objetos
Web
servidor: servidor Web
envia objetos em resposta
a pedidos
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2068

PC executa
Explorer

ped
ido

res
pos

htt
p

ta
htt
p

ttp
h
Servidor
ido
tp
d
t
e
h
p
rodando um
sta
o
p
servidor Web
res
(ex. UnB)

Mac executa
Navigator

2a: Camada de Aplicao

20

Mais sobre o protocolo HTTP


Usa servio de transporte
TCP:
cliente inicia conexo TCP

(cria socket) ao servidor,


porta 80
servidor aceita conexo TCP
do cliente
mensagens HTTP (mensagens
do protocolo da camada de
apl) trocadas entre browser
(cliente HTTP) e servidor
Web (servidor HTTP)
encerra conexo TCP

HTTP sem estado


servidor no mantm

informao sobre pedidos


anteriores do cliente

Nota

Protocolos que mantm


estado so complexos!
histria passada (estado)
tem que ser guardada
Caso caia servidor/cliente,
suas vises do estado
podem ser inconsistentes,
devem ser reconciliadas
2a: Camada de Aplicao

21

Conexes HTTP
HTTP no persistente
No mximo um objeto
enviado numa
conexo TCP
HTTP/1.0 usa o HTTP
no persistente

HTTP persistente
Mltiplos objetos
podem ser enviados
sobre uma nica
conexo TCP entre
cliente e servidor
HTTP/1.1 usa conexes
persistentes no seu
modo default

2a: Camada de Aplicao

22

Exemplo de HTTP no persistente


Supomos que usurio digita a URL www.algumaUniv.br/algumDepartmento/index.html
(contm texto,
referncias a 10
imagens jpeg)
1a. Cliente http inicia conexo
TCP a servidor http (processo)
1b. servidor http no hospedeiro
www.algumaUniv.br na Porta
www.algumaUniv.br espera por
80 padro para servidor http.
conexo TCP na porta 80.
aceita conexo, avisando ao
cliente
2. cliente http envia mensagem de
pedido de http (contendo URL
incluindo /algumDepartamento
3. servidor http recebe mensagem
/index.html) atravs do socket
de pedido, formula mensagem
da conexo TCP
de resposta contendo objeto
solicitado (algumDepartmento
/index.html), envia mensagem via
socket

tempo

2a: Camada de Aplicao

23

Exemplo de HTTP no persistente


(cont.)
4. servidor http encerra conexo
TCP .

5. cliente http recebe mensagem

de resposta contendo arquivo


html, mostra html. Analisando
arquivo html, encontra 10
objetos jpeg referenciados

6. Passos 1 a 5 repetidos para

cada um dos 10 objetos jpeg

tempo
2a: Camada de Aplicao

24

Modelagem do tempo de resposta


Definio de RTT (Round Trip
Time): intervalo de tempo
entre a ida e a volta de um
pequeno pacote entre um
cliente e um servidor
Tempo de resposta:
um RTT para iniciar a conexo
TCP
um RTT para o pedido HTTP e
o retorno dos primeiros bytes
da resposta HTTP
tempo de transmisso do
arquivo
total = 2RTT+tempo de
transmisso

Inicia a conexo
TCP
RTT
solicita
arquivo

tempo para
transmitir
o arquivo

RTT
arquivo
recebido
tempo

tempo

2a: Camada de Aplicao

25

HTTP com conexo persistente


Problemas com o HTTP no
persistente:

requer 2 RTTs para cada objeto

SO aloca recursos do host para


cada conexo TCP

os browser freqentemente
abrem conexes TCP paralelas
para recuperar os objetos
referenciados

HTTP persistente

o servidor deixa a conexo


aberta aps enviar a resposta

mensagens HTTP seguintes entre


o mesmo cliente/servidor so
enviadas nesta conexo

Persistente sem pipelining


(paralelismo):
o cliente envia um novo
pedido apenas quando a
resposta anterior tiver sido
recebida
um RTT para cada objeto
referenciado
Persistente com pipelining
default no HTTP/1.1
o cliente envia os pedidos
logo que encontra um objeto
referenciado
pode ser necessrio apenas
um RTT para todos os
objetos referenciados
2a: Camada de Aplicao

26

Formato de mensagem HTTP: pedido


Dois tipos de mensagem HTTP:

pedido, resposta

mensagem de pedido HTTP:


ASCII (formato legvel por pessoas)
linha de requisio
(comandos GET,
POST, HEAD, PUT,
DELETE)
linhas do
cabealho
Carriage return e
line feed, linha em branco,
indicam fim de mensagem

GET /somedir/page.html HTTP/1.0


Host: www.someschool.edu
User-agent: Mozilla/4.0
Connection: close
Accept-language:fr
(carriage return (CR), line feed(LF) adicionais)

ASC II - American Standard Code for Information Interchange II


256 caracteres codificados em 8 bits
2a: Camada de Aplicao

27

Mensagem de pedido HTTP: formato


geral
Linha de
requisio

Linhas do
Cabealho
Linha em branco
Corpo da
mensagem

2a: Camada de Aplicao

28

Formato de mensagem HTTP: resposta


linha de estado
(protocolo,
cdigo de estado,
frase de estado)

linhas de
cabealho
Nmero de bytes
do objeto

dados, p.ex.,
arquivo html
solicitado

HTTP/1.1 200 OK
Connection close
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 ...
Content-Length: 6821
Quando o objeto
Content-Type: text/html
foi criado
ou modificado

dados dados dados dados ...

2a: Camada de Aplicao

31

Cdigos de estado da resposta HTTP


Na primeira linha da mensagem de resposta
servidor->cliente. Alguns cdigos tpicos:
200 OK

sucesso, objeto pedido segue mais adiante nesta mensagem

301 Moved Permanently

objeto pedido mudou de lugar, nova localizao


especificado mais adiante nesta mensagem (Location:)

400 Bad Request

mensagem de pedido no entendida pelo servidor

404 Not Found

documento pedido no se encontra neste servidor

505 HTTP Version Not Supported

verso de http do pedido no usada por este servidor


2a: Camada de Aplicao

32

Cookies: manuteno do estado da conexo


So textos que podem ser armazenados no disco rgido com dados do usurio.
Permitem que sites identifiquem e monitorem os seus usurios.
Muitos dos principais sites Web usam
cookies
Quatro componentes:
1.

linha de cabealho do cookie na


mensagem de resposta HTTP

2.

Set-cookie: 1678

linha de cabealho do cookie na


mensagem de pedido HTTP

Exemplo:

Cookie: 1678

3.

arquivo do cookie mantido no host


do usurio e gerenciado pelo browser
do usurio

4.

Banco de Dados (BD) de apoio no site


Web

Suzana acessa a Internet


sempre do mesmo PC
Ela visita um site
especfico de comrcio
eletrnico pela primeira
vez
Quando os pedidos iniciais
HTTP chegam no site, o
site cria uma ID (ex. 1678)
nica e cria uma entrada
para a ID no Banco de
Dados de apoio

2a: Camada de Aplicao

33

Cookies: manuteno do estado (cont.)

arquivo de
Cookies
amazon: 1678
ebay: 8734

servidor

msg usual pedido http


resposta usual http +

Set-cookie: 1678
msg usual pedido http

cookie: 1678
resposta usual http

uma semana depois:


arquivo de
Cookies
amazon: 1678
ebay: 8734

msg usual pedido http

cookie: 1678
resposta usual http

en
servidor apo trada
cria a ID 1678 io no

para o usurio
ao
especfica
do cookie

BD

de

so
aces

ac
es
so

arquivo de
Cookies
Host - ID
ebay: 8734

cliente

ao
especfica
do cookie
2a: Camada de Aplicao

34

Cookies (continuao)
O que os cookies podem fazer:
Autorizao aps
armazenamento do registro
da pessoa
Registro da lista de
compras no Ecommerce
Sugestes -recomendar
produtos
estado da sesso do usurio
(Web email) identificao
do usurio
Eles armazenam coisas que
voc acessou, sites que
voc viu

nota

Cookies e privacidade:
cookies permitem que os sites

aprendam muito sobre voc


voc pode fornecer nome e e-mail

para os sites
mecanismos de busca usam

redirecionamento e cookies para


aprender ainda mais sobre voc
agncias de propaganda obtm

perfil a partir dos sites visitados


e oferecem produtos perturbando
os usurios (ex. DoubleClick)
2a: Camada de Aplicao

35

Cache Web (servidor proxy)


Meta: atender pedido do cliente sem envolver servidor de origem
usurio configura browser:

acessos Web via proxy


(representante)

cliente envia todos

pedidos HTTP ao proxy

se objeto est no cache ,


este o devolve
imediatamente na
resposta HTTP

seno, solicita objeto do


servidor de origem,
depois devolve resposta
HTTP ao cliente

cliente

Servidor
de origem

Servidor
proxy

ped
ido
htt
res
p
pos
ta
htt
p
ttp
h
ido
tt p
d
h
e
p
s ta
o
p
res

cliente

ttp
h
o
t tp
did
e
h
p
sta
o
p
res

Servidor
de origem
2a: Camada de Aplicao

36

Mais sobre Caches Web


Cache atua tanto como

cliente quanto como


servidor

Tipicamente o cache

instalado por um ISP


(universidade, empresa,
ISP residencial)

Para que fazer cache Web?


Reduo do tempo de

resposta para os pedidos


do cliente

Reduo do trfego no

canal de acesso de uma


instituio

A Internet cheia de caches

permitem que provedores


de contedo pobres
efetivamente forneam
contedo!

2a: Camada de Aplicao

37

Exemplo de cache (1)

Servidores
de origem

Hipteses

Tamanho mdio dos objetos = 100k bits

Taxa mdia de solicitaes dos browsers de


uma instituio para os servidores originais =
15/seg

Atraso do roteador institucional para qualquer

Internet
pblica

servidor origem e de volta ao roteador = 2seg


Conseqncias

Utilizao da LAN =
(100kx15)bps/10Mbps=15%

Utilizao do canal de acesso =


(100kx15)bps/1,5Mbps=100%

enlace de acesso
1,5 Mbps
rede da
instituio

LAN 10 Mbps

Atraso total = atraso da Internet + atraso de


acesso + atraso na LAN = 2 seg + minutos +
milisegundos

2a: Camada de Aplicao

38

Exemplo de cache (2)

Servidores
de origem

Soluo em potencial
Aumento da largura de banda do

canal de acesso para, por exemplo,


10 Mbps

Internet
pblica

Conseqncias
Utilizao da LAN = 15%
Utilizao do canal de acesso = 15%
Atraso total = atraso da Internet +

atraso de acesso + atraso na LAN =


2 seg + msegs + msegs

enlace de acesso
10 Mbps
rede da
instituio

LAN 10 Mbps

Freqentemente esta uma

ampliao cara
2a: Camada de Aplicao

39

Exemplo de cache (3)

Servidores
de origem

Instale uma cache


Assuma que a taxa de acerto seja

de 0,4
Conseqncias

Internet
pblica

40% dos pedidos sero atendidos

quase que imediatamente

enlace de acesso
1,5 Mbps

60% dos pedidos sero servidos

pelos servidores de origem


Utilizao do canal de acesso

reduzido para 60%, resultando em


atrasos desprezveis (ex. 0,01seg)
Atraso total = atraso da Internet

+ atraso de acesso + atraso na


LAN = 0,6x2 seg + 0,6x0,01 segs +
0,4x(0,01seg) < 1,3 segs

rede da
instituio

LAN 10 Mbps

cache
institucional
2a: Camada de Aplicao

40

GET condicional
Servidor
de origem

cache
Meta: no enviar objeto se

cliente j tem (no cache)


verso atual
cache: especifica data da
cpia no cache no pedido
http
If-modified-since:
<date>
servidor: resposta no

contm objeto se cpia no


cache atual:
HTTP/1.0 304 Not
Modified

msg de pedido http


If-modified-since:
<date>

resposta http
HTTP/1.0
304 Not Modified

objeto
no
modificado

msg de pedido http


If-modified-since:
<date>

resposta http

objeto
modificado

HTTP/1.1 200 OK

<data>

2a: Camada de Aplicao

41

Experimente voc com HTTP (do lado


cliente)
1. Use o analisador de rede Wireshark para observar as mensagens do protocolo HTTP trocadas entre
cliente e servidor.

1.Abrir o programa Wireshark e selecionar


1. Menu: Capture->Options (selecionar a sua interface de
rede) clique em ok
2. Menu: Capture->Start
2.Abrir o browser: digitar link - http://www.ene.unb.br/~juliana/

Abre conexo TCP para a porta 80 (porta padro do servidor


http) a www.ene.unb.br
O pedido GET ser enviado ao servidor http
Examine a mensagem do pedido do cliente e resposta enviada
pelo servidor HTTP!
2a: Camada de Aplicao

42

Analisador de Rede Wireshark Captura HTTP

2a: Camada de Aplicao

43

Captulo 2: Roteiro
2.1 Princpios dos protocolos da camada de aplicao
2.2 Web e HTTP
2.3 FTP
2.4 Correio Eletrnico

SMTP, POP3, IMAP

2.5 DNS
2.6 Compartilhamento de arquivos P2P

2a: Camada de Aplicao

44

FTP: o protocolo de transferncia


de arquivos

usurio
na
estao

Interface cliente
do usurio FTP
FTP

transferncia
do arquivo

FTP
servidor
sistema de
arquivos
remoto

sistema de
arquivos
local

transferir arquivo de/para hospedeiro remoto


modelo cliente/servidor

cliente: lado que inicia transferncia (pode ser de ou


para o sistema remoto)
servidor: hospedeiro remoto
ftp: RFC 959
servidor ftp: portas 20 e 21

2a: Camada de Aplicao

45

FTP: conexes separadas p/ controle, dados


cliente FTP contata servidor

FTP na porta 21, especificando o


TCP como protocolo de
transporte
O cliente obtm autorizao
atravs da conexo de controle
O cliente consulta o diretrio
remoto enviando comandos
atravs da conexo de controle
Quando o servidor recebe um
comando para a transferncia de
um arquivo, ele abre uma
conexo de dados TCP para o
cliente
Aps a transmisso de um
arquivo o servidor fecha a
conexo

conexo de controle
TCP, porta 21

cliente
FTP

conexo de dados
TCP, porta 20

servidor
FTP

O servidor abre uma segunda

conexo TCP para transferir


outro arquivo
Conexo de controle: fora da
faixa
Servidor FTP mantm o
estado: diretrio atual,
autenticao anterior
2a: Camada de Aplicao

46

FTP: comandos, respostas


Comandos tpicos:

Cdigos de retorno tpicos

enviados em texto ASCII

cdigo e frase de status (como

pelo canal de controle


USER nome
PASS senha
LIST devolve lista de
arquivos no diretrio atual
RETR arquivo recupera
(l) arquivo remoto
STOR arquivo armazena
(escreve) arquivo no
hospedeiro remoto

para http)
331 Username OK, password
required
125 data connection
already open; transfer
starting
425 Cant open data
connection
452 Error writing file

2a: Camada de Aplicao

47

Wireshark Captura FTP

2a: Camada de Aplicao

48

Captulo 2: Roteiro
2.1 Princpios dos protocolos da camada de aplicao
2.2 Web e HTTP
2.3 FTP
2.4 Correio Eletrnico

SMTP, POP3, IMAP

2.5 DNS
2.6 Compartilhamento de arquivos P2P

2a: Camada de Aplicao

49

Correio Eletrnico
Trs grandes componentes:
Agentes dos usurios
Servidores de mensagens
Protocolo de transferncia de

mensagens - Simple Mail Transfer


Protocol: SMTP
Agente do Usurio
leitor de mensagens

Servidor de
mensagens

SMTP
SMTP

compe, edita, l mensagens de correio


p.ex., Eudora, Outlook, elm, Netscape

Messenger
mensagens enviadas e recebidas so

agente
de
usurio

SMTP
Servidor de
mensagens

armazenadas no servidor
agente
de
usurio

fila de
mensagens
de sada
caixa de
correio do usurio
agente
de
usurio
Servidor de
mensagens

agente
de
usurio

agente
de
usurio

agente
de
usurio
2a: Camada de Aplicao

50

Correio Eletrnico: servidores de correio


Servidores de correio
caixa de mensagens contm

mensagens que chegam (para serem


lidas) para o usurio
fila de mensagens contm mensagens

servidor de
mensagens

de sada (a serem enviadas)

SMTP

protocolo SMTP (push- envio de

mensagem) entre servidores de


mensagens

cliente: servidor de envio de


mensagens
servidor: receptor de
mensagens

agente
de
usurio

SMTP
SMTP
Servidor de
mensagens

agente
de
usurio

agente
de
usurio
Servidor de
mensagens

agente
de
usurio

agente
de
usurio
2a: Camada de Aplicao

51

Correio Eletrnico: SMTP [RFC 2821]


usa TCP para o envio confivel de mensagens do correio

do cliente ao servidor, porta 25

transferncia direta: servidor remetente (cliente) ao

servidor receptor

trs fases da transferncia

handshaking (cumprimento)

envio das mensagens

trmino

interao comando/respostas

comandos: texto ASCII

respostas: cdigo de status e frase explicativa

mensagens precisam ser em ASCII de 7-bits


2a: Camada de Aplicao

52

Cenrio: Alice envia mensagem para Bob


4) Caso consiga conexo, o
cliente SMTP envia a
mensagem de Alice atravs
da conexo TCP
5) O servidor de mensagens
de Bob coloca a mensagem
na caixa de e-mail de Bob
6) Bob usa o seu Agente de
Usurio para ler a
mensagem

1) Alice compe uma


mensagem para
bob@someschool.edu
2) Alice envia a mensagem para
o seu servidor de
mensagens; a mensagem
colocada na fila
3) O lado cliente do SMTP
abre uma conexo TCP com
o servidor de mensagens de
Bob
1
user
agent

mail
server
3

SMTP

Cliente SMTP

mail
server
5

user
agent

Servidor SMTP
2a: Camada de Aplicao

53

Interao SMTP tpica


S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:

S: servidor (recebe msg correio)


C: cliente (envia msg correio)

220 doces.br
HELO consumidor.br
250 Hello consumidor.br, pleased to meet you
MAIL FROM: <ana@consumidor.br>
250 ana@consumidor.br... Sender ok
RCPT TO: <bernardo@doces.br>
250 bernardo@doces.br ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Voce gosta de chocolate?
Que tal sorvete?
.
250 Message accepted for delivery
QUIT
221 doces.br closing connection

Cliente 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT


Serviror respostas: cdigo e explicaes(opcionais)

2a: Camada de Aplicao

54

SMTP: resumo
Comparao com HTTP
SMTP usa conexes

persistentes
SMTP requer que a mensagem
(cabealho e corpo) seja em
ASCII de 7-bits
Por exemplo: uma imagem deve
ser convertida para ASCII
antes de ser enviada
receptor deve decodificar
servidor SMTP usa
CRLF.CRLF para reconhecer o
final da mensagem
CR- Carriage return
LF- Line Feed

pull (cliente puxa


objeto do servidor)
SMTP: push (cliente
empurra mensagem para
servidor)
HTTP:

ambos tm interao

comando/resposta, cdigos
de status em ASCII

HTTP: cada objeto

encapsulado em sua prpria


mensagem de resposta
SMTP: mltiplos objetos
podem ser enviados numa
nica mensagem
2a: Camada de Aplicao

55

Formato de uma mensagem


SMTP: protocolo para trocar
mensagens
RFC 822: padro para formato
de mensagem de texto:
linhas de cabealho, p.ex.,
To:
From:
Subject:
diferentes dos comandos de
smtp!

cabealho

linha em
branco

corpo

corpo

a mensagem, somente de
caracteres ASCII
2a: Camada de Aplicao

56

Formato de mensagem: extenses


multimdia
SMTP somente pode enviar mensagens no formato ASCII de 7

bits
MIME (Multipurpose Internet Mail Extensions)

Extenso do e-mail para multimdia RFC 2045, 2056


Permite dados que no so ASCII
Linhas adicionais no cabealho da mensagem para declarar o tipo do
contedo MIME
No um protocolo de e-mail e no pode substituir o SMTP, apenas
uma extenso do SMTP

2a: Camada de Aplicao

57

Formato de mensagem: extenses multimdia


MIME (Multipurpose

Internet Mail Extensions)

Extenso do e-mail para multimdia RFC 2045, 2056

verso MIME
mtodo usado
para codificar dados
Dados multimdia
tipo, subtipo,
parmetros
Dados codificados

From: ana@consumidor.br
To: bernardo@doces.br
Subject: Imagem de uma bela torta
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data

2a: Camada de Aplicao

58

Tipos MIME
Content-Type: tipo/subtipo; parmetros

Text

Audio

subtipos exemplos: plain,

subtipo exemplo : 32k

html
charset=iso-8859-1,
ascii

Application

Image
subtipos exemplos : jpeg,

gif

Video

adpcm (codificao 32
kbps)

outros dados que precisam

ser processados por um


leitor para serem
visualizados
subtipo exemplo : msword

subtipos exemplos : mpeg,

quicktime
2a: Camada de Aplicao

59

Tipo Multiparte
From: alice@crepes.fr
To: bob@hamburger.edu
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data
--98766789--

2a: Camada de Aplicao

60

Protocolos de acesso ao e-mail


agente
de
usurio

SMTP

SMTP

servidor de e-mail
do remetente

Protocolo de acesso

POP3 ou
IMAP

agente
de
usurio

servidor de e-mail
do receptor

SMTP: entrega/armazenamento para o servidor receptor


protocolo de acesso ao e-mail: recupera mensagem do servidor

POP: Post Office Protocol [RFC 1939]


autorizao (agente <-->servidor) e transferncia
IMAP: Internet Mail Access Protocol [RFC 1730]
mais comandos (mais complexo)
manuseio de msgs armazenadas no servidor (cria pastas e
transfere msgs de uma pasta para outra, recupera parte de
uma mensagem MIME multiparte)
HTTP: Hotmail , Yahoo! Mail, Webmail, etc.
2a: Camada de Aplicao

61

Protocolo POP3
Conexo na porta 110
Baixa e-mails para mquina atual

fase de autorizao
comandos do cliente:

user: declara nome


pass: senha
servidor responde
+OK
-ERR

fase de transferncia, cliente:

list: lista nmeros das msgs


retr: recupera msg por nmero
dele: apaga msg
quit

S:
C:
S:
C:
S:

+OK POP3 server ready


user ana
+OK
pass faminta
+OK user successfully logged

C:
S:
S:
S:
C:
S:
S:
C:
C:
S:
S:
C:
C:
S:

list
1 498
2 912
.
retr 1
<message 1 contents>
.
dele 1
retr 2
<message 1 contents>
.
dele 2
quit
+OK POP3 server signing off
2a: Camada de Aplicao

62

on

POP3 e IMAP
Mais sobre o POP3
O exemplo anterior usa
o modo download e
delete.
Bob no pode reler as
mensagens se mudar
de cliente
Download-emantenha: copia as
mensagens em clientes
diferentes
POP3 no mantm
estado entre conexes

IMAP
Mantm todas as
mensagens num nico
lugar: o servidor
Permite ao usurio
organizar as mensagens
em pastas
O IMAP mantm o estado
do usurio entre sesses:

nomes das pastas e


mapeamentos entre as IDs
das mensagens e o nome da
pasta
2a: Camada de Aplicao

63

Вам также может понравиться