REC- Redes de Computadores
Capítulo 5
Camada de Aplicação
Capítulo 5: Camada de aplicação
 Princípios de aplicações de rede
 A Web e o HTTP
 FTP
 Correio eletrônico
SMTP, POP3, IMAP
 DNS
 Programação de sockets com UDP
 Programação de sockets com TCP

Camada de aplicação
Objetivos do capítulo:

aspectos conceituais, de
implementação de
protocolos de aplicação
de rede
 modelos de serviço da
camada de transporte
 paradigma clienteservidor
 paradigma peer-to-peer

protocolos populares em nível
de aplicação:





HTTP
FTP
SMTP/POP3/IMAP
DNS
programando aplicações de
rede
 API socket
Camada de aplicação
Algumas aplicações de rede







e-mail
web
mensagem instantânea
login remoto
compartilhamento de
arquivos P2P
jogos em rede multiusuários
clipes de vídeo armazenados
em fluxo contínuo




redes sociais
voice over IP
vídeoconferência em tempo
real
computação em grade
Camada de aplicação
Conexão lógica da camada de aplicação
Escreva programas que



executem em (diferentes) sistemas finais
se comuniquem pela rede
p. e., software de servidor Web se
comunica com software de navegador
Web
Não é preciso escrever software para
dispositivos do núcleo da rede


dispositivos do núcleo da rede não
executam aplicações do usuário
as aplicações nos sistemas finais
permitem rápido desenvolvimento e
propagação
Camada de aplicação
Arquiteturas de aplicação



Paradigma Cliente-servidor
Paradigma Peer-to-peer (P2P)
Paradigma Híbrida de cliente-servidor e P2P
Camada de aplicação
Arquitetura cliente-servidor
servidor:
 hospedeiro sempre ligado c/ end IP permanente
 server farms por expansão
clientes:
 comunicam-se com o servidor e podem estar conectados
intermitentemente
 podem ter endereços IP dinâmicos não se comunicam diretamente entre
si
Camada de aplicação
Arquitetura cliente-servidor
servidor:
Carga de comunicação concentra-se no lado do servidor;
 Necessidade de uma infra “melhor” do lado do servidor
 Vários serviços tradicionais:
 protocolo HTTP de acesso ao conteúdo web;
 Protocolo FTP de transferência de dados;
 E-mail, dentre outros...

Camada de aplicação
Arquitetura P2P pura



nenhum servidor sempre ligado
sistemas finais arbitrários se
comunicam diretamente
pares
são
conectados
intermitentemente e mudam
endereços IP
altamente escalável, mas difícil de
administrar
Peer 2 peer
Camada de aplicação
Híbrido de cliente-servidor e P2P
Skype
aplicação P2P voice-over-IP P2P
 servidor centralizado: achando endereço da parte
remota:
 conexão cliente-cliente: direta (não através de
servidor)

Mensagem instantânea
bate-papo entre dois usuários é P2P
 serviço centralizado: detecção/localização da
presença do cliente

usuário registra seu endereço IP com servidor central
quando entra on-line
 usuário contacta servidor central para descobrir endereços

Camada de aplicação
Processo de comunicação
A comunicação na camada de aplicação se dá entre dois
aplicativos em execução denominados processos: um
cliente e um servidor.
 Um cliente é um programa em execução que inicia a
comunicação enviando um pedido (ou solicitação); um
servidor é outro programa que aguarda pedidos de
clientes.

Camada de aplicação
Processos se comunicando
processo: programa rodando
dentro de um hospedeiro
 no mesmo hospedeiro, dois
processos se comunicam
usando a comunicação entre
processos (definida pelo
SO).
 processos em hospedeiros
diferentes se comunicam
trocando mensagens
processo cliente: processo que
inicia a comunicação
processo servidor: processo
que espera para ser
contactado
Camada de aplicação
Arquitetura cliente-servidor

