版权归原作者所有,如有侵权,请联系我们

[科普中国]-统一文件传输

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

概述

FTP用于互联网上的控制文件的双向传输;同时,它也是一个应用程序(Appli cation)。用户可以通过它把自己的PC与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序),查看远程计算机有哪些文件,然后把文件从远程汁算机上复制到本地计算机,或把本地计算机的文件送到远程计算机去。

FTP服务器一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向FTP服务器的进口。在传输文件时。FTP客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后给予响应,并执行命令。FTP虽然可以被终端用户直接使用。但是它是设计成被FTP客户端程序所控制。1

端口命令端口一般来说,客户端有一个Socket用来连接FTP服务器的相关端口,它负责FTP命令的发送和接收返回的响应信息。一些操作如“登录”、“改变目录”、“删除文件”等依靠这个连接发送命令即可完成。

数据端口对于有数据传输的操作。主要是显示日录列表,上传、下载文件,需要依靠另一个Socket来完成。FTP的数据传输有两种模式:主动模式和被动模式。在主动模式下,通常客户端会发送一个端口号给服务器端,并在这个端口监听。服务器需要连接到客户端开启的这个数据端口,并进行数据的传输。主动模式下容易出现的问题是,服务器的主动连接请求会被客户端的防火墙阻塞。在被动模式下,通常服务器端会返回一个端口号。客户端需要另开一个Socket来连接这个端口,然后根据操作发送命令,数据会通过新开的一个端口传输。被动模式解决了本地防火墙的阻塞问题。1

模式主动模式主动模式下,客户端随机打开一个大于1024的端口向服务器的命令端口P(即21端口),发起连接,同时开放N+1端口监听,并向服务器发出“port N+1”命令,由服务器从它自己的数据端口(20)主动连接到客户端指定的数据端口(N+1)。

FTP的客户端只是告诉服务器自己的端口号,让服务器来连接客户端指定的端口。对于客户端的防火墙来说,这是从外部到内部的连接,可能会被阻塞。

被动模式为了解决服务器发起到客户的连接问题,有了另一种FTP连接方式,即被动方式。命令连接和数据连接都由客户端发起,这样就解决了从服务器到客户端的数据端口的连接被防火墙过滤的问题。1

常见命令FTP使用从客户端到服务器端的命令报文,以及从服务器端到客户端的响应报文完成文件件传输功能。FTP常见命令如下:

(1)USER username:用于向服务器传送用户标识。

(2)PASS password:用于向服务器传送用户口令。

(3)LIST:用于请求服务器返回远程主机当前目录的所有文件列表。文件列表是在数据连接上传送,而不是在控制TCP连接上传送。

(4)RETR filename:用于从远程主机的当前目录检索文件。该命令触发远程主机发起一个数据连接,并在该数据连接上发送所请求的文件。2