【问题标题】:why we need two connections between the ftp server and the ftp client为什么我们需要在 ftp 服务器和 ftp 客户端之间建立两个连接
【发布时间】:2013-09-09 14:41:44
【问题描述】:

根据 FTP 协议(​​rfc 959),当 ftp 客户端连接到 ftp 服务器时,应该在 ftp 客户端和 ftp 服务器之间建立控制连接。而当ftp客户端发送{LIST, RETR, STOR, etc}的请求时,首先要建立客户端和服务器之间的数据连接,在数据连接中传输ftp数据。

所以,我的问题是:为什么我们需要第二个连接——数据连接?为什么不是所有的请求、响应和ftp数据都在控制连接中传输?

【问题讨论】:

  • 请记住,FTP 中的控制/数据拆分可以追溯到 1971 年左右。
  • 好的,看起来它能够为数据连接选择合适的字节大小(例如:在 36 位计算机上)。请参阅:RFC310 和 RFC327。 RFC354 是“现代”FTP 的第一个版本。

标签: ftp


【解决方案1】:

在 1972 年 4 月 14 日至 15 日在 MIT 的数据和文件传输研讨会上做出了在 FTP 中使用单独的控制和数据连接的决定。

RFC310“另一个看数据和文件传输协议”于 4 月 3 日发布,为研讨会做准备。该 RFC 中的一些相关信息:

  • TENEX 系统上使用的 CPYNET 协议关闭了控制连接并打开了一个字节大小可能不同的新连接。字节大小的选择对于某些计算机可能很重要,例如:36 位 PDP-10。
  • TELNET 之上的 Ad-hoc 协议,其中接收进程必须检查每个字节被认为很慢。建议使用单独的连接来避免这种开销。
  • 在数据传输协议(相当于现代 FTP 中的数据连接)中,块模式被认为成本太高,仅提供控制/数据分离和 EOF 指示。同样,建议打开/关闭单独的数据连接作为替代方案(这也允许选择适当的字节大小)。
  • 对于 FTP 的实用性,效率被认为很重要,并且再次建议使用可能不同字节大小的单独连接,并指出关闭连接可能是由于 EOF 指示或错误导致的模棱两可。
  • 为了在 TIP/IMP(终端接口消息处理器)中使用,其中一些没有文件系统,并且有设备侦听特定的套接字,允许将数据发送到指定的套接字被认为很方便。

RFC327:“数据和文件传输研讨会笔记”,于 4 月 27 日发布,简要总结了研讨会中的讨论和做出的决定。文件传输的速度和效率被认为很重要,字节大小和数据格式转换被认为是影响速度和效率的一些最重要的因素。最后,决定使用单独的控制和数据连接。做出了其他决定:控制连接将是 TELNET 连接,控制连接将使用 ASCII 人类可读的命令和响应,并且 DTP(数据传输协议)将不再作为单独的实体存在,并成为在FTP的数据连接。

最后,1972 年 7 月 8 日发布的 RFC354:“文件传输协议”成为 FTP RFC 的第一个化身,具有独立的控制和数据连接。它使用了SOCK 命令,而不是我们熟悉的PORTPASV 命令。

附录

1973 年 8 月 12 日发布的 RFC542“ARPA 网络文件传输协议”中出现了服务器间文件传输(AKA FTP 退回/FXP),并引入了PASV 命令。

最后,1980 年 6 月发布的 RFC765“文件传输协议”被修改为使用 TCP 而不是 NCP,将 SOCK 命令更改为 PORT 命令。

【讨论】:

    【解决方案2】:

    例如,当您有单独的数据连接时,您可以直接在两个 FTP 服务器之间传输文件,而不是通过您的客户端计算机。人们今天不使用此功能,但在过去数据传输速度非常慢时它可能很有用。

    【讨论】:

      【解决方案3】:

      因为这不是 FTP 的工作方式。

      此外,这种安排还有一些好处,包括:

      • 控制连接上无需复杂的成帧。

      • 处理特殊情况(如取消数据连接)更简单。

      • 您可以一次运行多个传输,而无需建立多个控制连接。

      • 它启用了一种称为 FXP 的技巧,可以让您让两个 FTP 服务器直接在彼此之间交换数据。

      【讨论】:

      • 还有一些重要的缺点。最值得注意的是:FXP 兼作绕过网络安全的 FTP 反弹攻击;连接跟踪设备(NAT、包过滤防火墙)需要 FTP 协议的特殊知识。
      猜你喜欢
      • 1970-01-01
      • 2012-04-24
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 1970-01-01
      相关资源
      最近更新 更多