为什么我们需要ftp服务器和ftp客户端之间的两个连接

xia*_*337 5 ftp

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

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

nin*_*alj 6

1972年4月14日至15日,在麻省理工学院的数据和文件传输研讨会上做出了在FTP中具有单独的控制和数据连接的决定。

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

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

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

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

附录

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

最后,修改了1980年6月发布的RFC765“文件传输协议”,以使用TCP代替NCP,从而更改了SOCKPORT命令。