Você está na página 1de 21

Arquitetura de Redes de Computadores

Unidade II Camada de Aplicao


Prof Sergio Cardoso
ssilva@unicarioca.edu.br

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Camada de aplicao

Escrever programas que


Executem em diferentes sistemas
finais e
Se comuniquem atravs de uma
rede.

Aspectos conceituais, aspectos de implementao de protocolos de


aplicao de redes
Modelos de servio da camada de transporte

Ex.: Web software de servidor


Web se comunicando com
software do browser.

o Paradigma cliente-servidor
o Paradigma peer-to-peer

Aprender sobre protocolos de camada de aplicao examinando


protocolos usuais

No preciso escrever software para


dispositivos do ncleo da rede
dispositivos do ncleo da rede no
executam aplicaes do usurio
as aplicaes nos sistemas finais
permitem rpido desenvolvimento e
propagao

HTTP
FTP
Telnet/SSH
SMTP/ POP3/ IMAP
DNS

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Criando uma nova aplicao de rede

Nossos objetivos:

o
o
o
o
o

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Definies de protocolo
da camada de aplicao

Algumas aplicaes de rede

tipos de mensagens trocadas,

e-mail
web
mensagem instantnea
login remoto
compartilhamento de
arquivos P2P
jogos em rede
multiusurios
clipes de vdeo
armazenados em fluxo
contnuo

p. e., requisio, resposta

sintaxe da mensagem:
que campos nas mensagens & como os campos so delineados

semntica da mensagem
significado da informao nos campos

regras de quando e como processos enviam & respondem a mensagens


protocolos de domnio pblico:
definidos em RFCs
prov interoperabilidade
p. e., HTTP, SMTP, BitTorrent

protocolos proprietrios:
p. e., Skype, ppstream
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

redes sociais
VoIP (voice over IP)
videoconferncia em
tempo real
computao em grade

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Arquiteturas de aplicao

Arquitetura cliente-servidor
Servidor:
Hospedeiro sempre ligado
Endereo IP permanente
Fornece servios solicitados pelo
cliente

Cliente-servidor
Incluindo centros de dados/cloud computing

Peer-to-peer (P2P)
Hbrida de cliente-servidor e P2P

Server farms por expanso

Clientes:
Comunicam-se com o servidor
Pode ser conectado
intermitentemente
Pode ter endereo IP dinmico
No se comunicam diretamente
uns com os outros

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Modelo Cliente Servidor

Cliente-Servidor
Vantagens
Segurana
Controle central de arquivos
Servidores dedicados e
otimizados
Os usurios no se preocupam
com a administrao

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Desvantagens
Custo
Hardware
Software
necessrio um administrador
Baixa escalabilidade
Baixa disponibilidade

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Centros de dados da Google

10

10

12

12

Arquitetura P2P pura


Nenhum servidor est sempre
ligado
Sistemas finais arbitrrios se
comunicam diretamente
Pares so conectados
intermitentemente e mudam
endereos IP

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 potncia

Altamente escalveis mas difceis


de administrar

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

11

11

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Peer-to-Peer
Vantagens
Sem investimento extra com
servidores
Alta escalabilidade
Alta disponibilidade
Sem administrador

Hbrida de cliente-servidor e P2P

Desvantagens
Sem organizao central

Integra os conceitos da arquitetura cliente servidor com P2P


Cliente Servidor

Difcil localizao de arquivos


Duplicaes desnecessrias

Normalmente um servidor para autenticao e localizao

P2P

Os usurios so os
administradores
Sem segurana

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Depois de localizado, troca direta entre os pares

Exemplo
Skype
aplicao P2P voice-over-IP P2P
servidor centralizado: achando endereo da parte remota:
conexo cliente-cliente: direta (no atravs de servidor)
Mensagem instantnea
bate-papo entre dois usurios P2P
servio centralizado: deteco/localizao da presena do cliente
o usurio registra seu endereo IP com servidor central quando entra on-line
o usurio contata servidor central para descobrir endereos IP dos parceiros
13