Um processo é capaz de se comunicar com outro, através
de conjunto de instruções para dizer às quatro camadas
mais baixas da pilha de protocolos TCP/IP que abram a
conexão, enviem os dados à outra estação, recebam os
dados dela e fechem a conexão.

Este conjunto de instruções desse tipo é normalmente
chamado Interface de Programação de Aplicativos (API –
Application Programming Interface).
Camada de aplicação
Camada de aplicação
Sockets


processo
envia/recebe
mensagens de/para seu
socket
socket semelhante à porta


processo enviando empurra
mensagem pela porta
processo enviando conta com
infraestrutura de transporte no
outro lado da porta, que leva a
mensagem ao socket no
processo receptor
hospedeiro
ou servidor
processo
hospedeiro
ou servidor
controlado pelo
desenvolvedor
da aplicação
processo
socket
socket
TCP com
buffers,
variáveis
Internet
controlado
pelo OS
TCP com
buffers,
variáveis
Camada de aplicação
Endereçando processos




para receber mensagens, processo deve ter identificador
dispositivo hospedeiro tem endereço IP exclusivo de 32 bits
Identificador inclui endereço IP e números de porta associados ao
processo no hospedeiro.
Exemplos de número de porta:
 servidor HTTP: 80
 servidor de correio: 25
Camada de aplicação
Definições de protocolo da camada de aplicação

tipos de mensagens trocadas,


sintaxe da mensagem:


que campos nas mensagens &
como os campos são delineados
semântica da mensagem


p. e., requisição, resposta
significado da informação nos
campos
regras de quando e como
processos enviam & respondem a
mensagens
protocolos de domínio
público:



definidos em RFCs
provê interoperabilidade
p. e., HTTP, SMTP, BitTorrent
protocolos proprietários:
 p. e., Skype, ppstream
Camada de aplicação
Aplicações da Internet: aplicação, protocolos de
transporte
Aplicação
Protocolo da camada
de aplicação
Protocolo de
transporte básico
e-mail
acesso remoto
Web
transf. arquivos
multimídia com
fluxo contínuo
telefonia da
Internet
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (p. e., Youtube),
RTP [RFC 1889]
SIP, RTP, proprietário
(p. e., Skype)
TCP
TCP
TCP
TCP
TCP ou UDP
normalmente UDP
Camada de aplicação
Aplicações da Internet: protocolos de transporte e porta
Porta
Serviço ou Aplicação
21
FTP
23
Telnet
25
SMTP
53
Domain Name System
63
Whois
70
Gopher
79
Finger
80
HTTP
110
POP3
119
NNTP
Camada de aplicação
Web e HTTP






página Web consiste em objetos
objeto pode ser arquivo HTML, imagem JPEG, applet Java,
arquivo de áudio,…
página Web consiste em arquivo HTML básico que inclui vários
objetos referenciados
cada objeto é endereçável por um URL
exemplo de URL:
http:// www.someschool.edu/someDept/pic.gif
nome do hospedeiro
nome do caminho
Camada de aplicação
Web e HTTP

http://
www.someschool.edu/someDept/pic.gif
nome do hospedeiro
nome do caminho
Abreviação do protocolo: http, ftp,...
Identificador do host: pode ser o IP do servidor ou o
nome dado ao servidor ( a ser explicado depois )
Caminho: identifica o local e o nome do arquivo no
sistemas
Nível de aplicação

Arquitetura cliente servidor
Camada de aplicação
Visão geral do HTTP
HTTP: HyperText Transfer
Protocol


protocolo da camada de aplicação
da Web
modelo cliente/servidor
 cliente: navegador que requisita,
recebe, “exibe” objetos Web
 servidor: servidor Web envia
objetos em resposta a
requisições
PC rodando
Explorer
Servidor
rodando
servidor Web
Apache
Mac rodando
Navigator
Camada de aplicação
Cliente (Navegador):
Camada de aplicação
HTTP usa o TCP:




