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
  1. Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  2. A primeira transferência será feita usando o protocolo TCP da seguinte forma:
    • 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.
  3. Depois de testada a conexão, encerrar a mesma com CTRL-C.
  4. Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  5. Relançar a conexão TCP com netcat e analisar os pacotes capturados pelo tcpdump.
Comunicação UDP
  1. Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  2. Esta transferência será feita usando o protocolo UDP da seguinte forma:
    • 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.
  3. Depois de testada a comunicação, encerrar a mesma com CTRL-C.
  4. Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  5. 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
  1. Escolha um arquivo para transferência;
  2. Verificar o endereço IP que está sendo utilizado pela máquina remota que será utilizada para comunicação com o comando ifconfig.
  3. A transferência será feita usando o protocolo TCP da seguinte forma:
    • No computador receptor execute o netcat que criará um soquete de escuta TCP em uma porta especificada, por exemplo, 5555:
      nc -l 5555 < arquivo
    • 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 > arquivoTCP
  4. O comando enviará o arquivo usando conexão TCP, ao fim da transmissão a conexão é encerrada.
  5. O comando time no antes do nc permite visualizar o tempo da transmissão.
  6. Preparar, em outro terminal, um comando tcpdump para capturar pacotes na porta 5555.
  7. Relançar a conexão TCP com netcat e capturar os pacotes com o tcpdump.
Análise dos pacotes capturados
  1. Identificar a abertura e encerramento de conexão;
  2. Verifique os números de sequência e reconhecimento TCP nas trocas de pacotes realizadas;
  3. Verifique o tamanho original do arquivo e o número de pacotes com que o mesmo foi fragmentado.
  4. Verifique se o número de pacotes trocados é compatível com o MSS estabelecido para a conexão TCP.
Use o aplicativo NetCat (nc) para fazer transferências UDP e responda
  1. Qual o procedimento no lado transmissor e receptor?
  2. Consegue-se medir o tempo de maneira automática?
  3. Por que os processos não param ao final da transferência?

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


Captura de pacotes de abertura e encerramento de conexão