Independentemente do mecanismo de keep alive ativado ou desativado em ambos os lados: Uma conexão nunca irá de TIME_WAIT para ESTABLISHED. TIME_WAIT é o estado de um par de soquetes de uma conexão recentemente fechada que está temporariamente fora de uso.
Uma conexão entra no estado TIME_WAIT depois que o terminal local iniciou com êxito o cancelamento da conexão ("active CLOSE") e recebeu o sinal do terminal remoto que também deseja fechar a conexão. Em seguida, o sistema operacional mantém o par de soquetes, aguardando dois MSL antes de liberá-lo para outra conexão nova. Isso garante que nenhum segmento da conexão antiga interfira em qualquer conexão recém-criada que reutilize o par de soquetes da conexão antiga.
Isso realmente funciona? Por que é suficiente que somente o par de soquetes da extremidade de fechamento ativo entre TIME_WAIT? Porque a reutilização de pares de soquetes em uma extremidade implica a reutilização de pares de soquetes na outra extremidade. E se o encerramento ativo ocorrer e falhar novamente dentro de dois MSLs? Em seguida, ele entrará no tempo de espera , durante o qual não está criando nenhuma conexão.