FTP支持模式FTP客户端发起FTP会话,与FTP服务器建立相应的连接
FTP会话期间要建立控制信息进程与数据进程两个连接
控制连接不能完成传输数据的任务,只能用来传送FTP执行的内部命令以及命令的响应等控制信息;数据连接是服务器与客户端之间传输文件的连接,是全双工的,允许同时进行双向数据传输
当数据传输完成后,数据连接会撤消,再回到FTP会话状态,直到控制连接被撤消,并退出会话为止
FTP支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)
Port模式FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令
PORT命令包含了客户端用什么端口接收数据
在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据
FTP server必须和客户端建立一个新的连接用来传送数据
Passive模式建立控制通道和Standard模式类似,但建立连接后发送Pasv命令
服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作
以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。