首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我们需要ftp服务器和ftp客户端之间的两个连接?

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

Stack Overflow用户
提问于 2013-09-09 14:41:44
回答 3查看 5.4K关注 0票数 6

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

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-09 23:53:45

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

RFC310于4月3日发布了“数据和文件传输协议的另一个展望”,为研讨会做准备。该区域协调委员会提供的一些有关资料:

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

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命令。

票数 7
EN

Stack Overflow用户

发布于 2013-09-09 15:05:41

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

票数 0
EN

Stack Overflow用户

发布于 2013-09-09 15:07:30

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

此外,这项安排也有一些好处,包括:

  • 在控制连接上不需要复杂的框架。
  • 处理特殊情况,比如取消数据连接,会更简单。
  • 您可以一次运行多个传输,而不必建立多个控制连接。
  • 它支持一个称为FXP的技巧,它允许您使两个FTP服务器直接在彼此之间交换数据。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18700840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档