cliente inicia conexão TCP (cria
socket) com servidor, porta 80
servidor aceita conexão TCP do
cliente
mensagens HTTP (do protocolo
da camada de aplicação) trocadas
entre navegador (cliente HTTP) e
servidor Web (servidor HTTP)
conexão TCP fechada
HTTP é “sem estado”

servidor não guarda
informações sobre requisições
passadas do cliente
aparte
Protocolos que mantêm “estado”
são complexos!
 história passada (estado) deve
ser mantida
 se servidor/cliente falhar, suas
visões do “estado” podem ser
incoerentes, devem ser
reconciliadas
Camada de aplicação
Conexões HTTP
HTTP não persistente
 no máximo um objeto é
enviado por uma conexão
TCP.
HTTP persistente
 múltiplos objetos podem ser
enviados por uma única
conexão TCP entre cliente e
servidor.
Camada de aplicação
Exercício prático






Utilizando a ferramenta Wireshark:
Obtenha páginas web utilizando o protocolo HTTP;
Capture e análise o conteúdos dos pacotes HTTP.
Identifique o HTTP request e o response
Identifique o protocolo de nível de transporte, e as portas que
estão sendo utilizadas.
Identifique os endereços origem/destino do nível de rede
Camada de aplicação
HTTP não persistente
Suponha que o usuário digite o URL
www.someSchool.edu/someDepartment/home.index
1a. Cliente HTTP inicia conexão TCP com
servidor HTTP (processo) em
www.someSchool.edu na porta 80.
(contém texto,
referências a 10
imagens JPEG)
1b. Servidor HTTP no hospedeiro
www.someSchool.edu esperando
conexão TCP na porta 80. “aceita”
conexão, notificando cliente
2. Cliente HTTP envia mensagem de
requisição HTTP (contendo URL) pelo
socket de conexão TCP. Mensagem
indica que cliente deseja o objeto
someDepartment/home.index.
tempo
3. Servidor HTTP recebe mensagem de
requisição, forma mensagem de resposta
contendo objeto requisitado e envia
mensagem para seu socket
Camada de aplicação
4. Servidor HTTP fecha conexão TCP.
5. Cliente HTTP recebe mensagem de
resposta contendo arquivo html,
exibe html. Analisando arquivo html,
acha 10 objetos JPEG referenciados.
tempo
6. Etapas 1-5 repetidas para cada um
dos 10 objetos JPEG.
Camada de aplicação
HTTP não persistente:
Demanda uma alta
carga computacional !
Camada de aplicação
HTTP não persistente: tempo de resposta
definição de RTT: tempo para um
pequeno pacote trafegar do cliente
ao servidor e retornar.
inicia
tempo de resposta:
conexão TCP
RTT
 um RTT para iniciar a conexão
requisita
TCP
arquivo
 um RTT para a requisição HTTP e
RTT
primeiros bytes da resposta HTTP
retornarem
arquivo
recebido
 tempo de transmissão de arquivo
total = 2RTT + tempo de transmissão
tempo
tempo para
transmitir
arquivo
tempo
Camada de aplicação
HTTP persistente
problemas do HTTP não persistente:
 requer 2 RTTs por objeto
 overhead do SO para cada
conexão TCP
 navegadores geralmente abrem
conexões TCP paralelas para
buscar objetos referenciados
HTTP persistente:
 servidor deixa a conexão aberta
depois de enviar a resposta
 mensagens HTTP seguintes entre
cliente/servidor enviadas pela
conexão aberta
 cliente envia requisições assim que
encontra um objeto referenciado
 no mínimo um RTT para todos os
objetos referenciados
Camada de aplicação
HTTP persistente
Camada de aplicação
Mensagem de requisição HTTP: formato geral
origem
mensagem
segmento
M
Ht
M
datagrama Hn Ht
quadro Hl Hn Ht
M
M
aplicação
transporte
rede
enlace
física
enlace
física
comutador
Encapsulamento
destino
M
Ht
M
Hn Ht
M
Hl Hn Ht
M
aplicação
transporte
rede
enlace
física
Hn Ht
M
Hl Hn Ht
M
rede
enlace
física
Hn Ht
M
roteador
Camada de aplicação
Formato das mensagens HTTP
Camada de aplicação
Tipos de métodos
Camada de aplicação
Nomes de cabeçalhos de solicitação
Camada de aplicação
Nomes de cabeçalhos de resposta
Camada de aplicação
Recupera uma
imagem com o
método get
Enviar página web
para ser
publicada
Camada de aplicação
Versões do HTTP
HTTP/1.0
 GET
 POST
 HEAD

