O Estabelecimento de Conexão é o processo pelo qual dois hosts (cliente e servidor) concordam em iniciar uma comunicação confiável, sincronizam seus números de sequência (ISN) e negociam os parâmetros da sessão.

1. O Three-Way Handshake (Aperto de Mão de Três Vias)

O processo de estabelecimento ocorre em exatas três etapas:

Passo 1: SYN (Sincronização)

  • O cliente escolhe um Número de Sequência Inicial (ISN) aleatório (ex: 1000).
  • Envia um segmento com a flag SYN ligada.
  • O segmento não contém dados.

Passo 2: SYN-ACK (Sincronização e Confirmação)

  • O servidor recebe o pedido e também escolhe seu próprio ISN (ex: 5000).
  • Envia um segmento com as flags SYN e ACK ligadas.
  • O campo de Confirmação (ACK) será o ISN do cliente + 1 (ex: 1001).
  • O servidor agora está em estado de “Conexão Meio Aberta” (Half-Open).

Passo 3: ACK (Confirmação)

  • O cliente recebe o SYN-ACK.
  • Envia um segmento apenas com a flag ACK ligada.
  • O campo de Confirmação será o ISN do servidor + 1 (ex: 5001).
  • O campo de Sequência será 1001.

A partir deste momento, a conexão é estabelecida e os dois hosts podem começar a enviar dados.


2. Pós-Conexão e Parâmetros

Durante o Handshake, outras informações vitais são trocadas:
- MSS: O tamanho máximo do segmento que cada lado aceita.
- Window Scale: Fator de ampliação da janela de recepção.
- SACK Permitted: Se ambos suportam confirmações seletivas.

3. Segurança no Handshake

O processo de handshakes é alvo de um dos ataques de negação de serviço mais famosos: o SYN Flood.
- Um atacante envia milhares de mensagens SYN sem nunca enviar o ACK final (Passo 3).
- O servidor fica com a “Tabela de Conexões” cheia aguardando conexões que nunca se completam, impedindo usuários legítimos de se conectarem.


[!TIP]
Em ferramentas como o Nmap, o comando -sS (Stealth Scan) utiliza apenas os dois primeiros passos do handshake. O Nmap envia o SYN, espera o SYN-ACK (que indica que a porta está aberta) e então responde com um RST (Reset) em vez de um ACK, evitando completar a conexão e aparecer nos logs da aplicação.