FTP 协议规范(中文版) 文件传输协议(File Transfer Protocol, FTP) 1. 介绍 FTP 的目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。虽然我们也可以手工使用它,但是它的主要作用是供程序使用的。在阅读本文之前最好能够阅读 TCP 协议标准规范和 Telnet 协议标准规范。 2. 概览 在本节中我们将讨论一些表面上的问题,有些名词的定义请参阅 TCP 和 Telnet 参考文献。我们先介绍一下(1)字节大小,在 FTP 中字节大小有两个:逻辑字节大小和用于传输的字节大小。后者通常是 8 位,而前者可不一定是多少了。传输字节不必等于逻辑字节大小,也不必对数据结构进行解释。(2)控制连接是建立在 USER-PIT 和 SERVER-PI 之间用于交换命令与应答的通信链路。(3)数据连接是传输数据的全双工连接。传输数据可以发生在服务器DTP 和用户 DTP 之间也可以发生在两个服务器DTP 之间。(4)DTP:数据传输过程(DTP)建立和管理数据连接,DTP 可以是主动的也可以是被动的。(5)EOR 代表记录尾。(6)NTV代表网络虚拟终端,它的定义与在 Telnet 协议中的定义一致。(7)NVFS 代表网络虚拟文件系统。(8)FTP 可以传输非连续的文件,这些文件的一部分称为页。(9)PI 代表协议解释器。(10)服务器DTP 代表一种传输过程,它通常处于“主动”状态,它和侦听端口建立数据连接,它还可以为传输和存储设置参数,并根据 PI 的指令传输数据。当然,DTP 也可以转入“被动”状态。(11)服务器FTP 进程,它是和用户 FTP 进程一起工作的,它由 PI 和DTP 组成。至于用户 FTP 进程则是由 PI,DTP 和用户接口组成的。下图是 FTP 服务示意图: 注意:数据连接是双向的,它不用整个时间都存在。上图中用户 PI 开始控制连接,控制连接与Telnet 协议很象。在开始阶段,标准 FTP 命令由用户 PI 产生并通过控制连接传送到服务器进程。服务器PI 向用户 PI 返回标准应答。FTP 命令指定数据连接参数和文件系统操作。用户 DTP 在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始 FTP 命令的机器上,但用户或用户 FTP 进程必须确定它在指定的数据端口上侦听。这个数据连接是全双工的。 在另外一种情况下,用户或许希望在两个主机间传送文件,不是两个本地主机。用户在两台主机间建立控制连接,然后规划数据连接。用这种方...