BD
与大多数Internet服务一样,FTP也采用客户机/服务器模式,客户机与服务器之间利用TCP建立连接。与其他客户机/服务器模式不同,FTP客户机和服务器之间要建立双重连接,一个是控制连接,一个是数据连接。数据连接用于传输数据,当客户机通过控制连接向服务器发出数据传输命令时,便在客户机与服务器之间建立一条数据连接。数据连接建立成功后,开始数据传输,数据传输完成后,数据连接断开。 数据连接的建立有两种模式,即主动模式(Active)和被动模式(Passive)。主动模式(一般认为默认模式):当客户机向服务器发出数据传输命令时,客户机在TCP的一个随机端口上被动打开数据传输进程,并通过控制连接利用PORT命令将客户机的数据传输进程所使用的端口号发送给服务器,服务器在TCP的端口20上建立一个数据传输进程,并与客户机的数据传输进程建立数据连接。被动模式:当客户机向服务器发出数据传输命令时,通过控制连接向服务器发送一个PASV命令,请求进入被动模式。服务器在TCP的一个端口上20被动打开数据传输进程,并通过对PASV命令的响应将服务器数据传输进程使用的端口通知给客户机。客户机在TCP的一个随机端口上以主动方式打开数据传输进程,与服务器端的数据传输进程之间建立数据连接。 注:解析中有提到随机端口。因为1024以下端口已经被特定服务占用如http占用TCP 80端口,通常随机端口都指的是1024以上的端口。