Date post: | 07-Apr-2016 |
Category: |
Documents |
Upload: | denilson-diegues-de-figueiredo |
View: | 216 times |
Download: | 0 times |
2: Application Layer 1
Redes de ComputadoresDCC/UFJ
Capítulo 2 – Camada de Aplicação
Material fortemente baseado nos slides do livro: Computer Networking: A Top-Down Approach Featuring the Internet. Os slides foram disponibilizados pelos autores James F. Kurose e Keith W. Ross All material copyright 1996-2009J.F Kurose and K.W. Ross, All Rights Reserved
2: Application Layer 2
Capítulo 2: Camada de Aplicação 2.1 Princípios das
aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Email
SMTP, POP3, IMAP 2.5 DNS
2.6 Aplicações P2P 2.7 Programação de
Sockets com TCP 2.8 Programação de
Sockets com UDP
2: Application Layer 3
FTP: protocolo para transferência de arquivos
Transfere um arquivo de/para um host remoto Modelo cliente/servidor
cliente: inicializa a transferência (para/do host remoto)
servidor: host remoto ftp: RFC 959 servidor ftp: porta 21
file transfer FTPserver
FTPuser
interfaceFTP
client
local filesystem
remote filesystem
user at host
2: Application Layer 4
FTP: conexões de controle e dados separadas
Cliente FTP client contacta o servidor FTP na porta 21, e o TCP é o protocolo de transporte
Cliente é autorizado na conexão de controle
Cliente navega no diretório remoto, mandando comandos através da conexão de controle
Quando o servidor recebe um comando de transferência de arquivo, o servidor abre uma segunda conexão TCP com o cliente
Após a transferência de um arquivo, o servidor encerra a conexão de dados
FTPclient
FTPserver
Conexão TCP de controleporta 21
Conexão TCP de dados porta 20
Sevidor estabelece uma outra conexão de dados para tranferência de um outro arquivo
Conexão de controle: “out of band”
FTP servidor mantem um “estado” : diretório corrente, autenticação
2: Application Layer 5
FTP comandos, respostasExemplos de
Comandos: Envia um texto ASCII
através do canal de controle
USER username PASS password LIST retorna a lista dos
arquivos do diretório corrente
GET nomearquivo faz o download do arquivo
STOR nomearquivo armazena o arquivo no host remoto
Exemplos de códigos de retorno
Código do status e a descrição (como no HTTP)
331 Username OK, password required
125 data connection already open; transfer starting
425 Can’t open data connection
452 Error writing file
2: Application Layer 6
Capítulo 2: Camada de Aplicação 2.1 Princípios das
aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Email
SMTP, POP3, IMAP 2.5 DNS
2.6 Aplicações P2P 2.7 Programação de
Sockets com TCP 2.8 Programação de
Sockets com UDP
2: Application Layer 7
EmailTrês componentes
principais User agent (programa de
email) servidores de email simple mail transfer
protocol: SMTPUser agent a.k.a. “leitor do email” Escreve, edita e lê
mensagens de email e.g., Eudora, Outlook,
elm, Mozilla Thunderbird Mensagens são
armazenadas no servidor em filas de entrada e saída
user mailbox
outgoing message queue
mailserver
useragent
useragent
useragentmail
server
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
2: Application Layer 8
Email: ServidoresServidores mailbox contém as
mensagens envidas a um usário
fila de mensagens de saída (mensagens a serem enviadas)
protocolo SMTP entre os servidores de mensagens para troca de emails cliente: enviando o
email a partir do servidor
“servidor”: recebendo a mensagem vinda do outro servidor
mailserver
useragent
useragent
useragentmail
server
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
2: Application Layer 9
Email: SMTP [RFC 2821] Usa TCP para transferência confiável das mensagens
de email, porta 25 Transferência direta: enviando o email do servidor
de origem para o servidor de destino Três fases de transferência
handshaking (saudação) transferência de mensagens fechamento
Interação comandos/respostas comandos: texto ASCII resposta: código e frase
Mensagens devem ser em ASCIIs
2: Application Layer 10
Cenário: Alice envia mensagem para Bob1) Alice usa UA para
compor uma mensagem para [email protected]
2) UA envia a mensagem para o seu servidor de email; mensagem é aramzenada na fila de mensagens
3) Lado cliente do SMTP abre uma conexão com o servidor de email do Bob
4) Cliente SMTP envia a mensagem de Alice pela conexão TCP5) Servidor de email do Bob coloca a mensagem no mailbox de Bob6) Bob executa o seu UA para ler a mensagem
useragent
mailserver
mailserver user
agent
1
2 3 4 56
2: Application Layer 11
Interação SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... 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
2: Application Layer 12
SMTP SMTP usa conexão
persistente SMTP requer mensagens
(cabeçalho e corpo) em ASCII
Servidor SMTP usa CRLF.CRLF para determinar fim de mensagem
Comparação com o HTTP:
HTTP: recuperação de informação
SMTP: envio de informação
Ambos enviam comandos/respostas no formato ASCII
HTTP: cada objeto é encapsulado em uma msg de reposta
SMTP: múltiplos objetos enviados em uma uma mensagem
2: Application Layer 13
Formato da MensagemSMTP: protocolo para troca
de msgs de emailRFC 822: padrão: Linhas do cabeçalho,
De: Para: Assunto:
Diferente dos comandos SMTP corpo
A mensagem em caracteres ASCII
header
body
blankline
2: Application Layer 14
Protocolos de acesso a Email
SMTP: entrega/armazenamento no servidor do receptor
Protocolo de acesso ao email: recuperação a partir do servidor POP: Post Office Protocol [RFC 1939]
• Autenticação (user agent <-->servidor) e download
IMAP: Internet Mail Access Protocol [RFC 1730]• Mais funcionalidades (mais complexo)• Manipulação das mensagens armazenadas no
servidor HTTP: gmail, Hotmail, Yahoo! Mail, etc.
useragent
sender’s mail server
useragent
SMTP SMTP accessprotocol
receiver’s mail server
2: Application Layer 15
Protocolo POP3Fase de autenticação Comandos do cliente:
user: declara o nome do usuário
pass: senha Respostas do servidor
+OK -ERR
Fase de transação, cliente:
list: lista números das mensagens
retr: recupera a mensagem pelo número
dele: apaga quit
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 bob S: +OK C: pass hungry S: +OK user successfully logged on
2: Application Layer 16
POP3 e IMAPPOP3 Exemplo anterior
utiliza o modo “download e apaga” .
Bob não pode ler novamente o e-mail se ele muda de cliente
“Download-e-mantém”: cópias das mensagens em diferentes clientes
POP3 é sem estado entre sessões
IMAP Mantem todas as
mensagens no servidor
Permite o usuário organizar as mensagens em folders
IMAP mantém estado entre sessões
2: Application Layer 17
Capítulo 2: Camada de Aplicação 2.1 Princípios das
aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Email
SMTP, POP3, IMAP 2.5 DNS
2.6 Aplicações P2P 2.7 Programação de
Sockets com TCP 2.8 Programação de
Sockets com UDP
2: Application Layer 18
DNS: Domain Name SystemPessoas: muitos identificadores:
nome, CI, CPF, passaporte
Roteadores e hosts: Endereço IP address
(32 bits) – usado para endereçar datagramas
“nome”, e.g., ww.yahoo.com – usado por humanos
Q: como mapear um endereço IP e o nome?
Domain Name System:
Banco de dados distribuído implementado em hierarquia com muitos servidores de nome
Protocolo da camada de aplicação hosts, roteadores, servidores de nomes se comunicama para resolver nomes (tradução endereço/nome)
2: Application Layer 19
DNS Por quê não centralizar o
DNS? Único ponto de falha Volume de tráfego Banco de dado
centralizado distante Manutenção
Não é escalável!
Serviços DNS Tradução do nome
para o endereço IP Apelidos de
hospedeiro Apelidos do servidor
de email Distribuição de carga
Vários servidores Web: conjunto de endereços IP para um único nome
2: Application Layer 20
Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.eduDNS servers
umass.eduDNS serversyahoo.com
DNS serversamazon.comDNS servers
pbs.orgDNS servers
Banco de Dados Distribuído e Hierárquico
Cliente procura o IP para www.amazon.com: Cliente consulta um servidor raiz para encontrar
o servidor DNS .com Cliente consulta o servidor DNS .com para
encontrar o servidor amazon.com Cliente consulta o servidor amazon.com para
encontrar o endereço www.amazon.com
2: Application Layer 21
DNS:Servidores Raiz Contactado pelo servidor de nome local que não pode
traduzir o nome Servidor raiz
13 servidores raiz de nome no mundob USC-ISI Marina del Rey, CA
l ICANN Los Angeles, CA
e NASA Mt View, CAf Internet Software C. Palo Alto, CA (and 36 other locations)
i Autonomica, Stockholm (plus 28 other locations)
k RIPE London (also 16 other locations)
m WIDE Tokyo (also Seoul, Paris, SF)
a Verisign, Dulles, VAc Cogent, Herndon, VA (also LA)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 21 locations)
2: Application Layer 22
Servidores TLD e com autoridade Servidores Top-level domain (TLD) :
responsáveis por for com, org, net, edu, etc, e todos os domínios de países br, uk, fr, ca, jp.
Network Solutions mantém servidores para .com TLD Educause para .edu TLD
Servidores DNS com autoridade: Servidores DNS de uma organização, que fornecem um
host para mapear os nomes dos servidores da organização em endereços IPs (e.g., Web, mail).
Podem ser mantidos pela organização ou por um provedor de serviços
2: Application Layer 23
Servidor de Nome Local Não pertence a hierarquia Cada ISP (ISP residencial, empresa,
universidade) tem um. Também chamado de “default name
server” Quando um host faz uma consulta DNS,
a consulta é enviada ao servidor DNS local Atua como um proxy, enviando a consulta
aos servidores da hierarquia
2: Application Layer 24
requesting hostcis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS serverdns.poly.edu
1
23
4
5
6
authoritative DNS serverdns.cs.umass.edu
78
TLD DNS server
DNS - Exemplo de resolução de Nome
Host em cis.poly.edu quer o endereço para gaia.cs.umass.edu
Consulta iterativa: Contacta o servidor
e responde com o nome do próximo servidor para contato
“Não consigo resolver este nome, mas pergunte a este servidor”
2: Application Layer 25
requesting hostcis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS serverdns.poly.edu
1
2
45
6
authoritative DNS serverdns.cs.umass.edu
7
8
TLD DNS server
3Consulta recursiva: Toda a consulta é
feita através do servidor raiz
Alta carga?
DNS - Exemplo de resolução de Nome
2: Application Layer 26
DNS: cache e atualização dos registros Uma vez que o servidor de nome aprende o
mapeamento, ele armazena este mapeamento As entradas da cache são apagadas após
algum tempo Os servidores TLD tipicamente estão
armazenados nos servidores locais• Dessa maneira, os servidores raiz não são
visitados frequentemente Mecanismos de update/notificação:
RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html
2: Application Layer 27
Registros DNSDNS: banco de dados distribuído para armazenar os registros dos recursos (resource records - RR)
Tipo=NS Nome é domínio (e.g.
foo.com) Valor é hostname de um
servidor de nomes com autoridade para o este domínio
(foo.com,dns.foo.com,NS)
Formato RR : (nome, valor, tipo, ttl)
Tipo=A Nome é hostname Valor é endereço IP
(relay1.bar.foo.com, 145.37.93.126,A)
Tipo=CNAME Nome é um apelido para algum
nome real www.ibm.com é, na realidade, servereast.backup2.ibm.com
Valor é o nome real(foo.com,relay1.bar.foo.com, CNAME)
Tipo=MX Valor é nome do servidor de
email associado ao apelido que está no campo nome
(foo.com,mail.bar.foo.com,MX)
2: Application Layer 28
DNS: protocolo, mensagensProtocolo DNS : mensagens de busca e resposta, ambas com o mesmo formato
Cabeçalho Identificação: 16 bits
para busca, respostas usam o mesmo número
flags: Consulta ou
resposta Recursão desejada
pelo cliente Servidor suporta
recursão Resposta vem de
um servidor com autoridade
2: Application Layer 29
DNS: protocolo, mensagens
Nome, campos de tipo para uma consulta
RRs de resposta a
consultaRegistros para servidores
com autoridadeInformação adicional
“útil”que pode ser usada
2: Application Layer 30
Inserindo registros no DNS Exemplo: novo domínio “Network Utopia” Registrar o nome networkuptopia.com em uma
entidade registradora (e.g., Network Solutions) Deve-se informar os nomes e endereços IPs dos
servidores DNS com autoridade (primários e secundários)
A entidade registradora insere duas RRs em um servidor TLD .com:
(networkutopia.com, dns1.networkutopia.com, NS)(dns1.networkutopia.com, 212.212.212.1, A)
Cria-se um registro de servidor de autoridade do tipo A para www.networkuptopia.com; Registro do tipo MX para networkutopia.com
2: Application Layer 31
Capítulo 2: Camada de Aplicação 2.1 Princípios das
aplicações de rede 2.2 Web e HTTP 2.3 FTP 2.4 Email
SMTP, POP3, IMAP 2.5 DNS
2.6 Aplicações P2P 2.7 Programação de
Sockets com TCP 2.8 Programação de
Sockets com UDP
2: Application Layer 32
Arquitetura P2P Servidor não fica sempre
em funcionamento Sistemas finais se
comunicam diretamente Peers
conectam/desconectam e mudam de endereço IP
Tópicos: Distribuição de arquivos Procurando por informação Estudo de Caso: Skype
peer-peer
2: Application Layer 33
Distribuição de Arquivos: Servidor-Cliente vs P2PQuestão : Quanto tempo é necessário para distribuir um arquivo a partir de um servidor para N peers?
us
u2d1 d2u1
uN
dN
Server
Network (with abundant bandwidth)
File, size F
us: banda de upload do servidorui: banda de upload do peer idi: banda de download do peer i
2: Application Layer 34
Tempo de distribuição de um arquivo: servidor-cliente
us
u2d1 d2u1
uN
dN
Server
Network (with abundant bandwidth)
F Servidor envia sequencialmente N cópias: Tempo NF/us
cliente i leva F/di para download
Aumenta linearmente com N (para N grande)
= dcs = max { NF/us, F/min(di) }i
Tempo para distribuir o arquivo F para N clientesusando cliente/servidor
2: Application Layer 35
Tempo de distribuição de um arquivo: P2P
us
u2d1 d2u1
uN
dN
Server
Network (with abundant bandwidth)
F Servidor envia uma
cópia: F/us
cliente i demora F/di para fazer o download
NF bits devem ser disseminados (agregado) Taxa de upload mais rápida: us + ui
dP2P = max { F/us, F/min(di) , NF/(us + ui) }i
2: Application Layer 36
0
0.5
1
1.5
2
2.5
3
3.5
0 5 10 15 20 25 30 35
N
Min
imum
Dis
tribu
tion
Tim
e P2PClient-Server
Servidor-cliente vs. P2P: examploTaxa de upload do Cliente = u, F/u = 1 hour, us = 10u, dmin ≥ us
2: Application Layer 37
Distribuição do arquivo: BitTorrent
tracker: mantém peers que participam do torrent
torrent: grupo de peerstrocando chunks de um mesmo arquivo
obtain listof peers
trading chunks
peer
P2P: disseminação de um arquivo
2: Application Layer 38
BitTorrent (1) Arquivo dividido em chunks de 256KB. Ao se ajuntar a um torrent, peer:
Não tem chunks, mas acumulará com o tempo Se registra no tracker para obter a lista de
peers e se conecta a um subconjunto de peers (“vizinhos”)
Enquanto faz o download, peer envia chunks para outros peers.
peers entram e saem da rede Uma vez que o peer tenha todo o arquivo, pode
sair (egoisticamente) ou permanercer (altruisticamente)
2: Application Layer 39
BitTorrent (2)Obtendo Chunks A qualquer instante
de tempo, peers diferentes possuem diferentes subconjunto de chunks
periodicamente, um peer (Alice) pede a cada vizinho a lista de chunks que possui
Alice envia requisições para os chunks que ainda não possui rarest first
Enviando Chunks: tit-for-tat
Alice envia chunks para 4 vizinhosReavaliação dos top 4
a cada 10 segundos A cada 30 segundos:
seleciona, aleatoriamente, um outro peer, e inicia o envio dos chunksO peer escolhido mais
recentemente passa a fazer parte do top 4
“optimistically unchoke”
2: Application Layer 40
BitTorrent: Tit-for-tat(1) Alice “optimistically unchokes” Bob
(2) Alice se torna um dos 4 provedores do arquivo para Bob;Bob se torna um dos 4 provedores do arquivo para Alice(3) Bob se transforma em um dos 4 fornecedores top de Alice
Com taxa de upload maior, usuário pode encontrar melhores peers para trocar chunks e baixar o arquivo mais rapidamente!
2: Application Layer 41
P2P : Skype Pares de usuários se
comunicam. Protocolo da camada
de aplicação é prorietário (inferido através de engenharia reversa)
Overlay hierárquico com Supernodes
Índice mapeia nome de usuários a um endereço IP; distribuído entre os Supernodes
Skype clients (SC)
Supernode (SN)
Skype login server