13

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Comunicao de processos

14

14

16

16

Sockets

Processo: programa executando num hospedeiro


Dentro do mesmo hospedeiro:
dois processos se comunicam usando comunicao interprocesso (definido
pelo SO)

Processos em diferentes hospedeiros se comunicam por meio de troca


de mensagens
Processo cliente:
o processo que inicia a comunicao

Processo servidor:
o processo que espera para ser contatado

Um processo envia/recebe
mensagens para/de seu socket
a interface de comunicao entre
a camada de aplicao e camada de
transporte
O socket anlogo a uma porta
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 recepo.

Nota: aplicaes com arquiteturas P2P possuem processos cliente e processos servidor

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

15

15

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

De qual servio de transporte uma aplicao


necessita?

Servios dos protocolos de transporte da


Internet
Servio TCP:
Orientado conexo:

Perda de dados
Algumas aplicaes (ex.: udio) podem tolerar alguma perda
Outras aplicaes (ex.: transferncia de arquivos, telnet) exigem
transferncia de dados 100% confivel

conexo requerida entre processos cliente e servidor

Transporte confivel entre os processor de envio e recepo


Controle de fluxo:
o transmissor no sobrecarrega o receptor

Temporizao

Controle de congestionamento:

Algumas aplicaes (ex.: telefonia Internet, jogos interativos)


exigem baixos atrasos para serem efetivos

protege a rede do excesso de trfego

No oferece:
garantias de temporizao e de banda mnima

Banda passante / Vazo

Servio UDP:
Transferncia de dados no confivel entre os processos transmissor e receptor
No oferece:

Algumas aplicaes (ex.: multimdia) exigem uma banda mnima


para serem efetivas
Outras aplicaes (aplicaes elsticas) melhoram quando a
banda disponvel aumenta

estabelecimento de conexo, confiabilidade, controle de fluxo e de congestionamento,


garantia de temporizao e de banda mnima.

Segurana

P.: Por que ambos? Por que existe o UDP?

criptografia, integridade de dados,


Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

17

17

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Requisitos de servio de transporte das


aplicaes comuns

Aplicao

Perda de dados

Vazo

Sensvel ao tempo

transf. arquivos
e-mail
documentos Web
udio/vdeo
tempo real
udio/vdeo
armazenado
jogos interativos
Mensagem
instantnea

sem perda
sem perda
sem perda
tolerante a perda

no
no
no
sim, centenas de ms

tolerante a perda

elstica
elstica
elstica
udio: 5 kbps-1 Mbps
vdeo:10 kbps-5 Mbps
o mesmo que antes

tolerante a perda
sem perda

poucos kbps ou mais


elstica

sim, centenas de ms
sim e no

19

18

20

20

Aplicaes da Internet: aplicao,


protocolos de transporte

sim, alguns seg

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

18

19

Aplicao

Protocolo da camada
de aplicao

Protocolo de
transporte bsico

e-mail
acesso remoto
Web
transf. arquivos
multimdia com
fluxo contnuo
telefonia da
Internet

SMTP [RFC 2821]


Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (p. e., Youtube),
RTP [RFC 1889]
SIP, RTP, proprietrio
(p. e., Skype)

TCP
TCP
TCP
TCP
TCP ou UDP

normalmente UDP

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Protocolos de aplicao
e transporte

Servio Web e
Protocolo HTTP

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

21

21

Web e HTTP

Servio World Wide Web


Servio World Wide Web

Pgina Web formada por objetos

um servio de rede de documentos em hipermdia que so interligados, atravs


dos links, e executados na Internet.

Objeto pode ser arquivo HTML, imagem JPEG, Java applet, arquivo de
udio,

Documentos hipermdia so as pginas web

Utiliza o protocolo http (hypertext transfer protocolo)


Transporta apenas texto, qualquer arquivo que no seja texto deve ser transformado em
texto

