O mecanismo de handshaking usado no TCP é projetado para que dois hosts, tentando se comunicar, possam negociar os parâmetros da conexão de rede antes de iniciar a comunicação. Ambos os lados podem assumir que o outro computador está pronto e começar a enviar dados de forma confiável.
Aqui está um diagrama simplificado dos pacotes enviados em ambos os lados durante o aperto de mão:
SYN -> SYN received Host A <- SYN ACK Host B SYN ACK received ACK -> ACK received TCP connection is established
As mensagens SYN (sincronizar) e ACK (confirmar) são especificadas por um bit / número dentro do cabeçalho TCP do segmento.
O processo também é projetado para que ambas as extremidades possam iniciar e negociar conexões separadas ao mesmo tempo.
Para terminar uma conexão entre dois computadores, outra comunicação de 3 vias é executada para derrubar a conexão TCP. O início e desmontagem de uma conexão TCP é parte do que faz do TCP um protocolo confiável.
Veja também: Qual é a diferença entre o UDP e o TCP?