Для чего SSH использует UDP?


41

Когда я проводил исследования, я заметил, что SSH использует TCP и UDP. Я полностью понимаю использование TCP, но UDP кажется немного странным. Зачем мне использовать «ненадежный» транспортный протокол с минимальным подтверждением связи для безопасного доступа к оболочке?

Единственное использование, которое я могу придумать, это SCP, поэтому (большая) передача файлов. Но опять же, не будет ли TCP более полезным из-за рукопожатия?

На самом деле, я рассматриваю только открытие протокола TCP для SSH, но не знаю, какие последствия это может иметь пагубные последствия.


РЕДАКТИРОВАТЬ

Оказывается, есть не только тезис о ssh через UDP, но и полноценная ssh-реализация, называемая mosh . Однако классический ssh ​​все еще использует только TCP, как указано в его RFC .


2
Как вы думаете, почему SSH использует UDP? Я пробовал это с несколькими SSH-соединениями из Windows в Unix и Unix в Unix, и я не получаю ни одного UDP-пакета на порту 22. Также сервер слушает только TCP.
mtak

1
Ну, Википедия рассказывает столько же. En.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Кроме того, пользователи в Интернете, похоже, туннелируют некоторые вещи через комбо ssh-udp, но просто неясно, почему они используют UDP, а не TCP. Отсюда и мой вопрос.
Alex

В этом тезисе они попытались реализовать UDP для транспорта SSH, но также отметили, что по умолчанию используется только TCP: «. OpenSSH последовательно использует TCP для всех своих сетевых подключений и, следовательно, для своей функции VPN». На странице Википедии может быть сказано, что это UDP, потому что разработчики SSH сделали первоначальный запрос на назначения UDP и TCP, но соответствующий RFC не упоминает об этом. Но я должен согласиться, интересный вопрос.
mtak

Да. Не ожидал этого. Ну, запиши это как ответ, ты заслуживаешь некоторых баллов.
Алекс

Ответы:


44

Я пробовал это с несколькими SSH-соединениями из Windows в Unix и Unix в Unix, и я не получаю ни одного UDP-пакета на порту 22. Также сервер слушает только TCP.

В этом тезисе они попытались реализовать UDP для транспорта SSH, но также отметили, что по умолчанию используется только TCP: «. OpenSSH последовательно использует TCP для всех своих сетевых подключений и, следовательно, для своей функции VPN». На странице Википедии может быть сказано, что это UDP, потому что разработчики SSH сделали первоначальный запрос на назначения UDP и TCP, но соответствующий RFC не упоминает об этом.


5

... Протокол SSH использует или использовал 22 / UDP для управления туннелированием через TCP. Если правильно декодировать через Wireshark и вы туннелируете соединение через ssh-agent или туннелируете удаленно или локально, вы заметите, что UDP инкапсулирован в сегментах TCP.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.