Why is it 3-way-handshake and not more?
Example: If a client wants to talk to a server, it just tells the server that it wants to establish a connection, then the server confirms. People say that the third step's there so as to let the server knows it can sends data to the client successfully. However, I think the server can implement something like time-out. If the client takes too long to respond, the server can go ahead to: 1. re-send that segment or 2. terminate the connection
So, do we really need the third step? So much overhead in my opinion.