|
|
FTP在客户机/服务器模式下工作,一个FTP服务器可同时为多个客户提供服务。它要求用户用客户端软件与服务器建立连接,然后才能从服务器上获取文件(称为文件下载(Download)),或向服务器发送文件(称为文件上传(Upload)),如下图所示。
|
|
|
FTP使用两条TCP连接来完成文件传输:一条连接用于传送控制信息(命令和响应),端口号为21;另一条连接用于数据发送,端口号为20。
|
|
|
平时,服务器总在端口21等待客户的连接请求,当用户需要传输文件时,客户与服务器的端口建立一个控制连接,用来传送客户的命令和服务器的应答,该连接一直保持到客户与服务器通信结束为止。当客户发出数据传输命令时,服务器主动与客户建立数据连接,并在其上传输数据。
|
|
|
下图是FTP功能模块及两条连接框图。从图中可以看出,终端用户并不直接处理控制连接上的FTP命令和FTP响应,而是由两个协议解释器来处理。用户接口为终端用户提供某种形式的输入界面,接收用户的命令,将其转换成标准的FTP命令,并将控制连接的FTP响应转换成用户可阅读的形式显示出来。
|
|
|
|
|
|
FTP的客户端软件应具有远程登录、对本地计算机和远程服务器的文件和目录进行管理以及相互传送文件的功能,并能根据文件类型自动选择正确的传送方式。一个好的FTP客户端软件还应具有断点续传、用户界面友好等优点。因特网用户使用的FTP客户程序通常有3种类型,即传统的FTP命令行、浏览器和FTP下载工具。
|
|
|
|
在UNIX操作系统中,FTP是系统的一个基本命令,可以通过命令行的方式使用。Windows 95/98/2000/XP/2003系统也带有可在DOS提示符下运行的ftp.exe文件,使用类似DOS命令行的人机交互界面。在不同的操作系统中,FTP命令行软件的形式和使用方法各不相同。
|
|
|
|
大多数浏览器软件(如Netscape公司的Navigator/Communicator、微软的Internet Explorer)都支持FTP。只需在地址栏中输入URL就可以下载文件,也可通过浏览器上传文件。
|
|
|
|
目前最流行的是基于Windows环境的具有人机交互界面的FTP文件传送软件,如Windows环境下的WS-FTP和Cute FTP软件。
|
|
|
|
访问FTP服务器有两种方式:一种方式是需要用户提供合法的用户名和口令,这种方式适用于在主机上有账户和口令的内部用户;另一种方式是用户用公开的账户和口令登录,访问并下载文件,这种方式称为匿名FTP服务。
|
|
|
Internet上有很多匿名FTP服务器(Anonymous FTP Servers)提供公共的文件传送服务,它们提供的服务是免费的。匿名FTP服务器可以提供免费软件(Freeware)、共享软件(Shareware)以及应用软件的测试版等。匿名FTP服务器的域名一般由ftp开头,如ftp.ustc.edu.cn。匿名FTP服务器向用户提供了一种标准统一的匿名登录方法。
|
|
|
|
|
一般地,匿名FTP服务器的每个目录中都含有readme或index文件,这些文件含有该目录中所存储的有关信息,用户在下载文件之前最好先阅读它们。
|
|
|
|
TCP/IP协议族中还有一个简单文件传输协议(Trivial File Transfer Protocol, TFTP),它是一个很小且易于实现的文件传输协议。TFTP代码所占内存很小,在一些较小的计算机或某些特殊用途的网络设备中经常使用。TFTP的主要特点如下。
|
|
|
(1)每次传送的数据PDU中有512B的数据,但最后一次可不足512B。
|
|
|
(2)数据PDU也称为文件块,每个块按序编号,从1开始。
|
|
|
|
|
|
和FTP协议一样,TFTP协议也在客户机/服务器模式下工作,但它使用UDP数据报,因此需要自己的差错改正措施,在发送完一个文件数据块后就等待对方的确认,并在确认时指明所确认的块编号。若文件长度恰好为512B的整数倍,则在文件传送完毕后,还必须在最后发送一个只含首部而无数据的数据PDU。若文件长度不是512B的整数倍,则最后传送数据PDU的数据字段一定不满512B,这正好作为文件结束的标志。
|
|
|