Laboratório: Comparativo TCP e UDP utilizando nc e tcpdump

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Laboratório: Comparativo TCP e UDP

Para este laboratório será utilizado a ferramenta nc (netcat) e tcpdump.

O laboratório deve ser realizado em uma máquina virtual, em virtude da necessidade de conta de administrador para utilizar o tcpdump.

nc (NetCat)

Permite criar comunicações e soquetes de escuta TCP e UDP .

Parâmetros comuns para uso com nc
  • -l especifica porta para escuta TCP ou de recepção UDP;
  • -n não converte endereços IP e porta, mantendo o formato numérico;
  • -u usa comunicação UDP (por default usa TCP).

As páginas de manual do nc trazem informações detalhadas do uso deste comando:

man nc

Comparativo entre uma comunicação TCP e UDP

Para este exercício será utilizado um terminal no seu computador e outro em um computador de um colega ou na máquina virtual.

Conexão TCP
  • Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  • A primeira transferência será feita usando o protocolo TCP.No computador receptor execute o netcat que criará um soquete de escuta TCP em uma porta especificada, por exemplo, 5555:
nc -l 5555
  • No computador transmissor execute o netcat para criar uma conexão TCP com o receptor especificado no endereço (X é o número do computador do colega de laboratório que vai aceitar a conexão) e porta especificada:
nc 192.168.2.X 5555 
  • Com estes comandos, abre-se uma conexão TCP, full-duplex, na qual tudo o que for teclado em um host será enviado ao outro host.
  • Depois de testada a conexão, encerrar a mesma com CTRL-C.
  • Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  • Relançar a conexão TCP com netcat e analisar os pacotes capturados pelo tcpdump.
Comunicação UDP
  • Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  • Esta transferência será feita usando o protocolo UDP. No computador receptor execute o netcat que criará um soquete de escuta UDP em uma porta especificada, por exemplo, 5555:
nc -u -l 5555
  • No computador transmissor execute o netcat para enviar um datagrama UDP para o receptor especificado no endereço (X é o número do computador do colega de laboratório que vai aceitar a conexão) e porta especificada:
nc -u 192.168.2.X 5555 
  • Com estes comandos tudo o que for teclado em um host será enviado ao outro host pelo protocolo UDP.
  • Depois de testada a comunicação, encerrar a mesma com CTRL-C.
  1. Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  • Relançar a comunicação UDP com netcat e analisar os pacotes capturados pelo tcpdump.
Comparação entre TCP e UDP a partir dos pacotes capturados com o tcpdump
  1. Verifique a abertura de conexão no TCP;
  2. Verifique a ausência de conexão no UDP;
  3. Verifique os números de sequência e reconhecimento TCP nas trocas de pacotes realizadas;
  4. Verifique o encerramento de conexão TCP quando um dos host derruba a conexão com CTRL-C;
  5. Verifique o que acontece quando um dos lados da comunicação usando UDP encerra com CTRL-C.

Transferência de arquivos com NetCat

Baixe o arquivo.txt para transferência com TCP
  • Escolha um arquivo para transferência;
  • Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  • A transferência será feita usando o protocolo TCP. No computador receptor execute o netcat que criará um soquete de escuta TCP em uma porta especificada, por exemplo, 5555:
nc -l 5555 < arquivo.txt
  • No computador transmissor execute o netcat para criar uma conexão TCP com o receptor especificado no endereço (X é o número do computador do colega de laboratório que vai aceitar a conexão) e porta especificada:
time nc 192.168.2.X 5555 > arquivo.txt
  • O comando enviará o arquivo usando conexão TCP, ao fim da transmissão a conexão é encerrada.
  • O comando time no antes do nc permite visualizar o tempo da transmissão.
  • Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  • Relançar a conexão TCP com netcat e capturar os pacotes com o tcpdump.
Análise da transferência TCP e dos pacotes capturados
  1. Verifique se o tamanho dos arquivos é o mesmo;
  2. Verifique o tempo da transferência do arquivo;
  3. Nos pacotes capturados, identifiquw a abertura e encerramento de conexão;
  4. Verifique os números de sequência e reconhecimento TCP nas trocas de pacotes realizadas;
  5. Verifique o tamanho original do arquivo e o número de pacotes com que o mesmo foi fragmentado.
  6. Verifique se o número de pacotes trocados é compatível com o MSS estabelecido para a conexão TCP.

--Evandro.cantu (discussão) 15h25min de 16 de abril de 2015 (BRT)