Você está na página 1de 91

Camada de Aplicao

Rodolfo Costa - rodolfo.costa@ifrn.edu.br


Objetivos
!
Conceitual, aspectos de implementao de
protocolos de aplicao de redes
!
Modelos de servio da camada de transporte
!
Paradigma cliente-servidor
!
Paradigma peer-to-peer
!
Aprender sobre protocolos examinando
protocolos da camada de aplicao
populares:
!
HTTP
!
FTP
!
SMTP/POP3/IMAP
!
DNS
So exemplos de aplicaes de rede
!
E-mail
!
Web
!
Mensagem instantnea
!
Login remoto
!
Compartilhamento de arquivos P2P
!
Jogos de rede multiusurio
!
Streaming vdeos
!
Telefonia via Internet
!
Videoconferncia em tempo real
!
Computao paralela massiva
Aplicaes de rede
!
Escrever programas que
!
Executem sobre diferentes sistemas
finais e
!
Se comuniquem atravs de uma
rede. Ex.: Web software de
servidor Web se comunicando
com software do browser.
!
Nenhum software escrito para
dispositivos no ncleo da rede
!
Dispositivos do ncleo da rede no
trabalham na camada de
aplicao
!
Esta estrutura permite um rpido
desenvolvimento de aplicao
Arquiteturas de aplicao
!
Cliente-servidor
!
Peer-to-Peer (P2P)
!
Hbrida de cliente-servidor e P2P
Arquitetura cliente-servidor
!
Servidor:
!
Host sempre ativo
!
Endereo de IP permanente
!
Fornece servios solicitados
pelo cliente
!
Clientes:
!
Comunicam-se com o servidor
!
Podem ser conectados
intermitentemente
!
Podem ter endereo IP dinmico
!
No se comunicam diretamente
uns com os outros
Arquitetura Peer to Peer (P2P) pura
!
Nem sempre no servidor
!
Sistemas finais arbitrrios
comunicam-se diretamente
!
Pares so intermitentemente
conectados e trocam
endereos IP
!
Ex: Gnutella (shareaza)
Altamente escalveis mas difceis de gerenciar
Hbrida de cliente-servidor e P2P
!
Napster
!
Transferncia de arquivo P2P
!
Busca Centralizada de arquivos:
!
Contedo de registro dos pares no servidor central
!
Consulta pares no mesmo servidor central para localizar o
contedo
!
Instant messaging
!
Bate-papo entre dois usurios P2P
!
Deteco/localizao centralizada de presena:
!
Usurio registra seu endereo IP com o servidor central
quando fica on-line
!
Usurio contata o servidor central para encontrar endereos
IP vizinhos
Comunicao de processos
!
Processo: Programa executando em um host.
!
Dentro do mesmo host, dois processos se comunicam
usando comunicao interprocessos (definido pelo SO)
!
Processos em diferentes hosts se comunicam por meio de
troca de mensagens
!
Processo cliente: processo que inicia a comunicao
!
Processo servidor: processo que espera para ser
contatado
Nota: aplicaes com arquiteturas P2P possuem processos cliente
e processos servidor
Sockets
!
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
!
Um processo envia/
recebe mensagens
para/de seu socket
!
O socket anlogo a
uma porta
!
O processo de envio
empurra a
mensagem para
fora da porta
Processos de endereamento
!
Para um processo receber mensagens, ele deve ter um
identificador
!
Um hospedeiro possui um nico endereo IP de 32 bits
!
P.: O endereo IP do hospedeiro onde o processo est
executando suficiente para identificar o processo?
!
R.: No, muitos processos podem estar em execuo no
mesmo hospedeiro
!
O identificador inclui o endereo IP e o nmero da porta
associada ao processo no hospedeiro (Socket)
!
Exemplos de nmeros de porta:
!
Servidor HTTP: 80
!
Servidor de Correio: 25
Protocolo da camada de aplicao
define
!
Tipo de mensagens trocadas, mensagens de requisio e resposta
!
Sintexe dos tipos de mensagem: os campos nas mensagens e como
so delineados
!
Semntica dos campos, ou seja, significado da informao nos campos
!
Regras para quando e como os processos enviam e respondem s
mensagens
Protocolos de domnio pblico:
!
Definidos por RFCs
!
Recomendados para interoperabilidade
!
Ex: HTTP, SMTP
Protocolos proprietrios:
!
Ex: KaZaA
Aplicao e protocolos de
transporte
Aplicao
Protocolo de
aplicao
Protocolo de
transporte
e-mail smtp [RFC 821] TCP
acesso de terminais remotos telnet [RFC 854] TCP
Web http [RFC 2068] TCP
transferncia de arquivos ftp [RFC 595] TCP
streaming multimdia RTP ou proprietrio TCP ou UDP
servidor de arquivos remoto NSF/SMB TCP ou UDP
telefonia pela Internet RTP ou proprietrio tipicamente UDP
Web e HTTP
Web e HTTP
Primeiro alguns jarges
!
Pgina Web consiste de objetos
!
Objeto pode ser arquivo HTML, imagem JPEG, Java applet,
arquivo de udio,
!
A pgina Web consiste de arquivo-HTML base, que inclui
vrios objetos referenciados
!
Cada objeto endereado por uma URL (Uniform
Resource Locators)
Viso geral do HTTP
HTTP: hypertext transfer
protocol
!
Protocolo da camada de
aplicao da Web
!
Modelo cliente/servidor
!
Cliente: browser que solicita,
recebe e apresenta objetos
da Web
!
Servidor: envia objetos em
resposta a pedidos
!
HTTP 1.0: RFC 1945
!
HTTP 1.1: RFC 2068
PC Executando
Explorer
Mac executando
Safari
Utiliza TCP:
! Cliente inicia conexo TCP (cria socket) para o servidor na porta 80
! Servidor aceita uma conexo TCP do cliente
! mensagens HTTP (mensagens do protocolo de camada de aplicao)
so trocadas entre o browser (cliente HTTP) e o servidor Web
(servidor HTTP)
! 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!
! Histrico do passado (estado) deve ser mantido
! Se o servidor/cliente quebra, suas vises de estado podem ser
inconsistentes, devendo ser reconciliadas
Viso geral do HTTP
HTTP: viso do lado cliente
Browser = interpretador de HTML
!
HTML so documentos texto ou hiperlinks (URLs)
para outras pginas
!
Pode-se vincular ao HTML outros documentos (PDF),
imagens (GIF, JPEG), vdeos (MPEG) = problema
pra browser interpretar
!
Indicado pelo campo: Content-Type
!
Soluo = Plug-in e aplicaes auxiliares
URLs
Trs perguntas tem de ser respondida para uma pgina ser exibida:
1) Qual o nome da pgina?
2) Onde a pgina est localizada?
3) Como a pgina pode ser acessada?
Assim como pelo nmero da identidade pode-se saber distinguir
duas pessoas de nomes iguais, mas no saber o seu endereo.
Da mesma forma a internet. Ento as URLs so formadas por 3
partes:
1) Protocolo
2) O nome DNS da mquina (onde ela reside)
3) O nome local (indica a pgina especfica)
URLs
Trs perguntas tem de ser respondida para uma pgina ser exibida:
1) Qual o nome da pgina?
2) Onde a pgina est localizada?
3) Como a pgina pode ser acessada?
Assim como pelo nmero da identidade pode-se saber distinguir
duas pessoas de nomes iguais, mas no saber o seu endereo.
Da mesma forma a internet. Ento as URLs so formadas por 3
partes:
1) Protocolo
2) O nome DNS da mquina (onde ela reside)
3) O nome local (indica a pgina especfica)
http://www.someschool.edu/someDept/pic.gif
Nome do hospedeiro
Nome do caminho
Protocolo
HTTP no persistente
!
No mximo, um objeto enviado sobre uma conexo TCP
!
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
Conexes HTTP
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
1a. Cliente HTTP inicia conexo TCP
ao servidor HTTP (processo) em
www.someSchool.edu. Porta 80 a
default para o servidor HTTP
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
1a. Cliente HTTP inicia conexo TCP
ao servidor HTTP (processo) em
www.someSchool.edu. Porta 80 a
default para o servidor HTTP
1b. Servidor HTTP no host
www.someSchool.edu esperando
pela conexo TCP na porta 80.
Aceita conexo, notificando o
cliente
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
1a. Cliente HTTP inicia conexo TCP
ao servidor HTTP (processo) em
www.someSchool.edu. Porta 80 a
default para o servidor HTTP
2. Cliente HTTP envia HTTP request
message (contendo a URL) para
o socket da conexo TCP
1b. Servidor HTTP no host
www.someSchool.edu esperando
pela conexo TCP na porta 80.
Aceita conexo, notificando o
cliente
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
1a. Cliente HTTP inicia conexo TCP
ao servidor HTTP (processo) em
www.someSchool.edu. Porta 80 a
default para o servidor HTTP
2. Cliente HTTP envia HTTP request
message (contendo a URL) para
o socket da conexo TCP
1b. Servidor HTTP no host
www.someSchool.edu esperando
pela conexo TCP na porta 80.
Aceita conexo, notificando o
cliente
3. Servidor HTTP recebe mensagem
de pedido, forma response
message contendo o objeto
solicitado (someDepartment/
index.html), envia mensagem para
o socket
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Usurio entra com a URL: www.someSchool.edu/someDepartment/index.html
1a. Cliente HTTP inicia conexo TCP
ao servidor HTTP (processo) em
www.someSchool.edu. Porta 80 a
default para o servidor HTTP
2. Cliente HTTP envia HTTP request
message (contendo a URL) para
o socket da conexo TCP
1b. Servidor HTTP no host
www.someSchool.edu esperando
pela conexo TCP na porta 80.
Aceita conexo, notificando o
cliente
3. Servidor HTTP recebe mensagem
de pedido, forma response
message contendo o objeto
solicitado (someDepartment/
index.html), envia mensagem para
o socket
Tempo
(contm texto, referncias a 10 imagens jpeg)
HTTP no persistente
Tempo
HTTP no persistente
Tempo
4. Servidor HTTP fecha conexo TCP
HTTP no persistente
Tempo
5. Cliente HTTP recebe mensagem
de resposta contendo o arquivo
html, apresenta o contedo html.
Analisando o arquivo html,
encontra 10 objetos jpeg
referenciados
4. Servidor HTTP fecha conexo TCP
HTTP no persistente
Tempo
5. Cliente HTTP recebe mensagem
de resposta contendo o arquivo
html, apresenta o contedo html.
Analisando o arquivo html,
encontra 10 objetos jpeg
referenciados
6. Passos 1-5 so repetidos para cada
um dos 10 objetos jpeg
4. Servidor HTTP fecha conexo TCP
Caractersticas do HTTP no persistente:
! SO deve manipular e alocar recursos do hospedeiro para cada
conexo TCP. Mas os browsers freqentemente abrem conexes
TCP paralelas para buscar objetos referenciados
HTTP persistente
! Servidor deixa a conexo aberta aps enviar uma resposta
! Mensagens HTTP subseqentes entre o mesmo cliente/servidor so
enviadas pela conexo
Persistente sem pipelining (paralelismo):
! O cliente emite novas requisies apenas quando a resposta
anterior for recebida
Persistente com pipelining (paralelismo):
! Padro no HTTP/1.1
! O cliente envia requisies assim que encontra um objeto
referenciado
HTTP no persistente X persistente
Modelagem do tempo de resposta
Dois tipos de mensagens HTTP: request, response
HTTP request message
!
ASCII (formato legvel para humanos)
Mensagem HTTP request
Carriage return,
line feed indica fim da
mensagem
GET /diretorio/pagina.html HTTP/1.1
Connection: close
Hostname: nomedoservidor
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
cabealho
Mensagem HTTP request: formato
geral
usado no mtodo POST
!
Envia informaes para o servidor
!
No busca pgina esttica ou objeto no servidor
Mtodo Post:
!
Pgina Web freqentemente inclui entrada de
formulrio (dados enviar ao servidor)
!
A entrada enviada para o servidor no corpo da
entidade
Mtodo URL:
!
Utiliza o mtodo GET
!
A entrada enviada no campo de URL da linha de
requisio:
Entrada de Formulrio
http://www.algumsite.com.br/procura?palavra=web&navegador=chrome
!
CGI = Comum Gateway Interface
!
ASP, Perl, PHP, JSP
Entrada de Formulrio
HTTP/1.0
!
GET
!
Solicita arquivo/objeto
!
POST
!
Envia informaes ao servidor no corpo da entidade
!
HEAD
!
Pede informaes do objeto sem o corpo (contedo
deste) usado por desenvolvedores para depurao
Tipos de mtodos
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
! OPTIONS
! Requisita informaes disponveis para URL
! COPY/MOVE
! Copia/move da URL para o local especificado no Entity-Header
! TRACE
! Requisita ao servidor para retornar o corpo da entidade recebido para
uso em diagnstico/teste.
Tipos de mtodos
Mensagens HTTP response
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
cdigo de status
frase de status)
Linhas de
cabealho
Dados, ex.:
arquivo html
Na primeira linha da mensagem de resposta: servidor -> cliente.
Alguns exemplos de cdigos:
200 OK
! Requisio bem-sucedida, objeto requisitado a seguir nesta
mensagem
301 Moved permanently
! Objeto requisitado foi movido, nova localizao especificada a
seguir nesta mensagem (Location:)
400 Bad request
! Mensagem de requisio no compreendida pelo servidor
404 Not Found
! Documento requisitado no encontrado neste servidor
505 HTTP version not supported
Cdigos de status das respostas
A maioria dos grandes sites Web utiliza cookies
Quatro componentes:
1. Linha de cabealho do cookie na mensagem HTTP response
2. Linha de cabealho de cookie na mensagem HTTP request
3. Arquivo de cookie mantido no hospedeiro do usurio e manipulado
pelo browser do usurio
4. Banco de dados backend no site Web
Exemplo:
!
Lilica acessa a Internet sempre do mesmo PC
!
Ela visita um site especfico de e-commerce pela primeira vez
!
Quando a requisio HTTP inicial chega ao site, este cria um ID
nico e uma entrada no banco de dados backend para este ID
Estado usurio-servidor: cookies
Cookies: mantendo estado
Cliente
Servidor amazon
usual HTTP request msg
usual HTTP response +
Set-cookie: 1678
usual HTTP request msg
cookie: 1678
usual HTTP response msg
usual HTTP request msg
cookie: 1678
usual HTTP response msg
especificao
do cookie
especificao
do cookie
servidor
cria o ID 1678
para o usurio
e
n
t
r
a
d
a