pede ao servidor para deixar
objeto requisitado fora da
resposta
HTTP/1.1
 GET, POST, HEAD
 PUT


envia arquivo no corpo da
entidade ao caminho
especificado no campo de URL
DELETE

exclui arquivo especificado no
campo de URL
Camada de aplicação
Mensagem de resposta HTTP
linha de status
(protocolo
código de estado
frase de estado)
linhas de
cabeçalho
dados, p. e.,
arquivo HTML
requisitado
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
Content-Type: text/html
dados dados dados dados dados ...
Camada de aplicação
Códigos de estado da resposta HTTP
200 OK

requisição bem-sucedida, objeto requisitado mais adiante
301 Moved Permanently

objeto requisitado movido, novo local especificado mais adiante na
mensagem (Location:)
400 Bad Request

mensagem de requisição não entendida pelo servidor
404 Not Found

documento requisitado não localizado neste servidor
505 HTTP Version Not Supported
Camada de aplicação
Exercício

Alice tem um clipe de vídeo que Bob gostaria de receber e Bob tem um
outro clipe de vídeo que Alice gostaria de receber. Bob cria uma página
Web e executa um servidor HTTP. Como Alice pode obter o clipe de Bob ?
Como Bob pode obter o clipe de Alice ?

Quando um servidor HTTP recebe uma mensagem de solicitação de um
cliente HTTP, como o servidor sabe o instante em que todos os cabeçalhos
chegaram e que o corpo das mensagens virá a seguir ?

Em uma conexão HTTP não persistente como o HTTP pode informar ao
protocolo TCP que o final da mensagem foi atingido ?
Camada de aplicação
Exemplo

Suponha que haja um servidor com o nome de domínio www.comum.com
A.) Construa uma solicitação http para recuperar o documento /usr/users/doc. O cliente
aceita MIME versão 1, imagens GIF e JPEG, mas o documento não pode ser mais antigo do
que quatro dias.
B.) Mostre a resposta HTTP para o ítem a.) no caso de um pedido bem sucedido.

Cliente:


GET /usr/users/doc HTTP /1.1
Date: Fri, 26-Nov-04 16:46:23 GMT
MIME-version: 1.0
Accept: image/gif
Accept: image/jpeg
Last modified: Mon, 22-Nov-04

Servidor:

HTTP/1.1 200 OK
Date: Fri, 26-Nov-04 16:46:26 GMT
Server: Challenger
MIME-version: 1.0
Content-length: 4623
(Corpo do documento)











Camada de aplicação
Cookies


WWW foi originalmente concebida como uma entidade sem estado.
Ou seja, cliente envia pedido e cliente responde !

Porém outras necessidades surgiram:
Sites usados como lojas virtuais;
Sites precisam permitir acesso apenas à clientes registrados;
Sites são usados como portais ( paginas são selecionadas pelos clientes);

Como resolver estas situações: utilizando cookies.



Camada de aplicação
Cookies
O navegador do comprador
(cliente) envia um pedido p/ o
servidor MelhoresBrinquedos.
O servidor cria um carrinho de
compras vazio (uma lista) para o
cliente e atribui um ID para o
carrinho
de
compras
(por
exemplo, 12343). O servidor,
então, envia uma mensagem de
resposta, que contém as imagens
de
todos
os
brinquedos
disponíveis e um link associado a
cada brinquedo; quando clicado, o
link seleciona o brinquedo.
Se o cliente acessar a loja no
futuro,
enviará
o
cookie
novamente.
Camada de aplicação
Cookies
Muitos sites importantes usam cookies
Quatro componentes:
1) linha de cabeçalho de cookie da mensagem de resposta HTTP
2) linha de cabeçalho de cookie na mensagem de requisição HTTP
3) arquivo de cookie na máquina do usuário, controlado pelo
navegador do usuário
4) banco de dados de apoio no site Web
Camada de aplicação
O que os cookies podem ter:
 autorização
 carrinhos de compras
 recomendações
 estado da sessão do usuário (email da Web)
