Skip to main content
protocols

Handshake

A handshake is the initial exchange of messages between two parties to establish a connection, agree on parameters, and authenticate before data transfer begins. TCP uses a 3-way handshake (SYN/SYN-ACK/ACK). TLS uses its own handshake on top of TCP. QUIC integrates both into a single handshake.

Definition

Handshakes establish shared state before communication can begin. The TCP 3-way handshake synchronizes sequence numbers and confirms bidirectional connectivity. The TLS handshake negotiates cipher suites, authenticates the server (and optionally the client), and establishes session keys. Every handshake consumes at least 1 RTT, which is why reducing handshake count is a primary goal of protocol optimization. QUIC's innovation was combining the transport and cryptographic handshake into a single 1-RTT exchange.

Examples

  • TCP: Client → SYN, Server → SYN-ACK, Client → ACK (1 RTT)
  • TLS 1.3: ClientHello → ServerHello+Finished → Finished (1 RTT)
  • QUIC: Initial → Handshake Done (1 RTT)

Related Protocols

Related Terms