Resumo

  • O cookie TCP Fast Open é evidência criada pelo servidor e ligada ao contexto do IP de origem; não é credencial de usuário nem ID de solicitação.
  • TFO válido pode entregar os dados do SYN à aplicação antes do fim do handshake, mantendo o raro risco de entrega duplicada descrito na RFC 7413.
  • Um registro de execução deve juntar sequências de transporte, principal autenticado, identidade da solicitação, deduplicação, commit e resposta.

O caminho rápido terminou antes do resultado

Um cliente envia uma reserva no SYN com cookie em cache. O servidor valida o cookie, armazena os dados, notifica a aplicação e confirma SYN e dados. A resposta útil não chega, e o cliente envia novamente a mesma solicitação lógica após o fallback.

O cookie não diz se a segunda chegada repete a primeira. O ACK TCP também não informa que o commit terminou, que a autorização passou ou que a resposta chegou. O transporte pode estar correto enquanto o efeito de negócio permanece incerto.

O que o cookie autentica

A RFC 7413 define um valor opaco gerado pelo servidor. Sua construção prevista autentica o endereço IP de origem do SYN e impede fabricação pelo cliente. O servidor pode aceitar mais de um cookie, incluir informação própria e fazê-lo expirar a qualquer momento.

Isso reduz ataques com origem falsificada; não autentica uma pessoa. Um IP pode ser compartilhado, traduzido ou reatribuído. Cookie válido significa que o servidor aceita aquele contexto IP para Fast Open segundo a política atual, não que conhece o autor do payload.

A aplicação habilita TFO explicitamente por porta de serviço. O listener pode desativá-lo ou parar novas admissões quando o limite pendente é atingido. Validade do cookie, admissão e autorização são decisões distintas.

Dados aceitos, descartados ou retransmitidos

Com cookie válido, o servidor pode entregar os dados do SYN à aplicação e confirmá-los. Com cookie inválido ou TFO indisponível, descarta os dados e confirma apenas o SYN; o cliente retransmite os bytes não confirmados após o handshake.

Intermediários podem descartar SYN com payload ou opções desconhecidas. Depois do timeout, a RFC 7413 recomenda voltar a um SYN comum que não leva dados nem a opção Fast Open. O MSS em cache também importa, pois os dados saem antes do anúncio atual e um excesso exige retransmissão.

Portanto, “TFO foi tentado” esconde três resultados: entrega antecipada, descarte ou reenvio via TCP comum.

O ACK termina no transporte

A RFC 9293 dá número de sequência a cada octeto e define o ACK cumulativo como recepção pelo peer TCP. É evidência de transporte, não prova de autenticação, autorização, gravação durável ou resposta da aplicação.

A RFC 7413 alerta que os dados no SYN podem chegar mais de uma vez à aplicação em situações raras. Operações antecipadas precisam de ID estável, escopo de deduplicação, tratamento atômico e resultado recuperável.

Fontes