双方能否在 FTP 双向数据连接上发送数据

Can both sides send data on an FTP bi-directional data connection

我一直以为FTP数据连接打开时,它只以一种方式传输数据。

现在我发现双方都可以在打开的数据连接上传输数据。

我的问题:

  1. 它有什么用?我读到它可用于通过 SSL 传输文件,因此双向用于协商,但为什么不使用 ftps?
  2. 数据连接打开以传输文件和列表(还有其他吗?)。那么发送方收到对方的数据应该怎么办呢?它将如何处理它?
  3. 是否有客户支持这种行为?
  4. 常见吗?

你说得对,FTP RFC 确实提到了双向使用数据连接的可能性:

It ought to also be noted that the data connection may be used for simultaneous sending and receiving

但 RFC 作者可能只是想确保此类选项可用于协议的未来功能。

但据我所知,实际上并没有利用双向数据连接的功能。

FTP 协议根本不允许同时传输,无论是同方向还是相反方向。

当前使用的数据连接:

  • 对于下载,只有服务器发送数据。
  • 对于上传,只有客户端发送数据。
  • 对于目录列表,只有服务器发送数据。

关于 FTPS:确实,如果数据连接使用 TLS/SSL 加密,当客户端和服务器协商加密时,连接在 TCP 级别双向使用。但我不认为这也是 RFC 所指的内容,因为 SSL/TLS 当时不存在,而且协商超出了 FTP 协议的范围。