FTP 协议完全详解 1. 介绍 一般来说,用户联网的首要目的就是实现信息共享,文件传输是信息共享非常重要的一个内容之一。Internet 上早期实现传输文件,并不是一件容易的事,我们知道 Internet 是一个非常复杂的计算机环境,有PC,有工作站,有MAC,有大型机,而连接在Internet 上的计算机有上千万台,并且这些计算机可能运行不同的操作系统,有运行Unix的服务器,也有运行Dos、Windows 的PC 机和运行MacOS 的苹果机等等,而各种操作系统之间的文件交流问题,需要建立一个统一的文件传输协议,这就是所谓的FTP。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议,这样用户就可以把自己的文件传送给别人,或者从其它的用户环境中获得文件。 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服务示意图: 注意:数据连接是双向的,它不用整个时间都存...