FTP主动模式和被动模式的区别

一、FTP是什么

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

一个完整的FTP是FTP服务器和FTP客户端组成,客户端可以将服务器上的文件通过FTP协议下载到本地,也可以将本地数据通过FTP协议上传到服务器上。

二、FTP的两个连接

无论是上传还是下载,客户端与服务器之间都会建立2个TCP连接会话,绿色是控制连接,红色的是数据连接。

其中控制连接用于传输FTP命令,如:删除文件、重命名文件、下载文件、列取目录、获取文件信息等。真正的数据传输时通过数据连接来完成的。

默认情况下,服务器21端口作为命令端口,20端口作为数据端口。但是被动模式下有所差别。

(一)、主动模式

在主动模式下,客户端会开启N和N+1两个端口,N为客户端的命令端口,N+1为客户端的数据端口

第一步:客户端使用端口N连接FTP服务器的命令端口21,建立控制连接并告诉服务器我这边开启了数据端口N+1

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

我们可以看到,在这条红色的数据连接建立的过程中,服务器是主动的连接客户端的,所以称这种模式为主动模式

主动模式的利弊

主动模式对FTP服务器的管理有利,因为FTP服务器只需要开启21端口的“准入”和20端口的“准出”即可。

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

(二)被动模式

示意图

第一步:客户端的命令端口N主动连接服务器命令端口21,并发送PASV命令,告诉服务器用“被动模式”,控制连接建立成功后,服务器开启一个数据端口P,通过PORT命令将P端口告诉客户端

第二步:客户端的数据端口N+1去连接服务器的数据端口P,建立数据连接

我们可以看到,在这条红色的数据连接建立的过程中,服务器是被动的等待客户端来连接的,所以称这种模式为被动模式。

被动模式的利弊

被动模式对FTP客户端的管理有利,因为客户端的命令端口和数据端口都是“准出”,windows防火墙对于“准出”一般是不拦截的,所以客户端不需要任何多余的配置就可以连接FTP服务器了。

但对服务器端的管理不利。因为客户端数据端口连到FTP服务器的数据端口P时,很有可能被服务器端的防火墙阻塞掉。
————————————————
版权声明:本文为CSDN博主「ludan_xia」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ludan_xia/article/details/105705473

Tags: