Você está na página 1de 54

Captulo 2: Camada de Aplicao

Metas do captulo: Outras metas do


captulo:
Apresentar aspectos
conceituais e de Estudar protocolos por
implementao de meio do exame de
aplicaes de rede vrias aplicaes de
Definir os conceitos rede:
fundamentais da camada Web (HTTP)
de aplicao Transferncia de
arquivos (FTP)
Estudar os paradigmas:
E-mail (SMTP, etc.)
cliente / servidor DNS
peer-to-peer (P2P) Compartilhamento de
arquivos P2P
Definir os servios de
rede exigidos pelas
aplicaes 2: Camada de Aplicao 1
Aplicaes e Protocolos da Camada de Aplicao

Aplicao: processos
distribudos em comunicao aplicao
transporte

rodam em hosts diferentes rede


enlace
fsica
trocam mensagens para
implementar a aplicao
ex.: correio, transferncia de
arquivos, WWW

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

Um processo um Um agente de usurio


programa em execuo (UA User Agent)
num host uma interface entre o
2 processos no mesmo
usurio e a aplicao
host se comunicam de rede. Ex:
WWW: browser
usando comunicao
Correio:
interprocessos definida
leitor/compositor de
pelo sistema operacional mensagens
do host Streaming udio/vdeo:
mdia player
2 processos em hosts
distintos se comunicam
usando um protocolo da
camada de aplicao
2: Camada de Aplicao 3
Protocolo da Camada de Aplicao define:

Tipo de mensagem trocada,


p.ex., mensagem de pedido ou Protocolos de domnio
mensagem de resposta pblico:
Sintaxe das mensagens, i.e., definidos em RFCs
define como so os campos da
permitem
mensagem e como estes campos
so delineados interoperabilidade
ex.: HTTP, SMTP
Semntica dos campos, i.e., o
significado da informao nos
campos da mensagem Protocolos proprietrios:
Regras para determinar quando ex: Skype
e como um processo envia as
mensagens e responde s
mensagens recebidas

2: Camada de Aplicao 4
Arquiteturas de aplicao de rede

A arquitetura da aplicao determina como a


aplicao organizada nos vrios sistemas finais

Arquiteturas mais utilizadas em aplicaes


modernas de rede:
cliente-servidor
peer-to-peer (P2P)

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

Para Web, o cliente


enlace
fsica

implementado no browser; para pedido


correio no leitor de mensagens

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

Dois processos se comunicam Host A Host B


enviando e recebendo
mensagens atravs de seu controlado pelo
socket desenvolvedor da
processo aplicao processo
O socket do processo anlogo
a uma porta socket socket
O processo remetente TCP com Internet TCP com
empurra a mensagem porta buffers e buffers e
afora para dentro da rede variveis variveis
Ele considera que h uma
infraestrutura do outro lado
da porta que vai transportar a controlado pelo SO
mensagem at a porta do
processo de destino

Um socket a interface entre o processo de aplicao e o protocolo da


camada de transporte. tambm denominada interface de
programao da aplicao (API - application programming interface)
entre a aplicao e a rede
2: Camada de Aplicao 9
Endereamento de processos
Como um processo remetente Exemplo de nmero
pode identificar o processo de portas:
destinatrio, com o qual quer servidor HTTP: 80
se comunicar? servidor e-mail: 25

Para identificar o processo


Voltaremos mais
destinatrio, devem ser tarde a este assunto.
especificadas duas
informaes:
endereo IP do host de destino
nmero de porta do lado
receptor. Permite que o host de
destino determine a qual
processo de aplicao deve ser
entregue a mensagem
2: Camada de Aplicao 10
2: Camada de Aplicao 11
De que servios uma aplicao necessita?
Transferncia Confivel
Vazo (Throughput )
de Dados
Algumas aplicaes (ex.:
Algumas aplicaes (ex.:
udio, vdeo) podem tolerar multimdia) requerem vazo
alguma perda de dados mnima disponvel para
serem viveis
Outras (ex.: transferncia
de arquivos, Web, e-mail) Outras aplicaes (tambm
requerem transferncia de denominadas aplicaes
dados 100% confivel elsticas, ex.: Web, e-mail)
Temporizao conseguem usar qualquer
quantidade mnima de vazo
Algumas aplicaes interativas disponvel
em tempo real (ex.: telefonia IP,
jogos interativos) requerem
atraso fim a fim limitado e
reduzido para serem viveis
2: Camada de Aplicao 12
Requisitos de algumas aplicaes de rede

Aplicao Perda de Vazo Sensibilidade


dados ao atraso

Transfer. de arqs sem perda elstica no


