FTP的中文名称是“文件传输协议”,是File Transfer Protocol三个英文单词的缩写。FTP协议是TCP/IP协议组中的协议之一,其传输效率很是高,在网络上传输大的文件时,常常采用该协议。windows
FTP由FTP服务器和FTP客户端组成,两个方向能够互传文件。服务器
左侧为客户端,右侧为FTP服务器,不管是上传仍是下载,客户端与服务器之间都会创建2个TCP链接会话,绿色是控制链接,红色的是数据链接。其中,控制链接用于传输FTP命令,如:删除文件、重命名文件、下载文件、列取目录、获取文件信息等。真正的数据传输时经过数据链接来完成的。网络
默认状况下,服务器21端口做为命令端口,20端口为数据端口。但被动模式下就有所差异了。并发
刚接触FTP的朋友,常常搞不清楚FTP的主动模式和被动模式,形成链接被防火墙拦截,下面咱们就详细了解下FTP的这两种模式:ide
FTP主动模式
首先,来了解下FTP的主动模式,主动模式是FTP的默认模式,也称为PORT模式。3d
第二步,在控制链接创建成功后,服务器会使用数据端口20,主动链接客户端的N+1端口以创建数据链接。这就是FTP主动模式的链接过程。blog
咱们能够看到,在这条红色的数据链接创建的过程当中,服务器是主动的链接客户端的,因此称这种模式为主动模式。it
但这种模式对客户端的管理不利,由于FTP服务器20端口链接客户端的数据端口时,有可能被客户端的防火墙拦截掉。class
FTP被动模式
上面所讲的是FTP主动模式,简单的理解就是服务器的数据端口20主动链接客户端的数据端口,来创建数据链接,用来传输数据,这个数据链接的创建有可能被客户端防火墙拦截掉。为了解决这个问题就衍生出另一种链接模式---被动模式。被动模式也称为passive模式。效率
第二步,客户端的数据端口N+1去链接服务器的数据端口P,创建数据链接。
咱们能够看到,在这条红色的数据链接创建的过程当中,服务器是被动的等待客户端来链接的,因此称这种模式为被动模式。
但对服务器端的管理不利。由于客户端数据端口连到FTP服务器的数据端口P时,颇有可能被服务器端的防火墙阻塞掉。