A pgina Web consiste de arquivo-HTML base que inclui vrios objetos


referenciados
Cada objeto endereado por uma URL

Orgo regulamentador W3C Consortium www.w3.org


Servio cliente servidor

Estrutura de URL

Cliente

protocolo://mquina:porta/caminho/recurso

o Navegador (browser) Internet Explorer, Firefox, Opera, Safari, etc...

Exemplo de URL:

Servidor
o Servidor Web Apache, IIS, etc...

Evoluo: web services

http://www.resultado.com.br:80/final/2010/aprovados.htm

soluo utilizada na integrao de sistemas e na comunicao entre aplicaes


diferentes

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Protocolo
23

23

Mquina

Porta

Caminho

Recurso

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

24

24

Viso geral do HTTP

Viso geral do HTTP

HTTP: hypertext transfer protocol

Funcionamento bsico do http

Protocolo da camada de
aplicao da Web

1.

Utiliza protocolo de transporte


TCP

3.

2.

Modelo cliente/servidor
Cliente: browser que solicita,
recebe e apresenta objetos da
Web

4.

Servidor: envia objetos em


resposta a pedidos

Cliente inicia conexo TCP (via socket) para o servidor na porta 80


Servidor aceita uma conexo TCP do cliente
Cliente envia mensagens HTTP de requisio(mensagens do protocolo
de camada de aplicao) atravs do browser (cliente HTTP) para o
servidor Web (servidor HTTP). O servidor envia o objeto solicitado
atravs de mensagens de resposta.
A conexo TCP fechada

HTTP stateless
O servidor no mantm informao sobre os pedidos passados pelos
clientes
Protocolos que mantm informaes de estado so complexos!

Verses
HTTP 1.0: RFC 1945
HTTP 1.1: RFC 2616
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

25

25

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Conexes HTTP

26

26

HTTP no persistente

HTTP no persistente
No mximo, um objeto enviado sobre uma conexo TCP

Usurio entra com a URL: www.unicarioca.edu.br/graduacao/index.html

Cada objeto solicitado e enviado atravs de uma nica conexo TCP

1a. Cliente HTTP inicia conexo TCP ao


servidor HTTP (processo) em
www.unicarioca.edu.br.
Porta 80 a default para o servidor
HTTP.

O HTTP/1.0 utiliza HTTP no persistente


HTTP persistente
Mltiplos objetos podem ser enviados sobre uma conexo TCP entre o cliente e o
servidor
O HTTP/1.1 utiliza conexes persistentes em seu modo padro
O HTTP persistente tem duas variantes

(contm texto,referncias a 10 imagens jpeg)

1b. Servidor HTTP no hospedeiro


www.unicarioca.edu.br esperando pela
conexo TCP na porta 80. Aceita
conexo, notificando o cliente

Persistente sem pipelining:


2. Cliente HTTP envia HTTP mensagem de
requisio (contendo a URL) para o
socket da conexo TCP

o O cliente emite novas requisies apenas quando a resposta anterior for recebida

Persistente com pipelining:


o O cliente envia requisies assim que encontra um objeto referenciado, respeitando o limite
configurado no browser
o O servidor pode estar configurado para responder a um limite mximo de conexes de uma
mesma origem

Para verificar no Firefox


Na barra de endereos digite about:config
Procurar a opo network.http.pipelining e colocar como true
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

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
27

27

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

28

28

HTTP no persistente

Mensagem HTTP request

4. Servidor HTTP fecha conexo TCP.

Dois tipos de mensagens HTTP: Requisio (request), Resposta (response)


HTTP request message:

5. Cliente HTTP recebe mensagem de resposta contendo o arquivo html, apresenta o contedo
html. Analisando o arquivo html, encontra 10 objetos jpeg referenciados

ASCII (formato de texto legvel)

Linha de pedido / requisio


