Untuk apa SSH menggunakan UDP?

41

Saat melakukan penelitian saya perhatikan bahwa SSH keduanya menggunakan TCP dan UDP. Saya benar-benar mengerti penggunaan TCP, tetapi UDP agak aneh. Mengapa saya menggunakan protokol transport "tidak dapat diandalkan" dengan jabat tangan minimal untuk akses shell yang aman?

Satu-satunya penggunaan yang dapat saya pikirkan adalah untuk SCP, jadi (besar) pengiriman file. Tetapi sekali lagi, bukankah TCP akan lebih berguna karena hal-hal yang berkaitan dengan handshaking?

Bahkan, saya mempertimbangkan hanya membuka TCP untuk SSH, tetapi tidak mengetahui implikasi dari itu akan sangat merugikan.


EDIT

Ternyata tidak hanya tesis tentang ssh atas UDP, tetapi juga implementasi ssh sepenuhnya, yang disebut mosh . Namun, ssh klasik masih hanya menggunakan TCP, sebagaimana ditentukan dalam RFC -nya .

alex
sumber
2
Menurut Anda mengapa SSH menggunakan UDP? Saya mencobanya dengan beberapa koneksi SSH dari Windows ke Unix dan Unix ke Unix dan saya tidak mendapatkan paket UDP tunggal pada port 22. Juga server hanya mendengarkan TCP.
mtak
1
Yah, Wikipedia memberi tahu sebanyak en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_number Juga, pengguna di web tampaknya melakukan tunnel beberapa hal melalui kombo ssh-udp, tetapi tidak jelas mengapa mereka menggunakan UDP dan bukan TCP. Karena itu pertanyaanku.
alex
Dalam tesis ini mereka mencoba mengimplementasikan UDP untuk transport SSH, tetapi mereka juga menyebutkan bahwa default hanya menggunakan TCP: ". OpenSSH menggunakan TCP secara konsisten untuk semua koneksi jaringannya dan dengan demikian untuk fitur VPN-nya." Halaman Wikipedia mungkin mengatakan itu UDP karena pengembang SSH membuat permintaan awal untuk penugasan UDP & TCP, tetapi RFC terkait tidak menyebutkannya. Tapi saya harus setuju, pertanyaan yang menarik.
mtak
Hah. Tidak mengharapkan itu. Nah, tulis itu sebagai jawaban, Anda pantas mendapatkan beberapa poin.
alex

Jawaban:

44

Saya mencobanya dengan beberapa koneksi SSH dari Windows ke Unix dan Unix ke Unix dan saya tidak mendapatkan paket UDP tunggal pada port 22. Juga server hanya mendengarkan TCP.

Dalam tesis ini mereka mencoba mengimplementasikan UDP untuk transport SSH, tetapi mereka juga menyebutkan bahwa default hanya menggunakan TCP: ". OpenSSH menggunakan TCP secara konsisten untuk semua koneksi jaringannya dan dengan demikian untuk fitur VPN-nya." Halaman Wikipedia mungkin mengatakan itu UDP karena pengembang SSH membuat permintaan awal untuk penugasan UDP & TCP, tetapi RFC terkait tidak menyebutkannya.

mtak
sumber
5

... Protokol SSH menggunakan atau telah menggunakan 22 / UDP untuk kontrol tunneling melalui TCP. Jika didekodekan dengan benar melalui Wireshark dan Anda sedang melakukan tunneling koneksi melalui ssh-agent atau tunneling dari jarak jauh atau secara lokal, Anda akan melihat bahwa UDP dienkapsulasi dalam segmen TCP.

Pengguna Root
sumber