n
o

b
a
n
c
o
d
e

d
a
d
o
s

b
a
c
k
e
n
d
a
c
e
s
s
o
a
c
e
s
s
o
Cookie
amazon: 1678
ebay: 8734
Cookie
ebay: 8734
Cookie
amazon: 1678
ebay: 8734
Uma semana depois:
O que os cookies podem trazer:
!Autorizao
!Carrinhos de compra
!Recomendaes
!Estado de sesso do usurio (Web e-mail)
Do lado cliente
Cookies e privacidade:
!Cookies permitem que sites saibam muito sobre voc
!Voc pode fornecer nome e e-mail para os sites
!Mecanismos de busca usam redirecionamento e cookies para
saberem mais sobre voc
!Companhias de propaganda obtm informaes por meio dos sites
Cookies
!
Usurio configura o browser:
acesso Web feito por meio de
um proxy.
!
Cliente envia todos os pedidos
HTTP para o Web cache.
!
Se o objeto existe no Web cache:
Web cache retorna o objeto
!
Ou o Web cache solicita objeto
do servidor original e ento
envia o objeto ao cliente
Web caches (proxy server)
Objetivo: atender o cliente sem envolver o servidor Web
originador da informao
!
O cache atua tanto no servidor (buscando informaes)
como no cliente (entregando informaes)
!
Tipicamente, o cache instalado pelo ISP (universidade,
empresa, ISP residencial)
Por que Web caching?
!
Reduz o tempo de resposta para a requisio do cliente
!
Reduz o trfego num enlace de acesso de uma instituio
!
A densidade de caches na Internet habilita os fracos
provedores de contedo a efetivamente entregarem o
contedo (mas fazendo P2P file sharing)
Mais sobre Web caching
!
Atraso total de uma requisio =
atraso da Internet + atraso de
acesso + atraso da LAN
Exemplo de caching
Exemplo de caching
!
Atraso total de uma requisio =
atraso da Internet + atraso de
acesso + atraso da LAN
Exemplo de caching
!
Atraso total de uma requisio =
atraso da Internet + atraso de
acesso + atraso da LAN
Exemplo de caching
!
Atraso total de uma requisio =
atraso da Internet + atraso de
acesso + atraso da LAN
!
Atraso total de uma requisio
com cache = atraso da LAN
Exemplo de caching
Exemplo de caching
Razo: no enviar objeto se a
verso que o cliente j possui
est atualizada
!
Cliente: especifica data da
verso armazenada no
pedido HTTP
!
If-modified-since: <date>
!
Servidor: resposta no contm
objeto se a cpia
atualizada:
!
HTTP/1.0 304 Not Modified
GET condicional
Cliente
Servidor
HTTP request msg
If-modified-since: <date>
HTTP response
HTTP/1.0
304 Not Modified
Objeto
no
modificado
HTTP request msg
If-modified-since: <date>
HTTP response
HTTP/1.1 200 OK
<data>
Objeto
modificado
FTP
!
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
!
FTP servidor: porta 21
FTP: o protocolo de transferncia de
arquivos
!
Cliente FTP contata o servidor FTP na porta 21 especificando o TCP como
protocolo de transporte
!
Cliente obtm autorizao pela conexo de controle
!
Cliente procura o diretrio remoto enviando comandos pela conexo de controle
!
Quando o servidor recebe um comando para uma transferncia de arquivo, ele
abre uma conexo de dados TCP para o cliente
!
Aps a transferncia de um arquivo, o servidor fecha a conexo
!
Servidor abre uma segunda conexo de dados TCP para transferir outro arquivo
!
Conexo de controle: fora da banda
!
Servidor FTP mantm estado: diretrio atual, autenticao anterior
FTP: controle separado, conexes
de dados
Modo ativo
!
O cliente requisita o servidor usando uma porta aleatria, por
exemplo, a porta 10000, endereando o pacote porta 21 do
servidor.
!
O servidor imediatamente contata o cliente de volta, usando a
porta seguinte(do cliente) para enviar dados. Seguindo o
exemplo anterior, porta 10001.
Modo passivo
!
O cliente abre a conexo contatando a porta 21 do servidor,
entretanto, o servidor responde avisando que o cliente pode
contat-lo numa segunda porta, escolhida aleatoriamente (a
1050, por exemplo).
!
O cliente inicia uma nova conexo na porta especificada e o
servidor responde enviando os dados.
FTP: ativo e passivo
FTP: ativo e passivo
!
Modo ativo
FTP: ativo e passivo
!
Modo ativo
FTP: ativo e passivo
!
Modo passivo
Exemplos de comandos:
! Envia um texto ASCII sobre canal de controle
! USER username
! PASS password
! LIST retorna listagem do arquivo no diretrio atual
! RETR filename recupera (obtm) o arquivo
! STOR filename armazena o arquivo no hospedeiro remoto
Exemplos de cdigos de retorno
! Cdigo de status e frase (como no HTTP)
! 331 Username OK, password required
! 125 data connection already open; transfer starting
! 425 Cant open data connection
! 452 Error writing file
FTP: ativo e passivo
Clientes FTP
FileZilla
LeechFTP
Correio eletrnico:
SMTP, POP3, IMAP
Trs componentes principais:
!
Agente de usurio
!
Servidores de correio
!
Simple Mail Transfer
Protocol: SMTP
Agente de usurio
!
Leitor de correio
!
Composio, edio, leitura
de mensagens de correio
!
Mensagens de entrada e de
sada so armazenadas no
servidor
Correio eletrnico
Exemplo de leitores de email
Thunderbird
Mail
Sevidores de correio
!
Caixa postal contm mensagens
que chegaram (ainda no lida)
para o usurio
!
Fila de mensagens contm as
mensagens de correio a serem
enviadas
Protocolo SMTP
!
Permite aos servidores de correio
trocarem mensagens entre si
!
Cliente: servidor de correio que
envia
!
Servidor: servidor de correio
que recebe
Correio eletrnico: servidores de
correio
!
Usa TCP para transferncia confivel de mensagens de
correio do cliente ao servidor, porta 25
!
Transferncia direta: servidor que envia para o servidor que
receber
!
Trs fases de transferncia:
!
Handshaking (apresentao)
!
Transferncia de mensagens
!
Fechamento
!
Interao comando/resposta
!
Comandos: texto ASCII
!
Resposta: cdigo de status e frase
!
Mensagens devem ser formatadas em cdigo ASCII de 7 bits
Correio eletrnico: SMTP
Cenrio: Alice envia mensagem
para Bob
1) Alice usa o agente de usurio (UA) para compor a mensagem e para
bob@natal.br
2) O agente de usurio 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 conexo TCP com o servidor de
correio do Bob.
4) O cliente SMTP envia a mensagem de Alice pela conexo TCP.
5) O servidor de correio de Bob coloca a mensagem na caixa de correio de
Bob.
6) Bob executa seu agente de usurio para ler a mensagem.
Exemplo de interao SMTP
S: 220 natal.br
C: HELO parnamirim.com.br
S: 250 Hello parnamirim.com.br, pleased to meet you
C: MAIL FROM: <alice@parnamirim.com.br>
S: 250 alice@parnamirim.com.br... Sender ok
C: RCPT TO: <bob@natal.br>
S: 250 bob@natal.br ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: voc gosta de guaran?
C: e de pizza?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 natal.br closing connection
!
SMTP usa conexes persitentes
!
SMTP exige que as mensagens (cabealho e corpo) estejam em
ASCII de 7 bits
!
Servidor SMTP usa CRLF.CRLF para indicar o final da
mensagem
Comparao com HTTP:
!
HTTP: pull (recebimento)
!
E-mail: push (envio)
!
Ambos usam comandos e respostas ASCII, interao comando/
resposta e cdigos de status
!
HTTP: cada objeto encapsulado na sua prpria mensagem de
resposta
!
SMTP: mltiplos objetos so enviados numa mensagem multiparte
SMTP: palavras finais
Formato da mensagem de correio
header
body
linha
em branco
!
SMTP: protocolo para trocar
mensagens de e-mail
!
Linhas de cabealho, ex.:
!
To:
!
From:
!
Subject:
diferente dos comandos HTTP
!
Corpo
!
a mensagem, ASCII
somente com caracteres
Formato das mensagens:
extenses multimdia
From: alice@parnamirim.com.br
To: bob@natal.com
Subject: Foto do guarana :)
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data

