SSH接続は、ネットワークの再起動後もどのように維持されますか?

SSH接続は、ネットワークの再起動後もどのように維持されますか?

Linux SSH シェルで、次のように入力して/etc/init.d/network restartネットワークサービスを再起動します。

ネットワークサービスが中断されたため、SSH接続が中断されると予想しました。しかしそれは真実ではない。とても素敵です。しかし、Linuxはこれをどのように達成しますか?サービスの再起動後にSSH接続をどのようにアクティブに保ちますか?

答え1

これを行うために特別なことはしません。ネットワークの再起動時間は、TCP接続がタイムアウトするのに必要な時間より短いため、TCP接続は、単純なネットワークの中断と同様に「中断」にも生き残ることができます。

Windowsが同じことをしない唯一の理由は、ネットワークインターフェイスが失敗したときにWindowsが特別にTCP接続をリセットするためです。 TCPは短いネットワークの中断に耐えるように特別に設計されているので、これは非常に愚かなことです。

答え2

SSHDは接続時に子プロセスを分岐します。 SSHD またはネットワーク全体が再起動した場合、子プロセスは終了しません。これがSSHおよび/またはその構成を更新し、以前のservice sshd restart設定を使用して以前のSSHセッションへの接続を維持できる理由です。それに加えて、sshは小規模なネットワークの中断時にも回復します。

関連情報