FTP是FileTransferProtocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
和其他应用一样,FTP也是依赖于客户程序/服务器关系的概念。在上有一些网站,它们依照FTP协议提供服务,让网友们进行文件的存取,这些网站就是FTP服务器。网上的用户要连上FTP服务器,就要用到FPT的客户端软件,通常Windows都有“ftp”命令,这实际就是一个命令行的FTP客户程序,另外常用的FTP客户程序还有CuteFTP、Ws_FTP、FTPExplorer等。
要连上FTP服务器(即“登陆”),必须要有该FTP服务器的帐号。如果是该服务器主机的注册客户,你将会有一个FTP登陆帐号和密码,就凭这个帐号密码连上该服务器。但上有很大一部分FTP服务器被称为“匿名”(Anonymous)FTP服务器。这类服务器的目的是向公众提供文件拷贝服务,因此,不要求用户事先在该服务器进行登记注册。
我们可以在主动或被动模式下启动FTP会话。该模式确定如何建立连接。在两者中,客户端通过TCP从随机端口到FTP服务器端口21创建连接。在主动模式下,客户端通过命令通道请求启动会话后,服务器启动数据连接回客户端并开始传输数据。客户端在端口N上侦听来自服务器的传入数据连接,端口N可以是任何非特权端口。为了让服务器知道,它将FTP命令“端口N”发送给它。然后,服务器从其端口20(FTP服务器数据端口)建立与客户端的连接,并开始传输数据。
在被动模式下,服务器使用命令通道向客户端发送打开数据通道所需的信息。客户端会向服务器发送“PASV”命令,然后从服务器接收服务器IP地址和端口号,客户端使用该连接从特权端口启动数据连接以开始发送。由于被动模式使得客户端启动了所有连接,因此它也称为“防火墙友好”模式,可以跨防火墙和网络地址转换(NAT)网关很好地工作。