! MIME: multimedia mail extension, RFC 2045, 2056
! Linhas adicionais no cabealho declaram o tipo de contedo MIME
Dados multimdia
tipo, subtipo,
declarao de parmetro
Mtodo usado
para codificar dados
Verso da MIME
Dados codificados
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]
! Autorizao (agente <-->servidor) e download
! IMAP: Internet Mail Access Protocol [RFC 1730]
! Mais recursos (mais complexo)
! Manipulao de mensagens armazenadas no servidor
!
HTTP: Hotmail, Yahoo! Mail, Gmail, etc.
Protocolo POP3
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 POP3 server signing off
S: +OK POP3 server ready
C: user alice
S: +OK
C: pass hungry
S: +OK user successfully
logged on
Fase de autorizao
!
comandos do cliente:
!
user: declara nome do usurio
!
pass: password
!
respostas do servidor
!
+OK
!
-ERR
Fase de transao, cliente:
!
list: lista mensagens e tamanhos
!
retr: recupera mensagem pelo
nmero
!
dele: apaga
!
quit
!
Mais sobre POP3 (porta 110)
!
O exemplo anterior usa o modo download-and-delete
!
Bob no pode reler o e-mail se ele trocar o cliente
!
download-and-keep: cpias das mensagens em clientes
diferentes
!
POP3 stateless atravs das sesses
!
IMAP (porta 143)
!
Mantm todas as mensagens em um lugar: o servidor
!
Permite que o usurio organize as mensagens em pastas
!
IMAP mantm o estado do usurio atravs das sesses:
!
Nomes das pastas e mapeamentos entre os IDs da
mensagem e o nome da pasta
POP3 (mais) e IMAP
DNS
Pessoas: muitos identificadores:
! RG, nome, passaporte
Internet hospedeiros, roteadores:
! Endereos IP (32 bits) - usados para enderear datagramas
! nome, ex.: ifrn.edu.br - usados por humanos
Como Relacionar nomes com endereos IP?
Domain Name System:
! Base de dados distribuda implementada numa hierarquia de
muitos servidores de nomes
! Protocolo de camada de aplicao hosts, roteadores se
comunicam com servidores de nomes para resolver nomes
(traduo nome/endereo)
! Nota: funo interna da Internet, implementada como
protocolo da camada de aplicao
! Complexidade na borda da rede
DNS: Domain Name System
Cliente quer o IP para www.amazon.com:
!
Cliente consulta um servidor de raiz para encontrar o servidor DNS com
!
Cliente consulta o servidor DNS com para obter o servidor DNS amazon.com
!
Cliente consulta o servidor DNS amazon.com para obter o endereo IP para
www.amazon.com
Base de dados distribuda e
Hierrquica
Por que no centralizar o DNS?
!
Ponto nico de falha
!
Volume de trfego
!
Base centralizada de dados distante
!
Manuteno
No cresce junto com a rede!
DNS: Domain Name System
!
So contatados pelos servidores de nomes locais que no podem resolver um nome
!
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
DNS: Servidores de nome raiz
Existem 13 servidores
de nome raiz no
mundo
Servidores top-level domain (TLD): responsveis pelos
domnios com, org, net, edu etc. e todos os domnios
top-level nacionais br, uk, fr, ca, jp.
!
Network Solutions mantm servidores para o TLD
com TLD
!
Educause para o TLD edu
Servidores DNS autorizados: servidores DNS de
organizaes, provem 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
Servidores TLD e autoritrios
!
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
Servidores de nomes local
Consultas recursivas
Consulta recursiva:
!
Transfere a tarefa de
resoluo do nome para o
servidor de nomes
consultado
!
Carga pesada?
Consultas interativas
Consulta interativa:
!
Servidor contatado
responde com o nome de
outro servidor de nomes
para contato
!
Eu no sei isto, mas
pergunte a este servidor
Exemplo
!
O hospedeiro em
cis.poly.edu quer o
endereo IP para
gaia.cs.umass.edu
!
Uma vez que um servidor de nomes aprende um
mapeamento, ele armazena o mapeamento num
registro do tipo cache
!
Registros do cache tornam-se obsoletos
(desaparecem) depois de um certo tempo
!
Servidores TLD so tipicamente armazenados em
cache nos servidores de nome locais
DNS: armazenando e atualizando
registros
Tipos de RR
!
A: Registro com nome e endereo de um host
!
NS: Armazena o nome de um domnio e o servidor com
autoridade para responder por esse domnio
!
CNAME: Nesse tipo de registro fica um apelido para algum
nome cannico (o nome real) de um host.
!
MX: Tipo de registro para identificar o servidor de correio
para um domnio.
Registros do DNS
DNS: base de dados distribuda que armazena registros de
recursos (RR)
Cabealho da msg
!
Identificao: nmero de 16
bits para consulta,
resposta usa o mesmo
nmero
!
Flags:
!
Consulta ou resposta
!
Recurso desejada
!
Recurso disponvel
!
Resposta com
autoridade
DNS: protocolo e mensagem
Protocolo DNS: mensagem de consulta e resposta, ambas com o mesmo
formato de mensagem
DNS: protocolo e mensagem
DNS e camada de transporte
!
Diferente da maioria dos outros protocolos da
camada de aplicao, o DNS utiliza ambos
protocolos da camada de transporte TCP e UDP.
Sendo da sequinte forma:
!
Com consultas de tradues (perguntando por RR),
o UDP preferencial. (padro)
!
Quando uma resposta DNS maior que 512 Bytes,
ele utilizar o TCP para realizar essa consulta
!
Para transferncia de zonas entre servidores
primrios e secundrios o TCP tambm usado
!
Para ambos os casos as portas utilizadas so as 53
(53/UDP ou 53/TCP)

Você também pode gostar