Como manter o “estado”:
 extremidades do protocolo: mantêm estado no
emissor/receptor por múltiplas transações
 cookies: mensagens HTTP transportam estado
aparte
Cookies e privacidade:
 cookies permitem que os sites
descubram muito sobre você
 você pode fornecer nome e e-mail
aos sites
Camada de aplicação
Exercício:
 No HTTP, desenhe uma figura que mostre a aplicação de
cookies em um cenário no qual o servidor permite acesso apenas
à clientes cadastrados

No HTTP, desenhe uma figura que mostre a aplicação de
cookies em um cenário em um portal web que usa dois sites.
Camada de aplicação
Caches Web (servidor proxy)
Servidor origem


Atender a requisição do
cliente sem envolver servidor
de origem
O navegador envia todas as
requisições HTTP ao cache,
que normalmente fica na
rede do cliente;


objeto no cache: cache retorna
objeto
ou cache requisita objeto do
servidor de origem, depois
retorna objeto ao cliente
servidor
proxy
cliente
cliente
Camada de aplicação
Caches Web


cache atua como cliente e
servidor
normalmente, cache é
instalado por ISP (da
universidade, empresa,
residencial)
Por que caching Web?
 reduz tempo de resposta à
requisição do cliente
 reduz tráfego no enlace de acesso
de uma instituição
 Internet densa com caches:
permite que provedores de
conteúdo “fracos” remetam
conteúdo efetivamente (mas o
mesmo ocorre com
compartilhamento de arquivos
P2P)
Camada de aplicação
Exemplo de caching
suposições



tamanho médio do objeto = 1.000.000
bits
taxa de requisição média dos navegadores
da instituição aos servidores de origem =
15/s
atraso do roteador institucional a qualquer
servidor de origem e de volta ao roteador
=2s
consequências
utilização na LAN = 15%
 utilização no enlace de acesso = 100%
 atraso total = atraso da Internet + atraso do
acesso + atraso da LAN
= 2 s + x minutos + y milissegundos

servidores
de origem
Internet
pública
rede
institucional
enlace de
acesso a 15 Mbps
LAN de 100 Mbps
cache
institucional
Camada de aplicação
solução possível
 aumentar largura de banda do enlace
de acesso para, digamos, 100 Mbps
consequência
 utilização na LAN = 15%
 utilização no enlace de acesso = 15%
 atraso total = atraso da Internet +
atraso do acesso + atraso da LAN = 2
s + x ms + y ms
 normalmente, uma atualização
dispendiosa
servidores
de origem
Internet
pública
rede
institucional
enlace de
acesso a 100 Mbps
LAN de 100 Mbps
cache
institucional
Camada de aplicação
possível solução: instalar cache
 suponha que índice de acerto é 0,4
consequência
 40% de requisições serão
satisfeitas imediatamente
 60% de requisições satisfeitas pelo
servidor de origem
 utilização do enlace de acesso
reduzida para 60%, resultando em
atrasos insignificantes (digamos,
10 ms)
 atraso médio total = atraso da
Internet + atraso de acesso +
atraso da LAN = 0,6*(2,01) s +
0,4*milissegundos < 1,4 s
servidores
de origem
Internet
pública
rede
institucional
enlace de
acesso a 15 Mbps
LAN de 100 Mbps
cache
institucional
Camada de aplicação
GET condicional


objetivo: não enviar objeto
se o cache tiver versão atualizada
cache: especifica data da cópia em
cache na requisição HTTP
If-modified-since:
<data>