E-mail sem perda elstica no
Web sem perda elstica no
udio/vdeo em tolerante udio: 5k - 1M sim, dcimos
tempo real vdeo:10k - 5M de segundo
udio/vdeo grav. tolerante igual acima sim, alguns segs
Jogos interativos tolerante alguns kbps sim, dc. seg
Aplicaes sem perda elstica sim e no
Financeiras

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

Aplicao Protocolo de Protocolo de


camada de aplicao transporte

Correio eletrnico SMTP [RFC 5321] TCP


Acesso a terminal remoto Telnet [RFC 854] TCP
Web HTTP [RFC 2616] TCP
Transferncia de arquivos FTP [RFC 959] TCP
Multimdia em fluxo HTTP TCP
contnuo (ex.: YouTube)
Telefonia SIP [RFC 3261], RTP UDP
por [RFC 3550] ou pro- ou
Internet prietrio (ex.: Skype) TCP

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

HTTP/1.1: RFC 2616


2: Camada de Aplicao 17
HTTP: viso geral
HTTP usa o servio de HTTP um protocolo sem
transporte TCP estado (stateless)
1. O cliente Web inicia uma Servidor Web no armazena
conexo TCP com servidor nenhuma informao sobre
Web na porta 80 clientes

2. Servidor Web aceita Nota


pedido de conexo TCP do Protocolos que mantm estado
cliente Web so complexos!
3. Mensagens HTTP so Histria passada (estado)
trocadas entre cliente Web tem que ser armazenada
e servidor Web Caso caia servidor/cliente,
suas vises do estado podem
4. Encerra conexo TCP ser inconsistentes e devem
ser reconciliadas

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)

1a. Cliente Web inicia conexo TCP


com servidor Web (processo) no
host www.algumaUniv.br . A 1b. Servidor Web no host
porta 80 padro para servidor www.algumaUniv.br espera por
Web conexo TCP na porta 80.
Servidor Web aceita conexo,
2. Cliente Web envia uma avisando ao cliente Web
mensagem de pedido ao
servidor atravs da porta
3. Servidor Web recebe mensagem de
associada conexo TCP
pedido, formula mensagem de
resposta, recupera o objeto
(algumDepartmento/inicial.index).
Encapsula o objeto numa mensagem
de resposta e a envia atravs da
tempo porta 80
2: Camada de Aplicao 19
Exemplo: transferncia de uma pgina Web (cont.)

4. Servidor Web encerra conexo


TCP

5. Cliente Web recebe a


mensagem de resposta
contendo arquivo HTML.
A conexo TCP encerrada.
Analisando o arquivo HTML,
o cliente encontra 10 objetos
jpeg referenciados
tempo
6. Cliente Web repete os passos
de 1 a 5 para cada um dos 10
objetos jpeg

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

tempo total = 2RTT + tempo tempo tempo


de transmisso do arquivo

2: Camada de Aplicao 22
Formato de mensagem HTTP: pedido
Tipos de mensagem HTTP:
Pedido Solicita um documento ao

Resposta
servidor

Mensagem de pedido HTTP


Escrita em ASCII Envia um documento ao

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

(dados dados dados dados ... )

Corpo dados, ex.:


da arquivo HTML
entidade solicitado
2: Camada de Aplicao 25
Mensagem de resposta HTTP: formato geral

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

Suposio: servidor proxy est Servidores


prximo do cliente (p.ex., na Web
mesma LAN) de origem
Internet
Reduo do tempo de resposta pblica
s requisies de um cliente

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

Sem servidor proxy: enlace de acesso


intensidade de trfego na a 15 Mbps
LAN = 0,15 rede da
instituio
intensidade de trfego no LAN 100 Mbps
enlace de acesso = 1
atraso total = atraso na
Internet + atraso no enlace
de acesso + atraso na LAN

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

Transfere arquivos de/para host 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

Descrito no RFC 959

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

Servidor FTP deve manter


informaes de estado sobre o
usurio:
deve associar a conexo de
controle a uma conta de usurio
especfica
deve monitorar o diretrio
remoto corrente do usurio
2: Camada de Aplicao 38
FTP: comandos, respostas
Comandos tpicos: Cdigos de retorno tpicos:
enviados, em texto ASCII, por cdigo e frase de status (como
meio do canal de controle: para HTTP)
USER nome 331 Username OK, password
required
PASS senha
125 Data connection
LIST devolve lista de arquivos already open; transfer
no diretrio remoto corrente starting
RETR arquivo recupera (l) 425 Cant open data
arquivo remoto connection
STOR arquivo armazena 452 Error writing file
(escreve) arquivo no host
remoto

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

fila de mensagens: contm SMTP


