Resumo

  • O silêncio se aplica à perda da memória dos números de sequência, não a toda reinicialização.
  • A RFC 793 definiu um intervalo de silêncio de um MSL para os segmentos antigos saírem da rede.
  • A RFC 9293 preserva a proteção, mas considera improvável a combinação de condições perigosas.
  • Manter estado e usar PAWS são controles diferentes.

Quando o host reinicia, mas a rede não

Uma falha pode apagar o estado volátil do TCP enquanto segmentos anteriores continuam em filas, caminhos ou receptores. Se os mesmos endereços e portas forem reutilizados, um segmento antigo pode parecer novo; no sentido inverso, dados novos podem ser rejeitados como uma duplicata antiga. Dados, SYN e FIN ocupam um espaço de sequência finito, que pode se sobrepor ao de uma conexão posterior.

O silêncio como substituto da memória

A RFC 793 determinou que um TCP que perdesse os números usados em conexões ativas permanecesse em silêncio durante um tempo máximo de vida de um segmento (MSL). Dois minutos eram uma escolha de engenharia, não uma medição universal. O intervalo não estima RTT nem controla retransmissões; ele deixa a antiga marca temporal e de sequência desaparecer.

A condição é essencial. Se o sistema preservou os números recentes, pode transmitir sem esperar, desde que use números posteriores aos já consumidos. Depois de o host permanecer ativo por um MSL, o intervalo relevante também já transcorreu.

A regra atual, com uma ressalva

A RFC 9293 mantém a espera de pelo menos um MSL após a perda da memória de sequência. Também explica por que o problema costuma ser desprezível hoje: ISNs e portas efêmeras são aleatorizados, o MSL efetivo diminuiu com redes mais rápidas e reinicializações frequentemente duram mais que um MSL.

Isso não elimina a lógica de segurança. A aleatoriedade reduz a chance de colisão, mas não é memória histórica. Em altas velocidades, timestamps TCP e PAWS oferecem outra defesa, visível ao receptor, contra duplicatas antigas quando o espaço de 32 bits gira rapidamente.

Fontes