GET /somedir/page.html HTTP/1.0
(comandos GET, POST,
Host: www.umsite.com.br
HEAD )
User-agent: Mozilla/4.0
Linhas de Accept: text/html, image/gif,image/jpeg
cabealho Accept-language:pt-br

Tempo

6. Passos 1-5 so repetidos para cada um


dos 10 objetos jpeg.

Carriage return,
(extra carriage return, line feed)
line feed
indica fim da mensagem
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

29

29

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Mensagem de requisio
HTTP: formato geral

30

30

Tipos de mtodos
HTTP/1.0
GET
POST
HEAD
Pede para o servidor deixar o objeto requisitado fora da resposta

HTTP/1.1
GET, POST, HEAD
PUT
Envia o arquivo no corpo da entidade para o caminho especificado
no campo de URL

DELETE
Apaga o arquivo especificado no campo de URL

Mais sobre mtodos:


http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

31

31

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

32

32

Entrada de formulrio

Mensagem HTTP response

Mtodo Post:

Linha de status
(protocolo cdigo de
status frase de status)

Pgina Web frequentemente inclui entrada de formulrio


A entrada enviada para o servidor no corpo da entidade

Mtodo GET:
A entrada enviada no campo de URL da linha de requisio:

Linhas de
cabealho

<html>dados dados dados</html>

www.carioca.br/procuraaluno.php?matricula=1234&nome=jose

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

33

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

Dados, ex.:
arquivo html

33

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Cdigos de status das respostas

34

34

36

36

HTTP Request

Sries de cdigo existentes:


100: Informational (Informao)

Campos de informaes com seus


valores

Utilizada para enviar informaes para o cliente de que sua requisio foi recebida e est sendo
processada
200 - Requisio bem sucedida
200 OK
Sucesso: Requisio bem-sucedida, objeto requisitado a seguir nesta mensagem

Cabealho

300 - Redirecionamento
301 Moved permanently
o Redirecionamento: Objeto requisitado foi movido, nova localizao especificada a seguir nesta mensagem
(Location:)

400 Erro lado cliente


400 Bad request
o Erro no cliente: Mensagem de requisio no compreendida pelo servidor

404 Not Found


o Documento requisitado no encontrado neste servidor

500 Erro lado servidor


505 HTTP version not supported
o Erro no servidor: ocorreu um erro no servidor ao cumprir uma requisio vlida.

Mas exemplos em http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6

Corpo da mensagem

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

35

35

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

HTTP Reply 200 ok

HTTP Reply 304 Not Modified

Cabealho
Cabealho

Corpo da mensagem

Corpo da mensagem

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

37

37

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

38

38

Estado usurio-servidor: cookies

HTTP Request Envio Informaes


Cabealho

Muitos sites importantes usam


cookies
Quatro componentes:

Envio de informaes pelo mtodo Get


GET /cert/hit.dll?sitio_id=20607&path=/capa/-&referer=&size=1280&colors=32&java=true&flash=9

1) linha de cabealho de cookie da


mensagem de resposta HTTP
2) linha de cabealho de cookie na
mensagem de requisio HTTP
3) arquivo de cookie na mquina
do usurio, controlado pelo
navegador do usurio
4) banco de dados de apoio no site
Web

Exemplo:
Usurio sempre acessa a
Internet pelo PC
visita um site de comrcio
eletrnico pela primeira vez
quando as primeiras
requisies HTTP chegam ao
site, este cria:
ID exclusivo
entrada no banco de dados de
apoio para o ID

Corpo da mensagem

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

39

39

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

40

40

Estado usurio-servidor: cookies


cliente
ebay 8734

arq. de cookie

Estado usurio-servidor: cookies


O que os cookies podem ter:
autorizao
carrinhos de compras
recomendaes
estado da sesso do usurio
(e-mail da Web)

servidor
requisio http normal
resposta http normal

Set-cookie: 1678
ebay 8734
amazon 1678

requisio http normal

cookie: 1678
uma semana depois:

resposta http normal

ebay 8734
amazon 1678

requisio http normal