servidor
mensagens saintes (a serem de correio
enviadas) SMTP
protocolo SMTP: realiza a SMTP
transferncia de mensagens agente
servidor de
entre servidores de correio usurio
de correio
cliente: servidor de
correio que envia agente
de
servidor: servidor de usurio
agente
correio que recebe de
usurio
2: Camada de Aplicao 41
Correio Eletrnico: SMTP [RFC 5321]
O SMTP tambm faz a transferncia de mensagens na etapa de
submisso, entre o agente de usurio e o servidor de correio

Usa TCP para a transferncia confivel de mensagens de correio


do cliente ao servidor (porta 25)

Transferncia direta: servidor remetente ao servidor receptor

Fases da transferncia:
handshaking
transferncia de mensagens
encerramento

Interao comando/resposta
comandos: texto ASCII
resposta: cdigo e frase de status

Mensagens precisam ser em ASCII de 7 bits


2: Camada de Aplicao 42
Cenrio: Alice envia mensagem para Bob
1) Alice usa seu UA para compor uma 4) O cliente SMTP envia a
mensagem e enviar para mensagem de Alice por
bob@someschool.edu meio da conexo TCP
2) O UA de Alice envia a mensagem 5) O servidor de correio de
para seu servidor de correio; a Bob coloca a mensagem
mensagem colocada numa fila recebida na caixa postal de
de mensagens Bob
3) O lado cliente do SMTP 6) Bob usa seu UA para ler a
estabelece uma conexo TCP com mensagem
o servidor de correio de Bob

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

Algumas cadeias de caracteres Ambos tem interao


no so permitidas numa comando/resposta, cdigos de
mensagem de correio (p.ex., status em ASCII
CRLF.CRLF). Logo a mensagem HTTP: cada objeto
tem que ser codificada encapsulado em sua prpria
(normalmente em base-64 ou mensagem de resposta
quoted printable)
SMTP: mltiplos objetos de
O servidor SMTP usa CRLF.CRLF
mensagem so enviados numa
para reconhecer o final da
nica mensagem
mensagem
2: Camada de Aplicao 45
Tabela ASCII

2: Camada de Aplicao 46
Formato de uma mensagem de correio

SMTP: protocolo para a transferncia de mensagens de correio

RFC 822: especifica o formato


padro das linhas de cabealho
das mensagens cabealho
linha em
linhas de cabealho, p. ex., branco
To:
From:
Subject: corpo
diferentes dos comandos SMTP !
corpo da mensagem
a mensagem composta
somente de caracteres ASCII

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

linhas adicionais no cabealho da mensagem declaram tipo do


contedo MIME

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

base64 encoded data .....


.........................
......base64 encoded data
--98766789--

2: Camada de Aplicao 51
Protocolos de acesso ao correio
agente SMTP SMTP Protocolo agente
de
usurio de acesso de
usurio

servidor de correio servidor de correio


do remetente do receptor

SMTP: entrega/armazenamento no servidor do receptor

Protocolos de acesso ao correio:


POP3 (Post Office Protocol version 3): [RFC 1939]
simples, mas possui funcionalidade limitada
IMAP (Internet Mail Access Protocol): [RFC 2060]
permite a manipulao de caixas postais remotas
mais comandos (mais complexo)
HTTP: Hotmail, Yahoo! Mail, gmail, etc.
transferncias atravs de HTTP
2: Camada de Aplicao 52
Protocolo POP3
S: +OK POP3 server ready
Fase de autorizao C: user ana
S: +OK
comandos do cliente: C: pass faminta
user: declara nome S: +OK user successfully logged on

pass: senha C: list


S: 1 498
respostas do servidor:
S: 2 912
+OK S: .
-ERR C: retr 1
S: <message 1 contents>
Fase de transao, cliente S: .
C: dele 1
emite os comandos:
C: retr 2
list: lista nmeros das msgs S: <message 2 contents>
retr: recupera msg por nmero S: .
C: dele 2
dele: apaga mensagem
C: quit
quit S: +OK POP3 server signing off
2: Camada de Aplicao 53
POP3 e IMAP
POP3 IMAP
O exemplo anterior usa o Todas as mensagens so
modo ler-e-apagar mantidas no servidor de
Ana no poder reler as
correio
suas mensagens recebidas IMAP prov comandos que
em mquinas diferentes permitem aos usurios criar
No modo ler-e-guardar, o
pastas e transferir mensagens
agente de usurio deixa as de uma para a outra
mensagens no servidor de IMAP mantm informao de
correio aps descarreg-las estado de usurio entre
POP3 no mantm
sesses IMAP
informao de estado de por exemplo, os nomes das
usurio entre sesses POP3 pastas e quais mensagens
esto associadas a elas

2: Camada de Aplicao 54

Você também pode gostar