MC833 - Programação em Redes de Computadores - 1s 2014
Exercício 2: Ferramenta para Análise de Protocolos de Rede - TCPDUMP
Professora Juliana Freitag Borin
Objetivo: aprender a usar a ferramenta TCPDUMP para análise de protocolos de rede.
Critérios para entrega e correção do exercício:
1. este exercício é individual;
2. a resolução do exercício deve ser enviada em um arquivo .pdf para castudillo@lrc.ic.unicamp.br até às 9:59 do dia 13/03/2014. O nome do arquivo deve ser "exercicio2-raXXXXX", onde XXXXX deve ser substituído pelo número do seu RA;
3. o assunto da mensagem deve ser "MC833 - exercício 2";
4- a nota da atividade será 0 ou 1. 1, caso todas as questões estejam respondidas de forma satisfatória E a entrega atenda aos critérios 1, 2 e 3; 0, caso contrário.
Observações:
Obs. 1: você deve usar o comando tcpdump. Aplicativos gráficos como wireshark ou similares estão proibidos.
Obs. 2: o tcpdump é um programa que deve ser executado no shell.
Obs. 3: a saída dos comandos devem ser incluídas nas respostas.
Para este exercício, vamos usar um cenário no qual um programa transmite um arquivo da máquina chamada willow para a máquina chamada maple sobre uma conexão TCP. Foi executada a ferramenta tcpdump no transmissor, willow, para fazer um log tanto dos pacotes enviados como dos pacotes de reconhecimento (acknowledgments - ACKs) recebidos.
O arquivo tcpdump.dat é um arquivo binário que contém o log de todos os pacotes TCP do cenário descrito. O arquivo não está no formato texto..
Baixe o arquivo de log gerado pelo tcpdump aqui ou usando o seguinte comando em Linux:
wget http://www.ic.unicamp.br/~juliana/cursos/mc833/tcpdump.dat
Para converter o arquivo tcpdump.dat para o formato texto use o seguinte comando:
tcpdump -r tcpdump.dat > outfile.txt
Agora abra o aquivo outfile.txt no seu editor de texto preferido. A saída tem várias linhas listando os pacotes trocados entre willow e maple. Por exemplo:
00:34:41.474225 IP willow.csail.mit.edu.39675 > maple.csail.mit.edu.5001: Flags [.], seq 1473:2921, ack 1, win 115, options [nop,nop,TS val 282136474 ecr 282202089], length 1448
denota um pacote enviado de willow para maple. O protocolo TCP usa números de sequência para rastrear quantos dados foram enviados. Este pacote tem o número de sequência 1473:2921, indicando que ele contém todos os bytes desde o byte # 1473 até o byte # 2920 (= 2921 - 1) do fluxo, totalizando 1448 bytes (note que 1448 = 2921 - 1473). O time stamp 00:34:41.474225 denota o instante no qual o pacote foi transmitido.
Uma vez que maple recebe o pacote, supondo que tenha recebido todos os pacotes anteriores, ela envia um pacote de reconhecimento (acknowledgment - ACK):
00:34:41.482047 IP maple.csail.mit.edu.5001 > willow.csail.mit.edu.39675: Flags [.], ack 2921, win 159, options [nop,nop,TS val 282202095 ecr 282136474], length 0
Isto indica que maple recebeu todos os bytes desde o byte # 0 até o byte # 2920. O próximo byte que maple espera é o byte # 2921. O time stamp 00:34:41.482047, denota o instante no qual o ACK foi recebido por willow.
man tcpdump
1-) Quais são as interfaces nas quais o tcpdump pode escutar/capturar dados? Essas interfaces são as mesmas mostradas pelo comando ifconfig?
2-) Qual é o endereço IP do nós maple e willow na rede em questão?
3-) Qual é o endereço MAC dos nós maple e willow?
4-) Qual é a porta TCP usada pelos nós maple e willow? Qual é o tipo de porta que está sendo utilizada pela fonte nesta conexão? (e.g., as portas até 1024 são chamadas de reserved ports ou well-known ports .)
5-) Quantos kilobytes foram transferidos durante essa sessão TCP? Qual foi a duração da sessão? Baseado nas respostas anteriores, qual é a vazão (em Kilobytes/segundos) do fluxo TCP entre willow e maple?
6-) Qual é o round-trip time (RTT), em segundos, entre willow e maple baseado no pacote 1473:2921 e seu acknowledgment? Veja o arquivo outfile.txt e encontre o RTT do pacote 13057:14505. Porque esses dois valores são diferentes?
7-) Identifique os procedimentos three-way handshake e connection termination. Coloque as mensagens envolvidas em uma tabela e, para cada um dos procedimentos, inclua a fonte, o destino, o protocolo e informações das mensagens.