servidor Amazon
cria ID 1678
para usurio cria
entrada
ao
acessa
especfica
do cookie
acessa

cookie: 1678
resposta http normal

banco de
dados de
apoio

ao
especfica
do cookie

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

41

41

Como manter o estado:


extremidades do protocolo: mantm estado no
emissor/receptor por mltiplas transaes
cookies: mensagens HTTP transportam estado

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Caches Web (servidor proxy)

usurio prepara navegador:


acessos Web via cache
navegador envia todas as
requisies HTTP ao cache
objeto no cache: cache retorna
objeto
ou cache requisita objeto do
servidor de origem, depois
retorna objeto ao cliente

servidor
de origem

servidor
proxy
cliente

cliente

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

42

42

Mais sobre caching Web

Objetivo:
Satisfazer a requisio do
cliente sem envolver servidor de
origem

aparte
Cookies e privacidade:
cookies permitem que os sites
descubram muito sobre voc
voc pode fornecer nome e e-mail
aos sites

servidor
de origem

43

43

cache atua como cliente e


servidor
normalmente, cache
instalado por ISP (da
universidade, empresa,
residencial)

Por que caching Web?


reduz tempo de resposta
requisio do cliente
reduz trfego no enlace de
acesso de uma instituio
Internet densa com caches:
permite que provedores de
contedo fracos remetam
contedo efetivamente (mas o
mesmo ocorre com
compartilhamento de arquivos
P2P)

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

44

44

GET condicional
servidor

cache

Objetivo:
no enviar objeto

se o cache tiver verso atualizada


cache: especifica data da cpia em
cache na requisio HTTP
If-modified-since: <data>

servidor: resposta no contm


objeto se a cpia em cache estiver
atualizada:
HTTP/1.0 304 Not Modified

Hyper Text Transfer Protocol over SSL (HTTPS)

msg requisio HTTP


If-modified-since:
<data>

resposta HTTP

objeto
no
modificado

HTTP/1.0
304 Not Modified

Protocolo de aplicao da web que utiliza criptografia


Garante privacidade (criptografia)
Garante a identidade das partes envolvidas em uma
transferncia
Porta 443/TCP
https://nome_mquina/recurso

msg requisio HTTP


If-modified-since:
<data>

objeto
modificado

resposta HTTP
HTTP/1.0 200 OK
<dados>

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

45

45

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

46

46

FTP: o protocolo de transferncia de arquivos


Transferncia de arquivos de e para o computador remoto
Modelo cliente servidor
Cliente: lado que inicia a transferncia (seja de ou para o lado remoto)
Servidor: hospedeiro remoto
FTP: RFC 959

Transferncia de arquivos e protocolo FTP

FTP servidor: porta 21

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

48

48

FTP: controle separado, conexes de


dados

Comandos e respostas FTP

Cliente FTP contata o servidor FTP na porta 21, especificando o TCP


como protocolo de transporte
Cliente obtm autorizao pela conexo de controle
Cliente navega por diretrio remoto enviando comandos por conexo
de controle
Quando servidor recebe comando de transferncia de arquivo, abre 2a
conexo TCP (para arquivo) com cliente conexo de dados
Aps transferir um arquivo, servidor fecha conexo de dados
Servidor abre outra conexo de dados TCP para transferir outro arquivo
Conexo de controle: fora da banda
Servidor FTP mantm estado: diretrio atual, autenticao anterior

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

49

49

exemplos de comandos:
enviado como texto ASCII pelo canal
de controle
USER nome-usurio
PASS senha
LIST retorna lista de arquivos no
diretrio atual
RETR nome-arquivo recupera
(apanha) arquivo

exemplos de cdigos de retorno


cdigo e frase de estado (como no
HTTP)
331 Username OK, password
required
125 data connection already
open; transfer starting
425 Cant open data
connection
452 Error writing file

STOR nome-arquivo armazena


(coloca) arquivo no hospedeiro
remoto

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

50

50

