Como fazer manualmente um handshake TCP

4

O Telnet pode ser usado para fazer manualmente coisas que os programas fazem automaticamente. Quando me conecto a um servidor, percebi que ele faz automaticamente o handshake de três vias para estabelecer uma conexão TCP. Pode ser feito manualmente no telnet? Se não, então que programa pode fazer isso?

    
por tony_sid 07.04.2011 / 06:23

2 respostas

8

Se por "manualmente" você quer dizer "instrua telnet a enviar pacotes SYN e ACK", então não. Isso é feito pelo sistema operacional, que precisa manter o controle de todos os parâmetros TCP para uma conexão - números de seqüência, tamanho da janela, etc.

seria possível para um programa usar soquetes IP brutos e gerenciar a camada TCP por si só. Mas geralmente é uma coisa incrivelmente inútil - copiará muito código do kernel.

Se você está tentando aprender como o TCP funciona, tente Scapy . Ele pode criar e enviar pacotes usando determinados parâmetros, incluindo o TCP. (Você provavelmente terá que usar um sniffer de pacotes para assistir a coisas como SYN + ACK).

    
por 07.04.2011 / 06:36
1

O livro "TCP / IP Illustrated, Volume 1" de Stevens explica o que acontece na criação e uso de uma conexão TCP. Sim, tem sido em torno de um tempo ((c) 1994), mas às vezes as explicações dadas quando uma tecnologia é nova têm mais profundidade do que qualquer coisa que vem depois.

Para ver os detalhes do que está acontecendo na transmissão, uma cópia do Wireshark ( link ) é o que você precisa. Quando você entende como um cabeçalho e uma mensagem são estruturados e empacotados, o wireshark mostra a estrutura e você pode detalhar os campos de bits.

    
por 19.06.2012 / 03:51