304
msg requisição HTTP
If-modified-since:
<data>
resposta HTTP
servidor: resposta não contém
objeto se a cópia em cache estiver
atualizada:
HTTP/1.0
Modified
servidor
cache
Not
objeto
não
modificado
HTTP/1.0
304 Not Modified
msg requisição HTTP
If-modified-since:
<data>
resposta HTTP
HTTP/1.0 200 OK
<dados>
objeto
modificado
Camada de aplicação
FTP: o protocolo de transferência de arquivos
interface de cliente
usuário FTP FTP
usuário no
hospedeiro




transf. de arquivos
servidor
FTP
sistema de
arquivo local
transfere arquivo de/para hospedeiro remoto
modelo cliente/servidor
 cliente: lado que inicia transferência (de/para remoto)
 servidor: hospedeiro remoto
ftp: RFC 959
servidor ftp: porta 21
sistema de arquivo
remoto
Camada de aplicação
FTP: conexões separadas p/ controle e dados





conexão de controle TCP
porta 21
cliente FTP contacta servidor FTP na
porta 21. O TCP é o protocolo de
transporte
conexão de dados TCP
cliente autorizado por conexão de
cliente
servidor
porta 20
controle
FTP
FTP
cliente navega por diretório remoto
enviando comandos por conexão de  servidor abre outra conexão de
controle
dados TCP para transferir outro
quando servidor recebe comando de
arquivo
a
transferência de arquivo, abre 2
 conexão de controle: “fora da
conexão TCP (para arquivo) com
banda”
cliente
 servidor FTP mantém “estado”:
após transferir um arquivo, servidor
diretório atual, autenticação
fecha conexão de dados
anterior
Camada de aplicação
Comandos e respostas FTP
Camada de aplicação
Alguns comandos FTP
Camada de aplicação
Alguns comandos e respostas FTP
Camada de aplicação
Comandos e respostas FTP
Camada de aplicação
Correio eletrônico
Três componentes principais:



agentes do usuário
servidores de correio
Simple Mail Transfer Protocol: SMTP
O envio de um e-mail
envolve nove passos
distintos.
Camada de aplicação
Correio eletrônico: servidores de correio
servidores de correio
 caixa de correio contém mensagens
que chegam para o usuário
 fila de mensagens com mensagens de
correio a serem enviadas
 protocolo SMTP entre servidores de
correio para enviar mensagens de email
 cliente: servidor de envio de
correio
 “servidor”: servidor de recepção
de correio
agente
usuário
serv.
correio
agente
usuário
SMTP
SMTP
serv.
correio
agente
usuário
SMTP
agente
usuário
serv.
correio
agente
usuário
agente
usuário
Camada de aplicação
Cenário: Alice envia mensagem a Bob
1) Alice usa AU para redigir
mensagem “para”
[email protected]
2) O AU de Alice envia mensagem
ao seu servidor de correio, que é
colocada na fila de mensagens
3) Lado cliente do SMTP abre
conexão TCP com servidor de
correio de Bob
4) Cliente SMTP envia mensagem
de Alice pela conexão TCP
5) Servidor de correio de Bob coloca
mensagem na caixa de correio de
Bob
6) Bob chama seu agente do usuário
para ler mensagem
Camada de aplicação
Protocolos utilizados no e-mail
Camada de aplicação
SMTP [RFC 2821]





O cliente usa TCP para transferir de modo confiável a
mensagem de e-mail ao servidor através da porta 25
transferência direta: servidor de envio ao servidor de recepção
três fases da transferência:
 handshaking ( estabelecimento da conexão)
 transferência de mensagens
 fechamento
interação comando/resposta
 comandos: texto ASCII
 resposta: código e frase de estado
