FTP文件传输协议,主要用于Internet上文件的双向传输。通常为“下载”和“上传”。
FTP采用客户机/服务器模式,客户机与服务器之间利用TCP建立连接,与其他连接不同,FTP需要建立双重连接,一个控制连接,一个是数据连接。(交互式连接)
对每次的数据传输请求,客户机服务器之间都要建立一个独立的数据连接,进行实际传输。
(1)控制连接以通常的客户机/服务器方式建立,连接一旦建立,客户机与服务器之间进入交互式会话状态。
(2)数据连接用于数据传输,数据连接建立成功后,开始传输数据,数据传输结束后,数据连接断开。
建立数据连接的方式有两种:
主动模式(默认模式):
当客户机向服务器发出数据传输命令时,客户机在TCP的一个随机端口上被动打开数据传输进程,并通过控制连接利用PORT命令将客户机数据传输所使用的端口号发送给服务器,服务器在TCP的20端口建立一个数据传输进程,并与客户机的数据传输进程建立数据连接(客户机被动)。
被动模式:
当客户机想服务器发出数据传输命令时,通过控制连接向服务器发送一个PASV命令,请求进入被动模式,服务器在TCP的端口被动打开数据传输进程,客户机以主动方式打开数据传输进程,建立数据传输连接。(服务器被动)