It's called 3-way handshake, so it is transmitted three times: SYN -> SYN/ACK -> ACK. The minimum time required is <del>two</del> 1.5 times the round-trip time (RTT). (Each side sees a 1x RTT delay for the handshake to happen while the server is one transmission delay / .5 RTT behind the client - assuming equal transmission delay for both directions.) In your capture, the only transmission time is between SYN and SYN/ACK. The successive ACK is the reaction to the received SYN/ACK. The socket is established on this side and the local node fires away with GET. On the listener (server) side, this would look like 1. SYN received 2. very small delay (local stack overhead) 3. SYN/ACK sent 4. longer delay (RTT + remote stack overhead) 5. final ACK is received 6. very small delay (remote stack & application overhead) 7. GET is received