Escolar Documentos
Profissional Documentos
Cultura Documentos
Camada de Aplicação
Mário Meireles Teixeira
UFMA – DEINF
2016
Protocolos
• Protocolo:
• Conjunto de regras e formatos usados para comunicação
entre entidades, a fim de permitir a realização de uma tarefa
• Um protocolo define:
• Os tipos de mensagens trocadas (p.ex., de requisição e
resposta)
• A sequência das mensagens trocadas (regras que definem
quando e como um processo envia/responde a mensagens)
• A sintaxe e semântica do conteúdo das mensagens
1
21/05/16
Camadas de Protocolos
• O software de rede geralmente é organizado em um
conjunto de camadas
• Cada camada é responsável por certos serviços, oferecendo
à camada superior uma interface bem definida de acesso a
suas operações
2
21/05/16
Modelo OSI
• Camada Física
• Definição das características físicas do meio de transmissão:
sinalização, cabeamento, etc.
• Ex. de protocolos: X.21, Ethernet banda básica
• Camada de Enlace
• Transmissão de frames de dados livres de erros entre
computadores diretamente conectados
• Ex: CSMA/CD (Ethernet), PPP, Wi-Fi, HDLC
• Camada de Rede
• Responsável pelo roteamento dos pacotes entre os nós da
rede
• Ex: IP, X.25, IPX
5
Modelo OSI
• Camada de Transporte
• Estabelece um enlace entre duas máquinas para transmissão
de mensagens, não necessariamente na mesma rede
• Serviço orientado ou não a conexão
• Ex: TCP, UDP, SPX
• Camada de Sessão
• Estabelece a comunicação entre processos em máquinas
diferentes
• Interações cliente-servidor: RPC, RMI
3
21/05/16
Modelo OSI
• Camada de Apresentação
• Permite apresentar os dados em um formato independente
dos utilizados por cada sistema individualmente
• Criptografia
• Ex: XDR, ASN.1, NCP
• Camada de Aplicação
• Nesta camada são executadas as aplicações dos usuários e
alguns protocolos utilitários de uso geral
• Ex: ftp, telnet, ICQ, SMTP, X.400, X.500
Protocolos TCP/IP
• Surgiram com a Internet, para a interligação dos seus
computadores
• Padrão de fato, em LANs e WANs
• Funcionam sobre diversas tecnologias de rede (cabos
coaxiais, fibras óticas, linhas telefônicas, redes sem fio...)
• Características especiais:
• Uso de padrões abertos
• Independência de tecnologia de rede
• Protocolos padronizados – RFCs (rede, transporte e aplicação)
• Interconexão total – identificação única por dispositivo
(endereço IP)
• Confirmações (ACK) fim-a-fim
8
4
21/05/16
Arquitetura TCP/IP
Aplicação
(Telnet, FTP, SMTP,
DNS, NFS, SNMP,
HTTP ...)
Transporte
(TCP, UDP)
Internet (IP)
Acesso à rede
Protocolos de aplicação:
– definem os tipos e sintaxe das aplicação
aplicação
mensagens trocadas transporte
transporte
rede
rede
– definem a semântica das mensagens enlace
enlace
física
física
– definem as ações tomadas
– usam serviços de comunicação das 10
camadas inferiores
5
21/05/16
Aplicações de Rede
Arquitetura Cliente-Servidor
Cliente: pedido
• inicia comunicação com o servidor
• tipicamente solicita serviços do
servidor, resposta
• Web: cliente implementado no
browser; e-mail: leitor de correio
Servidor: aplicação
transporte
• fornece os serviços solicitados ao cliente rede
enlace
física
• ex: servidor web envia a página web solicitada,
servidor de e-mail envia as mensagens, etc. 12
• um host pode atuar como cliente ou servidor
6
21/05/16
2 - 13
Comunicação entre
processos
7
21/05/16
Comunicação entre
processos
• Vazão
• Temporização
• Segurança
8
21/05/16
Requisições de Aplicações
comuns da Internet
9
21/05/16
Aplicações e seus
Protocolos de Transporte
Protocolo HTTP
10
21/05/16
22
11
21/05/16
Protocolo HTTP
HTTP: hypertext transfer
protocol htt
p req
• protocolo da camada de PC com htt ues
p t
aplicação da Web Chrome res
pon
se
• modelo cliente/servidor
– cliente: browser que
solicita, recebe e st
ue
r eq Servidor
apresenta objetos da Web p nse
htt espo Web com
– servidor: envia objetos em r
tp Apache
ht
resposta a pedidos
A Web e o HTTP
12
21/05/16
Protocolo HTTP
13
21/05/16
Exemplo (2)
14
21/05/16
Cliente-servidor na Web
(duas camadas)
29
Cliente-servidor na Web
(três camadas)
30
15
21/05/16
linha de pedido
(comandos GET,
POST, … ) GET /somedir/page.html HTTP/1.1
Host: www.someschool.edu
linhas de Connection: close
cabeçalho User-agent: Mozilla/5.0
Accept-language: fr
Formato da mensagem
HTTP
16
21/05/16
linha de status
(protocolo
código de status HTTP/1.1 200 OK
frase de status) Connection: close
Date: Tue, 09 Aug 2011 15:44:04 GMT
Server: Apache/2.2.3 (CentOS)
linhas de Last-Modified: Tue, 09 Aug 2011 15:11:03 GMT
cabeçalho Content-Length: 6821
Content-Type: text/html
Formato da mensagem
HTTP
17
21/05/16
Métodos HTTP
Códigos de Status
• 1xx – Informational • 4xx – Client Error
– 400 Bad Request
• 2xx – Success – 401 Unauthorized
– 200 OK – 404 Not Found
36
18
21/05/16
Cookies
Cookies
38
19
21/05/16
• usuário configura o
browser:
– acesso à Web é feito
através de um servidor
proxy
• cliente envia todos os
pedidos http para o proxy:
– se o objeto existe no
cache, o proxy retorna o
objeto
– senão, o proxy solicita o
40
objeto ao servidor original
e o envia ao cliente
20
21/05/16
Protocolo FTP
TRANSFERÊNCIA DE ARQUIVOS 42
21
21/05/16
22
21/05/16
23
21/05/16
– cliente: servidor de
correio que envia agente
usuário
– servidor: servidor de agente 47
correio que recebe usuário
• tratamento de erros
24
21/05/16
SMTP
S: 220 hamburger.edu
C: HELO crepes.fr
S: 250 Hello crepes.fr, pleased to meet you
C: MAIL FROM: <alice@crepes.fr>
S: 250 alice@crepes.fr... Sender ok
C: RCPT TO: <bob@hamburger.edu>
S: 250 bob@hamburger.edu ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." on a line by itself
C: Do you like ketchup?
C: How about pickles?
C: .
S: 250 Message accepted for delivery
C: QUIT
S: 221 hamburger.edu closing connection 50
25
21/05/16
SMTP: comentários
26
21/05/16
From: alice@crepes.fr
versão MIME To: bob@hamburger.edu
Subject: Picture of yummy crepe.
método usado para MIME-Version: 1.0
codificação (RFC 2045) Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dados multimídia:
tipo, subtipo,
base64 encoded data .....
parâmetro
.........................
......base64 encoded data
dados codificados . 53
terminador
Text Video
• text/plain, text/html • video/mpeg, video/
• text/plain; quicktime
charset=“ISO-8859-1”
(línguas latinas)
Application
• dados que precisam ser
Image processados por uma aplicação
• image/jpeg, image/gif antes de serem apresentados
• application/msword,
Audio application/octet-stream
(dados binários genéricos)
• audio/basic (8 bits),
audio/32kadpcm (32 Kbps)
54
27
21/05/16
Tipo Multipart
From: alice@crepes.fr
To: bob@hamburger.edu delimitador
Subject: Picture of yummy crepe.
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary=98766789
--98766789
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain
Dear Bob,
Please find a picture of a crepe.
--98766789
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
servidor de servidor de
correio de origem correio de destino
28
21/05/16
DNS
SERVIÇO DE NOMES 58
29
21/05/16
DNS: Arquitetura
Por que não usar um DNS
centralizado?
• ponto único de falha servidor de nomes local:
• volume de tráfego – cada empresa/instituição tem um
servidor de nomes local (default)
• base de dados distante – Consultas dos computadores
• manutenção locais ao DNS vão primeiro para o
servidor de nomes local
Não tem escalabilidade!
servidor de nomes com autoridade:
– para um computador: sempre
Solução distribuída, hierárquica: contém o nome e o endereço IP
nenhum servidor tem todos os daquele computador
mapeamentos de nomes para – muitos servidores de nomes locais
endereços IP também são authoritative 60
30
21/05/16
… …
31
21/05/16
32
21/05/16
solicitante:
pc01.deinf.ufma.br 66
alvo:
xingu.icmc.usp.br
33
21/05/16
• servidor contactado 5 6
1 8
responde com o nome de
outro servidor de nomes
para contato servidor de nomes local
icmc.usp.br
• diminui a carga na rede e computador solicitante
nos servidores pc01.deinf.ufma.br
67
xingu.icmc.usp.br
DNS: caching
• Quando um servidor de nomes aprende um mapeamento,
ele o guarda em sua cache
• entradas na cache são apagadas depois de um tempo (TTL)
• tipicamente, servidores TLD são guardados na cache dos DNS’s
locais
• evita visitar os servidores Raiz com frequência
34
21/05/16
Registros DNS
DNS: base de dados distribuída que armazena registros de recursos (RR)
type=A type=CNAME
§ name é o nome do host § name é um “apelido”
§ value é o endereço IP § value é o nome “canônico” (real)
§ www.deinf.ufma.br é de fato
type=NS www.caetano.deinf.ufma.br
• name é um domínio (p.ex.,
deinf.ufma.br)
• value é o hostname do type=MX
servidor de nomes com § value é o nome de um
autoridade para este domínio 69
servidor de nomes associado
com name
2 bytes 2 bytes
Cabeçalho:
identification flags
• identificação: número de 16 bits
identifica consulta; resposta usa o # questions # answer RRs
mesmo número
# authority RRs # additional RRs
70
additional info (variable # of RRs)
35
21/05/16
identification flags
RRs de resposta
a uma consulta answers (variable # of RRs)
P2P
PEER-TO-PEER 72
36