Назад | Перейти на главную страницу

Что делает SSH таким устойчивым к проблемам с подключением?

Я перезагрузил офисный WiFi-роутер, и, как и ожидалось, мой ноутбук отключился. После повторного подключения я замечаю, что мой сеанс SSH никогда не прерывается.

Что в протоколе SSH делает это возможным? Или это больше связано с TCP / IP?

Я бы сказал, что это ПТС. Пока адрес остается тем же, все, что было отправлено, когда сеть была отключена, будет рассматриваться как потерянный пакет и повторно отправлено. Пока сеть не выходила из строя слишком долго, клиент и сервер наверстают упущенное. Если вообще ничего не было отправлено с обоих концов, пока сеть не работает, то ни клиент, ни сервер даже не узнают о проблеме.

Однако в последнем случае любой протокол в сети с коммутацией пакетов вел бы себя точно так же, поэтому утверждение, что это из-за SSH или из-за TCP, не является полным ответом.

SSH по умолчанию имеет довольно длительные тайм-ауты, по умолчанию тайм-аут TCP и таймаут TCP по умолчанию длинные.

Любая форма поддержки активности фактически заставит его разорвать соединение раньше, потому что, когда клиент / сервер увидит, что пакеты поддержки активности не достигают цели, он разорвет соединение.

Таким образом, пока ваш IP-адрес остается неизменным, SSH-соединение может сохраняться в течение очень долгого времени, если ничего не «происходит» для заполнения буферов отправки / получения