Terminal remoto

Acesso Remoto

Telnet um protocolo cliente-servidor usado para permitir a comunicao 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
Problema:
Os dados/comandos so trafegados em claro, inclusive a login/senha

O servio SSH a alternativa para acesso remoto que implementa criptografia


Utiliza porta 22

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

52

52

Exemplo de Telnet

Servio de correio eletrnico e protocolos SMTP, POP3 e


IMAP

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

53

53

Correio eletrnico
Trs componentes principais:
Agentes de usurio
Servidores de correio
Simple mail transfer protocol:
SMTP

agente
usurio

SMTP

Mensagens de entrada e de sada


so armazenadas no servidor

SMTP
serv.
correio

Protocolo SMTP permite aos servidores de


correio trocarem mensagens entre si
Cliente: servidor de correio que
envia
servidor: servidor de correio que
recebe

agente
usurio

agente
usurio
agente
usurio

agente
usurio

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

agente
usurio

SMTP

55

agente
usurio
mail
server

SMTP
serv.
correio

agente
usurio

agente
usurio
agente
usurio

55

fila de
msg. de sada
caixa de entrada
do usurio

serv.
correio

Fila de mensagens contm as


mensagens de correio a serem
enviadas

agente
usurio
mail
server

Ex.: Eudora, Outlook, elm,


Netscape Messenger

Servidores de correio
Caixa postal contm mensagens que
chegaram (ainda no lidas) para o
usurio

fila de
msg. de sada
caixa de entrada
do usurio

serv.
correio

Agente de usurio
leitor de correio
Composio, edio, leitura de
mensagens de correio

Correio eletrnico: servidores de correio

agente
usurio

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

56

56

Correio eletrnico: SMTP

Cenrio: Alice envia mensagem para Bob


Alice usa o agente de usurio (UA) para compor a mensagem e para
bob@provedor.com
O agente de usurio dela envia a mensagem para o seu servidor de
correio; a mensagem colocada na fila de mensagens.
O lado cliente do SMTP abre uma conexo TCP com o servidor de
correio do Bob.
O cliente SMTP envia a mensagem de Alice pela conexo TCP.
O servidor de correio de Bob coloca a mensagem na caixa de correio de
Bob.
Bob invoca seu agente de usurio para ler a mensagem.

Usa TCP para transferncia confivel de mensagens de


correio do cliente ao servidor, porta 25
Transferncia direta: servidor envia direto para o servidor
de destino
Trs fases de transferncia

Handshaking (apresentao)
Transferncia de mensagens
Fechamento
Interao comando/resposta

Comandos: texto ASCII


Resposta: cdigo de status e frase
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

agente
usurio

57

57

serv.
correio
3

agente
usurio

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Exemplo de interao SMTP

58

58

Formato da mensagem de correio

S: 220 provedor1.com
C: HELO provedor2.com
S: 250 Ola provedor2.com, prazer em conhecer
C: MAIL FROM: <alice@provedor2.com>
S: 250 alice@provedor2.com... Remetente ok
C: RCPT TO: <bob@provedor1.com>
S: 250 bob@provedor1.com ... Destinatrio ok
C: DATA
S: 354 Entre com o email e termine com "." em uma linha
C: Voc gosta da aula de Arquitetura de Redes?
C: Ser que conseguiremos passar?
C: .
S: 250 Mensagem aceita para entrega
C: QUIT
S: 221 provedor1.com fechando conexo
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

serv.
correio

Correio eletrnico formado por


Envelope
Encapsula uma mensagem
Contm as informaes necessrias para o transporte da mensagem
o Como no correio comum

Mensagem
Composta por cabealho e corpo

59

59

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

60

60

Formato da mensagem de correio

Exemplo de mensagem

Linhas de cabealho, ex.:


To:
From:
Subject:
diferente dos comandos HTTP

header

corpo

linha
em branco

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.

a mensagem, ASCII somente com


caracteres

body

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

61

61

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Verso da MIME
Mtodo usado
para codificar dados
Dados multimdia
tipo, subtipo,
declarao de parmetro

64

64

No possv el exibir esta imagem no momento.

From: alice@provedor2.com
To: bob@provedor1.com
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg

SMTP: entrega e armazena no servidor do destino


Protocolo de acesso: recupera mensagens do servidor
POP: Post Office Protocol [RFC 1939]
Autorizao (agente <-->servidor) e download
IMAP: Internet Mail Access Protocol [RFC 1730]
Maiores recursos (mais complexo)
Manipulao de mensagens armazenadas no servidor
HTTP: Hotmail , Yahoo! Mail etc.

base64 encoded data .....


.........................
......base64 encoded data

Dados codificados

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

62

Protocolos de acesso ao correio

Formato das mensagens: extenses multimdia


MIME: multimedia mail extension
Permite transmitir os arquivos que no so texto pelo servio de correio eletrnico
Ex: imagens, vdeos, documentos do MS Office, etc...
Linhas adicionais no cabealho declaram o tipo de contedo MIME

62

63

63

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Protocolo POP3
fase de autorizao
comandos do cliente:
user: declare username
pass: senha
respostas do servidor
+OK
-ERR

fase de transao, cliente:


list: lista nmeros de msg.
retr: recupera mensagem por
nmero
dele: exclui
quit

S:
C:
S:
C:
S:

+OK POP3 server ready


user bob
+OK
pass hungry
+OK usurio logado com sucesso

Servio de nomes
Protocolo DNS

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

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

65

65

DNS (Domain Name System)

Base de dados distribuda, hierrquica

O DNS (Domain Name System Sistema de nomes de domnio) (Kurose,


2005):
1.
2.

Um banco de dados distribudo implementado em uma hierarquia de


servidores de nome (Servidores DNS), e
Um protocolo de camada de aplicao que permite que hospedeiros
consultem o banco de dados distribudos.

Funo Principal:
Traduz um nome de domnio em um endereo IP
O uso de nomes facilita a memorizao do usurio ao invs de decorar nmeros IPs ou
MAC address

O protocolo DNS utiliza o protocolo de transporte UDP e usa a porta 53

Cliente quer o IP para www.unicarioca.br; 1a aprox.:


Cliente consulta um servidor de raiz para encontrar o servidor DNS .br
Cliente consulta o servidor DNS .br para obter o servidor DNS unicarioca.br
Cliente consulta o servidor DNS unicarioca.br para obter o endereo IP para
www.unicarioca.br
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

67

67

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

68

68

Base de dados distribuda, hierrquica

Componentes do servio DNS


Composto de
Servidores DNS locais
Trs tipos (classes) de servidores de nomes
Raiz
De domnio de alto nvel (Top-Level Domain TLD)
Com autoridade

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

69

69

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

DNS: servidores de nomes raiz

70

70

Servidores TLD e autoritrios

So contatados pelos servidores de nomes locais que no podem resolver um nome

Servidores top-level domain (TLD):

Ponto de entrada no servio

Responsveis pelos domnios genricos .com, .org, .net, .edu, etc e


todos os domnios top-level nacionais .uk, .fr, .ca, .jp, .br, etc.
Network Solutions mantm servidores para o TLD .com
Educause para o TLD .edu

a.root-servers.net,,m.root-servers.net

Servidores de nomes raiz:


Buscam servidores de nomes autorizados se o mapeamento do nome no for conhecido
Conseguem o mapeamento
Retornam o mapeamento para o servidor de nomes local

Servidores DNS autoritrios:


Servidores DNS de organizaes, provm nome de hospedeiro
autorizado para mapeamentos IP para servidores de organizaes
(ex.: Web e mail).
Podem ser mantidos por uma organizao ou provedor de
servios

Existem 13 servidores de
nomes raiz no mundo

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

71

71

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

72

72

Servidor de nomes local

Exemplo de resoluo de nome DNS (1)

