Redes de Computadores
e a Internet
Magnos Martinello
Universidade Federal do Espírito Santo - UFES
Departamento de Informática - DI
Laboratório de Pesquisas em Redes Multimidia - LPRM
2010
Camada de Aplicação
• 2.1 Princípios de aplicações de rede
• 2.2
Web e HTTP
• 2.3 FTP
• 2.4 Correio eletrônico
• SMTP, POP3, IMAP
• 2.5 DNS
• 2.6 Compartilhamento de arquivos P2P
• 2.7 Programação de socket com TCP
• 2.8 Programação de socket com UDP
• 2.9 Construindo um servidor Web
Web e HTTP
Primeiro alguns jargões
• Página Web consiste de 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
• Exemplo de URL:
www.someschool.edu/someDept/pic.gif
Nome do hospedeiro
Prof . Magnos Martinello - UFES
Nome do caminho
3
Visão geral do HTTP
HTTP: hypertext transfer
protocol
• Protocolo da camada de
aplicação 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
Prof . Magnos Martinello - UFES
4
Visão geral do HTTP
Utiliza TCP:
• Cliente inicia conexão TCP (cria socket) para o servidor na porta 80
• Servidor aceita uma conexão TCP do cliente
• mensagens HTTP (mensagens do protocolo de camada de aplicação)
são trocadas entre o browser (cliente HTTP) e o servidor Web (servidor
HTTP)
• 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 mais
complexos!
• Histórico do passado (estado) deve ser mantido
• Se o servidor/cliente quebra, suas visões de “estado” podem ser
inconsistentes, devendo ser reconciliadas
Prof . Magnos Martinello - UFES
5
Conexões HTTP
HTTP não persistente
• No máximo, um objeto é enviado sobre uma 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
Prof . Magnos Martinello - UFES
6
HTTP não persistente
Usuário entra com a URL:
www.someSchool.edu/someDepartment/home.index
1a. Cliente HTTP inicia
conexão 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
conexão TCP
Tempo
1b. Servidor HTTP no
hospedeiro
www.someSchool.edu
esperando pela conexão TCP
na porta 80. “Aceita”
conexão, notificando o
cliente
3. Servidor HTTP recebe
mensagem de pedido, forma
response message contendo
o objeto solicitado
(someDepartment/home.inde
x), envia mensagem para o
socket
Prof . Magnos Martinello - UFES
7
HTTP não persistente
4. Servidor HTTP fecha conexão
TCP
5. Cliente HTTP recebe
Tempo
mensagem de resposta
contendo o arquivo html,
apresenta o conteúdo html.
Faz o “parsing” analisando o
arquivo html, encontra 10
objetos jpeg referenciados
6. Passos 1-5 são repetidos para
cada um dos 10 objetos jpeg
Prof . Magnos Martinello - UFES
8
Modelagem do Tempo de Resposta
Definição de RTT: tempo
de ida e volta, para enviar
um pequeno pacote que
vai do cliente para o
servidor e retorna
Tempo de resposta:
• Um RTT para iniciar a
conexão TCP
• Um RTT para requisição
HTTP e
primeiros
bytes da resposta HTTP
para
retorno
• Tempo de transmissão
de arquivo
Total = 2RTT+ tempo de transmissão
Prof . Magnos Martinello - UFES
9
HTTP Persistente
Características do HTTP persistente:
• Requer 2 RTTs por objeto
• OS deve manipular e alocar recursos do hospedeiro para cada
conexão TCP. Mas os browsers freqüentemente abrem conexões
TCP paralelas para buscar objetos referenciados
HTTP persistente
• Servidor deixa a conexão aberta após enviar uma resposta
• Mensagens HTTP subseqüentes entre o mesmo cliente/servidor são
enviadas pela conexão
Persistente sem pipelining:
• O cliente emite novas requisições apenas quando a resposta
anterior for recebida
• Um RTT para cada objeto referenciado
Persistente com pipelining:
• Padrão no HTTP/1.1
• O cliente envia requisições assim que encontra um objeto
referenciado
• Tão pequeno como um RTT para todos os objetos referenciados
Prof . Magnos Martinello - UFES
10
Mensagens HTTP
• Dois tipos de mensagens HTTP: request, response
• HTTP request message:
• ASCII (formato legível para humanos)
Linha de pedido
(comandos GET, POST,
HEAD )
Linhas de
cabeçalho
GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/j
Accept-language:fr
(extra carriage return, line feed)
Carriage return,
line feed
indica fim da mensagem
Prof . Magnos Martinello - UFES
11
Arquitetura Web C/S
■
Figura mostrando uma mensagem de um cliente
(web browser) para um servidor web
Prof . Magnos Martinello - UFES
12
Conexões não persistentes x
persistentes
■
http 1.0
x
Prof . Magnos Martinello - UFES
http 1.1
13
Tempo de download de páginas
web
■
Um projetista web deseja avaliar rapidamente o tempo de
download de duas alternativas de projeto.
■
O primeiro projeto usa uma página web de 15650 bytes e
tem 10 imagens de 4200 bytes cada.
■
O segundo projeto, muito mais elaborado, usa a mesma
página html mas tem 20 imagens de maiores resoluções
com cerca de 20000 bytes cada.
■
Calcule o tempo de download de uma página web para
conexões persistentes e não persistentes supondo os
seguintes parâmetros:
●
RTT: 0,05 seg, B=125 KB/seg
Prof . Magnos Martinello - UFES
14
Calcular o Overhead do Protocolo
■
■
■
■
■
http header: número de bytes do http header
(aprox. 290)
NObj: número de objetos embutidos na página
Oi : tamanho em bytes do objeto i (i = 0,...,NObj)
RTT : Round Trip Time em segundos
B: Banda efetiva entre o browser e o servidor
web em bytes/sec.
PageSize =
NObj
∑ (O + httpHeader)
i
i= 0
Prof . Magnos Martinello - UFES
15
■
Conexões persistes x nãopersistentes
Projeto 1
●
●
■
Projeto 2
●
●
■
■
PageSize = 60840 bytes
NObj = 10
PageSize = 421740 bytes
NObj = 20
B = 125 000 bytes /s
RTT = 0,05 segundos
Prof . Magnos Martinello - UFES
16
Tempo de download
Projeto página simples
■
Tempo de Download ( Resposta ) para conexões não- persistentes
●
■
PDT = 1,59 seg
Tempo de Download ( Resposta ) para conexões persistentes
●
PDT = 1,09 seg
Projeto página elaborada
■ Tempo de Download ( Resposta ) para conexões não- persistentes
●
■
Tempo de Download ( Resposta ) para conexões persistentes
●
■
PDT = 5,47 seg
PDT = 4,47
Por que a diferença entre o tempo de download de Persistente x
Não-persistente não é significativa ?
Prof . Magnos Martinello - UFES
17
Desempenho C/S HTTP
Desempenho C/S HTTP
45
40
Tempo de Download (segundos)
35
30
25
Column E
20
Column F
15
10
5
0
10
20
30
40
50
70
90
150
Número de Objetos
Prof . Magnos Martinello - UFES
18
Download

Aula04 - Informática