mensagens devem estar em ASCII de 7 bits
Camada de aplicação
Comandos SMTP
Camada de aplicação
Comandos SMTP
Camada de aplicação
Comandos SMTP
Exemplo_01 de interação SMTP
Cliente envia msg.
HELO p/ se identificar
O servidor de e-mail após
receber a mensagem pode
colocá-la na fila e enviá-la
ao servidor remoto em
outro momento
Camada de aplicação
Exemplo_2 de interação SMTP
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:
220 hamburger.edu
HELO crepes.fr
250 Hello crepes.fr, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Você gosta de ketchup?
Que tal picles?
.
250 Message accepted for delivery
QUIT
221 hamburger.edu closing connection
C: são as linhas que o cliente envia para dentro de seu socket TCP
S: são as linhas que o servidor envia para dentro de seu socket TCP
Camada de aplicação
Formato da mensagem de correio
SMTP: protocolo para trocar
mensagens de e-mail
RFC 822: padrão para formato de
mensagem de texto:
 linhas de cabeçalho, p. e.,
Para:
 De:
 Assunto:
diferente dos comandos SMTP!


corpo

a “mensagem”, apenas em
caracteres ASCII
cabeçalho
corpo
linha
em
branco
Camada de aplicação
SMTP: resumo



SMTP usa conexões persistentes
SMTP requer que a mensagem
(cabeçalho e corpo) esteja em
ASCII de 7 bits
servidor SMTP usa CRLF.CRLF
para determinar fim da mensagem
Comparação com HTTP:


HTTP: puxa
SMTP: empurra

ambos têm interação de
comando/resposta em ASCII,
códigos de estado

HTTP: cada objeto encapsulado
em sua própria mensagem de
resposta
SMTP: múltiplos objetos enviados
na mensagem multiparte

Camada de aplicação
Protocolos de acesso de correio



POP3: Post Office Protocol [RFC 1939]
 autorização (agente <--> servidor) e download
IMAP4: Internet Mail Access Protocol [RFC 1730]
 mais recursos (mais complexo)
 manipulação de msgs armazenadas no servidor
HTTP: gmail, Hotmail, Yahoo! Mail etc.
Camada de aplicação
Protocolos de acesso de correio





O POP3 é simples e pode operar em dois modos:
Excluir: o email é removido da caixa de correio após ter sido obtido;
Manter: normalmente utilizado quando o usuário acessa a caixa de
correio de um lugar diferente de seu computador;
Não permite que o usuário organize seus emails no servidor, pois o
usuário não pode ter diferentes pastas;
Não permite que o usuário verifique parcialmente o conteúdo do e-mail
antes de obtê-lo.
Camada de aplicação
POP3
Camada de aplicação
Protocolos de acesso de correio






IMAP4:
O usuário pode verificar o cabeçalho do emial antes de obtê-lo;
O usuário pode procurar por uma sequencia específica de caracteres
antes de obtê-lo;
O usuário pode obter um email parcialmente;
O usuário pode criara, remover ou renomear caixas de correio no
servidor de email;
O usuário pode criar hierarquias de caixas de correio em uma pasta;
Camada de aplicação
Protocolo POP3
fase de autorização


comandos do cliente:
 user: declare “username”
 pass: senha
respostas do servidor
 +OK
 -ERR
fase de transação, cliente:




list: lista números de msg.
retr: recupera mensagem por
número
dele: exclui
quit
S:
C:
S:
C:
S:
+OK POP3 server ready
user bob
+OK
pass hungry
+OK usuário logado com sucesso
C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK serv. POP3 desconectando
Camada de aplicação
Protocolos de acesso de correio

MIME ( Multifunção para mensagens de internet):

Correio eletrônico eniva mensagens no formato: NVT ASCII de 7 bits
O MIME transforma dados não ASCII em dados NVT ASCII e entrega ao
MTA.

Camada de aplicação
E-mail baseado na Web

HTTP: dois cenários
Camada de aplicação
DNS: Domain Name System





