SSH使用UDP做什么?


40

在进行研究时,我注意到SSH都使用TCP和UDP。我完全理解TCP的用法,但是UDP似乎有点奇怪。我为什么要使用“握手”传输协议,并且握手最少,才能安全地访问外壳?

我能想到的唯一用途是用于SCP,因此(大)文件传输。但是,由于握手的原因,TCP不会更有用吗?

实际上,我只考虑为SSH打开TCP,但不知道这样做的影响是非常有害的。


编辑

事实证明,不仅存在关于基于SSH的ssh的论文,而且还存在一个成熟的ssh实现,称为mosh。但是,经典ssh仍仅使用TCP(如其RFC中所指定)。


2
为什么您认为SSH使用UDP?我尝试了从Windows到Unix以及从Unix到Unix的多个SSH连接,但在端口22上没有单个UDP数据包。服务器也仅侦听TCP。
mtak

1
好吧,Wikipedia告诉了很多en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers而且,网络上的用户似乎通过ssh-udp组合传递了一些信息,但是不清楚他们为什么使用UDP而不使用TCP。因此,我的问题。
alex 2014年

在这个论文,他们试图执行UDP的SSH传输,但他们也提到,默认情况下只使用TCP“ OpenSSH的始终是其所有的网络连接,因此使用TCP进行VPN功能”。Wikipedia页面可能会说它是UDP,因为SSH开发人员最初请求UDP和TCP分配,但是相关的RFC没有提及它。但我必须同意,这是一个有趣的问题。
mtak 2014年

嗯 没想到。好吧,写下来作为答案,您应该得到一些要点。
Alex

Answers:


43

我尝试了从Windows到Unix以及从Unix到Unix的多个SSH连接,但在端口22上没有单个UDP数据包。服务器也仅侦听TCP。

在这个论文,他们试图执行UDP的SSH传输,但他们也提到,默认情况下只使用TCP“ OpenSSH的始终是其所有的网络连接,因此使用TCP进行VPN功能”。Wikipedia页面可能会说它是UDP,因为SSH开发人员最初请求UDP和TCP分配,但是相关的RFC没有提及它。


5

... SSH协议使用或已经使用22 / UDP通过TCP进行隧道控制。如果通过Wireshark正确解码,并且您通过ssh-agent通过隧道建立连接,或者通过远程或本地隧道建立连接,则您会注意到UDP封装在TCP段中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.