Escolar Documentos
Profissional Documentos
Cultura Documentos
Camada de aplicação 1
Aplicações em rede
Processo é um programa a ser executado numa
máquina
Na mesma máquina – comunicação entre-processos
(sistema operativo)
Em máquinas distintas – protocolo da camada de
aplicação
Agente de utilizador (user agent)
• Interface com o utilizador e com a rede
• Implementa o protocolo da camada de aplicação
• WWW: browser
• email: leitor de correio (mail reader)
Camada de aplicação 2
1
Paradigma cliente-servidor
Em geral, protocolo da camada de aplicação tem
duas componentes: cliente e servidor
Cliente
• Inicia o contacto com o servidor
• Solicita pedidos ao servidor
• WWW: cliente é implementado no browser
• email: cliente (SMTP e POP) é implementado no leitor de
correio
Servidor
• Fornece os serviços solicitados pelo cliente
• WWW: servidor Web entrega páginas solicitadas
• Email: servidor entrega correio ao destinatário
Camada de aplicação 3
Endereçamento e API
Identificação de um processo
• Endereço IP identifica a estação onde reside o processo
• Porta identifica processo dentro de uma estação
Portas
• Portas bem-conhecidas (0-1023): servidor
• HTTP – 80; SMTP – 25;SSH - 22
• Portas aleatórias: cliente (acima de 1024)
Camada de aplicação 4
2
Requisitos das aplicações
Perdas
• Tolerante a perdas: áudio
• Intolerante a perdas: transferência de arquivos
Atrasos
• Tolerante a atrasos: transferência de arquivos, WWW
• Intolerante a atrasos: VoIP, jogos distribuídos
Camada de aplicação 5
Requisitos: exemplos
Largura de
Aplicação Perdas banda Atrasos
Camada de aplicação 6
3
Serviços fornecidos pela camada
de transporte
Transmission Control Protocol (TCP)
• Orientado à sessão (connection-oriented)
• Transferência fiável
• Entrega sequencial
• Controlo de fluxo e de congestão
•
Camada de aplicação 7
Camada de aplicação 8
4
Hypertext Transport Protocol
(HTTP)
O protocolo da camada de
aplicação da WWW Ped
ido
HT
Cliente PC com Re
sp o
TP
Explorer st a
• Browser que solicita, recebe e HT
TP
apresenta objectos
Servidor TT
P
id oH TP Servidor
• Envia dados em resposta aos Pe
d HT Apache
s ta
pedidos o
sp
Re
• Não guarda informação de
estado sobre pedidos anteriores
PC com
Porta usada: 80 Netscape
Camada de transporte: TCP
Camada de aplicação 9
HTTP: exemplo
http://www.ist.utl.pt/index.html Servidor HTTP
Browser www.ist.utl.pt
Escuta sessões TCP
Sessão TCP
Porta 80
www.ist.utl.pt
Porta +1024
Aceita sessão
Pedido
URL: index.html
Resposta
OK: index.html
Fecha sessão
Recebe pedido
Mostra página
Identifica imagens
Camada de aplicação 10
5
Persistência
Não persistente
• HTTP/1.0
• Servidor fecha a sessão TCP depois de satisfazer o pedido
• 2 x RTT até à recepção do objecto
• Browsers podem abrir sessões paralelas
Persistente
• HTTP/1.1
• Múltiplos pedidos na mesma sessão TCP
• Browser envia pedidos logo que os identifica (pipelining)
• Mais rápido do que com sessões não-persistentes
Camada de aplicação 11
Pedido: exemplo
Linha de pedido
(GET, HEAD, POST)
Linhas de
cabeçalho
cr + lf
Camada de aplicação 12
6
Anatomia de um pedido
Linha de
Método URL Versão cr lf pedido
Nome do cabeçalho : Valor cr lf
Linhas de
cabeçalhos
Nome do cabeçalho : Valor cr lf
cr lf
Corpo da
mensagem
Camada de aplicação 13
Resposta: exemplo
Linha de resposta Corpo da
mensagem
HTTP/1.1 200 OK
Date: Fri, 22 Feb 2001 13:20:50 GMT
Server: Apache/1.3.6 (Unix)
Content-type: text/html
Content-Length: 327
<HTML>
<TITLE>Instituto Superior Técnico<TITLE>
Linhas de cr + lf
cabeçalho
Camada de aplicação 14
7
Anatomia de uma resposta
Linha de
Versão Código Expressão cr lf resposta
Nome do cabeçalho : Valor cr lf
Linhas de
cabeçalhos
Nome do cabeçalho : Valor cr lf
cr lf
Corpo da
mensagem
Camada de aplicação 15
Camada de aplicação 16
8
Códigos de resposta
200 OK
• Pedido bem sucedido. Objecto no corpo da mensagem
301 Moved Permanently
• Localização do objecto foi alterada. Nova URL indicada no
cabeçalho Location:
304 Not Modified
• Objecto não foi modificado desde a data contida no cabeçalho
If-modified-since
400 Bad Request
• Erro genérico. Pedido não é entendido pelo servidor
404 Not Found
• O documento não existe no servidor
505 HTTP Version Not Supported
Camada de aplicação 17
Cabeçalhos
Pedidos Respostas
• Host: • Date:
• User-Agent: • Server:
• Accept: (text/*, image/gif) • Last-Modified:
• If-Modified-Since:
Camada de aplicação 18
9
Cookies
Informação de estado permite manter correlação
entre pedidos de um utilizador para um mesmo
servidor
Cabeçalho na primeira resposta do servidor
• Set-cookie: 1458279
Entrada numa base de dados do servidor
Ficheiro na estação do utilizador
• Associação servidor-cookie
Camada de aplicação 19
Camada de aplicação 20
10
Vantagem dos servidores proxy
Servidores
origem
Melhor tempo de
resposta, em geral
Internet
Diminui o tráfego com
destino em servidores
distantes Ligação a 1.5 Mbps
Ethernet
local
10 Mbps LAN
Servidor
proxy
Camada de aplicação 21
Camada de aplicação 22
11
Sessão de controle e dados
Sessão de controle
• Envio de comando e
recepção de respostas Sessão de controle
na porta 21
Sessão de dados
• Uma por cada arquivo
transferido (end-of-file) Cliente Sessão de dados Servidor
• O servidor inicia o na porta 20
FTP FTP
estabelecimento da sessão
para a transferência de
dados (modo ativo)
Camada de aplicação 23
Camada de aplicação 24
12
Correio eletrónico
Mailbox do usuário
Fila de mensagens
Componentes Agente a enviar
de utilizador
• Clientes
Servidor
(leitores de correio) Agente
de mail
de utilizador
• Servidores de correio
• Simple Mail Transfer
SMTP Servidor
Protocol (SMTP) de mail Agente
SMTP de utilizador
SMTP
Servidor Agente
de mail de utilizador
Agente
de utilizador
Agente
de utilizador
Camada de aplicação 25
Cliente
• Comandos
• Mensagem (Cabeçalhos + corpo)
Servidor
• Respostas
Camada de aplicação 26
13
SMTP: exemplo
S: 220 destino.pt
C: HELO origem.pt
S: 250 Hello origem.pt, pleased to meet you
C: MAIL FROM: <fernando@origem.pt>
S: 250 fernando@origem.pt... Sender ok
C: RCPT TO: <luis@destino.pt>
S: 250 luis@destino.pt ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Deus quer, o homem sonha, a obra nasce
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 destino.pt closing connection
Camada de aplicação 27
Camada de aplicação 28
14
Multipurpose Internet Mail
Extensions (MIME)
Cabeçalhos para transmitir mensagens de vários
tipos, não apenas texto ASCII
Codificação do corpo da mensagem em ASCII de 6
ou 7 bits ( “.” é sempre excluído)
From: fernado@origem.pt
Versão MIME To: luis@destino.pt
Subject: Imagem
Método de
MIME-Version: 1.0
codificação Content-Transfer-Encoding: base64
do corpo Content-Type: image/jpeg
Tipo Multipart
From: fernando@origem.pt
To: luis@destino.pt
Subject: Imagem
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Caro Luis,
Junto segue a imagem de que te falei.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
Camada de aplicação 30
15
Post Office Protocol – v3
SMTP SMTP POP3 Agente
Agente
de utilizador
de utilizador
Servidor Servidor
POP3
• Recuperação de mensagens do servidor do destino
• Autenticação
Camada de aplicação 31
Delimitação de mensagens na
camada de aplicação
Terminação da sessão de transporte
• Uma sessão por mensagem
• FTP, HTTP 1.0
Camada de aplicação 32
16
Domain Name System (DNS)
Serviço de diretório
• Tradução entre o nome de uma máquina e seu endereço IP
DNS
• Base de dados distribuída, implementada numa estrutura
hierárquica de servidores de nomes
• Protocolo da camada de aplicação envolvendo estações e
servidores de nomes
Camada de aplicação 33
Hierarquia DNS
Serv. domínio
Serv. raíz de topo
Serv. intermédio
(cs)
physics ee cs ist fmv
deec dei
Serv. idóneo
(physics)
Camada de aplicação 34
17
Servidores de nomes
Servidor de DNS local (local DNS server)
Camada de aplicação 35
DNS: exemplo
Root DNS server
h.root-servers.net
2
3
4
local DNS server TLD DNS server
alfa.ist.utl.pt dns.edu
5
1 8 7
authoritative DNS server
dns.umass.edu
tejo.ist.utl.pt
dijkstra.cs.umass.edu
Camada de aplicação 36
18
Servidores de nomes raiz
a NSI Herndon, VA
c PSInet Herndon, VA k RIPE London
d U Maryland College Park, MD i NORDUnet Stockholm
g DISA Vienna, VA
h ARL Aberdeen, MD
j NSI (TBD) Herndon, VA m WIDE Tokyo
e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
13 servidores de
nomes raíz, no total
Camada de aplicação 37
Registos DNS
Registos (Resource Records, RR) da forma
Type=A Type=CNAME
• name - nome de estação • name – nome alternativo
• value – endereço IP da • value – nome canónico
estação Type=MX
Type=NS • name –nome alternativo
• name – domínio • value – servidor de mail
• value – nome de
servidor DNS idóneo
Camada de aplicação 38
19
Mensagens do protocolo
DNS
Mensagens de interrogação e resposta, ambas com
o mesmo formato
Camada de aplicação 39
Sockets
API de sockets
• Interface entre a camada de aplicação e a camada de transporte
• Interface através da qual um processo aplicacional envia e
recebe mensagens para/de outros processos aplicacionais
Tipos de sockets
• Stream – TCP
• Datagram - UDP
Camada de aplicação 40
20
Interacção cliente/servidor: TCP
socket() Servidor
Cliente Estabelecimento bind()
da sessão TCP
socket() listen()
connect()
accept() Bloqueado à espera
que seja estabelecida
write()
sessão TCP
read()
write()
read()
close() read()
close()
Fecho da
sessão TCP
Camada de aplicação 41
Servidores concorrentes
listenfd
connect() listenfd connect()
connfd
accept()
fork() close()
listenfd
close() connfd
connfd
Camada de aplicação 42
21
Interação cliente/servidor: UDP
Cliente Servidor
socket()
socket()
bind()
sendto()
recvfrom()
sendto()
recvfrom()
close()
Camada de aplicação 43
Camada de aplicação 44
22