How to manually do a TCP handshake

4

2

Telnet can be used to manually do things that programs do automatically. When I connect to a server I noticed that it automatically does the 3-way handshake to establish a TCP connection. Can it be done manually in telnet? If not, then what program can do it?

tony_sid

Posted 2011-04-07T04:23:21.230

Reputation: 11 651

You can use with nmap -sS family instead of scapy, scapy has been used for writing exploit. – PersianGulf – 2016-01-19T07:59:28.037

Could you explain why this is needed? – user1686 – 2011-04-07T04:47:56.320

I'm learning about TCP/IP and there is a server that has been set up that I can experiment with. – tony_sid – 2011-04-07T05:27:35.707

Answers

8

If by "manually" you mean "instruct telnet to send SYN and ACK packets", then no. This is done by the operating system, which needs to keep track of all TCP parameters for a connection – sequence numbers, window size, etc.

It would be possible for a program to use raw IP sockets and manage the TCP layer all by itself. But it's generally an incredibly pointless thing to do – it would copy a lot of code from kernel.

If you are trying to learn how TCP works, try Scapy. It can create and send packets using given parameters, including TCP. (You'll probably have to use a packet sniffer to watch for such things as SYN+ACK though.)

user1686

Posted 2011-04-07T04:23:21.230

Reputation: 283 655

1

The book "TCP/IP Illustrated, Volume 1" by Stevens explains what goes on in creating and using a TCP connection. Yes, it has been around a while ( (c) 1994 ) but sometimes the explanations given when a technology is new have more depth than anything that comes after.

To see the details of what is happening on the wire a copy of Wireshark (http://www.wireshark.org) is what you need. When you understand how a header and message are structured and packed wireshark shows you the structure and you can drill down to the bit fields.

verisimilidude

Posted 2011-04-07T04:23:21.230

Reputation: 51