Resumo
- Uma conexão TCP é semiaberta quando um lado perde ou descarta seu estado sem que o outro saiba.
- Se o lado sobrevivente envia dados, o lado sem estado responde com RST e a conexão antiga é abortada.
- Depois de reiniciar, um SYN novo pode encontrar a história antiga mantida pelo outro lado; o ACK incompatível leva a outro RST.
- O RST não recupera dados nem recria a conexão: ele remove o estado obsoleto para que uma nova negociação em três vias comece.
Uma conexão sustentada por duas memórias
Cada ponta do TCP guarda números de sequência, confirmações, janelas e uma posição na máquina de estados. A conexão só permanece compartilhada enquanto essas duas histórias forem compatíveis.
RFC 793 e RFC 9293 descrevem como semiaberta a conexão que um lado fechou ou abortou sem avisar o outro, ou que se tornou dessincronizada depois de uma falha ou reinicialização. Isso não é um semifechamento normal. Um FIN encerra deliberadamente uma direção e mantém a outra disponível; a conexão semiaberta resulta de uma divergência acidental de estado.
Quando o sobrevivente envia primeiro
Se B ainda acredita estar em ESTABLISHED e envia dados, A, que reiniciou e está em CLOSED, não encontra uma conexão correspondente. Trata o segmento como pertencente a nenhuma conexão e devolve RST. B aceita o reset e abandona seu estado obsoleto.
O RST não informa quais dados A processou antes da falha nem se uma operação da aplicação terminou. Apenas mostra que A não pode continuar participando da história que B conserva.
Quando o lado esquecido volta a abrir
A pode enviar um SYN novo após reiniciar. B ainda mantém a conexão antiga e vê o SYN fora da janela de recepção associada àquele estado. Responde com um ACK que indica o número de sequência esperado. Como A está dessincronizado, percebe que o ACK não confirma nada de sua nova tentativa e envia RST. B remove o estado antigo, e A pode continuar com uma negociação comum em três vias.
O TCP não combina as histórias. Encerra aquela que já não pode ser compartilhada.
O limite do transporte
O RST torna explícito o conflito de transporte, mas não restaura bytes perdidos, autenticação, sessão ou transações. A recuperação cabe aos protocolos e às aplicações superiores. Esses exemplos também não são uma política obrigatória de keepalive, um fechamento por FIN ou as regras de challenge-ACK do RFC 5961.
Fontes
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
