根据FTP协议(rfc 959),当ftp客户端连接到ftp服务器时,应该在ftp客户端和ftp服务器之间建立控制连接。当ftp客户端发送{LIST,RETR,STOR等}请求时,应首先建立客户端与服务器之间的数据连接,并在数据连接中传输ftp数据。
所以,我的问题是:为什么我们需要第二个连接 - 数据连接?为什么不能在控制连接中传输所有请求,响应和ftp数据?
答案 0 :(得分:5)
决定在FTP中进行单独的控制和数据连接是在1972年4月14日至15日在麻省理工学院的数据和文件传输研讨会上进行的。
RFC310“数据和文件传输协议的另一种看法”于4月3日发布,为研讨会做准备。该RFC的一些相关信息:
最后,RFC354:1972年7月8日发布的“文件传输协议”成为FTP RFC的第一个具有独立控制和数据连接的版本。它使用了SOCK
命令,而不是我们熟悉的PORT
和PASV
命令。
附录
服务器间文件传输(AKA FTP bounce / FXP)出现在1953年8月12日发布的RFC542“ARPA网络文件传输协议”上,引入了PASV
命令。
最后,1980年6月发布的RFC765“文件传输协议”被修改为使用TCP而不是NCP,更改了SOCK
命令的PORT
命令。
答案 1 :(得分:0)
当您有单独的数据连接时,您可以直接在两个FTP服务器之间传输文件,而不是通过客户端计算机传输文件。人们今天不使用此功能,但过去在数据传输速度非常慢的情况下它可能很有用。
答案 2 :(得分:0)
因为这不是FTP的工作原理。
此外,这项安排也有一些好处,包括:
控制连接上不需要复杂的框架。
处理特殊情况,例如取消数据连接,更简单。
您可以一次运行多个传输,而无需建立多个控制连接。
它启用了一种称为FXP的技巧,可以让你让两个FTP服务器直接在彼此之间交换数据。