Reinicié el enrutador WiFi de la oficina y, como era de esperar, mi computadora portátil se desconecta. Una vez que me vuelvo a conectar, noto que mi sesión SSH nunca se interrumpió.
¿Qué pasa con el protocolo SSH que hace esto posible? ¿O esto tiene más que ver con TCP/IP?
Respuesta1
SSH de forma predeterminada tiene tiempos de espera bastante largos, el tiempo de espera predeterminado de TCP y los tiempos de espera de TCP predeterminados son largos.
Cualquier forma de keepalive en realidad haría que se interrumpiera la conexión antes, porque cuando el cliente/servidor viera que los keepalives no llegan al objetivo, se interrumpiría la conexión.
Entonces, mientras su IP permanezca igual, la conexión SSH puede persistir durante mucho tiempo, si no hay nada "pasando" para llenar los buffers de envío/recepción.
Respuesta2
Yo diría que es TCP. Siempre que la dirección sea la misma, cualquier cosa que se haya enviado mientras la red estaba inactiva se habría tratado como un paquete descartado y se habría reenviado. Siempre y cuando la red no haya estado inactiva por mucho tiempo, el cliente y el servidor se pondrán al día con las cosas perdidas. Si no se envió nada desde ninguno de los extremos mientras la red estaba caída, ni el cliente ni el servidor sabrían siquiera que había habido un problema.
Sin embargo, en el último caso, cualquier protocolo en una red de conmutación de paquetes se habría comportado exactamente igual, por lo que decir que se debe a SSH o a TCP no es una respuesta completa.