Laboratório: Comparativo TCP e UDP utilizando nc e tcpdump
De Wiki Cursos IFPR Foz
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 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.
- No computador receptor execute o netcat que criará um soquete de escuta TCP em uma porta especificada, por exemplo, 5555:
- 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 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.
- No computador receptor execute o netcat que criará um soquete de escuta UDP em uma porta especificada, por exemplo, 5555:
- Depois de testada a comunicação, encerrar a mesma com CTRL-C.
- 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
- Verifique a abertura de conexão TCP;
- Verifique a ausência de conexão TCP;
- Verifique os números de sequência e reconhecimento TCP nas trocas de pacotes realizadas;
- Verifique o encerramento de conexão TCP quando um dos host derruba a conexão com CTRL-C.
- Transferência de um arquivo grande com TCP
- Escolha um arquivo grande para transferência, de 100 a 500 kBytes;
- 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 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 < arquivoGrande
- 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
- No computador receptor execute o netcat que criará um soquete de escuta TCP em uma porta especificada, por exemplo, 5555:
- 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 dos pacotes capturados
- Identificar a abertura e encerramento de conexão;
- Verifique os números de sequência e reconhecimento TCP nas trocas de pacotes realizadas;
- Verifique o tamanho original do arquivo e o número de pacotes com que o mesmo foi fragmentado.
--Evandro.cantu (discussão) 15h25min de 16 de abril de 2015 (BRT)