Задать вопрос
@Tipch

Что значит ssh работает поверх tcp?

При углублении в принципы работы ssh столкнулся с формулировкой "SSH обычно работает поверх TCP, так что обычно после того, как налажено соединение TCP". Но при попытке понять значит ли это что пакет ssh инкапсулируется в tcp-пакет везде встречаюсь именно с этой формулировкой - SSH работает поверх TCP. Что это значит? Что почитать чтобы прояснить этот вопрос?
  • Вопрос задан
  • 176 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Администрирование ОС Linux
    3 месяца
    Далее
  • Merion Academy
    Онлайн-курс по Linux
    2 месяца
    Далее
  • Stepik
    Основы работы в консоли Linux, настройка сетевых служб (кластер)
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 2
CityCat4
@CityCat4
Жил да был черный кот за углом...
Но при попытке понять значит ли это что пакет ssh инкапсулируется в tcp-пакет

Разумеется значит. А пакет TCP инкапсулируется в пакет IP. А пакет IP инкапсулируется в пакет Ethernet (или другой среды передачи) И уже этот пакет передается по сети.

Все в полном соответствии с моделью ISO/OSI. В случае ssh даже ISO6 задействуется, который обычно пропускают.
Ответ написан
Комментировать
@rPman
Так как я сам пользуюсь такой формулировкой, поясню что именно я вкладываю в нее.

ssh позволяет внутри открытого соединения (оно одно на сессию и двунаправленное, если это важно), поднимать несколько каналов обмена информации, например собственно терминал (т.е. stdin/stdout удаленной сессии), перенаправления портов (ключи -R или -L), socks прокси (ключ -Dip:port ) и даже полноценный vpn туннель (ключ -w 0:0 ) причем как point-to-point так и ethernet (т.е. симуляция физического интерфейса) - tun и tap в терминологии linux, и все это одновременно.

Но все это великолепие будет упаковано в одно единственное соединение tcp. А у tcp есть одно достоинство/недостаток/фича - оно гарантирует порядок доставки отправленных пакетов, т.е. пока N-ый пакет не дойдет до адресата, N+1-ый пакет будет ждать и не дойдет до приложения, хотя физически он в принципе может уже быть на удаленной машине. Т.е. если у вас открыто (инкапсулировано) несколько соединений внутри одной ssh сессии, и у вашего провайдера (или точнее у провайдера на пути до ssh сервера) возникнет проблема/потеря пакета, то все ваши инкапсулированные соединения приостановятся и будут ждать, даже если задержанный пакет принадлежал конкретному соединению, ждать будут все.

Т.е. поднимать vpn с помощью ssh может быть удобно и просто, но отзывчивость результата будет не на высоте, особенно если у вас не очень качественная связь.

p.s. гуглятся форки ssh, поддерживающие udp (который не гарантирует порядок и в принципе доставку пакетов), но на сколько они 'правильно' реализованы я хз.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы