EA074A:2014 1S: Exercício opcional extra

De DCA-Wiki

  • Este exercício tem caráter complementar aos assuntos vistos em sala de aula e objetiva dar aos alunos uma visão mais prática das questões relacionadas a redes de computadores. Ele é opcional e a nota do mesmo será utilizada para melhorar a média final do aluno, conforme explicado mais adiante.
    • Os alunos que completarem todas as atividades deste exercício, demonstrando que as realizaram de forma completa e autônoma, poderão ter até um ponto acrescido na média das três provas (dependendo do conteúdo do relatório), sendo mantidas todas as demais regras já anunciadas para o critério de avaliação.
  • As duas ferramentas necessárias para a realização das atividades (WireShark e CORE) foram abordadas em duas aulas extras (opcionais) ministradas pelo auxiliar didático Caio Elias, conforme anunciado em sala de aula e na página da disciplina. Os textos relativos a estas aulas estão disponíveis na seção de referências bibliográficas da disciplina (mais acima nesta página). Várias outras referências podem e devem ser usadas para um melhor entendimento e domínio das ferramentas. Procure por mais documentação no sítio web de cada ferramenta.
  • Qualquer aluno matriculado na disciplina poderá fazer o exercício (de forma individual) e entregá-lo para obter a nota correspondente.
  • Dado o caráter eletivo do exercício, não serão aceitas entregas após o horário da aula de 01/07/14, que é a última aula (Prova 3).
  • As atividades deverão ser entregues impressas e/ou manuscritas, devendo haver uma folha de rosto com a identificação da FEEC, disciplina, turma, data, aluno e RA.


Atividade 1

