Used in TCP for connection-oriented communication. Can be used to find which ports are open

SYN

The client sends a synchronization packet. This includes the sequence number of its next packet

SYN-ACK

The server responds with and acknowledgement packet signifying the next expected packet the server wants

ACK

The client responds with the acknowledgement packet to confirm this is the correct packet. Then, a two way connection is formed.

NACK

If the server does not recieve an ACK within a given timeframe, or recieves a NACK then this means there is an error in the expected headers.