Prévia do material em texto
Universidade Federal de Goiás Instituto de Informática Professor: Kleber Vieira Cardoso Atividade: exercícios sobre camada de aplicação – Web/HTTP, DNS. 1. Considere um enlace curto de 10 m através do qual um remetente pode transmitir a uma taxa de 150 bits/s em ambas as direções. Suponha que os pacotes com dados tenham 100 mil bits de comprimento, e os pacotes que contêm controle (por exemplo, ACK ou apresentação) tenham 200 bits de comprimento. Admita que N conexões paralelas recebam cada 1/N da largura de banda do enlace. Agora, considere o protocolo HTTP e suponha que cada objeto baixado tenha 100 Kbits de comprimento e que o objeto inicial baixado contenha 10 objetos referenciados do mesmo remetente. Os downloads paralelos por meio de instâncias paralelas de HTTP não persistente fazem sentido nesse caso? Agora considere o HTTP persistente. Você espera ganhos significativos sobre o caso não persistente? Justifique sua resposta numericamente. 2. Considere o cenário apresentado na questão anterior. Agora suponha que o enlace é compartilhado por X e mais quatro usuários. X usa instâncias paralelas de HTTP não persistente, e os outros quatro usam HTTP não persistente sem downloads paralelos. a) As conexões paralelas de X o ajudam a acessar páginas Web mais rapidamente? Por quê? b) Se cinco usuários abrirem cinco instâncias paralelas de HTTP não persistente, então as conexões paralelas de X seriam úteis? Por quê? 3. Considere um cliente HTTP que queira obter um documento Web em um dado URL. Inicialmente, o endereço IP do servidor HTTP é desconhecido. Nesse cenário, quais protocolos de transporte e de camada de aplicação são necessários, além do HTTP? 4. Suponha que você clique com seu navegador Web sobre um link para obter uma página e que o endereço IP para o URL associado não esteja no cache de seu hospedeiro local. Portanto, será necessária uma consulta ao DNS para obter o endereço IP. Considere que n servidores DNS sejam visitados antes que seu hospedeiro receba o endereço IP do DNS; as visitas sucessivas incorrem em um RTT igual a RTT1, . . ., RTTn. Suponha ainda que a página associada ao link contenha exatamente um objeto Web que consiste em uma pequena quantidade de texto HTML. Seja RTT0 o RTT entre o hospedeiro local e o servidor que contém o objeto Web. Admitindo que o tempo de transmissão seja zero, quanto tempo passará desde que você clique no link até que receba o objeto Web? 5. Considere um enlace curto, de 30 metros, sobre o qual um transmissor pode enviar a uma taxa de 200 bps (bits/seg.) em ambas as direções. Suponha que os pacotes contendo dados têm 50.000 bits e os pacotes contendo apenas controle (reconhecimento – ACK ou estabelecimento de conexão – SYN, SYN+ACK) têm 200 bits. Assuma que N conexões em paralelo dividem a capacidade do enlace igualitariamente, ou seja, cada conexão recebe 1/N da banda (ou vazão) do enlace. Assuma também que o HTTP está sendo usado e que cada objeto trazido (downloaded) tem 50.000 bits (incluindo os cabeçalhos). O objeto (base) trazido inicialmente contém 20 referências para objetos localizados no mesmo servidor. Assuma que a velocidade de propagação do sinal é 300*106 m/seg. Faça as considerações que julgar necessárias, justificando-as adequadamente. Responda o que é pedido a seguir. a) Haveria ganho significativo de desempenho se conexões em paralelo através de múltiplas instâncias do HTTP não persistente fossem utilizadas? Justifique numericamente. b) Assumindo que HTTP persistente está sendo usado, haveria ganho significativo de desempenho? Justifique numericamente. Considere agora que o enlace é compartilhado por um usuário X e 4 (quatro) outros usuários (ou seja, há 5 usuários compartilhando o enlace). O usuário X utiliza múltiplas instâncias em paralelo de HTTP não persistente e os outros 4 (quatro) usuários também utilizam HTTP não persistente, porém sem paralelismo. c) As conexões em paralelo do usuário X o ajudam a obter seus objetos mais rapidamente? Explique. d) Se os outros quatros usuários também passarem a usar conexões em paralelo na mesma quantidade que o usuário X, o usuário X também deveria continuar utilizando conexões em paralelo? Explique. 6. Suponha que uma instituição (e.g., uma empresa ou um departamento) possui um servidor DNS local (ou de cache) que atende a todos os computadores dessa instituição. Assuma que você é um usuário comum, ou seja, não é um administrador de sistemas com privilégios. Você consegue estimar se um determinado site da Web externo foi acessado a partir de algum computador qualquer da sua instituição a alguns segundos atrás? Comente. 7. Descreva um cenário em que um host, ao ser configurado para usar um servidor DNS local (ou de cache) da própria instituição, obtém um desempenho (ou tempo de resposta) pior que realizar todas as consultas (para tradução de nome para IP) por conta própria ou utilizar um servidor DNS de outra instituição. Observação: deve-se assumir que o servidor DNS local em questão funciona normalmente, ou seja, o problema de desempenho não é causado por falhas ou erros no referido servidor. 8. A seguir, é apresentada a estrutura de uma mensagem DNS. Cite e comente 3 (três) flags e comente o conteúdo dos campos autoridade e informação adicional. Identificação Flags Número de perguntas Número de RRs de resposta Número de RRs com autoridade Número de RRs adicionais Perguntas Respostas Autoridade Informação adicional 9. Neste exercício, utilize a ferramenta dig para explorar a hierarquia dos servidores DNS. Lembre-se que um servidor DNS de nível superior na hierarquia do DNS delega uma consulta DNS para um servidor DNS de nível inferior na hierarquia, enviando de volta ao cliente DNS o nome daquele servidor DNS de nível inferior. Primeiro, leia a man page sobre a ferramenta dig e responda às seguintes questões: a) Iniciando com o servidor DNS raiz (de um dos servidores raiz [a-m].root-servers.net), construa uma sequência de consultas para encontrar o endereço IP do servidor Web do INF (www.inf.ufg.br) utilizando a ferramenta dig. Mostre a relação de nomes de servidores DNS na cadeia de delegação ao responder à sua consulta. b) Repita o item (a) com outros sites populares da Internet, como google.com, yahoo.com ou amazon.com. 10. A tabela a seguir apresenta a execução da ferramenta dig, uma das respostas retornadas em cada execução e o tempo gasto para receber as respostas em cada execução. Cada comando foi executado três vezes, em sequência, por isso há três valores para tempo de resposta em cada linha da tabela. Comando executado Uma das respostas Tempo (ms) dig @a.root-servers.net br br. 172800 IN NS a.dns.br. 454; 308; 369 dig @a.dns.br ufg.br ufg.br. 3600 IN NS ns.ufg.br. 41; 41; 41 dig @ns.ufg.br inf.ufg.br inf.ufg.br. 7200 IN NS ns1.inf.ufg.br. 61; 61; 60 Essas execuções da ferramenta dig ilustram a relação de nomes de servidores DNS na cadeia de delegação, desde a raiz até o domínio inf.ufg.br. Com base nessas informações apresentadas na tabela, responda o que é pedido a seguir: a) Por que os tempos das respostas entre execuções sucessivas está apresentando esse comportamento, isto é, flutuando (454; 308; 369) ou permanecendo inalterado (41; 41; 41)? b) Por que o tempo médio para receber as respostas sobre o domínio ufg.br é menor que o tempo médio para receber as respostas sobre o domínio inf.ufg.br? É possível dizer se os dois últimos comandos foram executados dentro ou fora da UFG? Se sim, essa informação é sempre correta ou pode estar incorreta em alguma condição? Explique. Se não, justifique a razão da impossibilidade. c) Durante quanto tempo, em horas, a resposta fornecida pelo servidor ns.ufg.br pode ser considerada atualizada? Durante quanto tempo, em horas, a resposta fornecida sobre o servidor ns.ufg.br pode ser considerada atualizada? d) Se o comando a seguir fosse executado, qualdas respostas e quanto tempo seriam esperados? dig @a.root-servers.net inf.ufg.br