No pertence estritamente a uma hierarquia


Cada ISP (ISP residencial, companhia, universidade) possui um
Tambm 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

hospedeiro em cis.poly.edu
quer endereo IP para
gaia.umass.edu

servidor DNS raiz


2
servidor DNS TLD

3
4

consulta iterativa ou repetida:


servidor contactado
responde com nome do
servidor a contactar

5
serv. DNS local
dns.poly.edu

no conheo esse nome,


mas pergunte a este
servidor

serv. DNS com autoridade


dns.umass.edu

hospedeiro
solicitante
cis.poly.edu
gaia.umass.edu

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

73

73

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Exemplo de resoluo de nome DNS (2)

74

74

Tipos de Zonas e Pesquisas

serv. DNS raiz

consulta recursiva:
Transfere a resoluo de nome
para o servidor de nomes
contactado

Zona de Pesquisa Direta


2

Cliente informa um nome e a resposta o endereo IP


Podem ser

3
7

Primrias

o Zona autoritativa para um domnio

serv. DNS TLD

o Zona espelho de uma zona primria


o Precisa ser atualizada frequentemente para manter a consistncias entre zonas

serv. DNS local


dns.poly.edu

Secundrias

Zona de Pesquisa Reversa


Cliente informa um IP e a resposta o nome
Podem ser

Primrias

serv. DNS com autoridade


dns.umass.edu

o Zona autoritativa para um domnio

hospedeiro
solicitante

Secundrias
o Zona espelho de uma zona primria
o Precisa ser atualizada frequentemente para manter a consistncias entre zonas

cis.poly.edu
gaia.umass.edu
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

75

75

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

76

76

Zona de Pesquisa Reversa

Tipos de registros

Uma pesquisa inversa assume a forma de pergunta, como "Pode


me informar o nome DNS do computador que usa o endereo IP
192.168.1.20"?
Utiliza-se o domnio in-addr.arpa
Para criar o espao para nome inverso, os subdomnios dentro do
domnio in-addr.arpa so formados usando a ordem inversa dos
nmeros na notao decimal com pontos dos endereos IP.
1.168.192. in-addr.arpa

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

77

Os registros de recursos SOA e NS ocupam uma funo especial na


configurao da zona.
Eles so registros obrigatrios para qualquer zona e so normalmente o
primeiro dos registros de recursos listados nos arquivos.
SOA - Inicio de Autoridade
Identifica o servidor de nomes DNS primrio da Zona.
Possui informaes necessrias a replicao dos registros.
NS - Servidor de Nomes de Delegao
Permite a delegao, identificando servidores de DNS para cada Zona.
Sempre que um servidor DNS precisa enviar uma consulta a um domnio
delegado, ele se refere ao registro de recurso NS dos servidores de DNS da
zona de destino.

77

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

Tipos de Registros

78

78

80

80

DNS - registros de recursos

Aps criar uma zona, os registros de recursos (RRs) adicionais


necessrios precisam ser adicionados a ela.

Formato (Name, Value, Type, TTL) (cont.)


TTL

Host(A)

Tempo de vida til do registro


Determina quando o registro deve ser removido de um cache

Para mapear um nome de domnio DNS para um endereo IP usado por um


computador.

Alias (CNAME)
Para mapear um nome de domnio DNS alias para outro nome primrio ou
cannico.

Servidor de Mensagens (MX)


Para mapear um nome de domnio DNS para o nome de um computador
que troca ou encaminha mensagens.

Ponteiro (PTR)
Para mapear um nome de domnio DNS inverso com base no endereo IP de
um computador que aponta para o nome de domnio DNS encaminhado
desse computador.

Outros registros de recursos conforme necessrio.


Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

79

79

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

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 so tipicamente armazenados em cache nos servidores
de nome locais
Mecanismos de atualizao e notificao esto sendo projetados pelo IETF
RFC 2136
http://www.ietf.org/html.charters/dnsind-charter.html

Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II

81

81