Buscar

Unidade II Camada de aplicacao

Prévia do material em texto

1
Arquitetura de Redes de Computadores
Unidade II – Camada de Aplicação
2
2
3Arquitetura de Redes de Computadores - Unidade II 3
Camada de aplicação
� Nossos objetivos: 
� Aspectos conceituais, aspectos de implementação de protocolos de 
aplicação de redes
� Modelos de serviço da camada de transporte
o Paradigma cliente-servidor
o Paradigma peer-to-peer
� Aprender sobre protocolos de camada de aplicação examinando 
protocolos usuais
o HTTP
o FTP
o Telnet/SSH
o SMTP/ POP3/ IMAP
o DNS
4Arquitetura de Redes de Computadores - Unidade II 4
Criando uma nova aplicação de rede
� Escrever programas que
� Executem em diferentes sistemas 
finais e
� Se comuniquem através de uma 
rede.
� Ex.: Web – software de servidor 
Web se comunicando com 
software do browser.
� 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
3
5
Definições de protocolo
da camada de aplicação
� tipos de mensagens trocadas, 
� p. e., requisição, resposta
� sintaxe da mensagem:
� que campos nas mensagens & como os campos são delineados
� semântica da mensagem 
� 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
Arquitetura de Redes de Computadores - Unidade II 5
6
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
4
7
Arquiteturas de aplicação
� Cliente-servidor
� Incluindo centros de dados/cloud computing
� Peer-to-peer (P2P)
� Híbrida de cliente-servidor e P2P
Arquitetura de Redes de Computadores - Unidade II 7
8Arquitetura de Redes de Computadores - Unidade II 8
Arquitetura cliente-servidor
� Servidor: 
� Hospedeiro sempre ligado
� Endereço IP permanente
� Fornece serviços solicitados pelo 
cliente
� Server farms por expansão
� Clientes:
� Comunicam-se com o servidor
� Pode ser conectado 
intermitentemente
� Pode ter endereço IP dinâmico
� Não se comunicam diretamente 
uns com os outros
5
9Arquitetura de Redes de Computadores - Unidade II 9
Modelo Cliente Servidor
10Arquitetura de Redes de Computadores - Unidade II 10
Cliente-Servidor
� Vantagens
� Segurança
� Controle central de arquivos
� Servidores dedicados e 
otimizados 
� Os usuários não se preocupam 
com a administração
� Desvantagens
� Custo
� Hardware
� Software
� É necessário um administrador
� Baixa escalabilidade
� Baixa disponibilidade
6
11
Centros de dados da Google
� Custo estimado do centro de dados: US$ 600 M
� Google gastou US$2,4Bi em 2007 em novos centros de dados
� Cada centro de dados usa de 50 a 100 megawatts de potência
Arquitetura de Redes de Computadores - Unidade II 11
12Arquitetura de Redes de Computadores - Unidade II 12
Arquitetura P2P pura
� Nenhum servidor está sempre 
ligado
� Sistemas finais arbitrários se 
comunicam diretamente
� Pares são conectados 
intermitentemente e mudam 
endereços IP
Altamente escaláveis mas difíceis 
de administrar
7
13Arquitetura de Redes de Computadores - Unidade II 13
Peer-to-Peer
� Vantagens
� Sem investimento extra com 
servidores
� Alta escalabilidade
� Alta disponibilidade
� Sem administrador
� Desvantagens
� Sem organização central
� Difícil localização de arquivos
� Duplicações desnecessárias 
� Os usuários são os 
administradores
� Sem segurança
14Arquitetura de Redes de Computadores - Unidade II 14
Híbrida de cliente-servidor e P2P
� Integra os conceitos da arquitetura cliente servidor com P2P
� Cliente Servidor
� Normalmente um servidor para autenticação e localização 
� P2P
� Depois de localizado, troca direta entre os pares
� Exemplo
� 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
o usuário registra seu endereço IP com servidor central quando entra on-line
o usuário contacta servidor central para descobrir endereços IP dos parceiros
8
15Arquitetura de Redes de Computadores - Unidade II 15
Comunicação de processos
�Processo: programa executando num hospedeiro
� Dentro do mesmo hospedeiro: 
� dois processos se comunicam usando comunicação interprocesso 
(definido pelo SO)
� Processos em diferentes hospedeiros se comunicam por meio de troca 
de mensagens
� Processo cliente: 
o processo que inicia a comunicação
� Processo servidor:
o processo que espera para ser contatado
Nota: aplicações com arquiteturas P2P possuem processos cliente e processos servidor
16Arquitetura de Redes de Computadores - Unidade II 16
Sockets
� Um processo envia/recebe 
mensagens para/de seu socket
� É a interface de comunicação entre 
a camada de aplicação e camada de 
transporte
� O socket é análogo a uma “porta 
de casa”
� O processo de envio empurra a 
mensagem para fora da “porta”
� O processo de envio confia na infra-
estrutura de transporte no outro 
lado da porta que leva a mensagem 
para o socket no processo de 
recepção
9
17Arquitetura de Redes de Computadores - Unidade II 17
De qual serviço de transporte uma aplicação 
necessita?
� Perda de dados
� Algumas aplicações (ex.: áudio) podem tolerar alguma perda 
� Outras aplicações (ex.: transferência de arquivos, telnet) exigem 
transferência de dados 100% confiável 
� Temporização
� Algumas aplicações (ex.: telefonia Internet, jogos interativos) 
exigem baixos atrasos para serem “efetivos”
� Banda passante / Vazão
� Algumas aplicações (ex.: multimídia) exigem uma banda mínima 
para serem “efetivas”
� Outras aplicações (“aplicações elásticas”) melhoram quando a 
banda disponível aumenta” 
� Segurança
� criptografia, integridade de dados,…
18Arquitetura de Redes de Computadores - Unidade II 18
Serviços dos protocolos de transporte da 
Internet
� Serviço TCP:
� Orientado à conexão: 
� conexão requerida entre processos cliente e servidor
� Transporte confiável entre os processor de envio e recepção
� Controle de fluxo: 
� o transmissor não sobrecarrega o receptor 
� Controle de congestionamento: 
� protege a rede do excesso de tráfego 
� Não oferece: 
� garantias de temporização (atrasos) e de banda mínima
� Serviço UDP:
� Transferência de dados não confiável entre os processos transmissor e receptor
� Não oferece: 
� estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, 
garantia de temporização e de banda mínima.
P.: Por que ambos? Por que existe o UDP?
10
19Arquitetura de Redes de Computadores - Unidade II 19
Aplicação
transf. arquivos
e-mail
documentos Web
áudio/vídeo 
tempo real
áudio/vídeo 
armazenado
jogos interativos
Mensagem
instantânea
Perda de dados
sem perda
sem perda
sem perda
tolerante a perda
tolerante a perda
tolerante a perda
sem perda
Vazão
elástica
elástica
elástica
áudio: 5 kbps-1 Mbps
vídeo:10 kbps-5 Mbps
o mesmo que antes 
poucos kbps ou mais
elástica
Sensível ao tempo
não
não
não
sim, centenas de ms
sim, alguns seg
sim, centenas de ms
sim e não
Requisitos de serviço de transportedas 
aplicações comuns
20Arquitetura de Redes de Computadores - Unidade II 20
Aplicação
e-mail
acesso remoto
Web 
transf. arquivos
multimídia com
fluxo contínuo
telefonia da
Internet
Tradução de 
nomes
Gerenciamento
de redes
Protocolo da camada
de aplicação
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)
DNS [RFC 1035]
SNMP 
Protocolo de 
transporte básico
TCP
TCP
TCP
TCP
TCP ou UDP
normalmente UDP
tipicamente UDP
tipicamente UDP
Aplicações da Internet: aplicação,
protocolos de transporte
11
21Arquitetura de Redes de Computadores - Unidade II 21
Protocolos de aplicação 
e transporte
Serviço Web e 
Protocolo HTTP
12
23Arquitetura de Redes de Computadores - Unidade II 23
Serviço World Wide Web
� Serviço World Wide Web
� É um serviço de rede de documentos em hipermídia que são interligados, através 
dos links, e executados na Internet.
� Documentos hipermídia são as páginas web
� Utiliza o protocolo http(hypertext transfer protocol)
� Transporta apenas texto, qualquer arquivo que não seja texto deve ser transformado em 
texto
� Orgão regulamentador W3C Consortium – www.w3.org
� Serviço cliente – servidor
� Cliente
o Navegador (browser) – Internet Explorer, Firefox, Opera, Safari, etc...
� Servidor
o Servidor Web – Apache, IIS, etc...
� Evolução: web services
� solução utilizada na integração de sistemas e na comunicação entre aplicações 
diferentes
24Arquitetura de Redes de Computadores - Unidade II 24
Web e HTTP
� Página Web formada por objetos
� Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de 
áudio,…
� A página Web consiste de arquivo-HTML base que inclui vários objetos 
referenciados
� Cada objeto é endereçado por uma URL
� Estrutura de URL
� protocolo://máquina:porta/caminho/recurso 
� Exemplo de URL:
http://www.resultado.com.br:80/final/2010/aprovados.htm
Protocolo Máquina Porta Caminho Recurso
13
25Arquitetura de Redes de Computadores - Unidade II 25
Visão geral do HTTP
� HTTP: hypertext transfer protocol
� Protocolo da camada de aplicação 
da Web
� Utiliza protocolo de transporte 
TCP
� Modelo cliente/servidor
� Cliente: browser que solicita, 
recebe e apresenta objetos da 
Web 
� Servidor: envia objetos em 
resposta a pedidos
� Versões
� HTTP 1.0: RFC 1945
� HTTP 1.1: RFC 2616
26Arquitetura de Redes de Computadores - Unidade II 26
Visão geral do HTTP
• Funcionamento básico do http
1. Cliente inicia conexão TCP (via socket) para o servidor na porta 80
2. Servidor aceita uma conexão TCP do cliente
3. Cliente envia mensagens HTTP de requisição(mensagens do protocolo 
de camada de aplicação) através do browser (cliente HTTP) para o 
servidor Web (servidor HTTP). O servidor envia o objeto solicitado 
através de mensagens de resposta.
4. A conexão TCP é fechada 
� HTTP é “stateless”
� O servidor não mantém informação sobre os pedidos passados pelos 
clientes
� Protocolos que mantêm informações de “estado” são complexos!
14
27Arquitetura de Redes de Computadores - Unidade II 27
Conexões HTTP
� HTTP não persistente
� No máximo, um objeto é enviado sobre uma conexão TCP
� Cada objeto é solicitado e enviado através de uma única conexão TCP
� O HTTP/1.0 utiliza HTTP não persistente
� HTTP persistente
� Múltiplos objetos podem ser enviados sobre uma conexão TCP entre o cliente e o 
servidor
� O HTTP/1.1 utiliza conexões persistentes em seu modo padrão 
� O HTTP persistente tem duas variantes
� Persistente sem pipelining:
o O cliente emite novas requisições apenas quando a resposta anterior for recebida
� Persistente com pipelining:
o O cliente envia requisições assim que encontra um objeto referenciado, respeitando o limite 
configurado no browser
o O servidor pode estar configurado para responder a um limite máximo de conexões de uma 
mesma origem
� Para verificar no Firefox
� Na barra de endereços digite about:config
� Procurar a opção network.http.pipelining e colocar como true
28Arquitetura de Redes de Computadores - Unidade II 28
HTTP não persistente
1a. Cliente HTTP inicia conexão TCP ao 
servidor HTTP (processo) em 
www.unicarioca.edu.br. 
Porta 80 é a default para o servidor 
HTTP.
2. Cliente HTTP envia HTTP mensagem de 
requisição (contendo a URL) para o 
socket da conexão TCP 
1b. Servidor HTTP no hospedeiro 
www.unicarioca.edu.br esperando pela 
conexão TCP na porta 80. “Aceita” 
conexão, notificando o cliente
3. Servidor HTTP recebe mensagem de 
pedido, forma uma mensagem de 
resposta contendo o objeto solicitado 
(graduacao/index.html), envia 
mensagem para o socket
Tempo
(contém texto,referências a 10 imagens jpeg)
Usuário entra com a URL: www.unicarioca.edu.br/graduacao/index.html
15
29Arquitetura de Redes de Computadores - Unidade II 29
HTTP não persistente
5. Cliente HTTP recebe mensagem de resposta contendo o arquivo html, apresenta o conteúdo 
html. Analisando o arquivo html, encontra 10 objetos jpeg referenciados
6. Passos 1-5 são repetidos para cada um 
dos 10 objetos jpeg.
4. Servidor HTTP fecha conexão TCP. 
Tempo
30Arquitetura de Redes de Computadores - Unidade II 30
Mensagem HTTP request: formato geral
16
31Arquitetura de Redes de Computadores - Unidade II 31
Carriage return, 
line feed 
indica fim da mensagem
�Dois tipos de mensagens HTTP: request, response
� HTTP request message:
� ASCII (formato legível para humanos)
GET /somedir/page.html HTTP/1.0 
User-agent: Mozilla/4.0 
Accept: text/html, image/gif,image/jpeg 
Accept-language:fr 
(extra carriage return, line feed) 
Linha de pedido
(comandos GET, POST, 
HEAD )
Linhas de
cabeçalho
Mensagem HTTP request
32Arquitetura de Redes de Computadores - Unidade II 32
Tipos de métodos
Método HTTP 1.0 HTTP 1.1
GET
Método que solicita algum recurso ou objeto ao servidor � �
HEAD
Solicita informações de um determinado objeto sem que esse seja enviado 
ao cliente apenas para testa a validade do último acesso
� �
POST
Método usado para envio de arquivo dados ou formulário HTML ao servidor � �
OPTIONS
Por meio desse método o cliente obtém as propriedades do servidor �
DELETE
Informa por meio do URL o objeto a ser deletado �
TRACE
Para enviar mensagem do tipo loopback para teste �
PUT
Aceita criar ou modificar algum objeto do servidor �
CONNECT
Comunicar com servidores Proxy �
17
33Arquitetura de Redes de Computadores - Unidade II 33
Entrada de formulário
� Em entradas de formulários:
Método POST:
� Página Web frequentemente inclui entrada de formulário
� A entrada é enviada para o servidor no corpo da entidade
Método GET:
� A entrada é enviada no campo de URL da linha de requisição:
www.carioca.br/procuraaluno.php?matricula=1234&nome=jose
34Arquitetura de Redes de Computadores - Unidade II 34
HTTP/1.0 200 OK 
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
data data data data data ... 
Linha de status
(protocolo
código de status 
frase de status)
Linhas de
cabeçalho
Dados, ex.: 
arquivo html
Mensagem HTTP response
18
35Arquitetura de Redes de Computadores - Unidade II 35
Códigos de status das respostas
� Na primeira linha da mensagem de resposta servidor -> cliente.
� Séries de código existentes:
� 100: Informational (Informação)
� Utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo 
processada 
� 200 
� 200 OK
� Sucesso: Requisição bem-sucedida, objeto requisitado a seguir nesta mensagem
� 300 
� 301 Moved permanently
o Redirecionamento:Objeto requisitado foi movido, nova localização especificada a seguir nesta mensagem 
(Location:)
� 400
� 400 Bad request
o Erro no cliente: Mensagem de requisição não compreendida pelo servidor
� 404 Not Found
o Documento requisitado não encontrado neste servidor
� 500 
� 505 HTTP version not supported
o Erro no servidor: ocorreu um erro no servidor ao cumprir uma requisição válida. 
� Mais exemplos em 
http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6
36Arquitetura de Redes de Computadores - Unidade II 36
HTTP Request
Cabeçalho
Corpo da mensagem
Campos de informações com seus 
valores
19
37Arquitetura de Redes de Computadores - Unidade II 37
HTTP Reply 200 ok
Cabeçalho
Corpo da mensagem
38Arquitetura de Redes de Computadores - Unidade II 38
HTTP Reply 304 Not Modified
Cabeçalho
Corpo da mensagem
20
39Arquitetura de Redes de Computadores - Unidade II 39
HTTP Request – Envio Informações
Cabeçalho
Corpo da mensagem
Envio de informações pelo método Get
GET /cert/hit.dll?sitio_id=20607&path=/capa/-
&referer=&size=1280&colors=32&java=true&flash=9
40
Estado usuário-servidor: 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
Exemplo:
� Usuário sempre acessa a 
Internet pelo PC
� visita um site de comércio 
eletrônico pela primeira vez
� quando as primeiras 
requisições HTTP chegam ao 
site, este cria: 
� ID exclusivo
� entrada no banco de dados de 
apoio para o ID
21
41
cliente servidor
resposta http normal
resposta http normal
arq. de cookie
uma semana depois:
requisição http normal
cookie: 1678 ação
específica
do cookie
acessa
ebay 8734
requisição http normal servidor Amazon
cria ID 1678
para usuário cria entrada
resposta http normal 
Set-cookie: 1678 
ebay 8734
amazon 1678
requisição http normal
cookie: 1678 ação
específica
do cookie
acessa
ebay 8734
amazon 1678
banco de
dados de
apoio
Estado usuário-servidor: cookies
já existe
42
Estado usuário-servidor: cookies
O que os cookies podem ter:
� autorização
� carrinhos de compras
� recomendações
� estado da sessão do usuário 
(e-mail da Web)
Cookies e privacidade:
❒ cookies permitem que os sites 
descubram muito sobre você
❒ você pode fornecer nome e e-mail 
aos sites
aparte
Como manter o “estado”:
❒ extremidades do protocolo: mantêm estado no 
emissor/receptor por múltiplas transações
❒ cookies: mensagens HTTP transportam estado
22
43
Caches Web (servidor proxy)
� Objetivo:
� Satisfazer a requisição do 
cliente sem envolver servidor de 
origem
� usuário prepara navegador: 
acessos à Web via cache
� navegador envia todas as 
requisições HTTP ao cache
� objeto no cache: cache retorna 
objeto 
� ou cache requisita objeto do 
servidor de origem, depois 
retorna objeto ao cliente
cliente
servidor
proxy
cliente
servidor
de origem
servidor
de origem
44
Mais sobre caching 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)
23
45
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>
� servidor: resposta não contém 
objeto se a cópia em cache estiver 
atualizada: 
HTTP/1.0 304 Not Modified
cache servidor
msg requisição HTTP
If-modified-since: 
<data>
resposta HTTP
HTTP/1.0 
304 Not Modified
objeto 
não
modificado
msg requisição HTTP
If-modified-since: 
<data>
resposta HTTP
HTTP/1.0 200 OK
<dados>
objeto 
modificado
46Arquitetura de Redes de Computadores - Unidade II 46
Hyper Text Transfer Protocol over SSL (HTTPS)
� Protocolo de aplicação da web que utiliza criptografia
� Garante privacidade (criptografia)
� Garante a identidade das partes envolvidas em uma 
transferência
� Porta 443/TCP
https://nome_máquina/recurso
24
Transferência de arquivos e protocolo FTP
48Arquitetura de Redes de Computadores - Unidade II 48
FTP: o protocolo de transferência de arquivos
� Transferência de arquivos de e para o computador remoto
� Modelo cliente servidor
� Cliente: lado que inicia a transferência (seja de ou para o lado remoto)
� Servidor: hospedeiro remoto
� FTP: RFC 959
� FTP servidor: porta 21
25
49Arquitetura de Redes de Computadores - Unidade II 49
FTP: controle separado, conexões de dados
� Cliente FTP contata o servidor FTP na porta 21 especificando o TCP como protocolo de 
transporte
� Cliente obtém autorização pela conexão de controle
� Cliente procura o diretório remoto enviando comandos pela conexão de controle
� Quando o servidor recebe um comando para uma transferência de arquivo, ele abre 
uma conexão de dados TCP para o cliente
� Após a transferência de um arquivo, o servidor fecha a conexão
� Servidor abre uma segunda conexão de dados TCP para transferir outro arquivo
� Conexão de controle: “FORA DA BANDA” (dados são enviados pela porta 20)
� Servidor FTP mantém “estado”: diretório atual, autenticação anterior
50
Comandos e respostas FTP
Exemplos de comandos:
� enviado como texto ASCII pelo canal 
de controle
� USER nome-usuário
� PASS senha
� LIST retorna lista de arquivos no 
diretório atual
� RETR nome-arquivo recupera
(apanha) arquivo
� STOR nome-arquivo armazena
(coloca) arquivo no hospedeiro 
remoto
Exemplos de códigos de 
retorno:
� código e frase de estado (como no
HTTP)
� 331 Username OK, password 
required
� 125 data connection already 
open; transfer starting
� 425 Can’t open data 
connection
� 452 Error writing file
26
Acesso Remoto
52Arquitetura de Redes de Computadores - Unidade II 52
Terminal remoto
� Telnet é um protocolo cliente-servidor usado para permitir a comunicação entre 
computadores ligados numa rede (exemplos: rede local / LAN, Internet), 
� Telnet é um protocolo de login/acesso remoto
� Utiliza o protocolo de transporte TCP
� Utiliza porta 23
� Os dados/comandos são trafegados em claro, inclusive a login/senha
� O serviço SSH é a alternativa para acesso remoto que implementa criptografia
� Utiliza porta 22
27
53Arquitetura de Redes de Computadores - Unidade II 53
Exemplo de Telnet
Serviço de correio eletrônico e protocolos SMTP, POP3 e 
IMAP
28
55Arquitetura de Redes de Computadores - Unidade II 55
Correio eletrônico - Componentes
Três componentes principais:
1. Agentes de usuário 
2. Servidores de correio
3. Simple mail transfer protocol: 
SMTP
1. Agente de usuário:
� “leitor de correio”
� Composição, edição, leitura de 
mensagens de correio
� Ex.: Eudora, Outlook, elm, 
Netscape Messenger
� Mensagens de entrada e de saída 
são armazenadas no servidor
caixa de entrada
do usuário
fila de
msg. de saída
mail
server
agente
usuário
serv.
correio
serv.
correio
SMTP
SMTP
agente
usuário
agente
usuário
agente
usuário
agente
usuário
agente
usuário
56Arquitetura de Redes de Computadores - Unidade II 56
Correio eletrônico - Componentes
2. Servidores de correio
� Caixa postal contém mensagens 
que chegaram(ainda não lidas) para 
o usuário
� Fila de mensagens contém as 
mensagens de correio a serem 
enviadas
3. Protocolo SMTP 
Permite aos servidores de correio trocarem 
mensagens entre si
� Cliente: servidor de correio que 
envia
� “Servidor”: servidor de correio que 
recebe
caixa de entrada
do usuário
fila de
msg. de saída
mail
server
agente
usuário
serv.
correio
serv.
correio
SMTP
SMTP
agente
usuário
agente
usuário
agente
usuário
agente
usuário
agente
usuário
29
57Arquitetura de Redes de Computadores - Unidade II 57
Correio eletrônico: SMTP
� SMTP usa TCP para transferência confiável de mensagens de 
correio do cliente ao servidor, porta 25
� Transferência direta: servidor envia direto para o servidor de 
destino
� Três fases de transferência
� Handshaking (apresentação)
� Transferência de mensagens
� Fechamento
� Interação comando/resposta
� Comandos: texto ASCII
� Resposta: código de status e frase
58Arquitetura de Redes de Computadores - Unidade II 58
Cenário: Alice envia mensagem para Bob
1. Alice usa o agente de usuário (UA) para compor a mensagem e “para” 
bob@someschool.edu;
2. O agente de usuário dela envia a mensagem para o seu servidor de correio; a 
mensagem é colocada na fila de mensagens;
3. O lado cliente do SMTP abre uma conexão TCP com o servidor de correio do 
Bob;
4. O cliente SMTP envia a mensagem de Alice pela conexão TCP;
5. O servidor de correio de Bob coloca a mensagem na caixa de correio de Bob;
6. Bob invoca seu agente de usuário para ler a mensagem.
agente
usuário
serv.
correio
serv.
correio agente
usuário
1
2 3 4 5
6
30
59Arquitetura de Redes de Computadores - Unidade II 59
Exemplo de interação SMTP
o S: 220 hamburger.edu 
o C: HELO crepes.fr 
o S: 250 Hello crepes.fr, pleased to meet you 
o C: MAIL FROM: <alice@crepes.fr> 
o S: 250 alice@crepes.fr... Sender ok 
o C: RCPT TO: <bob@hamburger.edu> 
o S: 250 bob@hamburger.edu ... Recipient ok 
o C: DATA 
o S: 354 Enter mail, end with "." on a line by itself 
o C: Você gosta de ketchup? 
o C: Que tal picles? 
o C: . 
o S: 250 Message accepted for delivery 
o C: QUIT 
o S: 221 hamburger.edu closing connection
60Arquitetura de Redes de Computadores - Unidade II 60
Formato da mensagem de correio
� Correio eletrônico formado por:
� Envelope
� Encapsula uma mensagem
� Contém as informações necessárias para o transporte da mensagem
o Como no correio comum
� Mensagem
� Composta por cabeçalho e corpo
31
61Arquitetura de Redes de Computadores - Unidade II 61
Formato da mensagem de correio
� Linhas de cabeçalho, ex.:
� To:
� From:
� Subject:
diferente dos comandos HTTP
� Corpo
� A “mensagem”, ASCII somente com 
caracteres
header
body
linha 
em branco
62Arquitetura de Redes de Computadores - Unidade II 62
Exemplo de mensagem
Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMT
Received: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMT
From: usuario@cliente.br
To: usuario@servidor.br
Subject: Teste
Teste de envio de correio.
32
63Arquitetura de Redes de Computadores - Unidade II 63
Formato das mensagens: extensões multimídia
� MIME: Multimedia Mail Extension
� Permite transmitir os arquivos que não são texto pelo serviço de correio eletrônico
� Ex: imagens, vídeos, documentos do MS Office, etc...
� Linhas adicionais no cabeçalho declaram o tipo de conteúdo MIME
From: alice@crepes.fr 
To: bob@hamburger.edu 
Subject: Picture of yummy crepe. 
MIME-Version: 1.0 
Content-Transfer-Encoding: base64 
Content-Type: image/jpeg 
base64 encoded data ..... 
......................... 
......base64 encoded data 
Dados multimídia
tipo, subtipo, 
declaração de parâmetro
Método usado
para codificar dados
Versão da MIME
Dados codificados
64Arquitetura de Redes de Computadores - Unidade II 64
Protocolos de acesso ao correio
� SMTP: entrega e armazena no servidor do destino
� Protocolo de acesso: recupera mensagens do servidor 
� POP: Post Office Protocol [RFC 1939]
� Autorização (agente <-->servidor) e download 
� IMAP: Internet Mail Access Protocol [RFC 1730]
� Maiores recursos (mais complexo)
� Manipulação de mensagens armazenadas no servidor
� HTTP: Hotmail , Yahoo! Mail etc.
33
65
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
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
S: +OK POP3 server ready 
C: user bob 
S: +OK 
C: pass hungry 
S: +OK usuário logado com sucesso
Serviço de nomes
Protocolo DNS
34
67Arquitetura de Redes de Computadores - Unidade II 67
Servidor de Nomes (DNS)
� DNS –Domain Name System
� Base de dados distribuída, implementada numa hierarquia de 
muitos servidores de nomes que é organizado em uma hierarquia 
de domínios
� Protocolo de camada de aplicação
� Dispositivos se comunicam com servidores de nomes para resolver
nomes (tradução nome -> endereço)
� O uso de nomes facilita a memorização do usuário ao invés de 
decorar números IPs ou MAC address
68Arquitetura de Redes de Computadores - Unidade II 68
Componentes do serviço DNS
� Composto de:
1. Três tipos (classes) de servidores de nomes
a. Raiz
b. De domínio de alto nível (Top-Level Domain – TLD)
c. Com autoridade
2. Servidores DNS locais
35
69Arquitetura de Redes de Computadores - Unidade II 69
Componentes do serviço DNS
1. Classes de servidores de nomes
a. Raiz
� São contatados pelos servidores de nomes locais que não podem 
resolver um nome
b. De domínio de alto nível (Top-Level Domain – TLD)
� Responsáveis pelos domínios genéricos .com, .org, .net, .edu, etc e 
todos os domínios top-level nacionais .uk, .fr, .ca, .jp, .br, etc.
c. Com autoridade
� Servidores DNS de organizações
70Arquitetura de Redes de Computadores - Unidade II 70
Servidor de nomes local
2. Servidor DNS local
� Não pertence estritamente a uma hierarquia
� Cada ISP (ISP residencial, companhia, universidade) possui um
� Também chamado de “servidor de nomes default”
� Quando um hospedeiro faz uma pergunta a um DNS, a 
pergunta é enviada para seu servidor DNS local
� Age como um proxy, encaminhando as perguntas para dentro 
da hierarquia
36
71Arquitetura de Redes de Computadores - Unidade II 71
Como a consulta DNS funciona
72Arquitetura de Redes de Computadores - Unidade II 72
Comunicação entre Servidores
� Para consulta
� Porta 53 e protocolo UDP
� Para transferência de zona
� Porta 53 e protocolo TCP
37
73Arquitetura de Redes de Computadores - Unidade II 73
hospedeiro
solicitante
cis.poly.edu
gaia.cs.umass.edu
servidor DNS raiz
serv. DNS local
dns.poly.edu
1
2
3
4
5
6
serv. DNS com autoridade
dns.cs.umass.edu
78
servidor DNS TLD
Exemplo de resolução de nome DNS (1)
� hospedeiro em cis.poly.edu 
quer endereço IP para 
gaia.cs.umass.edu
� Consulta iterativa ou 
repetida:
� servidor contactado
responde com nome do 
servidor a contactar
� “não conheço esse nome, 
mas pergunte a este 
servidor”
74Arquitetura de Redes de Computadores - Unidade II 74
hospedeiro
solicitante
cis.poly.edu gaia.cs.umass.edu
serv. DNS raiz
serv. DNS local
dns.poly.edu
1
2
45
6
serv. DNS com autoridade
dns.cs.umass.edu
7
8
serv. DNS TLD
3
Exemplo de resolução de nome DNS (2)
� Consulta recursiva:
� Transferea resolução de nome 
para o servidor de nomes 
contactado
38
75Arquitetura de Redes de Computadores - Unidade II 75
Tipos de Zonas
� As informações sobre o DNS são armazenadas em zonas
� Em uma zona, poderão haver informações sobre um ou mais 
domínios
� Zona de pesquisa Direta
� Primárias
� Secundárias
� Zona de pesquisa Reversa
� Primárias
� Secundárias
76
Zona de Pesquisa Direta
� Zona de pesquisa direta
� O tipo de resolução de nomes mais utilizada
� Nesse tipo de resolução de nome, o cliente possui o nome DNS e 
precisa localizar o endereço IP associado em esse nome
� Zona de pesquisa reversa
� Cliente informa endereço IP e solicita o nome DNS
� Uma pesquisa inversa assume a forma de pergunta, como "Pode me 
informar o nome DNS do computador que usa o endereço IP 
192.168.1.20"? 
Arquitetura de Redes de Computadores - Unidade II 76
39
77Arquitetura de Redes de Computadores - Unidade II 77
Zona Primária, secundária
� Zona primária
� Zona autoritativa para um domínio
� É chamada primária porque ela ainda não existe e está sendo 
criada para conter as informações do domínio – p.ex., o 
domínio xyz.com.br
� Zona secundária
� Zona “espelho” de uma zona primária
� Precisa ser atualizada freqüentemente para manter a consistências 
entre zonas
78
Tipos de registros
� As zonas têm como base um conceito de autoridade de servidor
� Quando um servidor DNS é configurado para carregar uma zona, 
ele usa dois tipos de REGISTROS DE RECURSOS para determinar 
as propriedades de autoridade da zona
� Primeiro, o Registro de Recurso de Início de Autoridade (SOA)
indica: 
� O nome da ORIGEM da zona
� O nome do servidor que é a origem primária das informações sobre a 
zona
� Ele também indica outras propriedades básicas da zona
Arquitetura de Redes de Computadores - Unidade II 78
40
79
Tipos de registros
� Em seguida, o Registro de Recurso do Servidor de Nomes (NS) é 
usado para notificar quais servidores DNS são designados como 
autorizados para a zona
� Listando um servidor no RR (Registro de Recurso) NS, ele se torna 
conhecido para outros como um servidor autorizado para a zona
� Isso significa que todo servidor especificado no RR NS deve ser 
considerado uma origem autorizada por outros e é capaz de responder 
com segurança todas as consultas feitas para nomes incluídos na zona
Arquitetura de Redes de Computadores - Unidade II 79
80Arquitetura de Redes de Computadores - Unidade II 80
Registros SOA e NS
� Os registros de recursos SOA e NS ocupam uma função especial 
na configuração da zona
� Eles são registros obrigatórios para qualquer zona e são 
normalmente o primeiro dos registros de recursos listados nos 
arquivos
41
81
Registros SOA e NS
� Exemplos
� SOA
� @ IN SOA nameserver.example.microsoft.com. postmaster.example.microsoft.com. ( 
1 ; serial number
3600 ; refresh [1h] 
600 ; retry [10m] 
86400 ; expire [1d] 
3600 ) ; min TTL [1h]
� NS
� example.microsoft.com. IN NS nameserver1.example.microsoft.com 
Arquitetura de Redes de Computadores - Unidade II 81
82
Tipos de Registros
� Após criar uma zona, os registros de recursos adicionais necessários 
precisam ser adicionados a ela. A maioria dos registros de recursos 
(RRs) a serem adicionados são:
� Host(A)
� Faz o mapeamento de um nome DNS para um endereço IPv4, ex.:
o srv01.abc.com.br IN A 100.100.200.150
� Alias - Canonical Name (CNAME)
� Mapeia um alias (apelido) ou nome DNS alternativo, ex.:
o www.abc.com.br. CNAME srv01.abc.com.br
� Servidor de Mensagens (MX)
� Mapeia um nome de domínio DNS para o nome de um computador que 
troca ou encaminha mensagens eletrônicas (servidor de email)
� Ponteiro (PTR)
� É utilizado em zonas reversas, para fazer o mapeamento reverso
o 10.20.20.10.in-addr.arpa. PTR host.example.microsoft.com
� Outros registros de recursos conforme necessário
Arquitetura de Redes de Computadores - Unidade II 82
42
83Arquitetura de Redes de Computadores - Unidade II 83
DNS: armazenando e atualizando registros
� Uma vez que um servidor de nomes apreende um mapeamento, ele 
armazena o mapeamento num registro do tipo cache
� Registro do cache tornam-se obsoletos (desaparecem) depois de um 
certo tempo
� Servidores TLD são tipicamente armazenados em cache nos servidores 
de nome locais
� Mecanismos de atualização e notificação estão sendo projetados pelo IETF
� RFC 2136
� http://www.ietf.org/html.charters/dnsind-charter.html

Continue navegando