Parece que TcpMaxDataRetransmissions
(REG_DWORD) afeta diretamente isso. O valor pode ser adicionado a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
com regedit.exe
(a chave está ausente por padrão, portanto, primeiro é necessário adicioná-lo para alterá-lo). Quando não definido - é 5. Adicione-o e defina-o pelo menos para f
(15) e reinicie.
O valor padrão de 5 parece bastante inadequado para manter conexões durante interrupções de rede breves e temporárias; você teria um tempo limite em questão de alguns segundos. Eu adicionei essa chave TcpMaxDataRetransmissions
ao registro e defini seu valor como f
(15), reinicializei a máquina e depois de fazer sysctl net.inet.ip.forwarding=0
no roteador antes de digitar um personagem em PuTTY, tenho o personagem ecoou de volta para mim depois de ativar o encaminhamento no meu roteador depois de esperar 5 minutos (eu testei para determinar que um valor de 0x0000000c (12) faz a conexão quebrar exatamente 7 minutos após a primeira tentativa de enviando um pacote durante uma interrupção). Antes da reinicialização, o PuTTY encerraria a conexão dentro de alguns segundos imediatamente. Note que a reinicialização foi necessária - pelo menos no Windows 7 Professional, o simplesmente alterando o registro não afeta nem as conexões existentes nem as novas ! Nada nunca muda no Windows!
Ainda nele, também pode adicionar e definir KeepAliveInterval
a 60000
decimal (60 seg.) do valor padrão não definido de 1000
(1 seg.), mas não deve ter nenhum efeito no meu caso específico como acima, uma vez que os keepalives TCP não estavam habilitados.