A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:

Apresentações semelhantes


Apresentação em tema: "2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:"— Transcrição da apresentação:

1 2: Application Layer 1 Redes de Computadores DCC/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-2009 J.F Kurose and K.W. Ross, All Rights Reserved

2 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

3 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 FTP server FTP user interface FTP client local file system remote file system user at host

4 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 FTP client FTP server Conexão TCP de controle porta 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

5 2: Application Layer 5 FTP comandos, respostas Exemplos 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

6 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

7 2: Application Layer 7 Email Três componentes principais  User agent (programa de email)  servidores de email  simple mail transfer protocol: SMTP User 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 mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP

8 2: Application Layer 8 Email: Servidores Servidores  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 mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP

9 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

10 2: Application Layer 10 Cenário: Alice envia mensagem para Bob 1) Alice usa UA para compor uma mensagem para bob@someschool.edu bob@someschool.edu 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 TCP 5) Servidor de email do Bob coloca a mensagem no mailbox de Bob 6) Bob executa o seu UA para ler a mensagem user agent mail server mail server user agent 1 2 3 4 5 6

11 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: S: 250 alice@crepes.fr... Sender ok C: RCPT TO: 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

12 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

13 2: Application Layer 13 Formato da Mensagem SMTP: protocolo para troca de msgs de email RFC 822: padrão:  Linhas do cabeçalho,  De:  Para:  Assunto: Diferente dos comandos SMTP  corpo  A mensagem em caracteres ASCII header body blank line

14 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. user agent sender’s mail server user agent SMTP access protocol receiver’s mail server

15 2: Application Layer 15 Protocolo POP3 Fase 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: S:. C: dele 1 C: retr 2 S: 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

16 2: Application Layer 16 POP3 e IMAP POP3  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

17 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

18 2: Application Layer 18 DNS: Domain Name System Pessoas: 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)

19 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

20 2: Application Layer 20 Root DNS Servers com DNS servers org DNS serversedu DNS servers poly.edu DNS servers umass.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS 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

21 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 mundo b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA e NASA Mt View, CA f 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, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations)

22 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

23 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

24 2: Application Layer 24 requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 3 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 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”

25 2: Application Layer 25 requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu 1 2 4 5 6 authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server 3 Consulta recursiva:  Toda a consulta é feita através do servidor raiz  Alta carga? DNS - Exemplo de resolução de Nome

26 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

27 2: Application Layer 27 Registros DNS DNS: 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)

28 2: Application Layer 28 DNS: protocolo, mensagens Protocolo 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

29 2: Application Layer 29 DNS: protocolo, mensagens Nome, campos de tipo para uma consulta RRs de resposta a consulta Registros para servidores com autoridade Informação adicional “útil” que pode ser usada

30 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

31 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

32 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

33 2: Application Layer 33 Distribuição de Arquivos: Servidor- Cliente vs P2P Questão : Quanto tempo é necessário para distribuir um arquivo a partir de um servidor para N peers? usus u2u2 d1d1 d2d2 u1u1 uNuN dNdN Server Network (with abundant bandwidth) File, size F u s : banda de upload do servidor u i : banda de upload do peer i d i : banda de download do peer i

34 2: Application Layer 34 Tempo de distribuição de um arquivo: servidor-cliente usus u2u2 d1d1 d2d2 u1u1 uNuN dNdN Server Network (with abundant bandwidth) F  Servidor envia sequencialmente N cópias:  Tempo NF/u s  cliente i leva F/d i para download Aumenta linearmente com N (para N grande) = d cs = max { NF/u s, F/min(d i ) } i Tempo para distribuir o arquivo F para N clientes usando cliente/servidor

35 2: Application Layer 35 Tempo de distribuição de um arquivo: P2P usus u2u2 d1d1 d2d2 u1u1 uNuN dNdN Server Network (with abundant bandwidth) F  Servidor envia uma cópia: F/u s  cliente i demora F/d i para fazer o download  NF bits devem ser disseminados (agregado)  Taxa de upload mais rápida: u s +  u i d P2P = max { F/u s, F/min(d i ), NF/(u s +  u i ) } i

36 2: Application Layer 36 Servidor-cliente vs. P2P: examplo Taxa de upload do Cliente = u, F/u = 1 hour, u s = 10u, d min ≥ u s

37 2: Application Layer 37 Distribuição do arquivo: BitTorrent tracker: mantém peers que participam do torrent torrent: grupo de peers trocando chunks de um mesmo arquivo obtain list of peers trading chunks peer  P2P: disseminação de um arquivo

38 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)

39 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 vizinhos  Reavaliação dos top 4 a cada 10 segundos  A cada 30 segundos: seleciona, aleatoriamente, um outro peer, e inicia o envio dos chunks  O peer escolhido mais recentemente passa a fazer parte do top 4  “optimistically unchoke”

40 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!

41 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


Carregar ppt "2: Application Layer 1 Redes de Computadores DCC/UFJ Capítulo 2 – Camada de Aplicação Material fortemente baseado nos slides do livro: Computer Networking:"

Apresentações semelhantes


Anúncios Google