In the real world, a handshake is a customary greeting between two people. Similarly, a computer handshake serves as a greeting between two computer systems. It is commonly used to initialize a network connection between two hosts.

A computer handshake may be completed between any two systems that communicate with each other on the same protocol. The two systems may be a client and server or simply two computers on a P2P network. The handshake confirms the identities of the connecting systems and allows additional communication to take place.

Handshaking over a network is commonly called a 3-Way Handshake or "SYN-SYN-ACK." A successful handshake involves seven steps:

  1. Host A sends a synchronize (SYN) packet to Host B.
  2. Host B receives Host A's SYN request.
  3. Host B sends a synchronize acknowledgement (SYN-ACK) message to Host A.
  4. Host A receive's Host B's SYN-ACK message.
  5. Host A sends an acknowledge (ACK) message to to Host B.
  6. Host B receives Host A's ACK message.
  7. The connection between the two systems is established.

When a system initiates a handshake, there are three possible outcomes:

  1. No response – If the system receiving the handshake is not available or does not support the protocol the initiating system uses, it may not respond to the request.
  2. Connection refused – The system receiving the handshake is available and understands the request, but denies the connection.
  3. Connection accepted – The system receiving the handshake is available, receives the request, and accepts the connection.

The third outcome listed above is the only the one in which the handshake is completed. If a handshake is successful, the two systems can begin communicating and transferring (data) over the established protocol. Examples of protocols that use handshaking include TCP, TLS, and SSL.

Updated October 22, 2015 by Per C.

quizTest Your Knowledge

A universally unique identifier (UUID) is how many bits?

Correct! Incorrect!     View the UUID definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of Handshake on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.