Для чого SSH використовує UDP?


41

Wile, роблячи дослідження, я помітив, що SSH використовує TCP і UDP. Я повністю розумію використання TCP, але UDP здається трохи дивним. Чому я б використовував "ненадійний" транспортний протокол з мінімальним рукостисканням для безпечного доступу до оболонки?

Єдине використання, яке я можу придумати, - це SCP, тому (велика) передача файлів. Але знову ж таки, чи не стане TCP кориснішим через рукостискання?

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


EDIT

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


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

1
Що ж, Wikipedia розповідає стільки ж 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

Ага. Не очікував цього. Ну, напишіть це як відповідь, ви заслуговуєте на деякі моменти.
alex

Відповіді:


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-агент або тунелювання віддалено або локально, ви помітите, що UDP інкапсульований у сегментах TCP.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.