详解FTP协议的主动模式和被动模式

详解FTP协议的主动模式和被动模式


FTP的中文名称是“文件传输协议”,是File Transfer Protocol三个英文单词的缩写。FTP协议是TCP/IP协议组中的协议之一,其传输效率很是高,在网络上传输大的文件时,常常采用该协议。windows

FTP由FTP服务器和FTP客户端组成,两个方向能够互传文件。服务器


详解FTP协议的主动模式和被动模式


左侧为客户端,右侧为FTP服务器,不管是上传仍是下载,客户端与服务器之间都会创建2个TCP链接会话,绿色是控制链接,红色的是数据链接。其中,控制链接用于传输FTP命令,如:删除文件、重命名文件、下载文件、列取目录、获取文件信息等。真正的数据传输时经过数据链接来完成的。网络

默认状况下,服务器21端口做为命令端口,20端口为数据端口。但被动模式下就有所差异了。并发

刚接触FTP的朋友,常常搞不清楚FTP的主动模式和被动模式,形成链接被防火墙拦截,下面咱们就详细了解下FTP的这两种模式:ide


FTP主动模式
首先,来了解下FTP的主动模式,主动模式是FTP的默认模式,也称为PORT模式。
详解FTP协议的主动模式和被动模式3d

  1. 在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口。
    第一步,客户端使用端口N链接FTP服务器的命令端口21,创建控制链接并告诉服务器我这边开启了数据端口N+1。

第二步,在控制链接创建成功后,服务器会使用数据端口20,主动链接客户端的N+1端口以创建数据链接。这就是FTP主动模式的链接过程。blog

咱们能够看到,在这条红色的数据链接创建的过程当中,服务器是主动的链接客户端的,因此称这种模式为主动模式。it

  1. 主动模式有什么利弊呢?
    主动模式对FTP服务器的管理有利,由于FTP服务器只须要开启21端口的“准入”和20端口的“准出”便可。

但这种模式对客户端的管理不利,由于FTP服务器20端口链接客户端的数据端口时,有可能被客户端的防火墙拦截掉。class


FTP被动模式
上面所讲的是FTP主动模式,简单的理解就是服务器的数据端口20主动链接客户端的数据端口,来创建数据链接,用来传输数据,这个数据链接的创建有可能被客户端防火墙拦截掉。为了解决这个问题就衍生出另一种链接模式---被动模式。被动模式也称为passive模式。效率

  1. 被动模式是如何运做的呢?来看下这张图
    详解FTP协议的主动模式和被动模式
    第一步,客户端的命令端口N主动链接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”,控制链接创建成功后,服务器开启一个数据端口P,经过PORT命令将P端口告诉客户端。

第二步,客户端的数据端口N+1去链接服务器的数据端口P,创建数据链接。

咱们能够看到,在这条红色的数据链接创建的过程当中,服务器是被动的等待客户端来链接的,因此称这种模式为被动模式。

  1. 被动模式有什么利弊呢?
    被动模式对FTP客户端的管理有利,由于客户端的命令端口和数据端口都是“准出”,windows防火墙对于“准出”通常是不拦截的,因此客户端不须要任何多余的配置就能够链接FTP服务器了。

但对服务器端的管理不利。由于客户端数据端口连到FTP服务器的数据端口P时,颇有可能被服务器端的防火墙阻塞掉。

相关文章
相关标签/搜索