根据FTP协议(rfc 959),当ftp客户端连接到ftp服务器时,应在ftp客户端和ftp服务器之间建立控制连接。当ftp客户端发送{LIST、RETR、STOR等请求时,应首先建立客户机与服务器之间的数据连接,并在数据连接中传输ftp数据。
所以,我的问题是:为什么我们需要第二个连接--数据连接?为什么不在控制连接中传输所有请求、响应和ftp数据?
发布于 2013-09-09 23:53:45
在FTP中建立单独的控制和数据连接的决定是在1972年4月14日至15日在麻省理工学院的数据和文件传输研讨会上作出的。
RFC310于4月3日发布了“数据和文件传输协议的另一个展望”,为研讨会做准备。该区域协调委员会提供的一些有关资料:
RFC327:“数据和文件传输工作坊笔记”,于4月27日出版,简要总结了研讨会中的讨论和决定。文件传输的速度和效率被认为是重要的,字节大小和数据格式转换被认为是影响速度和效率的一些最重要的因素。最后,决定使用单独的控件和数据连接。其他决定包括:控制连接为TELNET连接,控制连接将使用ASCII人类可读的命令和响应,DTP (数据传输协议)将停止作为一个单独的实体存在,并成为FTP数据连接上使用的协议。
最后,1972年7月8日发布的“文件传输协议”( RFC354:)成为FTP的第一个版本,它具有独立的控制和数据连接功能。它使用SOCK命令,而不是我们熟悉的PORT和PASV命令。
附录
在1973年8月12日发布的RFC542“ARPA网络文件传输协议”中,随着PASV命令的引入,出现了服务器间文件传输( appeared /FXP)。
最后,1980年6月发布的RFC765“文件传输协议”被修改为使用TCP而不是NCP,将SOCK命令更改为PORT命令。
发布于 2013-09-09 15:05:41
例如,当您有单独的数据连接时,您可以直接在两个FTP服务器之间传输一个文件,而不是通过您的客户端计算机。今天人们不使用这个特性,但是在过去数据传输非常慢的时候,它可能是有用的。
发布于 2013-09-09 15:07:30
因为这不是FTP的工作方式。
此外,这项安排也有一些好处,包括:
https://stackoverflow.com/questions/18700840
复制相似问题