Nesta atividade o aluno irá usar a ferramenta WireShark para capturar e analisar pacotes de dados transmitidos de e recebidos por seu computador. Para documentar a execução das atividades, imprima as diversas telas do WireShark que mostram as informações à medida que você avança.

  1. Após instalar e executar o WireShark, coloque as letras http no campo de filtro do mesmo.
  2. Apague o cache de seu browser para garantir que as páginas a serem carregadas daqui por diante não tenham cópias previamente armazenadas em seu computador.
    • Alternativamente, acesse as páginas indicadas pressionando a tecla Shift antes de clicar no botão de recarga (atualização) de página do browser.
  3. Dispare a captura de pacotes.
  4. Acesse a página http://www.dca.fee.unicamp.br/~marco/cursos/ea074_14_1/exercicio_extra/arquivo1basico.html .
  5. Interrompa a captura de pacotes.
    • Alguns browsers requisitam automaticamente ao servidor um arquivo chamado favicon.ico (ou de nome similar) que é apenas um ícone gráfico que o browser quer receber para mostrar ao lado do URL solicitado. Se seu browser fez tal requisição, ignore a mesma e a respectiva resposta do servidor.
  6. Com base nos dados capturados informe:
    1. Quais são os endereços IP e portas de origem e destino das mensagens trocadas com o servidor web indicado?
    2. Qual é a sobrecarga da pilha de protocolos na requisição, isto é, qual é a razão entre o número de bytes totais transmitidos pela rede e o tamanho em bytes da requisição do browser ao servidor?
    3. Houve algum tipo de compressão nos dados transmitidos do browser para o servidor? Explique como constatou isso.
    4. Houve algum tipo de compressão nos dados transmitidos do servidor para o browser? Explique como constatou isso.
    5. Dispare uma nova captura de pacotes e clique no botão de recarregar página em seu browser sem pressionar a tecla Shift.
    6. Descreva o que mudou na resposta enviada pelo servidor.
  7. Troque o filtro de pesquisa de http para ip.addr==xxx.xxx.xxx.xxx, substituindo xxx.xxx.xxx.xxx pelo endereço IP do servidor, e clique no botão "Apply".
  8. Dispare a captura de pacotes, descartando sem salvar todos os dados capturados anteriormente.
  9. Acesse a página http://www.dca.fee.unicamp.br/~marco/cursos/ea074_14_1/exercicio_extra/rfc1.txt (caso não seja a primeira vez que acessa a página, use Shift-click).
  10. Aguarde uns 30 segundos e interrompa a captura de pacotes (dando tempo para que o fechamento da conexão seja capturado).
  11. Com base nos dados apresentados pelo WireShark informe:
    1. Qual o tamanho do arquivo transferido?
    2. Quantas mensagens foram trocadas com o servidor desde que esta nova página foi requisitada até o encerramento da conexão?
    3. Descreva o papel desempenhado por estas mensagens, destacando para cada uma o seguinte:
      1. Número da mensagem, atribuído pelo WireShark na primeira coluna da tabela
      2. Origem (IP e porta)
      3. Destino (IP e porta)
      4. Objetivo da mensagem
      5. Tamanho do campo de dados úteis (sem considerar cabeçalhos)
      6. Número de sequência, se houver
      7. Número de acknowledgement (ACK), se houver
    4. A soma dos dados transportados pelas mensagens originadas no servidor coincide com o tamanho do arquivo transferido? Por que?
  12. Mantendo o mesmo filtro com o endereço IP do servidor, dispare uma nova captura de pacotes sem salvar nenhum dado anterior.
  13. Acesse a página protegida http://www.dca.fee.unicamp.br/~marco/cursos/ea074_14_1/exercicio_extra/teste/index.html e interrompa a captura logo após receber uma janela de usuário/senha.
    • Atenção: se esta não for a primeira vez que você acessa esta página, ela será mostrada sem requisitar usuário/senha. Para limpar o cache que contém esta senha, veja o procedimento nas observações ao final deste texto.
    • Atenção: se você demorar muito para introduzir usuário/senha, o WireShark poderá capturar alguns pacotes extras chamados TCP Keep-Alive, os quais poderão ser desconsiderados.
  14. Com base nos dados coletados informe (sob a ótica do protocolo http apenas):
    1. Destaque as mensagens de requisição e de resposta e explique o conteúdo das duas.
  15. Dispare nova captura nas mesmas condições anteriores.
  16. Insira "ea074" como usuário (sem aspas) e seu RA como senha, clique "OK" (ou "Enviar") e interrompa a captura logo após receber uma nova janela de usuário/senha.
  17. Com base nos dados coletados informe (sob a ótica do protocolo http apenas):
    1. Qual foi a diferença entre a mensagens de requisição (GET) desta comunicação e a GET da vez anterior? Explique o significado desta diferença.
    2. Qual foi a diferença entre a mensagens de resposta ao GET desta comunicação e a resposta ao GET da vez anterior? Explique o significado desta diferença.
    3. Use o comando base64 do Linux ou um site como http://www.base64encode.org/ e responda qual é o valor codificado em base 64 da sequência "ea074:xxxxxx" (sem aspas) onde xxxxxx é o seu RA introduzido como senha?
    4. Indique, nos pacotes capturados, se há (e, se houver, onde há) uma sequência que coincida com o valor codificado obtido (veja a parte inferior da janela do WireShark).
  18. Dispare nova captura nas mesmas condições anteriores.
  19. Insira "ea074" como usuário (sem aspas) e a palavra "alunos" como senha, clique "OK" (ou "Enviar") e interrompa a captura logo após receber a página azul de testes.
  20. Com base nos dados coletados informe (sob a ótica do protocolo http apenas):
    1. Qual foi a diferença entre a mensagens de requisição (GET) desta comunicação e a GET da vez anterior (aquela com senha = RA)? Explique o significado desta diferença.
    2. Qual foi a diferença entre a mensagens de resposta ao GET desta comunicação e a resposta ao GET da vez anterior (aquela com senha = RA)? Explique o significado desta diferença.
    3. Copie os códigos entre a palavra Basic e os caracteres \r\n no campo "Authorization" da mensagem HTTP de requisição e decodifique-os com o comando base64 ou no sítio web indicado acima. Os valores decodificados representam o que?
    4. Com base no conteúdo das informações trocadas entre browser e servidor, é possível afirmar que este tipo de controle de acesso (autorização) a páginas web é seguro? Por que?
    5. O que é feito para tornar mais segura a comunicação entre browser e servidor em aplicações mais sensíveis (acesso a bancos, por exemplo)?
  • Obs: após inserir uma vez corretamente o par usuário/senha, o browser armazena este par em seu cache e o envia de forma automática, fazendo com que o servidor entregue a página solicitada a cada pedido de atualização da mesma. Dependendo do browser e da versão, ele apaga este cache alguns minutos mais tarde (15 min). Uma forma de forçar a remoção deste par usuário/senha do cache é tentar acessar com ele uma outra página protegida, mas que use um par diferente. Com este objetivo, foi disponibilizada uma outra página protegida (mas sem conteúdo útil) para que o aluno possa remover do cache do browser o par usuário/senha que enviou anteriormente. A nova página protegida está em http://www.dca.fee.unicamp.br/~marco/cursos/ea074_14_1/exercicio_extra/teste2/index.html