Os usuários da internet preferem utilizar nomes ao invés de endereços IP.
Como mapeamos nomes para endereços IP ?
Através de um sistema de diretório formado de banco de dados distribuído,
implementado de forma hierarquica através de um conjunto de servidores de
nomes.
O DNS é um protocolo do nível de aplicação, em que hospedeiro,
roteadores, servidores de nomes se comunicam para resolver nomes
(tradução endereço/nome).
Considerando que o usuário conhece apenas o nome de um servidor de
arquivos (xxx.yyy.xom) , qual procedimento para que utilizando o serviço
DNS mapeia o nome para um endereço IP ?
Camada de aplicação
DNS: Domain Name System





1.O usuário fornece o nome do host para o cliente de transf. de arquivo;
2. O cliente de transf. De arquivo passa o nome do host par o cliente DNS;
3. Cada computador depois de iniciado conhece o endereço de server DNS;
4. O server DNS responde com o endereço IP;
5. o cliente DNS para o end. IP para o cliente de transf. de arquivo.
Camada de aplicação
DNS
Espaço de nome de domínios:


Cada nó da árvore tem um rótulo ( 63 caracteres). O DNS exige que os filhos de um nó
tenham rótulos diferentes o que garante a unicidade dos nomes de domínio.
Cada nó da árvore tem um nome de domínio. Um nome de domínio completo é uma
sequencia de rótulos separados por (.)
Domínio: corresponde a uma subárvore do
espaço de nomes de domínio
Camada de aplicação
Banco de dados distribuído e hierárquico
Se um servidor dividir seu domínio
em subdomínios e delegar parte de
sua autoridade a outros servidores, o
domínio e a zona se referem a coisas
distintas
As informações osbre os nós dos
subdomínios são armazenadas nos
servidores em níveis mais baixos.
Como a hierarquia completa de nomes não pode ser armazenada em
um único servidor, ela é dividida entre vários servidores. Aquilo sobre o
qual um servidor tem autoridade é chamado de zona
Camada de aplicação
Classes e hierarquia de servidores DNS
São poucos
Responsáveis por domínios de alto nível
(com, edu , gov, org), e pelos domínios de
alto nível de países, tais como uk, fr, ca, jp,
br...
Servidores DNS raiz
servs. DNS com
servs. DNS
yahoo.com
servs. DNS
amazon.com
servs. DNS org
servs. DNS
pbs.org
servs. DNS edu
servs. DNS servs. DNS
poly.edu
umass.edu
Toda organização que tiver hospedeiros que possam ser acessados publicamente na internet deve fornecer
registros DNS também acessíveis publicamente. Um server com autoridade abriga estes registros. Uma
organização pode preferir implementar seu próprio servidor DNS com autoridade, ou como alternativa, pode
pagar para armazená-los em um servidor DNS com autoridade de algum provedor de serviço
Servidor DNS Local: não pertence a hierarquia de servidores. Cada ISP possui um servidor de nomes.
Camada de aplicação
DNS: Domínio genérico
Camada de aplicação
DNS: Domínio país
Camada de aplicação
DNS: Servidores de nomes raiz


contactados por servidores de nomes locais que não conseguem traduzir nome
servidores de nomes raiz:
 contacta servidor de nomes com autoridade se o mapeamento não for conhecido
 obtém mapeamento
 retorna mapeamento ao servidor de nomes local
13 servidores de nomes
raiz no mundo
Camada de aplicação
Servidores de alto nível e com autoridade

servidores de domínio de alto nível:


responsáveis por com, org, net, edu etc. e todos os
domínios de país de alto nível: br, uk, fr, ca, jp.
servidores DNS com autoridade:
servidores DNS da organização, provendo nome de
hospedeiro com autoridade a mapeamentos IP para os
servidores da organização (p. e., Web, correio).
 podem ser mantidos pela organização ou provedor de
serviços

Servidor de nomes local


não pertence estritamente à hierarquia
cada ISP (ISP residencial, empresa,
universidade) tem um.


também chamado “servidor de nomes default”
quando hospedeiro faz consulta ao DNS,
consulta é enviada ao seu servidor DNS local

atua como proxy, encaminha consulta para
hierarquia
Download

Camada de aplicação