Atividade 2

Nesta atividade o aluno irá propor uma rede, resolver questões teóricas de roteamento e comprovar na prática (via simulador) o comportamento do tráfego na mesma.

  1. Proponha uma rede com 6 roteadores (R1 a R6) e 10 enlaces (L1 a L10) com a topologia que desejar.
    1. Garanta que cada roteador se conecte a pelo menos outros 2 e que nenhum enlace deixe de ser usado totalmente (isto é, conectado nos dois extremos).
    2. Na sua rede não deve haver dois ou mais enlaces conectando o mesmo par de roteadores.
    3. O custo de cada um dos 6 primeiros enlaces (você define quais são) deverá ser igual a cada um dos 6 dígitos do seu RA (substitua 0, se houver, por 10). Cada um dos quatro enlaces restantes deverá ter custo igual a dez.
    4. Usando o algoritmo OSPF determine teoricamente o melhor caminho e o seu respectivo custo total desde um dos roteadores (roteador inicial) até cada um dos outros 5. Não é necessário repetir considerando outros roteadores como iniciais.
      • O roteador inicial será aquele com a maior quantidade de enlaces conectados a ele. Em caso de empate, escolha aquele cuja soma dos pesos de seus enlaces seja a maior. Se persistir o empate, escolha qualquer um dos empatados.
    5. Documente em um relatório a topologia da rede, incluindo os custos de cada enlace.
    6. Documente também todos os passos seguidos para definição do melhor caminho desde o roteador inicial até cada um dos outros roteadores.
  2. Usando o software CORE (http://www.nrl.navy.mil/itd/ncs/products/core):
    1. projete uma rede idêntica à proposta acima;
    2. para facilitar os trabalhos, configure as opções de apresentação de dados de forma que você possa ver na tela os nomes de cada roteador, os números de cada interface e seus respectivos endereços IP;
    3. ajuste o custo de cada enlace:
      1. observe que é necessário configurar o custo em cada uma das pontas (interfaces) de cada enlace com o mesmo valor (mesmo peso bi-direcional);
      2. observe que a cada reinicio da simulação os custos dos links são resetados para um valor default (10 na versão 4.6 do CORE);
    4. escolha o algoritmo de roteamento OSPFv2;
    5. dispare a simulação e aguarde até que o OSPF convirja e construa as tabelas de roteamento em cada nó;
    6. gere um tráfego de 512kbps partindo do roteador inicial e terminando em cada um dos demais para verificar se a rota escolhida pelo CORE é compatível com aquela que você determinou teoricamente (o caminho será mostrado com uma linha mais grossa se o tráfego for superior a um valor limite, que está configurado por default em 256 kbps no CORE);
    7. faça impressões das telas que mostrem os resultados do CORE indicando o melhor caminho para cada um dos cinco destinos escolhidos.
  3. Faça uma discussão dos resultados, apresentando e discutindo as eventuais dificuldades que você encontrou para obtê-los.
Ferramentas pessoais